hackbrian远控
2021年冬天,我在一个逆向工程论坛上翻到一份样本分析帖,标题只有一行字:“hackbrian,MFC写的,带键盘记录和屏幕回传。”附件是个加了UPX壳的exe,VT上只有7个引擎报毒。当时我没当回事,以为又是哪个脚本小子拿Gh0st改的换皮货。 解压密码是infected,老规矩。跑起来之后才发现,这东西比我想的干净得多——没有乱七八糟的启动项,没有注册表写入,C2走的是WebSocket,端口443,心跳包伪装成正常的HTTPS流量。抓包看了一眼,连SNI都填的microsoft.com。有点意思。 hackbrian的核心模块分三块: 键盘记录这块值得细说。它没有用 屏幕回传用的是DXGI桌面复制API,不是GDI的 C2面板是用Electron写的,打包后120MB,臃肿得离谱。但功能确实全:多屏切换、文件管理、远程Shell、甚至内置了一个基于WebRTC的语音监听模块。文件管理走的是分块传输,支持断点续传。我试着传了个2GB的镜像文件,速度稳定在8MB/s,没断过。 比较意外的是它的反沙箱逻辑。检测到 这玩意在野外的传播量不大。我跟踪了三个月,C2域名换了四次,每次都是不同的CDN节点。域名注册信息全是隐私保护,但有个细节:所有域名的NS记录都指向同一个Cloudflare账户。通过被动DNS查询能关联出至少17个样本,最早的一个可以追溯到2020年8月。 作者应该是个单干户。代码风格前后一致,变量命名用拼音缩写,注释里偶尔冒出几句中文。有个函数叫 杀软对它的查杀率一直不高。我拿最新样本测了国内三家的主防,两家没反应,一家弹了窗但默认动作是“允许”。原因也简单:没有明显恶意行为链,所有敏感操作都拆散了放在不同模块里,单步看都合法。主防要的是行为序列,它偏偏不给你序列。 写这些不是教人做远控。只是觉得,一个单人维护的项目能把规避做得这么细,比很多商业RAT都讲究。那些动辄几十万行代码的“大工程”,反而在细节上糙得不行。hackbrian的代码量撑死两万行,但每一行都卡在关键位置上。 最后提一句:如果你在流量里看到SNI是microsoft.com但证书是自签的WebSocket连接,别犹豫,直接封。hackbrian远控
Client.dll负责通信,Capture.dll管屏幕和摄像头,KeyHook.dll做键盘记录。三个模块通过一个共享内存区交换数据,主进程只做加载器。这种设计的好处是杀软扫描单个模块时很难判定恶意行为——每个DLL单独看都像正常组件。SetWindowsHookEx这种老掉牙的API,而是直接读RawInput缓冲区。这意味着什么?传统Hook方式在Win10 1903之后对UAC提权窗口基本失效,但RawInput在驱动层拿数据,连管理员密码框里的按键都能截到。我测试时在虚拟机里输了一串密码,不到两秒就出现在C2的日志面板上。BitBlt。帧率能拉到30fps,带宽占用却只有BitBlt的三分之一。作者显然研究过远程桌面协议,差分编码做得不错——只传变化的矩形区域,静止画面下几乎不产生流量。我开着Wireshark看了十分钟,流量曲线平得像条死线。SbieDll.dll或者dbghelp.dll加载就自动退出,还会检查父进程是不是explorer.exe。如果是在虚拟机里跑,它会故意触发一个空指针异常让进程崩溃,但崩溃前会把机器码写进临时文件。下次启动时读这个文件,如果在同一台机器上就继续运行,否则直接删除自身。HuoQuDiZhi,还有个宏定义#define SHI_FOU_KE_YI 1。这种习惯骗不了人。
- 最近发表
- 随机阅读
- 搜索
-
- 友情链接
-