该篇主要介绍获取用户凭证的技术和常用工具
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. 修改授权进程
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记录