|
渗透测试不是渗透拿个扫描器对着目标一顿扫就完事。我见过太多人把渗透等同于“用工具”,渗透结果连一个最简单的渗透SQL注入都挖不出来,因为工具只告诉你“这里可能有问题”,渗透但怎么利用、渗透能不能绕过WAF、渗透数据怎么带出来,渗透全靠手工。渗透 先搞清楚一件事:渗透的渗透核心是信息收集。你拿到的渗透目标可能是一个域名、一个IP段,渗透甚至只是渗透公司名字。这时候要做的渗透不是急着上扫描器,而是渗透把目标的底摸清楚。比如目标官网,渗透先看有没有备案信息、Whois记录、子域名。子域名怎么找?证书透明度日志是个好东西,crt.sh上搜一下,能翻出一堆没在主站上暴露的测试环境。我上次帮朋友看一个站,主站防护做得不错,但通过证书日志找到了一个dev.xxx.com,上面跑着老版本CMS,直接后台弱口令进去,拿下webshell。 端口扫描别只扫常见端口。全端口扫描慢,但值得。有一次扫到一个高位端口27017,MongoDB没设密码,直接连上去,里面全是用户数据。这种失误现在少了,但内网里还是常见。工具用nmap就行,-sS -p-,配合masscan先快速过一遍,再针对性细扫。 Web层面的渗透,手工测试比工具靠谱。比如一个登录框,先试SQL注入:' or 1=1--,看返回有没有变化。如果没有,试试报错注入:' and 1=convert(int,(select @@version))--。再不行,看看有没有验证码绕过、用户名枚举。我习惯用Burp Suite抓包,把请求丢到Repeater里慢慢调。有一次遇到一个登录,用户名处过滤了单引号,但密码处没过滤,直接admin'--就进去了。这种细节,扫描器根本发现不了。 文件上传是另一个高频漏洞点。别只试.php,试试.phtml、.php5、.pht,或者.htaccess配合。有的站会检查Content-Type,那就改成image/jpeg。还有的会重命名文件,那就试试%00截断,或者上传.user.ini。我印象最深的一次,目标把上传的文件放到了/uploads/下,但文件名被随机化了。结果发现它同时保留了原始文件名在响应里,直接构造路径访问,拿到shell。 提权这块,Linux下先看sudo -l,有没有能用的命令。然后找SUID文件:find / -perm -u=s -type f 2>/dev/null。常见的有nmap、vim、find,这些都能用来提权。Windows下先whoami /priv,看有没有SeImpersonate,有的话直接上JuicyPotato。再查补丁,systeminfo看缺哪些,对应找EXP。别迷信MSF的提权模块,很多老漏洞早修了,手工找配置错误更实际。比如某个服务以SYSTEM权限运行,但目录可写,直接替换exe重启服务。 内网渗透别急着上mimikatz。先net view看域内机器,arp -a看同网段。然后找共享:net share。有一次内网里有个共享目录\\fileserver\backup,里面放着数据库备份,直接下载下来,里面明文存着域管密码。横向移动用psexec或者wmiexec,但要注意日志。最好用smbexec,生成的日志少。如果目标开了Defender,先关掉:Set-MpPreference -DisableRealtimeMonitoring $true。 最后说一句:渗透测试的边界是授权。没授权就是犯罪。我见过有人扫了别人的站,被请去喝茶。技术再牛,也得守规矩。测试前签好授权书,明确范围和时间。别碰生产数据,别留后门。做完清理日志,写报告。报告里别只写“存在SQL注入”,要写清楚怎么复现、影响是什么、怎么修。比如“登录处用户名参数存在布尔盲注,可逐字猜解数据库名,建议参数化查询”。 渗透这事,工具是辅助,思路是核心。多动手,多总结,别怕失败。一个站搞不定,换下一个。经验都是踩坑踩出来的。 |