概述
WinOs是基于开源的Gh0st源码改编而成的。它功能齐全,控制架构稳定可靠,能够轻松实现数千个受控端的稳定上线。此外,代码注释详尽清晰,便于修改以免疫杀软检测。
主要模块分为上线模块和功能模块。上线模块负责维持后门,接收命令并执行功能模块的功能。而功能模块(也称为插件)包括:播放器监听、注册表检索、屏幕差异比对、代理映射、服务管理、快速屏幕捕捉、后台屏幕监控、快速搜索、键盘记录、数据解密、前台窗口监视、视频浏览、文件管理、系统管理、娱乐屏幕展示、语音监听、远程交流、远程终端访问、指令集控制以及注入管理等功能。
通信协议
WinOs的各个插件使用统一的协议与C2服务器进行通信。通信的前14个字节用于描述有效载荷的元信息,其中前4字节表示有效载荷的大小,后10字节为自定义的异或解密密钥。每个模块对于有效载荷部分有自己的定义,通常第一个字节用于标识要执行的命令,后面的字节用于传递命令参数。
//外层协议
struct Packet{
struct Header{
DWORD DataSize; //载荷大小
CHAR PassWord[10]; //加密算法中使用的password
}
CHAR Param[0]; //实际通信载荷,各插件有自己定义的结构
}
// 加密算法
for (int i = 0, j = 0; i < (int)nSize; i++){
lpBuffer[i] ^= (password[j++]) % 456 + 54;
if (i % (10) == 0)
j = 0;
}
上线模块
上线模块主要负责解析硬编码的配置信息,加载下阶段的登入模块,登入模块模块负责执行核心的后门工能。
支持的配置信息
样本会尝试从注册表和C2地址相关的配置信息。
选项名 | 注释 | 选项名 | 注释 | 选项名 | 注释 |
---|---|---|---|---|---|
p1 | 地址1 | o1 | 端口1 | t1 | 启用TCP1 |
p2 | 地址2 | o2 | 端口2 | t2 | 启用TCP2 |
p3 | 地址3 | o3 | 端口3 | t3 | 启用TCP3 |
其他配置信息
选项名 | 注释 | 选项名 | 注释 |
---|---|---|---|
dd | 休眠时间 | cl | 重连时间 |
fz | 分组 | bb | 版本 |
bz | 备注 | jp | 键盘离线记录 |
sx | 反沙箱 | bh | 进程保护 |
ll | 反查流量 | dl | 是否运行DLL入口 |
sh | 守护进程 | kl | 傀儡进程 |
登入模块
登入模块提供核心的插件管理和基本的后门功能,执行流程如下所述。
- 新建宿主进程,注入并执行守护线程代码,被注入进程为svchost.exe(SetThreadContext)。
- 设置当前进程为关键进程(ProcessBreakOnTermination)。
- 设置崩溃重启(SetUnhandledExceptionFilter)。
- 新建线程记录剪切板和按键信息。
- 通过窗口名检查是否流量监控软件。
- 连接C2服务器,新建心跳线程,工作线程,关联插件管理模块。
- 发送登入消息,携带基本的上线环境信息。
// 通过窗口名检查是否流量监控软件
流量 ApateDNS Malwarebytes
TCPEye TaskExplorer CurrPorts
Port Metascan Wireshark
任务管理器 资源监视器 网络分析
Fiddler 火绒 Capsa
Sniff Capsa Process 提示符
// 登入消息
协议 内外IP 公网IP
位置 活跃状态 计算机名
系统名 系统 CPU
硬盘+内存 显卡 当前窗口
分组 版本 备注
运行时间 程序和系统是否为64位 进程权限用户
进程路径 进程ID 摄像头
聊天 杀毒软件 系统语言
显示器信息 系统目录 HWID
后门标志
//检测的安全软件名
360Safe.exe 360Safe.exe 360Tray.exe
ZhuDongFangYu.exe 360sd.exe kxetray.exe
KSafeTray.exe kscan.exe kwsprotect64.exe
kxescore.exe QQPCRTP.exe QMDL.exe
QMPersonalCenter.exe QQPCPatch.exe 360tray.exe
QQPCRealTimeSpeedup.exe QQPCTray.exe
QQRepair.exe HipsTray.exe HipsMain.exe
HipsDaemon.exe BaiduSd.exe baiduSafeTray.exe
KvMonXP.exe RavMonD.exe QUHLPSVC.EXE
mssecess.exe cfp.exe SPIDer.exe
acs.exe V3Svc.exe AYAgent.aye avgwdsvc.exe
f-secure.exe avp.exe avpui.exe Mcshield.exe
egui.exe knsdtray.exe TMBMSRV.exe
avcenter.exe ashDisp.exe rtvscan.exe
remupd.exe vsserv.exe PSafeSysTray.exe
ad-watch.exe K7TSecurity.exe UnThreat.exe
支持的命令列表
支持的命令
该版本的WinOs支持22种命令,下列是命令序号和相关的功能描述。
命令 | 描述 |
---|---|
0 | 加载插件 |
1 | 加载插件,并写入注册表 |
2 | 结束连接 |
3 | 发送前台窗口 |
4 | 获取屏幕 |
5 | 上传文件 |
6 | 下载并执行文件 |
7 | 修改分组或注释信息 |
8 | 检查是否存在特定进程 |
10 | 获取屏幕 |
11 | 清除系统日志Application,Security,System |
12 | 重启进程 |
13 | 退出进程 |
14 | 系统注销 |
15 | 系统重启 |
16 | 系统关机 |
17 | 修改默认插件加载方式 |
18 | 修改配置信息 |
19 | 新建C2线程 |
100 | 设置IpDatespecial参数 |
101 | 删除IpDatespecial参数 |
插件管理
插件管理功能为WinOs提供了强大的扩展能力。C2控制端可以通过向登陆模块发起加载、更新、卸载插件等管理命令来管理插件。WinOs会将插件连同其配置信息保存到注册表路径 \HKEY_CURRENT_USER\Console\1(32位时路径为 \HKEY_CURRENT_USER\Console\0)。键名为插件的MD5哈希值,键值为配置信息和插件本身。同时,程序中也有一个全局向量保存着已加载的插件信息。
插件一般是通过固定的模板开发的,模板中包含了关键的底层通信协议代码,通用的入口代码等。
插件管理功能支持下列3种加载方式,插件中的配置信息是通过一段预定义的字符串来定位修改的。
- 内存中反射加载DLL
- 远线程注入(傀儡进程)
- 直接运行Shellcode
IOC
登入模块:6f79ee17dbb75d1ed7e0535a7b498c2249d538c0836d6ecee16fec491b200ce9
上线模块:93e75eada1b8f155bdb41c1af0f7d7ea390b280c6f49c8834c11af2e8f6c3a1c