历来攻防演练中,我都笃信一个道理——吃饱了才有力气干活。所以,在清晨的客户现场,当看到大佬满意地吃完了我带来的煎饺,我知道这一战,我们作为攻击队,基本已经拿下了。
虽然说的每一句话都带着一股醋味儿,但是大佬的含金量不容置疑——理智分析战况,果断找到目标,一切行云流水。
大佬告诉我们哪些站是好打的,哪些是不好打的。我们的任务是重点关注好打的站,找找OA、邮箱这些系统给他。随后,他顺手给我们丢了一个域前置的免杀“马儿”和代理池。
听完战术指导,信心激增。话不多说,立即开始!
识别了一波子域名。这样看起来并不美观,秉承着技术亦是一门艺术的心态,把子域名加载进了goby:
这样看着就舒服多了:
识别后的资产,可攻击的点有Web系统后台、数据库和一些中间件。测试了一下Struts2、JAVA、Shiro等等,均利用失败。
批量测试了一下数据库,跑出来一个弱口令。果断登录上去,看了下,数据不多,没有可用的数据,估计是个测试站,提权也没成功,放弃了。
接着测试后台弱口令,这个没有验证码,尝试Top100密码爆破。
有点东西,但还是没找到可突破的点。
这时,看了下Fofa的浏览器插件,旁站有个OA系统!
众所周知,此系统在url后面加个admin.do即可出现管理员登录页面。找到这个系统,第一件事当然是丢给大佬。
大佬终究是大佬,不负所望,没过多久,就给我发了一串神秘代码,我也是心领神会,给了大佬一个友善的目光。
将大佬的神秘代码输入进去,成功点亮,拿到一台linux的root权限shell。
过一小会儿,大佬又发来了管理后台的密码。这里可以看到邮箱的配置。密码是加密的,但是问题不大。
F12,可从前段页面的value参数查看明文密码.并尝试登录邮箱服务器,发现是可以登录成功的。
接下来我们就开始商量着要不要试试钓鱼,毕竟能直接打进办公区的话,要比从dmz区慢慢打进去要方便得多。
大佬说干就干,转头写好了一封邮件,看得我直呼内行!(图片过于敏感,此处不便展示)
片刻之后,叮咚~叮咚...您有新的主机上线~这清脆悦耳的声音,犹如子夜风吟,一切都是那么美好。
看着不断上线的主机,不急,让子*弹再飞一会儿。
去除重复的,一共有6台主机,发现里面还有一台windows服务器。我们分配了一下任务,每人分配几个shell,一起先主攻这个内网。
Dumphash看了下内存信息,找到几个明文的账号密码,存在域环境,先记录信息,方便后面使用。通.NETtime /domain查看,确定存在域。
然后使用nslookup解析该域名,解析出来多个ip地址,应该是存在多个主备域。
使用nmap扫描这些主机的389端口,确定为域控主机,找到域控就方便多了,可以试试直接打域控。
早上就先到这里,现在正是用电脑的高峰期,所以很多操作不便现在进行,先设置计划任务做好权限维持,再简单的搜集一下信息。
过程中掉了两台主机,又上线了几台疑似沙箱的主机,估计是被发现了,样本拿去检测了。
等到休息的时间,我们就开始正式干活了。上传fscan,探测ip段。
登上去了Windows服务器看了一下,看着这个页面,在做项目迭代升级,并且根据邮箱里的内容,判断这应该是开发经理在使用。
在邮箱里面还找到了一些他们内部的默认密码,这些信息都是可以尝试利用的。
然后在右下角看到有IM内部通讯软件,姓名,性别,部门,ip等等信息都有了...这就是拿到了内部通讯录了,这里本想再钓一次鱼,然而大佬说了,可以,但是没必要。
现在有两个思路。一是直接打域控漏洞,二是爆破域控密码。显而易见,利用漏洞的方式为上策。所以现在的任务是他们继续去负责横向(此时大佬已经用现有的密码,拿到了20多台Windows+Linux的主机权限,权限够多就不怕掉线了)。
我来尝试漏洞利用,那么首先想到的漏洞就是CVE-2020-1472NetLogon特权提升漏洞,该漏洞不要求当前计算机在域内,只要能访问到目标域控并且知道域控主机名和域控ip即可利用。
利用该漏洞重置域控的机器密码,然后使用空密码即可登录域控。不过最主要的是要记得还原密码,不然存储在域中的凭证与本地注册表里的凭证不一致时,会导致目标脱域。
使用poc,对主备域控进行漏洞验证。众望所归,在测试了10多个域控之后,终于测试到有一台域控验证成功了!这是振奋人心的绿色!
Python/ target=_blank class=infotextkey>Python3poc.py 域控主机名域控ip
验证成功后,使用脚本清空域控的机器凭证。
python3poc.py 域控主机名域控ip
使用空凭证查看域内账号密码,看到有个krbtgt账号,可以生成票据。
当然这里我们就不用它了,因为第一个是sid为500的账号,那这个就是域控管理员了,后面则是密码hash,可以先尝试解密,如果能直接解出明文密码,就可以直接登录,解不出来的话就先用hash连接。
事实上,账号数量确实太多了。其实往下翻是可以看到已被清空的机器账号主机名$,密码hash已经变成了
31d6cfe0d16ae931b73c59d7e0c089c0(空密码)。
python3poc.py 域名/域控主机名$@域控ip-just-dc -no-pass
拿到了域管理员账号和hash,赶紧登录域控,这里使用wmiexec进行连接,下图登录成功,起飞!
python3wmiexec.py -hashes xxx:xxx 域名/管理员用户名@域控ip
Powershell上个cs的马,使用如下命令获取dump域控保存在本地注册表的原始主机账号密码。
regsave HKLMSYSTEM system.save
regsave HKLMSAM sam.save
regsave HKLMSECURITY security.save
再使用脚本还原主机密码:
python3secretsdump.py -sam sam.save -system system.save -securitysecurity.save LOCAL
得到$macHINE的hash:
python3reinstall_original_pw.py 域控主机名域控ip$MACHINEhash
那么到这一步之后,漏洞利用就完成了。再到cs上hashdump获取密码,拿着密码登录域控,有了域控就可以查看域内所有用户和终端服务器了,接下来的事就是搜集各种信息数据了。大功告成!打完收工!
最后,梳理一下攻击路径。
首先,利用OA漏洞拿到邮箱账号密码;
然后钓鱼拿到内网域终端;
接着定位域控,使用CVE-2020-1472poc确定存在漏洞的域控;
随后重置域控机器密码,拿到域控命令执行权限,上线cs;
最后还原机器密码,读取域控内存拿到明文密码,登录域控。
不到一天的时间,从外网到拿下域控,思路正确,效率自然提升。珍惜那些可以为了比赛彻夜不眠、与小伙伴协同奋斗的岁月吧,那是为了自己而努力绽放的时光,短暂又美好。