恶意代码分析 | Lab1

news2024/9/24 9:17:38

前言

穿插virus分析的学习,毕竟逆向技术最后要用在攻防中。

Lab1就没必要动态分析了,静态学学写法。

Lab01-01.exe

前面是内存映射技术,对内存进行修改操作。

Kernel32.dllLab01-01.dll的内存都Map出来,便于后续更改:

在这里插入图片描述

先来看看Lab01-01.dll

实现了一个有sleep,exec命令的远控木马:

在这里插入图片描述

回到exe,先是将自身进程exe加载的kernel32.dll替换为Lab01-01.dll的内容,

然后将导入表这些的Kernel32.dll名字替换为相近的Kerne132.dll(L和1的区别)

在这里插入图片描述

最后对C盘下的exe进行遍历,将每个exe的导入表的Kernel32.dll都换成恶意dll,并同样的修改导入表之类的。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Lab01-02.exe

有个UPX壳:在这里插入图片描述

脱壳后IDA看。

比较简单,这里创建了20个线程:

在这里插入图片描述

StartAddress

在这里插入图片描述

函数名已经很直白了,连接了“恶意网站“。

实际操作可以改为UrlDownloadFile来下载木马。

Lab01-03.exe (❌)

FSG壳。

在这里插入图片描述

尝试网上找个脱壳工具,但好像都不大成功,。等后面来手脱FSG壳再来分析。

Lab01-04.exe

信息收集很关键,CFF看,注意到resource处有端倪:

在这里插入图片描述

藏了个PE文件。

导出这个BIN。先IDA看主函数,

在这里插入图片描述

winup.exe

在这里插入图片描述

先看循环里面的sub_401000

在这里插入图片描述

枚举进程,找winlogon.exe

找到后就保存这个PID,

后面sub_401174进行了操作:

在这里插入图片描述

sfc_os.dll

在这里插入图片描述

那个sub4010FC(xxx)就是昨天刚好学DLL卸载接触过的Token提权,

在这里插入图片描述

这是为了CreateRemoteThread的权限,

紧接着:

lpStartAddress = (LPTHREAD_START_ROUTINE)GetProcAddress(v2, (LPCSTR)2);

获取sfc_os.dll中的一个函数,然后CreateRemoteThread注入到winlogon.exe中。

然后就是

MoveFileA(ExistingFileName, NewFileName);

\system32\wupdmgr.exe移动到\winup.exe

最后调用sub_4011FC

在这里插入图片描述

执行了释放的资源文件。

看看资源文件:

在这里插入图片描述

执行了winup.exe,然后将

恶意的update.exe下载覆盖了\system32\wupdmgrd.exe

为什么要这么做?

我的理解:(可能有误)

核心目的是将\system32\wupdmgrd.exe覆盖为恶意update.exe,

但为了不影响正常功能(防止察觉),所以将\system32\wupdmgrd.exe先移动到winup.exe

因为前面提到过winup.exe也能执行更新这些,所以将原本的\system32\wupdmgrd.exe作了个备份。

原有的update功能仍然在,只是多了恶意的update.exe。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2105276.html

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

相关文章

有没有性价比高一些的开放式耳机推荐?盘点四款高性价比蓝牙耳机

在正式介绍几款高性价比产品,先来和各位聊聊什么是开放式耳机。开放式耳机是目前比较流行的耳机种类,其特点是通过采用海绵状的微孔发泡塑料制作透声耳垫,不堵塞耳道,使得声音可以泄露,同时佩戴者也能听到外界声音 。 …

民宿酒店预订系统V1.0.8

多门店民宿酒店预订管理系统,快速部署属于自己民宿酒店的预订小程序,包含预订、退房、WIFI连接、吐槽、周边信息等功能。提供全部无加密源代码,支持私有化部署。 V1.0.8修复房间预订状态无法筛选的问题 修复房间预订状态无法筛选的问题 修复…

为自闭症儿童提供全方位支持的自闭症全托管机构

在自闭症儿童的世界里,每一个细微的进步都凝聚着家庭与社会的无尽努力与期盼。星启帆自闭症儿童康复机构,作为一所致力于为自闭症儿童提供全方位支持的全托管机构,正以其专业的服务、温馨的环境和全面的康复计划,成为众多家庭信赖…

UE4_后期处理_后期处理材质及后期处理体积二

效果: 步骤: 1、创建后期处理材质,并设置参数。 2、回到主界面,找到需要发光的物体的细节面板。 渲染自定义深度通道,默认自定义深度模具值为10(需要修改此值,此值影响物体的亮度)。 3、添加…

pytest压力测试:不断发送数据,直到发现数据丢失

示例场景 假设有一个 send_data 函数接受数据并返回成功或失败的状态。 创建一个测试用例,通过逐步增加数据量来测试这个函数,直到返回失败为止。 步骤 定义压力测试函数 定义一个函数。不断发送数据,直到发现数据丢失。 创建 pytest 测试…

PHP一站式班级解决方案班级管家系统小程序源码

一站式班级解决方案 —— 班级管家系统 🎓【开篇:班级管理的烦恼,你中招了吗?】🎓 作为班主任或班级管理者,你是否经常为繁琐的班级事务而头疼?从日常通知的发布到作业的收集,从班…

ChatGPT写文章时,如何去除生硬的Ai味?

仅做分享,侵删 在使用AI进行写作时,常常会发现生成的文章带有明显的“机器味”,一眼就能看出是由AI生成的。这是许多希望借助AI进行自媒体创作的小伙伴们面临的一个主要问题。AI生成的文章往往过于书面化,缺乏人情味,导…

葡萄检测-目标检测数据集(包括VOC格式、YOLO格式)

葡萄检测-目标检测数据集(包括VOC格式、YOLO格式) 数据集: 链接:https://pan.baidu.com/s/1YMwAaSJc8H5SI0f8RVSidw?pwdiygs 提取码:iygs 数据集信息介绍: 共有1646 张图像和一一对应的标注文件 标注文…

matlab实现kaiser窗+时域采样序列(不管原信号拉伸成什么样子)是一样的,变到频谱后再采样就是一样的频域序列。

下图窗2的频谱在周期化的时候应该是2(w-k*pi/T)我直接对2w减得写错了 可见这两个kaiser窗频谱不一样,采样间隔为2T的窗,频谱压缩2倍,且以原采样频率的一半周期化。 但是这两个不同的kaiser窗在频域采样点的值使完全一…

MySQL复习4

触发器 触发器(trigger)是 MySQL 提供给程序员和数据分析员来保证数据完整性的一种方法,他是与表时间相关的特殊存储过程,他的执行不是由程序调用,也不是手动启动,而是由事件来触发,比如当时对…

2024-09-04作业

作业 代码 #include <iostream> using namespace std; class Animal { private: string narrator; public: Animal(){} Animal(string narrator):narrator(narrator) {} virtual void perform() { cout << "讲解员解说中&…

神策SDK不支持Windows客户端全埋点,怎么实现用户统计分析?

本文将介绍&#xff0c;ClkLog针对神策不支持全埋点的客户端实现用户访问基础统计分析 1。 客户遇到的问题 ClkLog的用户访问基础统计分析功能是基于神策SDK的全埋点来实现的。 我们遇到有些客户是使用C、C#等语言来开发的客户端&#xff0c;然而神策此类SDK&#xff08;如C, C…

activiti PROC_DEF_ID_超64位解决方案

默认得id是这样的 如果前面的code长了&#xff0c;就会出问题&#xff0c;而且手动修改activiti相关表里面的长度也不行&#xff0c;所有改采用雪花算法&#xff0c;把后面的uuid了&#xff0c;修改后 这也64的长度也够了&#xff0c;注意只对新发布的流程有效 <dependency…

代码随想录算法训练营第三十六天|1049. 最后一块石头的重量 II 494. 目标和 474.一和零

1049. 最后一块石头的重量 II 题目&#xff1a; 有一堆石头&#xff0c;用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合&#xff0c;从中选出任意两块石头&#xff0c;然后将它们一起粉碎。假设石头的重量分别为 x 和 y&#xff0c;且 x < y。那…

[Linux]:环境开发工具

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;Linux学习 贝蒂的主页&#xff1a;Betty’s blog 1. 软件包管理器——yum 1.1 yum的概念 在Linux系统中&#xff0c;如果想安…

【C++深入学习】日期类函数从无到有实现

零、本文思维导图 一、前期准备 1.1 检查构造的日期是否合法 //Date.cpp bool Date::CheckDate() {if (_month < 1 || _month > 12|| _day < 1 || _day > GetMonthDay(_year, _month)){return false;}else{return true;} }Date::Date(int year, int month, int d…

3.6 排序

在第一趟排序之后&#xff0c;一定能把数据表中最大或最小元素放在其最终位置上的排序算法是&#xff08; &#xff09;。 A. 冒泡排序 B. 直接插入排序 C. 快速排序 D. 归并排序 正确答案是 A。 解析 第i趟冒泡排序是从第1个元素到第n-i1个元素依次比较相邻两个元素的关键字&a…

0、Typescript学习

1、变量声明 let a:number100 2、常量 const b:number200 3、判断变量的类型 //number 表示数值类型&#xff0c;包括整数和浮点数 let a:number100 console.log(typeof a) 4、定义数组 let arr1:number[][1,2,3]console.log(arr1[0]) 5、定义函数 &#xff08;1&…

PVN3D(一)代码框架

在windows上配置pvn3d的环境一直配不成功&#xff0c;主要卡在了与C联合编译上&#xff0c;不知道如何处理了。索性先看看代码&#xff0c;竟然发现与论文中的代码对应上了。希望这一段时间把环境配置好。 1.论文中的网络结构 1.RGB图像特征&#xff0c;通过CNN提取特征。深度…

【前端面试】leetcode指针解法javascript

最大盛水 https://leetcode.cn/problems/container-with-most-water/ var maxArea = function(height) {// 左右指针靠拢let left = 0;let right = height.length-1;let maxArea = 0; while(left<right){// 计算出 当前的容积 与最大容积比较,取出最大的const currentAre…