红客解密程序 暗网编程
27.5K subscribers
967 photos
12 videos
1 file
56 links
渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持
Download Telegram
信息窃取者:概述

什么是信息窃取者?
信息窃取程序是一种恶意软件,其目的是侵入计算机系统并从受感染的设备中获取有价值的信息。这些恶意软件程序会秘密运行(某些恶意软件可能会弹出窗口或明显影响系统性能),以收集敏感数据。

总之,信息窃取程序是一种从计算机秘密窃取机密信息的恶意软件。

我们的计算机中隐藏了大量敏感信息 - 浏览器中的密码、带有连接令牌的cookie、保存有敏感信息的文件(您认为有多少人保存了以“密码”或“私人”等名称命名的文本文件?)、带有恢复密钥的PDF、包含银行信息的Word文档 - 仅举了几例。

一些更具体的信息
感染计算机后,信息窃取者会使用以下各种技术(包括但不限于)来获取数据。这些技术包括:

票据:票据是重要的目标,为犯罪分子提供了访问计算机最快、最简单的方法。这些被盗票据用于浏览器中的登录链接中的收集存储、用户名甚至密码。
Cookies:Cookies使恶意行为者能够访问已登录会话,绕过MFA/2FA等安全措施。
文档和文本文件:信息窃取者发现并瞄准包含机密信息(如财务、知识产权、服务器密码和加密私钥)的高风险文件。
特定于机器的属性:这些属性包括计算机名称、操作系统、IP 地址、感染日期和途径,以及现有的防病毒软件和已安装的应用程序。这是他们进行侦察的方式!
反检测功能:一些机器人框架包含反虚拟机功能,以便在虚拟环境中运行时逃避检测,并包含自毁机制以在执行后消除痕迹

全家福
从技术上讲,信息窃取者是一种恶意软件,我们通常将其视为一种产品(例如购买办公套件或照片编辑程序),从技术上讲,它是一种恶意软件即服务 (MaaS),因为人们可以支付130 至 750 美元购买 Vidar 信息窃取者,例如,根据许可证,从供应商处购买。但人们通常也将其称为自己的实体、家族、分销商、经销商、市场、活动和威胁行为者。在这里,我将从两个方面讨论信息窃取者,而不是关注它是恶意软件还是威胁行为者。

Raccoon Infostealer 于 2019 年 4 月首次被发现,是一种流行且有效的恶意软件即服务 (MaaS)。Raccoon 针对各种敏感信息,例如登录凭据、信用卡详细信息、cookie、浏览器历史记录和自动填充信息。Raccoon 用 C++ 编写,采用模块化方法感染 32 位和 64 位 Windows 系统,使用进程注入技术劫持合法进程(如 explorer.exe)并获得提升的权限。

Raccoon 特别危险的原因在于其全面的数据收集能力。该恶意软件会收集详细的系统信息,包括操作系统架构、版本、系统语言、硬件详细信息和已安装的应用程序。如果攻击者的配置启用了此功能,它还可以捕获屏幕截图。Raccoon 针对每个目标应用程序遵循标准程序:查找和复制包含敏感数据的缓存文件,提取和加密信息,并将其存储在其主操作目录中。收集数据后,Raccoon 会将所有被盗信息压缩为一个 zip 文件,并将其泄露到其命令和控制 (C2) 服务器,通常使用 Telegraph 或 Discord 进行 C2 操作
加密静态数据
在加密静态数据方面,现代操作系统 (OS) 有多种方法可以实现。可用的技术与典型的 OS 存储堆栈紧密结合

堆栈顶部是应用程序,它们在文件(或流)中读取和写入数据。操作系统内核中的文件系统会跟踪底层块设备的哪些块属于哪些文件,并将这些文件读取和写入转换为块读取和写入,但是底层存储设备的硬件细节已从文件系统中抽象出来。最后,块子系统实际上使用适当的设备驱动程序将块读取和写入传递给底层硬件。
测量吞吐量
在存储测试/基准测试方面,灵活的 I/O 测试器是常用的解决方案。让我们在不加密的情况下模拟 ramdisk 上具有 4K 块大小的简单顺序读/写负载

上述命令将运行很长时间,因此我们过一会儿就停止它。从统计数据中我们可以看到,我们能够以大致相同的吞吐量进行读写1126 MB/s。让我们用加密的 ramdisk 重复测试

哇,速度下降了!我们~147 MB/s现在只能得到现在的速度,速度慢了 7 倍以上!而且这是在一台完全空闲的机器上!
深入源代码
当尝试使用dm-crypt上面描述的自定义选项时,我们很好奇它们为什么会存在,以及“卸载”到底是怎么回事。最初我们期望dm-crypt它是一个简单的“代理”,它只是在数据流经堆栈时对其进行加密/解密。结果发现dm-crypt它的作用不仅仅是加密内存缓冲区,下面给出了一个(简化的)IO 遍历路径图

当文件系统发出写入请求时,dm-crypt不会立即处理它 - 而是将其放入名为“kcryptd”的工作队列 中。简而言之,内核工作队列只是安排一些工作(在本例中为加密)在以后更方便的时候执行。当“时间”到来时,将请求发送到Linux Crypto API进行实际加密。但是,现代 Linux Crypto API也是异步的,因此根据您的系统将使用哪种特定实现,很可能不会立即处理它,而是再次排队等待“稍后”。当 Linux Crypto API 最终进行加密时,可能会尝试通过将每个请求放入红黑树中来对待处理的写入请求进行排序。然后,一个单独的内核线程再次在“稍后”实际获取树中的所有 IO 请求并将它们发送到堆栈下方。dm-crypt dm-crypt

现在对于读取请求:这次我们需要先从硬件获取加密数据,但dm-crypt不仅仅是向驱动程序请求数据,而是将请求排队到名为“kcryptd_io”的另一个工作队列 中。稍后,当我们真正拥有加密数据时,我们会使用现在熟悉的“kcryptd”工作队列安排它进行解密。“kcryptd”将请求发送到 Linux Crypto API,后者也可能异步解密数据。
同步 Linux 加密 API
从上图我们记得,并非所有排队都是在 中实现的dm-crypt。现代 Linux Crypto API 也可能是异步的,为了进行此实验,我们也希望消除那里的队列。但是,“可能”是什么意思呢?操作系统可能包含同一算法的不同实现(例如,x86 平台上的硬件加速 AES-NI和通用 C 代码 AES 实现)。默认情况下,系统会根据配置的算法优先级选择“最佳”算法。dm-crypt允许覆盖此行为并使用前缀请求特定的密码实现capi:。但是,有一个问题。让我们实际检查系统上可用的 AES-XTS
使用全部
让我们一起来看看使用它们的过程。第一步是获取补丁并重新编译内核(或者只是编译dm-crypt我们的xtsproxy模块)。

接下来,让我们在单独的终端中重新启动我们的 IO 工作负载,这样我们就可以确保我们可以在负载下运行时重新配置内核
1
投入生产
到目前为止,我们一直在使用合成设置,其中缺少完整生产堆栈的某些部分,例如文件系统、实际硬件以及最重要的生产工作负载。为了确保我们不是在优化虚构的东西,下面是这些更改给我们堆栈的缓存部分带来的生产影响的快照

该图表显示了我们其中一台服务器中缓存命中的最坏情况响应时间(第 99 个百分位)的三向比较。绿线来自具有未加密磁盘的服务器,我们将其用作基准。红线来自具有加密磁盘并使用默认 Linux 磁盘加密实现的服务器,蓝线来自具有加密磁盘并启用了我们的优化的服务器。我们可以看到,默认的 Linux 磁盘加密实现在最坏情况下对我们的缓存延迟有显著影响,而修补后的实现与根本没有使用加密没有区别。换句话说,改进的加密实现对我们的缓存响应速度没有任何影响,所以我们基本上是免费获得的!这是一个胜利!
ysoserial-CommonsCollections系列总结篇

前言:
网上分析CommonsCollections调用链的文章也有不少,但是看完分析文章直接手动构造利用链仍有难度,因此这篇文章主要总结本人调试ysoserial的CommonsCollections系列利用链的思考和体会,通过这篇文章希望大家能够了解CommonsCollections不同链之间的共性和区别,能够在看完gadget后可以手动构造利用链,本文主要内容包括以下几点:

1.每条反序列化利用链的构成特点
2.每条链不同类之间衔接的特点及要点
3.对比不同利用链之间的区别以及相似点
4.自己如何根据链接点的特性来构造反序列化exp
5.如何混合搭配链接点从而形成一条新的gadget利用链(例如cc5、cc6、cc7分别扩展2条、2条、1条)
对于cc1(以下cc即代表commonscollections)来说最外层的Annotationinvocationhandler相当于只是一个容器作用,将动态代理proxy放到其this.memberValues成员方法中去,其中invocationhandler又是一个Annotationinvocationhandler,然后在其readobject方法中就会调用this.memberValues.entryset,从而触发动态代理,从而进入动态代理的invoke函数代码块

因此invoke函数中调用this.memberValues.get即调用lazymap.get,从而到了this.factory.transform(),接下来内部是chainedTransformer+constantTransformer+3层invokeTransformer,因为get的参数是不存在的entryset,所以需要constantTransformer先返回一个Runtime类再通过3个invokeTransformer联合起来反射rce执行命令。