什麼是反彈shell?web
反彈shell(reverse shell),就是控制端監聽在某TCP/UDP端口,被控端發起請求到該端口,並將其命令行的輸入輸出轉到控制端。reverse shell與telnet,ssh等標準shell對應,本質上是網絡概念的客戶端與服務端的角色反轉。shell
爲何要反彈shell?網絡
一般用於被控端因防火牆受限、權限不足、端口被佔用等情形。ssh
舉例:假設咱們攻擊了一臺機器,打開了該機器的一個端口,攻擊者在本身的機器去鏈接目標機器(目標ip:目標機器端口),這是比較常規的形式,咱們叫作正向鏈接。遠程桌面、web服務、ssh、telnet等等都是正向鏈接。那麼什麼狀況下正向鏈接不能用了呢?spa
有以下狀況:命令行
1.某客戶機中了你的網馬,可是它在局域網內,你直接鏈接不了。 ip
2.目標機器的ip動態改變,你不能持續控制。權限
3.因爲防火牆等限制,對方機器只能發送請求,不能接收請求。請求
4.對於病毒,木馬,受害者何時能中招,對方的網絡環境是什麼樣的,何時開關機等狀況都是未知的,因此創建一個服務端讓惡意程序主動鏈接,纔是上策。防火牆
那麼反彈就很好理解了,攻擊者指定服務端,受害者主機主動鏈接攻擊者的服務端程序,就叫反彈鏈接。