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这样的文件

相关推荐
Justice Young4 小时前
Sqoop复习笔记
hadoop·笔记·sqoop
深蓝海拓4 小时前
PySide6从0开始学习的笔记(二十三)使用QRunnable在线程池中执行临时任务
笔记·python·qt·学习·pyqt
三档程序员5 小时前
适配龙芯笔记之 libthriftnb.so 链接libevent失败
笔记
声网5 小时前
如何用 Fun-ASR-Nano 微调一个「听懂行话」的语音模型?丨Voice Agent 学习笔记
笔记·学习·xcode
m0_613607015 小时前
小土堆- P5-笔记
pytorch·笔记·深度学习
Yu_Lijing5 小时前
基于C++的《Head First设计模式》笔记——工厂模式
c++·笔记·设计模式
我的golang之路果然有问题5 小时前
Mac 上的 Vue 安装和配置记录
前端·javascript·vue.js·笔记·macos
我的golang之路果然有问题5 小时前
Docker 之常用操作(实习中的)
java·运维·笔记·docker·容器·eureka
charlie1145141915 小时前
从0开始的机器学习(笔记系列)——导数 · 多元函数导数 · 梯度
人工智能·笔记·学习·数学·机器学习·导数
optimistic_chen5 小时前
【Redis系列】事务特性
数据库·redis·笔记·缓存·事务