|
拿到一台目标服务器,渗透拿站最直接的渗透拿站路子从来不是硬碰硬。你扫端口、渗透拿站爆密码,渗透拿站动静大,渗透拿站容易被逮。渗透拿站真正好用的渗透拿站法子,是渗透拿站找那些不起眼的角落——一个忘了更新的插件,一个测试用的渗透拿站接口,甚至运维图省事留下的渗透拿站后门。 我见过一个案例。渗透拿站某公司官网做得挺漂亮,渗透拿站WAF也上了,渗透拿站主站扫半天没反应。渗透拿站但底下挂了个子域名,渗透拿站跑的是三年前的老版本CMS。那个CMS有个文件上传漏洞,payload都不用自己写,网上现成的。传个webshell上去,权限直接就是www-data。你看,正面攻不进去,侧面一捅就破。 渗透这事,信息收集占了七成时间。别急着上工具,先把目标摸清楚。whois查注册人,子域名爆破看资产范围,GitHub上搜代码泄露,甚至去领英翻员工名单——这些看着跟技术不沾边的东西,往往能给你关键线索。 有次我盯上一个目标,主站死活找不到入口。后来在GitHub上搜公司名,发现一个员工把内部测试脚本传上去了,里面硬编码了数据库密码。那密码跟生产环境是同一套。这种事你说怪谁?怪员工安全意识差?还是怪公司没做代码审查?反正门就这么开了。 拿到低权限shell之后,别急着提权。先看看当前用户能读什么文件,有没有配置文件里写着数据库账号,有没有SSH密钥,有没有定时任务脚本可以改。Linux提权手法就那些:SUID文件、内核漏洞、sudo配置错误、环境变量劫持。一个个试,总有一个能中。 Windows那边更麻烦点,但套路差不多。看补丁打了没,看服务权限配置,看注册表里有没有明文密码。有时候不用提权也能干活——你拿到域用户权限,直接去连数据库,数据照样拿。 横向移动是下一步。内网里别乱扫,容易被IDS发现。先看ARP表、路由表,知道自己在哪。然后用已控机器做跳板,慢慢摸。域环境里,Kerberoasting、AS-REP Roasting这些手法能搞到服务账号的哈希,拿回去离线爆破。爆出来就是域管,爆不出来也不亏,反正没触发告警。 拿站不是终点。你要的是数据,或者权限维持。留后门这事得看情况——如果是授权测试,留个记录就行;如果是真实对抗,那得做得隐蔽。计划任务、服务、WMI事件订阅,都能用。但别用那些烂大街的webshell,杀软一抓一个准。 最后说个实在的。渗透测试报告里别光写“高危漏洞”,得写清楚怎么利用、能造成什么影响、修复建议是什么。客户要的是能落地的东西,不是一堆CVSS评分。你告诉他“这个SQL注入能拖库”,比写“存在SQL注入漏洞,风险等级高”有用得多。 这行干久了就明白,技术只是工具,思路才是关键。工具会过时,漏洞会修补,但找薄弱点的思维方式不会变。别把自己局限在扫描器报告里,多想想人是怎么犯错的——那才是真正的突破口。 |