CS後門原始碼特徵分析與IDS入侵檢測

Sol_9發表於2024-06-13

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後門,將生成的心跳包用工具解密

可以看到同樣也將心跳包的內容解密出來了

由此可見一些簡單的加殼對心跳包的解讀是沒有影響的

相關文章