SMB relay
SMB relay
0x00 SMB服务
先来了解一下什么是 SMB 服务,SMB(Server Message Block)是一个协议名称,用它可以共享计算机之间的文件、打印机、串口等,通过 SMB 也可以远程访问服务器端的文件、打印机等共享资源。
SMB协议可以为局域网用户提供相关的功能和机制,来保证传输的可靠性。局域网中90%的数据包以及95%的字节是通过SMB协议进行传输,这是为了解决网络的稳定性和数据流在共享带宽时的公平性、拥塞控制及效率等问题。
————来源百度百科
总之 SMB 服务可以为局域网用户提供相关功能和机制,来保证传输可靠性。
一路走来 SMB 有三代,从 SMBv1 到 SMBv2 再到现在的 SMBv3 ,实际上越来越安全了。 (CVE-2020-0796针对的是SMB3.1.1)
0x01 NTLM hash
然后简单介绍一下 NTLM hash,我们知道 Windows 下的密码被加密保存在 SAM (Security Accout Manager)文件中,域控在 NTDS.dit,不可进行修改或是移动;NTLM hash 就是里面保存用户密码的 hash
生成方法分为三步:
1.将明文口令转为十六进制
2.转换成 Unicode 格式
3.进行 MD4 加密
得到了最后的32为十六进制数字串
0x001 LM hash 和 NTLM hash
可以看作 NTLM hash 是 LM hash 的升级,但是他们是两种不同的加密方式,LM hash 的安全性较差,易被破解,现在很少在使用了,故关于 LM hash 在此不多赘述。
0x002 NTLMv1 hash 和 NTLMv2 hash
NTLM hash 分为 NTLMv1 NTLMv2 NTLM session v2 三种,从 Windows Vista 和 Server 2008 开始,系统是默认禁用 NTLMv1 的,而是用的是 NTLMv2,NTLMv1 相对 NTLMv2 更脆弱,因为服务端的挑战码是 8 位的,而 NTLMv2 协议的挑战码是 16 位的,稍后会讲到。
0x003 NTLM hash 和 Net-NTLM hash
Net-NTLM hash 即指的是网络环境下 NTLM 认证的 hash,故也分为 Net-NTLMv1 hash, Net-NTLMv2 hash
0x004 Net-NTLM(v2) 认证流程
1.客户端向服务器发送登录请求,密码在客户端被 hash 一次
2.客户端向服务器发送 username
3.服务器返回一个 16 字节的挑战码(Challenge),并将已存储的用户密码 hash 加密这个 Challenge,生成 Challenge1
4.客户端将第一步 hash 的密码与 Challenge 再进行 hash 一次,生成 response 即 Challenge2
5.客户端将 response 发送给服务器
6.服务器比较 Challenge1 和 response,相同则认证成功

0x02 SMB中继攻击(SMB relay attack)原理
了解了 Net-NTLM 认证流程,再来分析 SMB 中继攻击原理就明了多了,攻击者充当了一个第三人,截获流量,重放流量

0x03 漏洞环境
kali 192.168.37.134 攻击机
win7 192.168.37.128 受害机器
win2008 192.168.37.131 第三方机器
1. smbrelay.py
大概流程就是:首先我们使用impacket工具包中的smbrelay.py,-h 指定受害机器,然后再第三方机器上net use 我们的kali机器ip ,net use的账户密码 得是可以登录win7的密码,就可以执行我们的木马


其中win10好像不得行

可以看到win2008上线了

可以看到能执行我们的CS马,然后脚本会删除这个木马。
2 MultiRelayx.py拿下shell
因为下班了这儿就重新记录下IP
win2008 192.168.127.149
win2012(DC) 192.168.127.148
kali 192.168.127.128
先用responder工具包里面的RunFinger.py脚本进行扫描(nmap皆可)来查看域内机器SMB签名的开放情况


如果MultiRelay脚本运行出错的话,就安装一下下面这个库
apt-get install python-crypto

现在 SMB 已经由 MultiRelay.py 脚本来进行中继,我们需要修改一下 Responder.conf 脚 本,不让其对 hash 进行抓取


在域控上随意net use 一下都可以

成功拿到shell.

SMB relay的更多相关文章
- 渗透杂记-2013-07-13 关于SMB版本的扫描
smb2的溢出,其实在metasploit里面有两个扫描器可以用,效果都差不多,只是一个判断的更加详细,一个只是粗略的判断. Welcome to the Metasploit Web Console ...
- metasploit--exploit模块信息
Name Disclosure Date Rank Description ---- ...
- Metasploit辅助模块
msf > show auxiliary Auxiliary ========= Name Di ...
- [转载] MySQL 注入攻击与防御
MySQL 注入攻击与防御 2017-04-21 16:19:3454921次阅读0 作者:rootclay 预估稿费:500RMB 投稿方式:发送邮件至linwei#360.cn,或登陆网页 ...
- Kali linux 2016.2(Rolling)中的Exploits模块详解
简单来将,这个Exploits模块,就是针对不同的已知漏洞的利用程序. root@kali:~# msfconsole Unable to handle kernel NULL pointer der ...
- HW弹药库之红队作战手册
红方人员实战手册 声明 Author : By klion Date : 2020.2.15 寄语 : 愿 2020 后面的每一天都能一切安好 分享初衷 一来, 旨在为 "攻击" ...
- ATT&CK 实战 - 红日安全 vulnstack (二) 环境部署(劝退水文)
靶机下载地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/3/ 靶场简述 红队实战系列,主要以真实企业环境为实例搭建一系列靶场,通过练习.视频教程.博 ...
- Lateral Movement
简介 这次去宁夏护网,发现我有的朋友连最基本的横向渗透有些都不晓得,他们问我 我也表达不清楚...,就想着写篇文章总结下吧 (慢慢更..) 可以发我邮箱讨论:muxue@protonmail.com ...
- smb.conf - Samba组件的配置文件
总览 SYNOPSIS smb.conf是Samba组件的配置文件,包含Samba程序运行时的配置信息.smb.conf被设计成可由swat (8)程序来配置和管理.本文件包含了关于smb.conf的 ...
随机推荐
- 打包遇到错误Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test
引自:https://blog.csdn.net/xiexiangyan/article/details/107936774 遇到的问题 有一个maven项目,我clone一下最新的代码.准备打包(m ...
- scrapy异步的爬虫框架简单的使用
scrapy异步的爬虫框架 异步的爬虫框架 高性能的数据解析,持久化存储,全栈数据的爬取,中间件,分布式 框架:就是一个集成好了各种功能且具有很强通用性的一个项目模板. 环境安装: Linux: pi ...
- Wi-Fi IoT套件连PCF8563实现电子钟功能
首先跟同样新入手单片机开发的小伙伴分享一点I2C通信的知识.我估计大部分入手开发板的小伙伴都有一定程序开发的能力,但是底层开发可能是新接触,我看有的小伙伴配置开发环境都有障碍,其实并不是多复杂,只是首 ...
- 记一次压测问题定位:connection reset by peer,TCP三次握手后服务端发送RST_网络_c359719435的专栏-CSDN博客 https://blog.csdn.net/c359719435/article/details/80300433
记一次压测问题定位:connection reset by peer,TCP三次握手后服务端发送RST_网络_c359719435的专栏-CSDN博客 https://blog.csdn.net/c3 ...
- Main event loop
https://developer.apple.com/library/archive/documentation/General/Conceptual/Devpedia-CocoaApp/MainE ...
- 类型检查和鸭子类型 Duck typing in computer programming is an application of the duck test 鸭子测试 鸭子类型 指示编译器将类的类型检查安排在运行时而不是编译时 type checking can be specified to occur at run time rather than compile time.
Go所提供的面向对象功能十分简洁,但却兼具了类型检查和鸭子类型两者的有点,这是何等优秀的设计啊! Duck typing in computer programming is an applicati ...
- apache httpclient 4 范例
下面是一个通过apache httpclient 4 实现http/https的普通访问和BasicAuth认证访问的例子.依赖的第三方库为: 下面是具体实现: package test; impor ...
- 在Ubuntu下安装Jenkins
一.安装Jenkins 1. 确保Java环境已经安装配置好 java -version 2. 将存储库密钥添加到系统 wget -q -O - https://pkg.jenkins.io/debi ...
- luoguP6754 [BalticOI 2013 Day1] Palindrome-Free Numbers
目录 luoguP6754 [BalticOI 2013 Day1] Palindrome-Free Numbers 简述题意: Solution: Code luoguP6754 [BalticOI ...
- CF401C
扯在前面 本题的英文翻译很有意思,很符合CF大多题的故事风格,但是luogu的翻译更过于直白易懂 如果让我看英文故事做题我怕我都不知道该怎么下手 正文 题意: 构造一个01序列,包含n个0,m个1要求 ...