- 博客(27)
- 收藏
- 关注
原创 释放重引用(Use After Free,UAF)漏洞原理
释放重引用漏洞就是使用到已被释放的内存,最终导致内存崩溃或任意代码执行的漏洞。UAF漏洞在浏览器中最常见,比如IE、Chrome、Firefox等。
2022-12-21 12:58:03
1940
原创 恶意流量分析(三)
本次分析2016-10-15:在进行溯源工作时应先从报警文件进行分析,报警文件中一定包含恶意行为的痕迹,首先打开报警文件进行分析。
2022-12-08 12:12:53
646
原创 恶意流量分析(一)
在分析恶意样本时,样本可能包含网络行为,比如样本从C2服务器上请求下载后续病毒文件。所以对于在病毒分析的角度,对恶意流量的分析也是不可避免的。
2022-11-26 15:32:33
2855
原创 TCP三次握手四次挥手及HTTP请求、响应Wireshark抓包分析
第一次握手:客服端发送报文,并且设置发送序号为X;第二次握手:服务端发送和报文,并且设置发送序号为Y,确认序号为X+1;第三次握手:客服端发送报文,并且发送序号为X+1,确认序号为Y+1;
2022-11-24 14:03:00
1797
原创 压缩壳脱壳
ESP定律可以找到大部分压缩壳的OEP,但是对于FSG壳失效。目前常见的FSG手脱方法大多是单步向下,单步一定能找到OEP但是会消耗时间并且可能出现跟飞的情况。可以通过OD中的SFX(自解压)设置选项来快速找到OEP。...
2022-06-27 11:21:55
634
原创 Windows内核漏洞学习笔记
通常情况下,操作系统的内核程序、驱动程序等都是在0环上运行的。漏洞的攻防一直是此起彼伏的状态,驱动也可以作为病毒木马的载体。此篇仅作为学习记录是自己加深对内核漏洞的理解。0 驱动程序 0day中的驱动程序exploitme:#include <ntddk.h>#define DEVICE_NAME L"\\Device\\ExploitMe" #define DEVICE_LINK L"\\DosDevices\\ExploitMe"#defi...
2022-05-13 15:10:46
996
原创 壳的机制以及脱壳技术
0 壳的概念壳是用来保护计算机软件不被非法修改或编译的程序; 其附加在原始程序上,通过Windows加载器载入内存后,先于原始程序执行以得到程序控制权,在执行过程中对原始程序进行解密、还原,还原后把控制权还给原始程序,执行原来的代码; 由于壳能保护自身代码,许多木马和病毒都喜欢用壳来保护及隐藏自身; 对于一些流行的壳,杀毒引擎能先对目标软件进行脱壳,再进行病毒检查。对大多数私人壳,杀毒软件不会专门开发解压引擎,而是直接把壳当成木马或病毒来处理; 处于不同的目的,壳可以分为压缩壳(减小软件的体积)
2022-04-12 12:51:07
2325
原创 GandCrab v2.0 勒索病毒分析
1. 原始样本分析首先对原本样本hmieuy.exe查壳,没有发现壳。再使用pe工具查看原始样本:发现EnumResourceNamesA、FindFirstFIleA、MoveFileW、GetProcAddress等函数,同时原本资源节中还含有内容;初步猜测样本可能会搜索资源节中数据并进行某种操作。1.1 代码分析IDA打开原始样本hmieuy.exe分析,在wWinMain函数函数入口发现代码混淆:寻找关键点,发现分配堆空间函数GlobalAlloc函数的调用,
2022-04-06 10:17:13
833
原创 Windows Shellcode开发[3]
0 前言及编写shellcode准备工作在Windows Shellcode开发介绍的最后一部分,我们将编写一个简单的改变鼠标左右键的shellcode。我们需要用到两个函数:SwapMouseButton和ExitProcess函数。首先看一个两个函数的参数与返回值情况:SwapMouseButton只有一个BOOL类型参数,若参为TRUE则交换鼠标左右键,返回值非0;ExitProcess也只有一个参数,代表进程退出代码。整理一下思路:我们需要调用以上两个函数,在C++中体现
2022-03-25 15:38:27
5526
原创 Windows Shellcode开发[2]
0 前言在这部分我们将了解正确编写Windows系统shellcode所需的信息:进程环境块和PE文件格式。上一部分在这里:Windows Shellcode开发[1]1 进程环境块在Windows操作系统中,PEB作为一种结构可以用于内存中固定地址的每个进程。此结构包含进程相关信息,如:可执行文件加载到内存中的地址、模块列表(DLL)、指定进程是否在调试等。在不同版本的Windows系统中,PEB各字段偏移可能会随之改变。由于地址空间布局随机化(ASLR),DLL将被加载到不同的内存地址,
2022-03-24 16:09:44
4594
原创 Windows Shellcode开发[1]
0 前言本文包含对shellcode开发技术及其特点的概述,了解了这些概念我们就可以编写自己的shellcode,而且我们还可以修改现有漏洞的shellcode来执行我们自定义的功能。1 Shellcode介绍维基百科中对shellcoed的介绍:“在计算机安全中,shellcode 是一小段代码,用作利用软件漏洞的有效载荷。之所以称为“shellcode”,是因为它通常启动一个命令shell,攻击者可以从中控制受感染的机器,但任何执行类似任务的代码都可以称为 shellcode……She
2022-03-24 09:35:07
576
原创 CVE-2010-2883分析
一、漏洞描述Adobe Reader 和 Acrobat 9.x 9.4 之前的 CoolType.dll 中基于堆栈的缓冲区溢出,以及 Windows 和 Mac OS X 8.2.5 之前的 8.x,允许远程攻击者执行任意代码或导致拒绝服务(应用程序崩溃)通过在 TTF 字体的 Smart INdependent Glyphlets (SING) 表中具有长字段的 PDF 文档。用户受骗打开了特制的PDF文件就有可能导致执行任意代码。二、漏洞复现实验环境:Windows XP SP3虚拟机、
2022-03-20 10:28:48
5031
原创 恶意代码分析实战—第18章加壳与脱壳
脱壳存根被加壳程序中的脱壳存根由操作系统加载,然后脱壳存根负载加载原始程序。对于加壳程序来说,可执行程序的入口点指向脱壳存根,而不是原始代码。原始程序通常存储在加壳程序的一个或多个附加节中。脱壳存根执行了以下三步操作:1. 将原始程序脱壳到内存中;2. 解析原始可执行文件的所有导入函数;3. 将可执行程序转移到原始的程序入口点(OEP)。尾部跳转一旦脱壳存根完成脱壳,他就必须转到OEP运行。转到OEP的指令通常被叫做尾部跳转指令(jmp、ret、call)。书中对于脱壳
2022-03-15 15:49:59
754
原创 恶意代码分析实战第15章实验
首先IDA中定位到所有对抗反汇编技术并修正。第一处:0040115E处发现对抗反汇编技术,栈顶指针一定非0,所以test esp,esp一定非0;jnz则会执行到loc_40115E+1。在0040115E处按D查看数据:在0040115F处按C转换为代码:可以看出db 0E9h即为干扰。第二处:在004011D0处将eax清0又使用jz命令,能够看出这是一个固定条件的跳转方式。在004011D4处按D查看数据:在004011D5处按C转换为代码:这.
2022-03-14 10:51:45
540
2
原创 恶意代码分析实战第13章实验
Lab13-11. 比较恶意代码中的字符串与动态分析提供的有用信息,基于这些比较,哪些数据可能被加密?string查看Lab13-01.exe字符串注意到有http字符串,并且%s表示有输出的值。利用火绒剑监控Lab13-01.exe,可以看到文件正在访问www.practicalmalwareanalysis.com/aGFueHUtUEM=/推测两个%s表示的正是www.practicalmalwareanalysis.com和aGFueHUtUEM=,但在查看Lab13-01
2022-03-10 20:00:14
380
原创 恶意代码分析实战第12章实验
Lab 12-1首先还是一样,peid进行查壳,发现无壳后查看导入表。导入表中发现CreateRemoteThread、VirtualAllocEx、LoadLibrary等敏感函数。IDA打开Lab12-01.exe分析,程序使用LoadLibraryA+GetProcAddress分别获取EnumProcessModules、GetModuleBaseNameA和EnumProcesses函数在psapi.dll中的地址。接下来获取Lab12-01.dll所在的完全路径,并将路径存
2022-03-04 19:40:48
532
原创 恶意代码分析实战第11章实验
Lab 11-11. 这个恶意代码向磁盘释放了什么? 首先peid查壳后发现无壳,IDA打开Lab11-01.exe分析。发现调用了GetModuleHandleA函数并且参数为0,所以函数的返回值就是Lab11-01.exe文件的句柄。并且在0040120F处将得到的句柄作为参数,调用了sub_401080函数。 跟进sub_401080函数分析,发现首先有对句柄参数的判空。 继续向下分析,发现利用了多个资源相关的API函数,并且确定Lab...
2022-03-04 15:16:07
3192
原创 恶意代码分析实战第9章实验
Lab 9-21. 在二进制文件中,你看到的字符串是什么? 首先使用peid进行查看,发现无壳。IDA打开Lab09-02.exe之后查看字符串:可以看到有一些分配失败提示。2. 当你运行这个二进制文件时,会发生什么? 什么都不会发生。3. 怎样让恶意代码的攻击负载运行? 首先IDA中进行静态分析 可以看到获取当前可执行文件的路径函数,又调用了_strrchr函数查找在GetModuleFile...
2022-03-01 20:15:44
799
原创 恶意代码分析实战Lab09-01.exe
首先进行查壳,使用peid查询后发现无壳。之后静态分析应该进行查看字符串和导入表,但是这个程序有点大,也都会一步步分析到字符串和导入表,所以这两步跟动静分析一起结合。IDA打开实验文件,在主函数开始首先看到命令行参数检查:在402afd处看到对argc的比较,若参数个数为1则进入左侧执行,否则进入右侧。应注意的是在没有手动增加命令行参数时参数个数为1,就是如下效果: 所以若在不加参数情况时,会进入左侧执行:调用sub_401000函数:...
2022-03-01 16:20:38
848
原创 恶意代码分析实战_实验练习
Lab1-12. 这些文件是什么时候编译的? 在PE文件中,IMAGE_NT_HEADERS > IMAGE_FILE_HEADER > Time Date Stamp字段记录了文件编译时间。利用 010 Editor 打开exe文件和DLL文件,找到相应字段如下: 可知exe文件编译时间为2010.12.19 16:16:193. 这两个文件是否存在迹象说明它们是否被加壳或混淆? 利用PEiD检测两个文件的加壳情况:...
2022-02-14 14:28:38
3737
3
原创 识别汇编语言中的C代码结构
#include "stdio.h"int main() { int x = 1; int y = 2; if (x == y) { printf("=\n"); } else { printf("!=\n"); } return 0;} 如上简单C的if语句,编译运行后使用IDA Pro加载可执行文件。采用图形化可以直观的看出程序执行流程,如下: 可以看出在0x00411876处cmp及jnz指令(不相等,则跳转...
2022-02-14 14:07:24
3520
原创 记一次Windows 64位缓冲区溢出
以下为原文链接,但是我在复现时出了些问题;在实现方面也与原文有所不同。https://www.coalfire.com/the-coalfire-blog/september-2020/the-basics-of-exploit-development-5-x86-64-buffer环境Win10 18363 + x64dbg;原文中还使用了x64dbg的ERC插件,但是通过观察栈帧、计算偏移也可以实现。以下为溢出样本代码。#include <iostream> #
2021-10-14 10:44:50
670
原创 vs中编译开关:\RTCs
名称:堆栈检查描述:在Debug模式下将所有栈帧变量初始化为非零值(0xcc) 对所有多字节变量(如数组)进行溢出检查 —— 通过在数组的前端和末尾添加八字节cc,并在函数末尾检查这些额外的字节是否还是cc。测试: 首先开启\RTCs开关: 项目属性 —> C\C++ —> 代码生成 —> 基本运行时检查 —> 堆栈帧(\RTCs) 接下来写一个简单的函数调用,在x64debug中查看开启\RTCs的结果,代码如下:#includ...
2021-09-28 11:35:48
864
原创 X64 缓冲区溢出
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言本篇旨在通过简单的例子来学习32位栈利用,随手记。一、函数栈帧每一个函数独占自己的栈帧空间。当前正在运行的函数栈帧总是在栈顶。Win32 系统提供两个特殊的寄存器用于表示位于系统栈顶端的栈帧:ESP(栈指针寄存器)和EBP(基址指针寄存器)。 在函数栈帧中,一般包括以下几...
2021-09-07 15:49:32
515
原创 X86 栈溢出原理与实现
前言本篇旨在通过简单的例子来学习32位栈利用,随手散记。一、函数栈帧每一个函数独占自己的栈帧空间。当前正在运行的函数栈帧总是在栈顶。Win32 系统提供两个特殊的寄存器用于表示位于系统栈顶端的栈帧:ESP(栈指针寄存器)和EBP(基址指针寄存器)。 在函数栈帧中,一般包括以下几类重要信息: (1)局部变量:为函数局部变量开辟的内存空间。 (2)栈帧状态值:保存前栈帧底部,用于在本栈帧被弹出后恢复上一个栈帧。 (...
2021-08-28 04:44:48
1084
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人