HW-防御者的视角

百家 作者:WiFi安全应急响应中心 2020-06-05 11:50:05

     平时SRC博文分享多数都是介绍攻击居多,但是作为已转型的甲方前渗透测试人员,更多的是需要从防御的角度来思考安全问题。

     这篇文章的内容是在日常工作中曾遭遇到的难题之一。大致的背景是公司采用WindowsAD域作为企业认证的基础设施,需要对员工的域账户密码做一次弱口令检测,以此来检查口令复杂度策略的执行情况和效果。

这件事情的难点在于:

  • 域控存在登录错误次数限制和业务稳定性要求,不适合采用在线暴力猜解的方法去做检验;

  • 尽管有密码复杂度的域策略限制,但仍然存在耍小聪明使用键盘密码!QAZ2wsx之类绕过口令复杂度策略的员工,同时还有复杂度策略生效前离职账号的历史问题存在,作为防御方必须要确保每个账户口令都是安全的,这样才不至于让入侵者有机可乘

 解决方法  

     我们采用了一种离线检测的方法,来满足甲方内部安全自查的需求,大致思路如下,采用域密码文件提取出账号密码文件的hash值,然后采用弱口令字典也生成hash值去行匹配。从而获得目前在弱口令字典中的命中的密码,逐一的联系员工告知和修改。

 采用的工具 

这里演示的系统环境用Windows 2008虚拟机来搭建域控,采用的工具是:

Ntdsutil:提取域控密码文件的工具,Win2008系统自带。

QuarksPwDump:提取密码文件hash值(支持过万条hash的提取,某些工具实测中过万条账号时会崩溃)。

SAMInside:windows域控hash破解工具。

Rainbow crack:彩虹表查询工具,导入pwdump文件批量查询彩虹表。

提取域密码的哈希
     域控上hash值提取的工作,建议由域控管理员进行操作,操作前最好在备机上进行工具的测试。登录域控,将QuarksPwDump工具文件夹拷贝至域控服务器,按住shitf键同时右击文件夹,选择在此处打开命令窗口。

运行QuarksPwDump.exe–k命令,会出现新的蓝色的窗口,显示systemkey值,将获取域控密码文件的syskey值记录保存。

      另外打开一个cmd窗口,键入ntdsutil,调用快照工具,将域控密码文件做一个快照备份并装载,记录快照集的id(即快照集{}号中的那串值)。ntdsutil步骤命令见下图:

另外再开一个cmd窗口,拷贝快照文件至c:\,并重命名为NTDS-bak.dit(拷贝文件的名字和拷贝位置可以在英文路径中任意选择)。

C:\Windows\system32>copyc:\$SNAP_201511260029_VOLUMEC$\WINDOWS\NTDS\NTDS.dit c:\NTDS-bak.dit

拷贝成功后回到第一个cmd窗口卸载快照。

使用esentutl工具(系统自带)对ntds-bak.dit备份文件进行数据格式的修复。修复命令如下图:

使用QuarksPwDump工具提取备份文件中的hash值并将其输出至hash.txt文件中,-sk参数即为一开始记录的syskey的值。

在工具的蓝色界面键入QuarksPwDump.exe-dhd -nt c:\NTDS-bak.dit -sk b819e9f9d7a7876360fa1d70d3e28816 -o c:\hash.txt,开始导出hash值并生成txt至c盘(c:\NTDS-bak.dit的路径必须是当初拷贝的路径,hash.txt生成位置可以在英文路径中自定义)。

提取后的hash.txt文件样子,格式为用户名称:RID:LM-HASH值:NT-HASH值,将其copy至hashcat或者彩虹表中进行计算。

经过测试此工具支持1w条以上的hash工具。


 哈希值碰撞 
     域控Hash提取完成后,由负责密码口令管理员或者安全项目组成员执行hash值对应匹配工作。双击SAMInside.exe文件启动软件,在选项dictionary attack中的dictionaries中,点击添加,将准备好的10w的弱口令txt文件添加进软件。

    在审计中勾选NT哈希攻击和字典攻击,并且在文件—从pwdump中导入从域控中提取的hash.txt文件,点击审计—开始攻击,等待10分钟即可看到域控中落在字典范围内的弱密码。

在软件界面的开头和结尾都可以看到被字典攻击出来的弱口令。

当然使用彩虹表工具RainbowCrack或者kali的hashcat工具也是可以的。具体步骤是,双击rcrack_gui.exe启动彩虹表查询工具,打开右上角file文件,可以选择导入单个hash,批量导入hash文件,批量导入pwdump文件等选项,导入hash值。

选择rainbow table,选择单个彩虹表数据文件位置,也可以选择多个彩虹表所在的目录批量匹配,选择对应算法(LM/md5/sha1)、组合(大小写字母mix alpha,小写字母是low alpha,数字是number)、长度(最小长度6位,最大长度6位)的彩虹表,点击选择后进行匹配查询。

查询后在软件的plaintext一栏中出现hash明文。

可以save result导出并保存结果。


通过这样一种离线破解的小办法,既能兼顾业务的稳定性要求,同时又能系统全面的梳理公司目前的域账号的弱口令。不管是做甲方还是乙方的技术都可以参考下,笔者的技术不牛,还望各路大神指点,不胜感激。



END


关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接