该篇主要介绍获取用户凭证的技术和常用工具
1. 中间人攻击
1.1 LLMNR/NBT-NS投毒
伪造LLMNR/NBT-NS的响应,伪造hostname。可使用工具NBNSpoof, Metasploit, and Responder
1.2 ARP缓存投毒
ARP协议用来获取ip到mac的映射关系,为了优化响应速度,操作系统会缓存收到的ARP信息。攻击者可以通过伪造ARP响应报文,做错误的映射关系,从而劫持网络包的发送
1.3 DHCP欺骗
使用伪造的DHCP响应包,并充当受害网络上的恶意DHCP服务器,将网络流量重定向到攻击者拥有的系统,从而实现流量的劫持
2. 暴力破解
2.1 密码猜测
使用常见的密码不断验证
2.2 密码破解
利用获取的密码的hash值破解用户的明文密码。可以使用彩虹表
2.3 密码喷涂
使用固定的密码,尝试登录不同的常用账户。避免相同的账户在多次密码错误的情况下被锁定
2.4 凭证填充
用户倾向于使用相同的账号和密码注册不同的网站和系统。所以可以利用已经获取的用户名密码,尝试登录不同的网站和系统
3. 从密码存储区获取凭证
3.1 Keychain
使用security dump-keychain –d读取macos保存的凭证信息,或者读取~/Library/Keychains/login.keychain文件
3.2 Securityd内存
Securityd服务负责实现凭证的加密和授权等安全协议,可以通过读取Securityd服务进程的内存获取凭证信息
3.3 从浏览器中获取凭证
读取C:\Users\***\AppData\Local\Google\Chrome\User Data\Default\Login Data数据,这个文件是sqlite3格式数据。SELECT action_url, username_value, password_value FROM logins + CryptUnprotectData函数,获取用户凭证
同时可以扫描浏览器内存获取凭证
3.4 windows凭证管理器
凭证文件保存在 %Systemdrive%\Users\\[Username]\AppData\Local\Microsoft\\[Vault/Credentials]\.可以使用vaultcmd.exe,或CredEnumerateA 枚举用户凭证。
rundll32.exe keymgr.dll KRShowKeyMgr备份凭证。使用密码恢复攻击可获取明文密码
3.5 密码管理器
用户的密码比较多,且不好记录,所以通常将不同的密码保存在密码管理器中。通过爆破密码管理器的密码,获取用户保存的密码信息。也可以通过扫描密码管理程序的内存获取密码信息
3.6 云密码管理商店
4. 凭证访问漏洞利用
MS14-068
5. 强制身份验证
用户使用smb协议访问远程资源和共享资源。通过钓鱼邮件中携带恶意附件,附件中访问攻击者防止的恶意资源访问链接,或者将特制的文件放置在特权帐户的导航路径上(例如放置在桌面上的.SCF文件),或者放置在受害者可访问的公共共享上诱导用户输入凭证。
6. 伪造web凭证
6.1 cookie
分析,猜测cookie构造,伪造一个cookie
6.2 SAML令牌
7. 输入捕获
7.1 键盘记录器
记录用户输入的凭证信息
7.2 GUI输入捕获
模仿操作系统或软件的提示窗口,诱导用户输入凭证信息
7.3 网络门户捕获
在面向外部的门户网站(如VPN登录页面)上安装代码,以捕获和传输试图登录该服务的用户的凭据
7.4 凭证api hook
hook凭证操作相关api
8. 修改授权进程
参考文章:ATT&CK系列之防御规避篇-优快云博客
9. 多因素身份验证拦截
使用键盘记录等工具捕获智能卡等可插入安全设备的凭证。
利用短信相关服务进程,劫持短信验证码
10. 多因素身份验证请求生成
滥用自动生成推送通知给MFA服务,或不断重复触发MFA验证,诱导用户授权
11. 网络嗅探
使用工具监控网络中身份授权相关的协议的通讯包
12. 操作系统凭据转储
12.1 LSASS内存
dump进程内存:
rundll32.exe C:\Windows\System32\comsvcs.dll MiniDump PID lsass.dmp full
procdump -ma lsass.exe lsass_dump
sekurlsa::Minidump lsassdump.dmp
sekurlsa::logonPasswords
注册新的ssp:
HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Security Packages
HKLM\SYSTEM\CurrentControlSet\Control\Lsa\OSConfig\Security Packages
12.2 安全账号管理
从内存中获取sam内容:
pwdumpx.exe
gsecdump
Mimikatz
secretsdump.py
从注册表中导出sam内容:
reg save HKLM\sam sam
reg save HKLM\system system
12.3 NTDS
域控里保留凭证信息的文件%SystemRoot%\NTDS\Ntds.dit
Volume Shadow Copy
secretsdump.py
Using the in-built Windows tool, ntdsutil.exe
Invoke-NinjaCopy
12.4 LSA密码
使用Reg 从 HKEY_LOCAL_MACHINE\SECURITY\Policy\Secrets
获取
使用Mimikatz从内存中获取
12.5 域凭证缓存
windows下MS-Cache v2 hash,linux下/var/lib/sss/db/cache.[domain].ldb和/var/opt/quest/vas/authcache/vas_auth.vdb,获取密码的hash值后结合上面的密码破解技术,获取明文密码
12.6 DCSync
12.7 Proc文件系统
linux中访问/proc/pid/mem和/proc/pid/maps,相当于直接访问进程的虚拟内存
12.8 /etc/passwd /etc/shadow
/usr/bin/unshadow /etc/passwd /etc/shadow > /tmp/crack.password.db
13. 窃取应用程序访问令牌
CI|CD工具为了完成自动化操作,都会配置相关服务的授权信息。
使用钓鱼邮件,携带恶意授权链接,窃取用户三方服务授权信息
14. 窃取或伪造身份验证证书
15. 窃取或伪造Kerberos票证
15.1 黄金票据
15.2 白银票据
15.3 Kerberoasting
15.4 AS-REP
16. 偷取网站session或cookie
可以扫描浏览器内存,网络监听通讯包等方式获取cookie信息。Evilginx2 Muraena
17. 不安全的凭证
17.1 从文件中搜索
可以搜索容器日志,程序员代码,系统配置文件,远程文件系统等
17.2 从注册表中搜索
reg query HKLM /f password /t REG_SZ /s
17.3 命令执行历史
.bash_history
17.4 私钥文件
常见私钥文件后缀.key, .pgp, .gpg, .ppk., .p12, .pem, .pfx, .cer, .p7b, .asc
17.5 云实例元数据API
17.6 组策略首选项
Metasploit’s post exploitation module: post/windows/gather/credentials/gpp
Get-GPPPassword[3]
gpprefdecrypt.py
17.7 容器api
17.8 聊天信息
邮件记录,各种im记录