自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

原创 snort安装和使用

下载snort下载npcap 0.9984版本安装npcap ,snort安装成功如果使用npcap版本不对或者使用winpcap会出现错误,winpcap不在win10运行。

2024-04-17 18:00:58 248

原创 Lazarus远控组件NukeSped分析

打开文件成功就读取文件到dword_40B498,buffer:0040AEB0,大小0x36Eu,打开文件失败则,memset对dword_40B498地址后0x36Eu大小 区域置零,调用GetModuleFileName获取当前的运行进程路径并将其写入到Run注册表中以实现本地持久化,写入的注册表键值为msnconf。之后将IP和端口填充到前面用02分割的内存空间中,填充的02是connect参数sockaddr结构体中的sa_family。完整python代码。完整python代码。

2024-03-31 20:35:47 329 1

原创 Emotet分析

编写启动器方便调试。样本经过控制流平坦化和大数运算混淆阻碍样本逻辑的分析控制流平坦化:使得程序反编译为复杂的循环结构和选择结构大数运算混淆:样本没有导入函数,通过遍历内存加载的模块(peb)和其导出函数的名称,计算hash,和存储的hash对比,得到对应的API函数地址。github下载ida脚本使得反编译更可读。通过对MY_GetProcAddr函数下断,可以得到动态调用的所有函数的名称和地址。2410解密函数内调用MY_RtlAllocateHeap。

2024-03-31 20:18:34 840

原创 AgentTesla样本分析

从资源中获取xml数据,获取当前计算机用户名和临时文件路径,replace替换xml文件中的userid变量和location变量,将替换后的xml写入临时文件。获取到解密流后通过 Copy 除去开头一些混淆用的 16 字节冗余数据后返回,确定解密出的数据是dll文件。跟进\u200f,先获取一个对象实例,\u206A函数中都是uint数组,存放的是加密的数据和解密的密钥。窃取到的数据都存在list列表中,如果list列表不是空的,则遍历获取窃密的信息,加入标识符按照格式写入。

2024-03-31 12:58:58 797

原创 贪吃蛇变种分析

创建进程执行MSSHQL.exe,判断是否是管理员权限。管理员权限:内置的PE释放到同路径下,名称为MSSHQL.exe,执行MSSHQL.exe非管理员账户:64位系统下将内置的PE文件MS19.exe、MS20.exe释放的到样本同文件夹下,执行。MS19.exe、MS20.exe为提权工具。提权后执行MSSHQL.exe。MS19.exe 获得SeImpersonate或SeAssignPrimaryToken权限,提升为system权限。

2024-03-28 16:00:31 515

原创 蔓灵花组织wmRAT分析

408460函数获取上线数据包:computername,username,注册表获取的systeminfo ,GetModuleFileNameW获取的样本所在路径,通过||连接起来。之后创建两个线程,一个用来接收数据,根据指令执行命令。拼接后的上线数据,为四字节标识码+四字节数据长度+上线数据。通过case 值为0 分析,第二次recv接收数据长度。第一次recv接收四个字节的标识,一共14种情况,所以数据包的格式为 4字节标识+4字节长度+数据。之后分配数据长度+1大小的内存,并接收指令数据。

2024-03-26 21:30:48 193

原创 一个bitter组织下载器样本分析

该组织最早在2016由美国安全公司Forcepoint进行了披露,并且命名为“BITTER”,同年国内友商360也跟进发布了分析报告,命名为“蔓灵花”

2024-03-26 14:11:41 297

原创 样本投递技术

APT 组织主要以邮件作为投递载体,邮件的标题、正文和附件都可能携带恶意代码。主要的方式是附件是漏洞文档、附件是二进制可执行程序和正文中包含指向恶意网站的超链接这三种。APT攻击的载荷类型:文档类:主要是office文档、pdf文档脚本类:js脚本、vbs脚本、powershell脚本等可执行文件:一般为经过RLO处理过的可执行文件、自解压包lnk:带漏洞的(如震网漏洞)和执行powershell、cmd等命令的快捷方式网页类:html、hta等。

2024-03-25 20:56:31 606

原创 【C2架构】

上线数据包:上线数据包中 一般会包含受害主机的一些基本信息,例如计算机名称,硬件 ID,计 算机版本信息等等内容,在传输之前,可能使用一些比较简单的自定 义算法,或者 RSA、AES 这类成熟的算法进行加密。对于加密数据的处理,需要确定的是是否有采用已知的算法,定 位一些关键函数是非常快速的方法,以 Windows 程序为例:需要确 定是否导入了 Crypt*系列的函数。

2024-03-24 20:31:42 615

原创 【协议-HTTPS】

https是在http协议的基础上,添加了SSL/TLS握手以及数据加密传输,也属于应用层协议。https=http+加密+认证+完整性保护https交互图:HTTPS的整体过程分为证书验证和数据传输阶段:① 证书验证阶段浏览器发起 HTTPS 请求服务端返回 HTTPS 证书客户端验证证书是否合法,如果不合法则提示告警② 数据传输阶段当证书验证合法后,在本地生成随机码通过公钥加密随机码,并把加密后的随机码传输到服务端服务端通过私钥对随机码进行解密。

2024-03-24 19:55:28 444

原创 【协议-HTTP】

HTTP协议(超文本传输协议HyperText Transfer Protocol),它是基于TCP协议的应用层传输协议。http协议定义web客户端如何才能够web服务器请求web页面,以及服务器如何把web页面传送给客户端。HTTP 是一种无状态 (stateless) 协议, HTTP协议本身不会对发送过的请求和相应的通信状态进行持久化处理。然而,在许多应用场景中,我们需要保持用户登录的状态或记录用户购物车中的商品。由于HTTP是无状态协议,所以必须引入一些技术来记录管理状态,例如Cookie。

2024-03-24 18:11:21 489

原创 一些恶意样本的流量分析学习

Trickbot 是一种自 2016 年以来一直在感染受害者的信息窃取者和银行恶意软件。Trickbot通过恶意垃圾邮件(malspam)分发,也由其他恶意软件(如Emotet,IcedID或Ursnif)分发。分析来自恶意垃圾邮件的 Trickbot 感染和通过其他恶意软件分发的 Trickbot 感染。

2024-03-24 16:33:44 1041

原创 wireshark流量分析

wireshark 默认显示列No:编号,即pacp开始的帧号Time:时间,分解为纳秒Source:源地址,通常为IPv4、IPv6、以太网地址Destination:目的地址,通常为IPv4、IPv6、以太网地址Protocol:协议,{ 在以太⽹帧、IP包或TCP段(ARP、DNS、TCP、HTTP等)中使⽤的协议)}length:帧的⻓度,单位为字节右键列标题1.取消勾选可以隐藏列2.列首选项,点击加号、减号 新增或删除列3.自定义新增列。

2024-03-24 16:10:51 1696

原创 【协议-SMTP】

SMTP是简单邮件传输协议,使用tcp的25端口建立连接传输邮件。587 端口是现代网络 SMTP 提交的默认端口。587 端口还支持 TLS,这意味着您可以安全地提交邮件。smtp客户端发送操作命令,smtp服务器返回状态码。操作命令:状态码:smtp共有四个阶段,分别是:连接建立、身份认证、邮件传输、连接断开。跟踪tcp流:数字7红色字体部分都是邮件明文数据。ehlo与helo:ehlo申明需要用户验证// 用这个命令表示身份验证开始。

2024-03-23 20:25:03 359

原创 【协议-DNS】

DNS协议是应用层协议,用于将用户提供的主机名(域名)解析为 IP 地址。

2024-03-23 20:22:55 746

原创 【协议-ICMP】

ping命令底层使用的是ICMP,ICMP报文封装在ip包里。它是一个对IP协议的补充协议,允许主机或路由器报告差错情况和异常状况。ICMP使用时必须增加IP报头。通常ICMP隧道技术采用ICMP的ICMP_ECHO和ICMP_ECHOREPLY两种报文,把数据隐藏在ICMP数据包包头的选项域中,利用ping命令建立隐蔽通道。1.请求和回应部分数据不一致。正常的icmp数据包里,请求和回应部分数据是一致的。3.ICMP隧道 数据包中DATA 往往大于 64 比特。2.同一时间内大量的icmp数据包。

2024-03-23 20:16:27 185

原创 【1-1】安卓逆向-教程实验

以下都是网上的教程的一些教学案例的学习过程。

2023-12-17 22:43:40 352

原创 【1-0】安卓逆向-smali语法

看这个文章就能懂,不会的点再查查。

2023-12-14 22:16:50 331

原创 【0-5】安卓逆向-应用名称、修改图标、汉化、双开、去广告

实验使用apk是bugku上的一个题timer,下载链接:https://github.com/Pyikaaaa/android_ctf/blob/main/bugku/timer.zip运行效果。

2023-12-14 22:13:31 362

原创 【0-3】安卓逆向-安卓开发(随时更新)

这篇文章按照时间顺序记录学习安卓逆向过程中遇到的开发知识。

2023-12-13 23:49:04 1124

原创 【0-2】安卓逆向-APK文件结构和打包

APK (Android application package)指 Android 应用程序包,是 Android 系统中的一种文件格式,。直接解压如下图所示。

2023-12-12 21:47:38 316

原创 【0-4】安卓逆向-ctf入门

因为主要的判断逻辑是在OnClickListener这个类里,而这个类是MainActivity的一个内部类,同时我们在实现的时候也没有给这个类声明具体的名字,所以这个类用$1表示。重新编译打包签名运行后flag已经显示出来了。

2023-12-12 21:46:24 563

原创 【0-1】安卓逆向-模拟器环境搭建&工具安装与使用

参照链接,在官网下载雷电模拟器最新版。

2023-12-12 13:38:47 448

原创 【0-0】安卓逆向-如何学习&第一个安卓程序开发

(3) android应用中每一个Activity都必须要在AndroidManifest.xml配置文件中声明,否则系统将不识别也不执行该Activity。Activity:打开应用显示的画面(活动卡片),它的主要功能就是可以和用户进行交互操作,所以几乎所有的Activity都会负责创建一个显示窗口,然后通过setContentView显示特定的UI。(1) 一个Activity通常就是一个单独的屏幕(窗口)。Activity 暂停,UI可见,不可操作。Activity停止,UI不可见。

2023-12-10 22:20:06 301

原创 获取GetProcAddress

fs:[0x30] 指向peb,PPEB_LDR_DATA 偏移1c是一个指向LIST_ENTRY InInitializationOrderModuleList结构的指针,这个结构 存放着指向模块初始化链表的头 , 按顺序存放着PE装入运行时初始化模块信息,一般来说第一个链表结点是ntdll.dll,第二个链表结点就是kernel32.dll。我们就在其中找到kernel32.dll的信息,获取其PE信息,得到导出表,循环遍历得到GetProcAddress函数。

2023-12-05 12:31:52 27

原创 pe-导入表

再根据函数名在内存中找到函数地址,并且用函数地址将xxxx处的内容替换成真正的函数地址。当PE文件被装载的时候,Windows装载器会。

2023-12-05 12:25:53 26

原创 【pe-节表】

节表的大小是 0x28个字节.也就是两行半(一行16字节),观看一行半可以得出节名称.节在内存中的偏移. 以及节数据在文件中的偏移.确定节表数量: 节表数量在文件头中存放着.可以准确知道节表有多少个.确定节表位置: DOS + NT头下面就是节表,

2023-12-05 12:21:52 21

原创 结构体指针&指针

如果定义一个结构体类型的普通变量,可以不malloc动态申请内存,CPU会为这个结构体变量分配内存 如果定义的是一个结构体的指针,CPU会为这个指针开辟内存,但是此时这个大小是4(如果是32位的CPU的话),所以这个空间不足以存储结构体的数据成员,就会引发错误,此时必须要malloc申请一个,结构体类型大小的动态内存。int a;}*p_a;//定义结构体”a“的指针并进行初始化// 定义结构体 "a" 的指针p_a myA;// 为结构体 "a" 的指针分配内存并初始化数据成员。

2023-11-09 21:42:07 58 1

原创 【笔记】恶意代码分析实战-18(加壳与脱壳)

加壳可执行文件的两个主要目的是。虽然加壳器的种类繁多,但是它们都遵循相似的模式:将一个可执行文件转换创建一个新的可执行文件,被转换的可执行文件在这个新的可执行文件中作为数据存储,另外新的可执行文件还包括一个供操作系统调用的。

2023-11-09 21:27:54 102 1

原创 【1】加壳程序-1

4.修改扩展头SizeofImage PE镜像大小. 扩展头.SizeofImage = 内存对齐(原SizeofImage值 + 你行增节数据大小 按照内存对齐)2.修改文件头中节表个数. 文件.SectionNumber = 原有节个数 + 你新增节的个数. 例如: 原为7.你增加了一个节.就为8。1.一个节表0x28个字节.在最后一个节表位置添加.如果SizeofHeaders 有足够空间的情况下.新建加壳器和stub项目,stub设置如下。程序中动态调用dll,因此需要先生成dll。

2023-11-08 11:53:18 62 1

原创 尾部跳转方法

利用call{pop ebxshellcode。ebx获取shellcode地址。

2023-11-02 14:08:11 55

原创 生成rsa密钥对

生成rsa密钥对。

2023-05-04 13:33:24 99

原创 Windows 环境下编译OpenSSL1.1

下载对应版本的openssl https://www.openssl.org/source/old/1.1.1/openssl 1.1.0版本以后就不再有ms\do_*.bat这样的文件,而是直接使用nmake命令。解压后管理员打开本地VS2019开发人员命令提示,切换到openssl源代码目录下,输入执行以下命令。下载perl环境 http://strawberryperl.com。

2023-03-27 09:36:36 257

原创 虚拟机初始镜像配置

初始镜像配置

2023-02-07 11:33:46 114

原创 CS -exe木马分析

CS -exe木马分析Cobalt Strike是渗透测试工具,可以通过exe木马实现远程控制。一:生成exeWindows Executable 生成可执行exe木马;payload分段Windows Executable(S) 生成无状态的可执行exe木马,payload不分段分析Windows Executable 生成的artifact.exe查壳:无壳二:具体分析401840关键函数:获取系统时间戳,通过sprintf拼接管道名,创建线程,写加密数据到创建的管道内,最后解密执行

2022-04-05 16:38:31 2437 1

原创 内核学习-异常

内核学习-异常异常产生后,首先是要记录异常信息(异常的类型、异常发生的位置等),然后要寻找异常的处理函数,称为异常的分发,最后找到异常处理函数并调用,称为异常处理。围绕 异常处理,异常分发,异常处理展开异常的分类:(1)cpu产生的异常[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZYiH89U2-1635589257293)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-202110

2021-11-17 20:07:10 413

原创 植物大战僵尸初探

植物大战僵尸初探1.0 修改阳光值在不断偏移定位到基址运行游戏,使用CE(Cheat Engine)加载游戏,想要修改阳光,可以通过人为的多次变化阳光的值,定位到动态地址。1.初始阳光 50 ,精准搜索阳光值50改变阳关的值,再次搜索,发现定位到数据,验证一下数据的是否决定阳光的值,双击value值修改阳光值立刻跟着改变,说明找对了位置。找的这个数据是动态地址。动态地址:临时用于存放数据的地址,黑色。特征:重新启动游戏地址发生变化静态地址:永久用于存放数据的地址,绿色。特征:重新

2021-10-09 14:26:14 2296

原创 windows内核学习-内存管理

内存管理使用virtualkd+windbg+winxp sp3 进行双机调试,kd> ! process 0 0查看所有进程查看notepad.exe进程EPROCESS结构体kd> dt _EPROCESS 81c502a0 0x11c VADRoot :是一个搜索二叉树的入口点 ,树的每一个节点记录了被占用的虚拟内存地址空间,这个搜索二叉树就是VAD树。VAD的属性以及遍历VAD是管理虚拟内存的,每一个进程有自己单独的一个VAD树使用VirtualAlloca

2021-09-29 20:45:55 1176

原创 dll注入&代码注入

dll注入&代码注入CreateRemoteThread思路:在目标进程中申请一块内存并向其中写DLL路径,然后调用 CreateRemoteThread ,**(在自己进程中 创建远程线程到到目标进程)在目标进程中创建一个线程。**LoadLibrary()”函数作为线程的启动函数,来加载待注入的DLL文件 ,LoadLibrary()参数 就是存放DLL路径的内存指针. 这时需要目标进程的4个权限(PROCESS_CREATE_THREAD,PROCESS_QUERY_INFORMATION

2021-09-17 20:06:48 1594

原创 内核学习-系统调用下

系统调用的学习上文回顾上篇文章分析得到:1.3环进0环的两种方式,分别是中断门和快速调用,CPU支持快速调用,那么_KUSER_SHARED_DATA 结构体的 SystemCall 属性指向的函数是 KiFastSystemCall,执行 KiFastSystemCall,使用快速调用的方式进0环;如果不支持,那么SystemCall 指向的函数是KiIntSystemCall,执行 KiIntSystemCall,使用中断门的方式进0环。2.快速调用不需要访问内存,而中断门需要读TSS和IDT表

2021-07-21 11:35:14 94

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除