|
拿到一个目标,渗透别急着掏工具扫端口。测试我见过太多人一上来就nmap全开,步骤结果触发了WAF封IP,流程后面啥也干不了。渗透渗透测试的测试本质是模拟真实攻击者的思路——先搞清楚“打谁”、“从哪打”、步骤“能打多深”,流程再动手。渗透 信息收集这一步,测试决定了后面70%的步骤效率。被动收集优先:查whois、流程看DNS记录、渗透翻GitHub上有没有人提交过内部配置文件、测试用Shodan搜这个IP段暴露了哪些服务。步骤有个案例,某次测试目标是一家电商,直接扫域名没结果,后来在搜索引擎缓存里翻到一个离职员工写的技术博客,里面贴了一张后台登录页截图,URL路径带了个`/old-admin/`,直接绕过了WAF的规则匹配。这种信息不是工具能自动挖出来的,得靠人去看、去关联。 主动扫描阶段,别贪快。TCP全连接扫描比SYN扫描慢,但不容易被丢包。UDP服务别忽略,SNMP如果没改public字符串,能直接读出路由表。Web层面,目录爆破用ffuf或者dirsearch都行,但字典要定制——把目标公司名、产品名、年份组合进去。我习惯先跑一遍常见字典,再根据返回的404页面大小做过滤,把那些“软404”剔掉。有一次扫出一个`/backup/`目录,里面躺着三年前的数据库导出文件,.sql后缀,直接下载下来,密码哈希都在里面。 漏洞验证要克制。看到疑似SQL注入点,别直接上sqlmap的`--os-shell`。先手工测:加个单引号看报错,再试`and 1=1`和`and 1=2`对比页面差异。确认了再让工具上,而且限制线程数和请求间隔。XSS也是,弹窗证明存在就够了,别真去偷cookie——那是黑帽干的事。文件上传漏洞,传个txt改后缀的webshell,能执行`whoami`就停,别留后门。渗透测试的底线是:证明风险存在,而不是造成实际破坏。 权限维持和横向移动,看客户授权范围。很多项目只要求“点到为止”,拿到一个低权shell就算完成。但如果合同里写了内网渗透,那就得做凭证收集。Windows下用mimikatz抓内存密码,Linux下翻`.bash_history`和`~/.ssh/`。横向优先用PsExec或者WMI,因为流量看起来像正常管理操作。有个坑:别用ARP扫描整个C段,那玩意儿动静太大,容易触发IDS告警。用`net view`或者`nltest`慢慢摸。 清理痕迹和写报告,比前面所有步骤都重要。你动过的文件、加过的账号、改过的注册表,全部还原。日志如果被你的操作覆盖了,要在报告里注明。报告别堆砌漏洞列表,按业务影响排序。一个未授权的SQL注入能读用户表,比十个反射型XSS严重得多。修复建议要具体到版本号和配置项,别写“建议升级框架”这种废话。附上每个漏洞的复现步骤和原始请求包,开发人员照着就能修。 流程是死的,目标是活的。同一个漏洞,在测试环境是低危,在生产环境可能就是高危。别迷信CVSS评分,结合业务场景判断。最后说一句:授权书随身带,遇到意外情况立刻停手联系客户。这行干久了,胆子越来越小,不是技术退步,是知道边界在哪。 |