渗透全套
拿到一台目标机器,渗透全套只靠一个漏洞就想把整条链路打通,渗透全套基本是渗透全套做梦。真实的渗透全套渗透测试里,入口往往只是渗透全套一个不起眼的点——一个没打补丁的OA系统,一个弱口令的渗透全套VPN账号,甚至是渗透全套一台暴露在公网的测试服务器。进去之后,渗透全套才是渗透全套真正考验耐心的阶段。 我去年做过一次内网评估,渗透全套目标是渗透全套一家做物流的中型企业。外网扫描没什么惊喜,渗透全套就一个老版本的渗透全套Confluence,CVE-2023-22515,渗透全套利用起来不算难,渗透全套直接创建管理员账号登进去。但Confluence跑在DMZ的一台Ubuntu上,权限是confluence用户,连sudo都没有。这时候很多人就卡住了,拿着一个Web应用的shell不知道下一步干什么。 我的习惯是先看网络。`ip a`、`route -n`、`cat /etc/resolv.conf`,三件套下去,发现这台机器有两个网卡,一个对外,一个对内10.10.0.0/16。ping了一下10.10.0.1,通。再扫10.10.0.0/24这个段,发现开了445和3389的机器不少。但问题是,Confluence这台机器上没有nmap,也没有gcc,连python都是2.7的。 这种时候别急着上传工具。先用手头的东西。bash的/dev/tcp可以做端口探测,一行循环就能把常见端口扫一遍。`for i in $(seq 1 254); do (echo >/dev/tcp/10.10.0.$i/445) &>/dev/null && echo "10.10.0.$i:445 open"; done`,跑完发现十几台开了445。再挑几台试试3389,找到三台。 接下来是凭据。Confluence的数据库配置文件里通常有明文密码,`/var/atlassian/application-data/confluence/confluence.cfg.xml`,里面藏着数据库的连接串。拿到数据库密码之后,很多人会直接连数据库找用户表。我更喜欢先试试这个密码能不能复用——拿数据库密码去撞3389,成功了一台。10.10.0.45,管理员账号,密码就是那个数据库密码。 RDP进去之后,事情就简单了。这台机器是域内的一台跳板机,装了RSAT工具。用mimikatz抓了一下内存,拿到两个域用户的NTLM hash。其中一个有域管权限。到这里,整个域的控制权基本就拿到了。 但我想说的是另一件事。这台跳板机上还跑着一个内部开发的库存管理系统,用的是sa账号连SQL Server,密码写在web.config里。我顺手连上去看了一眼,发现里面有一张表叫`user_credentials`,存着所有仓库管理员的账号和明文密码。这些人在域里也有账号,而且密码是一样的。 这就是渗透里最容易被忽略的部分——不是技术有多复杂,而是人的行为模式。一个密码用在三个地方,数据库密码等于域账号密码,内部系统存明文凭据。你不需要什么0day,只需要找到那个最弱的环节,然后顺着人性往下走。 整套流程下来,从外网入口到域控,用了不到四个小时。真正花时间的地方不是漏洞利用,是信息收集和凭据流转。每拿到一个密码,就去试所有能试的服务;每进一台机器,就看它连着什么、存着什么、信任什么。渗透的本质不是攻击,是理解这套系统怎么运转的,然后找到它运转过程中不可避免会留下的缝隙。 最后提一句,那家公司的安全团队后来复盘,说没想到一个Confluence的漏洞能打到域控。我说你们不是输在漏洞上,是输在密码复配上。一个密码走天下,再多的边界防护也是纸糊的。
-
上一篇
-
下一篇
- 最近发表
- 随机阅读
- 搜索
-
- 友情链接
-