# 绝对想不到,Chrome浏览器变成了最稳定后门
### 技术背景 ### ### PEEP是一套面向Chromium内核浏览器的后渗透工具包,其伪装成书签类扩展Smart Bookmarks。当黑客或红队拿下目标系统权限之后,部署上这套组件,可在目标机器上建立持久稳定的系统级后门。一旦安装成功,扩展会每30秒用明文的HTTP协议向命令控制服务器轮询新任务,同时自动上传浏览历史、当前标签页、会话Cookie等数据。除此之外,还能在毫无察觉的情况下对网页注入脚本、截屏、读剪贴板, 当任务需要用到操作系统功能时,扩展还会唤起配套程序nm\_host.exe,通过Chromium的Native Messaging机制在主机上执行Shell命令、浏览文件、枚举进程和服务。浏览器沙箱本来是用来隔离网页和系统的,这条通道一旦被利用,沙箱等于被从内部凿开一个口子。 ### PEEP的技术底子来自开源红队框架RedExt,后者也曾出现在GlassWorm相关攻击里。相比原版,PEEP补上了专用安装脚本、Native Messaging宿主、心跳上报、扩展自更新通道和更宽的指令集,已经是一套可独立部署的成品,而不是简单的脚本拼接。
[![image_1.jpg](https://bost.lesrec.cn/uploads/images/gallery/2026-10/scaled-1680-/VdHBX3EnHlDpEkPI-image-1.jpg)](https://bost.lesrec.cn/uploads/images/gallery/2026-10/VdHBX3EnHlDpEkPI-image-1.jpg)
### 核心技术原理 ### PEEP首先会使用一个脚本:install\_silent.ps1用来打开开发者模式,让未上架商店的扩展也能加载进来,并通过注册表HKCU Extensions项和External Extensions JSON清单完成登记。到这一步,Smart Bookmarks的文件已经挂进浏览器配置里,但如果此时重启浏览器,用户仍可能看到未验证扩展的警告,扩展也可能处于待确认状态。 紧接着PEEP会执行第二个脚本:patch\_secure\_prefs.ps1,它改的是用户配置目录下的Secure Preferences文件。Chromium每次启动都会用文件里存的HMAC值校验扩展配置有没有被动过手脚,校验不过就会弹窗或把扩展禁掉。这个脚本伪造HMAC值,让浏览器误以为当前扩展状态是自己合法写入的。跑完这步再重启浏览器,Smart Bookmarks就会静默启用,界面上不会出现任何安装确认框。Linux上同类操作由patch\_secure\_prefs\_linux.py完成,逻辑相同。 浏览器重新起来之后,扩展才开始真正工作。 background脚本读本地配置文件里的远端地址,向C2登记本机,然后进入每30秒轮询一次的循环。登记完不用等人下指令,Cookie、浏览历史、当前标签和URL、公网IP就会分批往外传;任务结果和心跳走不同接口回传,服务器还能远程推新版本,扩展拉取CRX更新包即可换壳。content.js同时挂到用户打开的每个页面上,截图、读剪贴板、往网页里注入脚本,这些都还在浏览器权限范围内,暂时碰不到操作系统。 如果用户后来把扩展删了,走另一条恢复路径。 force\_enable.ps1专门干这件事,不必再动Secure Preferences。它会从Preferences的external\_uninstalls列表里抹掉卸载记录,确认CRX包还在%LOCALAPPDATA%PEEPcrx,再走一遍注册表和External Extensions登记,最后重启浏览器把扩展拉回来。三个脚本因此分工明确:install\_silent.ps1开安装通道,patch\_secure\_prefs.ps1让首次落地静默生效,force\_enable.ps1对付被人删掉之后的再注册。 除了脚本,PEEP还留了别的退路。企业环境里若启用了ExtensionInstallForcelist策略,攻击者可以把恶意扩展ID和正规企业插件写进同一条策略,员工很难从名字上区分;ScriptCache回退则让扩展在部分清理场景下仍有机会复原。 浏览器权限用尽之后,才轮到系统侧组件。 扩展清单里注册了com.peep.lab,对应本机上的nm\_host.exe。Chrome和Edge给合法扩展留过一条和本地程序通信的官方管道,密码管理器、安全类插件正常会用这条途径调用系统能力。PEEP把Shell命令、文件读写、进程和服务枚举交给这个exe执行,运行权限和普通登录用户相同,但调用入口藏在已签名的浏览器进程里,终端防护如果只观察磁盘上新出现的陌生exe,这条路径很容易忽略掉。 远端一侧,C2除了日常收发任务,还在5001端口提供/login管理面板,/health接口甚至不登录也能看在线情况。通信走明文HTTP,没有TLS,同一局域网内抓包理论上能看到扩展上报的内容。
[![image_2.jpg](https://bost.lesrec.cn/uploads/images/gallery/2026-10/scaled-1680-/WHTonuf4n82z8Xwq-image-2.jpg)](https://bost.lesrec.cn/uploads/images/gallery/2026-10/WHTonuf4n82z8Xwq-image-2.jpg)
攻击流程还原 ### PEEP的完整链条可以按阶段还原:
攻击阶段
常见诱饵/入口
谁容易中招
最坏影响
初始失陷
钓鱼附件、远控木马、供应链投毒、弱口令RDP
未打补丁的办公电脑、开发测试机、能装软件的普通用户
攻击者获得管理员或用户级代码执行
扩展植入
静默PowerShell、伪造Secure Preferences、企业策略强装
允许侧载扩展、未限制脚本执行的环境
Smart Bookmarks扩展常驻且自动启用
数据盗取
扩展自动轮询/api/exfil
所有使用该浏览器配置的用户
Cookie与历史外泄,账号可被劫持
页面操控
content.js全站注入
访问网银、邮箱、SaaS后台的用户
页面篡改、凭据钓鱼、剪贴板替换
系统穿透
nm\_host.exe经Native Messaging
同一Windows/Linux工作站
主机命令执行、文件读写、内网探测
第一阶段没有PEEP参与。攻击者用任意已有手段拿下主机,这一步在国内企业环境里并不稀奇:员工点开伪装成发票的压缩包、开发机从不可信源拉了带后门的构建脚本、或者VPN入口长期共用弱密码,都可能留下一个能跑PowerShell的后门。 第二阶段才是PEEP登场。install\_silent.ps1打开侧载通道后,CRX被装进本地目录,patch\_secure\_prefs.ps1篡改Secure Preferences让扩展看起来像是浏览器自己信任的配置。用户打开扩展管理页,可能看到一个名字还像正经工具的书签扩展,状态却是已启用。若企业IT用ExtensionInstallForcelist统一下发插件,攻击者也可以把恶意ID写进同一策略键值,和合法企业扩展混在一起。 第三阶段,扩展注册完就开始30秒一次的心跳和命令轮询。即便用户当时没打开敏感网站,background脚本仍会上传环境元数据。一旦用户登录淘宝卖家中心、企业微信网页版、GitHub或各类管理后台,Cookie和活跃URL就会进入C2的507条记录池。明文HTTP传输意味着中间网络设备若做日志留存,事后可能留下取证线索,但对用户本身没有即时保护。 第四阶段,content.js在所有匹配页面上运行。攻击者可以远程下截图指令、读取剪贴板里刚复制的密码或API Key、向银行或OA页面注入额外脚本。这类操作不需要Native Messaging,全程在浏览器权限内完成,界面看起来可能一切正常。 第五阶段,当攻击者需要横向移动或落地工具时,C2下发需要系统权限的任务,扩展唤起nm\_host.exe。Native Messaging是Chrome官方给合法扩展与本地程序通信的通道,杀软通常不会拦截浏览器发起的这条管道。exe在用户上下文里执行命令,可以列目录、找SSH密钥、探测内网服务,相当于把浏览器变成了轻量远控客户端。
[![image_3.jpg](https://bost.lesrec.cn/uploads/images/gallery/2026-10/scaled-1680-/YftmO98yaMjPNJq1-image-3.jpg)](https://bost.lesrec.cn/uploads/images/gallery/2026-10/YftmO98yaMjPNJq1-image-3.jpg)
排查及修复方案 **排查步骤(Windows):**
1. 打开Chrome或Edge扩展管理页,搜索ID `ejkndncpkdcjcikfhiamcdehdoegilbj`,或名称Smart Bookmarks,发现即卸载并删除相关数据。 2. 检查目录 `%LOCALAPPDATA%PEEPcrx` 是否存在,整个文件夹删除。 3. 在文件系统搜索 `nm_host.exe`,删除文件并检查Native Messaging注册表项 `com.peep.lab`(通常在HKCU Software相关Chrome/Edge Native Messaging Hosts路径下)。 4. 查看 `%LOCALAPPDATA%GoogleChromeUser Data` 或 `%LOCALAPPDATA%MicrosoftEdgeUser Data` 下Secure Preferences和Preferences是否近期被异常修改,可与干净机器对比或重装浏览器用户配置。 5. 在注册表 `HKCUSoftwareGoogleChromeExtensions` 或Edge对应路径下,确认无上述恶意ID残留。
**排查步骤(Linux):** 检查Chrome配置目录下是否存在patch\_secure\_prefs\_linux.py执行痕迹,扩展目录与Native Messaging manifest中是否注册com.peep.lab。 **恢复动作:**对所有在该浏览器登录过的网站执行退出并重新登录,优先改绑二次验证;直接删除Cookie和站点数据比单点改密码更彻底。企业环境应推送扩展白名单策略,禁止未收录ID安装;PowerShell执行策略和脚本块日志应开启,便于发现install\_silent.ps1一类落地行为。终端检测规则可增加对Native Messaging宿主异常注册和%LOCALAPPDATA%PEEPcrx路径的监控。 ### 以下脚本可作本地检查:
``` import json `````` import os `````` import platform `````` from pathlib import Path `````` `````` SUSPICIOUS_ID = "ejkndncpkdcjcikfhiamcdehdoegilbj" `````` SUSPICIOUS_NAME = "smart bookmarks" `````` PEEP_CRX = Path(os.environ.get("LOCALAPPDATA", "")) / "PEEPcrx" `````` `````` def chrome_prefs_roots(): ``````     base = Path(os.environ.get("LOCALAPPDATA", "")) ``````     if platform.system() == "Windows": ``````         yield base / "Google/Chrome/User Data" ``````         yield base / "Microsoft/Edge/User Data" ``````     else: ``````         yield Path.home() / ".config/google-chrome" ``````         yield Path.home() / ".config/microsoft-edge" `````` `````` def iter_extensions(prefs_file: Path): ``````     try: ``````         data = json.loads(prefs_file.read_text(encoding="utf-8")) ``````     except (OSError, json.JSONDecodeError): ``````         return ``````     settings = data.get("extensions", {}).get("settings", {}) ``````     for ext_id, meta in settings.items(): ``````         name = (meta.get("manifest", {}) or {}).get("name", "") ``````         yield ext_id, name, str(prefs_file.parent) `````` `````` def main(): ``````     hits = [] ``````     for root in chrome_prefs_roots(): ``````         for profile in root.glob("*/Preferences"): ``````             for ext_id, name, loc in iter_extensions(profile): ``````                 if ext_id == SUSPICIOUS_ID or SUSPICIOUS_NAME in name.lower(): ``````                     hits.append((ext_id, name, loc)) ``````     if PEEP_CRX.exists(): ``````         print(f"[!] 发现PEEP本地目录: {PEEP_CRX}") ``````     if hits: ``````         print("[!] 可疑扩展:") ``````         for row in hits: ``````             print("   ", row) ``````     else: ``````         print("[OK] 未在Preferences中发现Smart Bookmarks / 已知恶意ID") `````` `````` if __name__ == "__main__": ``````     main() ```
### 将上述脚本保存为 `check_peep_ext.py`,在终端执行 `python check_peep_ext.py` 即可快速扫描本机配置文件。若输出告警,再按前文步骤手工清理Native Messaging注册和PEEPcrx目录。 ###
[![image_4.jpg](https://bost.lesrec.cn/uploads/images/gallery/2026-10/scaled-1680-/zOUIzvZVSxqmRuMG-image-4.jpg)](https://bost.lesrec.cn/uploads/images/gallery/2026-10/zOUIzvZVSxqmRuMG-image-4.jpg)
### ### IOC ### ### C2 IP : 206.237.30.232 ### 域名: xfjcc.fun ### 端口: 5001 ### ### ### (全文完)