简介:火狐46.0渗透便携版是面向渗透测试、护网行动与CTF竞赛人员的集成型火狐浏览器工具包,专为需要快速开展Web漏洞探测、流量审查与插件管理的安全从业者设计。压缩包内共575个文件,整体约69.68MB,除主程序核心组件外,还包含大量xpi扩展插件、js脚本、sqlite数据、json配置及png/ico图标资源,便于理解浏览器插件运行机制或按需替换工具模块,dll/exe等运行文件则为离线便携启动提供支撑。目前已有2022人学习下载,属于轻量但实用的单兵装备。借助内置的各类安全扩展与预设规则,读者可省去逐一手动安装配置的流程,拿到后即可在授权评估、护网值守或竞赛环境中使用,用于拦截请求、修改Cookie、联动代理及快速调用常见渗透测试功能;无论是临时切换渗透环境还是快速搭建测试入口,这款便携浏览器都能减少准备时间,是一份适合快速上手和长期储备的工具合集。
1. 为什么还要折腾一个 Firefox 46.0 的渗透便携版
遇到一个只对旧协议友好的内网系统,Chrome 直接拒绝访问,Firefox 115 ESR 也提示“此连接不受信任”,而目标业务偏偏只认老版本浏览器的那套 SSL 握手。这种时候,一个藏在 U 盘里的 Firefox 46.0 渗透便携版就是唯一的后悔药。Firefox 46.0 是最后一批完整支持 XUL/XPCOM 旧式扩展的版本,HackBar、Tamper Data 这类改包利器在那之后被 Quantum 架构彻底抛弃,而便携版的免安装特性又能保证不污染宿主机的浏览器配置与代理设置。适合的人很明确:做 Web 渗透测试、内网评估、CTF 解题,需要一套插桩齐全、即插即用、拔了 U 盘就消失的工具链的从业者。
2. 从普通 Firefox 到渗透便携版:目录、profile 与启动参数
2.1 便携版不等于绿色版:先搞清 profile 目录才是本体
很多人以为把 Firefox 安装目录整个拷进 U 盘就是便携版,双击 firefox.exe 也能跑,但一查%APPDATA%\Mozilla就会发现里面多了一堆新生成的文件。Firefox 的默认 profile 路径固定在系统用户目录下,程序目录里只放二进制和自带资源,你的插件、书签、代理配置、证书信任列表全部写在 profile 里。真正的便携化,是把 profile 也搬到 U 盘或自定义目录,然后用启动参数告诉 Firefox“去那边读配置”。
Firefox 46.0 的 profile 里几个关键文件和作用对应如下:
| 文件 | 作用 | 渗透场景里的价值 |
|---|---|---|
| prefs.js | 全部偏好设置 | 代理、缓存、TLS、签名校验开关都在这 |
| extensions.json | 已安装扩展清单 | 判断插件是否完整加载 |
| cert9.db | 证书信任库 | Burp 的 CA 是否被信任、能否解密 HTTPS |
| cookies.sqlite / permissions.sqlite | Cookie 与站点权限 | 目标系统的会话保持、弹窗拦截状态 |
| formhistory.sqlite | 表单历史 | 可能残留测试账号等敏感信息,走时记得清 |
复制这些文件不等于便携化,关键是指定 profile 路径。Firefox 的目录分区机制决定了:把-profile参数指到 Data 目录下,它就不再去碰系统里的那个默认 profile。这个思路是所有便携版方案的底子。
2.2 用最小目录结构搭出便携版:目录划分与启动参数
常见做法是参考 PortableApps 的布局自己搭一套,不依赖任何打包工具。目录结构如下:
Firefox46Portable\ App\ firefox.exe (其余 Firefox 程序文件) Data\ profile\ plugins\ start-pentest.batApp 放从安装目录复制来的完整程序文件,Data\profile 是空的 profile 容器,Data\plugins 预留做自定义插件目录。启动脚本这样写:
@echo off set PFF_DIR=%~dp0 "%PFF_DIR%App\firefox.exe" -profile "%PFF_DIR%Data\profile" -no-remote -allow-downgrade-profile后面的路径最好用绝对路径,但脚本里通过%~dp0动态获取当前目录,这样整个文件夹挪到任何盘符都能启动。-no-remote是便携版的保命参数,它允许你和宿主机上正在运行的 Firefox 同时存在,互不抢占 profile 锁。-allow-downgrade解决的是 profile 版本向后兼容问题:如果 U 盘里的这套 profile 曾经被更高版本 Firefox 打开过,数据格式会升级,46.0 再读会拒绝启动,这个参数允许它降级读取。
如果只是临时用,也可以不带 bat,直接 Win+R 执行firefox.exe -profile "D:\FF46\Data\profile" -no-remote,效果一样。第一行@echo off是隐藏批处理自身的命令回显,set PFF_DIR=%~dp0把脚本所在目录存进变量,目的是让后面引用的路径不写死,这一点在 U 盘换盘符时很关键。
2.3 验证便携化是否成功:三个必查项
搭建完不要急着装插件,先做三步验证。第一步,启动后打开about:profiles,看“本地目录”列的路径是否指向你 Data\profile 而不是%APPDATA%。第二步,关掉 Firefox,去%APPDATA%\Mozilla和%LOCALAPPDATA%\Mozilla看有没有新增文件——如果这两处被写入了东西,说明某个环节仍在用默认 profile。第三步,把整个目录复制到另一台机器(或另一个盘符)再启动一次,验证路径无关性。
检查完这三项,这个 Firefox 46.0 才算真正“便携”。很多人做出来能开能关,但一查 AppData 全是残留,那是假便携,带去客户现场一跑就露馅——系统里被写满了你个人工具的痕迹,这在渗透测试现场是大忌。
3. 渗透工作台配置:代理链、证书与隐私开关
3.1 代理切换:FoxyProxy 的分场景规则
渗透测试里最常干的动作就是“目标地址走 Burp,其他地址直连”。Firefox 46.0 自带的连接设置只支持一个全局代理,没法按域名分流,所以 FoxyProxy 是便携版里第一个要装的扩展。装完打开它的配置界面,添加代理:协议 HTTP、IP 127.0.0.1、端口 8080,这就是 Burp 默认监听地址。再把代理模式选成“基于 URL 模式”,添加规则:
| 规则名 | URL 模式 | 代理动作 |
|---|---|---|
| Burp 拦截 | *target.com*、*10.0.0.* | 走 127.0.0.1:8080 |
| 本机直连 | *localhost*、127.0.0.1 | 直连 |
| 默认 | <all-urls> | 直连 |
这样可以做到访问目标系统时才把流量导进 Burp,查资料、下插件时不受代理干扰,也不用频繁改 Firefox 全局设置。FoxyProxy 的规则匹配是按优先级从上到下,把“本机直连”放在“Burp 拦截”下面,避免 localhost 的请求也被送进代理造成死循环。
3.2 让 Firefox 46.0 信任 Burp 的 CA 证书
不装证书,Burp 只能看到 CONNECT 请求,HTTPS 流量全是密文。正常流程是:Burp 的 Proxy 选项卡里导出 CA 证书为 DER 格式,然后在 Firefox 里打开“选项 → 高级 → 证书 → 查看证书 → 证书机构 → 导入”。导入时弹出两个勾选框,务必勾上“信任此证书机构以标识网站”。
Firefox 46.0 的证书管理入口和现代版本不一样,没有“隐私与安全”大栏目,证书按钮藏在“高级”选项卡下面,第一次找容易翻车。导入完成后访问任意 HTTPS 站点,如果地址栏不报红锁,说明证书链已被接受。这里有个 note:Burp 导出的证书要选 “Export as DER”,Firefox 对 DER 和 PEM 都能识别,但 DER 更不容易在导入时被误判。
3.3 about:config 里必改的 12 项隐私与协议开关
Firefox 46.0 的很多默认行为对渗透测试是干扰项。地址栏输入about:config,点“我保证小心”,逐个搜下面这些参数并修改:
| 参数 | 推荐值 | 修改理由 |
|---|---|---|
| browser.cache.disk.enable | false | 不让响应体落盘,避免测试数据残留 |
| network.http.use-cache | false | 强制每次请求都回源,不拿缓存判断逻辑 |
| browser.privatebrowsing.autostart | true | 每次启动即隐私模式,减少历史记录污染 |
| app.update.enabled | false | 禁止自动更新,防止半天后变成新版 |
| browser.shell.checkDefaultBrowser | false | 不弹“设为默认浏览器”的干扰提示 |
| datareporting.healthreport.uploadEnabled | false | 关掉遥测上报,测试目标信息不外传 |
| network.http.sendRefererHeader | 0 | 禁用 Referer,某些安全测试需要空 Referer 场景 |
| xpinstall.signatures.required | false | 允许安装未签名的经典渗透插件 |
| security.tls.version.min | 1 | 允许降到 TLS 1.0,兼容老业务系统 |
| security.tls.version.max | 3 | 上限 TLS 1.2,这就是 46.0 的天花板 |
| network.http.http2.enabled | false | 老版 HTTP/2 实现有 bug,遇怪问题先关它 |
| dom.storage.enabled | true | localStorage 相关测试场景需要开 |
xpinstall.signatures.required是最关键的一项,46.0 上这个开关还活着,不设成 false,后面连 HackBar 都装不进去。security.tls.version.max设成 3 表示 TLS 1.2,不要试图往大调,Firefox 46.0 的内置 NSS 库根本不认识 TLS 1.3,调了也无效。
4. 经典渗透插件组合:哪些还能用、怎么装
4.1 HackBar 与 Tamper Data:老版本才能用的改包利器
Firefox 46.0 最大的价值就是能跑旧式扩展。HackBar 是 Web 渗透里最顺手的工具,它像个嵌在浏览器里的请求编辑器:可以直接改 URL 参数、构造 POST 数据、给请求头加自定义字段,还能一键对 payload 做 URL 编码。新版 Firefox 早就不允许这种深度介入网络请求的扩展存在,只有 57 之前的版本能用。
Tamper Data 的作用是拦截浏览器发出的每个请求,在发送前允许你篡改请求头、Cookie、POST 参数。很多逻辑漏洞就是靠它临时改一个参数试出来的,比反复在 Burp Repeater 里粘贴复制要快得多。它和 Burp 的区别在于:Burp 是外部代理,Tamper Data 是浏览器内部钩子,配合使用时注意别让两个都拦截同一个请求,否则数据流会乱。
装这些插件的方式很直接:拿到 xpi 文件后,直接拖进 Firefox 窗口。如果弹出“此扩展未通过验证被阻止”,就是签名校验没关,回头把 3.3 里的xpinstall.signatures.required设为 false,重启浏览器再拖一次。还有一点:HackBar 在我的记忆里 2.x 版本有功能残缺的毛病,建议找 1.6 左右的经典版,按钮齐全,SQL 注入测试用的那几个编码按钮都在。
4.2 第三方插件缺失时的替代方案
老插件不好找是常态,尤其是一些冷门扩展的 xpi 已经散落在各种网盘里,来源不可控。我一般会采取分层策略:FoxyProxy 这类基础工具用新版 WebExtension 替代品,HackBar 和 Tamper Data 找不到时,退回 Firefox 46.0 自带开发者工具加 Burp 组合。
Firefox 46.0 的开发者工具虽然不如现代版本,但“查看器→网络”里能看请求头,“控制台”里能执行 JS。配合 Burp 的 Repeater,实际上能覆盖 HackBar 八成功能。唯一的痛点是构造 POST 请求没有 HackBar 那种“从当前页面直接拉取 URL 和参数”的便利,需要在 Burp 里手动拼。如果目标是纯粹测 SQL 注入和 XSS,HackBar 还是值得花时间找一找的。
另外补充一个在线加载本地插件的技巧:某些 zip 格式的扩展包,本质上是 xpi 改了个后缀,但直接改回.xpi不一定能装。正确的处理办法是把 zip 解压到一个文件夹,放到 Data\plugins 下,然后在 about:config 里新增一个字符串参数extensions.load.force.reload(46.0 是旧式扩展目录加载机制),指定那个文件夹路径。这个操作对调试自己写的插件很有用。
4.3 插件与扩展的批量安装目录法
手动一个个拖 xpi 太慢,而且重装系统后要重新来一遍。便携版的优势就是可以把装好的插件直接固化在 profile 里。具体做法:装完所有插件后,打开Data\profile\extensions目录,你会发现每个插件对应一个子目录或 xpi 文件,名字是插件 ID(类似{1bc9b1e8-1234-5678-90ab-abcdefabcdef}这种)。整个把extensions目录连同 profile 一起复制,换机器也自带全家桶。
extensions.json文件记录了插件的激活状态和版本号,批量复制时这个文件也要一起走。如果复制后某些插件没生效,多半是extensions.json里的路径还指着旧盘符,直接删除这个文件让 Firefox 重新扫描extensions目录是最快的修法。
5. 避坑:Firefox 46.0 便携版最常见的 5 个翻车点
5.1 插件装不上:签名校验没关或装错版本
现象:拖入 xpi 后弹出“此扩展未经验证,已被阻止”。原因:Firefox 43 之后对扩展强制要求签名,46.0 上xpinstall.signatures.required默认是 true。解决:先在 about:config 把xpinstall.signatures.required设为 false,完全退出 Firefox 再启动,然后再拖插件。注意不要在浏览器运行的时候改这个参数——很多情况是改完立即拖 xpi 仍然被拦,实际上是旧进程还占着旧配置,重启一次就正常。
5.2 启动提示“Firefox 正在运行,但无响应”
现象:双击启动器没反应,再点弹出 profile 被占用的提示。原因:宿主机已经开了一个 Firefox,便携版又想去读同一个默认 profile;或者上次便携版异常退出,profile 锁文件没释放。解决:确认启动参数里带了-no-remote -profile "自定义路径",锁文件在 Data\profile 下的.parentlock,删除后重启即可。这个文件是隐藏文件,Windows 资源管理器里看不到,要用dir /a或者直接在命令行里删。
5.3 访问现代站点报“连接不安全”或直接打不开
现象:目标系统是新技术栈,Firefox 46.0 访问时报ssl_error_unsupported_version。原因:46.0 的 NSS 库最高只支持 TLS 1.2,而现在很多站点强制 TLS 1.3。解决:这是硬伤,调参数改不了。常见做法是在 Burp 里做一个 TLS 降级代理:Burp 自己用现代 TLS 连接目标,Firefox 用 TLS 1.2 连 Burp 的 8080 端口,让 Burp 充当翻译层。这一步同时也顺便完成了流量解密,一举两得。
5.4 视频播放不了:没有找到支持的视频格式 MIME 类型
现象:在目标系统上看到视频资源,点开提示“Firefox 没有找到支持的视频格式和 MIME 类型”。原因:Firefox 46.0 内置的 H.264/AAC 解码能力很弱,Windows 版在多数情况下要依赖系统自带的媒体基础框架。解决:先检查media.windows-media-foundation.enabled,如果是 false 就改成 true,重启。还不行就确认系统里装了解码组件,或者干脆放弃在浏览器里看视频,用 Burp 抓到媒体文件 URL 后用外部播放器打开。
5.5 便携目录被杀毒软件整目录隔离
现象:U 盘插进客户机器,杀毒软件弹出风险提示,把 App 下的某个 dll 或 Data 下的 xpi 隔离了。原因:Firefox 搭配渗透插件这个组合本身就是杀软特征库里的“潜在不受欢迎程序”,某些破解版插件的 dll 加壳更容易触发。解决:保证插件来源可信,装完把整个目录做一次哈希快照,换机器前先比对 hash,确认文件没被动过。被隔离的文件可以从隔离区恢复后,在杀软白名单里加入整个便携目录。这个问题的根治办法是提前在干净的测试机上验证整套目录,不带测试过程中产生的弹窗残留去现场。
6. 把便携版做成团队渗透工具箱的进阶技巧
6.1 用脚本按场景切换配置组
实践里最常用的技巧是准备两套 profile:一套是“干净模式”,没有任何代理和证书,用于普通网页访问和下载;一套是“测试模式”,预装 Burp 证书、FoxyProxy 规则和 HackBar。用start-clean.bat和start-pentest.bat分别指向不同目录,两条命令互不干扰。下面是测试模式启动器:
@echo off set PFF_DIR=%~dp0 "%PFF_DIR%App\firefox.exe" -profile "%PFF_DIR%Data\profile-test" -no-remote干净模式同理,只是 profile 换成profile-clean。这样做的核心收益是让 FoxyProxy 的复杂规则不会误伤日常浏览,也避免测试用的证书污染常规 profile。团队共享时,只需要同步整个目录,把 profile-test 里的证书替换成每个人自己的 Burp CA 即可。
6.2 验证便携版是否被动手脚:哈希快照与恢复
拿去客户现场的工具必须证明来源可靠。我的习惯是维护一份SHA256SUMS文件,记录 App 目录下所有核心文件的哈希值。在干净的基准机器上生成快照:
cd Firefox46Portable/App && find . -type f -exec sha256sum {} \; > ../SHA256SUMS到了现场或回来后,再跑一遍同样的命令,用sha256sum -c SHA256SUMS校验。输出里出现FAILED就说明有文件被改过或损坏。这个习惯救过我一次:有台机器上的 firefox.exe 被安全软件“修复”过,体积没变但哈希对不上,重装一遍才算把现场保住。每次任务回来,我都把整个便携目录压缩留档,命名带上日期和目标代号,下次出任务直接拿最新快照,不带着上次的“战场残留”出门。
这套方案维护成本极低,收益却是实打实的:一套 Firefox 46.0 渗透便携版,跑得过老系统、装得上老插件、不污染宿主机,还能用哈希自证清白。希望帮到你。
本文还有配套的精品资源,点击获取