0x01前言
本次实验利用ms17010与ms14068两个老漏洞,用kali在一个极简域环境的理想状态下模拟复现从控制一台域内主机到获得域控shell的简单流程
关于漏洞原理已经讲烂了,不再复述,网上大神们写得很好
老版kali ip:192.168.1.16
winserver2008 ip:192.168.1.28 (域控,dns服务器)
win7 x64 ip:192.168.1.13(域内主机)
0x02获得域内主机shell
打开msf,寻找ms17010应用模块
采用auxiliary/scanner/smb/smb_17_010来搜寻目标网段是否有开放445端口存在永恒之蓝的机器IP,线程50即可
设置好options后run一下
run到了192.168.1.13这台机器(目标域内主机)有此漏洞
提示目标机器为64位win7,所以采用模块exploit/windows/smb/ms_17_010_eternalblue,不同位数机器对应的payload不尽相同,msf中没有的可自行寻找编写,再加入框架中
设置目标ip、反弹连接payload、监听ip,设置好后执行
获得meterpreter(如果有杀毒软件的话,用此payload shell可能会弹不回来,可用auxiliary/admin/smb/ms17_010_command来进行命令执行避开反弹shell操作)
看一下当前uid,权限很高
如果发现有乱码,可能是编码问题,改成GB编码就不会乱码
改成GB编码就能正常显示
进入shell后,ipconfig /all whoami /all查看信息,发现可能是域环境,dns与域控一般在一起
之后查找域管理员账号
找到域中所有用户名
0x03获得域控shell
meterpreter下meterpreter>load mimikatz加载mimikatz神器后,kerberos可见登录过的域用户明文密码,msv可见hash(省着往域主机win7上传mimikatz可能涉及权限杀软等
问题难以执行,当然也可以搞procdump+mimikatz),由此抓到当前主机域用户密码
由于域控没打相关补丁,可利用ms14068获得域控权限的shell
利用goldenPac.exe工具,类似ms14068工具和psexec的结合体,成功了将直接返回一个域控交互式shell,当然还有很多其他办法
用meterpreter把工具从kali传到win7域主机c盘上去,闲的无聊可以在C:>下执行attrib goldenPac.exe +s +h 设置文件的系统属性 为 隐藏属性,更隐蔽一些
执行工具 goldenPac.exe 域名/域用户名:域用户明文密码@域名
报错,提示域控主机名SERVER
再次执行工具 goldenPac.exe 域名/域用户名:域用户明文密码@完整域名
在此时返回的shell中执行ipconfig,会看到ip由原来域主机win7的ip192.168.1.13变成域控winserver2008的ip 192.168.1.28,证明这已经是一个域控的shell了,利用成功
之后可以在域中新建用户并加入到域管理员组中
也可以进行开端口,写脚本等操作,最后别忘了清理痕迹