[TOC] 注意:本文分享给安全从业人员、网站开发人员以及运维人员在日常工作防范恶意攻击,请勿恶意使用下面介绍技术进行非法攻击操作。。
如果做过大型服务器的windows运维的朋友可能会了解到域控,使用它方便我们对域内主机的进行安全统一的管理;(想要更深入了解请百度百科)
AD的基础概念:
注意: 下面都是win系统自带的命令,有的时候windows Server 版本不同,有的命令会不存在,所以多一种方法多一种成功的可能性,实际渗透自行根据目标环境变换;
学习参考:https://pentestlab.blog/tag/ntds-dit/ http://carnal0wnage.attackresearch.com/2015/12/more-with-smbclient-smbget-enum4linux.html
首先要判断所控主机是否在域内:
net share #查看是否存在syslog
set log #判断当前登陆服务器 LOGONSERVER=\\DESKTOP-OVF3TEN
net time /domain #存在域不确定,但当前用户不是域用户 存在域,且当前用户是域用户会从域控返回当前时间
net config workstation #查看是否有域
systeminfo #域及登陆服务器项
ipconfig /all #注意DNS是否是内网的地址
netsh interface ipv4 show dnsservers #也可以在本地连接中查看(效果同上)
servermanagercmd -query ##server中查看是不是安装域控制器
##转移架构主机角色
依次单击开始和运行,在打开框中键入 mmc,然后单击确定。
在文件菜单上,单击“添加/删除管理单元”。
单击添加。
依次单击 Active Directory 架构、添加、关闭和确定。
在控制台树中,右键单击 Active Directory 架构,然后单击更改域控制器。
单击指定名称,键入将成为新角色持有者的域控制器名称,然后单击确定。
在控制台树中,右键单击 Active Directory 架构,然后单击操作主机。
单击更改。
单击确定以确认您要转移该角色,然后单击关闭。
WeiyiGeek.workstation
判断存在域后通过以下操作进行域内信息搜集
#我们拿到机器权限的时候有两种可能: 本地用户与域用户
> whoami
win-03\administrator #本地用户 不能直接提升为 ntauthority\system,SYSTEM用户权限(受到域管理)
WeiyiGeek\administator #域用户
##注意:
1. 本质上所有查询都是通过ldap协议去域控制器上查询,但是查询需要经过权限认证,只有域用户才有这个权限。
2. 当域用户运行查询命令时,会自动使用kerberos协议认证,无需额外输入账号密码。
3. SYSTEM用户的情况比较特殊,在域中除了普通用户外,所有机器都有一个机器用户,用户名是机器名后加$,本质上机器上的SYSTEM用户对应的就是域里面的机器用户,所以SYSTEM权限是可以运行查询命令的;(最高权限的存在)
> net view /domain #查看有几个域
> net user /domain #查看域用户 常常存在krbtgt用户
> net view /domain:XXX #查看此域内电脑
> net group /domain #查看是不是存在域组账户
> net group "domain computers" /domain #查看加入到域内的所有计算机名
> net group "domain admins" /domain #查看管理员登陆时间,密码过期时间,是否有登陆脚本,组分配等信息
> net group "domain controllers" /domain # 查看域控制器 (注意通过该指令得到的机器名后面会多一个$符号)
> net user zhangsan /domain #获得指定账户的详细信息
> net accounts /domain #获得域密码策略设置/密码长短/错误锁定等信息
> nslookup -type=SRV _ldap._tcp.corp ##通过srv记录
Server: dj0116w-dc03.motor.csr.com
Address: 10.169.0.36
#在域中时定位域控
> nltest /dsgetdc:域名 # 定位域控
> nltest /dclist:domain-a #或者使用dc列表其中pdc是主域控
> nltest /domain_trusts 可以列出域之间的信任关系
> dsquery server #得到域控制器的IP:
> dsQuery Server -domain corp ##使用dsquery查询
> netdom query pdc ##使用netdom查询
#返回的信息
Primary domain controller for the domain:
DJ0116W-DC01
The command completed successfully.
WeiyiGeek.dsquery-server
IPC$的正确连接姿势:
#Windows
net use \\172.31.4.212\ipc$ “password" /user:corp.pentest.lab\administrator
net use \\172.31.4.212\ipc$ “password" /user:administrator
#Linux
sudo apt install smbclient
$ smbclient -L 172.31.4.212 -U administrator
$ smbclient \\\\172.31.4.212\\C$ -U administrator
$ smbclient -L 172.31.4.212 -U corp.pentest.lab/administrator
#命令参考
http://carnal0wnage.attackresearch.com/2015/12/more-with-smbclient-smbget-enum4linux.html
$ rpcclient -U corp.pentest.lab/administrator 172.31.4.212
rpcclient $> enumdomusers
user:[Administrator] rid:[0x1f4]
user:[Guest] rid:[0x1f5]
user:[krbtgt] rid:[0x1f6]
user:[employeeA] rid:[0x454]
rpcclient $> queryuser 0x1f4
#命令参考
https://bitvijays.github.io/LFF-IPS-P3-Exploitation.html#active-directory-reconnaissance
#在OSX上找DC的方法(当前机器已经加入了DOMAIN)
dsconfigad -show | awk '/Active Directory Domain/{print $NF}'
corp.pentest.lab
$ host -av _ldap._tcp.corp.pentest.lab
dc-CN-02.corp.pentest.lab. 384 IN A 172.1.0.201
dc-CN-01.corp.pentest.lab. 780 IN A 172.1.227.69
dc-APCN-02.acorp.pentest.lab. 691 IN A 172.1.227.12
一键导出当前域的所有用户信息
$ ldapsearch -h 172.31.4.212 -p 389 -x -b "cn=sers,dc=corp,dc=pentest,dc=lab" -W -D administrator
Enter LDAP Password:
对于用户多的域环境,慎用该命令,输出文件会非常大*
执行AD远程帐号破解时,了解账户策略很重要
配置AD帐号策略以及AD远程帐号破解
C:\Users\Administrator>net accounts /domain
Runas /netonly 妙用蜜罐来防止域控被攻击并进行预警:
C:\>runas /netonly /user:corp.pentest.lab\administrator cmd
#建立蜜罐账户和Mimikatz的使用
runas /netonly /user:corp.pentest.lab\honeypot cmd
WeiyiGeek.蜜罐
使用runas得好处:
WeiyiGeek.runas
https://adsecurity.org/ https://attack.mitre.org/ https://github.com/CyberMonitor/APT_CyberCriminal_Campagin_Collections