拿到一台目标机器,创建渗透你手上只有一串IP和几个域名。创建渗透渗透的创建渗透第一步从来不是敲命令,是创建渗透蹲点。我习惯先花二十分钟翻目标的创建渗透公开信息:官网底部备案号、招聘页面用的创建渗透技术栈、GitHub上员工不小心推上去的创建渗透测试配置。这些东西单看没什么,创建渗透拼起来就是创建渗透一张网络拓扑草图。
有一次目标是创建渗透个做跨境电商的小公司。官网写的创建渗透是"自研ERP系统",但招聘要求里列了Struts2。创建渗透这两个信息放在一起就很有意思了——自研系统用Struts2框架,创建渗透说明代码大概率是创建渗透外包或者早期堆出来的,版本更新不会太勤。创建渗透后来验证,确实存在一个没打补丁的S2-045。
扫端口这件事,别迷信全端口扫描
nmap -p- 跑一遍当然爽,但实际项目里时间预算经常不允许。我的做法是先扫常见端口加目标业务可能用的高位端口。怎么判断高位端口?看它CDN回源配置、看它API文档里有没有写非标端口。一个做物联网的公司,MQTT的1883和8883大概率开着,但防火墙可能只放内网。这时候从外网扫不到不代表不存在,得换个思路。
端口开放只是敲门砖。真正有价值的是端口后面跑的服务版本。Apache 2.4.49和2.4.50差一个路径穿越漏洞,中间就隔了几天。很多运维装完就不管了,yum源里是什么版本就是什么版本。
Web入口是最脏但最有效的路径
我见过太多人一上来就怼着登录框爆破。效率低,还容易触发封禁。先看robots.txt,再看有没有.git泄露,再试swagger-ui和actuator。Spring Boot的/actuator/env能直接读环境变量,里面经常躺着数据库密码和云服务AK。这比爆破快一百倍。
上传点永远值得多花时间。前端校验改包绕过是基本功。后端校验看它怎么判断文件类型——是看Content-Type还是看后缀还是看文件头。三种都有的,就找解析漏洞。IIS 6.0那个分号解析漏洞老掉牙了,但去年我还在一个政府站上碰到了。他们用的还是Windows Server 2003。
拿到shell只是开始,不是结束
很多人拿到webshell就急着截图交差。我习惯先看三样东西:whoami、ipconfig/ifconfig、cat /etc/passwd。确认权限和位置。如果是www-data,先翻网站配置文件找数据库连接串。数据库往往在内网另一台机器上,这时候就需要做隧道。
内网渗透比外网更考验耐心。目标机器上可能装着杀软,上传mimikatz会被秒删。那就用powershell的IEX下载执行,或者用certutil编码传。实在不行,用系统自带的wmic和schtasks做计划任务,慢慢来。
横向移动的时候,别只盯着445端口。WMI、WinRM、甚至DCOM都能用。关键是看目标机器开了什么服务,以及你手上有什么凭据。有时候一个普通域用户的口令,配合GPP漏洞就能拿到域管。
清理痕迹这件事,很多人做得太糙
删日志不是把文件删了就完事。Windows事件日志有文件锁定,直接删会报错。得先停服务再删文件。Linux上更麻烦,utmp、wtmp、btmp、lastlog,还有bash_history。少清一个,取证的时候就是铁证。
我一般会留一个隐蔽的后门。不一定是webshell,可能是一个计划任务,或者一个SSH公钥。但绝不留明显的东西——比如名字叫"test.jsp"的马。那等于在门上贴纸条说"我来过"。
渗透测试和攻击的区别就在授权和报告。没有授权就是犯罪。有授权但没报告,客户不知道你干了什么,下次照样被打。报告里别只写"存在SQL注入",要写清楚注入点、利用方式、影响范围、修复建议。最好附上修复后的验证截图。这才是完整的闭环。
工具会过时,漏洞会修补。但信息收集的思路、对系统架构的理解、还有那种"这里不太对劲"的直觉,这些东西不会过时。渗透到最后,拼的不是谁工具多,是谁更了解目标。
顶: 538踩: 47






评论专区