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

    不出網主機的幾種上線方式

    VSole2021-11-02 16:03:42

    前言

    拿到一臺邊緣機器后,內網的機器很有可能大多數都不出網,這時又想上線cs方便后續操作。本文就如何上線不出網主機的方式進行了總結。

    環境搭建

    目標內網機器

    • os:win server 2012
    • ip:192.168.57.137

    邊緣機器

    • os:win server 2012
    • ip1:192.168.1.103(出網)
    • ip2:192.168.57.136

    攻擊機器

    • os:kali liunx
    • ip:192.168.1.128

    • os:ubutu 16.04
    • vps ip:47.xxxxxxxx

    由于邊緣主機出網,選擇reverse反向連接,現在已經上線邊緣主機

    SMB Beacon

    該方法通過已有的父Beacon使用SMB協議進行正向連接不出網機器,要求目標開啟445端口,通過命名管道進行認證即可上線。其實有點像psexec這樣的工具,有用戶名和hash后,即可執行遠程命令,其原理相似。內網的機器密碼相同的情況很多,這也是為什么現在為了提高安全性不能批量設置密碼,內網滲透一但有了密碼往往有時候就宣告結束。

    并且有個好處就是SMB協議一般防火墻是不攔截的,在一定程度上可以規避防火墻攔截。

    先使用hashdump和logonpasswords命令抓一波密碼。由于這里是win2012系統,是無法直接抓取明文密碼的,這里也不需要去修改注冊表,或者通過mimilib.dll注入的方式去獲取明文密碼,有hash就足夠了,SMB驗證身份本身用的就是NTMLv2協議。

    這里是抓到了該機器上的hash

    有個小tips,如果對方機器是64位的,最好就用x64的exe上線就可以了,以前我覺得x32和x64都行。雖然都可以上線,但是如果用的是x32的beacon,很有可能是抓不到64位機器上的密碼的,使用cs集成的mimikatz會提示:32位的mimikatz無法抓取到64位機器的密碼。所以目標是最好就用64位就用64位的artifact。

    然后通過端口掃描,發現內網機器:

    到這里不懂原理的小白(我)可能就會直接使用cs自帶的psexec功能直接去橫向,恰巧我之前就是這么做的,想起來還挺有意思的。

    結果就是服務已經創建了,但是上不了線,那會兒自己心里想肯定是cs出bug了,還煩了一會兒,現在想起來還挺有意思的。

    本身是沒有問題的,說明psexec已經成功的完成了ntml認證,并且認證成功,但是這時候shell是反彈給邊緣機器的,如果要上線就要再新建一個SMB Beacon Listener。相當于通過邊緣機器再中轉一下,反彈shell到vps。

    選擇子Beacon:SMB Beacon。成功上線。

    (出去吃個飯回來內網機器ip變了。。)

    這里可以看下拓撲圖,是通過邊緣機器正向連接了不出網的內網主機。

    在external后面有一個oooo,這實際上是標明了當前SMB的連接狀態:

    SMB Beacon有兩個命令:link,unlink。

    unlink則會斷開連接,link會重新連接

    執行命令unlink

    unlink 192.168.57.140
    

    后面的oooo變成了oo oo,說明已經斷開連接,但是只是斷開了連接,進程并沒有被殺掉。

    使用命令重新回連:

    link 192.168.57.140
    

    我在實戰中暫時沒有用到過這個功能,但應該是有一定作用的,持久化后門,更加隱蔽?這里具體的實戰情景明白的師傅可以說一下。

    TCP Beacon

    這種方式一般試用于:密碼撞不上,內網機器有web服務。

    這里做個代理,假設已經寫入了shell文件,用冰蝎掛代理去連webshell。

    在cs上新增一個Listen,Tcp Beacon

    橫向的時候最好都使用這個帶s的windows可執行文件,s的含義為Stageless,相對的是Stager。下面是我自己的理解:

    Stager是分步式,分階段的,只用少部分代碼來請求和加載payload,cs的加載payload模式為反射加載beacon.dll,但這個beacon.dll并不在可執行文件中,而是在遠程C2服務端。
    Stageless則是將beacon.dll包含在可執行文件中,并且可能有寫額外的操作,于是文件比較大,特征也更明顯,但是適合橫向不出網機器,因為不出網所以有可能請求不了c2服務端上的beacon.dll。

    Stageless的可執行文件比Stager的可執行文件大了將近15倍。真的離譜。

    然后用冰蝎上傳beacon.exe。然后執行

    執行后使用connect 命令連接:

    connect 192.168.57.140
    

    拓撲圖如下,為tcp正向連接:

    同樣是可以使用unlink來斷開連接,這里與SMB Beacon不一樣的是,如果Beacon進程是以普通權限運行的話,進程會直接死掉,再connect就會失敗。

    這里由于是Administrator權限,unlink后可以通過connect重新連接回來。

    Reverse TCP Beacon

    也可以被稱為中繼上線。

    同樣需要有內網web,傳shell。右鍵跳板機shell,選擇Pivoting->Listener。

    Listen Host為內網ip。

    這里要注意一下,如果有多張網卡,這個默認的Listen Host是需要改的,需要填入同一網段的ip。

    比如我這里的跳板機器就有兩張網卡,默認填入的host是192.168.1.103,這個就需要改,因為內網不出網機器是無法訪問到192.168.1.103這張網卡的,只能訪問192.168.57.143(跳板機ip又變了)

    同樣生成Stageless的可執行文件。

    上傳后執行beacon.exe

    執行后回來看cs就已經上線,不需要link或者connect了。

    拓撲圖為反向的tcp連接

    值得注意的是,中繼方法無法unlink后重連,不管權限如何,一旦unlink后進程直接結束。要想重新上線只能重新執行beacon.exe。

    后記

    實際情況下,由于環境原因,網絡狀況錯綜復雜。比如:stageless的可執行文件比較大,又因為掛了代理,傳不上去怎么辦。其實就可以將beacon.exe上傳到跳板機器上,用windows自帶的certutil工具,直接在內網機器上請求下載跳板機上的beacon.exe。這樣確實是更加穩當的。

    上面這個tips是我再看星球中的@emmm…分享的pdf學到的,感謝分享。

    beacon內網ip
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    web、PC、DC都處于同一域環境,需要手動開啟weblogic服務
    因為 web 服務器同時連接了外,所以必須首先拿下。這里有關 web 服務器的滲透不展開講了,無非也就是利用漏洞,諸如:弱口令、上傳漏洞、遠程代碼執行、各種 cms 漏洞,總之都是可以找到寫入 webshell 的方法。成功寫入 webshell 后,接著就要上傳木馬控制 web 服務器,這里可以用 Metasploit或 Cobaltstrike。
    拿到一臺邊緣機器后,的機器很有可能大多數都不出,這時又想上線cs方便后續操作。
    現階段藍隊防守不單單僅限制于傳統的ip封禁以及高交互蜜罐的監控以及簡單的身份溯源,紅隊攻擊信息上報以及攻擊方式多樣化,包括參與攻擊的人員不單單限制于上報人員,所以對于藍隊來講溯源難度要匹配紅隊上報信息也是存在一定的難度,所以在攻防演練中藍隊的得分難度相對來說更難一點兒。
    靶機實戰記錄
    1.IPC橫向 IPC(Internet Process Connection)共享命名管道的資源,是為了實現進程間通信而開放的命名管道。IPC可以通過驗證用戶名和密碼獲得相應的權限,使用139、445端口。 1.1 利用條件
    0x01 外打點到Getshell目標站點:通過各種工具和在線網站,對子域名進行收集,并解析ip。發現主站存在CDN,使用fofa,搜索網站title、js等關鍵信息和子域名解析的ip對應的C段,發現真實ip。對真實ipip段進行掃描,發現一臺機器存在Weblogic中間件,使用exp進行測試,發現成功Getshell。administrator權限,使用免殺馬成功shell0x02 滲透有殺軟,做完免殺之后,直接上線CS,進行進程遷移。0x05 攻擊結果使用域管帳戶密碼對域機器進行批量上線,部分被上線機器列表如下。
    需求配置vps一臺域名CDNCobalt Strike4.0?0x02. 服務器設置禁ping服務器禁ping從某種意義上來說,算是不存活的主機,但nmap是依然能夠掃描出來的。設置禁ping命令:vim /etc/sysctl.conf 打開后按i進入編輯模式,在任意位置新增以下內容。0x03. 修改Cobalt Strike默認端口號在服務端的teamserver文件末尾處修改修改之后再次啟動teamserver的時候即可看到端口已經更改。修改證書標準并應用> keytool -importkeystore -srckeystore cobaltstrike.store -destkeystore cobaltstrike.store -deststoretype pkcs12
    本文要介紹的就是業內知名的一款能夠用于滲透時團隊協同作戰的工具“Cobalt Strike”。Cobalt Strike 是一款美國 Red Team 開發的滲透測試神器,常被業界人稱為 CS。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类