htb academy笔记-module-Password Attacks(五)

一、Attacking Active Directory and NTDS.dit

一般使用windows就会使用AD这个重要的directory service,本节介绍通过AD账户提取credentials、从NTD.dit文件中dumping hashes。

先了解一下win系统加入域的auth过程。一旦win系统加入域后它将不再默认用SAM数据库来验证logon,而是把logon验证请求发到domain controller,除非你想专门用SAM来认证本地账户,如以hostname\username的方式指定(如WS01\nameofuser)、在输username时先输
.\

来直连本设备。

这些知识在后面的NTDS attacks也有用。

1. 用NetExec对AD account做字典攻击

这个过程会noisy(容易被监测到),所以容易被一些Group Policy禁止。

我们需要获取用户名

一个办法是在该机构的相关网站如社交媒体或官网上找到员工信息,因为公司账号的username都是由名字convention而来。以Jane Jill Doe为例:

首字母+lastname: jdoe

首字母+中间名字字母+lastname: jjdoe

firstname+lastname: janedoe

firstname+.+lastname: jane.doe

lastname+.+firstname: doe.jane

绰号:doedoehacksstuff

另一个路径是,邮箱的前缀

注:可以直接google邮箱后缀,一般也可以得到几个能用的,也可能用脚本爬社交媒体网页提取一些能用的,但有时一些机构为了防止这种攻击会把外面的用户名设置成乱码如a907,但是内部还是用的姓名相关。还可以如谷歌搜索"inlanefreight.com filetype:pdf",然后在文件属性里可以看到可用的username,等等等等。

A. 做username list

通过上面办法我们获得了几个名字:

  • Ben Williamson
  • Bob Burgerstien
  • Jim Stevenson
  • Jill Johnson
  • Jane Doe

可以通过上述办法做convention,也可以用工具如Username Anarchy,使用:
./username-anarchy -i /home/ltnbob/names.txt

当然,如果能从其他地方找到convention就不需要这么麻烦。

B. 获得后缀

有时@后面的内容我们也不是很清楚,这时候除了搜索还有一种办法:
crackmapexec smb [ip]

C. 用kerbrute验证哪些usernames存在

如果convention的username都invalid那爆破再多pw都没用,这时用kerbrute:
./kerbrute_linux_amd64 userenum --dc 10.129.201.57 --domain inlanefreight.local names.txt

其中--domain inlanefreight.local是域的内容,即@后面的东西

D. 用NetExec做爆破

有合适的username后,结合smb协议对域controller做爆破:
netexec smb 10.129.201.57 -u bwilliamson -p /usr/share/wordlists/fasttrack.txt

截至2022.1,win的group policies默认是不开启"监测到爆破攻击就封禁账户"的。

E. Event logs

上述行为Event Viewer都有记录。

一旦拿到credentials后我们可以试着远程访问域controller并拿到NTDS. dit文件

2. 拿到NTDS.dit

NTDS即NT Directory Service,AD用来组织网络资源,.dit是directory info tree,该文件存储所有域的usernames, pw hashed等信息。

A. 用Evil-WinRM连DC

先用前面拿到的credentials连DC:
evil-winrm -i 10.129.201.57 -u bwilliamson -p 'P@55w0rd!'

这时Evil-WinRM用Windows Remote Management服务和PowerShell Remoting协议来创建一个PowerShell session,用这个session来连到目标

B. 查看权限

要拿到NTDS.dit需要local admin(Administrators Group)或Domain Group(Domain admins group)权限,所以连接后可以看下:
net localgroup

再看这个账户的权限:
net user bwilliamson

可以看到什么权限都有

C. 创建C盘的volume shadow

用vssadmin创建c盘的vss(volume shadow copy service),一般这个.dit文件在c盘,vss的一个特点是copy时不需要像word这样关闭某些程序:
vssadmin CREATE SHADOW /For=C:

D. 在vss里copy NTDS.dit

从上面的c copy中取出来:
cmd.exe /c copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy2\Windows\NTDS\NTDS.dit c:\NTDS\NTDS.dit

然后用smb从这个DC转移出来

注:和SAM一样,提取NTDS.dit也被存在SYSTEM里的key加密,所以这个也需要

E. 提取hashes

impacket-secretsdump -ntds NTDS.dit -system SYSTEM LOCAL

F. 另一种办法:完成上述所有步骤

netexec smb 10.129.201.57 -u bwilliamson -p P@55w0rd! -M ntdsutil

其中-M ntdsutil表示调用ntdsutil这个module

G. Exercise中dump NTDS.dit时没能成功,不如直接用crackmqapexec:

crackmapexec smb 10.129.201.57 -u bwilliamson -p P@55w0rd! -M ntds

一键获得hash

二、Credential Hunting in Windows

不管通过GUI还是CLI可以访问到windows,下一步可以拿credentials,如搜索整个文件系统、各种应用。假设我们已经通过RDP可以访问win10的IT admin

1. Search-centric

我们需要设想credentials可能会放在什么地方以及什么时候会被使用

A. 搜索的关键词

Passwords

Passphrases

Keys

Username

User account

Creds

Users

Passkeys

configuration

dbcredential

dbpassword

pwd

Login

Credentials

2. 工具

A. 常规

B. LaZagne

针对不同模块搜索:

browsers:一般会被加密,但是网上也可以找到解密办法如firefox_decryptdecrypt-chrome-passwords

chats: 聊天软件如Skype

mails: 如outlook

memory:从memory中拿密码,针对KeePass和LSASS

sysadmin: 从不同sysadmin工具(如OpenVPN, WinSCP)的config file里拿密码

windows:提取windows相关的credentials,针对如LSA secrets, Credential Manager等

wifi

target上没有LaZagne这个工具我们可以在自己的机器上下一个然后用rdp传过去

然后打开:
start LaZagne.exe all

这样会运行所有模块

加上参数-vv可以看到详情,也可以在github页面看到

C. findstr

可以结合前面的common key terms使用
findstr /SIM /C:"password" *.txt *.ini *.cfg *.config *.xml *.git *.ps1 *.yml

3. 选择

工具和key terms非常多,所以我们需要根据不同的情况来选择,如win server和win desktop就不一样,以及最重要的是target是用来做什么的。有时甚至是我们随意浏览的时候就能发现credentials

credential hunting时需要知道的:

SYSVOL share里Group Policy的密码

SYSVOL share里scripts的密码

IT shares里scritpts的密码

IT shares和dev machines里web.config的密码

unattend.xml里的密码

AD user或computer description fields里的密码

KeePass数据库(如果我们有搞到master的密码)

在用户系统和shares上找

在用户系统、shares、Sharepoint上找如pass.txt, passwords.docx, password.xlsl这样的文件

相关推荐
智行众维8 小时前
【用户心得】SCANeR™Studio学习笔记(六):人因工程Pack——一站式搞定驾驶模拟的多模态数据同步
笔记·学习·自动驾驶·汽车·仿真·scaner·人因工程
xian_wwq9 小时前
【学习笔记】基于人工智能的火电机组全局性能一体化优化研究
人工智能·笔记·学习·火电
阿蒙Amon9 小时前
JavaScript学习笔记:6.表达式和运算符
javascript·笔记·学习
大筒木老辈子9 小时前
C++笔记---并发支持库(atomic)
java·c++·笔记
Cricyta Sevina9 小时前
Java Collection 集合进阶知识笔记
java·笔记·python·collection集合
IMPYLH10 小时前
Lua 的 Coroutine(协程)模块
开发语言·笔记·后端·中间件·游戏引擎·lua
遇到困难睡大觉哈哈10 小时前
HarmonyOS 应用数据持久化概述:Preferences、KV-Store、RelationalStore 到底怎么选?
笔记·华为·harmonyos
风123456789~10 小时前
【健康管理】第13章 医学伦理与职业道德
笔记·证书·健康管理
FakeOccupational10 小时前
【电路笔记 信号】信号能量在传输线中指数衰减+衰减系数特性+能量介质传播与指数衰减的关系+dB标度+功率指数衰减
笔记