使用 netcat 實現反向 shell 訪問以便於遠端偵錯裝置

來源:互聯網
上載者:User

標籤:系統   conf   devkit   綁定   裝置   tca   自己的   市場   遠程伺服器   

問題

在實際開發項目中,原型產品在推向市場、實際部署使用之前,也需要在實際環境進行實驗性運行,以便測試和改進。

但可能出現的一個問題是,部署測試的實際環境與辦公室有一定的距離,甚至在不同的城市裡。當應用服務程式異常後者掛掉的時候,就沒有辦法探查裝置的實際情況了。

要是在辦公室裡,就可以基於區域網路 ssh 登入訪問,甚至基於調試串口登入。由於裝置在遠程,是無法通過 ssh 直接登入了。

基本概念

我們上面說的“登入”,其實都是是指通過 Linux 的 shell 登入系統。那下面準備介紹的反向 shell 就是基於 Linux shell 的一種技術。這裡先介紹這個概念以及相似的 bind shell 概念。

Bind Shell

bind shell 是使用者用 bash,將 shell 綁定到一個本地連接埠上,這樣外部系統就可以基於網路往這裡發送 shell 命令。自己這裡是作為服務端接收命令。但請注意,這需要外部系統有訪問這個系統的網路支援,所以一般是在同一個區域網路內。

Reverse Shell

反向 shell 是把自己作為用戶端,向特定的遠程系統發送自己的 shell。雖然在底層上也是通過網路接收 shell 命令並執行,但是這樣的“反向”方式適用於不同的網路環境。作為網路通訊的發起者,本地終端裝置可以主動串連遠程伺服器,讓伺服器“登入”上來,執行 shell 命令。

解決方案netcat 的編譯

下載源碼:https://sourceforge.net/projects/netcat/

用於 x86 平台的編譯
./configure --prefix=/home/jack/others/netcat-0.7.1/netcatmakemake install
用於 ARM 平台的編譯(以 OMAPL138 為例)
source /home/jack/omapl138/ti/mcsdk_1_01_00_02/linux-devkit/environment-setup./configure --prefix=/home/jack/others/netcat-0.7.1/netcat --host=arm-arago-linux-gnueabimakemake install

產生的檔案在目前的目錄下 netcat 裡。

netcat 的使用先在服務端啟動監聽
nc -l -p 8089 -vvv

8089 連接埠號碼可隨意指定一個未被使用的。

在裝置端發起反向 shell
./netcat/bin/netcat -e /bin/sh 192.168.1.60 8089

IP 為服務端 IP,連接埠號碼與服務端監聽的一致。這裡 IP 是伺服器的公網 IP。

此時就可以在服務端讓裝置端執行 shell 命令了。

非同步發起反向 shell

在項目實踐中我們使用了 MQTT,用戶端與服務端保持串連。然後我們就讓每台裝置訂閱對應的反向 shell 主題,服務端就可以在需要的時候發送某台裝置對應的主題,讓其發起一個 netcat 反向 shell 串連了。當然,服務需要事先啟動對應的 netcat 監聽連接埠。

這樣,就相當於登入了這台裝置,可以進行必要的調試操作了。

參考

17756203

廖傑良 - 2018-9-4

使用 netcat 實現反向 shell 訪問以便於遠端偵錯裝置

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.