
ARTi-C2는 .NET의 DLR을 통해 신속한 페이로드 배포 및 실행 기능을 갖춘 Atomic Red Team 테스트 케이스를 실행하는 데 사용되는 사후 침투 프레임워크입니다.
ARTC2는 보안 팀이 단일 및 다중 침해 지점 대상에서 공격 시나리오 실행을 확장할 수 있도록 지원하는 최신 실행 프레임워크입니다. 이는 보안 제품 및 침해 대응의 효과를 향상시키는 실행 가능한 공격 인텔리전스를 생성하는 것을 목표로 합니다.
ARTC2 핵심 기능 및 역량은 SILENTTRINITY에서 비롯되었으며, Boo를 통해 실행되는 원자 테스트는 ATOMIC-RED-TEAM에서 가져왔습니다. 다른 모든 기능 개선은 운영 기술, 민첩성, 확장성 및 신속한 실행이 저하되지 않도록 보장하기 위해 구축되었습니다.
| 기능 | 설명 |
|---|---|
| 신속한 배포 | 여러 지역 환경에 위치한 단일 및 다중 대상 침해 지점에서 테스트 노력을 자동화하고 확장합니다. |
| 최신 명령 및 제어 | 임플란트 및 서버 통신: SILENTRINITY의 ECDHE 암호화 C2 통신 기능을 사용하여 C2 트래픽을 HTTPS를 통해 암호화합니다. 클라이언트 및 서버 통신: Asyncio, WebSockets 및 prompt-toolkit CLI를 사용합니다. 주목할 만한 기능: - 임플란트 위치 태깅: 여러 지역에서 신호 및 중단점을 관리할 때 유용합니다. NGROK 통합 - 페이로드를 스테이징하고 ngrok URL로 배포하는 데 유용합니다. |
| 표준 서명 헤더 | JSON PID: , Date(UTC), IsHighIntegrity, HostName, CurrentUser , IsUserAdmin, IPv4, IPv6 |
| JSON 로깅 지원 | ELK 스택 또는 JSON을 파싱할 준비가 된 모든 분석 플랫폼과 함께 증거를 간소화, 수집, 디코딩 및 분석합니다. |
| 무상태 메모리 내 코드 실행 | 낮음, 중간, 높은 무결성으로 unmanaged PowerShell process에서 Atomic Red Team 테스트를 실행합니다. |
| 동적 공격 형성 | ARTC2를 재컴파일하거나 다시 시작하지 않고 공격 체인을 실행합니다. 현재 세 가지 공격 기능인 Attack Chains, Attack Profiles 및 Attack Scenarios를 지원합니다. |
| 모듈식 페이로드 전달 | ARTC2는 SILENTRINITY 프레임워크를 활용하여 unmanaged powershell 및 stageless powershell 스테이저를 사용하여 메모리에서 Red Team Atomic 테스트 페이로드를 컴파일하고 실행합니다. "있는 그대로" |
| 운영 관리 | 컨트롤러 실행 및 증거 수집을 위해 작업 ID가 포함됩니다. 이벤트 분석 및 증거 상관 관계에 유용합니다. "job_id": "D3l820IWpyi67" |
조직은 다음을 필요로 합니다:
기본적으로 ARTIC-C2 로그는 ARTIC-C2의 현재 작업 디렉터리인 ./logs/에 기록됩니다. 세션 로그에는 다음이 포함됩니다:
utc_timestamp: UTC 타임스탬프session: 대상 세션 GUIDjob_id: 고유 작업 실행 IDttp_data: 기술 IDevidence: 침해 지점 대상에서 수집된 Base64 인코딩 증거evidence_status: 실행된 TTP가 차단되었는지 여부를 나타내는 상태.
실행 서명 헤더
실행 서명 헤더는 방어 체계가 원자 테스트를 차단하는지 확인하는 데 사용됩니다. 때로는 원자 명령이 STDOUT에 데이터를 반환하지 않을 수 있습니다. 그러나 실행 서명 헤더가 헤더 정보를 반환하면 소스 코드가 컴파일되어 CLR에 로드되고 대상 침해 지점에서 실행되었음을 나타냅니다. 실행 서명 헤더에는 다음이 포함됩니다:
PID: 기술 실행 중 사용된 PIDDate: 침해 지점 대상에서 생성된 UTC 스탬프IsHighIntegrity: 프로세스 무결성 상태HostName: 침해 지점 대상 호스트 이름CurrentUser: 현재 사용자. 사용자가 가장될 때 추적하는 데 유용IsUserAdmin: 관리자 상태IPv4: IPv4 주소 정보IPv6: IPv6 주소 정보샘플 실행 이벤트 로그
T1069.001-2가 메모리에서 실행되었습니다
2021-08-21 07:42:21,146 - {"utc_timestamp": "2021-08-21T07:42:21Z", "msg": "Technique executed:", "controller": "Discovery/T1069.001-2", "last_updated_by": "ARMADO, Inc.",
"ttp_id": "T1069.001", "ttp_opts": {"OutString": {"Description": "Appends Out-String to the PowerShellCode", "Required": false, "Value": true}, "BypassLogging":
{"Description": "Bypasses ScriptBlock and Techniques logging", "Required": false, "Value": true}, "BypassAmsi": {"Description": "Bypasses AMSI", "Required": false, "Value": true}},
"decompressed_file": "n/a", "file_name": "n/a", "gzip_file": "n/a", "language": "boo", "references": ["System.Management.Automation"], "run_in_thread": "n/a", "job_id": "B5ppBWed5NF6c"}
샘플 증거 수집 로그
T1069.001-2 실행 후 대상 침해 지점에서 증거가 수집되었습니다.
2021-08-21 07:42:25,076 - {"utc_timestamp": "2021-08-21T07:42:25Z", "session": "17ed378a-8cb9-4690-9087-e894c2b1e0a2", "job_id": "B5ppBWed5NF6c", "ttp_data": "T1069.001", "evidence": "IntQSUQ6IDU1NTYsIERhdGUoVVRDKTogMjAyMS0wOC0yMVQwNzo0MjoyNC45MDczMjQ5WiwgSXNIaWdoSW50ZWdyaXR5OiB0cnVlLCBIb3N0TmFtZTogYWQtZGMxLCBDdXJyZW50VXNlcjogZGVlcHJvb3RcXHJ1c3NlbF9oYW5jb2NrLCBJc1VzZXJBZG1pbjogdHJ1ZSwgSVB2NDogWzEwLjEuMC4xMDAsIDE2OS4yNTQuMTM0LjExMV0sIElQdjY6IFtmZTgwOjpkZGUxOjIyYTo3YmEzOmZlMGIlNSwgZmU4MDo6YjhmODpiNDIxOjI3Yzg6ODY2ZiUxMV19XHJcbk5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4tLS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuQ2VydCBQdWJsaXNoZXJzICAgICAgICAgICAgICAgICAgICAgICAgIE1lbWJlcnMgb2YgdGhpcyBncm91cCBhcmUgcGVybWl0dGVkIHRvIHB1Ymxpc2ggY2VydGlmaWNhdGVzIHRvIHRoZSBkaXJlY3RvcnkgICAgXHJcblJBUyBhbmQgSUFTIFNlcnZlcnMgICAgICAgICAgICAgICAgICAgICBTZXJ2ZXJzIGluIHRoaXMgZ3JvdXAgY2FuIGFjY2VzcyByZW1vdGUgYWNjZXNzIHByb3BlcnRpZXMgb2YgdXNlcnMgICAgICAgICAgICAgIFxyXG5BbGxvd2VkIFJPREMgUGFzc3dvcmQgUmVwbGljYXRpb24gR3JvdXAgTWVtYmVycyBpbiB0aGlzIGdyb3VwIGNhbiBoYXZlIHRoZWlyIHBhc3N3b3JkcyByZXBsaWNhdGVkIHRvIGFsbCByZWFkLW9ubHkgZG8uLi5cclxuRGVuaWVkIFJPREMgUGFzc3dvcmQgUmVwbGljYXRpb24gR3JvdXAgIE1lbWJlcnMgaW4gdGhpcyBncm91cCBjYW5ub3QgaGF2ZSB0aGVpciBwYXNzd29yZHMgcmVwbGljYXRlZCB0byBhbnkgcmVhZC1vbmx5Li4uXHJcbiI=",
"evidence_status": "1"}
샘플 헤더 서명
"{PID: 5556, Date(UTC): 2020-01-02T06:55:47Z, IsHighIntegrity: true, HostName: ad-dc1, CurrentUser: artic\\c2operator, IsUserAdmin: true,
IPv4: [10.1.0.100, 169.254.134.111], IPv6: [fe80::dde1:22a:7ba3:fe0b%5, fe80::b8f8:b421:27c8:866f%11]}
샘플 Base64 디코딩 증거 로그
"{PID: 5556, Date(UTC): 2021-08-21T07:42:24.9073249Z, IsHighIntegrity: true, HostName: ad-dc1, CurrentUser: deeproot\\russel_hancock, IsUserAdmin: true,
IPv4: [10.1.0.100, 169.254.134.111], IPv6: [fe80::dde1:22a:7ba3:fe0b%5, fe80::b8f8:b421:27c8:866f%11]}
Name Description
---- -----------
Cert Publishers Members of this group are permitted to publish certificates to the directory
RAS and IAS Servers Servers in this group can access remote access properties of users
Allowed RODC Password Replication Group Members in this group can have their passwords replicated to all read-only do...
Denied RODC Password Replication Group Members in this group cannot have their passwords replicated to any read-only...
"
기본적으로 리스너는 시스템 인터페이스에 HTTPS:443 및 HTTP:80으로 바인딩됩니다. 이들은 가정된 침해 지점 대상에서 접근 가능해야 합니다. 스테이저를 생성하기 전에 :> listeners 컨텍스트에서 콜백 URL을 설정하십시오.
git clone https://github.com/ARMADOinc/Atomic-Red-Team-intel-C2.gitcd ./Atomic-Red-Team-intel-C2./install.sh install배포 옵션
ARTIC-C2는 모든 원자 테스트 케이스 실행 요구 사항에 맞는 유연한 배포 모델을 지원합니다. 캐싱과 관련된 몇 가지 클라이언트 측 콘솔 종속성이 있지만, 클라이언트 콘솔은 팀 서버와 동일한 시스템에서 실행될 필요는 없습니다. 곧 전용 클라이언트를 패키징하여 출시할 예정입니다.
참고: 아래 예제는 ARTIC-C2가 동일한 인스턴스에서 시작된다고 가정합니다.
기본 포트에서 WSS 시작 및 임시 로그 생성
artic2.py wss 127.0.0.1 Art1.c25rvr >> /var/log/artic2.log &artic2.py client wss://operator:[email protected]:5000기본 포트에서 WSS 시작 (포그라운드)
artic2.py wss 127.0.0.1 Art1.c25rvrartic2.py client wss://operator:[email protected]:5000포트 5443에서 WSS 시작, 10.0.0.43에 바인딩, 임시 로그 생성 및 두 클라이언트 연결
artic2.py wss 10.0.0.43:5443 Art1.c25rvr >> /var/log/artic2.log &artic2.py client wss://operator1:[email protected]:5443artic2.py client wss://operator2:[email protected]:5443