恶意代码分析概述
基本概念
恶意代码,也称之为恶意软件/恶意程序,在大多数计 算机入侵事件中扮演重要的角色。任何以某种方式来 对用户、计算机、或网络造成破坏的软件,都可以称 之为恶意代码,包括计算机病毒、木马、蠕虫、勒索 软件等。
恶意代码分析,重在分析,通过技术手段获取该程序 的内部结构及其功能实现;对于杀软,提取其特征码 进行查杀;对于取证,可能获得溯源的必要信息,如 IP,作者信息等。
恶意代码分析与hw
hw中发现攻击和消除威胁会加分
处置主机木马程序。需提交分析报告,包括木马样本及分析报告等
发现与分析
发现
持久化/权限维持
分析
自动分析/人工分析
分类
蠕虫或病毒:可以自我复制和感染其他计算机的恶意程序。
后门:恶意代码将自身安装至计算机来允许攻击者访问。后门程序通常让攻击者只需很少甚至无须 认证,便可连接到远程计算机执行命令。
僵尸网络:与后门类似,允许攻击者访问系统,但所有被同一个僵尸网络感染的计算机将会从一台 命令控制服务器接受相同指令。
下载器:用来下载其他恶意程序的恶意程序。
间谍软件:用来收集受害机器信息并发送给攻击者的恶意代码。比如嗅探器、密码哈希采集器、键 盘击键记录器等,通常用来获取E-mail、网银等账号信息。
启动器:用来启动其他恶意程序的恶意程序
勒索软件:加密或窃取用户计算机信息,并勒索用户交出赎金方能解密的恶意程序。
分析目的
恶意代码做了什么
怎么样检测出它
如何衡量和消除所带来的危害
hw-获取攻击者信息,编写分析报告
静态和动态分析
静态和动态分析
静态分析
静态分析技术包括基础技术和高级技术,基础技术包括检查可执行文件但不查看具体指令的一 些技术,而高级技术主要是对恶意代码内部机制的逆向工程;基础技术可以确认一个文件是否 是恶意的,提供有关其功能信息,能够生成简单的网络特征码;高级技术通过将可执行文件装 载到反汇编器中,查看程序指令来发现恶意代码到底做了什么。
动态分析
动态分析技术包括基础技术和高级技术,基础技术涉及运行恶意代码并观察系统上的行为,以 消除感染并产生有效的检测特征码;高级技术则使用调试器来检查一个恶意程序运行时的内部 状态。
注:在进行动态分析恶意程序时,必须建立一个安全环境
常用自动分析网站
腾讯哈勃分析系统
https://habo.qq.com/
微步在线
https://x.threatbook.cn/
virustotal
https://www.virustotal.com/gui/home/upload
virscan
https://r.virscan.org/
静态分析
PEid
用来检测程序是否加壳,加的是什么壳,检测程序所使用的加密算法等
查壳

查加密算法

文件信息

Resurce Hacker
用来查看程序的资源数据,一般恶意软件在资源区隐藏其他可执行代码数据

WinMD5
用来计算恶意文件的MD5值,通过MD5值的比较可以知晓程序是否被人篡改

IDA Pro
IDA是作为静态分析的最重要的工具,她是功能强大的反汇编和反编译工具

动态分析
www.virustotal.com
一个用来分析恶意程序的网站,通过上传一个文件,生成该程序的分析报告,下图所示为wcry.exe的分析报告 头部信息

Process Monitor
进程监视器(Process Monitor) 是Windows系统下的高级监视工具,用来监控注册表、文件系统、网络、进 程和线程行为

Process Explorer
进程浏览器(Process Explorer)是一款强大的任务管理器,是进行动态分析时的必备工具,它能对当前系 统上运行的进程提供有用的观察能力

Regshot
Regshot是一款开源的注册表工具,通过比较两个注册表快照发现差异,从而得知程序运行后对注册表实施了 哪些行为

反向shell
反向shell介绍
当用户连接到服务器时,用户将其套接字与服务器的端口绑定。这称为绑定连接。只有当防火墙允许传 入连接时,绑定连接才可用,在传入连接受到限制的情况下,则无法建立正常连接。防火墙通常限制传 入的连接,但不限制传出的连接。当服务器向用户建立一个传出连接时,这称为反向连接。

linux下的反向shell实现
调用socket创建套接字
向sockaddr_in结构中添加目标地址信息
调用connect链接socket
调用dup2重定向stdin、stdout、stderr到打开的套接字
调用execve启动“/bin/sh”程序
关键点:socket编程实现
metasploit生成的反向shell实现(32位linux程序)
通过socketcall系统调用,设置参数执行socket, 完成创建套接字
设置sockaddr_in数据信息,包括IP、端口等
循环调用dup2,实现重定向stdin、stdout、 stderr到打开的套接字
通过socketcall系统调用,设置参数执行connect ,完成链接
实现execve系统调用完成启动“/bin/sh”
关键点:linux系统调用

metasploit生成的反向shell实现(64位linux程序)
通过socket系统调用,完成创建套接字
设置sockaddr_in数据信息,包括IP、端口等
通过connect系统调用,完成链接
循环调用dup2,实现重定向stdin、stdout、stderr 到打开的套接字
实现execve系统调用完成启动”/bin/sh”
关键点:linux系统调用

linux下系统调用(32位)
x86系统调用 read(0, esp, 0x80)
eax:保存系统调用号 mov edx, 0x80 #参数3传递给edx
ebx:第一个参数 mov ecx, esp #参数2传递给ecx
ecx:第二个参数 mov ebx, 0 #参数1传递给ebx
edx:第三个参数 mov eax, 3 #系统调用号传递给eax
esi:第四个参数 int 0x80 #int 0x80进行系统调用
edi:第五个参数
*通过汇编指令int 0x80进行系统调用
*系统调用号可在/usr/include/asm/unistd_32.h
文件查看
linux下系统调用(64位)
x64系统调用 read(0, rsp, 0x80)
rax:保存系统调用号 mov rdx, 0x80 #rdx保存参数3
rdi:第一个参数 mov rsi, rsp #rsi保存参数2
rsi:第二个参数 mov rdi, 0 #rdi保存参数1
rdx:第三个参数 mov rax, 0 #rax保存系统调用号
rcx:第四个参数 syscall #使用syscall进行系统调用
r8:第五个参数
r9:第六个参数
*通过汇编指令syscall进行系统调用
*系统调用号可在/usr/include/asm/unistd_64.h
文件查看
Windows下的反向shell实现
用WSAStartup调用初始化套接字库
创建套接字
向sockaddr_in结构中添加目标地址信息
将套接字连接到远程端口
使用重定向流启动cmd
关键点:WinSocket编程实现
metasploit生成的反向shell实现(32位Windows程序)
自解密shellcode代码
动态获取各所需API
加载ws2_32模块
调用WSAStartup初始化Winsocket库
调用WSASocketA创建套接字
调用connect建立链接,最多链接5次
调用CreateProcessA启动重定向流的CMD
调用WaitForSingleObject等待命令结束
调用GetVersion获取系统版本
调用ExitProcess结束进程
关键点:Windows系统线程进程相关数据结构、PE文件格式

metasploit生成的反向shell实现(64位Windows程序)
动态获取各所需API
加载ws2_32模块
调用WSAStartup初始化Winsocket库
调用WSASocketA创建套接字
调用connect建立链接
调用CreateProcessA启动重定向流的CMD
调用WaitForSingleObject等待命令结束
调用GetVersion获取系统版本
调用ExitProcess结束进程
关键点:Windows系统线程进程相关数据结构、PE文件格式

持久化
持久化与检测

免杀探索
红队常见的免杀思路

免杀测试-编码免杀
使用metasploit生成Windows32位shellcode
添加代码使shellcode能正常执行(注意编译 选项设置为关闭DEP)

原始文件测试

对shellcode进行单字节0xcc异或编码测试

对shellcode进行多字节异或编码测试

使用VirtualAlloc申请动态内存加载执行

免杀测试2-加壳免杀
添加UPX壳

免杀测试3-使用shellcodeLoader
直接加载

异常处理免杀
免杀与被杀
公开的免杀方法等于不免杀
免杀重在对抗思路
了解常见免杀思路,对分析和确定样本的恶意性有指导性作用
网络安全学习资源分享:
给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,需要点击下方链接即可前往获取
读者福利 | 优快云大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)
👉1.成长路线图&学习规划👈
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。


👉2.网安入门到进阶视频教程👈
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。(全套教程文末领取哈)


👉3.SRC&黑客文档👈
大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录
SRC技术文籍:

黑客资料由于是敏感资源,这里不能直接展示哦!(全套教程文末领取哈)
👉4.护网行动资料👈
其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!

👉5.黑客必读书单👈

👉6.网络安全岗面试题合集👈
当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。

所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~
读者福利 | 优快云大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)

被折叠的 条评论
为什么被折叠?



