当前位置:首页 > 热点

渗透网站的详细步骤

渗透一个网站,渗透第一步永远是网站信息收集。别急着掏工具,细步先看目标暴露了什么。渗透比如一个企业官网,网站首页底部写着“Powered by XXX CMS”,细步版本号都没删。渗透这等于把钥匙插在门上。网站我习惯先跑一遍Whois,细步看注册邮箱和DNS服务器。渗透有次查到一个站用的网站是某小众建站系统,官方论坛里全是细步漏洞报告,开发者半年没更新。渗透这种目标不碰,网站留着过年?细步

子域名枚举比主站更有搞头。很多公司主站防护严实,但测试环境、OA系统、甚至员工个人博客挂在同一IP段。用Amass或者Subfinder扫一遍,经常能捞出`test.xxx.com`、`dev.xxx.com`这种。去年帮朋友看一个站,主站连WAF都没有,但后台登录页在`admin.xxx.com`,验证码逻辑是前端校验。抓包改个响应包就绕过去了。说句实在的,八成以上的入口不在主站,在那些被遗忘的角落。

拿到资产列表后,开始扫端口和服务。Nmap别只扫常见端口,全端口扫一遍。有次发现目标开了8080,跑的是Jenkins,未授权访问。点进去直接能执行Groovy脚本。这种失误在中小型公司太常见了。还有数据库端口对外暴露的,Redis未授权写SSH密钥,MongoDB空口令。别觉得这些是老掉牙的套路,每天仍有大量机器中招。我个人的判断标准:只要目标运维团队少于三个人,大概率存在这类问题。

Web层面的漏洞挖掘,手动测试比扫描器靠谱。AWVS和Xray能扫出SQL注入、XSS,但逻辑漏洞它们看不懂。比如密码重置功能,抓包看请求里有没有`userId`参数。有次改包把`userId=自己`改成`userId=admin`,直接重置了管理员密码。还有越权查看订单,把订单号递增遍历。这些漏洞扫描器报不出来,但危害比注入大得多。我习惯用BurpSuite的Repeater手动改包,观察响应差异。一个参数一个参数试,慢但有效。

拿到低权限账户后,提权是下一步。Linux上先看`sudo -l`,有没有配置不当的命令。有次发现能`sudo vim`,直接`:!bash`就root了。Windows上查服务权限,用AccessChk看哪些服务目录可写。或者找找计划任务,看有没有以SYSTEM权限运行的脚本放在用户可写目录。这些操作不需要多高深的技术,关键是细心。很多运维图省事,权限给得宽,留下隐患。

横向移动阶段,凭据复用是核心。从一台机器上抓到的密码哈希,去试其他机器。用CrackMapExec批量跑SMB,看哪些机器本地管理员密码相同。内网里这种情况太普遍了,尤其是用Ghost镜像装的系统。还有域环境里,用BloodHound分析ACL,找最短攻击路径。有次从普通域用户到域管,只用了三步:Kerberoasting拿服务账户哈希,破解后登录一台服务器,再DCSync。整个过程没触发任何告警。

最后说持久化。别搞什么花哨的后门,容易被发现。简单点,加个计划任务或者注册表Run键。Linux上写个cron,每十分钟连一次C2。或者改SSH的authorized_keys,加自己的公钥。我见过最隐蔽的,是把后门藏在合法软件的更新脚本里。不过话说回来,渗透测试的目的是发现问题,不是真搞破坏。拿到权限后截个图,写报告,清理痕迹走人。别恋战,夜长梦多。

整个流程走下来,技术只占三成,剩下七成是耐心和观察力。工具人人都会用,但能发现细节的人不多。比如响应头里多出来的`X-Powered-By`,或者错误页面泄露的物理路径。这些信息单独看没用,拼在一起就是攻击链。我干这行十年,最大的体会是:漏洞就在那里,只是大多数人视而不见。

分享到: