一.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. 剑指offer——54数组中的逆序对

    题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出. 即输出P%1000 ...

  2. 面向对象(三)——组合、多态、封装、property装饰器

    组合.多态.封装.property装饰器 一.组合 1.什么是组合 组合指的是某一个对象拥有一个属性,该属性的值是另外一个类的对象 class Foo(): pass class Bar(): pas ...

  3. Android Telephony分析(六) ---- 接口扩展(实践篇)

    本文将结合前面五篇文章所讲解的知识,综合起来,实现一个接口扩展的功能.如果还没有阅读过前面五篇文章的内容,请先阅读:<Android Telephony分析(一) — Phone详解 >& ...

  4. 68.最大k乘积问题 (15分)

    C时间限制:3000 毫秒 |  C内存限制:3000 Kb题目内容:设I是一个n位十进制整数.如果将I划分为k段,则可得到k个整数.这k个整数的乘积称为I的一个k乘积.试设计一个算法,对于给定的I和 ...

  5. python面试题之你如何管理不同版本的代码?

    答案: 版本管理!被问到这个问题的时候,你应该要表现得很兴奋,甚至告诉他们你是如何使用Git(或是其他你最喜欢的工具)追踪自己和奶奶的书信往来.我偏向于使用Git作为版本控制系统(VCS),但还有其他 ...

  6. windows server 2012 安装完只有命令行

    今天在安装完windows server 2012 只有命令行,发现没有桌面.然后在别人的提醒下,才发现忘记安装gui了,这个时候,我也懒的重新安装一遍,所以就在网上找如何能够解决问题的方法,下面为解 ...

  7. rest framework之APIView

    一.rest framework配置 1.安装rest framework 在django环境中安装rest-framework框架: (automatic) C:\Users\Administrat ...

  8. ASCII 对应表

    { Bin (二进制) Oct (八进制) Dec (十进制) Hex (十六进制) 缩写/字符 解释 0000 0000 00 0 0x00 NUL(null) 空字符 0000 0001 01 1 ...

  9. 帝国cms简介显示转义字符问题

    在模板中设置简介截取字数为0,前端显示用css控制即可 white-space: nowrap; overflow: hidden; text-overflow: ellipsis; 也可以 1,在后 ...

  10. Delphi全面控制Windows任务栏

    使用Windows95/NT/98操作系统的用户知道:Windows正常启动后,在电脑屏幕下方出现一块 任务栏.从系统功能角度而言,整个任务栏包括几个不同的子区域,从左至右依次是:开始 按钮.应用程序 ...