
Windows 프로세스에서 정보를 추출하고 민감한 문자열을 덤프하는 소형 도구 키트
Windows 프로세스에서 정보를 추출하고 민감한 문자열을 덤프하기 위한 작은 툴킷입니다. FormThief와 함께 사용하기 위해 만들어졌습니다.
프로세스 메모리를 덤프하고 읽기 가능한 문자열을 검색합니다. 이 버전에서는 PID, 검색 문자열, 범위만 제공됩니다. 검색 문자열이 발견되면 범위 매개변수는 유효한 ASCII인 한 발견된 문자열 양쪽에 출력할 문자 수를 나타냅니다.
VS에서 컴파일하세요. 아래는 Outlook 프로세스에서 사용자 정보를 덤프하는 예제입니다:
PS C:\Users\capde> .\procsearch.exe 7592 "email" 500
[+] Search string "email" FOUND: (...) "age_group": "adult", "association_status": "{\"com.microsoft.Olk\":\"associated\"}"
,"authority": "https://login.microsoftonline.com/consumers", "birthday": "1969-3-1", "display_name": "John Doe",
"email": "[email protected]", "first_name": "John", "id": "3a25f54136ac887c", "last_name": "Doe", "location":
"UK", "login_name":"[email protected]","onprem_sid": "", "password_change_url": "", "phone_number": "" (...)
Inline-Execute-PE에서는 제대로 작동하지 않습니다. 이 문제와 C++ BOF 버전(현재 C 버전보다 더 넓은 검색 범위를 허용해야 함)을 해결하기 위해 작업 중입니다.
컴파일하고 .cna를 로드하세요:
x86_64-w64-mingw32-gcc -c procsearch-BOF.c -o procsearch-BOF.o
BOF 버전은 버퍼 크기에 민감하므로 <range> 옵션이 없으며 출력이 다소 제한됩니다. 버퍼 크기를 자유롭게 조정해 보세요. 하지만 너무 크면 __chkstk 오류가 발생하거나 비콘이 중단될 수 있으니 주의하세요.
이상적으로는 C++로 작성하고 싶었으며 bof-vs를 사용하여 로컬에서는 작동했지만 비콘에서 실행하면 이상한 알 수 없는 기호 오류나 충돌이 발생합니다. 가능할 때 업데이트하겠습니다. C에서 검색 함수/버퍼를 구현하는 더 나은 방법이 있을 수 있지만 지금은 이렇게 작동합니다.
매우 큰 프로세스에서 "." 같은 단일 문자를 검색하는 것은 비콘이 중단될 수 있으므로 권장하지 않습니다. BOF를 사용할 때는 최소 3~4자 검색 문자열을 권장합니다. C++ 버전에서는 범위를 크게 늘릴 수 있습니다.
Outlook 프로세스에서 더미 사용자 데이터를 덤프하는 예제:
https://github.com/mlcsec/proctools/assets/47215311/dccd1223-774e-4dec-8353-91c057900a07
제공된 PID에 대한 모든 파일 버전 정보를 출력하는 C# 유틸리티입니다. VS 또는 csc로 컴파일하세요:

위 기능 중 일부를 복제한 C BOF입니다. VerQueryValue(lpVersionInfo, "\\StringFileInfo\\040904b0\\... 값을 덤프하는 문제를 해결해야 합니다.
컴파일하고 .cna를 로드하세요:
x86_64-w64-mingw32-gcc -c procinfo-BOF.c -o procinfo-BOF.o

지정된 프로세스의 명령줄 인수를 추출합니다. 컴파일하고 .cna를 로드하세요:
x86_64-w64-mingw32-gcc -c procargs.c -o procargs-BOF.o

프로세스를 종료합니다 (또는 CS에서 kill을 사용하면 됩니다. 왜 만들었는지 모르겠네요):
x86_64-w64-mingw32-gcc -c prockill-BOF.c -o prockill-BOF.o
