hhkb.dev

BLOG

2025-12-26 / 레드팀풀체인 · 06

내부 정찰

1. 내부 정찰의 목적

초기 침투와 거점 확보가 끝난 뒤에는, 현재 장악한 시스템의 문맥(Context)을 파악해야 한다. 그래야 다음 단계인 내부 이동이나 자료 유출 전략을 제대로 세울 수 있다.

  • 핵심 질문: "나는 누구인가?", "여기는 어디인가?", "내가 속한 환경은 무엇인가?"
  • Blend-In 관점: 정상 사용자와 프로세스 사이에 자연스럽게 섞이려면, 먼저 환경을 정확히 알아야 한다.

2. 호스트 정보 수집(Host Reconnaissance)

장악한 엔드포인트 안에서 얻을 수 있는 정보를 먼저 확인한다. 탐지를 줄이려면 가능하면 Living Off The Land(LotL) 도구나 C2 프레임워크의 BOF 같은 내장 기능을 쓰는 편이 낫다.

2.1. 프로세스 컨텍스트(Process Context)

지금 악성 코드가 어떤 프로세스 아래에서 돌고 있는지부터 봐야 한다.

  • Integrity Level(MIC)
    • Medium: 일반 사용자 권한
    • High: 관리자 권한(UAC 우회 필요)
    • System: 윈도우 최고 권한
    • 보통 High 이상은 돼야 Mimikatz 같은 자격 증명 탈취 공격을 시도할 수 있다.
  • 부모, 자식 관계(Parent-Child Relationship)
    • 작업 스케줄러로 실행됐다면 부모가 svchost.exe인 편이 자연스럽다.
    • explorer.exe 아래의 notepad.exe 같은 정상 트리인지도 확인해야 한다.
    • 반대로 Word.exepowershell.exe를 띄우거나, Updater 프로세스가 며칠씩 떠 있으면 의심을 산다.

2.2. 사용자 및 세션 정보

  • whoami /groups: 현재 사용자가 속한 로컬, 도메인 그룹을 확인한다. Administrators 포함 여부가 특히 중요하다.
  • Query Login: 현재 호스트에 로그인된 다른 사용자 세션을 본다. 다른 세션이 있으면 해당 사용자의 토큰이나 티켓(TGT)을 노려 횡적 이동 발판을 만들 수 있다.

2.3. 시스템 정보(System Info via BOF)

  • Hostname: 이름 규칙을 보면 호스트 역할(Web, DB, Dev 등)을 대략 짐작할 수 있다.
  • Uptime: 시스템 가동 시간을 본다.
    • 며칠 이상 계속 켜져 있다면 사용자가 PC를 잘 끄지 않는다는 뜻이라, 지속성 유지 부담이 줄 수 있다.
    • 반대로 칼같이 끄는 사용자라면 지속성 설계를 더 신중히 해야 한다.
  • Protection: 설치된 AV, EDR 프로세스를 확인한다.

3. 도메인 정보 수집(Domain Reconnaissance)

호스트가 Active Directory 도메인에 붙어 있다면, 이제는 전체 네트워크 구조와 권한 관계를 봐야 한다.

3.1. 수동 LDAP 쿼리(Manual LDAP Query)

자동화 도구를 크게 돌리지 않고, 필요한 정보만 조용히 조회하는 방식이다.

  • OU Walking: Organizational Unit(OU) 구조를 단계적으로 보면서 지역, 부서, 서버, PC 그룹 구성을 파악한다.
    • Query 예시: (objectClass=organizationalUnit)
  • Object 식별: 사용자, 그룹, 컴퓨터 같은 주요 객체를 확인한다.
    • Super Users, Service Accounts처럼 특권 계정이 몰린 OU를 먼저 찾는 편이 효율적이다.

3.2. 자동화 도구: BloodHound

BloodHound는 AD 환경의 공격 경로(Attack Path)를 시각화하는 데 가장 강력한 도구 중 하나다.

  • 작동 원리: SharpHound가 LDAP 쿼리와 SMB 세션으로 정보를 모아, 그래프 DB(Neo4j)에 넣고 시각화한다.
  • 탐지 위험: 기본 설정은 매우 시끄럽다(Noisy). LDAP 쿼리량이 늘고, SMB 접속도 광범위하게 시도하기 때문에 최신 EDR이 금방 잡을 수 있다.
  • OpSec 적용:
    • CollectionMethodDCOnly로 두면 SMB 스캔을 빼고 도메인 컨트롤러 상대로만 LDAP 쿼리를 던져 탐지 확률을 낮출 수 있다.
    • 국내 환경에서는 탐지가 느슨한 곳도 있지만, 그렇다고 안심하고 크게 돌리면 위험하다.

3.3. 프록시를 통한 수집

내부망에 직접 붙을 수 없다면, SOCKS Proxy(Chisel)와 Proxychains를 연동해 외부 Kali PC에서 내부 AD 대상으로 도구를 실행한다.

# Proxychains를 통해 Python 기반 BloodHound 수집기 실행
proxychains4 bloodhound-python -u 'user' -p 'pass' -d 'domain.local' -c DCOnly --zip