从Kimsuky组织msc攻击样本到GrimResource
从Kimsuky组织msc攻击样本到GrimResource前言近期笔者通过外网监测到一个Kimsuky组织的msc攻击样本,这里对样本进行分析,以及谈谈其利用的攻击技术
1SHA256: 57e9b7d1c18684a4e8b3688c454e832833e063019ed808fd69186c4e20df930a
msc文件
MSC(Microsoft Snap-In Control)文件,是微软管理控制台MMC(Microsoft Management Console)用来添加/删除的嵌入式管理单元文件。通常通过MMC来管理,可点击“文件”菜单中的“添加/删除管理单元”操作来管理当前系统中已经安装的MSC文件。可以点击开始/运行,然后输入下列文件名就可以打开相应的控制窗口。
看到这个后缀,很多人可能已经想到了组策略编辑器(gpedit.msc),该样本即是通过msc文件实现攻击,利用特制的管理保存控制台 (MSC) 文件来使用 Microsoft 管理控制台 ( MMC ) 获得完整的代码执行并逃避安全防御
这项技术最早由Elastic 安全实验 ...
Nanocore恶意程序分析
Nanocore恶意程序分析前言最近在外网发现一个有意思的Nanocore恶意脚本的样本,给大家分享一下
123SHA256: c6092b1788722f82280d3dca79784556df6b8203f4d8f271c327582dd9dcf6e1Sharelink: https://virusshare.com/file?2596ef126fb57cdf2ba563b05444ad0ec6dad6a0083b3c309ca9595e64ad0615
初步分析
源文件的大部分均为干扰用的字符串,直接正则替换提取出来,拿到核心代码
^(REM|').*
混淆技术分析首先chr字符串可以很容易想到数值转换字符,我们用第一个混淆具体拆开分析一下
chr函数:数值转字符
479808:十进制数值,用于参与后续的计算
CLng函数:vbs中的CLng 函数,用于把表达式转换为长整型(Long)类型
&H1B90:这是vbs中的十六进制写法,代表0x1B90
以及其余的算术运算符
直接做计算得到:
同理第二个混淆:
通过python批量提取所有混淆后的pay ...
Java安全基础
Java安全基础Note类和对象的关系类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板。
类与对象的关系就如模具和铸件的关系 类的实例化结果就是对象,而对一类对象的抽象就是类,类描述了一组有相同属性和相同方法的对象。
class类的newInstance方法class的newInstance()方法,需要我们类中存在无参的构造器,并且能直接访问,它通过无参的构造器来实例化,而一旦我们类中不存在无参构造器,那么第一种方法就不行了
getMethods 和 getDeclaredMethods 方法的区别getMethods:获取当前类或父类或父接口的 public 修饰的字段;包含接口中 default 修饰的方法 (JDK1.8)。
getDeclaredMethods: 获取当前类的所有方法;包括 protected/默认/private 修饰的方法;不包括父类 、接口 public 修饰的方法。
反射Runtime.exec和Process ...
渗透测试面试分区块总结
域渗透123456789101112131415161718192021222324#DC WindowsServer2012域名:y5neko.comNAT:192.168.1.129静态:192.168.1.250密码:Y5NEKO0/Administrator:dc@123NetBIOS域名:Y5NEKO0其他域用户账号密码:user1:win71@123user2:win72@123普通域管理员账号密码:admin:admin@123yueshu:yueshu@123yeushu1:yueshu1@123ziyuanyueshu:ziyuanyueshu@123SYSVOL漏洞测试密码:user@123#WIN71 Windows7密码:Administrator:win71@123静态:192.168.1.3#KaliNAT:192.168.1.128
信息搜集判断域环境1net config workstation
找域控123456#fscan扫描netbios./fscan_amd64 -np -m netbios -h 192.168.1.0/24#net g ...
一些关于JavaFX的记录
环境准备下载对应版本JavaFX,解压出来如下:bin目录下所有dll放入jdk的bin目录,lib目录下的所有jar包添加进项目库,src为source源。
Scene图
## 概述
Scene图是一种树形数据结构,它排列(和分组)图形对象以便于逻辑表示。 它还允许图形引擎以最有效的方式渲染对象, 完全或部分跳过在最终图像中看不到的对象。 下图显示了JavaFX场景图架构的一个示例。
在架构的最顶端有一个`Stage`。 `Stage`是原生操作系统窗口的JavaFX表示。 在任何给定的时间,阶段可以有一个单一的`Scene`连接到它。 场景是JavaFX场景图的容器。
JavaFX `Stage`图中的所有元素都表示为`Node`对象。 节点有三种类型:根、分支和叶。 根节点是唯一没有父节点的节点 直接包含在一个场景中,如上图所示。 分支和叶节点之间的区别在于叶节点没有子节点。
在scene图中,父节点的许多属性由子节点共享。 例如,应用于父节点的转换或事件也将递归地应用于其子节点。 因此,可以将复杂的节点层次结构视为单个节点,以简化编程模型。 我们将在后面的章节中探索转换和事件 ...
数据结构
PE结构
## 概念
**PE**(Portable Execute)文件是Windows下可执行文件的总称,常见的有 DLL,EXE,OCX,SYS 等。它是微软在 UNIX 平台的 COFF(通用对象文件格式)基础上制作而成。最初设计用来提高程序在不同操作系统上的移植性,但实际上这种文件格式仅用在 Windows 系列操作系统下。PE文件是指 32 位可执行文件,也称为PE32。64位的可执行文件称为 PE+ 或 PE32+,是PE(PE32)的一种扩展形式(不是PE64)。
名称
描述
地址
是 “虚拟地址” 而不是“物理地址”。不是“物理地址”的原因shi数据在内存的位置经常在变,这样可以节省内存开支、避开错误的内存位置等的优势。同时用户并不需要知道具体的“真实地址”,因为系统自己会为程序准备好内存空间的(只要内存足够大)
节
节 是 PE 文件中 代码 或 数据 的基本单元。原则上讲,节只分为 “代码节” 和 “数据节” 。
镜像文件
包含以 EXE 文件为代表的 “可执行文件”、以DLL文件为代表的“动态链接库”。因为他们常常被直接“复制”到内存,有“ ...
汇编语言
概念CPU 只负责计算,本身不具备智能。你输入一条指令(instruction),它就运行一次,然后停下来,等待下一条指令。这些指令都是二进制的,称为操作码(opcode),比如加法指令就是00000011。编译器的作用,就是将高级语言写好的程序,翻译成一条条操作码。对于人类来说,二进制程序是不可读的,根本看不出来机器干了什么。为了解决可读性的问题,以及偶尔的编辑需求,就诞生了汇编语言。
汇编语言是二进制指令的文本形式,与指令是一一对应的关系。比如,加法指令00000011写成汇编语言就是 ADD。只要还原成二进制,汇编语言就可以被 CPU 直接执行,所以它是最底层的低级语言。
寄存器CPU 本身只负责运算,不负责储存数据。数据一般都储存在内存之中,CPU 要用的时候就去内存读写数据。但是,CPU 的运算速度远高于内存的读写速度,为了避免被拖慢,CPU 都自带一级缓存和二级缓存。基本上,CPU 缓存可以看作是读写速度较快的内存。
但是,CPU 缓存还是不够快,另外数据在缓存里面的地址是不固定的,CPU 每次读写都要寻址也会拖慢速度。因此,除了缓存之外,CPU 还自带了寄存器(regis ...
IDA Pro操作指南
摘要工具nm将源文件编译成目标文件时,编译器必须嵌入一些全局(外部)符号的位置信息,以便链接器在组合目标文件以创建可执行文件时,能够解析对这些符号的引用。除非被告知要去除最终的可执行文件中的符号,否则,链接器通常会将目标文件中的符号带入最终的可执行文件中。根据nm手册的描述,这一实用工具的目的是“列举目标文件中的符号”。使用rm检查中间目标文件(扩展名为.0的文件,而非可执行文件)时,默认输出结果是在这个文件中声明的任何函数和全局变量的名称。nm实用工具的样本输出如下所示。从中可以看到,m列出了每一个符号以及与符号有关的一些信息。其中的字母表示所列举的符号的类型。前面的例子中出现了以下字母,下面逐一解释。U,未定义符号,通常为外部符号引用。T,在文本部分定义的符号,通常为函数名称。t,在文本部分定义的局部符号。在C程序中,这个符号通常等同于一个静态函数。D,已初始化的数据值。C,未初始化的数据值。
大写字母表示全局符号,小写字母则表示局部符号。请参阅nm手册了解有关字母代码的详细解释。
如果使用nm列举可执行文件中的符号,将会有更多信息显示出来。在链接过程中,符号被解析成虚拟地址( ...
基础免杀
一些有关免杀的基础学习。
Linux运维疑难杂症
Linux运维Docker介绍Linux 发展出了另一种虚拟化技术:Linux 容器(Linux Containers,缩写为 LXC)。
Linux 容器不是模拟一个完整的操作系统,而是对进程进行隔离。或者说,在正常进程的外面套了一个保护层。对于容器里面的进程来说,它接触到的各种资源都是虚拟的,从而实现与底层系统的隔离。
由于容器是进程级别的,相比虚拟机有很多优势。
①启动快:容器里面的应用,直接就是底层系统的一个进程,而不是虚拟机内部的进程。所以,启动容器相当于启动本机的一个进程,而不是启动一个操作系统,速度就快很多。
②资源占用少:容器只占用需要的资源,不占用那些没有用到的资源;虚拟机由于是完整的操作系统,不可避免要占用所有资源。另外,多个容器可以共享资源,虚拟机都是独享资源。
③体积小:容器只要包含用到的组件即可,而虚拟机是整个操作系统的打包,所以容器文件比虚拟机文件要小很多。
总之,容器有点像轻量级的虚拟机,能够提供虚拟化的环境,但是成本开销小得多。
Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。
Do ...