분석가의 검토를 견디도록 설계된 새로운 악성코드
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
보고서는 분석과 탐지를 견디기 위해 설계된 네 가지 서로 다른 페이로드를 포함하는 정교한 다단계 악성코드 캠페인을 조사합니다. 여기에는 강력하게 난독화된 C++ 로더인 PavokwiLoader, 맞춤형 원격 관리 에이전트인 RMMCRAT, 강제 암호 해독을 사용하는 Python 기반 로더, 그리고 Cobalt Strike 비콘이 포함됩니다. 악성코드는 안티 디버깅, 안티 VM 검사, ETW 우회, 프로세스 인젝션을 포함한 고급 회피 기술을 사용합니다.
조사
두 연구팀은 SEO 포이즈닝, 맞춤형 RMM 도구 및 Cobalt Strike와 관련된 침입을 추적하기 위해 협력했습니다. 조사는 MBA 산술, 맞춤형 API 해싱 및 위치 의존적 ROR 암호와 같은 복잡한 난독화 기술을 발견하기 위해 페이로드의 광범위한 리버스 엔지니어링을 필요로 했습니다. 분석가들은 또한 Chrome의 App-Bound Encryption을 우회하는 특정한 기술과 인프라 패턴을 식별했습니다.
완화
특정 프로세스가 explorer.exe 예상치 못하거나 수상한 프로세스를 실행하는 경우 비정상적인 프로세스-부모 관계를 모니터링해야 합니다. 방어자는 또한 Windows NT 하의 무단 레지스트리 변경 사항을 주시해야 합니다. CurrentVersionWindows 키와 예기치 않은 예약 작업 생성도 마찬가지입니다. 보안 제어는 UAC 우회 시도와 관련된 APPINFO RPC 인터페이스의 수상한 사용을 식별하도록 구성되어야 합니다.
대응
악의적인 활동이 감지되면 대응자는 영향을 받은 엔드포인트를 격리하고 %APPDATA%fontcache_ms 마커를 검사해야 합니다. 알 수 없는 도메인에 대한 WebSocket 연결과 JARM과 같은 비정상적인 TLS 지문에 대한 네트워크 텔레메트리를 검토하십시오. 27d40d40d00040d1dc42d43d00041d6183ff1bfae51ebd88d70384363d525c. stdin 파이프를 통해 실행된 난독화된 명령을 위한 PowerShell 스크립트 블록 로깅 이벤트(Event ID 4104)를 분석하십시오.
공격 흐름
이 부분은 아직 업데이트 중입니다.
탐지
수상한 폴더에서의 Python 실행(cmdline을 통한)
숨겨진 PowerShell 명령줄을 통한 실행 가능성(cmdline을 통해)
비정상적인 코드 페이지 변경 실행(cmdline을 통한)
수상한 PowerShell 문자열(cmdline을 통한)
짧은 파일 이름(cmdline을 통해)
Windows Defender 선호 설정의 수상한 변경(powershell을 통해)
일반적이지 않은 최상위 도메인(TLD) DNS 요청에 의한 수상한 지휘통제(dns를 통해)
분석가를 견디기 위해 제작된 새로운 악성코드를 탐지하기 위한 IOC(HashSha256)
분석가를 견디기 위해 제작된 새로운 악성코드를 탐지하기 위한 IOC(HashMd5)
분석가를 견디기 위해 제작된 새로운 악성코드를 탐지하기 위한 IOC(SourceIP)
분석가를 견디기 위해 제작된 새로운 악성코드를 탐지하기 위한 IOC(DestinationIP)
레지스트리 키와 예약 작업을 통한 지속성[Windows 레지스트리 이벤트]
ZwCreateUserProcess 및 ZwQueueApcThread를 통한 프로세스 인젝션[Windows 프로세스 생성]
시뮬레이션 실행
-
공격 내러티브 & 명령: 상대방이 초기 접근을 획득했으며 부팅 후에도 남아있는 지속성을 확립하려고 합니다. 일반적인 AV 탐지를 피하기 위해, 이미 알려졌지만 특정한 레지스트리 하이재킹 기술을 사용하기로 결정합니다. 공격자는 다음을 수정하려고 시도할 것입니다.
UserInitMprLogonScript레지스트리 키를 악성 페이로드를 가리키도록 하는 것입니다. 이 동작은 Sysmon Event ID 13을 생성하여 탐지 규칙의selection_registry부분을 트리거하는 데 의도됩니다. -
회귀 테스트 스크립트:
# UserInitMprLogonScript를 통한 지속성 시뮬레이션 $registryPath = "HKLM:SOFTWAREMicrosoftWindows NTCurrentVersionWinlogon" $name = "UserInitMprLogonScript" $value = "C:WindowsTempmalicious_payload.exe" Write-Host "[+] 레지스트리에 $name 설정 시도 중..." try { New-ItemProperty -Path $registryPath -Name $name -Value $value -PropertyType String -Force -ErrorAction Stop Write-Host "[+] 레지스트리 수정 성공. SIEM에서 Sysmon Event ID 13을 확인하십시오." } catch { Write-Host "[-] 레지스트리 수정 실패. 스크립트가 관리자 권한으로 실행되고 있는지 확인하십시오." -ForegroundColor Red } -
정리 명령:
# 악성 레지스트리 항목 정리 $registryPath = "HKLM:SOFTWAREMicrosoftWindows NTCurrentVersionWinlogon" $name = "UserInitMprLogonScript" if (Get-ItemProperty -Path $registryPath -Name $name -ErrorAction SilentlyContinue) { Remove-ItemProperty -Path $registryPath -Name $name -Force Write-Host "[+] 정리 성공: 레지스트리 키가 제거되었습니다." } else { Write-Host "[-] 레지스트리 키를 찾을 수 없습니다. 정리할 것이 없습니다." }