
윈도우와 cobaltstrike를 배우기 위해 작성된 beacon BOF 모음
Beacon BOF 컬렉션.
Beacon 객체 파일을 통해 DCOM(ShellWindows)을 사용하여 수평 이동을 수행하는 빠른 PoC입니다. 자격 증명을 지정하거나 현재 사용자를 사용할 수 있습니다. 현재 사용자를 사용하려면 도메인, 사용자 이름 및 암호를 비워 두세요. C에서 COM 개체를 사용하는 방법에 대한 짧은 문서는 여기에서 찾을 수 있습니다.
이전과 유사한 개념이지만 흥미로운 학습 경험입니다. 코드는 CIA Vault 8에서 채택했습니다. 이 방법은 Win32_Process 클래스를 사용합니다.
이 방법은 WMI 이벤트를 사용하여 수평 이동을 수행합니다. 대부분의 어려운 작업은 wumb0in이 수행했습니다.
dotnet BOF를 사용한 On-demand C2 구현입니다. Beacon은 지정된 단어(제목 또는 본문에)가 포함된 이메일이 제공될 때까지 절전 상태로 들어갑니다. 이러한 방식으로 당신의 beacon은 당신이 원할 때만 홈 콜백을 수행합니다. Beacon이 콜백할 때, malleable profile에 구성된 sleep 시간에 따라 콜백합니다. 작업이 끝나면 BOF를 다시 실행할 수 있으며, beacon은 다른 이메일을 보낼 때까지 절전 상태를 유지합니다. 추가로, 지정된 단어가 포함된 이메일은 사용자에게 알림이 가기 전에 삭제됩니다.
1 ) BOF .NET 프로젝트를 다운로드하고(훌륭한 작업을 해준 CCob에게 감사!), CCob의 가이드 여기에 따라 DLL을 beacon에 로드합니다.
2 ) 다음과 같이 실행합니다: bofnet_execute On_Demand_C2_BOF.OnDemandC2Class subject COVlD-19*
3 ) 이제 beacon에서 콜백을 받으려면 다음과 같은 이메일을 보낼 수 있습니다: [SUSPECTED SPAM] The new COVlD-19 update
이메일은 직접 삭제된 항목으로 이동되고 beacon이 다시 콜백합니다!
*고유성을 보장하기 위해 소문자 L을 사용한 COVLD-19입니다.
다음과 같이 본문 옵션을 지정할 수도 있습니다:
bofnet_execute On_Demand_C2_BOF.OnDemandC2Class body "it can also be a sentence!"
이렇게 하면 이메일 본문에 "it can also be a sentence!"가 포함된 경우에만 애플리케이션이 트리거됩니다. 그러나 이 방법은 이메일을 받을 때마다 "a program is trying to access email address information" 프롬프트가 나타나므로, 이 기능이 비활성화되어 있음을 알고 있는 경우에만 사용하는 것이 좋습니다(엔터프라이즈에서 비활성화되어 있는 경우가 흔하지만, 추가적인 OPSEC는 나쁠 것이 없습니다).
저는 Windows, CobaltStrike 및 수평 이동에 대해 더 배우기 위해 이러한 기술을 BOF로 포팅했습니다. 저는 PowerShell 명령을 복사/붙여넣기 하는 것이 지루하다고 생각했습니다.
DCOM 수평 이동은 파악하는 데 시간이 좀 걸렸고, 다른 프로젝트/저장소에서 구현된 것을 찾지 못했습니다. 하지만 WMI 수평 이동 부분은 주로 다른 사람들이 작성했습니다. 제가 한 것은 약간의 수정과 BOF로 포팅하는 것이었습니다.
저는 아직 노련한 개발자가 아니므로 주의해서 사용하세요. 이 스크립트를 GIT에 푸시하기 전에 네트워크 MDR 서비스가 제공되는 엔터프라이즈 환경에서 테스트되었으며, 경고가 트리거되지 않았습니다. 그러나 실제 업무에서 실행하기 전에 스크립트를 수정하고 테스트해야 한다는 것은 말할 필요도 없습니다. 도움이 필요하시면 주저하지 말고 연락해 주세요. 또한 이 BOF에 대한 Aggressor 스크립트에 관심이 있으시면 알려주세요!
네, 별표, 리트윗, 또는 제가 대학을 졸업한 후에 레드팀에 초대해 주시면 됩니다.
rsmudge님의 지속적인 지원과 질문에 대한 응답에 큰 감사를 드립니다. domchell의 문서는 훌륭한 소개가 되었고 제 우선순위를 정하는 데 도움이 되었습니다.