哈希传递
内网渗透
内网渗透的
第一步是提权:在实际业务环境下拿到的账户往往是程序用户
- 最常用的提权手法是缓冲区溢出
下一步是横向移动:拿下内网其他主机
- 在生产网络下一个区域有一台主机会有两个网卡,一个网卡用于在区域内通信,另一个网卡与机房进行通信
- 哈希传递属于横向移动
哈希传递是能够在不需要账号明文密码的情况下完成认证的一个技术,比如NTLM Hash、 LM Hash都不需要明文密码因此都可以被称为Hash传递攻击。
NTLM
LM加密
- 将所有小写字母转换为大写字母
- 将密码转化为16进制,分两组,填充为14个字符,空余位使用0x00字符填补
- 将密码分割为两组7个字节的块
- 将每组转化为比特流,不足58bit则在左边加0
- 将比特流按照7比特一组,分出8组,末尾加0
NTML加密
- 进行16进制编码
- 进行Unicode编码
- md4加密
原理
NTLM验证靠HASH值
1.获得一台域主机的权限
2.Dump内存获得用户hash
3.通过pass the hash尝试登录其他主机
4.继续搜集hash并尝试远程登录
5.直到获得域管理员账户hash,登录域控,最终成功控制整个域
什么时候用哈希传递
-
攻陷一台主机以后未抓到该主机的明文密码
-
失陷主机和局域网内其他主机存在相同密码
哈希传递攻击
前提条件:
-
获得域中的一台机器
-
权限是管理员
-
知道对方账号
-
获得的域中这台电脑必须和要攻击的电脑相同密码
思路:
认证过程 ,目标机收到用户名
- 进行判断是否存在该用户,不存在则返回登录失败,存在则生成challenge,
- 查找到该用户对应的NTML哈希
- 用NTML哈希对challenge进行加密生成 net- ntml hash存储在内存中
- 将challenge发送到失陷机
- 失陷机收到challenge以后将自己的密码转化成NTML哈希,用生成的哈希进行加密收到的challenge生成response
- 将response发送给目标机
- 目标机用自己生成的net-ntml hash 和 reponse里的net-ntml hash进行对比
- 相同就认证成功
- challenge是一次性的
- NTML加密是不可逆的
攻击:
在不知道密码时那我们就猜测是否同密码,如果密码一样那么两个生成的net-ntml hash是一样的根据这样就可以认证成功
-
不知道攻陷机的密码时,用mimikatz等工具进行ntml哈希的挖掘
privilege::debug 提升权限(注:需以管理员权限运行) sekurlsa::logonpasswords 获取内存中保存的登录信息 sekurlsa::pth /user:administrator /domain:域名 /ntlm:获取的hash 弹出新窗口输入ip进行访问 dir \\ip\
工具猕猴桃