<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Faraday - Medium]]></title>
        <description><![CDATA[Faraday Platform helps you perform security engineering by maximizing your team’s resources, increasing risk visibility by converting all your data into valuable information  https://www.faradaysec.com/ - Medium]]></description>
        <link>https://medium.com/faraday?source=rss----2b9b7d30652e---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>Faraday - Medium</title>
            <link>https://medium.com/faraday?source=rss----2b9b7d30652e---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 14 Nov 2026 03:32:19 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/faraday" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[From “Damn Vulnerable” to Just an App]]></title>
            <link>https://medium.com/faraday/from-damn-vulnerable-to-just-an-app-e0ea6e2ef4f3?source=rss----2b9b7d30652e---4</link>
            <guid isPermaLink="false">https://medium.com/p/e0ea6e2ef4f3</guid>
            <dc:creator><![CDATA[Francisco Müller Amato]]></dc:creator>
            <pubDate>Wed, 11 Nov 2026 12:54:24 GMT</pubDate>
            <atom:updated>2026-11-11T12:54:23.908Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Pw7EcqyMMBdCZv4nJakzag.png" /></figure><p><em>6 apps deliberadamente vulnerables, un loop autónomo — hasta que el nombre deja de aplicar.</em></p><p>Las apps “deliberadamente vulnerables” — DVWA, Juice Shop, WebGoat, VAmPI y compañía — existen para que encuentres bugs. Y encontrarlos es trivial: están puestos ahí. El verdadero desafío, el que importa en producción, es otro: <strong>correr el programa de seguridad entero hasta que el nombre deje de tener sentido.</strong> Hasta sacarle, literalmente, lo “Damn Vulnerable” a la Damn Vulnerable Web Application y dejarla en solo… una Application.</p><p>Eso es lo que hicimos con FaradAI. No “encontramos cosas en DVWA”. La <strong>arreglamos</strong> — y a otras cinco — hasta confirmar, con un re-scan, que lo que era explotable ya no lo era.</p><h3>El concepto</h3><p>Un lab vulnerable es el lugar honesto para probar un <em>programa</em>, no un scanner. Cualquiera marca los hallazgos. La pregunta real es si podés cerrar el círculo completo:</p><p><strong>encontrar → probar que es explotable → priorizar → arreglar → re-testear y confirmar que quedó cerrado.</strong></p><p>Si podés hacer eso de punta a punta, “Damn Vulnerable” deja de aplicar. Si no, tenés una pila de hallazgos y el nombre sigue intacto.</p><h3>Las 6 apps (y por qué estas)</h3><p>Metimos los cuatro clásicos y le sumamos la capa que nadie está testeando todavía:</p><ul><li><strong>DVWA</strong> (PHP), <strong>Juice Shop</strong> (Node/SPA+API), <strong>WebGoat</strong> (Java/Spring), <strong>VAmPI</strong> (API Python) — el espectro web/API clásico.</li><li><strong>PromptMe</strong> (LLM / OWASP LLM Top 10) y <strong>Damn Vulnerable MCP</strong> (servidor MCP sobre SSE) — la superficie de IA, donde las vulnerabilidades son prompt injection, tool poisoning y system-prompt leakage en vez de SQLi y XSS.</li></ul><p>El mismo loop para los seis, todo en un solo workspace de Faraday.</p><h3>El loop</h3><pre>Scan estático (SAST + SCA + secrets) → Faraday<br>   ↓<br>Pentest autónomo con FaradAI (Claude + Codex) → exploits validados y encadenados<br>   ↓<br>Triage: dedup + priorización de todo junto<br>   ↓<br>Patch (FaradAI o a mano)<br>   ↓<br>Re-scan → Faraday reconcilia: arreglado → closed, abierto → open</pre><p>Los scanners aportan amplitud (ruidosa, sin probar). FaradAI convierte el “quizás” en “acá está el exploit funcionando”. El triage ordena el firehose. El re-scan dice la verdad: qué se cerró.</p><h3>Lo que pasó en una corrida real</h3><p>La salida en crudo fue <strong>620 hallazgos</strong> entre las seis apps. La mayoría, ruido estático informativo. Y después FaradAI probó qué era real:</p><ul><li><strong>48 exploits validados</strong> con evidencia de request/response — no ecos de scanner.</li><li>En DVWA: command injection → RCE como www-data, file upload → web shell, SQLi dumpeando el hash del admin.</li><li>En Juice Shop: bypass de login por SQLi, JWT alg:none, IDOR en baskets y órdenes.</li><li>En <strong>Damn Vulnerable MCP</strong>: una tool con whitelist bypasseable → <strong>RCE no autenticado como root</strong>, y credenciales filtradas desde la descripción de otra tool.</li><li>En <strong>PromptMe</strong>: prompt injection que filtró el system prompt… con una <strong>API key hardcodeada</strong> adentro.</li></ul><p>Cosas que ningún SAST/SCA ve. Después, un pase de triage sobre los <strong>77 críticos/altos</strong> → <strong>65 confirmados</strong> y un <strong>plan de patch de 71 fixes</strong> (bumps de dependencias, queries parametrizadas, shell=False en la tool MCP, sacar la API key del system prompt).</p><p>El arco en una sola corrida: <strong>620 en crudo → 48 exploits probados → 77 priorizados → 71 fixes accionables.</strong> Y recién ahí, con los fixes aplicados y el re-scan confirmando el cierre, el “Damn Vulnerable” empieza a caerse del nombre.</p><h3>Por qué importa fuera del lab</h3><p>Lo lindo del lab es que es seguro equivocarse. Pero el loop no cambia cuando el target es tu producción: encontrar nunca fue el cuello de botella — probar, priorizar y <strong>cerrar</strong> sí. Si podés sacarle lo “Damn Vulnerable” a seis apps distintas (web, API, LLM, MCP) en una corrida, ese mismo loop es el que querés corriendo contra lo que shippeás todas las semanas.</p><p>No es “encontramos 300 cosas”. Es “probamos que estas eran explotables, las arreglamos y <strong>confirmamos</strong> que ya no están”. Esa es la diferencia entre una pila de hallazgos y un programa de seguridad — y entre una Damn Vulnerable Web Application y, simplemente, una app.</p><p><em>Sacale lo “Damn Vulnerable” a lo tuyo — de scan a fix confirmado, en un solo lugar: </em><a href="https://faradaysec.com/"><em>Faraday</em></a><em> · </em><a href="https://faradaysec.com/faradai"><em>FaradAI</em></a><em> →</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e0ea6e2ef4f3" width="1" height="1" alt=""><hr><p><a href="https://medium.com/faraday/from-damn-vulnerable-to-just-an-app-e0ea6e2ef4f3">From “Damn Vulnerable” to Just an App</a> was originally published in <a href="https://medium.com/faraday">Faraday</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Using Claude or Codex for Pentesting? Give It a System of Record.]]></title>
            <link>https://medium.com/faraday/using-claude-or-codex-for-pentesting-give-it-a-system-of-record-9b8ccddd0ded?source=rss----2b9b7d30652e---4</link>
            <guid isPermaLink="false">https://medium.com/p/9b8ccddd0ded</guid>
            <category><![CDATA[patch]]></category>
            <category><![CDATA[autonomous-pentest]]></category>
            <category><![CDATA[xcode]]></category>
            <category><![CDATA[triage]]></category>
            <category><![CDATA[claude]]></category>
            <dc:creator><![CDATA[Francisco Müller Amato]]></dc:creator>
            <pubDate>Wed, 11 Nov 2026 12:52:04 GMT</pubDate>
            <atom:updated>2026-11-11T12:52:06.855Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*mpYpFADzO8MItvh9Y8TFRA.png" /></figure><h3>If you do offensive security in 2026, you’ve almost certainly pointed <strong>Claude Code</strong> or <strong>Codex</strong> at a target and watched it find real bugs. The agents are genuinely good at it: recon, reading source, chaining an SSRF into a credential leak, writing the PoC.</h3><p>Then the terminal scrolls, the session ends, and… that’s it. The findings live in your scrollback. There’s no dedup against last week’s run, no history, no report you can hand a client, no correlation with the Burp and nuclei output sitting in another folder.</p><p>The model is a brilliant operator with no memory and no filing system. This post is about giving it one.</p><h3>1. An LLM agent is not a security program</h3><p>Running Claude or Codex ad-hoc gets you findings. It does not get you:</p><ul><li><strong>Deduplication</strong> — the same IDOR reported on three branches, three times.</li><li><strong>History</strong> — was this vuln here last month? Did the last fix actually hold?</li><li><strong>Prioritization</strong> — 40 findings in a transcript, no ranking by real exploitability.</li><li><strong>Reporting</strong> — a client wants a PDF, not a copy-pasted chat log.</li><li><strong>Correlation</strong> — your SAST, DAST, and scanner results live in unrelated silos.</li></ul><p>The intelligence is there. The <em>system of record</em> is missing. That’s the exact split FaradAI is built around: <strong>the LLM is the operator; Faraday is the memory, the triage engine, and the report.</strong></p><h3>2. Claude and Codex, orchestrated — not babysat</h3><p>FaradAI runs the same agents you already use, as a managed pentest instead of a one-off chat. It’s the <strong>FaradAI Security Scanner</strong> — an agent inside your Faraday instance — and you trigger it with faraday-cli, passing the executor a single JSON of parameters:</p><pre>faraday-cli agent run \<br>  -a &quot;$FARADAI_AGENT_ID&quot; \<br>  -e aipentest \<br>  -w engagement \<br>  -p &#39;{<br>    &quot;TARGET&quot;: &quot;&lt;in-scope host / app&gt;&quot;,<br>    &quot;INSTRUCTION&quot;: &quot;Comprehensive web assessment&quot;,<br>    &quot;MODE&quot;: &quot;dual&quot;,<br>    &quot;ROUNDS&quot;: &quot;5&quot;<br>  }&#39;</pre><p>MODE picks who does the work: claude, codex, or dual. <strong>Dual mode</strong> is the interesting one — Claude and Codex take turns on the same target across ROUNDS, each critiquing and building on the other&#39;s work. Two models with different strengths, adversarially checking each other, is a materially better tester than either alone — and you never had to sit in the loop copy-pasting between two chat windows.</p><h3>3. Everything lands in Faraday — including the other silos</h3><p>However the findings are produced, they’re <strong>pushed to Faraday automatically</strong> at the end of the run, deduplicated and grouped under one command in the workspace. That’s where the LLM output stops being scrollback and becomes a managed vulnerability:</p><ul><li>Ranked by validated exploitability, not raw severity.</li><li>Tracked over time — reopened if it comes back, closed when a retest confirms the fix.</li><li>Exportable as a client-ready report.</li></ul><p>And critically, your <strong>other tools stop being silos</strong>. Import their output into the same workspace so the LLM’s validated exploits sit next to everything else:</p><pre># token auth: seed the config file (faraday-cli auth has no --token flag)<br>printf &#39;auth:\n  faraday_url: %s\n  token: %s\n&#39; &quot;$FARADAY_URL&quot; &quot;$FARADAY_TOKEN&quot; &gt; ~/.faraday-cli.yml<br>faraday-cli tool report nuclei.json    -w engagement<br>faraday-cli tool report burp.xml       -w engagement<br>faraday-cli tool report nessus.nessus  -w engagement<br>faraday-cli tool report semgrep.sarif  -w engagement</pre><p>Faraday speaks the formats your existing stack already emits. Nuclei, Burp, Nessus, semgrep, and a FaradAI run all converge into one deduplicated, prioritized, reportable picture.</p><h3>4. One practical note: provider trusted access</h3><p>Offensive work trips content filters. Frontier providers can refuse, throttle, or block requests that look like exploit development or scanning against real hosts. Before running Claude or Codex against live client targets, enroll in the provider’s trusted-access program:</p><ul><li><strong>OpenAI</strong> (Codex / o* / gpt-*): Enterprise Trusted Access for Cyber.</li><li><strong>Anthropic</strong> (Claude): document your authorized-testing context at the org level; the agent runs offensive work as long as the request carries clear authorization — which FaradAI’s prompts already provide.</li></ul><p>Don’t obfuscate intent to dodge filters. It’s unreliable and it wrecks the audit trail a real engagement depends on. Authorize properly and the agents run clean.</p><h3>5. The takeaway</h3><p>You already trust Claude and Codex to find vulnerabilities. The missing piece was never the intelligence — it was the program around it: memory, dedup, prioritization, reporting, and one place where every tool’s output converges.</p><p>Keep using the agents you like. Point them at Faraday, and turn a brilliant one-off into a security program.</p><p><em>Give your AI pentester a system of record — </em><a href="https://faradaysec.com/"><em>Faraday</em></a><em> →</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9b8ccddd0ded" width="1" height="1" alt=""><hr><p><a href="https://medium.com/faraday/using-claude-or-codex-for-pentesting-give-it-a-system-of-record-9b8ccddd0ded">Using Claude or Codex for Pentesting? Give It a System of Record.</a> was originally published in <a href="https://medium.com/faraday">Faraday</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Hands-On: Claude/Codex Pentest → Faraday]]></title>
            <link>https://medium.com/faraday/hands-on-claude-codex-pentest-faraday-c00adea4e294?source=rss----2b9b7d30652e---4</link>
            <guid isPermaLink="false">https://medium.com/p/c00adea4e294</guid>
            <category><![CDATA[claude]]></category>
            <category><![CDATA[vulnerability-management]]></category>
            <category><![CDATA[pentesting]]></category>
            <category><![CDATA[pentest]]></category>
            <category><![CDATA[xcode]]></category>
            <dc:creator><![CDATA[Francisco Müller Amato]]></dc:creator>
            <pubDate>Wed, 11 Nov 2026 12:51:04 GMT</pubDate>
            <atom:updated>2026-11-11T12:51:05.564Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*KaWkiBT0ZEGRd8LIgMhbbQ.png" /></figure><p>You don’t need a special product to do AI penetration testing. If you have the <strong>Claude Code</strong> CLI or the <strong>Codex</strong> CLI, you already have an autonomous operator that can enumerate a target, find a vulnerability, write a working exploit, and escalate to root. The models are genuinely good at it.</p><p>The problem is what happens next: the findings live in your terminal scrollback. No dedup, no history, no report, and — crucially — no way to see them next to the SAST, SCA, and DevSecOps findings your team already collects.</p><p>This post closes that loop end to end: run a real pentest from the console, get the findings into Faraday, and put AI-validated exploits side by side with every other source of vulnerabilities.</p><h3>1. Run the pentest from the console</h3><p>Both CLIs run in a shell with tools, so give them an attack box (a Kali container or VM with your usual tooling) and an authorized target. The only thing that changes between them is the launch command — the prompt is the same.</p><p><strong>Claude Code:</strong></p><pre>claude &quot;$(cat pentest-prompt.txt)&quot;</pre><p><strong>Codex:</strong></p><pre>codex &quot;$(cat pentest-prompt.txt)&quot;</pre><p>And pentest-prompt.txt — a good kickoff prompt does three things: establishes authorization, sets a concrete goal, and pins the finding format you&#39;ll need later.</p><blockquote><em>You are performing an </em><strong><em>authorized</em></strong><em> penetration test of the HackTheBox machine at </em><em>10.129.1.52 — I own this instance and standard HackTheBox rules apply. Work autonomously using your shell tools. </em><strong><em>Goal:</em></strong><em> capture the user and root flags. Enumerate all services, identify vulnerabilities, and develop and run </em><strong><em>working</em></strong><em> exploits — don&#39;t stop at &quot;possible,&quot; prove it. Escalate privileges to root. Keep a running findings list. For every confirmed vulnerability record: </em><em>host, port, service, name, severity (critical|high|medium|low|informational), description, evidence, cve, references, remediation. A finding only counts once you&#39;ve demonstrated it.</em></blockquote><p>That’s it — the agent takes over from there: recon, exploitation, privilege escalation, iterating on its own failures.</p><blockquote><strong><em>One operational note:</em></strong><em> frontier providers can throttle or refuse requests that look like offensive security. For real engagements, enroll your org in the provider’s trusted-access program (OpenAI’s Enterprise Trusted Access for Cyber; Anthropic’s usage-policy process) and keep your authorization documented. Don’t obfuscate intent to dodge filters — it’s unreliable and wrecks your audit trail.</em></blockquote><h3>2. What a run actually produces</h3><p>Here’s a real chain from a run against HackTheBox’s <strong>Cache</strong> box — the kind of output you get back, condensed:</p><ul><li><strong>Recon</strong> → http://10.129.1.52/jquery/functionality.js leaks hardcoded creds ash:H@v3_fun; vhost enumeration surfaces the OpenEMR-based HMS app on hms.htb.</li><li><strong>Auth bypass + SQLi (CVE-2018–15152, CVE-2019–3964)</strong> → the OpenEMR patient-portal registration flow bypasses authentication; a SQL injection in add_edit_event_user.php (eid param) dumps the users_secure table — the admin hash, cracked offline.</li><li><strong>RCE (CVE-2019–8377)</strong> → an authenticated PHP file-write via manage_site_files.php drops a webshell, giving command execution on the host.</li><li><strong>Cleartext creds in memcached (</strong><strong>:11211)</strong> → get user / get passwd return luffy:0n3_p1ec3; SSH in as luffy → <strong>user flag</strong>.</li><li><strong>Privesc (docker group)</strong> → luffy sits in the docker group, so docker run -v /:/mnt --rm ubuntu cat /mnt/root/root.txt reads the flag as root → <strong>root flag</strong>.</li></ul><p>Multi-step, chained, and every link <em>demonstrated</em> rather than guessed. That’s the value an AI pentester adds over a scanner — but right now it’s trapped in a transcript. Let’s fix that.</p><h3>3. Send the findings to Faraday</h3><p>Point at your Faraday first (self-hosted <strong>Community</strong> or hosted <strong>Personal</strong> — <a href="http://localhost:8787/faraday-pentest-claude-codex-hands-on.html#6-where-the-findings-go-community-or-personal">how to get each is at the end</a>):</p><pre>export FARADAY_URL=&quot;https://scan.apps.faradaysec.com&quot;   # or http://localhost:5985<br>export FARADAY_TOKEN=&quot;&lt;your-api-token&gt;&quot;</pre><p>Now bridge the findings across. Pick whichever fits your workflow.</p><h3>Bridge A — push straight to the Faraday API</h3><p>Faraday ingests findings in one call. Hand the agent the endpoint, token, and payload shape and let it POST — a follow-up prompt in the same session:</p><blockquote><em>Push every confirmed finding to Faraday. </em><em>POST to </em><em>$FARADAY_URL/_api/v3/ws/htb-cache/bulk_create with headers </em><em>Authorization: Token $FARADAY_TOKEN and </em><em>Content-Type: application/json. Group vulnerabilities by host IP. Body shape: </em><em>{&quot;hosts&quot;:[{&quot;ip&quot;:&quot;&lt;ip&gt;&quot;,&quot;hostnames&quot;:[&quot;&lt;host&gt;&quot;],&quot;vulnerabilities&quot;:[{&quot;name&quot;:&quot;...&quot;,&quot;desc&quot;:&quot;...&quot;,&quot;severity&quot;:&quot;high&quot;,&quot;type&quot;:&quot;Vulnerability&quot;}]}]} </em><em>severity ∈ critical|high|medium|low|informational.</em></blockquote><p>The same call by hand, for reference:</p><pre>curl -sS -X POST &quot;$FARADAY_URL/_api/v3/ws/htb-cache/bulk_create&quot; \<br>  -H &quot;Authorization: Token $FARADAY_TOKEN&quot; \<br>  -H &quot;Content-Type: application/json&quot; \<br>  -d &#39;{<br>    &quot;hosts&quot;: [{<br>      &quot;ip&quot;: &quot;10.129.1.52&quot;,<br>      &quot;vulnerabilities&quot;: [{<br>        &quot;name&quot;: &quot;OpenEMR Authenticated RCE (CVE-2019-8377)&quot;,<br>        &quot;desc&quot;: &quot;Auth bypass (CVE-2018-15152) + SQLi (CVE-2019-3964) recover admin creds; authenticated file-write yields RCE; chained to root via cleartext memcached creds and the docker group.&quot;,<br>        &quot;severity&quot;: &quot;critical&quot;,<br>        &quot;type&quot;: &quot;Vulnerability&quot;<br>      }]<br>    }]<br>  }&#39;</pre><h3>Bridge B — emit a reviewable CSV first</h3><p>Prefer a human gate before anything hits Faraday? Have the agent write a CSV, eyeball it, then import:</p><blockquote><em>Output all confirmed findings as CSV with exactly these columns: </em><em>host,name,severity,description,cve,references. One row per vulnerability, </em><em>severity ∈ critical|high|medium|low|informational, quote any field containing a comma. Output only the CSV.</em></blockquote><pre>pip install faraday-cli<br># token auth: seed the config file (faraday-cli auth has no --token flag)<br>printf &#39;auth:\n  faraday_url: %s\n  token: %s\n&#39; &quot;$FARADAY_URL&quot; &quot;$FARADAY_TOKEN&quot; &gt; ~/.faraday-cli.yml<br>faraday-cli tool report findings.csv -w htb-cache</pre><h3>Bridge C — connect via the Faraday MCP</h3><p>If you’ve wired a Faraday MCP server into your agent, skip files and HTTP entirely — the same session that finds the bug files it:</p><blockquote><em>Using the connected Faraday MCP server, create each confirmed finding as a vulnerability in workspace </em><em>htb-cache, setting name, severity, description, and evidence.</em></blockquote><p><em>(Confirm the Faraday MCP server is available in your setup before relying on this bridge.)</em></p><h3>4. See it in Faraday</h3><p>Open the htb-cache workspace. The findings are now deduplicated, ranked by severity, and — this is the part that matters — <strong>permanent</strong>. Re-run the box next month and Faraday reconciles against what&#39;s already there instead of creating duplicates, so you can actually tell whether a fix held.</p><h3>5. The real payoff: AI pentest next to every other vuln source</h3><p>A confirmed exploit chain is powerful, but it’s one lens. Your static scanners see code you never reached at runtime; your SCA sees vulnerable dependencies; your DevSecOps pipeline sees IaC and secrets. Each is noisy and broad; the AI pentest is precise and deep. Their value compounds only when they land in the same place.</p><p>faraday-cli speaks the formats your existing stack already emits — import them into the <strong>same workspace</strong>:</p><pre>faraday-cli tool report semgrep.sarif  -w htb-cache   # SAST<br>faraday-cli tool report trivy.json     -w htb-cache   # SCA / containers<br>faraday-cli tool report nuclei.json    -w htb-cache   # DAST<br>faraday-cli tool report burp.xml       -w htb-cache</pre><p>Now one workspace answers the question no single tool can: <em>of everything we know is wrong, what did an attacker actually prove they could exploit?</em> The SAST flags a hundred sinks; the AI pentest shows which one became RCE. The SCA lists forty vulnerable packages; the pentest shows which one was reachable and chained to root. That correlation — breadth from scanners, proof from the AI pentester, all deduplicated and prioritized — is the difference between a pile of findings and a security program.</p><h3>6. Where the findings go: Community or Personal</h3><p>Both destinations take the exact same commands above — pick where you want the data to live.</p><p><strong>Faraday Community</strong> — free, self-hosted, open-source. Run it on your own box (default http://localhost:5985) and take an API token from your user settings:</p><pre>export FARADAY_URL=&quot;http://localhost:5985&quot;<br>export FARADAY_TOKEN=&quot;&lt;your-community-api-token&gt;&quot;</pre><p><strong>Faraday Personal</strong> — hosted, nothing to run. Create your tenant at <a href="https://scan.faradaysec.com/"><strong>scan.faradaysec.com</strong></a>; your instance lives at <a href="https://scan.apps.faradaysec.com/"><strong>scan.apps.faradaysec.com</strong></a>:</p><pre>export FARADAY_URL=&quot;https://scan.apps.faradaysec.com&quot;<br>export FARADAY_TOKEN=&quot;&lt;your-personal-api-token&gt;&quot;</pre><p>Run the pentest with the console you already use, bridge the findings in, and triage them alongside everything else you know. The operator is the AI; the system of record is Faraday.</p><h3>Try FaradAI</h3><p>Everything here — the autonomous pentest, the exploitability validation, the triage — is <strong>FaradAI</strong>, running inside Faraday. Instead of wiring the flow by hand, let an autonomous offensive agent pentest every target and hand you the prioritized findings in one place.</p><p><strong>👉 Meet FaradAI: </strong><a href="https://faradaysec.com/faradai"><strong>faradaysec.com/faradai</strong></a></p><p><em>Give your AI pentester a home for its findings — </em><a href="https://github.com/infobyte/faraday"><em>Faraday Community</em></a><em> · </em><a href="https://scan.faradaysec.com/"><em>Faraday Personal</em></a><em> →</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c00adea4e294" width="1" height="1" alt=""><hr><p><a href="https://medium.com/faraday/hands-on-claude-codex-pentest-faraday-c00adea4e294">Hands-On: Claude/Codex Pentest → Faraday</a> was originally published in <a href="https://medium.com/faraday">Faraday</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Manos a la obra: Pentest con Claude/Codex → Faraday]]></title>
            <link>https://medium.com/faraday/manos-a-la-obra-pentest-con-claude-codex-faraday-305e9d639c5e?source=rss----2b9b7d30652e---4</link>
            <guid isPermaLink="false">https://medium.com/p/305e9d639c5e</guid>
            <category><![CDATA[pentesting]]></category>
            <category><![CDATA[autonomous]]></category>
            <category><![CDATA[agentic-ai]]></category>
            <category><![CDATA[devsecops]]></category>
            <category><![CDATA[autonomous-pentest]]></category>
            <dc:creator><![CDATA[Francisco Müller Amato]]></dc:creator>
            <pubDate>Wed, 11 Nov 2026 12:50:22 GMT</pubDate>
            <atom:updated>2026-11-11T12:50:23.883Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3krJ_CSF33niJtQl0pi0Dw.png" /></figure><p>No necesitás un producto especial para hacer pentesting con IA. Si tenés la CLI de <strong>Claude Code</strong> o la de <strong>Codex</strong>, ya tenés un operador autónomo que puede enumerar un target, encontrar una vulnerabilidad, escribir un exploit que funciona y escalar a root. Los modelos son genuinamente buenos en esto.</p><p>El problema es lo que pasa después: los hallazgos quedan en el scrollback de tu terminal. Sin dedup, sin historial, sin reporte y — lo más importante — sin manera de verlos al lado de los hallazgos de SAST, SCA y DevSecOps que tu equipo ya junta.</p><p>Este post cierra ese loop de punta a punta: corrés un pentest real desde la consola, metés los hallazgos en Faraday, y ponés los exploits validados por IA al lado de todas las demás fuentes de vulnerabilidades.</p><h3>1. Corré el pentest desde la consola</h3><p>Las dos CLIs corren en una shell con herramientas, así que dales una attack box (un contenedor o VM de Kali con tu toolkit de siempre) y un target autorizado. Lo único que cambia entre una y otra es el comando de arranque — el prompt es el mismo.</p><p><strong>Claude Code:</strong></p><pre>claude &quot;$(cat pentest-prompt.txt)&quot;</pre><p><strong>Codex:</strong></p><pre>codex &quot;$(cat pentest-prompt.txt)&quot;</pre><p>Y pentest-prompt.txt — un buen prompt de arranque hace tres cosas: deja sentada la autorización, fija un objetivo concreto y clava el formato de hallazgo que vas a necesitar después.</p><blockquote><em>You are performing an </em><strong><em>authorized</em></strong><em> penetration test of the HackTheBox machine at </em><em>10.129.1.52 — I own this instance and standard HackTheBox rules apply. Work autonomously using your shell tools. </em><strong><em>Goal:</em></strong><em> capture the user and root flags. Enumerate all services, identify vulnerabilities, and develop and run </em><strong><em>working</em></strong><em> exploits — don&#39;t stop at &quot;possible,&quot; prove it. Escalate privileges to root. Keep a running findings list. For every confirmed vulnerability record: </em><em>host, port, service, name, severity (critical|high|medium|low|informational), description, evidence, cve, references, remediation. A finding only counts once you&#39;ve demonstrated it.</em></blockquote><p><em>(Dejamos el prompt en inglés porque es el que recibe el agente; funciona igual si lo escribís en español.)</em></p><p>Listo — el agente toma la posta desde ahí: recon, explotación, escalada de privilegios, iterando sobre sus propios errores.</p><blockquote><strong><em>Una nota operativa:</em></strong><em> los proveedores frontier pueden throttlear o rechazar requests que parecen actividad ofensiva. Para engagements reales, sumá a tu organización al programa de trusted-access del proveedor (Enterprise Trusted Access for Cyber de OpenAI; el proceso de usage-policy de Anthropic) y mantené documentada la autorización. No ofusques la intención para esquivar filtros — no es confiable y te arruina el audit trail.</em></blockquote><h3>2. Qué produce realmente una corrida</h3><p>Acá va una cadena real de una corrida contra la máquina <strong>Cache</strong> de HackTheBox — el tipo de salida que te devuelve, condensada:</p><ul><li><strong>Recon</strong> → http://10.129.1.52/jquery/functionality.js filtra credenciales hardcodeadas ash:H@v3_fun; la enumeración de vhosts saca a la luz la app HMS basada en OpenEMR en hms.htb.</li><li><strong>Bypass de auth + SQLi (CVE-2018–15152, CVE-2019–3964)</strong> → el flujo de registro del portal de pacientes de OpenEMR saltea la autenticación; una SQL injection en add_edit_event_user.php (param eid) dumpea la tabla users_secure — el hash del admin, crackeado offline.</li><li><strong>RCE (CVE-2019–8377)</strong> → un file-write PHP autenticado vía manage_site_files.php deja una webshell y da ejecución de comandos en el host.</li><li><strong>Credenciales en texto plano en memcached (</strong><strong>:11211)</strong> → get user / get passwd devuelven luffy:0n3_p1ec3; SSH como luffy → <strong>user flag</strong>.</li><li><strong>Privesc (grupo docker)</strong> → luffy está en el grupo docker, así que docker run -v /:/mnt --rm ubuntu cat /mnt/root/root.txt lee la flag como root → <strong>root flag</strong>.</li></ul><p>Multi-paso, encadenado, y cada eslabón <em>demostrado</em> en vez de supuesto. Ese es el valor que un pentester con IA suma por encima de un scanner — pero ahora mismo está atrapado en un transcript. Arreglemos eso.</p><h3>3. Mandá los hallazgos a Faraday</h3><p>Primero apuntá a tu Faraday (self-hosted <strong>Community</strong> o hosteado <strong>Personal</strong> — <a href="http://localhost:8787/faraday-pentest-claude-codex-hands-on-es.html#6-d%C3%B3nde-van-los-hallazgos-community-o-personal">cómo obtener cada uno está al final</a>):</p><pre>export FARADAY_URL=&quot;https://scan.apps.faradaysec.com&quot;   # o http://localhost:5985<br>export FARADAY_TOKEN=&quot;&lt;tu-api-token&gt;&quot;</pre><p>Ahora hacé el puente con los hallazgos. Elegí el que te sirva.</p><h3>Puente A — push directo a la API de Faraday</h3><p>Faraday ingesta hallazgos en una sola llamada. Pasale al agente el endpoint, el token y la forma del payload, y dejá que haga el POST — un prompt de seguimiento en la misma sesión:</p><blockquote><em>Push every confirmed finding to Faraday. </em><em>POST to </em><em>$FARADAY_URL/_api/v3/ws/htb-cache/bulk_create with headers </em><em>Authorization: Token $FARADAY_TOKEN and </em><em>Content-Type: application/json. Group vulnerabilities by host IP. Body shape: </em><em>{&quot;hosts&quot;:[{&quot;ip&quot;:&quot;&lt;ip&gt;&quot;,&quot;hostnames&quot;:[&quot;&lt;host&gt;&quot;],&quot;vulnerabilities&quot;:[{&quot;name&quot;:&quot;...&quot;,&quot;desc&quot;:&quot;...&quot;,&quot;severity&quot;:&quot;high&quot;,&quot;type&quot;:&quot;Vulnerability&quot;}]}]} </em><em>severity ∈ critical|high|medium|low|informational.</em></blockquote><p>La misma llamada a mano, de referencia:</p><pre>curl -sS -X POST &quot;$FARADAY_URL/_api/v3/ws/htb-cache/bulk_create&quot; \<br>  -H &quot;Authorization: Token $FARADAY_TOKEN&quot; \<br>  -H &quot;Content-Type: application/json&quot; \<br>  -d &#39;{<br>    &quot;hosts&quot;: [{<br>      &quot;ip&quot;: &quot;10.129.1.52&quot;,<br>      &quot;vulnerabilities&quot;: [{<br>        &quot;name&quot;: &quot;OpenEMR Authenticated RCE (CVE-2019-8377)&quot;,<br>        &quot;desc&quot;: &quot;Auth bypass (CVE-2018-15152) + SQLi (CVE-2019-3964) recover admin creds; authenticated file-write yields RCE; chained to root via cleartext memcached creds and the docker group.&quot;,<br>        &quot;severity&quot;: &quot;critical&quot;,<br>        &quot;type&quot;: &quot;Vulnerability&quot;<br>      }]<br>    }]<br>  }&#39;</pre><h3>Puente B — generá un CSV revisable primero</h3><p>¿Preferís un gate humano antes de que algo toque Faraday? Que el agente escriba un CSV, lo mirás, y después lo importás:</p><blockquote><em>Output all confirmed findings as CSV with exactly these columns: </em><em>host,name,severity,description,cve,references. One row per vulnerability, </em><em>severity ∈ critical|high|medium|low|informational, quote any field containing a comma. Output only the CSV.</em></blockquote><pre>pip install faraday-cli<br># auth por token: sembrá el archivo de config (faraday-cli auth no tiene flag --token)<br>printf &#39;auth:\n  faraday_url: %s\n  token: %s\n&#39; &quot;$FARADAY_URL&quot; &quot;$FARADAY_TOKEN&quot; &gt; ~/.faraday-cli.yml<br>faraday-cli tool report findings.csv -w htb-cache</pre><h3>Puente C — conectá vía el MCP de Faraday</h3><p>Si tenés un servidor MCP de Faraday enganchado a tu agente, saltate archivos y HTTP por completo — la misma sesión que encuentra el bug lo registra:</p><blockquote><em>Using the connected Faraday MCP server, create each confirmed finding as a vulnerability in workspace </em><em>htb-cache, setting name, severity, description, and evidence.</em></blockquote><p><em>(Confirmá que el servidor MCP de Faraday está disponible en tu setup antes de apoyarte en este puente.)</em></p><h3>4. Velo en Faraday</h3><p>Abrí el workspace htb-cache. Los hallazgos ahora están deduplicados, ordenados por severidad y —esta es la parte que importa— <strong>permanentes</strong>. Volvé a correr la máquina el mes que viene y Faraday reconcilia contra lo que ya está en vez de crear duplicados, así podés saber de verdad si un fix aguantó.</p><h3>5. El verdadero payoff: el pentest con IA al lado de toda otra fuente de vulns</h3><p>Una cadena de exploit confirmada es potente, pero es una sola lente. Tus scanners estáticos ven código que nunca alcanzaste en runtime; tu SCA ve dependencias vulnerables; tu pipeline de DevSecOps ve IaC y secrets. Cada uno es ruidoso y amplio; el pentest con IA es preciso y profundo. Su valor se potencia solo cuando aterrizan en el mismo lugar.</p><p>faraday-cli habla los formatos que tu stack ya emite — importalos al <strong>mismo workspace</strong>:</p><pre>faraday-cli tool report semgrep.sarif  -w htb-cache   # SAST<br>faraday-cli tool report trivy.json     -w htb-cache   # SCA / containers<br>faraday-cli tool report nuclei.json    -w htb-cache   # DAST<br>faraday-cli tool report burp.xml       -w htb-cache</pre><p>Ahora un solo workspace responde la pregunta que ninguna herramienta sola puede: <em>de todo lo que sabemos que está mal, ¿qué probó un atacante que podía explotar de verdad?</em> El SAST marca cien sinks; el pentest con IA muestra cuál se volvió RCE. El SCA lista cuarenta paquetes vulnerables; el pentest muestra cuál era alcanzable y se encadenó hasta root. Esa correlación — amplitud de los scanners, prueba del pentester con IA, todo deduplicado y priorizado — es la diferencia entre una pila de hallazgos y un programa de seguridad.</p><h3>6. Dónde van los hallazgos: Community o Personal</h3><p>Los dos destinos toman exactamente los mismos comandos de arriba — elegí dónde querés que viva la data.</p><p><strong>Faraday Community</strong> — gratis, self-hosted, open source. Correlo en tu propia máquina (default http://localhost:5985) y sacá un API token desde la config de tu usuario:</p><pre>export FARADAY_URL=&quot;http://localhost:5985&quot;<br>export FARADAY_TOKEN=&quot;&lt;tu-community-api-token&gt;&quot;</pre><p><strong>Faraday Personal</strong> — hosteado, nada que correr. Creá tu tenant en <a href="https://scan.faradaysec.com/"><strong>scan.faradaysec.com</strong></a>; tu instancia vive en <a href="https://scan.apps.faradaysec.com/"><strong>scan.apps.faradaysec.com</strong></a>:</p><pre>export FARADAY_URL=&quot;https://scan.apps.faradaysec.com&quot;<br>export FARADAY_TOKEN=&quot;&lt;tu-personal-api-token&gt;&quot;</pre><p>Corré el pentest con la consola que ya usás, hacé el puente de los hallazgos, y triageálos junto a todo lo demás que sabés. El operador es la IA; el sistema de registro es Faraday.</p><h3>Probá FaradAI</h3><p>Todo esto — el pentest autónomo, la validación de explotabilidad y el triage — es <strong>FaradAI</strong>, corriendo dentro de Faraday. En vez de armar el flujo a mano, dejá que un agente ofensivo autónomo pentestee cada target y te deje los hallazgos priorizados en un solo lugar.</p><p><strong>👉 Conocé FaradAI: </strong><a href="https://faradaysec.com/faradai"><strong>faradaysec.com/faradai</strong></a></p><p><em>Dale a tu pentester con IA un hogar para sus hallazgos — </em><a href="https://github.com/infobyte/faraday"><em>Faraday Community</em></a><em> · </em><a href="https://scan.faradaysec.com/"><em>Faraday Personal</em></a><em> →</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=305e9d639c5e" width="1" height="1" alt=""><hr><p><a href="https://medium.com/faraday/manos-a-la-obra-pentest-con-claude-codex-faraday-305e9d639c5e">Manos a la obra: Pentest con Claude/Codex → Faraday</a> was originally published in <a href="https://medium.com/faraday">Faraday</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[From Scan to Patch on AWS — Security Agent + FaradAI, End to End]]></title>
            <link>https://medium.com/faraday/from-scan-to-patch-on-aws-security-agent-faradai-end-to-end-a3eca1ce62e1?source=rss----2b9b7d30652e---4</link>
            <guid isPermaLink="false">https://medium.com/p/a3eca1ce62e1</guid>
            <category><![CDATA[triage]]></category>
            <category><![CDATA[vulnerability]]></category>
            <category><![CDATA[cve]]></category>
            <category><![CDATA[patch-management]]></category>
            <category><![CDATA[aws]]></category>
            <dc:creator><![CDATA[Francisco Müller Amato]]></dc:creator>
            <pubDate>Wed, 11 Nov 2026 12:49:06 GMT</pubDate>
            <atom:updated>2026-11-11T12:49:07.442Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*go7vbZLbGKiMHqoLrBFcdw.png" /></figure><p>Scanners have never been the bottleneck. Finding vulnerabilities is the easy part now — an agent can surface more exploitable issues in an afternoon than a team can triage in a week. The bottleneck is everything <em>after</em> the finding: validating it’s real, prioritizing it, and actually fixing it fast enough to hold an SLA while the backlog grows.</p><p>This post is about closing that loop on AWS end to end: <strong>AWS’s Security Agent finds it, FaradAI runs its own autonomous pentest and then proves, chains and triages every finding, and AWS Systems Manager patches it</strong> — with the prevention steps that stop it coming back. And because AWS Security Agent ships with a <strong>2-month free trial (up to 400 task-hours/month)</strong>, you can run the entire loop before spending a dollar (see <a href="http://localhost:8787/faraday-aws-security-agent-scan-triage-patch.html#8-cost--and-how-to-run-the-whole-loop-for-free">§8</a>).</p><h3>1. Two agentic layers, then a fix</h3><p>The old model was one scanner throwing a wall of CVEs over the fence. The new model is a pipeline of agents, each doing one thing well:</p><pre>AWS Security Agent scans the AWS environment<br>   ↓   findings imported via Faraday&#39;s aws_security_agent connector<br>FaradAI runs its OWN autonomous pentest + validates and chains the Security Agent findings<br>   ↓   proves real exploitability with working PoCs<br>FaradAI triage: enrich, dedup, prioritize, SLA-tag — one workspace<br>   ↓<br>AWS Systems Manager applies the fix (patch / automation runbook)<br>   ↓<br>Prevent: key hygiene, IMDSv2, IaC — so it doesn&#39;t regress</pre><p>Why two offensive layers instead of one? They’re complementary — and they cross-check each other:</p><ul><li><strong>AWS Security Agent</strong> — Native visibility into the AWS environment; surfaces <em>exploitable</em> vulnerabilities with far less noise than a traditional scanner (Inspector/Tenable-style)</li><li><strong>FaradAI</strong> — Runs its <strong>own autonomous pentest</strong> against the target <em>and</em> takes the Security Agent findings further — chaining them, proving exploitability with working PoCs — then does the triage: enrichment, screenshots, deduplication, consolidation into one workspace</li></ul><p>The Security Agent tells you what’s wrong on AWS. FaradAI <em>attacks it itself</em> — running an autonomous pentest — and tells you which findings (its own and the Security Agent’s) an attacker can actually <em>use</em>, turning each into a prioritized, evidence-backed, ticketable item.</p><h3>2. Connect the AWS infra — the right way</h3><p>Before anything scans, it needs access to the environment. The single most important choice here is <strong>how you grant it</strong> — because static AWS access keys are one of the most common root causes of real incidents.</p><ul><li><strong>Use an IAM role with temporary credentials</strong>, not long-lived access keys. Assume-role / OIDC federation for the scanner and for FaradAI’s runners; no static secrets sitting in a config.</li><li><strong>Scope it tightly</strong> — read/enumerate for scanning, and a separate, narrowly-scoped role for the remediation step (more on that below).</li><li><strong>Authorize the scope explicitly.</strong> When scanning domains, validate ownership with a DNS record so the activity is clearly authorized — both for your own audit trail and for AWS Trust &amp; Safety when third-party hosts are in play.</li></ul><h3>3. Pull Security Agent findings in — the connector</h3><p>You don’t scrape a dashboard or export a CSV. Faraday ships an official <strong>aws_security_agent</strong> connector (a dispatcher executor) that talks straight to AWS&#39;s Security Agent service — the boto3 securityagent client — and imports its results as Faraday vulnerabilities. It walks the service the way the API is laid out (ListAgentSpaces → ListPentests → ListPentestJobsForPentest → BatchGetFindings + ListDiscoveredEndpoints) and maps each finding, with its riskLevel, into the workspace.</p><p>Crucially, it authenticates the way Section 2 argued for: <strong>the connector uses the dispatcher’s IAM role by default</strong> — you leave the AWS key fields blank and let the container’s role (or STS AssumeRole) supply short-lived credentials. No static access keys anywhere in the loop.</p><p>Run it like any Faraday agent:</p><pre>faraday-cli agent run \<br>  -a &quot;$DISPATCHER_AGENT_ID&quot; \<br>  -e aws_security_agent \<br>  -w aws-prod-&lt;date&gt; \<br>  -p &#39;{<br>    &quot;AWS_REGION&quot;: &quot;us-east-1&quot;,<br>    &quot;AWS_SECURITY_AGENT_AGENT_SPACE&quot;: &quot;as-&lt;uuid&gt;&quot;,<br>    &quot;AWS_SECURITY_AGENT_MODE&quot;: &quot;findings,endpoints&quot;<br>  }&#39;</pre><p>Leave AWS_SECURITY_AGENT_AGENT_SPACE off to sweep every agent space in the account, or pin AWS_SECURITY_AGENT_PENTEST_ID / _JOB_ID to import one run. The Security Agent&#39;s findings are now Faraday vulns, in a workspace, ready for the next layer.</p><h3>4. Autonomous pentest + triage with FaradAI</h3><p>FaradAI runs as a Faraday <strong>Cloud Agent</strong> against the same targets, in <strong>two executions</strong> — first the pentest, then the triage. Cloud Agents are triggered over the REST API with curl (they aren&#39;t driven by faraday-cli); grab each agent&#39;s id from <strong>Cloud Agents</strong> in the UI or GET /_api/v3/cloud_agents.</p><h3>First execution — the autonomous pentest</h3><p>It does two things in one pass: an <strong>autonomous pentest of its own</strong> (recon → attack → chain → prove), <em>and</em> validation of what the Security Agent already surfaced:</p><pre>curl -sS -X POST &quot;$FARADAY_URL/_api/v3/cloud_agents/$FARADAI_AGENT_ID/run&quot; \<br>  -H &quot;Authorization: Token $FARADAY_TOKEN&quot; \<br>  -H &quot;Content-Type: application/json&quot; \<br>  -d &#39;{<br>    &quot;args&quot;: {<br>      &quot;TARGET&quot;: &quot;&lt;in-scope AWS host / app&gt;&quot;,<br>      &quot;INSTRUCTION&quot;: &quot;Run a full autonomous pentest of the target; also validate and chain the Security Agent findings already in the workspace; prove exploitability with working PoCs&quot;,<br>      &quot;MODE&quot;: &quot;Dual&quot;,<br>      &quot;ROUNDS&quot;: 40,<br>      &quot;DRY_RUN&quot;: false,<br>      &quot;TIME_LIMIT_SECONDS&quot;: 86400<br>    },<br>    &quot;workspaces&quot;: [&quot;aws-prod-&lt;date&gt;&quot;]<br>  }&#39; -w &quot;\nHTTP %{http_code}\n&quot;</pre><p>The call is fire-and-forget: it returns immediately (HTTP 200 with a command_id and runner id) while the pentest runs in the background. FaradAI works its rounds — with shared memory across passes and human-in-the-loop steering when you want it — finding new attack paths on its own while corroborating the Security Agent&#39;s, and pushing every <em>proven</em> finding into the workspace.</p><h3>Second execution — triage the whole workspace</h3><p>A separate call points FaradAI’s <strong>triage</strong> Cloud Agent at the <em>same workspace</em>, so it enriches, deduplicates and prioritizes <strong>everything together</strong> — the Security Agent findings and FaradAI’s own pentest results:</p><pre>curl -sS -X POST &quot;$FARADAY_URL/_api/v3/cloud_agents/$FARADAI_TRIAGE_AGENT_ID/run&quot; \<br>  -H &quot;Authorization: Token $FARADAY_TOKEN&quot; \<br>  -H &quot;Content-Type: application/json&quot; \<br>  -d &#39;{<br>    &quot;args&quot;: {<br>      &quot;WORKSPACE_NAME&quot;: &quot;aws-prod-&lt;date&gt;&quot;,<br>      &quot;MODE&quot;: &quot;Dual&quot;,<br>      &quot;PATCHING_MODE&quot;: &quot;dry-run&quot;<br>    },<br>    &quot;workspaces&quot;: [&quot;aws-prod-&lt;date&gt;&quot;]<br>  }&#39; -w &quot;\nHTTP %{http_code}\n&quot;</pre><p>WORKSPACE_NAME is what gets triaged. Triage adds screenshot evidence, dedupes across both sources, and ranks by validated exploitability — turning a pile of findings into a prioritized queue of <em>proven</em> issues, each with the evidence a fix owner needs. PATCHING_MODE stays <strong>dry-run</strong> here because on AWS we apply the actual fix with Systems Manager (next section); flip it to apply only if you want FaradAI itself to drive the remediation.</p><h3>5. One workspace: next to the DevSecOps findings you already collect</h3><p>The Security Agent findings and FaradAI’s pentest now live in one workspace — but your team is already producing more: SAST on the source, SCA on dependencies, secret and IaC scanning in CI, CSPM on the account. Those belong in the <em>same</em> place, not in four separate dashboards.</p><p>faraday-cli speaks the formats your stack already emits, so import them into the same workspace:</p><pre>faraday-cli tool report semgrep.sarif  -w aws-prod-&lt;date&gt;   # SAST<br>faraday-cli tool report trivy.json     -w aws-prod-&lt;date&gt;   # SCA / containers / IaC<br>faraday-cli tool report gitleaks.json  -w aws-prod-&lt;date&gt;   # secrets<br>faraday-cli tool report prowler.json   -w aws-prod-&lt;date&gt;   # AWS posture (CSPM)</pre><p>Now one workspace answers the question no single tool can: <em>of everything we know is wrong — across AWS, the code, and the dependencies — what did an attacker actually prove they could exploit?</em> Prowler flags a hundred posture issues; FaradAI shows which one chained to an IAM-role takeover. The SCA lists forty vulnerable packages; the pentest shows which one was reachable and led to RCE. That correlation — <strong>breadth from the scanners, proof from FaradAI and the Security Agent, all deduplicated and prioritized</strong> — is what turns a pile of findings into a security program, and it’s what feeds the patch step next.</p><h3>6. Triage → patch with Systems Manager</h3><p>This is the step that actually moves the SLA needle. FaradAI’s triage output drives <strong>AWS Systems Manager</strong>, which already has the reach to change the fleet. Two flavors, matched to the finding type:</p><p><strong>OS / package CVEs → Patch Manager.</strong> For a vulnerable package on EC2, run the managed patch baseline against the affected instances:</p><pre>aws ssm send-command \<br>  --document-name &quot;AWS-RunPatchBaseline&quot; \<br>  --parameters &quot;Operation=Install&quot; \<br>  --targets &quot;Key=InstanceIds,Values=i-0abc123,i-0def456&quot;</pre><p><strong>Misconfigurations → Automation runbooks.</strong> For the exposure-class findings FaradAI validates, trigger an SSM Automation document (or a direct API call) that fixes the specific condition:</p><pre># Enforce IMDSv2 on an instance that leaked role creds via SSRF<br>aws ec2 modify-instance-metadata-options \<br>  --instance-id i-0abc123 --http-tokens required --http-put-response-hop-limit 1</pre><pre># Block public access on an exposed bucket<br>aws s3api put-public-access-block --bucket acme-prod-backups \<br>  --public-access-block-configuration \<br>  BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true</pre><p>The remediation role stays separate and minimally scoped, so the thing that <em>finds</em> problems is never the thing that can <em>change</em> production. FaradAI proposes the fix and the evidence; the SSM action applies it against the exact resources named in the finding; a re-scan confirms it’s closed. That’s the automated slice of patching that keeps SLAs intact as volume climbs.</p><blockquote><strong><em>Automate with a guardrail.</em></strong><em> Auto-apply the safe, well-understood fixes (patch baselines, public-access blocks, IMDSv2); gate the riskier ones behind human approval. The point isn’t to remove people — it’s to stop them being the bottleneck for the obvious 80%.</em></blockquote><h3>7. Prevent, don’t just cure</h3><p>Patching the instance is the cure. Prevention is what stops the same finding reappearing on the next deploy:</p><ul><li><strong>Kill static access keys.</strong> Rotate what exists, move to temporary credentials and roles. This is the highest-leverage prevention on AWS, full stop.</li><li><strong>Enforce IMDSv2 at launch</strong> (in the launch template / AMI), not just reactively per instance.</li><li><strong>Push the fix into IaC.</strong> For anything that came from Terraform or CloudFormation, land the remediation as a pull request so the corrected state is the <em>default</em> next time — cure becomes prevention.</li></ul><h3>8. Cost — and how to run the whole loop for free</h3><p>You can prove this entire workflow at <strong>zero cost</strong>, because AWS Security Agent (on-demand penetration testing) ships with a <strong>2-month free trial for new customers</strong>:</p><ul><li><strong>Up to 400 task-hours of pentesting per month</strong>, free, for the first <strong>2 months</strong>.</li><li><strong>Design reviews</strong> (up to <strong>200/month</strong>) and <strong>code reviews</strong> (up to <strong>1,000/month</strong>) at <strong>no additional cost</strong>.</li><li>After the trial — or once you exceed the limit — it’s <strong>$50 USD per task-hour</strong>.</li></ul><p>400 task-hours a month is a lot of runway: more than enough to stand up the vulnerable lab below, run <strong>Security Agent + FaradAI’s autonomous pentest + triage + Systems Manager</strong> end to end, and tune the loop before you spend anything. FaradAI’s own pentest and triage run on your Faraday instance (Personal), so the AWS trial covers the cloud-side scanning while you validate the full workflow.</p><p><em>(Pricing per AWS as of publication — confirm the current numbers on the </em><a href="https://aws.amazon.com/security-agent/pricing/"><em>AWS Security Agent pricing page</em></a><em> before you plan around it.)</em></p><h3>Try FaradAI</h3><p>Everything here — the autonomous pentest, the exploitability validation, the triage — is <strong>FaradAI</strong>, running inside Faraday. Instead of wiring the flow by hand, let an autonomous offensive agent pentest every target and hand you the prioritized findings in one place.</p><p><strong>👉 Meet FaradAI: </strong><a href="https://faradaysec.com/faradai"><strong>faradaysec.com/faradai</strong></a></p><p><em>Give your AI pentester a home for its findings — </em><a href="https://github.com/infobyte/faraday"><em>Faraday Community</em></a><em> · </em><a href="https://scan.faradaysec.com/"><em>Faraday Personal</em></a><em> →</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a3eca1ce62e1" width="1" height="1" alt=""><hr><p><a href="https://medium.com/faraday/from-scan-to-patch-on-aws-security-agent-faradai-end-to-end-a3eca1ce62e1">From Scan to Patch on AWS — Security Agent + FaradAI, End to End</a> was originally published in <a href="https://medium.com/faraday">Faraday</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[11 años de ciberseguridad: Kali y Faraday. Crecer en comunidad, crecer en ciberseguridad]]></title>
            <link>https://medium.com/faraday/11-a%C3%B1os-de-ciberseguridad-kali-y-faraday-crecer-en-comunidad-crecer-en-ciberseguridad-154632301868?source=rss----2b9b7d30652e---4</link>
            <guid isPermaLink="false">https://medium.com/p/154632301868</guid>
            <category><![CDATA[open-source]]></category>
            <category><![CDATA[kali-linux]]></category>
            <category><![CDATA[cybersecurity]]></category>
            <category><![CDATA[pentester]]></category>
            <dc:creator><![CDATA[Faraday Team]]></dc:creator>
            <pubDate>Tue, 27 May 2025 13:39:31 GMT</pubDate>
            <atom:updated>2025-05-27T14:19:58.119Z</atom:updated>
            <content:encoded><![CDATA[<p>Por <strong>Federico Kirschbaum,</strong> CEO de Faraday</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*GSTvUY01DiDs8dM8" /></figure><p><em>Faraday es una empresa de ciberseguridad que nació como una herramienta open source. Hoy, once años después, ayudamos a cientos de equipos en todo el mundo con nuestras versiones gratuitas y comerciales. </em><strong><em>Pero en sus inicios, Faraday era solo un proyecto libre, accesible para cualquier persona interesada en mejorar sus procesos de seguridad. En ese camino, Kali Linux fue clave.</em></strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1019/0*U9uR1s1ITjtEn81k" /></figure><p><em>Kali es una distribución de Linux que le facilitó a muchas personas dar no sólo los primeros pasos en ciberseguridad sino también en Linux. ¿Qué significa? Que era una distribución pensada y focalizada en tener un conjunto de herramientas curadas y seleccionadas por profesionales de la seguridad en un solo lugar. Lo que facilitaba mucho las tareas de seguridad. Al haber un sin número de herramientas muy específicas, muchas veces la instalación se hacía difícil. Y mucha gente se frustraba en el proceso. </em><strong><em>Kali profesionaliza esta curaduría de herramientas y genera una plataforma accesible y gratuita para cualquier persona interesada en seguridad, acompañando tanto a quienes recién empiezan como a profesionales con años de experiencia.</em></strong></p><p><em>En general, ya existían un sinfín de herramientas. Lo que hizo Kali fue unificarlas en una sola plataforma. Para quienes trabajaban con seguridad Wi-Fi o necesitaban módulos de kernel específicos, Kali se convirtió en el denominador común. Era el lugar donde todas esas herramientas estaban preinstaladas, organizadas y listas para usar.</em><strong><em> Podías encontrar desde herramientas clásicas como Metasploit, hasta otras de red team como Empire, o utilidades web como DirBuster. Y entre ellas, muchas veces, estaba Faraday.</em></strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*Nihh-RA7aZ0ziy29" /></figure><p><em>Nuestro camino con Kali siempre fue muy interesante. Ser incluidos como una de las herramientas curadas por el equipo de Offensive Security fue una validación enorme. </em><strong><em>Significó que nuestro trabajo había alcanzado un nivel de madurez y podía ser útil para una comunidad global. De pronto, estábamos en la barra de iconos, y mucha gente nos descubría desde ahí.</em></strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*f_a_gQ2JUk5oPt0k" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1013/0*qpEOpyTVBkWha3F2" /></figure><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fwww.youtube.com%2Fembed%2FklXsGeiM_9E%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fwww.youtube.com%2Fwatch%3Fv%3DklXsGeiM_9E&amp;image=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fi.ytimg.com%2Fvi%2FklXsGeiM_9E%2Fhqdefault.jpg&amp;type=text%2Fhtml&amp;schema=youtube" width="640" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/949bc78104fb685bd3b2ceb6c838edd5/href">https://medium.com/media/949bc78104fb685bd3b2ceb6c838edd5/href</a></iframe><p><em>Fue una etapa de mucha exposición: de un día para el otro, cientos (y luego miles) de personas empezaron a usar Faraday. Para un equipo chico como el nuestro, eso fue tanto una alegría como un desafío. Tuvimos que robustecer nuestros procesos, automatizar pruebas, mejorar el build, y asegurar compatibilidad con cada nueva versión de Kali. </em><strong><em>Ese feedback masivo nos ayudó a evolucionar mucho más rápido.</em></strong></p><p><em>También nos permitió estar en contacto con otros desarrolladores de herramientas como nosotros. A veces, al presentar Faraday, alguien nos decía: “Ah, el que está en Kali”. Y sí, eso abría puertas, </em><strong><em>nos conectaba con gente con intereses y valores similares.</em></strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1015/0*SCZO2v_pUyUm4fnk" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*rQR5eaTWx_7GI8a8" /></figure><p><em>En los últimos años, decidimos invertir más en nuestra versión Community. Sumamos funcionalidades que antes eran exclusivas del producto comercial, como los agentes para automatizar el trabajo del pentester. </em><strong><em>Porque creemos sinceramente en el valor del open source: en dar acceso sin barreras, en que cualquiera pueda aprender, experimentar, mejorar y contribuir.</em></strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*FIOs4fc0Ib7g8oDN" /></figure><p><strong><em>El open source es parte de nuestro ADN. </em></strong><em>Creemos en la transparencia, en que el usuario pueda ver cómo funciona una herramienta, modificarla y adaptarla a sus necesidades. Muchas personas en nuestra comunidad crecieron profesionalmente gracias al open source, y poder aportar de vuelta a ese ecosistema es una satisfacción enorme.</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*ML05gYaeOSg4nU4o" /></figure><p><em>Trabajar con Kali nos exigió subir la vara, mejorar nuestros procesos de desarrollo, estar siempre atentos a los cambios, mantener el contacto con su equipo y con la comunidad. A lo largo del tiempo, hemos tenido todo tipo de experiencias: desde picos de descargas inesperados tras una nueva versión, hasta colaboraciones con desarrolladores de herramientas icónicas.</em></p><p><em>Kali fue y es una puerta de entrada para miles de personas a la ciberseguridad. Que Faraday forme parte de esa experiencia, que alguien nos descubra mientras estudia para una certificación o configura su primer laboratorio, es algo que nos llena de orgullo.</em></p><p><em>Once años después, seguimos con la misma convicción. Y seguimos agradecidos de formar parte de una comunidad que valora lo abierto, lo compartido y lo colaborativo. </em><strong><em>Kali es un punto de encuentro para una forma de hacer seguridad que compartimos y en la que creemos profundamente.</em></strong></p><p><a href="https://faradaysec.com/community-v4/"><strong>Puede visitar nuestro proyecto open source.</strong></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=154632301868" width="1" height="1" alt=""><hr><p><a href="https://medium.com/faraday/11-a%C3%B1os-de-ciberseguridad-kali-y-faraday-crecer-en-comunidad-crecer-en-ciberseguridad-154632301868">11 años de ciberseguridad: Kali y Faraday. Crecer en comunidad, crecer en ciberseguridad</a> was originally published in <a href="https://medium.com/faraday">Faraday</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Automatización y Pentesting: Usa la IA y herramientas Open-Source]]></title>
            <link>https://medium.com/faraday/automatizaci%C3%B3n-y-pentesting-usa-la-ia-y-herramientas-open-source-c62febab70b3?source=rss----2b9b7d30652e---4</link>
            <guid isPermaLink="false">https://medium.com/p/c62febab70b3</guid>
            <category><![CDATA[automatización]]></category>
            <category><![CDATA[open-source]]></category>
            <category><![CDATA[inteligencia-artificial]]></category>
            <category><![CDATA[pentesting]]></category>
            <category><![CDATA[código-abierto]]></category>
            <dc:creator><![CDATA[Faraday Team]]></dc:creator>
            <pubDate>Tue, 13 May 2025 17:21:55 GMT</pubDate>
            <atom:updated>2025-05-13T19:44:38.435Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*VHwxJscnFmF8_xUYlQ9mLQ.png" /></figure><p>Este artículo tiene como objetivo combinar la automatización y metodologías de <em>pentesting</em> de forma práctica, usando inteligencia artificial y múltiples herramientas <em>opensource</em>. Más que un simple repaso de comandos, se trata de compartir una metodología replicable, flexible y accesible.</p><p>El enfoque que queremos mostrar es como con las herramientas que hoy en día son públicas y con ayuda de modelos de IA es posible mejorar procesos automáticos donde no se requiera tiempo manual y dedicarlo justamente a aspectos de explotación y, por que no, algo más divertido.</p><h3>El enfoque del atacante</h3><p>Lo ideal en esta primera parte, es pensar como un atacante. Partamos desde una situación típica: tenemos el dominio de una empresa, por ejemplo <em>evilcorp.com</em>, y desde ahí, empecemos a ampliar nuestra superficie de ataque:</p><ul><li>Reconocimiento de subdominios</li><li>Análisis de puertos</li><li>Análisis de servicios</li><li>Búsqueda de vulnerabilidades</li><li>Reporte de lo identificado</li></ul><p>El orden no es casual. Primero se amplía la superficie de ataque, después se avanza en técnicas más activas, y finalmente se busca vulnerabilidades concretas que puedan ser explotadas.</p><h3>Expansión de superficie de ataque</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/768/1*axAs8OwOSRI07Z7eQ2wwBA.png" /></figure><p>Cuando comenzamos un nuevo proyecto, solemos estar a ciegas. Por eso, existen muchas herramientas que nos ayudan a hacer los primeros descubrimientos y nosotros usaremos <a href="https://github.com/tomnomnom/assetfinder">assetfinder</a>:</p><p>Sigamos con el ejemplo de antes (tomando a nuestra compañía evilcorp), y entendamos que no solo tenemos que limitarlos a evilcorp.com, sino contemplar toda su superficie (subdominios, servicios, direcciones IP, registros DNS). El objetivo es ampliar lo máximo posible la superficie de ataque antes de pasar a etapas más activas.</p><p>Hay un sinfín de herramientas que podemos utilizar como por ejemplo bbot, subfinder, sublist3r entre otras, que resultan ideales para proyectos blackbox (donde tengo poco conocimiento del objetivo). Por ejemplo, bbot tiene la particularidad de retroalimentarse: va encontrando subdominios, luego IPs, y sigue expandiendo automáticamente la información disponible.</p><p>En esta demo nos vamos a centrar en assetfinder y usaremos el parámetro –subs-only, lo que rápidamente arroja una larga lista de subdominios. Acá es donde podemos hacer nuestra primera observación:</p><p>Si bien hay nuevos subdominios, notamos que existen varios duplicados o registros que no resuelven correctamente. Por eso, es clave filtrar y quedarse solo con lo que realmente sirve.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fwww.youtube.com%2Fembed%2FtwoNjfB1gFk%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fwww.youtube.com%2Fwatch%3Fv%3DtwoNjfB1gFk&amp;image=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fi.ytimg.com%2Fvi%2FtwoNjfB1gFk%2Fhqdefault.jpg&amp;type=text%2Fhtml&amp;schema=youtube" width="640" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/62983982bc8ac5f9e517c6e1a3dfd3d9/href">https://medium.com/media/62983982bc8ac5f9e517c6e1a3dfd3d9/href</a></iframe><h3>Escaneo de puertos</h3><p>Una vez identificados los subdominios, el siguiente paso es analizar qué servicios están expuestos a través de ellos. Tal como vimos antes existen varias herramientas que podemos usar::</p><ul><li><a href="https://github.com/robertdavidgraham/masscan">masscan</a></li><li><a href="https://github.com/projectdiscovery/naabu">naabu</a></li><li><a href="https://nmap.org/">nmap</a></li></ul><p>Nosotros en nuestro caso vamos a usar Nmap con los parámetros:</p><ul><li>–top-ports 100 (solo los 100 puertos más conocidos) de puertos más comunes</li><li>-Pn (para que no solo haga pruebas por ICMP/<em>ping</em>)</li><li>-iL [hosts.txt] (donde le pasamos una lista de <em>hosts</em> separados por saltos de línea)</li><li>open (para ver solo resultados de puertos abiertos)</li></ul><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fwww.youtube.com%2Fembed%2FgzCgrtrIcks%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fwww.youtube.com%2Fwatch%3Fv%3DgzCgrtrIcks&amp;image=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fi.ytimg.com%2Fvi%2FgzCgrtrIcks%2Fhqdefault.jpg&amp;type=text%2Fhtml&amp;schema=youtube" width="640" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/d0cede58ab6913f99db635e3cb73ea89/href">https://medium.com/media/d0cede58ab6913f99db635e3cb73ea89/href</a></iframe><p>Nuevamente, como vemos en el video, tenemos errores que nos indican algunos puntos de mejora:</p><ul><li>Varios dominios no resolvieron.</li><li>Quizás sea mejor utilizar IPs en lugar de subdominios.</li></ul><h3>Entender qué estamos analizando</h3><p>Un paso útil, por lo menos en esta etapa, es limitar la cantidad de falsos positivos al momento de querer analizar alguna aplicación web, donde podemos utilizar por ejemplo <a href="https://github.com/projectdiscovery/httpx">httpx</a> para validar si la URL que tenemos responde a un puerto web (80/443). Esto validará que las aplicaciones sean reales, y que en caso de querer analizarla sepamos con anticipación que el servicio está corriendo sin problemas.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fwww.youtube.com%2Fembed%2FmuVV0SYZxQE%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fwww.youtube.com%2Fwatch%3Fv%3DmuVV0SYZxQE&amp;image=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fi.ytimg.com%2Fvi%2FmuVV0SYZxQE%2Fhqdefault.jpg&amp;type=text%2Fhtml&amp;schema=youtube" width="640" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/a85f9118618d04b498410f037ed7ebda/href">https://medium.com/media/a85f9118618d04b498410f037ed7ebda/href</a></iframe><p>También, podríamos plantear un escenario en el que nuestro <em>scanner</em> de puertos reciba una entrada de direcciones IP directamente, ya que en algunos casos no logra resolver o analizar los dominios asociados. Para eso, podemos usar un <em>oneliner</em> como el que mostramos debajo y donde a partir de un archivo txt de subdominios, podemos resolver las direcciones IPs que resuelven (para luego ser pasadas por ejemplo a nmap).</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fwww.youtube.com%2Fembed%2FNWF1To98S0I%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fwww.youtube.com%2Fwatch%3Fv%3DNWF1To98S0I&amp;image=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fi.ytimg.com%2Fvi%2FNWF1To98S0I%2Fhqdefault.jpg&amp;type=text%2Fhtml&amp;schema=youtube" width="640" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/0d5f996c4cfcb0cd64f6ecb244343757/href">https://medium.com/media/0d5f996c4cfcb0cd64f6ecb244343757/href</a></iframe><h3>¿Y ahora?</h3><p>Ya teniendo una lista depurada de IPs, dominios, subdominios validados y confirmados, podemos pasar a la etapa de análisis de vulnerabilidades, donde de nuevo, muchas herramientas <em>opensource</em> nos pueden ayudar:</p><ul><li><a href="https://www.openvas.org/">OpenVAS</a> (mas centrado en infraestructura)</li><li><a href="https://github.com/projectdiscovery/nuclei">nuclei</a></li><li><a href="https://github.com/sullo/nikto">nikto </a>(mas centrado en web)</li></ul><p>En nuestro caso, vamos a centrarnos por nuclei por la versatilidad que tiene, ya que permite ejecutar muchas pruebas (y variadas) en poco tiempo, utilizando <em>templates</em> que detectan desde configuraciones incorrectas de seguridad como vulnerabilidades específicas como paneles expuestos, versiones obsoletas de <em>software</em> o <em>endpoints</em> con respuestas interesantes (por ejemplo, <em>backups</em> expuestos).</p><p>Ahora bien, el problema aparece cuando el escaneo genera cientos de findings. ¿Cómo priorizamos? ¿Cómo transformamos eso en algo útil para el equipo de seguridad o para la gerencia? Acá es donde la inteligencia artificial empieza a cumplir un rol clave. Utilizando modelos como GPT — ya sea a través de servicios como OpenAI o ejecutando modelos locales como los que ofrece Ollama — podemos analizar esos resultados, agruparlos por criticidad, generar explicaciones legibles para no técnicos e incluso proponer posibles soluciones.</p><p>Esto no es teoría: hoy ya se están generando informes automáticos que convierten 200 findings técnicos en un resumen de dos páginas, con riesgos priorizados, impacto estimado y un lenguaje entendible para áreas de negocio. Incluso se pueden producir dos versiones del mismo reporte: una técnica para el equipo de infraestructura, y otra ejecutiva para el CISO o el board.</p><p>El verdadero poder está en la automatización del flujo completo: desde la entrada con una lista de dominios, pasando por la resolución de IPs, el escaneo con Nuclei, el análisis de resultados con IA, hasta la generación automática del reporte final. Todo esto puede integrarse con scripts en Bash o Python, tareas programadas con cron, pipelines que corren al recibir una nueva lista de targets o tras una alerta en el SIEM. Lo importante no es solo que sea automático, sino que esté pensado para escalar sin perder contexto.</p><p>Y como toda buena automatización, siempre hay un espacio para la revisión manual. Porque la IA puede sugerir, pero quien decide es el analista. Lo valioso no es solo el código o las herramientas, sino cómo diseñamos el flujo, cómo elegimos qué automatizar y dónde seguimos aportando criterio humano.</p><p>Automatizar no es reemplazar al analista, es permitirle enfocarse en lo que realmente importa. ¿Qué parte de tu flujo podrías automatizar mañana mismo?</p><p><a href="https://youtu.be/QKAkNY5jAhM">Mirá la charla completa acá</a></p><h3>Gabriel Franco</h3><p><a href="https://x.com/gaaabifranco">Gabriel Franco</a>, quien lidera el área de servicios de seguridad en <a href="https://faradaysec.com/">Faraday</a>, cuenta que su formación viene del mundo técnico, específicamente desde el desarrollo. Su primer acercamiento al pentesting fue justamente desde ese ángulo: crear scripts y automatizaciones para ejecutar herramientas de análisis y ahorrar tiempo, con el foco puesto en obtener resultados más rápido y de forma más efectiva.</p><p>Con el tiempo, fue tomando roles de mayor gestión, pero sigue involucrándose en tareas técnicas, sobre todo cuando encuentra algo que se puede mejorar o automatizar. Explica que dentro del equipo siempre están atentos a los patrones que se repiten entre distintos proyectos. Cuando detectan tareas que se reiteran, buscan automatizarlas para concentrarse en lo que realmente agrega valor.</p><p><em>Trainings, red teaming services, or continuous scanning?</em></p><p><em>We’ve got you covered. 🚀⚡</em></p><p><a href="https://faradaysec.com/get-started/">Reach out for more information.</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c62febab70b3" width="1" height="1" alt=""><hr><p><a href="https://medium.com/faraday/automatizaci%C3%B3n-y-pentesting-usa-la-ia-y-herramientas-open-source-c62febab70b3">Automatización y Pentesting: Usa la IA y herramientas Open-Source</a> was originally published in <a href="https://medium.com/faraday">Faraday</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Case Study: Unlocking a Car Using Doggie]]></title>
            <link>https://medium.com/faraday/case-study-unlocking-a-car-using-doggie-168af9c162a7?source=rss----2b9b7d30652e---4</link>
            <guid isPermaLink="false">https://medium.com/p/168af9c162a7</guid>
            <category><![CDATA[cybersecurity]]></category>
            <category><![CDATA[open-source-software]]></category>
            <category><![CDATA[open-source]]></category>
            <category><![CDATA[hardware-hacking]]></category>
            <category><![CDATA[car-hacking]]></category>
            <dc:creator><![CDATA[Faraday Team]]></dc:creator>
            <pubDate>Tue, 25 Mar 2025 18:48:45 GMT</pubDate>
            <atom:updated>2025-05-16T14:13:51.101Z</atom:updated>
            <content:encoded><![CDATA[<h3>Unlocking a Car Using Doggie</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*AV8jV714xkdx43E5dIU2uA.png" /></figure><p>In our last two posts, we introduced our open-source and modular CAN Bus — USB adapter called Doggie and shared our experience at the <strong>Car Hacking Village</strong> of the <strong>H2HC conference,</strong> where we used Doggie to show attendees the inner workings of CAN Bus Networks.</p><p>This post will explore a practical use case to demonstrate Doggie’s power in automotive security research. Imagine you need to unlock a vehicle by sending the correct sequence of CAN messages. With Doggie and tools like <strong>Python-can</strong>, <strong>can-utils</strong>, or custom scripts, you can sniff unlocking messages, replay them, and even experiment with manipulating the system for security analysis.</p><p>In this case study, we’ll walk through how to use Doggie to sniff and inject messages into the CAN Bus of a <strong>2010 Jeep Liberty</strong>. The setup consists of <strong>Doggie with the RP2040 and MCP2515 configuration</strong>, which provides the interface between the car’s CAN Bus and your computer.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/859/0*5adUXnnIppBwZRcJ" /></figure><h3>Step 0: Introduction to CAN Bus and Message Structure</h3><p>Before diving into the practical case study, it’s important to understand the basic structure of a <strong>CAN Bus</strong> frame. A <strong>CAN frame</strong> typically consists of several components:</p><ol><li><strong>Start of Frame</strong> — Marks the beginning of the message.</li><li><strong>Identifier (ID)</strong> — A unique ID for the message, which determines its priority in the bus.</li><li><strong>Control Field</strong> — Includes the length of the data field.</li><li><strong>Data Field</strong> — Contains the actual message data, which can range from 0 to 8 bytes.</li><li><strong>CRC</strong> — A checksum used to detect errors in the message.</li><li><strong>ACK</strong> — The acknowledgment field is where the receiving nodes confirm the successful reception of the message.</li><li><strong>End of Frame</strong> — Marks the end of the message.</li></ol><p>For this post, we won’t discuss the intricacies of how the CAN Bus works at the electrical level or explore its protocol in depth. Instead, we will focus on the practical use of <strong>Doggie</strong> for sniffing, analyzing, and injecting messages, leaving detailed electronics and hardware explanations aside. Our goal is to demonstrate how to use Doggie to interact with CAN Bus networks. For a more profound exploration of the CAN Bus protocol, we recommend consulting <a href="https://www.csselectronics.com/pages/can-bus-simple-intro-tutorial">additional resources</a> on the subject.</p><h3>Step 1: Research and Documentation</h3><p>Before jumping into the physical connections, the first step is to gather relevant documentation about the car, especially the “Repair Manual” and the “Wiring Diagram.” These documents may not be perfectly detailed, but they provide crucial information on the car’s electrical system, modules, and communication buses. In this case, we found a helpful diagram that outlines the key CAN buses in the Jeep Liberty.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/543/0*95OHxur2Qe4QL7rz" /></figure><p>As shown in the image, the car contains three primary CAN buses:</p><ul><li><strong>CAN C Bus</strong></li><li><strong>Diagnostic CAN C Bus</strong></li><li><strong>CAN Interior Bus</strong></li></ul><p>Each bus operates at its own speed and communicates with different modules. A key piece of information here is that all the buses connect to the <strong>TIPM</strong> (Totally Integrated Power Module), also known as the <strong>Common Gateway for Communication (CGW)</strong>. This module acts as a gateway to manage communication between different buses, ensuring that messages from OBD2 diagnostic systems are isolated from other buses, such as those handling door locks or brakes.</p><h3>Step 2: Finding the Right Bus and Module</h3><p>We focus here on the <strong>Driver Door Module (DDM)</strong> and <strong>Passenger Door Module (PDM)</strong>. According to the diagram, both modules are connected to the <strong>CAN Interior Bus</strong>. To access this bus, we needed to locate an appropriate connection point. We identified that the <strong>seat memory module</strong> is also connected to this bus and conveniently located under the seat.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*5mtgPV5gd202jhiR" /></figure><p>We then used the <strong>Repair Manual</strong> to identify CAN High and CAN Low wires. The diagram showed that the <strong>white and orange cable</strong> is CAN Low, and the <strong>white and gray cable</strong> is CAN High.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*GD7ZMaj55k0cXOEO" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*ITwg-Qr8zIlXYdlW" /></figure><p>To validate our connection further, we used an oscilloscope to check the signals on the bus. We connected the oscilloscope to the CAN High and CAN Low lines to ensure the signals were correct for CAN Bus communication.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*bypi9Chiz5B6blDA" /></figure><h3>Step 3: Setting Up Doggie</h3><p>Once the hardware connections were in place, we connected Doggie to the CAN bus and the computer. First, we installed the <strong>can-utils</strong> package on Linux:</p><p>$ sudo apt-get install can-utils</p><p>Next, we set up the CAN interface for Doggie. We know from the diagram that the bus operates at <strong>125kbps</strong>, so we used the following command to start the <strong>slcan daemon</strong> and initialize the CAN interface:</p><p># Start the slcan daemon and set up the interface</p><p>$ sudo slcand -s4 /dev/ttyUSB0 can0 &amp;&amp; sudo ifconfig can0 up</p><p>After this setup, we had a CAN interface named <strong>can0</strong> that was ready to interact with the car’s bus.</p><h3>Step 4: Sniffing CAN Messages</h3><p>We used the <strong>cansniffer</strong> tool to start sniffing messages on the bus. This tool helps identify interesting messages by highlighting changes in data. This is especially useful during live interactions, such as locking or unlocking the doors.</p><p>$ cansniffer -c can0</p><p>Once we started sniffing, we triggered events, such as locking and unlocking the doors. In the video, a new message appears with the ID <strong>0x3ED</strong> every time we press the lock button. This tells us that <strong>0x3ED</strong> is the ID responsible for door lock/unlock commands.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fwww.youtube.com%2Fembed%2FxV858ytgiGg%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fwww.youtube.com%2Fwatch%3Fv%3DxV858ytgiGg&amp;image=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fi.ytimg.com%2Fvi%2FxV858ytgiGg%2Fhqdefault.jpg&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/04e7ae90db3e95d1315eb83f5e388af5/href">https://medium.com/media/04e7ae90db3e95d1315eb83f5e388af5/href</a></iframe><h3>Step 5: Interpreting the Messages</h3><p>While <strong>cansniffer</strong> shows data differences, it’s not always the best tool for analyzing message details because it overwrites previous information. Instead, we used <strong>candump</strong> with an <strong>ID filter</strong> to focus on the specific messages relevant to locking and unlocking.</p><p>$ candump can0,0x3ED</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/289/0*U2ebddv8nncEmQsD" /></figure><p>We observed three distinct messages:</p><ul><li><strong>0x20</strong>: Sent periodically, likely a liveness message.</li><li><strong>0x30</strong>: Sent when locking the doors.</li><li><strong>0x28</strong>: Sent when unlocking the doors.</li></ul><p>Once we understood the message structure, we could proceed to inject messages.</p><h3>Step 6: Injecting Messages</h3><p>To lock or unlock the doors, we used <strong>cansend</strong> to inject the corresponding message. Here’s how we sent the unlock command:</p><p>$ cansend can0 3ED#28</p><p>In the demo video, we can see the doors lock and unlock based on the messages we sent.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fwww.youtube.com%2Fembed%2FBwRYmeJpC8M%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fwww.youtube.com%2Fshorts%2FBwRYmeJpC8M%3Ffeature%3Dshare&amp;image=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fi.ytimg.com%2Fvi%2FBwRYmeJpC8M%2Fhq2.jpg&amp;type=text%2Fhtml&amp;schema=youtube" width="640" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/d7d8d020c4012e9985edf6ffcac85cd2/href">https://medium.com/media/d7d8d020c4012e9985edf6ffcac85cd2/href</a></iframe><p><a href="https://github.com/infobyte/doggie">Doggie</a> represents Faraday’s commitment to empowering the community with tools that democratize automotive cybersecurity research. Whether you’re a seasoned professional or a newcomer to car hacking, Doggie provides a low-cost, versatile solution to explore CAN Bus networks and beyond.</p><p><a href="https://github.com/infobyte/doggie">Check out the project on GitHub!</a></p><p>Check out the rest of the car hacking articles:</p><p><a href="https://medium.com/faraday/doggie-a-must-have-open-source-tool-for-car-hacking-and-automotive-security-f4e29b9f3f4d">PART 1</a></p><p><a href="https://medium.com/faraday/our-experience-at-the-car-hacking-village-h2hc-d03968758eec">PART 2</a></p><p>Trainings, red teaming services, or continuous scanning? We’ve got you covered. 🚀⚡</p><p><a href="https://faradaysec.com/get-started/">Reach out for more information.</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=168af9c162a7" width="1" height="1" alt=""><hr><p><a href="https://medium.com/faraday/case-study-unlocking-a-car-using-doggie-168af9c162a7">Case Study: Unlocking a Car Using Doggie</a> was originally published in <a href="https://medium.com/faraday">Faraday</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Our Experience at the Car Hacking Village H2HC]]></title>
            <link>https://medium.com/faraday/our-experience-at-the-car-hacking-village-h2hc-d03968758eec?source=rss----2b9b7d30652e---4</link>
            <guid isPermaLink="false">https://medium.com/p/d03968758eec</guid>
            <category><![CDATA[car-hacking]]></category>
            <category><![CDATA[iot]]></category>
            <category><![CDATA[hardware-hacking]]></category>
            <category><![CDATA[cybersecurity]]></category>
            <dc:creator><![CDATA[Faraday Team]]></dc:creator>
            <pubDate>Tue, 25 Mar 2025 18:18:18 GMT</pubDate>
            <atom:updated>2025-03-25T18:23:49.628Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*vciSHt22ERve74ke" /></figure><p><a href="https://faradaysec.com/introducing-doggie-your-modular-can-bus-usb-adapter/">Our previous post</a> introduced Doggie, an open-source and modular CAN Bus — USB adapter designed to simplify working with CAN Bus networks, enabling secure exploration and development in the automotive space.</p><p>Last month, Doggie took the stage at the <strong>Car Hacking Village</strong> during the <a href="https://www.h2hc.com.br/"><strong>H2HC conference</strong></a> on December 13th and 14th in São Paulo. This exciting village featured various presentations and workshops exploring the world of automotive security. The Faraday team showcased Doggie in a uniquely interactive way, allowing attendees to dive into CAN Bus exploration hands-on.</p><p>To create an engaging experience, we developed a simulated environment with a working CAN Bus network, enabling participants to interact using Doggie or their own hardware. This environment consisted of two main components:</p><ol><li><strong>A PC running the CARLA simulator</strong><br> <a href="https://github.com/carla-simulator/carla">CARLA</a> is a highly realistic car simulator often used to train and test autonomous vehicle algorithms. In our setup, CARLA connected to the CAN Bus via Doggie.</li><li><strong>A Raspberry Pi with a game controller</strong><br>The Raspberry Pi acted as a bridge between the controller and the CAN Bus. It interpreted button presses on the controller, translated them into control commands, and used Doggie to send them over the CAN Bus.</li><li>The communication flow worked like this:</li></ol><ul><li>A user pressed buttons on the controller, which the Raspberry Pi interpreted as commands.</li><li>The Raspberry Pi sent these commands over the CAN Bus via Doggie.</li><li>The PC received the commands, interacted with the CARLA simulator, and executed the corresponding actions (e.g., throttle, steering, opening doors, or switching lights).</li></ul><p>In short, we created a <strong>CAN Bus controller</strong> and a <strong>CAN Bus interface for the CARLA simulator</strong> and seamlessly connected them.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*eaHtaUF80wJ_zp81" /></figure><p>Participants had the opportunity to control the simulated car using the controller while also experimenting with the CAN Bus. They could:</p><ul><li>Reverse engineer messages on the bus.</li><li>Inject commands into the bus to manipulate the simulator.</li><li>Cause the car to crash while another person was driving.</li><li>Unlock the simulated car’s doors.</li><li>Explore countless other creative scenarios.</li></ul><p>We deliberately kept the messages simple to ensure that even beginners could follow along, understand the basics of CAN Bus communication, and learn with us in real-time.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*OVs_eBBkGYuhsvus" /></figure><p>The setup was a huge success, attracting many visitors eager to learn, chat, and play. From reverse engineering enthusiasts to curious beginners, everyone left with a deeper understanding of CAN Bus and Doggie’s potential.</p><p>For those who couldn’t attend, <a href="https://github.com/infobyte/doggie">we’ve made the entire setup available online!</a> You can find the repository with all the scripts and tools you need to recreate the experience yourself.</p><p>Trainings, Vulnerability Management, Red Teaming Services, or Continuous Scanning? We’ve got you covered. 🚀⚡</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d03968758eec" width="1" height="1" alt=""><hr><p><a href="https://medium.com/faraday/our-experience-at-the-car-hacking-village-h2hc-d03968758eec">Our Experience at the Car Hacking Village H2HC</a> was originally published in <a href="https://medium.com/faraday">Faraday</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Doggie: A Must-Have Open Source Tool for Car Hacking and Automotive Security]]></title>
            <link>https://medium.com/faraday/doggie-a-must-have-open-source-tool-for-car-hacking-and-automotive-security-f4e29b9f3f4d?source=rss----2b9b7d30652e---4</link>
            <guid isPermaLink="false">https://medium.com/p/f4e29b9f3f4d</guid>
            <category><![CDATA[cybersecurity]]></category>
            <category><![CDATA[open-source]]></category>
            <category><![CDATA[hacking]]></category>
            <category><![CDATA[car-hacking]]></category>
            <dc:creator><![CDATA[Faraday Team]]></dc:creator>
            <pubDate>Mon, 10 Mar 2025 16:06:21 GMT</pubDate>
            <atom:updated>2025-03-10T16:05:48.357Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*paL_GcaTUk5zzhAOx76dxg.png" /></figure><h3>Introduction</h3><p>At Faraday, we are passionate about advancing the field of cybersecurity. One of our key areas of focus is <strong>Car Hacking Research</strong>. Since the early 2000s, vehicles have evolved from purely electro-mechanical machines to complex computer networks on wheels. Modern cars contain over 100 million lines of code — more than some commercial aircraft. As vehicles become increasingly connected and reliant on electronic systems, understanding and securing these systems is more relevant than ever.</p><p>To make automotive cybersecurity research more accessible and affordable, we developed <a href="https://github.com/infobyte/doggie"><strong>Doggie</strong></a>, an open-source and modular CAN Bus — USB adapter. Whether you’re a hobbyist, researcher, or professional, Doggie is designed to simplify working with CAN Bus networks (Controller Area Network), enabling secure exploration and development in the automotive space.</p><h3>The Importance of CAN Bus in Vehicles</h3><p>Before delving into Doggie, let’s briefly discuss the <a href="https://www.csselectronics.com/pages/can-bus-simple-intro-tutorial"><strong>Controller Area Network (CAN) Bus</strong></a>, the backbone of modern vehicle communication. CAN Bus can connect critical electronic control units (ECUs) for the engine, brakes, transmission, and even some comfort, information display, and entertainment systems. This network enables seamless communication between these systems, ensuring the vehicle operates efficiently and safely.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*PJLanMV0_pJ1Ryjb" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/300/0*J0lG-IS-KOjxOhsi" /></figure><p>For cybersecurity professionals and enthusiasts, CAN Bus represents a critical area for exploration. <strong><em>It offers insights into how vehicles work and the opportunity to secure them against potential threats.</em></strong></p><h3>About Doggie</h3><p>Doggie is a modular, flexible, open-source adapter that bridges the gap between a computer and a CAN Bus network using USB. Built with affordability and adaptability in mind.</p><p>Its compatibility with <a href="https://docs.kernel.org/networking/can.html"><strong>SocketCAN</strong></a><strong> </strong>on Linux, <a href="https://python-can.readthedocs.io/en/stable/"><strong>Python-can</strong></a><strong>, </strong>and other <em>slcan-compatible</em> software ensures seamless integration with existing CAN Bus analysis, sniffing, and injection tools. Doggie also supports ISO-TP, making it perfect for standard and advanced CAN Bus applications. Whether running diagnostics, experimenting with custom in-car functionalities, or performing penetration tests, Doggie provides the tools you need to succeed.</p><p>The project emphasizes modularity, allowing users to select from various hardware configurations with different microcontrollers and CAN transceivers. This makes it accessible and cost-effective. Doggie adapts to your needs whether you’re using a microcontroller’s built-in CAN controller or an MCP2515 (SPI to CAN) module.</p><p>You can create your own DIY Doggie only by choosing a microcontroller, a CAN interface, and a Serial interface combination. Six possible configurations are available today, and more hardware support is coming!</p><p><strong>Microcontrollers:</strong></p><ul><li>Raspberry Pi Pico (RP2040)</li><li>STM32F103C8 (Bluepill)</li><li>ESP32</li></ul><p><strong>CAN Controllers:</strong></p><ul><li>Built-in CAN controllers</li><li>MCP2515 (SPI to CAN)</li></ul><p><strong>USB/Serial Connectivity:</strong></p><ul><li>Microcontroller USB (native USB support)</li><li>UART with USB Bridge</li></ul><p>Doggie’s modular nature and the fact that it was written purely in Rust with hardware abstraction by design make developing new hardware support easy and fast. Thus, if the hardware you already own or prefer is not supported yet, consider adding support for them. It should take a short time and little effort.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*ntKTWvkQq5lC2JKB" /></figure><h3>Practical Application: Using Doggie in Real-World Scenarios</h3><p>Doggie isn’t just a tool for research. It’s a versatile companion for real-world automotive applications. Here are some practical scenarios where Doggie can shine:</p><h3>1. Vehicle Diagnostics</h3><p>Accessing real-time diagnostic information, including engine parameters, sensor readings, and fault codes. Doggie enables you to interact with the vehicle like a professional-grade diagnostic tool.</p><h3>2. Customization</h3><p>Adding new functionalities to your vehicle by sending custom CAN messages. From controlling actuators to integrating new sensors, the possibilities are endless.</p><h3>3. Security Assessments</h3><p>Leveraging Doggie to perform penetration testing and vulnerability analysis on vehicle networks. Identify weak points and explore ways to secure critical systems.</p><h3>Future Work</h3><p>At Faraday, we are committed to expanding Doggie’s capabilities to meet the growing needs of the automotive security research community. Looking ahead, our plans include:</p><ol><li>Broader Hardware Support<br>Doggie’s modularity is one of its defining strengths, and we aim to make it even more versatile. We are working on extending support to additional microcontrollers, ensuring that users can leverage various platforms for their projects.</li><li>Wireless Capabilities<br>We plan to incorporate wireless communication features to enhance Doggie’s flexibility and ease of use. By leveraging the Bluetooth and Wi-Fi capabilities of microcontrollers like the ESP32, Doggie will enable researchers to interact wirelessly with CAN Bus networks, opening up new possibilities for remote diagnostics, testing, and experimentation.</li><li>A Dedicated CAN Bus Hacking Edition<br>We are also developing a new version of Doggie specifically tailored to the needs of automotive security researchers. This edition will include built-in features to facilitate various CAN Bus attacks, providing researchers with a powerful toolset for studying and exploiting vulnerabilities.</li></ol><p>These enhancements will continue to make Doggie an essential tool for anyone looking to explore, understand, and secure CAN Bus systems. We’re excited about the possibilities and can’t wait to share these new developments with the community.</p><h3>Conclusion</h3><p>Doggie represents Faraday’s commitment to empowering the community with tools that democratize automotive cybersecurity research. Whether you’re a seasoned professional or a newcomer to car hacking, Doggie provides a low-cost, versatile solution to explore CAN Bus networks and beyond.</p><h3>Get Involved</h3><p>Doggie is an open-source project, and we invite you to join our growing community. Visit <a href="https://github.com/infobyte/doggie">Doggie</a> to learn more, access the source code, and contribute to the future of automotive security.</p><p>Together, let’s drive innovation and secure the roads of tomorrow.</p><p>Trainings, red teaming services, or continuous scanning? We’ve got you covered. 🚀⚡</p><p><a href="https://faradaysec.com/get-started/">Reach out for more information.</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f4e29b9f3f4d" width="1" height="1" alt=""><hr><p><a href="https://medium.com/faraday/doggie-a-must-have-open-source-tool-for-car-hacking-and-automotive-security-f4e29b9f3f4d">Doggie: A Must-Have Open Source Tool for Car Hacking and Automotive Security</a> was originally published in <a href="https://medium.com/faraday">Faraday</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>