콘텐츠로 이동

아토믹 레드 팀

명령어설명
git clone https://github.com/redcanaryco/atomic-red-team.gitAtomic Red Team 저장소 복제
cd atomic-red-team저장소로 이동
Install-Module -Name invoke-atomicredteam,powershell-yaml -Scope CurrentUserPowerShell 모듈 설치
Import-Module "C:\AtomicRedTeam\invoke-atomicredteam\Invoke-AtomicRedTeam.psd1" -ForcePowerShell 모듈 가져오기
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.001PowerShell 실행
Invoke-AtomicTest T1059.003Windows 명령 셸
Invoke-AtomicTest T1059.004Unix 셸
Invoke-AtomicTest T1059.006Python 실행
Invoke-AtomicTest T1053.005예약된 작업/작업
명령어설명
Invoke-AtomicTest T1547.001레지스트리 실행 키
Invoke-AtomicTest T1053.005예약된 작업
Invoke-AtomicTest T1543.003Windows 서비스
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.010Regsvr32
Invoke-AtomicTest T1036가장
명령어설명
----------------------
Invoke-AtomicTest T1003.001LSASS 메모리 덤프
Invoke-AtomicTest T1003.002보안 계정 관리자
Invoke-AtomicTest T1003.003NTDS.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.002SMB/Windows 관리 공유
Invoke-AtomicTest T1021.003분산 컴포넌트 오브젝트 모델
Invoke-AtomicTest T1021.006Windows 원격 관리
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.004DNS (도메인 네임 시스템)
Invoke-AtomicTest T1090.003다중 홉 프록시
Invoke-AtomicTest T1573.002비대칭 암호화
명령어설명
----------------------
Invoke-AtomicTest T1041C2 채널을 통한 데이터 유출
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-AtomicCoverageMITRE 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