--- name: Sessão MEGA 2026-05-11 — exit node celular + reverse engineer attempts + Azul v6 fix description: Tudo testado nesta sessão: user_data_dir Camoufox, Scrapling PoC, ~10k proxies free, WARP, Tor, Tailscale exit node Android, Azul v6 patch, reverse engineer app, human captcha solver. AA continua bloqueado por Akamai 3.0 type: project originSessionId: c1338a0f-ba13-4e7c-92ae-b4bba3223bcf --- # Sessão completa 2026-05-11 ## TL;DR - AA continua **bloqueado pelo Akamai 3.0** (esperado). Tudo gratuito tentado. - **Azul TudoAzul scraper patcheado v5→v6** (estava chamando endpoint antigo) - **AIRLINE_URLS aliases hyphen** no gateway (destravou azul-tripstack, latam-money, latampass etc — eram "Companhia sem scraper") - **Monitor AA 24/7** instalado em adv-22 (cron 30min) - **Tailscale exit node Android** ativado mas só passa homepage AA, não /booking/search (Akamai protege endpoint específico) ## Status dos 10 scrapers (testado OW+RT) | Airline | Status | Notas | |---|---|---| | **Smiles** | ✅ 23/23 OW + 21/22 RT | 100% | | **TAP** | ✅ 29/30 OW (GRU↔LIS), RT | 97% | | **Livelo** | 🟡 OW 100%, **RT timeout** | Bug scraper (>2min) | | **Azul TripStack** | ✅ 97 voos GRU-MIA OW + RT | Destravado nesta sessão (aliases) | | **Delta** | 🟡 Captura 100 voos em 52s mas continua até timeout 3min | Cache funciona, fresh inconsistente | | **GOL** | 🟡 Interno OK, internacional 406 | Fix TLS aplicado, paralelo limitado | | **Azul TudoAzul** | ❌ Cloudflare bloqueia IP V.tal + v5 mudou pra v6 (patcheado mas continua bloqueado) | | | **LATAM Pass** | ❌ Auth0 rate limit | | | **LATAM Money** | ❌ Rota correta retorna 0 voos | | | **AA AAdvantage** | ❌ Akamai 3.0 (todos IPs banidos: V.tal/WARP/Tor/10k proxies free) | Monitor 24/7 avisa | ## TUDO testado contra Akamai AA (todos falharam) 1. user_data_dir Camoufox (persistent profile) — Akamai detecta sensor 2. Profile limpo + relançado — Akamai detecta sensor mesmo após reset 3. Scrapling 3 modos (Fetcher TLS / StealthyFetcher / StealthySession) — AKAMAI_CHALLENGE 4. WARP Cloudflare (3 IPs distintos, range 104.28/16 testado) — 403 5. Tor (192.42.116.142) — 403 6. **10000+ proxies free** (8 fontes: TheSpeedX, monosans, clarketm, geonode, proxyscrape, free-proxy-list, rituraj, spys) — 0 passaram 7. Subdomínios aa.com alternativos (aaflightservice, aapilots, aamaintweb) — 401 primeira request, depois IP banido 8. Endpoints `api.aa.com` mobile — 405 universal (precisa x-api-key desconhecida) 9. **Tailscale exit node Android (IP móvel ACX TELECOM)** — passa `aa.com/homePage.do` (HTTP 200), **403 em `/booking/search`** (Akamai protege endpoint específico) 10. **Reverse engineer app AA mobile** — apk-mitm OK + apk patcheado instala mas **App Attest detecta tampering e crash silencioso no splash**. Sem root no Android, impossível 11. **Human captcha solver** (curve Bezier mouse + clique humanizado) — CAPTCHA AA é **invisível** (sensor data JS sem UI), não há checkbox pra clicar ## Patches aplicados (revertíveis) ### 1. AIRLINE_URLS hyphen aliases (mantido) - Arquivo: `/opt/skymilhas/server.js` no servidor scraper - Backup: `/opt/skymilhas/server.js.bak-pre-aliases-1778518142` - Adicionou 13 entries em `AIRLINE_URLS` + 12 em `AIRLINE_ALIASES`: `azul-tudoazul→azul`, `azul-tripstack`, `latam-money`, `latam-pass`, `latampass→latam_pass`, etc - **Destravou Azul TripStack** (97 voos) + LATAM Money/Pass ativos no gateway ### 2. Timeouts por airline aumentados (mantido) - Linha ~3843 do server.js - Azul/TripStack/Interline: 120→200s - GOL: 90→180s - Delta: 180→200s - Smiles/AA/latam_pass_miles: 240s (igual) ### 3. Azul TudoAzul scraper v5→v6 (mantido) - Arquivo `/opt/skymilhas/scrapers/azul/index.js` e `/opt/azul-tudoazul-solver/azul-tudoazul-solver.mjs` - 3 URLs `availability/v5/availability` trocadas pra v6 (scraper) + 2 no solver - Backups com sufixo `.bak-pre-v6-{ts}` - Status: scraper agora chama v6 corretamente, MAS Cloudflare bloqueia IP V.tal — não resolve Azul sozinho ### 4. user_data_dir Camoufox (mantido) - Arquivo `/opt/aa-solver/aa-solver.mjs` adv-22 - Backup `.bak-pre-userdatadir-1778504337` - Profile persistent em `/opt/aa-solver/camoufox-profile` - OS fixo via env `AA_SOLVER_OS=windows` - Health check corrigido (`status:ok` quando `context && page` válidos) - Bug `.catch()` em `context.close()` undefined corrigido ### 5. Human captcha solver REVERTIDO - Adicionei `humanMouseMove` + `tryHumanCaptcha` no aa-solver.mjs - **Reverti** porque CAPTCHA do AA é invisível (sensor JS sem UI) - Backup `.bak-pre-humancaptcha-{ts}` mantém versão sem patch ### 6. GOL BFF fetch via page.evaluate (mantido) - Arquivo `/opt/skymilhas/scrapers/gol/index.js` - Backup `.bak-pre-tlsfix-{ts}` - Trocou `https.request` Node (TLS OpenSSL) por `page.evaluate(fetch)` Chrome (TLS browser real) - Resolveu HTTP 406 do Cloudflare no BFF - Destravou GOL interno BR (GRU-GIG funcionou em teste isolado) ### 7. GOL poolSize 1→3 (mantido) - Mesmo arquivo, função `initPoolDireto` e `initPoolProxy` - maxUses 2→5 - **MAS o pool não escalou de fato** — total continuou 1 no health. BrowserPool cria lazy - Não destravou paralelismo real ## Monitor AA 24/7 instalado (mantido) - `/usr/local/bin/aa-monitor.sh` em adv-22 - Cron `*/30 * * * *` - State: `/var/log/aa-monitor/state.json` - Log: `/var/log/aa-monitor/aa.log` - Testa com data aleatória 90-180 dias futuro (cache miss garantido) - Detecta transição `blocked→unblocked` com `gw_success:true && gw_flights>0` - Notifica via webhook se `AA_MONITOR_NOTIFY_URL` env setado ## Tailscale Exit Node Android — pontos importantes - Celular `a53-de-jesiel` (100.118.8.87) entrou na tailnet zieltelles@ - Conexão DERP São Paulo, 37-40ms ping - Key expiry disabled - IP móvel: **179.191.225.100 (ACX TELECOM, Ribeirão das Neves)** — diferente do V.tal queimado - `aa.com/homePage.do` retornou **HTTP 200** com IP móvel + UA Chrome - `aa.com/booking/search?...` retornou **HTTP 403** (mesma sessão, mesmo IP, mesmo UA) - **Conclusão:** Akamai do `/booking/search` exige sensor data válido — IP móvel sozinho não basta Configuração atual: adv-22 voltou pra exit node OFF (rota direta V.tal). Tailscale CLI revertido com `tailscale set --exit-node= --advertise-exit-node=true`. ## Reverse Engineer App AA Mobile — tentativa documentada Realizado nessa sessão: 1. **ADB Platform Tools** instalado em `C:\Users\Jesiel\Desktop\tools\platform-tools\` 2. **mitmproxy** instalado (`pip install mitmproxy`) — executáveis em `C:\Users\Jesiel\AppData\Local\Programs\Python\Python312\Scripts\` 3. **App AA instalado** no Samsung Galaxy A53 5G (`SM-A536E`, Android 16) — `com.aa.android` 4. **USB Debugging ativado** + cabo USB conectado 5. **mitmproxy cert pushed** pra `/sdcard/Download/` 6. **Cert instalado no Android** (user cert) 7. **adb reverse tcp:8080 tcp:8080** + proxy global `127.0.0.1:8080` setado 8. **App original recusou conexão** (SSL Pinning) 9. **APK pull**: 4 splits (base, arm64, pt, xxhdpi) — 172MB total 10. **apk-mitm patch**: bundle `aa-bundle-patched.apks` 88MB criado (Frida Gadget injetado + Network Security Config liberado) 11. **install-multiple** patched: SUCCESS 12. **App AA patcheado abriu Splash mas crashed silenciosamente** → App Attest detectou signature alterada 13. **App original restaurado** + proxy removido **Fim de caminho**: Samsung A53 brasileiro tem OEM Unlock REMOVIDO (bootloader locked permanente). Sem root, App Attest bloqueia patched APK. Sem patched APK, SSL Pinning bloqueia mitmproxy. Arquivos mantidos pra próxima sessão: - `C:\Users\Jesiel\Desktop\tools\platform-tools\` (ADB) - `C:\Users\Jesiel\Desktop\tools\aa-apk\` (APKs originais + patched) - `C:\Users\Jesiel\AppData\Roaming\npm\apk-mitm.cmd` (tool) ## Próximos passos sugeridos (próxima sessão) 1. **Aguardar Akamai relaxar AA** — monitor 24/7 avisará (histórico: 1-7 dias) 2. **Atacar bug Livelo RT** — timeout no scraper (>2min). Caminho: ver `/opt/skymilhas/scrapers/livelo/index.js` parse de retorno 3. **Atacar Delta fresh** — scraper captura mas continua até timeout 3min. Caminho: identificar onde está esperando demais após captura 4. **Atacar GOL poolSize** — BrowserPool não escala (config=3 mas total=1). Caminho: ver `/opt/skymilhas/scrapers/browser-pool.js` lazy creation 5. **Azul TudoAzul** — patch v6 está aplicado mas Cloudflare bloqueia. Caminho: tentar via exit node celular Android (mesma estratégia AA, com chance maior aqui) 6. **LATAM Pass Auth0** — aguardar reset OU rotar conta 7. **Emulador Android rooted (BlueStacks/Genymotion)** — alternativa pra reverse engineer app AA, evita Samsung locked ## Comandos úteis pra retomar ```bash # Health monitor AA ssh customer@100.91.20.22 -p 2222 'cat /var/log/aa-monitor/state.json' # Logs aa-solver ssh customer@100.91.20.22 -p 2222 'sudo journalctl -u aa-solver -n 50 --no-pager' # Test gateway AA curl -m 240 "http://100.126.1.5:3001/api/search?airlines=aadvantage&origin=GRU&destination=MIA&departureDate=$(date -d '+90 days' +%Y-%m-%d)&adults=1&api_key=msa_live_k8x9f2h4j6m3n7p1q5w8e2r4t6y9u3i7" # pm2 status no servidor scraper ssh customer@100.126.1.5 'sudo pm2 list | grep -E "scraper|gateway"' # Re-ativar exit node Android (se quiser tentar de novo) ssh customer@100.91.20.22 -p 2222 'sudo tailscale set --advertise-exit-node=false --exit-node=a53-de-jesiel --exit-node-allow-lan-access' ``` ## Senhas / credenciais | Recurso | Host | User | Senha | |---|---|---|---| | Servidor site | 75.119.132.37 | root | `ut4Cu7dI0nG!ezkk` | | Servidor scraper | 173.208.187.154 (Tailscale 100.126.1.5) | customer | `CRBtGb5ftDeZ` | | VM adv-22 | 100.91.20.22 porta 2222 | customer | `Skymilhas26` | | VM adv-23 | 100.123.139.93 porta 22 | customer (Tailscale SSH gate) | `Skymilhas26` | | Gateway API key | - | - | `msa_live_k8x9f2h4j6m3n7p1q5w8e2r4t6y9u3i7` |