CS后门源码特征分析与IDS入侵检测

cs,ids · 浏览次数 : 4

小编点评

本文主要讨论了如何通过分析网络流量和特征字符解密来检测和防范计算机病毒。首先,文章分析了两种不同类型的恶意软件:一个64位木马和一个32位木马。通过对这两个恶意软件的分析,我们可以了解到它们的行为特征和通信方式。 接下来,文章介绍了如何使用Java的checksum8算法来验证数据的完整性。通过这个算法,我们可以判断一个字符串是否被篡改。此外,文章还提到了如何使用Suricata规则来检测网络流量中的恶意行为。 最后,文章展示了一种简单的方法来对恶意软件进行免杀处理。通过使用upx壳,我们可以使恶意软件在感染计算机后不被察觉。然而,这种方法并不能完全保护计算机免受攻击,因为一些高级的加壳技术仍然可以破解这些保护措施。 总之,本文通过分析恶意软件的行为特征、通信方式和加壳技术,提出了一种有效的检测和防范计算机病毒的方法。

正文

CS后门源码特征分析与IDS入侵检测考核作业

上线x64

getshell

抓心跳包,对特征字符解密Uqd3

用java的checksum8算法得到93,说明是x64的木马

public class EchoTest {
public static long checksum8(String text) {
if (text.length() < 4) {
return 0L;
}
text = text.replace("/", "");
long sum = 0L;
for (int x = 0; x < text.length(); x++) {
sum += text.charAt(x);
}
return sum % 256L;
}
public static void main(String[] args) throws Exception {
System.out.println(checksum8("Uqd3"));
}
}

再上线一个32位的木马

抓心跳包

GET /7sy9 HTTP/1.1
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)
Host: 192.168.225.128:2222
Connection: Keep-Alive
Cache-Control: no-cache

再算一下发现是92,是一个32位的木马

心跳包解密:

看报错缺了依赖,pip install xxxxx下好

win+r cmd使用命令netstat -ano,查看被控端的连接

看到有2222端口,再去看wireshark的流量,过滤这俩的流量包,找到uid,就能找到伪装的exe木马

# suricata规则
# http-beacon-staging,向c2服务器发起get请求,下载大小约210kb的stager,请求地址符合
checksum8规则
# 调用lua检查uri是否符合checksum8规则:计算uri的ascii之和并与256做取余计算,余数为92则符合
规则
alert http any any -> any any (gid:3333; sid:30001; rev:1; \
	msg:"http-beacon-checksum8-path-parse"; \
	classtype: http-beacon; \
	flow: established, to_server; \
	urilen:4<>6; \
	luajit:checksum8_check.lua; \
)
# checksum8_check.lua
function init (args)
	local needs = {}
	needs["http.uri"] = tostring(true)
	return needs
end
function match(args)
	local uri_raw = tostring(args["http.uri"])
	local uri = string.sub(uri_raw, 2, -1) -- 去除uri中的"/"
	local sum = 0
for i=1,#uri do
	local x = string.sub(uri,i,i)
	sum = sum + string.byte(x)
end
	if (sum % 256) == 92 then
		return 1 -- 符合checksum8规则,匹配成功
	else
		return 0 -- 不符合checksum8规则,匹配失败
	end
end

创建一个http的规则文件,命名位cshttp将规则写入

然后放入suricata的规则文件夹之中运行之后再查看日志

之后再生成一个https型的后门,先创建一个新的监听器

再生成一个可执行的恶意文件

之后在物理机中运行用wirehshark进行流量监测可以发现JA3码具有明显的特征

编写规则文件

# https-beacon-ja3指纹,client-hello
alert tls any any -> any any (gid:6666; sid:30005; rev:1; \
	msg:"https-beacon-ja3-hash"; \
	classtype: https-beacon; \
	ja3.hash;
pcre:"/652358a663590cfc624787f06b82d9ae|4d93395b1c1b9ad28122fb4d09f28c5e|72a589d
a586844d7f0818ce684948eea|a0e9f5d64349fb13191bc781f81f42e1/"; \
)
# https-beacon-ja3s指纹,server-hello
alert tls any any -> any any (gid:6666; sid:30006; rev:1; \
	msg:"https-beacon-ja3s-hash"; \
	classtype: https-beacon; \
	ja3s.hash;
pcre:"/fd4bc6cea4877646ccd62f0792ec0b62|15af977ce25de452b96affa2addb1036|b742b40
7517bac9536a77a7b0fee28e9/"; \
)

查看日志

加壳免杀处理流量分析

因为是在无安全软件的干扰下进行的我们直接用一个最简单的upx壳来当作免杀处理

加壳之后先运行64位的后门软件,然后运行抓包,再将心跳包后缀改为vir文件解密

看上去upx壳并不能对最后解析的结果产生作用

再运行32位的http后门,将生成的心跳包用工具解密

可以看到同样也将心跳包的内容解密出来了

由此可见一些简单的加壳对心跳包的解读是没有影响的

与CS后门源码特征分析与IDS入侵检测相似的内容:

CS后门源码特征分析与IDS入侵检测

CS后门源码特征分析与IDS入侵检测考核作业 上线x64 getshell 抓心跳包,对特征字符解密Uqd3 用java的checksum8算法得到93,说明是x64的木马 public class EchoTest { public static long checksum8(String tex

微服务实践k8s&dapr开发部署实验(2)状态管理

新建webapi项目 建项目时取消https支持,勾选docker支持, Program.cs中注释下面语句,这样部署后才能访问Swagger // Configure the HTTP request pipeline. //if (app.Environment.IsDevelopment())

MASAMinimalAPI:创建MinimalAPI项目

项目准备 1.创建项目,选择webapi。取消勾选使用控制器。创建minimal Api项目 2.创建成功后MinimalAPI的接口直接写在program.cs中 3.引入nuget包:Masa.Contrib.Service.MinimalAPIs MinimalAPI改造 1. 在progra

[转帖]openGauss 安全认证

https://cdn.modb.pro/db/179816 openGauss数据库是一款标准的基于客户端/服务端(C/S)模式工作的数据库系统,每一个完整的会话连接都由后台服务进程和客户端进程组成。一个完整的客户端认证过程如图所示。 openGauss认证详细流程 (1) 客户端依据用户需求配置

minos 2.1 中断虚拟化——ARMv8 异常处理

首发公号:Rand_cs 越往后,交叉的越多,大多都绕不开 ARMv8 的异常处理,所以必须得先了解了解 ARMv8 的异常处理流程 先说一下术语,从手册中的用词来看,在 x86 平台,一般将异常和中断统称为中断,在 ARM 平台,一般将中断和异常统称为异常 异常的流程,可以分为 3 个阶段,“设备

什么是浅拷贝和深拷贝,如何用 js 代码实现?

〇、简介和对比 简介 浅拷贝:只复制原始对象的第一层属性值。 如果属性值是值类型,将直接复制值,本值和副本变更互不影响; 如果是引用数据类型,则复制内存地址,因此原始对象和新对象的属性指向相同的内存地址,改变任一值,另一变量值也会同步变更。 深拷贝:递归地复制原始对象的所有层级。 每一个属性值都会在

构建基于深度学习神经网络协同过滤模型(NCF)的视频推荐系统(Python3.10/Tensorflow2.11)

毋庸讳言,和传统架构(BS开发/CS开发)相比,人工智能技术确实有一定的基础门槛,它注定不是大众化,普适化的东西。但也不能否认,人工智能技术也具备像传统架构一样“套路化”的流程,也就是说,我们大可不必自己手动构建基于神经网络的机器学习系统,直接使用深度学习框架反而更加简单,深度学习可以帮助我们自动地从原始数据中提取特征,不需要手动选择和提取特征。

vs 解决方案定位当前打开的cs文件

可以通过工具-选项-项目和解决方案-勾选【在解决方案资源管理器中跟踪活动项】

C#11之原始字符串

最近.NET7.0和C#11相继发布,笔者也是第一时间就用上了C#11,其中C#11的有一个更新能解决困扰我多年的问题,也就是文章的标题原始字符串。 在使用C#11的原始字符串时,发现的一些有意思的东西,超出了我原本对它的期待,话不多说,我们一起来看看。 多年的困扰 我不知道大家有没有写过这样的代码

微服务实践k8s&dapr开发部署实验(3)订阅发布

自托管模式运行dapr 新建订阅webapi项目,取名为backend 项目增加docker支持,取消https支持 修改Program.cs var builder = WebApplication.CreateBuilder(args); builder.Services.AddControll