2015年4月9日

Linux - 沒有 SSH 仍然可以使用 Netcat 來遠端開啟 Shell prompt ( Connect a remote machine and open a shell prompt by using netcat )

非常有名的網路工具 Netcat ( nc ) 有許多好用的技巧,今天要介紹的是如果遠端機器沒有 SSH、Telnet 等工具的話,可以使用 netcat 來建立連線並開啟 Shell prompt。



Netcat 有兩個較主要的版本 ( GNU Netcat 與 BSD Netcat ),本篇教學使用的版本是 BSD Netcat 。雖然稍後介紹的這個技巧有危險性,但在某些情況真的很實用,且可以更深刻了解這個工具。

建立 Server 端:
首先建立一個 FIFO 檔案,於 Server 端打開特定一個 port 並監聽,指令如下:
# 先刪除之前的 FIFO 檔案,再建立新的檔案
rm -f /tmp/f; mkfifo /tmp/f

# 監聽 port 7788,當連線建立開啟 Bash 互動模式並輸出至 client 端
cat /tmp/f | /bin/sh -i 2>&1 | nc -l 192.168.1.1 7788 > /tmp/f


從 Client 端連線:
Client 端只需要連線至 Server 端,即可以看到 Shell prompt,連線指令如下:
nc 192.168.1.1 7788

# 連線結束別忘了刪除 FIFO 檔案
rm -f /tmp/f



熱門文章