
1단계 작전 중심의 C# C2 프레임워크
C# C2 프레임워크, Stage 1 작업 중심
Atlas는 환경 내에서 발판을 확보하고, HTTP 기반 임플란트를 사용하여 C# (현재는 엄격히 C#) 무기 체계를 밀반입하는 데 기반을 둡니다. 현재 상태에서는 OPSEC이 그다지 안전하지 않습니다... 전혀요. 현재 Windows 환경만 대상으로 합니다.
참고: 임플란트의 기본 연결 설정은 localhost의 8080 포트로 연결되도록 설정되어 있으며, 이는 여기에서 변경할 수 있습니다.
클라이언트, 팀서버, 임플란트의 exe를 생성한 후, 간단히 Teamserver.exe를 실행하여 팀서버를 시작합니다.
새 리스너를 시작하려면 StartListener 명령어를 사용합니다. 이 명령어는 두 개의 매개변수를 사용합니다: 리스너 이름과 실행할 포트
Listeners 명령어는 모든 리스너를 나열하고, ViewListener는 지정된 리스너에 대한 데이터를 반환하며, RemoveListener는 목록에서 리스너를 제거하는 데 사용할 수 있습니다.

연결된 임플란트를 나열하려면 Implants 명령어를 사용합니다.

임플란트에 연결하는 것은 Connect <ImplantId>만큼 간단합니다. 제가 한 걸 보셨나요?... 좋아요, 이만 나가겠습니다. Connect 명령어가 임플란트를 선택하는 데 사용되는 것처럼, ViewImplant는 선택한 임플란트에 대한 추가 정보를 보는 데 사용할 수 있습니다. Disconnect 명령어는 아래와 같이 현재 선택된 임플란트를 선택 해제합니다.

작업을 사용하려면 먼저 SetTask를 사용하여 작업을 선택해야 합니다. 옵션은 TaskOpts로 확인하고 SetTaskOpt로 설정할 수 있습니다. 작업은 SendTask를 사용하여 실행합니다.

이전에 실행된 작업의 출력은 TaskOut을 사용하여 볼 수 있습니다. TasksOut은 선택한 임플란트와 관련된 모든 이전 실행 작업을 보는 데 사용할 수 있습니다.

Atlas는 운영자가 PSShell 및 CMDShell 작업을 사용하여 각각 PowerShell 및 Cmd 명령어를 실행할 수 있도록 합니다. PSShell은 새 runspace를 열고 명령어를 실행하므로 powershell.exe가 블랙리스트에 있어도 PowerShell 명령어를 실행할 수 있습니다. 이 방법은 제한된 언어 모드(Constrained Language Mode)도 우회합니다. CMDShell은 cmd.exe 프로세스를 열고 명령어를 프로세스에 전달합니다. PowerShell 명령어 실행은 위에서 보여졌으므로 여기서는 다시 보여주지 않겠습니다. CMDShell에 대한 참고 사항: whoami, ipconfig, pwd, cd를 포함한 (그러나 이에 국한되지 않는) 많은 일반적인 명령어가 cmd.exe 프로세스를 통해 실행할 필요가 없도록 임플란트 기능에 구현되었습니다.

어셈블리 로드는 CobaltStrike와 같이 execute-assembly로 모든 것을 처리하는 것과 달리 몇 단계를 거칩니다. 먼저, 운영자는 ByteConvert 유틸리티를 사용해야 합니다 (ByteConvert는 파일이 로컬인지 원격인지 알려줘야 함). 로컬에 저장된 파일이나 원격 파일을 바이트 배열로 변환하여 assemBytes 변수에 저장합니다. 이 작업이 완료되면 Load 작업을 사용하여 어셈블리를 임플란트 프로세스에 로드합니다.

임플란트 프로세스에 로드된 어셈블리를 보려면 운영자는 AssemQuery 및 AssemMethodQuery 작업을 사용할 수 있습니다. 전자는 로드된 모든 어셈블리를 반환하고, 후자는 로드된 어셈블리와 관련된 모든 공용 메서드를 반환합니다.

스크린샷은 TestAssem 어셈블리가 실제로 임플란트의 프로세스에 로드되었음을 확인합니다.
AssemMethodQuery를 사용하여 TestAssem에 대한 정보를 반환할 수 있으며, 운영자는 이를 사용하여 공용 메서드를 실행하는 데 필요한 정보를 반환할 수 있습니다.

Atlas는 엔트리 포인트 또는 지정된 노출된 메서드에서 어셈블리를 실행하는 옵션을 제공합니다. ExecuteAssem은 엔트리 포인트에서 실행하는 데 사용할 수 있습니다. 이 작업은 어셈블리 이름만 필요로 합니다. ExecuteAssemMethod는 AssemMethodQuery에서 가져온 정보를 사용하여 다른 메서드를 실행할 수 있습니다.

전체 기능 목록은 위키를 방문하십시오.
.sln을 열고 Release 모드에서 3가지 구성 요소를 모두 빌드하면, 각 구성 요소의 \bin\debug에 콘솔 창과 exe가 생성됩니다. 이 부분은 더 나은 방법을 연구해야 합니다.
cpupload/downloadAtlas는 교육/윤리적 목적으로만 설계되었습니다. 저는 Atlas 사용자의 행동을 옹호하지 않으며 그에 대한 책임도 없습니다.