daohhuynh/native-webkit-automator
GitHub: daohhuynh/native-webkit-automator
一款 macOS 原生工具,桥接 WKWebView 身份认证与 curl-impersonate,实现无头请求下的 TLS 指纹与 JA3 绕过。
Stars: 1 | Forks: 0
# macOS 原生 WebKit Automator
一个 C++/Objective-C++ 应用程序,用于桥接原生 macOS UI 身份验证与无头网络请求。通过利用原生 WebKit 沙箱进行初始会话生成,并使用 `curl-impersonate` 进行后续请求,该工具展示了无头应用程序如何成功保持标准消费者浏览器 TLS 签名(JA3)。
## 前置条件
- **macOS**(需要原生的 `Cocoa` 和 `WebKit` 框架)
- **`curl-impersonate-chrome`**(需要模拟标准 Google Chrome 的 TLS 密码套件)
## 编译
由于代码与原生 macOS UI 元素交互,必须将其编译为 Objective-C++ 文件(`.mm`)并显式链接 Apple 的 UI 框架:
```
clang++ -std=c++17 -O3 sandbox.mm -I/usr/local/include -L/usr/local/lib -lcurl-impersonate-chrome -framework Cocoa -framework WebKit -o sandbox
```
## 用法
从终端执行编译后的二进制文件:
```
./sandbox
```
### 执行架构:
1. **原生浏览器实例化**:启动一个原生的 Safari `WKWebView` 窗口。与传统无头自动化框架(如 Puppeteer、Selenium)不同,原生 OS 层自然通过标准 JavaScript 环境检查。
2. **身份验证**:用户在沙箱中登录并完成任何必要的安全挑战(验证码)。
3. **会话提取**:一旦达到成功的认证状态,应用程序直接从 macOS 原生 cookie 存储中提取活动会话 Cookie。
4. **执行移交**:图形 UI 立即终止,将状态和执行流程交还给底层 C++ 进程。
5. **TLS 模拟**:`libcurl` 使用提取的 Cookie 查询内部 JSON 端点。通过利用 `curl-impersonate-chrome`(使用 BoringSSL 编译),HTTP/2 头部和 TLS 密码套件在数学上与标准消费者浏览器无法区分,从而避免普通 OpenSSL 实现常触发的握手拒绝。
6. **输出**:应用程序将原始 JSON 响应直接输出到 `stdout`。
标签:BeEF, Bot检测, C++, Cocoa, Cookie, curl-impersonate, headless, HTTP/2, JA3, Objective-C++, PoC, Radare2, TLS仿真, TLS指纹, WebKit, WKWebView, 云资产清单, 会话, 反检测, 多架构支持, 数据擦除, 暴力破解, 浏览器指纹, 爬虫, 登录, 绕过, 认证, 逆向工程