아토믹 레드 팀
| 명령어 | 설명 |
|---|---|
git clone https://github.com/redcanaryco/atomic-red-team.git | Atomic Red Team 저장소 복제 |
cd atomic-red-team | 저장소로 이동 |
Install-Module -Name invoke-atomicredteam,powershell-yaml -Scope CurrentUser | PowerShell 모듈 설치 |
Import-Module "C:\AtomicRedTeam\invoke-atomicredteam\Invoke-AtomicRedTeam.psd1" -Force | PowerShell 모듈 가져오기 |
Invoke-AtomicTest T1003.001 -ShowDetails | 테스트 세부 정보 표시 |
| 명령어 | 설명 |
|---|---|
Invoke-AtomicTest T1003.001 | 특정 원자 테스트 실행 |
Invoke-AtomicTest T1003.001 -TestNumbers 1 | 특정 테스트 번호 실행 |
Invoke-AtomicTest T1003.001 -ShowDetails | 테스트 세부 정보를 실행하지 않고 표시 |
Invoke-AtomicTest T1003.001 -CheckPrereqs | 전제 조건 확인 |
Invoke-AtomicTest T1003.001 -GetPrereqs | 필수 구성 요소 설치 |
Invoke-AtomicTest T1003.001 -Cleanup | 테스트를 위한 정리 실행 |
| 명령어 | 설명 |
|---|---|
Get-AtomicTechnique | 사용 가능한 기술들 나열하기 |
Get-AtomicTechnique -Path "C:\AtomicRedTeam\atomics" | 특정 경로의 기술 목록 |
| `Get-AtomicTechnique \ | Where-Object {$_.DisplayName -match “credential”}` |
Get-AtomicTechnique T1003 | 특정 기술에 대한 세부 정보 가져오기 |
| 명령어 | 설명 |
|---|---|
Invoke-AtomicTest T1566.001 | 스피어피싱 첨부파일 |
Invoke-AtomicTest T1566.002 | 스피어피싱 링크 |
Invoke-AtomicTest T1190 | 공개 지향 애플리케이션 악용 |
Invoke-AtomicTest T1133 | 외부 원격 서비스 |
Invoke-AtomicTest T1200 | 하드웨어 추가 |
| 명령어 | 설명 |
|---|---|
Invoke-AtomicTest T1059.001 | PowerShell 실행 |
Invoke-AtomicTest T1059.003 | Windows 명령 셸 |
Invoke-AtomicTest T1059.004 | Unix 셸 |
Invoke-AtomicTest T1059.006 | Python 실행 |
Invoke-AtomicTest T1053.005 | 예약된 작업/작업 |
| 명령어 | 설명 |
|---|---|
Invoke-AtomicTest T1547.001 | 레지스트리 실행 키 |
Invoke-AtomicTest T1053.005 | 예약된 작업 |
Invoke-AtomicTest T1543.003 | Windows 서비스 |
Invoke-AtomicTest T1136.001 | 로컬 계정 생성 |
Invoke-AtomicTest T1098 | 계정 조작 |
| 명령어 | 설명 |
| --------- | ------------- |
Invoke-AtomicTest T1548.002 | 사용자 계정 컨트롤 우회 |
Invoke-AtomicTest T1055 | 프로세스 인젝션 |
Invoke-AtomicTest T1134 | 액세스 토큰 조작 |
Invoke-AtomicTest T1068 | 권한 상승을 위한 익스플로잇 |
| 명령어 | 설명 |
| --------- | ------------- |
Invoke-AtomicTest T1027 | 난독화된 파일 또는 정보 |
Invoke-AtomicTest T1070.004 | 파일 삭제 |
Invoke-AtomicTest T1562.001 | 도구 비활성화 또는 수정 |
Invoke-AtomicTest T1218.010 | Regsvr32 |
Invoke-AtomicTest T1036 | 가장 |
| 명령어 | 설명 |
| --------- | ------------- |
Invoke-AtomicTest T1003.001 | LSASS 메모리 덤프 |
Invoke-AtomicTest T1003.002 | 보안 계정 관리자 |
Invoke-AtomicTest T1003.003 | NTDS.dit |
Invoke-AtomicTest T1110.001 | 패스워드 스프레이 |
Invoke-AtomicTest T1555.003 | 웹 브라우저의 자격 증명 |
| 명령어 | 설명 |
| --------- | ------------- |
Invoke-AtomicTest T1087.001 | 로컬 계정 검색 |
Invoke-AtomicTest T1087.002 | 도메인 계정 발견 |
Invoke-AtomicTest T1018 | 원격 시스템 검색 |
Invoke-AtomicTest T1083 | 파일 및 디렉터리 검색 |
Invoke-AtomicTest T1057 | 프로세스 디스커버리 |
| 명령어 | 설명 |
| --------- | ------------- |
Invoke-AtomicTest T1021.001 | 원격 데스크톱 프로토콜 |
Invoke-AtomicTest T1021.002 | SMB/Windows 관리 공유 |
Invoke-AtomicTest T1021.003 | 분산 컴포넌트 오브젝트 모델 |
Invoke-AtomicTest T1021.006 | Windows 원격 관리 |
Invoke-AtomicTest T1550.002 | 해시 패스(Pass the Hash) |
| 명령어 | 설명 |
| --------- | ------------- |
Invoke-AtomicTest T1005 | 로컬 시스템의 데이터 |
Invoke-AtomicTest T1039 | 네트워크 공유 드라이브의 데이터 |
Invoke-AtomicTest T1113 | 화면 캡처 |
Invoke-AtomicTest T1123 | 오디오 캡처 |
Invoke-AtomicTest T1115 | 클립보드 데이터 |
| 명령어 | 설명 |
| --------- | ------------- |
Invoke-AtomicTest T1071.001 | 웹 프로토콜 |
Invoke-AtomicTest T1071.004 | DNS (도메인 네임 시스템) |
Invoke-AtomicTest T1090.003 | 다중 홉 프록시 |
Invoke-AtomicTest T1573.002 | 비대칭 암호화 |
| 명령어 | 설명 |
| --------- | ------------- |
Invoke-AtomicTest T1041 | C2 채널을 통한 데이터 유출 |
Invoke-AtomicTest T1048.003 | 암호화되지 않은/난독화된 비-C2 프로토콜을 통한 데이터 유출 |
Invoke-AtomicTest T1567.002 | 클라우드 스토리지로 데이터 유출 |
| 명령어 | 설명 |
| --------- | ------------- |
Invoke-AtomicTest T1485 | 데이터 파기 |
Invoke-AtomicTest T1486 | 영향을 위해 암호화된 데이터 |
Invoke-AtomicTest T1490 | 시스템 복구 방지 |
Invoke-AtomicTest T1498 | 네트워크 서비스 거부 |
| 명령어 | 설명 |
| --------- | ------------- |
Invoke-AtomicTest T1003.001 -InputArgs @{"output_file"="C:\temp\lsass.dmp"} | 사용자 정의 매개변수 전달 |
Invoke-AtomicTest T1087.001 -InputArgs @{"username"="testuser"} | 사용자 이름 매개변수 지정 |
| 명령어 | 설명 |
| --------- | ------------- |
Invoke-AtomicTest T1003.001,T1003.002,T1003.003 | 여러 테스트 실행 |
| `Get-AtomicTechnique \ | ForEach-Object {Invoke-AtomicTest $_.Technique}` |
| 명령어 | 설명 |
| --------- | ------------- |
Invoke-AtomicTest T1003.001 -LoggingModule "Attire-ExecutionLogger" | 로깅 활성화 |
Invoke-AtomicTest T1003.001 -ExecutionLogPath "C:\logs\atomic.log" | 로그 경로 지정 |
Invoke-AtomicTest T1003.001 -TimeoutSeconds 60 | 실행 시간 초과 설정 |
Atomic Red Team Configuration
atomics_folder: “C:\AtomicRedTeam\atomics” log_folder: “C:\AtomicRedTeam\logs” default_timeout: 120 check_prereqs: true get_prereqs: false cleanup: true
### Environment Variables
| 변수 | 설명 |
|---------|-------------|
| `$env:ATOMIC_RED_TEAM_PATH` | Atomic Red Team 디렉토리 경로 |
| `$env:ATOMIC_LOG_PATH` | 실행 로그의 경로 |
| `$env:ATOMIC_TIMEOUT` | 테스트의 기본 타임아웃 |
## Linux/macOS Usage
### Installation
| 명령어 | 설명 |
|---------|-------------|
| `git clone https://github.com/redcanaryco/atomic-red-team.git` | 저장소 복제 |
| `cd atomic-red-team` | 디렉토리로 이동하기 |
| `chmod +x atomics/*/src/*` | 스크립트 실행 가능하게 만들기 |
### Execution
| 명령어 | 설명 |
|---------|-------------|
| `bash atomics/T1059.004/src/T1059.004.sh` | bash 기반 테스트 실행 |
| `python3 atomics/T1059.006/src/T1059.006.py` | Python 기반 테스트 실행 |
| `./atomics/T1083/src/T1083-1.sh` | 특정 테스트 변형 실행 |
## Integration with SIEM
### Splunk Integration
| 명령어 | 설명 |
|---------|-------------|
| `Invoke-AtomicTest T1003.001 -LoggingModule "Splunk"` | Splunk에 로그 기록 |
| `index=atomic_red_team technique=T1003.001` | Splunk에서 테스트 결과 검색 |
### ELK Stack Integration
| 명령어 | 설명 |
|---------|-------------|
| `Invoke-AtomicTest T1003.001 -LoggingModule "Elasticsearch"` | Elasticsearch에 로그 기록하기 |
## Custom Test Development
### Test Structure
```yaml
attack_technique: T1003.001
display_name: "LSASS Memory"
atomic_tests:
- name: Dump LSASS.exe Memory using ProcDump
auto_generated_guid: 0be2230c-9ab3-4ac2-8826-3199b9a0ebf8
description: |
The memory of lsass.exe is often dumped for offline credential theft attacks.
supported_platforms:
- windows
input_arguments:
output_file:
description: Path where resulting dump should be placed
type: Path
default: C:\Windows\Temp\lsass_dump.dmp
executor:
command: |
procdump.exe -accepteula -ma lsass.exe #{output_file}
name: command_prompt
Custom Test Execution
| 명령어 | 설명 |
|---|---|
Invoke-AtomicTest -AtomicsFolder "C:\CustomAtomics" T9999.001 | 사용자 정의 테스트 실행 |
Reporting and Analysis
| 명령어 | 설명 |
|---|---|
Get-AtomicTestResults | 실행 결과 가져오기 |
Export-AtomicTestResults -Format CSV -Path "results.csv" | CSV로 결과 내보내기 |
Get-AtomicCoverage | MITRE ATT&CK 커버리지 표시 |
Show-AtomicTestMatrix | 테스트 매트릭스 표시 |
Automation and Scheduling
PowerShell Scheduled Jobs
$trigger = New-JobTrigger -Daily -At "2:00 AM"
Register-ScheduledJob -Name "AtomicRedTeam" -Trigger $trigger -ScriptBlock {
Import-Module Invoke-AtomicRedTeam
Invoke-AtomicTest T1003.001 -Cleanup
}
Continuous Testing
| 명령어 | 설명 |
|---|---|
Start-AtomicContinuousTesting -Techniques @("T1003.001","T1087.001") -Interval 3600 | 매 시간마다 테스트 실행 |
Security Considerations
- Run tests in isolated environments only
- Ensure proper cleanup after test execution
- Monitor for false positives in security tools
- Document all test executions for compliance
- Use least privilege principles
- Implement proper access controls
- Regular backup before testing
- Coordinate with security operations center
Best Practices
- Start with low-impact techniques
- Always run prerequisite checks first
- Use cleanup functions after testing
- Document test results and observations
- Coordinate with blue team activities
- Test in non-production environments first
- Implement proper logging and monitoring
- Regular updates to test library
- Validate detection capabilities
- Create custom tests for specific environments
Troubleshooting
| 명령어 | 설명 |
|---|---|
Get-Help Invoke-AtomicTest -Full | 자세한 도움말 받기 |
Test-AtomicTestInputArgs T1003.001 | 입력 인자 유효성 검사 |
Get-AtomicTestPrerequisites T1003.001 | 전제 조건 확인 |
Repair-AtomicTest T1003.001 | 테스트 문제 해결 시도 |
Common Issues
- Antivirus interference with test execution
- Missing prerequisites or dependencies
- Insufficient privileges for test execution
- Network connectivity issues for external resources
- Path-related issues on different operating systems