로컬 호스트 정보 수집

MITRE ATTACK - TA0007 (T1082, T1016, ...)

초기 침투 이후 호스트에 접근 했다면 가장 먼저 해야할 일은 호스트/로컬 정보 수집이다. 이 호스트가 어떤 호스트인지, 생성된 프로세스가 어떤 유저의 컨텍스트(context)를 갖고 있는지, 어떤 AV/EDR 솔루션이 있는지 등을 파악하는 것이다. 이 단계를 잘 거쳐야만 레드팀으로서는 탐지 당하지 않고 안전하게 필요한 공격들을 수행할 수 있게 된다. 또한, 로컬 정보 수집으로 얻어진 정보들은 로컬 권한 상승 공격에 사용되기도 한다.

이 페이지에서는 다음과 같은 정보들에 대해 알아본다.

  1. 로컬 정보 수집을 실행할 때 알아봐야할 정보

  2. 작전 보안을 위해 조심해야할 점

  3. 로컬 정보 수집 툴

정보 수집에 사용되는 명령어들은 파워쉘 페이지C# 페이지를 참고한다.

로컬 정보 수집 - 정보

기본 정보

  • 호스트 이름

  • 도메인 이름

  • 운영체제 이름 및 버전

  • 윈도우핫픽스, 보안 패치 리스트

  • Network Interface Cards (NICs) - Dual-Homed 체크

  • IP, subnet mask, gateway

  • ARP table

유저 정보

  • 유저 이름

  • 유저 권한

  • 로컬 유저 그룹

프로세스 정보

  • 프로세스 리스트 확인

  • 현 프로세스의 32비트, 64비트 확인 (IsWow64Process(), GetSystemInfo())

보안 기술 확인

  • AV, EDR, Defender, AMSI, sysmon, logging frameworks

  • CredGuard

  • .NET Framework 버전 (4.8+ 이라면 .NET AMSI 확인)

  • LAPS 적용 확인

  • 파워쉘 v2

  • Applocker

작전 보안

타겟 호스트에 쉘을 얻자마자 whoami, ipconfig 등의 윈도우 기본 PE 바이너리(whoami는 명령어가 아니다)를 이용해 로컬 정보 수집을 한다면 그 즉시 EDR 솔루션에게 발각되어 프로세스가 종료될 것이다. 기본 명령어 및 기본 프로세스를 이용해 로컬 정보 수집을 하던 시대는 2000년대 이후로 끝났다.

작전보안을 지키며 로컬 정보를 수집하고 싶다면 제3자 프로그래밍 언어 (로 만들어진 툴) 을 이용해 WinAPI혹은 direct 시스템 콜을 이용해 메모리상에서 윈도우 커널과 소통해야한다. 물론 이는 쉬운 일이 아니고, 실제 작전이 실행되고 있을 때 일일히 WinAPI 혹은 direct syscall을 코딩해 사용할 수는 없는 노릇이다.

이 문제점을 해결하기 위해 레드팀들은 로컬 정보 수집을 위한 툴을 만들기 시작했다.

실습과 툴

2022년대 기준 로컬 정보 수집은 비컨 프로세스의 메모리상에서 winapi/direct syscall 툴을 실행하거나, 다른 프로세스에 인젝션을 통해 진행한다.

유명한 로컬 정보 수집 툴들은 다음과 같다:

sliver 비컨에서 Seatbelt 라는 로컬 정보 수집 툴을 이용한다.

sliver (LOST_QUICKSAND) > seatbelt '' "-group=system"

< ... > 

====== WindowsAutoLogon ======                                                                                        
                                                                                                                      
  DefaultDomainName              : CHOI                                                                               
  DefaultUserName                : Administrator                                                                      
  DefaultPassword                :                                                                                    
  AltDefaultDomainName           :                                                                                    
  AltDefaultUserName             :                                                                                    
  AltDefaultPassword             :                                                                                    
                                                           
====== WindowsDefender ======         
                                                           
Locally-defined Settings:                                  
                                                           
                                                           
                                                                                                                      
GPO-defined Settings:                                      
====== WindowsEventForwarding ======  
                                                           
====== WindowsFirewall ======                              
                                                           
Collecting Windows Firewall Non-standard Rules
                                                                                                                      
                                                                                                                      
Location                     : SOFTWARE\Policies\Microsoft\WindowsFirewall

< ... >

Last updated