0%

shellcode相关笔记

一、前言

参考 初探shellcode免杀

1. 简介

shellcode是用于利用软件漏洞而执行的代码,一般是机器码,由于作用一般是让攻击者获得shell而得名。由于是机器码,在寄存器eip溢出后,塞入机器码来执行。

2. 基础知识

2.1. eip寄存器

存放cpu下次要执行的指令地址,只需要修改eip寄存器的值,即可执行shellcode。

3. 免杀

3.1. 杀软原理

目前的杀软手段一般由两种

  1. 基于特征
  2. 基于行为

云查杀本质基于特征查杀;沙箱则需要做反沙箱

1) 基于特征

杀软一般会定义一个阈值,当文件内部的特征数量达到一定程度就会判断为恶意程序。一般判断文件的md5、sha1hash、匹配文件中的字符串、程序入口点、IAT导入表等。查杀依赖厂商的病毒库更新

2) 基于行为

对多个系统api进行hook,如:注册表操作、添加启动项、添加服务、添加用户、注入、创建进程、创建线程、加载DLL等。除了hookapi还会对api调用链进行监控,如申请内存,将shellcode加载进内存,再执行内存区域的shellcode

3.2. 如何进行免杀

1) 静态免杀

加壳改壳、添加/替换资源文件、修改特征码、加密shellcode等。

加密的方式有很多,直接使用aes、des、xor、base64、hex等方法进行加密或字写加密,将shellcode的特征去除即可

2) 行为免杀

一般使用api替换、直接系统调用、替换操作方式采用白加黑的手段

二、windows

1. 示例

1