
Cobalt Strike 외부에서 64비트 COFF 개체 파일을 파싱하여 Beacon Object Files(BOF)를 실행하며, Beacon 호환 인자 생성 및 레드팀 테스트용 헬퍼 스크립트를 제공합니다.
이것은 빠르고 간단하게 만든 COFF 로더(일명 Beacon Object Files)입니다. 현재 수정되지 않은 BOF를 실행할 수 있으므로 CS 에이전트를 실행하지 않고도 테스트에 사용할 수 있습니다. 유일한 예외는 인젝션 관련 beacon 호환성 함수가 비어 있다는 것입니다.
주요 목표는 작동하는 예제를 제공하고 누군가에게 유용할 수 있도록 하는 것입니다.
몇 가지 부분으로 구성되어 있으며 아래에 나열되어 있습니다.
이것은 COFFLoader 코드용 인자를 생성하는 데 사용됩니다. BOF가 인자를 받는다면 이 도구에서 기대하는 유형으로 인자를 추가하면 사용할 16진수 문자열이 생성됩니다.
사용 예시:
COFFLoader % python3 beacon_generate.py
Beacon Argument Generator
Beacon>help
Documented commands (type help <topic>):
========================================
addString addWString addint addshort exit generate help reset
Beacon>addWString test
Beacon>addint 4
Beacon>generate
b'120000000a0000007400650073007400000004000000'
Beacon>reset
Beacon>addint 5
Beacon>generate
b'0400000005000000'
Beacon>exit
각 BOF에 필요한 인자는 소스 코드를 통해 확인할 수 있습니다. Net User BOF를 예로 들면, CS-Situational-Awareness-BOF Github에 있는 src/SA/netuser/entry.c 파일을 열고 void go() 함수에서 인자를 확인하면 됩니다.
VOID go(IN PCHAR Buffer, IN ULONG Length)
{
datap parser;
wchar_t *username = NULL;
wchar_t *domain = NULL;
BeaconDataParse(&parser, Buffer, Length);
username = (wchar_t *)BeaconDataExtract(&parser, NULL);
domain = (wchar_t *)BeaconDataExtract(&parser, NULL);
domain = *domain == 0 ? NULL : domain;
netuserinfo(username, domain);
printoutput(TRUE);
};
Net User BOF에는 "username"과 "domain"이 필요하다는 것을 알 수 있습니다(whoami BOF를 실행하여 얻을 수 있음). beacon_generate.py 헬퍼 스크립트를 사용하여 다음과 같이 인자를 생성할 수 있습니다:
COFFLoader % python3 beacon_generate.py
Beacon Argument Generator
Beacon>addWString Administrator
Beacon>addWString client2
Beacon>generate
b'340000001c000000410064006d0069006e006900730074007200610074006f00720000001000000063006c00690065006e00740032000000'
Beacon>exit
마지막으로, 16진수로 변환된 숫자 값(숫자만)을 실행 명령에 복사하십시오.
COFFLoader64.exe go ..\CS-Situational-Awareness-BOF\SA\netuser\netuser.x64.o 340000001c000000410064006d0069006e006900730074007200610074006f00720000001000000063006c00690065006e00740032000000
더 자세한 예제는 다음 링크에서 확인할 수 있습니다:
https://trustedsec.com/blog/situational-awareness-bofs-for-script-kiddies
BOF 실행 방법의 예는 아래와 같습니다.
COFFLoader64.exe go test64.out
COFFLoader64.exe go ..\CS-Situational-Awareness-BOF\SA\whoami\whoami.x64.o