<?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:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Black Lantern Security (BLSOPS): Products and Tools]]></title><description><![CDATA[New Products, Open Source Tools, Utilities, and Techniques ]]></description><link>https://blog.blacklanternsecurity.com/s/products-tools-utilities</link><image><url>https://substackcdn.com/image/fetch/$s_!yKGW!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F206e5fa0-2d64-49f3-8848-8b61962b97d1_865x865.png</url><title>Black Lantern Security (BLSOPS): Products and Tools</title><link>https://blog.blacklanternsecurity.com/s/products-tools-utilities</link></image><generator>Substack</generator><lastBuildDate>Mon, 06 Apr 2026 06:42:26 GMT</lastBuildDate><atom:link href="https://blog.blacklanternsecurity.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Black Lantern Security (BLSOPS)]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[blacklanternsecurity@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[blacklanternsecurity@substack.com]]></itunes:email><itunes:name><![CDATA[Micheal Reski]]></itunes:name></itunes:owner><itunes:author><![CDATA[Micheal Reski]]></itunes:author><googleplay:owner><![CDATA[blacklanternsecurity@substack.com]]></googleplay:owner><googleplay:email><![CDATA[blacklanternsecurity@substack.com]]></googleplay:email><googleplay:author><![CDATA[Micheal Reski]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[red-run 2.0: Agent Teams]]></title><description><![CDATA[A Claude Code Agent Dashboard]]></description><link>https://blog.blacklanternsecurity.com/p/red-run-20-agent-teams</link><guid isPermaLink="false">https://blog.blacklanternsecurity.com/p/red-run-20-agent-teams</guid><dc:creator><![CDATA[Kevin O'Riley]]></dc:creator><pubDate>Mon, 30 Mar 2026 16:51:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!2WuH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31e77b56-38c2-484b-b48b-462b80529039_1536x677.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2WuH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31e77b56-38c2-484b-b48b-462b80529039_1536x677.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2WuH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31e77b56-38c2-484b-b48b-462b80529039_1536x677.png 424w, https://substackcdn.com/image/fetch/$s_!2WuH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31e77b56-38c2-484b-b48b-462b80529039_1536x677.png 848w, https://substackcdn.com/image/fetch/$s_!2WuH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31e77b56-38c2-484b-b48b-462b80529039_1536x677.png 1272w, https://substackcdn.com/image/fetch/$s_!2WuH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31e77b56-38c2-484b-b48b-462b80529039_1536x677.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2WuH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31e77b56-38c2-484b-b48b-462b80529039_1536x677.png" width="1456" height="642" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/31e77b56-38c2-484b-b48b-462b80529039_1536x677.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:642,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1752724,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.blacklanternsecurity.com/i/190732833?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31e77b56-38c2-484b-b48b-462b80529039_1536x677.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!2WuH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31e77b56-38c2-484b-b48b-462b80529039_1536x677.png 424w, https://substackcdn.com/image/fetch/$s_!2WuH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31e77b56-38c2-484b-b48b-462b80529039_1536x677.png 848w, https://substackcdn.com/image/fetch/$s_!2WuH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31e77b56-38c2-484b-b48b-462b80529039_1536x677.png 1272w, https://substackcdn.com/image/fetch/$s_!2WuH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31e77b56-38c2-484b-b48b-462b80529039_1536x677.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><a href="https://github.com/blacklanternsecurity/red-run">red-run</a>, with its default <code>red-run-ctf</code> skill, turns Claude Code into a &#8220;Hack the Box&#8221;-style capture-the-flag (CTF) solver. It is designed to establish access on network targets in lab environments and escalate privileges to administrator or root. It accomplishes its objectives using tools and methodology that could just as well be deployed against <em>live</em> targets in the real-world. red-run agents carry out attacks that are illegal without authorization.</p><p>With that in mind, if agentic LLMs are ever to execute offensive cyber actions in sensitive environments, their operators must have a high degree of confidence that their agents will behave responsibly and remain within scope boundaries. LLMs make unpredictable decisions as their context burdens increase, even with carefully crafted prompts. That strange reality - one in which the model &#8220;knows&#8221; everything, but has the judgment of an unsupervised intern - is the unfortunate nature of a nondeterministic system. Unpredictability does not mesh well <em>at all</em> with some of the environments we face in the field as offensive security operators. </p><p>Erica L. Shoemate of <a href="https://www.leadwithenstrategy.ai/">The EN Strategy Group</a> said recently on <a href="https://www.thecyberwire.com/podcasts/threat-vector/108/notes">The Threat Vector</a> podcast regarding agentic LLMs: &#8220;we&#8217;re not just automating tasks - we&#8217;re automating judgment.&#8221;  </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1_B7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a09479-d58f-4db0-9c03-0e95cd1e70a8_452x498.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1_B7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a09479-d58f-4db0-9c03-0e95cd1e70a8_452x498.gif 424w, https://substackcdn.com/image/fetch/$s_!1_B7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a09479-d58f-4db0-9c03-0e95cd1e70a8_452x498.gif 848w, https://substackcdn.com/image/fetch/$s_!1_B7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a09479-d58f-4db0-9c03-0e95cd1e70a8_452x498.gif 1272w, https://substackcdn.com/image/fetch/$s_!1_B7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a09479-d58f-4db0-9c03-0e95cd1e70a8_452x498.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1_B7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a09479-d58f-4db0-9c03-0e95cd1e70a8_452x498.gif" width="286" height="315.1061946902655" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c0a09479-d58f-4db0-9c03-0e95cd1e70a8_452x498.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:498,&quot;width&quot;:452,&quot;resizeWidth&quot;:286,&quot;bytes&quot;:2328597,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.blacklanternsecurity.com/i/190732833?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a09479-d58f-4db0-9c03-0e95cd1e70a8_452x498.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1_B7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a09479-d58f-4db0-9c03-0e95cd1e70a8_452x498.gif 424w, https://substackcdn.com/image/fetch/$s_!1_B7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a09479-d58f-4db0-9c03-0e95cd1e70a8_452x498.gif 848w, https://substackcdn.com/image/fetch/$s_!1_B7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a09479-d58f-4db0-9c03-0e95cd1e70a8_452x498.gif 1272w, https://substackcdn.com/image/fetch/$s_!1_B7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a09479-d58f-4db0-9c03-0e95cd1e70a8_452x498.gif 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>So, what happens when the judgment is wrong mid-operation? How can we inject some human guidance at those critical decision points? </p><p>The Claude Code ecosystem has, until now, offered only two options to handle subagents that started veering off course:</p><ol><li><p>Kill the subagent, wasting tokens and losing its working context in the process. Provide a more precise prompt. Re-spawn the agent and hold onto your butts. </p></li><li><p>Wait for the subagent to complete its run, screaming &#8220;RTFM!&#8221; while you watch it spiral out of control.</p></li></ol><p>Neither of those options are acceptable when your little Claudies can run destructive tools and commands. You need a way to interact directly with your agents and redirect or stop them in their tracks when they start down token-wasting or, most especially, dangerous paths.</p><p>I spent an evening building a <a href="https://github.com/blacklanternsecurity/agentsee">custom solution</a> to this problem using tool hooks and an MCP server. It worked - operators could pause subagents mid-run to have conversations and redirect them. It was exciting! Then I learned that Anthropic was already solving this problem with the experimental <a href="https://code.claude.com/docs/en/agent-teams">agent teams</a> feature. Enabling it was as simple as adding a line in <code>settings.json</code>&#8230;</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TeFw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c549345-91fd-4bb5-969c-8996fa967fd8_220x220.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TeFw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c549345-91fd-4bb5-969c-8996fa967fd8_220x220.gif 424w, https://substackcdn.com/image/fetch/$s_!TeFw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c549345-91fd-4bb5-969c-8996fa967fd8_220x220.gif 848w, https://substackcdn.com/image/fetch/$s_!TeFw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c549345-91fd-4bb5-969c-8996fa967fd8_220x220.gif 1272w, https://substackcdn.com/image/fetch/$s_!TeFw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c549345-91fd-4bb5-969c-8996fa967fd8_220x220.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TeFw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c549345-91fd-4bb5-969c-8996fa967fd8_220x220.gif" width="320" height="320" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9c549345-91fd-4bb5-969c-8996fa967fd8_220x220.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:220,&quot;width&quot;:220,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:430849,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.blacklanternsecurity.com/i/190732833?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c549345-91fd-4bb5-969c-8996fa967fd8_220x220.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!TeFw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c549345-91fd-4bb5-969c-8996fa967fd8_220x220.gif 424w, https://substackcdn.com/image/fetch/$s_!TeFw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c549345-91fd-4bb5-969c-8996fa967fd8_220x220.gif 848w, https://substackcdn.com/image/fetch/$s_!TeFw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c549345-91fd-4bb5-969c-8996fa967fd8_220x220.gif 1272w, https://substackcdn.com/image/fetch/$s_!TeFw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c549345-91fd-4bb5-969c-8996fa967fd8_220x220.gif 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p><code>red-run</code> now uses Claude Code&#8217;s agent teams architecture. Each teammate runs in its own tmux pane as a fully interactive Claude Code session, giving the operator real-time visibility and approval over every action. <code>Escape</code> ends a running task instantly. The operator and team lead can message teammates directly mid-run to steer them down better paths. Oh, and teammates can message each other directly&#8230; yeah.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KPFf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3a447e5-d274-4d68-a703-80ab146d0304_3370x1370.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KPFf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3a447e5-d274-4d68-a703-80ab146d0304_3370x1370.png 424w, https://substackcdn.com/image/fetch/$s_!KPFf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3a447e5-d274-4d68-a703-80ab146d0304_3370x1370.png 848w, https://substackcdn.com/image/fetch/$s_!KPFf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3a447e5-d274-4d68-a703-80ab146d0304_3370x1370.png 1272w, https://substackcdn.com/image/fetch/$s_!KPFf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3a447e5-d274-4d68-a703-80ab146d0304_3370x1370.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KPFf!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3a447e5-d274-4d68-a703-80ab146d0304_3370x1370.png" width="1200" height="487.9120879120879" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f3a447e5-d274-4d68-a703-80ab146d0304_3370x1370.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:592,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:4241752,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.blacklanternsecurity.com/i/190732833?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3a447e5-d274-4d68-a703-80ab146d0304_3370x1370.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!KPFf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3a447e5-d274-4d68-a703-80ab146d0304_3370x1370.png 424w, https://substackcdn.com/image/fetch/$s_!KPFf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3a447e5-d274-4d68-a703-80ab146d0304_3370x1370.png 848w, https://substackcdn.com/image/fetch/$s_!KPFf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3a447e5-d274-4d68-a703-80ab146d0304_3370x1370.png 1272w, https://substackcdn.com/image/fetch/$s_!KPFf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3a447e5-d274-4d68-a703-80ab146d0304_3370x1370.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Teammate Visibility</figcaption></figure></div><p>Even with the enhanced visibility granted by agent teams, it can sometimes be tough to follow along while your agents move through an engagement. The new <code>state-mgr</code> teammate attempts to help with this by acting as the second-in-command, focused solely on managing the engagement state. It tracks findings and their statuses, traces provenance, deduplicates data, and updates the attack chain graph in <code>state-viewer</code> as the engagement progresses. The <code>red-run-ctf</code> team lead now focuses less on being a scribe and more on routing actionable findings to skilled teammates in a timely fashion.</p><p>All of that happens in persistent context windows that last for the entire engagement. Teammates accumulate knowledge and remember what they have attempted and accomplished, all guided by the operator and team lead, with the state database functioning as the ultimate source-of-truth.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hyg_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1682c31-0686-4f79-b7be-617387ee0342_3072x2464.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hyg_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1682c31-0686-4f79-b7be-617387ee0342_3072x2464.jpeg 424w, https://substackcdn.com/image/fetch/$s_!hyg_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1682c31-0686-4f79-b7be-617387ee0342_3072x2464.jpeg 848w, https://substackcdn.com/image/fetch/$s_!hyg_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1682c31-0686-4f79-b7be-617387ee0342_3072x2464.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!hyg_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1682c31-0686-4f79-b7be-617387ee0342_3072x2464.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hyg_!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1682c31-0686-4f79-b7be-617387ee0342_3072x2464.jpeg" width="1200" height="962.6373626373627" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b1682c31-0686-4f79-b7be-617387ee0342_3072x2464.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:1168,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:256915,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.blacklanternsecurity.com/i/190732833?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1682c31-0686-4f79-b7be-617387ee0342_3072x2464.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!hyg_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1682c31-0686-4f79-b7be-617387ee0342_3072x2464.jpeg 424w, https://substackcdn.com/image/fetch/$s_!hyg_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1682c31-0686-4f79-b7be-617387ee0342_3072x2464.jpeg 848w, https://substackcdn.com/image/fetch/$s_!hyg_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1682c31-0686-4f79-b7be-617387ee0342_3072x2464.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!hyg_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1682c31-0686-4f79-b7be-617387ee0342_3072x2464.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">red-run Architecture</figcaption></figure></div><p><code>red-run-ctf </code>strives to be a no-holds-barred, blazing fast, flags-at-all-cost CTF solver. It is designed to move fast and iterate, improving its capabilities and its supporting tools in the process. That said, it is a proof-of-concept that, in its nascent state, most closely resembles the threat model of a script kiddie. Imagine, though, the agentic tools that are being built and perfected by nation state threat actors with talented development teams and real infrastructure; advanced persistent threats with sophisticated evasion techniques and years of dwell time, now moving at the speed of agents.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;a035f4da-ecb8-4ecc-a1a8-51a5cfd678a9&quot;,&quot;duration&quot;:null}"></div><p></p>]]></content:encoded></item><item><title><![CDATA[red-run]]></title><description><![CDATA[All work and no tokens makes Claude a dull boy...]]></description><link>https://blog.blacklanternsecurity.com/p/red-run</link><guid isPermaLink="false">https://blog.blacklanternsecurity.com/p/red-run</guid><dc:creator><![CDATA[Kevin O'Riley]]></dc:creator><pubDate>Tue, 10 Mar 2026 19:32:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!TiC7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7310e819-20a4-46f4-ad64-704e34f89d4a_1536x650.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TiC7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7310e819-20a4-46f4-ad64-704e34f89d4a_1536x650.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TiC7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7310e819-20a4-46f4-ad64-704e34f89d4a_1536x650.jpeg 424w, https://substackcdn.com/image/fetch/$s_!TiC7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7310e819-20a4-46f4-ad64-704e34f89d4a_1536x650.jpeg 848w, https://substackcdn.com/image/fetch/$s_!TiC7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7310e819-20a4-46f4-ad64-704e34f89d4a_1536x650.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!TiC7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7310e819-20a4-46f4-ad64-704e34f89d4a_1536x650.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TiC7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7310e819-20a4-46f4-ad64-704e34f89d4a_1536x650.jpeg" width="727.8499755859375" height="307.936528132512" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7310e819-20a4-46f4-ad64-704e34f89d4a_1536x650.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:616,&quot;width&quot;:1456,&quot;resizeWidth&quot;:727.8499755859375,&quot;bytes&quot;:264800,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://kevinoriley.substack.com/i/189305534?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab0825d3-c4fd-40ed-8f7e-935b8f038bd2_1536x1024.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!TiC7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7310e819-20a4-46f4-ad64-704e34f89d4a_1536x650.jpeg 424w, https://substackcdn.com/image/fetch/$s_!TiC7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7310e819-20a4-46f4-ad64-704e34f89d4a_1536x650.jpeg 848w, https://substackcdn.com/image/fetch/$s_!TiC7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7310e819-20a4-46f4-ad64-704e34f89d4a_1536x650.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!TiC7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7310e819-20a4-46f4-ad64-704e34f89d4a_1536x650.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Regardless of how it may be portrayed on screen or in print, Offensive Security Testing can be extremely tedious and unforgiving. It requires organization, discipline, patience, system-of-systems thinking, and a multi-threaded intellect. Offensive Security Engineers have always pushed to automate at least a portion of their test methodologies for a cleaner, more-consistent, and detail-oriented approach. To that end, a thriving community has produced amazing tooling over the years; game-changing work that includes <a href="https://nmap.org/">NMAP</a>, <a href="https://github.com/vanhauser-thc/thc-hydra">Hydra</a>, <a href="https://www.metasploit.com/">Metasploit</a>, <a href="https://portswigger.net/burp/communitydownload">BurpSuite</a>, <a href="https://github.com/owasp-amass/amass">aMASS</a>, <a href="https://github.com/fortra/impacket">Impacket</a>, <a href="https://github.com/robertdavidgraham/masscan">masscan</a>, <a href="https://github.com/NationalSecurityAgency/ghidra">Ghidra</a>, <a href="https://github.com/sullo/nikto">Nikto</a>, and the list goes on. We have heard whispers of &#8220;fully automated penetration tests&#8221; and &#8220;fully automated red teaming&#8221;, but nothing has ever really materialized and impacted our community in the same way as the semi-autonomous but ultimately operator-driven tools that we all use every day.</p><p>Then came the LLMs.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.blacklanternsecurity.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Black Lantern Security (BLSOPS)! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Multiple companies and individuals hit the ground running with LLM-augmented and fully-automated test suites. Some have even had a significant degree of success [<a href="https://xbow.com/blog/xbow-on-hackerone-whats-next">1</a>][<a href="https://dreadnode.io/research">2</a>]. Many of us in this community have built our livelihoods around providing Offensive Security Testing, usually with really smart humans supported by well-built tools. It feels like something very exciting is happening right now with the tools that support those humans, though. Agentic coding can turn a simple chat-based LLM into a partner that lives in your terminal with you and can run your entire stack, as long as you can get past that whole &#8220;existential threat&#8221; question. LLMs are now and will continue to be incredible catalysts for change, but with that change inevitably comes complex and gnarly new problems to solve.</p><p>In the spirit of building, breaking, and bending new technologies to our will, a BLS operator has created <a href="https://github.com/blacklanternsecurity/red-run">red-run</a>. It is an Offensive Security Testing Framework designed to run on top of <a href="https://claude.com/product/claude-code">Claude Code</a>. It took ~2 weeks to build and required a shitload of tokens and at least one all-nighter. If we learned anything, it&#8217;s that the next few years are going to be exciting (and terrifying). As a working prototype, it&#8217;s far more capable than any of us thought it would be.</p><div><hr></div><p>red-run is a Claude Code project that combines skills, MCP servers, and agents with routing logic that guides Claude and an operator through the phases of a targeted attack against IT infrastructure. It is an offensive security toolkit that no doubt pales in comparison to the sophisticated LLM-powered tooling that nation-state level threat actors already have in their arsenal.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2rfF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea00ab95-e432-47bf-a828-aea3b4821873_7328x6156.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2rfF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea00ab95-e432-47bf-a828-aea3b4821873_7328x6156.png 424w, https://substackcdn.com/image/fetch/$s_!2rfF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea00ab95-e432-47bf-a828-aea3b4821873_7328x6156.png 848w, https://substackcdn.com/image/fetch/$s_!2rfF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea00ab95-e432-47bf-a828-aea3b4821873_7328x6156.png 1272w, https://substackcdn.com/image/fetch/$s_!2rfF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea00ab95-e432-47bf-a828-aea3b4821873_7328x6156.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2rfF!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea00ab95-e432-47bf-a828-aea3b4821873_7328x6156.png" width="1200" height="1007.967032967033" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ea00ab95-e432-47bf-a828-aea3b4821873_7328x6156.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:1223,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:1334283,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://kevinoriley.substack.com/i/189305534?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea00ab95-e432-47bf-a828-aea3b4821873_7328x6156.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!2rfF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea00ab95-e432-47bf-a828-aea3b4821873_7328x6156.png 424w, https://substackcdn.com/image/fetch/$s_!2rfF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea00ab95-e432-47bf-a828-aea3b4821873_7328x6156.png 848w, https://substackcdn.com/image/fetch/$s_!2rfF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea00ab95-e432-47bf-a828-aea3b4821873_7328x6156.png 1272w, https://substackcdn.com/image/fetch/$s_!2rfF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea00ab95-e432-47bf-a828-aea3b4821873_7328x6156.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1>Why?</h1><p><em>But wait&#8230; Claude Code can already do this, with no skills required. Why make red-run?</em></p><p>red-run levels up Claude Code for Offensive Security operations:</p><ul><li><p>Customizable skill library with semantic RAG retrieval.</p></li><li><p>Automated engagement state tracking, logging, and evidence gathering.</p></li><li><p>Persistent shell and interactive tool sessions that can be shared between agents.</p></li><li><p>Headless browser automation with Playwright.</p></li><li><p>Offsec-aware agent routing and task parallelization suggestions.</p></li><li><p>Self-improvement through retrospectives.</p></li></ul><p>Plus, it is just so damn <em>fun</em> to hack and iterate with Claude Code. It is an accelerator. Tools like Claude Code and other &#8220;AI&#8221; coding agents will likely become requirements for any serious Offensive Security team. Without them, you will simply fall behind. Remember - the bad guys have this stuff too.</p><h1>What?</h1><p><em>Let&#8217;s zoom out for a moment.</em></p><p>A Large Language Model&#8217;s (LLM) context window is the amount of text that it can consider in its memory at one time. Think of the context window like volatile memory that is measured in tokens rather than gigabytes. A single token is roughly equivalent to three-quarters of a word [<a href="https://help.openai.com/en/articles/4936856-what-are-tokens-and-how-to-count-them">3</a>]. </p><p>Claude <a href="https://code.claude.com/docs/en/skills">skills</a> are markdown files that are loaded into context when called upon. Skills tell Claude how to do things the way <em>you</em> want them done. Claude already knows <em>how</em> to do just about everything. It can research. It can reason. It can troubleshoot. It can iterate. It can hack. The trick is getting it to do things in the correct way, in the proper sequence, and with accountability.</p><p>When a Claude Code session approaches its context limit, the context window is automatically compacted (summarized, essentially). This is not good for extended sessions where you have gained initial access, moved laterally, and started privilege escalation when, suddenly, your context window is compacted and critical earlier information is lost.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bJL-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F110bb0dc-5d2f-4db1-a410-9c6b19e2f181_323x127.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bJL-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F110bb0dc-5d2f-4db1-a410-9c6b19e2f181_323x127.png 424w, https://substackcdn.com/image/fetch/$s_!bJL-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F110bb0dc-5d2f-4db1-a410-9c6b19e2f181_323x127.png 848w, https://substackcdn.com/image/fetch/$s_!bJL-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F110bb0dc-5d2f-4db1-a410-9c6b19e2f181_323x127.png 1272w, https://substackcdn.com/image/fetch/$s_!bJL-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F110bb0dc-5d2f-4db1-a410-9c6b19e2f181_323x127.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bJL-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F110bb0dc-5d2f-4db1-a410-9c6b19e2f181_323x127.png" width="323" height="127" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/110bb0dc-5d2f-4db1-a410-9c6b19e2f181_323x127.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:127,&quot;width&quot;:323,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5069,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://kevinoriley.substack.com/i/189305534?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F110bb0dc-5d2f-4db1-a410-9c6b19e2f181_323x127.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!bJL-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F110bb0dc-5d2f-4db1-a410-9c6b19e2f181_323x127.png 424w, https://substackcdn.com/image/fetch/$s_!bJL-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F110bb0dc-5d2f-4db1-a410-9c6b19e2f181_323x127.png 848w, https://substackcdn.com/image/fetch/$s_!bJL-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F110bb0dc-5d2f-4db1-a410-9c6b19e2f181_323x127.png 1272w, https://substackcdn.com/image/fetch/$s_!bJL-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F110bb0dc-5d2f-4db1-a410-9c6b19e2f181_323x127.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MR9l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa57c724b-b7a3-4d75-963f-681d3de2f1cf_240x196.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MR9l!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa57c724b-b7a3-4d75-963f-681d3de2f1cf_240x196.gif 424w, https://substackcdn.com/image/fetch/$s_!MR9l!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa57c724b-b7a3-4d75-963f-681d3de2f1cf_240x196.gif 848w, https://substackcdn.com/image/fetch/$s_!MR9l!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa57c724b-b7a3-4d75-963f-681d3de2f1cf_240x196.gif 1272w, https://substackcdn.com/image/fetch/$s_!MR9l!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa57c724b-b7a3-4d75-963f-681d3de2f1cf_240x196.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MR9l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa57c724b-b7a3-4d75-963f-681d3de2f1cf_240x196.gif" width="320" height="261.3333333333333" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a57c724b-b7a3-4d75-963f-681d3de2f1cf_240x196.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:196,&quot;width&quot;:240,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:354737,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://kevinoriley.substack.com/i/189305534?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa57c724b-b7a3-4d75-963f-681d3de2f1cf_240x196.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!MR9l!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa57c724b-b7a3-4d75-963f-681d3de2f1cf_240x196.gif 424w, https://substackcdn.com/image/fetch/$s_!MR9l!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa57c724b-b7a3-4d75-963f-681d3de2f1cf_240x196.gif 848w, https://substackcdn.com/image/fetch/$s_!MR9l!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa57c724b-b7a3-4d75-963f-681d3de2f1cf_240x196.gif 1272w, https://substackcdn.com/image/fetch/$s_!MR9l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa57c724b-b7a3-4d75-963f-681d3de2f1cf_240x196.gif 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>red-run attempts to solve this problem with the <code>orchestrator</code> skill - the single skill that is loaded into context at startup. <code>orchestrator</code> acts as the main function and is intended to run on the Opus model with <a href="https://platform.claude.com/docs/en/build-with-claude/adaptive-thinking">adaptive thinking</a> enabled. </p><p>First and foremost, <code>orchestrator</code> is responsible for tracking the overall state of the engagement in a SQLite database during execution. A frequently updated state tracking database allows <code>orchestrator</code> to reconnect all the necessary dots after the lobotomization that is the compaction process. In fact, lengthy engagements can be resumed from an entirely fresh session with minimal productivity loss.</p><p>The second and equally important job of the <code>orchestrator</code> is skill and agent routing. Routing guides the engagement through its various phases - enumeration, initial access, lateral movement, pivoting, privilege escalation, exfiltration. Whenever the <code>orchestrator</code> learns new information about the target, it decides which skills to invoke and which agents to task next, in one of two ways:</p><ul><li><p>Using a hardcoded decision tree. Examples:</p><ul><li><p>new target discovered? &#8594; <code>network-recon</code></p></li><li><p>web service found? &#8594; <code>web-discovery</code></p></li><li><p>Kerberos? &#8594; <code>ad-discovery</code></p></li></ul></li><li><p>Searching for a relevant skill using <a href="https://en.wikipedia.org/wiki/Retrieval-augmented_generation">retrieval-augmented generation</a> (RAG). Example:</p><ul><li><p><code>network-recon-agent</code> finds Apache Tomcat AJP connector</p></li><li><p><code>orchestrator</code> has no hardcoded logic for this scenario</p></li><li><p><code>orchestrator</code> sends query &#8220;Apache Tomcat AJP connector&#8221; to <code>skill-router</code> MCP server</p></li><li><p><code>skill-router</code> responds with <code>ajp-ghostcat</code> skill ranked as most relevant, with a 76% similarity score</p></li><li><p><code>orchestrator</code> tasks <code>web-exploit-agent</code> with the <code>ajp-ghostcat</code> skill</p></li></ul></li></ul><p>Agents can be dispatched to work in parallel on separate tasks whenever potential attack paths diverge, and the <code>orchestrator</code> or human operator can always step in to redirect off-task agents, as needed. When agents report back, the <code>orchestrator</code> makes new routing decisions based on the updated target datapoints. </p><p>Agents write interim findings to the state database mid-task, so the <code>orchestrator</code> can detect new discoveries and delegate follow-up agents within minutes rather than waiting for the original agent to complete. For example, if <code>ad-discovery</code> encounters a new web service, the <code>orchestrator</code> learns about it and can task <code>web-discovery</code> immediately, not ten minutes later, once <code>ad-discovery</code> finishes its full run. This iterative workflow of agentic tasking keeps the Opus-powered main context window free for operator interaction, and the main loop continues ad infinitum until all operator-defined objectives are achieved. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!peB-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf5ca92-1c63-4a71-9a49-eba1bc32f9bd_6556x4040.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!peB-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf5ca92-1c63-4a71-9a49-eba1bc32f9bd_6556x4040.png 424w, https://substackcdn.com/image/fetch/$s_!peB-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf5ca92-1c63-4a71-9a49-eba1bc32f9bd_6556x4040.png 848w, https://substackcdn.com/image/fetch/$s_!peB-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf5ca92-1c63-4a71-9a49-eba1bc32f9bd_6556x4040.png 1272w, https://substackcdn.com/image/fetch/$s_!peB-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf5ca92-1c63-4a71-9a49-eba1bc32f9bd_6556x4040.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!peB-!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf5ca92-1c63-4a71-9a49-eba1bc32f9bd_6556x4040.png" width="1200" height="739.2857142857143" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/acf5ca92-1c63-4a71-9a49-eba1bc32f9bd_6556x4040.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:897,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:794556,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://kevinoriley.substack.com/i/189305534?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf5ca92-1c63-4a71-9a49-eba1bc32f9bd_6556x4040.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!peB-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf5ca92-1c63-4a71-9a49-eba1bc32f9bd_6556x4040.png 424w, https://substackcdn.com/image/fetch/$s_!peB-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf5ca92-1c63-4a71-9a49-eba1bc32f9bd_6556x4040.png 848w, https://substackcdn.com/image/fetch/$s_!peB-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf5ca92-1c63-4a71-9a49-eba1bc32f9bd_6556x4040.png 1272w, https://substackcdn.com/image/fetch/$s_!peB-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf5ca92-1c63-4a71-9a49-eba1bc32f9bd_6556x4040.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1>Retrospectives</h1><p>Post-engagement is where red-run really starts to shine. The <code>retrospective</code> skill runs in the main context window and reviews the steps taken during the engagement. Skill routing decisions are analyzed. Agent behaviors are examined, down to the individual commands executed during agentic tasks. Gaps in payloads and methodology are identified. Manual interventions are noted.</p><p>Claude produces a prioritized list of items that can include skill methodology updates, agent improvements, new skills to build, and <code>orchestrator</code> routing fixes. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xvMz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a163573-7152-4ffb-ab52-fb54a82dc344_1803x538.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xvMz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a163573-7152-4ffb-ab52-fb54a82dc344_1803x538.png 424w, https://substackcdn.com/image/fetch/$s_!xvMz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a163573-7152-4ffb-ab52-fb54a82dc344_1803x538.png 848w, https://substackcdn.com/image/fetch/$s_!xvMz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a163573-7152-4ffb-ab52-fb54a82dc344_1803x538.png 1272w, https://substackcdn.com/image/fetch/$s_!xvMz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a163573-7152-4ffb-ab52-fb54a82dc344_1803x538.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xvMz!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a163573-7152-4ffb-ab52-fb54a82dc344_1803x538.png" width="1200" height="357.6923076923077" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7a163573-7152-4ffb-ab52-fb54a82dc344_1803x538.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:434,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:147494,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.blacklanternsecurity.com/i/190469897?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a163573-7152-4ffb-ab52-fb54a82dc344_1803x538.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xvMz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a163573-7152-4ffb-ab52-fb54a82dc344_1803x538.png 424w, https://substackcdn.com/image/fetch/$s_!xvMz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a163573-7152-4ffb-ab52-fb54a82dc344_1803x538.png 848w, https://substackcdn.com/image/fetch/$s_!xvMz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a163573-7152-4ffb-ab52-fb54a82dc344_1803x538.png 1272w, https://substackcdn.com/image/fetch/$s_!xvMz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a163573-7152-4ffb-ab52-fb54a82dc344_1803x538.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">I&#8217;ll just see myself out, then.</figcaption></figure></div><p>Warning: the <code>retrospective</code> skill leads to some existential questions, like &#8220;why am I here at all?&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XCXU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ba8c784-145a-4418-964f-6f4d74885a9f_500x375.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XCXU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ba8c784-145a-4418-964f-6f4d74885a9f_500x375.gif 424w, https://substackcdn.com/image/fetch/$s_!XCXU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ba8c784-145a-4418-964f-6f4d74885a9f_500x375.gif 848w, https://substackcdn.com/image/fetch/$s_!XCXU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ba8c784-145a-4418-964f-6f4d74885a9f_500x375.gif 1272w, https://substackcdn.com/image/fetch/$s_!XCXU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ba8c784-145a-4418-964f-6f4d74885a9f_500x375.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XCXU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ba8c784-145a-4418-964f-6f4d74885a9f_500x375.gif" width="500" height="375" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5ba8c784-145a-4418-964f-6f4d74885a9f_500x375.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:375,&quot;width&quot;:500,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:225546,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://kevinoriley.substack.com/i/189305534?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ba8c784-145a-4418-964f-6f4d74885a9f_500x375.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!XCXU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ba8c784-145a-4418-964f-6f4d74885a9f_500x375.gif 424w, https://substackcdn.com/image/fetch/$s_!XCXU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ba8c784-145a-4418-964f-6f4d74885a9f_500x375.gif 848w, https://substackcdn.com/image/fetch/$s_!XCXU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ba8c784-145a-4418-964f-6f4d74885a9f_500x375.gif 1272w, https://substackcdn.com/image/fetch/$s_!XCXU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ba8c784-145a-4418-964f-6f4d74885a9f_500x375.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1>Future State</h1><p>red-run has evolved from a simple offensive security skill library into a RAG-backed on-demand agent dispatcher with a hierarchical planning system that prefers parallelization (say that three times fast). It is slowly becoming a push-button utility that can navigate most infrastructure-style CTFs from IP address to root flag or die trying (or until you run out of money to throw at Anthropic). Its effectiveness is amplified in the hands of a skilled operator who can nudge agents in the right direction when they inevitably jump down rabbit holes or make mistakes. </p><p>That said, red-run is still <strong>VERY MUCH</strong> a proof-of-concept (PoC). The <code>orchestrator</code>, in its current form, is a fancy CTF solver and is not meant for client-facing engagements. It is designed to complete labs and improve itself over time through <code>retrospectives</code>, similar to how a junior penetration tester might learn. </p><p>The <code>orchestrator</code> skill will evolve and mature. red-run could one day be made entirely modular, enabling an operator to swap out a CTF-focused <code>orchestrator</code> for a client-safe version that prefers stealth and evasion, or a version that trains operators on new techniques. Skills will expand to include cloud infrastructure, operational technology (OT), and reverse engineering (RE). MCP servers will be built to support custom command-and-control (C2) infrastructure, phishing activity, and local models for data processing and reporting.</p><p>We are in the very early days of agentic coding, but the implications for the offensive security community cannot be understated. It would not be surprising to see authorized penetration testing engagements soon supplemented with semi-autonomous orchestrated agents that assist human operators. It would be equally unsurprising to see these types of tools deployed during real attacks by threat actors with bad intentions.</p><h1>Demo</h1><p>To illustrate the speed with which these tools can move, here is red-run vs <a href="https://www.hackthebox.com/machines/flight">Flight.HTB</a> (WARNING: spoilers ahead).</p><p><em>Full disclosure: Flight.HTB has been used as a test bed for several recent red-run features and routing improvements. Claude navigated the correct path on its first attempt, but not this quickly.</em></p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;5ecea303-672b-4b1b-93d1-03e452f138ce&quot;,&quot;duration&quot;:null}"></div><p>This run took 1 hour and 24 minutes in real time, but red-run has spent as many as 3 hours and as few as 45 minutes solving this box. CTF testing has exposed the truly indeterminate nature of LLMs. Agents take slightly different paths through the same box each iteration, even with identical operator prompts. Sometimes agents get stuck on mundane problems like clock skew - a task with explicit troubleshooting steps in their loaded skill. They often ignore agent- and skill-level instructions like &#8220;DO NOT download tools from the internet&#8221; due to prompt pressure. And these agents, loaded with Claude-built skills, have absolutely no OPSEC awareness. <em>Claude has no chill.</em> red-run will light up your SOC, all while your sensitive data is sent off to Anthropic servers. <strong>Do not run this in production</strong>.</p><h1>Closing Thoughts</h1><p>Even with the latest models and meticulously-written skills, &#8220;AI&#8221; is just another tool in the arsenal for both attackers and defenders (for now). Anyone who uses LLMs daily knows that they continue to make outright bad decisions from time to time. When positioned as a threat-actor targeting your production environment, those bad decisions can become <em>instantly</em> <em>catastrophic</em>. Indeed, a new type of threat actor has been created - overly trusting and inexperienced agentic tool users. </p><p>LLMs are not deterministic. The same input is never guaranteed to produce the same output. This is why skilled humans must be kept in the loop whenever an LLM might execute code on an asset - to supervise and to enforce constraints.</p><p>It is unclear what offensive security jobs will look like in a year, let alone in five years, given the current pace of change. Human operators will certainly continue to execute hands-on-keyboard tasks, but those tasks will evolve (as they always have).</p><h1>Afterthoughts</h1><p>At first glance, it might appear that we&#8217;ve somehow &#8220;jailbroken&#8221; the model, but this is not the case. &#8220;Jailbreaking&#8221; typically implies that safety features were bypassed in order to trick the LLM into doing something it was not meant to do. Claude Code is <em>supposed</em> to help with security testing. It says so right there in the system prompt:</p><p><em>IMPORTANT: Assist with authorized security testing, defensive security, CTF challenges, and educational contexts. Refuse requests for destructive techniques, DoS attacks, mass targeting, supply chain compromise, or detection evasion for malicious purposes. Dual-use security tools (C2 frameworks, credential testing, exploit development) require clear authorization context: pentesting engagements, CTF competitions, security research, or defensive use cases. [<a href="https://github.com/marckrenn/claude-code-changelog/blob/b55314fd44b6a50343fc451ca14322d1eec9cc92/system-prompts/system-prompt-interactive-helps-users-according-output.md?plain=1#L19">4</a>]</em></p><p>Security researchers and ethical hackers <em>need</em> this functionality in Claude Code in order to keep pace with threats. With sufficient resources, advanced threat actors can build and run their own sophisticated attack-oriented models on their own hardware, with no flimsy guardrails attempting to limit them to &#8220;authorized security testing&#8221;. Advanced threat actors do not need Anthropic.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.blacklanternsecurity.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Black Lantern Security (BLSOPS)! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Introducing CloudCheck: Comprehensive Cloud Provider Detection]]></title><description><![CDATA[An overhaul of BBOT's cloud detection]]></description><link>https://blog.blacklanternsecurity.com/p/introducing-cloudcheck-comprehensive</link><guid isPermaLink="false">https://blog.blacklanternsecurity.com/p/introducing-cloudcheck-comprehensive</guid><dc:creator><![CDATA[TheTechromancer]]></dc:creator><pubDate>Tue, 27 Jan 2026 17:35:39 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!gsjQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bd8c6b9-e110-44f2-af1f-bf70854e7036_1300x497.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Cloud provider detection is an important part of most OSINT-related workflows. Whether for bug bounties, pentests, or Attack Surface Management (ASM), it&#8217;s useful to know, for example, which cloud providers your target likes to use, and whether the web app you&#8217;re about to hack is protected by a web application firewall (WAF) like Cloudflare.</p><p>Good cloud detection requires tracking domains and subnets owned by cloud providers. This is inherently difficult, since they&#8217;re constantly changing. Some providers, like Cloudflare, are kind enough to <a href="https://www.cloudflare.com/ips/">publish their ranges</a>, which can be periodically scraped and aggregated into a combined signature. You can then check a host against those subnets to definitively answer the question, &#8220;Is this thing behind Cloudflare?&#8221;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.blacklanternsecurity.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Black Lantern Security (BLSOPS)! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>But most providers don&#8217;t publish their infrastructure. This almost always leads to manual tracking of CIDRs, ASN numbers, and domains, and quickly devolves into a mess. Since the data must be scraped from multiple and/or competing sources &#8212; an HTML webpage here, a random person&#8217;s github there &#8212; it leads not only to outdated data, but incomplete and inaccurate data as well.</p><p>Here are some tools that helped to pioneer this capability, but which still rely on hardcoded lists:</p><ul><li><p><a href="https://github.com/projectdiscovery/cdncheck">projectdiscovery/cdncheck</a></p></li><li><p><a href="https://github.com/oldrho/ip2provider">oldrho/ip2provider</a></p></li><li><p><a href="https://github.com/lord-alfred/ipranges">lord-alfred/ipranges</a></p></li><li><p><a href="https://github.com/schniggie/cdn-ranges">schniggie/cdn-ranges</a></p></li></ul><p>Basic cloud provider detection has always been built into <a href="https://github.com/blacklanternsecurity/bbot">BBOT</a>. When you run a BBOT scan, hosts are tagged as &#8220;cloudflare&#8221;, &#8220;fastly&#8221;, etc:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gsjQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bd8c6b9-e110-44f2-af1f-bf70854e7036_1300x497.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gsjQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bd8c6b9-e110-44f2-af1f-bf70854e7036_1300x497.png 424w, https://substackcdn.com/image/fetch/$s_!gsjQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bd8c6b9-e110-44f2-af1f-bf70854e7036_1300x497.png 848w, https://substackcdn.com/image/fetch/$s_!gsjQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bd8c6b9-e110-44f2-af1f-bf70854e7036_1300x497.png 1272w, https://substackcdn.com/image/fetch/$s_!gsjQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bd8c6b9-e110-44f2-af1f-bf70854e7036_1300x497.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gsjQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bd8c6b9-e110-44f2-af1f-bf70854e7036_1300x497.png" width="1300" height="497" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1bd8c6b9-e110-44f2-af1f-bf70854e7036_1300x497.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:497,&quot;width&quot;:1300,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:84480,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.blacklanternsecurity.com/i/183281713?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bd8c6b9-e110-44f2-af1f-bf70854e7036_1300x497.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!gsjQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bd8c6b9-e110-44f2-af1f-bf70854e7036_1300x497.png 424w, https://substackcdn.com/image/fetch/$s_!gsjQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bd8c6b9-e110-44f2-af1f-bf70854e7036_1300x497.png 848w, https://substackcdn.com/image/fetch/$s_!gsjQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bd8c6b9-e110-44f2-af1f-bf70854e7036_1300x497.png 1272w, https://substackcdn.com/image/fetch/$s_!gsjQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bd8c6b9-e110-44f2-af1f-bf70854e7036_1300x497.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Until today, BBOT&#8217;s CloudCheck-powered cloud detection has also relied on these same manual methods. This is why we&#8217;ve overhauled <strong>CloudCheck </strong>from the ground up to solve each of these problems, resulting in faster, more accurate, and more comprehensive detection across numerous cloud providers.</p><h3>CloudCheck</h3><p><strong><a href="https://github.com/blacklanternsecurity/cloudcheck">CloudCheck</a></strong> is an open-source cloud signature database, CLI tool, Python library, and Rust library. As of January 2026, it supports <strong>56 cloud providers</strong> (see <a href="https://github.com/blacklanternsecurity/cloudcheck?tab=readme-ov-file#cloud-providers-56">here</a> for an up-to-date list).</p><h4>JSON Signatures</h4><p>CloudCheck&#8217;s signatures are updated daily via an automated CI/CD pipeline, which cleans, dedupes, and defrags all the data before saving it to a <a href="https://github.com/blacklanternsecurity/cloudcheck/blob/stable/cloud_providers_v2.json">JSON file</a> on GitHub. This file is free to download and parse, and useful if you like to do things manually instead of using the convenient CLI and API wrappers.</p><h4>Unique Data Sources</h4><p>CloudCheck leverages several unique methods to stay up-to-date automatically.</p><p>For <strong>domains</strong>, instead of hardcoding domains like &#8220;amazonaws.com&#8221;, it pulls daily from <a href="https://github.com/v2fly/domain-list-community">domain-list-community</a>. This not only helps to keep the domain lists up-to-date and avoids manual maintenance, but also enables detection of child entities &#8212; for example, Kindle and Audible domains nested underneath Amazon:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zAbw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57a996d4-e698-45b8-b4c4-0d04f9ede5f3_455x410.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zAbw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57a996d4-e698-45b8-b4c4-0d04f9ede5f3_455x410.png 424w, https://substackcdn.com/image/fetch/$s_!zAbw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57a996d4-e698-45b8-b4c4-0d04f9ede5f3_455x410.png 848w, https://substackcdn.com/image/fetch/$s_!zAbw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57a996d4-e698-45b8-b4c4-0d04f9ede5f3_455x410.png 1272w, https://substackcdn.com/image/fetch/$s_!zAbw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57a996d4-e698-45b8-b4c4-0d04f9ede5f3_455x410.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zAbw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57a996d4-e698-45b8-b4c4-0d04f9ede5f3_455x410.png" width="455" height="410" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/57a996d4-e698-45b8-b4c4-0d04f9ede5f3_455x410.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:410,&quot;width&quot;:455,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:33568,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.blacklanternsecurity.com/i/183281713?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57a996d4-e698-45b8-b4c4-0d04f9ede5f3_455x410.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zAbw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57a996d4-e698-45b8-b4c4-0d04f9ede5f3_455x410.png 424w, https://substackcdn.com/image/fetch/$s_!zAbw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57a996d4-e698-45b8-b4c4-0d04f9ede5f3_455x410.png 848w, https://substackcdn.com/image/fetch/$s_!zAbw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57a996d4-e698-45b8-b4c4-0d04f9ede5f3_455x410.png 1272w, https://substackcdn.com/image/fetch/$s_!zAbw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57a996d4-e698-45b8-b4c4-0d04f9ede5f3_455x410.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>For <strong>IP addresses</strong>, instead of hardcoding CIDRs or ASN numbers, organizations are tracked by their Internet Registry IDs. This means CloudCheck can detect brand-new ASNs as they&#8217;re spun up, even before they&#8217;re announced to the public.</p><p>The secret ingredient here is <a href="https://asndb.api.bbot.io/">ASNDB</a>, which is queried during the daily signature update. ASNDB is our very own REST API, and part of a soon-to-be-announced <a href="https://api.bbot.io/">API Suite</a> with a generous free tier.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kC5-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0852aa3d-6483-421c-9055-2373611e198c_802x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kC5-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0852aa3d-6483-421c-9055-2373611e198c_802x335.png 424w, https://substackcdn.com/image/fetch/$s_!kC5-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0852aa3d-6483-421c-9055-2373611e198c_802x335.png 848w, https://substackcdn.com/image/fetch/$s_!kC5-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0852aa3d-6483-421c-9055-2373611e198c_802x335.png 1272w, https://substackcdn.com/image/fetch/$s_!kC5-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0852aa3d-6483-421c-9055-2373611e198c_802x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kC5-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0852aa3d-6483-421c-9055-2373611e198c_802x335.png" width="802" height="335" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0852aa3d-6483-421c-9055-2373611e198c_802x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:335,&quot;width&quot;:802,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:32241,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.blacklanternsecurity.com/i/183281713?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0852aa3d-6483-421c-9055-2373611e198c_802x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kC5-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0852aa3d-6483-421c-9055-2373611e198c_802x335.png 424w, https://substackcdn.com/image/fetch/$s_!kC5-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0852aa3d-6483-421c-9055-2373611e198c_802x335.png 848w, https://substackcdn.com/image/fetch/$s_!kC5-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0852aa3d-6483-421c-9055-2373611e198c_802x335.png 1272w, https://substackcdn.com/image/fetch/$s_!kC5-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0852aa3d-6483-421c-9055-2373611e198c_802x335.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_Pcz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff82c854a-d8a8-497d-a62a-c886a373980e_1812x786.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_Pcz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff82c854a-d8a8-497d-a62a-c886a373980e_1812x786.png 424w, https://substackcdn.com/image/fetch/$s_!_Pcz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff82c854a-d8a8-497d-a62a-c886a373980e_1812x786.png 848w, https://substackcdn.com/image/fetch/$s_!_Pcz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff82c854a-d8a8-497d-a62a-c886a373980e_1812x786.png 1272w, https://substackcdn.com/image/fetch/$s_!_Pcz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff82c854a-d8a8-497d-a62a-c886a373980e_1812x786.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_Pcz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff82c854a-d8a8-497d-a62a-c886a373980e_1812x786.png" width="1456" height="632" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f82c854a-d8a8-497d-a62a-c886a373980e_1812x786.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:632,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:62469,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.blacklanternsecurity.com/i/183281713?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff82c854a-d8a8-497d-a62a-c886a373980e_1812x786.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_Pcz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff82c854a-d8a8-497d-a62a-c886a373980e_1812x786.png 424w, https://substackcdn.com/image/fetch/$s_!_Pcz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff82c854a-d8a8-497d-a62a-c886a373980e_1812x786.png 848w, https://substackcdn.com/image/fetch/$s_!_Pcz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff82c854a-d8a8-497d-a62a-c886a373980e_1812x786.png 1272w, https://substackcdn.com/image/fetch/$s_!_Pcz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff82c854a-d8a8-497d-a62a-c886a373980e_1812x786.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>Convenient Categories</h4><p>Cloud providers are sorted into categories like &#8220;cloud&#8221;, &#8220;cdn&#8221;, &#8220;waf&#8221;, &#8220;gov&#8221;, etc.</p><h4>Installation</h4><p>CloudCheck is written in Rust and installable with one command:</p><pre><code><code>cargo install cloudcheck</code></code></pre><h4>Usage - CLI</h4><p>CloudCheck&#8217;s CLI is simple to use. Just execute <code>CloudCheck</code> followed by the hostname or IP you want to look up.</p><pre><code><code>cloudcheck &lt;hostname or ip&gt;</code></code></pre><p>Output is JSON:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ttJ0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe90fefd-acfc-4c12-a455-80516164871d_942x294.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ttJ0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe90fefd-acfc-4c12-a455-80516164871d_942x294.png 424w, https://substackcdn.com/image/fetch/$s_!ttJ0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe90fefd-acfc-4c12-a455-80516164871d_942x294.png 848w, https://substackcdn.com/image/fetch/$s_!ttJ0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe90fefd-acfc-4c12-a455-80516164871d_942x294.png 1272w, https://substackcdn.com/image/fetch/$s_!ttJ0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe90fefd-acfc-4c12-a455-80516164871d_942x294.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ttJ0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe90fefd-acfc-4c12-a455-80516164871d_942x294.png" width="942" height="294" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/be90fefd-acfc-4c12-a455-80516164871d_942x294.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:294,&quot;width&quot;:942,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:28064,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.blacklanternsecurity.com/i/183281713?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe90fefd-acfc-4c12-a455-80516164871d_942x294.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ttJ0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe90fefd-acfc-4c12-a455-80516164871d_942x294.png 424w, https://substackcdn.com/image/fetch/$s_!ttJ0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe90fefd-acfc-4c12-a455-80516164871d_942x294.png 848w, https://substackcdn.com/image/fetch/$s_!ttJ0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe90fefd-acfc-4c12-a455-80516164871d_942x294.png 1272w, https://substackcdn.com/image/fetch/$s_!ttJ0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe90fefd-acfc-4c12-a455-80516164871d_942x294.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Let us know on <a href="https://discord.gg/4dZh7pzAtZ">Discord</a> or <a href="https://github.com/blacklanternsecurity/cloudcheck/issues">Github</a> which features you want added to the CLI!</p><h4>Usage - Python API</h4><pre><code># installation
pip install cloudcheck</code></pre><pre><code>import asyncio
from cloudcheck import CloudCheck

async def main():
    cloudcheck = CloudCheck()
    results = await cloudcheck.lookup(&#8221;8.8.8.8&#8221;)
    print(results) # [{&#8217;name&#8217;: &#8216;Google&#8217;, &#8216;tags&#8217;: [&#8217;cloud&#8217;]}]

asyncio.run(main())</code></pre><h4>Usage - Rust API</h4><pre><code># Add to Cargo.toml
[dependencies]
cloudcheck = &#8220;9.2&#8221;
tokio = { version = &#8220;1&#8221;, features = [&#8221;full&#8221;] }</code></pre><pre><code>use cloudcheck::CloudCheck;

#[tokio::main]
async fn main() {
    let cloudcheck = CloudCheck::new();
    let results = cloudcheck.lookup(&#8221;8.8.8.8&#8221;).await.unwrap();
    println!(&#8221;{:?}&#8221;, results); // [CloudProvider { name: &#8220;Google&#8221;, tags: [&#8221;cloud&#8221;] }]
}</code></pre><h4>Usage - REST API</h4><p>CloudCheck&#8217;s CLI and code libraries perform their lookups against a local in-memory database, which can also be served as a REST API:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!M9Ps!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c84ea98-8c91-406a-b674-c8bcc4a2f38f_1746x314.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!M9Ps!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c84ea98-8c91-406a-b674-c8bcc4a2f38f_1746x314.png 424w, https://substackcdn.com/image/fetch/$s_!M9Ps!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c84ea98-8c91-406a-b674-c8bcc4a2f38f_1746x314.png 848w, https://substackcdn.com/image/fetch/$s_!M9Ps!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c84ea98-8c91-406a-b674-c8bcc4a2f38f_1746x314.png 1272w, https://substackcdn.com/image/fetch/$s_!M9Ps!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c84ea98-8c91-406a-b674-c8bcc4a2f38f_1746x314.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!M9Ps!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c84ea98-8c91-406a-b674-c8bcc4a2f38f_1746x314.png" width="1456" height="262" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2c84ea98-8c91-406a-b674-c8bcc4a2f38f_1746x314.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:262,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:43938,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.blacklanternsecurity.com/i/183281713?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c84ea98-8c91-406a-b674-c8bcc4a2f38f_1746x314.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!M9Ps!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c84ea98-8c91-406a-b674-c8bcc4a2f38f_1746x314.png 424w, https://substackcdn.com/image/fetch/$s_!M9Ps!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c84ea98-8c91-406a-b674-c8bcc4a2f38f_1746x314.png 848w, https://substackcdn.com/image/fetch/$s_!M9Ps!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c84ea98-8c91-406a-b674-c8bcc4a2f38f_1746x314.png 1272w, https://substackcdn.com/image/fetch/$s_!M9Ps!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c84ea98-8c91-406a-b674-c8bcc4a2f38f_1746x314.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>We&#8217;ve deployed this at <strong><a href="https://cloudcheck.api.bbot.io/">cloudcheck.api.bbot.io</a></strong>. You can try it out for free at 10 requests/minute:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kvpF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc512baef-9273-4751-b79f-ad6281f3c65c_1598x638.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kvpF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc512baef-9273-4751-b79f-ad6281f3c65c_1598x638.png 424w, https://substackcdn.com/image/fetch/$s_!kvpF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc512baef-9273-4751-b79f-ad6281f3c65c_1598x638.png 848w, https://substackcdn.com/image/fetch/$s_!kvpF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc512baef-9273-4751-b79f-ad6281f3c65c_1598x638.png 1272w, https://substackcdn.com/image/fetch/$s_!kvpF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc512baef-9273-4751-b79f-ad6281f3c65c_1598x638.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kvpF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc512baef-9273-4751-b79f-ad6281f3c65c_1598x638.png" width="1456" height="581" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c512baef-9273-4751-b79f-ad6281f3c65c_1598x638.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:581,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:60152,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.blacklanternsecurity.com/i/183281713?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc512baef-9273-4751-b79f-ad6281f3c65c_1598x638.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kvpF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc512baef-9273-4751-b79f-ad6281f3c65c_1598x638.png 424w, https://substackcdn.com/image/fetch/$s_!kvpF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc512baef-9273-4751-b79f-ad6281f3c65c_1598x638.png 848w, https://substackcdn.com/image/fetch/$s_!kvpF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc512baef-9273-4751-b79f-ad6281f3c65c_1598x638.png 1272w, https://substackcdn.com/image/fetch/$s_!kvpF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc512baef-9273-4751-b79f-ad6281f3c65c_1598x638.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Conclusion</h3><p>We hope you find CloudCheck useful. It is only a small part of the growing BBOT ecosystem - an open-source framework for recursive asset discovery and reconnaissance.</p><p>To fully leverage this tech stack and our expert team of analysts and researchers, contact us to learn more about our <a href="https://www.blacklanternsecurity.com/services/">Enterprise ASM Offering</a>.</p><p>Happy hacking!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.blacklanternsecurity.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Black Lantern Security (BLSOPS)! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Attack Surface Management (ASM): Goals, Objectives, and Business Case]]></title><description><![CDATA[&#8220;I shouldn&#8217;t be able to even reach that from here&#8221;]]></description><link>https://blog.blacklanternsecurity.com/p/attack-surface-management-asm-goals</link><guid isPermaLink="false">https://blog.blacklanternsecurity.com/p/attack-surface-management-asm-goals</guid><dc:creator><![CDATA[Philip Hartlieb]]></dc:creator><pubDate>Mon, 27 Oct 2025 20:01:59 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!AGiK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3330182b-e13c-4ef8-91eb-8770a602de68_640x640.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AGiK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3330182b-e13c-4ef8-91eb-8770a602de68_640x640.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AGiK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3330182b-e13c-4ef8-91eb-8770a602de68_640x640.png 424w, https://substackcdn.com/image/fetch/$s_!AGiK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3330182b-e13c-4ef8-91eb-8770a602de68_640x640.png 848w, https://substackcdn.com/image/fetch/$s_!AGiK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3330182b-e13c-4ef8-91eb-8770a602de68_640x640.png 1272w, https://substackcdn.com/image/fetch/$s_!AGiK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3330182b-e13c-4ef8-91eb-8770a602de68_640x640.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AGiK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3330182b-e13c-4ef8-91eb-8770a602de68_640x640.png" width="640" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3330182b-e13c-4ef8-91eb-8770a602de68_640x640.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:640,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:812209,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.blacklanternsecurity.com/i/176675171?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3330182b-e13c-4ef8-91eb-8770a602de68_640x640.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!AGiK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3330182b-e13c-4ef8-91eb-8770a602de68_640x640.png 424w, https://substackcdn.com/image/fetch/$s_!AGiK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3330182b-e13c-4ef8-91eb-8770a602de68_640x640.png 848w, https://substackcdn.com/image/fetch/$s_!AGiK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3330182b-e13c-4ef8-91eb-8770a602de68_640x640.png 1272w, https://substackcdn.com/image/fetch/$s_!AGiK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3330182b-e13c-4ef8-91eb-8770a602de68_640x640.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><blockquote><p>&#8220;I shouldn&#8217;t be able to even reach that from here&#8221;</p></blockquote><p>This is the first in a series of articles detailing the goals, objectives, and approach to Attack Surface Management (ASM) and ASM as-a-service (ASMaaS).</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.blacklanternsecurity.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Black Lantern Security (BLSOPS)! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>A few caveats:</p><p>- BLS provides ASM as a service (<a href="https://www.blacklanternsecurity.com/services/">ASMaaS</a>) and almost all of the content in these articles is derived from interactions with our customers. </p><p>- <a href="https://github.com/blacklanternsecurity/bbot">BBOT</a> is our FOSS tool that makes our ASMaaS possible. BBOT Pro and BBOT Enterprise are currently being developed. These articles will ONLY discuss the FOSS version.</p><p>- This is not Gospel. This is not necessarily even canon. These are more or less tales from the trenches that enabled us to design and develop ASMaaS and <a href="https://github.com/blacklanternsecurity/bbot">BBOT</a> to drive down customer risk.</p><p>- There is competing terminology that BLS did not create or define. An attempt will be made to disambiguate where possible, but this is by no means the final word.</p><p>&#8230; and we&#8217;re off.</p><h3>ASM Goals and Objectives</h3><blockquote><p>&#8220;If someone can interact with it, you need to know about it.&#8221; </p></blockquote><p>In the simplest of terms, the primary goal for ASM is to continuously minimize the risk associated with internet-facing applications, services, and systems. (For the remainder of this article these will be collectively referred to as &#8220;assets&#8221;) . </p><p>Supporting Objectives Include:</p><p>- Continuous Discovery and Enumeration of:</p><p>&#9;- IPs</p><p>&#9;- Ports</p><p>&#9;- Deployed Technologies</p><p>&#9;- Subdomains</p><p>&#9;- Email Addresses</p><p>&#9;- Vulnerabilities</p><p>&#9;- Misconfigurations</p><p>- Threat Intelligence Gathering and Analysis based on Business and Attacker profiles</p><p>- Continuous Risk Assessment and Asset Prioritization</p><p>- Triage and Remediation for Vulnerable Assets based on Priority and Risk </p><p>- Verification Testing and Risk Reduction</p><p>Reading through the Goals and Objectives above, it should be clear that ASM draws from multiple security controls and categories.  The <a href="https://www.blacklanternsecurity.com/services/">ASMaaS BLS</a> provides today includes elements of or touchpoints with :</p><p>- Asset Management</p><p>- Vulnerability and Patch Management</p><p>- Risk Management</p><p>- Threat Intelligence Gathering and Analysis</p><p>- Continuous Penetration Testing</p><p>- Incident Response</p><p>There are also relatively <a href="https://scythe.io/library/top-10-breach-and-attack-simulation-bas-tools">new services and capabilities</a> being offered that overlap with what has previously been defined as ASM. These include (but are not limited to):</p><p>- Breach and Attack Simulation (BaS)</p><p>- Adversarial Exposure Validation (AEV)</p><p>- Automated Penetration Testing</p><p>- Continuous Automated Red Teaming (CART)</p><p>A detailed analysis of Gartner categories is beyond the scope of this article. However, the overlap with the Goals and Objectives of ASM seems unavoidable. For example:</p><blockquote><p>&#8220;BAS and, to a greater extent, AEV provide a strategic, proactive approach to strengthening cybersecurity defenses. Unlike sporadic audits or single-point penetration tests, these platforms deliver continuous, automated validation of your security posture, pinpointing strengths, exposing weaknesses, and guiding remediation.&#8221; <a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a></p></blockquote><p>At the risk of oversimplifying things, each category of security controls &#8220;serves at the pleasure&#8221; of Risk Management; everything is (and should be) driven by the choices the Business makes with regard to risk. Policies, security controls, applications, and utilities are selected and deployed based on the Risk Management Strategy and Objectives of the Business. In an industry where new categories, terminology, and acronyms appear every week, this is where we are choosing to plant our flag. Basically, &#8220;I don&#8217;t care what you call it, if it doesn&#8217;t fit into our overall Risk Management Strategy and satisfy these requirements, we don&#8217;t need it&#8221;.</p><h3>The Business Case for ASM: The CISO Needs Answers &#8230; like now</h3><blockquote><p>&#8220;Wait, so how did they get in again?&#8221; </p></blockquote><p>The CISOs we work with are well read and hyper-aware. They answer to the board and when they need answers they let you know in no uncertain terms. More often than not, Executive Leadership will have read about an attack or breach on the front page of the Wallstreet Journal OR received a panicked call from a CISO colleague OR seen something on the news OR all of the above. The immediate ask to their Cybersecurity Leadership Team is, &#8220;Do we need to worry about this?&#8221;</p><p>If statistics and reporting can be believed, then there is a good chance that whatever awfulness has occurred began its life as an attack against one or more public-facing assets.  To illustrate this point:</p><blockquote><p>&#8220;One in four attacks (26%) against critical infrastructure exploited vulnerabilities in common public-facing or internet accessible applications. This percentage is even higher (30%) for all incidents that X-Force responded to in 2024.&#8221; <a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a></p></blockquote><blockquote><p>&#8220;VPN and edge devices accounted for 22% of exploitation of vulnerabilities vectors in breaches, which is almost eight times the 3% found in the prior year&#8217;s report.&#8221;  <a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-3" href="#footnote-3" target="_self">3</a></p></blockquote><p>If this is case, then this is where ASM really shines. If we have a basic understanding of the initial attack vector, including the vulnerability and primary targets, then ASM enables our team to quickly answer the following questions and effectively communicate back to the CISO:</p><p>- Does the targeted software or technology exist anywhere in our Business?</p><p>- If so, what Business workflows are attached to the assets running the targeted software or technology?</p><p>- Of those managed assets, which are vulnerable to the most recent attack?</p><p>- What are the potential impacts of a successful attack?</p><p>- How do we remediate in the near-, mid-, and long-term based on the risk?</p><p>- What&#8217;s the timeline for the fix and when can we tell the Board &#8220;all is well&#8221;?</p><p>These scenarios are consistent with BLS Operations across its customer base as an ASMaaS provider. ASM Analysts are constantly gathering data with regard to new and emerging threats as well as the most prominent vectors of attack.  For the current calendar year BLS has executed 17 &#8220;Halting Actions&#8221; for a single ASMaaS customer alone. &#8220;Halting Actions&#8221; (HAs) are initiated when a vulnerability or misconfiguration is discovered in an internet-facing asset that constitutes an urgent and significant risk to the Business (life, limb, or property). When a halting action is called, all ASM services and activities are stopped for the vulnerable class of assets until the vulnerability is remediated and the fix is verified and validated.  With the <a href="https://secureframe.com/blog/data-breach-statistics">global average cost of a data breach</a> at <strong>roughly 4 million USD</strong> in 2025, the negative impacts to the Business would have been significant if one or more of these vulnerabilities had resulted in a breach (17 HAs @ ~ 4 million USD per HA = <strong>68 million USD</strong> )</p><p>A large part of the value proposition of ASM is that it is done continuously;  the team is always prepared, engaged, and driving down risk regardless of whether that call ever comes from the CISO. The team is always working the ASM methodology asking:</p><p>- What do we own and expose to the internet?</p><p>- Do all of these things have legitimate Business requirements that justify the exposure?</p><p>- Is any of it vulnerable?</p><p>- How would it be attacked?</p><p>- What would happen if an attacker got hold of it and is it bad enough that we have to fix it right now?</p><p>- How do we make sure this doesn&#8217;t happen again?</p><p>Hopefully this short introduction has provided a high-level overview of ASM and highlighted the potential value it can bring to a Business. In the next article we&#8217;ll define ASM metrics and Key Performance Indicators (KPIs). Mores specifically, it will address:</p><p>1. What data and metrics are gathered and reported?</p><p>2. Based on the data and metrics gathered, what are the ASM KPIs?</p><p>3. How do the KPIs translate to positive impacts on the business? (i.e., why should our CISO give a sh*t ?)</p><p>Follow-on articles will detail the ASM methodology outlined above and include detailed technical walkthroughs for deploying and using <a href="https://github.com/blacklanternsecurity/bbot">BBOT</a> for ASM.</p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>https://scythe.io/library/top-10-breach-and-attack-simulation-bas-tools</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>https://www.ibm.com/thought-leadership/institute-business-value/en-us/report/2025-threat-intelligence-index</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-3" href="#footnote-anchor-3" class="footnote-number" contenteditable="false" target="_self">3</a><div class="footnote-content"><p>https://www.verizon.com/business/resources/reports/dbir/</p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[BBOT Security Advisory - gitdumper, unarchive]]></title><description><![CDATA[BBOT Gets Its First CVEs]]></description><link>https://blog.blacklanternsecurity.com/p/bbot-security-advisory-gitdumper</link><guid isPermaLink="false">https://blog.blacklanternsecurity.com/p/bbot-security-advisory-gitdumper</guid><dc:creator><![CDATA[TheTechromancer]]></dc:creator><pubDate>Thu, 09 Oct 2025 15:54:01 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/5395776b-6937-49fd-819f-f48f9618bf12_2000x1150.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>As a security company, we&#8217;re no strangers to software bugs. This blog consists mostly of new CVEs discovered by our operators on pentests, and of open source software we publish for the hacker community, like <a href="https://github.com/blacklanternsecurity/bbot">BBOT</a>. </p><p>But as any software company learns sooner or later, software is meant to be broken, and after 10 years of breaking other people&#8217;s, the time has finally come to break ours. </p><p>We&#8217;re referring to four new BBOT CVEs discovered by <a href="https://x.com/justinsteven">Justin Steven</a>, a researcher at <a href="https://x.com/TantoSecurity">Tanto Security</a>. Two of these are critical severity, and introduce the possibility for a clever defender to get code execution on the attacker&#8217;s system during certain BBOT scans. Fixes have been pushed in BBOT 2.7.0. </p><p>Affected BBOT versions are &lt; 2.7.0. If you&#8217;re still running these old versions, and if you&#8217;re scanning a target known for their spicy honeypots, you may be in danger. See below for details. </p><h2>BBOT CVEs</h2><h4><strong><a href="https://www.cve.org/cverecord?id=CVE-2025-10281">CVE-2025-10281</a></strong> - [4.7 MEDIUM] - Insecure URL Handling in git_clone leads to Leaked API Key</h4><p>When executing a scan with a GitHub API key, the target exposes a specially crafted git repo link to steal your API key. It was resolved by fixing the URL validation to ensure GitHub API keys are sent only to github.com URLs.</p><h4><strong><a href="https://www.cve.org/cverecord?id=CVE-2025-10282">CVE-2025-10282</a></strong> - [4.7 MEDIUM] - GitLab Domain Confusion in gitlab Leaks API Key</h4><p>When executing a scan with a GitLab API key, the target hosts a web server pretending to be an on-prem Gitlab server, which steals your API key. It was fixed by separating GitLab into two modules: one for on-prem, and one for GitLab.com.</p><h4><strong><a href="https://www.cve.org/cverecord?id=CVE-2025-10283">CVE-2025-10283</a></strong> - [9.6 CRITICAL] - Improper .git Sanitization in gitdumper Enables RCE  </h4><p>A target being scanned by BBOT hosts a malicious git repo on one of their webservers, which upon being downloaded and checked out by gitdumper, results in RCE on the scanner system. This was fixed by performing aggressive sanitization on the git folder (deleting the git index, config, and all hooks) before running `git checkout`. </p><h4><strong><a href="https://www.cve.org/cverecord?id=CVE-2025-10284">CVE-2025-10284</a></strong> - [9.6 CRITICAL] - Improper Archive Extraction in unarchive Enables RCE</h4><p>The target hosts a collection of specially crafted compression archives, e.g. tar files, which upon subsequent extraction, could write arbitrary files, leading to RCE. This was due to the possibility of a directory name collision, leading to extraction to a non-empty folder. We fixed it by aborting extraction early if the destination folder already exists.</p><h2>Disclosure</h2><p>We are super grateful to Justin for catching these vulns, and especially for his gracious handling of the disclosure, which helped make what could have been a stressful situation as manageable as possible. Having plenty of notice and helpful feedback during the patching process enabled us to craft solid fixes and push them out in a timely manner. </p><h4>Timeline:</h4><ul><li><p>July 4th, 2025 - Initial disclosure </p></li><li><p>July 4th, 2025 - Work begins on patches </p></li><li><p>August 25th, 2025 - PoCs finalized </p></li><li><p>August 25th, 2025 - Patches finalized </p></li><li><p>September 11th, 2025 - Patches approved </p></li><li><p>September 11th, 2025 - Patches merged into Dev </p></li><li><p>September 11th, 2025 - Patches merged into Stable </p></li><li><p>September 11th, 2025 - Patches published to Pypi </p></li><li><p>October 8th, 2025 - Blog, CVE Release</p></li></ul><p>Justin will be revealing more details, including PoC exploits, in his <a href="https://kawaiicon.org/talks/tool-buzzkill/">talk at Kawaiicon</a> on November 8th.</p><h2>Closing Notes</h2><p>Despite catching us a bit off guard, these bugs honed our security process, and demonstrated the best aspects of open source. The <code>gitdumper</code> and <code>unarchive</code> modules responsible for the critical CVEs were contributed by the community. Similarly, their open code helped the community identify and report the CVEs. This kind of collaboration is exactly why we believe in open source and will continue to push forward for more (and more secure) open source tools!</p><p>Justin is a talented researcher and we&#8217;re excited to see his talk. The exploits themselves, particularly the ones for gitdumper and unarchive, are the product of significant effort on his part. As security researchers, we recognize this and have to admit, they are pretty cool!</p><p>Thanks again to Justin and the team at Tanto Security. We appreciate the tough love and all the effort put towards improving BBOT. </p><p></p><h4>How to Update </h4><p>Stay safe and patch your stuff! Use these commands to update BBOT: </p><p><code>pip install --upgrade bbot  </code></p><p><code>pipx upgrade bbot  </code></p><p></p><h4>How to Report Vulns </h4><p>If you discover a vuln in BBOT or another BLS tool, please report it via GitHub&#8217;s security advisory feature: </p><p>https://github.com/blacklanternsecurity/bbot/security </p><p>A CVE will earn you some cool BLS swag, including a challenge coin! </p><p></p><p>Happy hacking!</p>]]></content:encoded></item><item><title><![CDATA[How to Eat an Entire Elephant]]></title><description><![CDATA[Scanning the Internet with BBOT]]></description><link>https://blog.blacklanternsecurity.com/p/how-to-eat-an-entire-elephant</link><guid isPermaLink="false">https://blog.blacklanternsecurity.com/p/how-to-eat-an-entire-elephant</guid><dc:creator><![CDATA[Micheal Reski]]></dc:creator><pubDate>Fri, 18 Apr 2025 13:20:06 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/36162d21-d35a-4edc-b148-3334f789d594_2048x2048.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!V_eb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5633266-7af4-4cb6-8c04-e570db1fd2cb_2048x2048.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!V_eb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5633266-7af4-4cb6-8c04-e570db1fd2cb_2048x2048.jpeg 424w, https://substackcdn.com/image/fetch/$s_!V_eb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5633266-7af4-4cb6-8c04-e570db1fd2cb_2048x2048.jpeg 848w, https://substackcdn.com/image/fetch/$s_!V_eb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5633266-7af4-4cb6-8c04-e570db1fd2cb_2048x2048.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!V_eb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5633266-7af4-4cb6-8c04-e570db1fd2cb_2048x2048.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!V_eb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5633266-7af4-4cb6-8c04-e570db1fd2cb_2048x2048.jpeg" width="728" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a5633266-7af4-4cb6-8c04-e570db1fd2cb_2048x2048.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:602726,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!V_eb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5633266-7af4-4cb6-8c04-e570db1fd2cb_2048x2048.jpeg 424w, https://substackcdn.com/image/fetch/$s_!V_eb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5633266-7af4-4cb6-8c04-e570db1fd2cb_2048x2048.jpeg 848w, https://substackcdn.com/image/fetch/$s_!V_eb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5633266-7af4-4cb6-8c04-e570db1fd2cb_2048x2048.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!V_eb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5633266-7af4-4cb6-8c04-e570db1fd2cb_2048x2048.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1>Safari Adventure</h1><p>In a recent research project, we focused on three CVEs that Black Lantern Security operators frequently encounter in customer environments. Leveraging <a href="https://github.com/blacklanternsecurity/bbot">BBOT</a> as our primary tool, we set out to identify and enumerate these vulnerabilities across the internet. In this article, we&#8217;ll share the journey of our exploration&#8212;tracking down these &#8220;herds&#8221; of technologies, overcoming challenges along the way, and uncovering key insights during our adventure.</p><h1>Background</h1><p>One of the most compelling use cases for BBOT is its ability to move directly from the discovery phase to identifying exploitable vulnerabilities in a single step. In many cases, it can quickly pinpoint serious issues with minimal, non-intrusive checks. This is largely due to powerful modules unique to BBOT, such as <a href="https://github.com/blacklanternsecurity/badsecrets">Badsecrets</a>. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.blacklanternsecurity.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Black Lantern Security (BLSOPS)! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>For large-scale internet vulnerability scanning, Nuclei is often the first tool people think of, and for good reason. We have a lot of respect for Nuclei and see it as an essential part of the infosec toolkit. However, some vulnerabilities are simply too complex to be handled within the limits of a Nuclei template, and this is where BBOT really shines. </p><p>A number of these vulnerabilities have a habit of resurfacing across different environments and have appeared repeatedly in many BLS customer environments. This got us wondering: just how widespread are these issues across the internet? While testing for a specific customer is manageable, performing the same checks on a huge scale is a much bigger challenge. </p><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;TheTechromancer&quot;,&quot;id&quot;:50922548,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/dc6a434c-47d5-4202-99b0-2810abb813e5_1024x1024.jpeg&quot;,&quot;uuid&quot;:&quot;cc6c95cb-02d8-4e6d-89af-23a179d844e7&quot;}" data-component-name="MentionToDOM"></span> has already <a href="https://www.youtube.com/watch?feature=shared&amp;v=bCNnloBaw_U">talked</a> about how BBOT can explode with results if you are too inclusive with your targets, and these results could quickly become the entire internet with some careless configuration settings. Recursion is BBOT&#8217;s secret ingredient, but it also can spiral into a void of unending depths of the internet if not carefully controlled and limited. </p><p>With this in mind, we began a research project to capture the percentage of internet-facing systems vulnerable to exploitation through some of the most prevalent unauthenticated web vulnerabilities we discover, focusing on those that are readily identifiable using BBOT&#8217;s built-in modules.</p><p>To do so, we knew we needed to focus our efforts on these specific technologies. But how do you go about compiling a list of those? Thankfully, sites like <a href="https://www.shodan.io/">Shodan.io</a>, <a href="https://builtwith.com/">BuiltWith</a>, <a href="https://www.whatruns.com/">WhatRuns</a>, and <a href="https://ful.io/">Ful.io</a> have already done much of the heavy lifting. These platforms catalog and inventory externally facing web technologies, providing us with a comprehensive starting point to target the specific technologies associated with the vulnerabilities we were researching.</p><h1>The Elephant</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bz1O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F793d80b1-8afb-4b8e-b745-5d8cee536b6e_2048x2048.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bz1O!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F793d80b1-8afb-4b8e-b745-5d8cee536b6e_2048x2048.jpeg 424w, https://substackcdn.com/image/fetch/$s_!bz1O!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F793d80b1-8afb-4b8e-b745-5d8cee536b6e_2048x2048.jpeg 848w, https://substackcdn.com/image/fetch/$s_!bz1O!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F793d80b1-8afb-4b8e-b745-5d8cee536b6e_2048x2048.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!bz1O!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F793d80b1-8afb-4b8e-b745-5d8cee536b6e_2048x2048.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bz1O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F793d80b1-8afb-4b8e-b745-5d8cee536b6e_2048x2048.jpeg" width="1456" height="1456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/793d80b1-8afb-4b8e-b745-5d8cee536b6e_2048x2048.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:585550,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bz1O!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F793d80b1-8afb-4b8e-b745-5d8cee536b6e_2048x2048.jpeg 424w, https://substackcdn.com/image/fetch/$s_!bz1O!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F793d80b1-8afb-4b8e-b745-5d8cee536b6e_2048x2048.jpeg 848w, https://substackcdn.com/image/fetch/$s_!bz1O!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F793d80b1-8afb-4b8e-b745-5d8cee536b6e_2048x2048.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!bz1O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F793d80b1-8afb-4b8e-b745-5d8cee536b6e_2048x2048.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We focused our efforts on three major web technologies:</p><ul><li><p>Telerik: A suite of UI components and tools for building web applications, most commonly used with .NET and JavaScript frameworks.</p></li><li><p>DotNetNuke: An open-source content management system and web application framework for building and managing websites on the .NET platform.</p></li><li><p>AjaxPro: A third-party library that enables AJAX calls to server-side methods in ASP.NET applications.</p></li></ul><p>We used BBOT&#8217;s modules to validate each web technology and then detect whether the specific CVE existed on the website:</p><ul><li><p><a href="https://github.com/blacklanternsecurity/bbot/blob/stable/bbot/modules/telerik.py">Telerik</a>: <a href="https://nvd.nist.gov/vuln/detail/CVE-2017-9248">CVE-2017-9248</a></p></li><li><p><a href="https://github.com/blacklanternsecurity/bbot/blob/stable/bbot/modules/dotnetnuke.py">DotNetNuke</a>: <a href="https://nvd.nist.gov/vuln/detail/cve-2017-9822">CVE-2017-9822</a></p></li><li><p><a href="https://github.com/blacklanternsecurity/bbot/blob/stable/bbot/modules/ajaxpro.py">AjaxPro</a>: <a href="https://nvd.nist.gov/vuln/detail/CVE-2021-23758">CVE-2021-23758</a></p></li></ul><p>Using the aforementioned services for inventorying web technologies across the web, we set out to catalog each site associated with the technology and began our analysis. A few caveats need to be defined before we continue.</p><h2>Caveats</h2><ul><li><p>We used the services mentioned to generate a list of sites using the particular web technology. This is not all-inclusive and does not account for custom implementations of the technology.</p></li><li><p>We did not perform directory brute forcing or conduct any other in-depth discovery efforts to find custom endpoints of the web technology. All technologies were assumed in their default install location/configuration. </p></li><li><p>We did not do any additional analysis on the site outside of the default detection mechanism with BBOT. Operators can choose to do additional scanning with the recursion engine of BBOT; however, this was outside the scope of our research.</p></li><li><p>All scanning was conducted passively using BBOT and its modules, which simply browsed publicly accessible web pages to identify version information and technology fingerprints. No intrusive or active exploitation techniques were used. While we developed some custom tooling to assist in validating version-based vulnerabilities, these tools operated without interacting with the sites in any harmful or unauthorized manner. We will not be releasing the specific methods or technical details used for validation.</p></li></ul><p>Our approach focused on targeting the most easily identifiable and vulnerable web technologies&#8212;the sickest and weakest of the attack surface herd. These were systems that could be quickly observed and validated without the need for extensive analysis or additional tools beyond the BBOT scan.</p><h2>Finding the Elephant</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RRNX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32843d33-acdd-4196-be7f-fbed8fd5fb53_2048x2048.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RRNX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32843d33-acdd-4196-be7f-fbed8fd5fb53_2048x2048.jpeg 424w, https://substackcdn.com/image/fetch/$s_!RRNX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32843d33-acdd-4196-be7f-fbed8fd5fb53_2048x2048.jpeg 848w, https://substackcdn.com/image/fetch/$s_!RRNX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32843d33-acdd-4196-be7f-fbed8fd5fb53_2048x2048.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!RRNX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32843d33-acdd-4196-be7f-fbed8fd5fb53_2048x2048.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RRNX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32843d33-acdd-4196-be7f-fbed8fd5fb53_2048x2048.jpeg" width="1456" height="1456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/32843d33-acdd-4196-be7f-fbed8fd5fb53_2048x2048.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:606295,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RRNX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32843d33-acdd-4196-be7f-fbed8fd5fb53_2048x2048.jpeg 424w, https://substackcdn.com/image/fetch/$s_!RRNX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32843d33-acdd-4196-be7f-fbed8fd5fb53_2048x2048.jpeg 848w, https://substackcdn.com/image/fetch/$s_!RRNX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32843d33-acdd-4196-be7f-fbed8fd5fb53_2048x2048.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!RRNX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32843d33-acdd-4196-be7f-fbed8fd5fb53_2048x2048.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In order to validate the web technology, we first needed to execute a BBOT scan that would take the list of targets and check for the web technology based on the detection logic defined in each of the modules. For example, the most common <a href="https://github.com/blacklanternsecurity/bbot/blob/stable/bbot/modules/telerik.py#L106">Telerik endpoint</a> is <code>Telerik.Web.UI.DialogHandler.aspx,</code> which, combined with the detection logic in the module, validates that Telerik is actually present. Using this as our indicator, we could utilize the <a href="https://github.com/blacklanternsecurity/bbot/blob/stable/bbot/modules/telerik.py">BBOT module</a> to do the rest of the work for us.</p><h3>Problem 1</h3><p>The first problem we encountered was the sheer size of the elephant we were trying to identify. Typical BBOT scans start with a high-level target (e.g., example.com) and then use the recursion to find other in-scope assets. BBOT is designed to discover its own additional targets. We may manually provide some additional domains if we have them, but providing thousands of domains is not typical for most BBOT use cases. <br><br>With just Telerik UI alone, we inventoried over 120,000 different sites that reported using this technology. In order to accomplish this discovery, we had to execute 12 different scans on this web technology alone. Taking smaller bites of this technology, we were still able to consume the meal, albeit at a slower pace. One of the magical things about BBOT is its recursion, but this magic can be a double-edged sword. At the time of this research was being conducted, there was a 10,000-domain limit in place, however this has been fixed in a recent revision.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a> <a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a></p><h3>Problem 2</h3><p>BBOT&#8217;s magic lies within its recursive capabilities, which enable the discovery of an organization&#8217;s vast digital landscape by repeatedly expanding on initial targets. Starting with a relatively small target list, BBOT can use the modules and recursion to uncover an expansive surface hidden to the untrained eye. <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;TheTechromancer&quot;,&quot;id&quot;:50922548,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/dc6a434c-47d5-4202-99b0-2810abb813e5_1024x1024.jpeg&quot;,&quot;uuid&quot;:&quot;11d2b054-a597-40b6-b71e-e9bacc15d9ca&quot;}" data-component-name="MentionToDOM"></span> discusses this process in his talk about recursion, in a link posted above.</p><p>We know that our target list is already larger than most scan results and that we have recursion functionality that can blow up scans, both in data returned and length to completion. <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Paul Mueller&quot;,&quot;id&quot;:99407546,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/b6543883-b2b4-45d2-bdc0-1d00e556d07a_200x200.jpeg&quot;,&quot;uuid&quot;:&quot;7bdb35bc-98bd-4fc9-b30d-e07a9ad92458&quot;}" data-component-name="MentionToDOM"></span> and <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;TheTechromancer&quot;,&quot;id&quot;:50922548,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/dc6a434c-47d5-4202-99b0-2810abb813e5_1024x1024.jpeg&quot;,&quot;uuid&quot;:&quot;40bcefb3-af24-4078-93d9-d6aa1c36549f&quot;}" data-component-name="MentionToDOM"></span> made this easier in a recent update to BBOT with <a href="https://blog.blacklanternsecurity.com/p/bbot-20-release-announcement">Presets</a>. BBOT&#8217;s presets feature allows us to tailor the scope and focus of our scans by selecting specific modules and configuring target discovery parameters. This enables us to limit a scan with predefined web technologies&#8217; modules to the discovered targets, ensuring a more efficient and targeted exploration of the organization&#8217;s digital landscape. </p><p>An example preset YAML file that could be used:</p><pre><code>config:
  scope:
    strict: true
modules:
- portscan
- telerik
output_modules:
- json
- txt</code></pre><p>This would force BBOT to keep a strict scope of only the targets listed in the target file, isolate just the portscan and Telerik module, and output to JSON and TXT formats. This would solve our problem of trying to eat the entire herd of elephants instead of just the specific elephant we&#8217;re after.</p><h3>Problem 3</h3><p>Besides the hard limits of the size of the elephant and making sure we stuck to our specific target elephant, we also had to deal with the hardware requirements to do the survey. Typically, a BBOT scan doesn&#8217;t require more than 2 GB of memory and 2 CPUs. A VM with this size can easily accomplish the vast majority of discovery work when the targets are under 1,000 and a moderate selection of modules is used. However, when targeting web technologies as pervasive as the three we are looking for, a VM of this size isn&#8217;t enough juice.</p><p>For this research, we used a VM with 4 vCPU and 8 GB of memory, with 4 GB of swap space. Using the larger resource allocation allowed us to run the (majority of the) scans to completion. Most scans took an average of 1 hour and 30 minutes to complete. For comparison, when we work with our enterprise customers for our Attack Surface Management (ASM) service and execute intense scans, those can last well over 8+ hours (depending in modules used and configurations set).</p><h3>Problem 4</h3><p>Another issue that can arise with intense scans is ending up on a deny list. If the target utilizes a reputation-based service or WAF like <a href="https://www.brightcloud.com/">BrightCloud</a> or <a href="https://www.cloudflare.com/">CloudFlare</a>, this can block our scans and end up giving a false negative for the result. BBOT has built-in features that allow it to be run in an agent mode, allowing a decentralized infrastructure. Our road map for a new release will have our I/O feature set, which will extend this capability.</p><p>We did not attempt to resolve this issue; if a WAF was present and blocked our detection mechanism, we simply moved on to the next target.</p><h2>Eating the Elephant</h2><p>Now that we had all of our targets, configuration, and assets ready, we could finally head out on this safari. First, we used our preset configuration and a subset of our target list and began enumeration.</p><h3>Telerik Herd</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!p5rX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb188f1-2c34-4b4a-ac4b-98b7950e1baa_1024x1024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!p5rX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb188f1-2c34-4b4a-ac4b-98b7950e1baa_1024x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!p5rX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb188f1-2c34-4b4a-ac4b-98b7950e1baa_1024x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!p5rX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb188f1-2c34-4b4a-ac4b-98b7950e1baa_1024x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!p5rX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb188f1-2c34-4b4a-ac4b-98b7950e1baa_1024x1024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!p5rX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb188f1-2c34-4b4a-ac4b-98b7950e1baa_1024x1024.jpeg" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2fb188f1-2c34-4b4a-ac4b-98b7950e1baa_1024x1024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:228668,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!p5rX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb188f1-2c34-4b4a-ac4b-98b7950e1baa_1024x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!p5rX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb188f1-2c34-4b4a-ac4b-98b7950e1baa_1024x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!p5rX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb188f1-2c34-4b4a-ac4b-98b7950e1baa_1024x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!p5rX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb188f1-2c34-4b4a-ac4b-98b7950e1baa_1024x1024.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>Background</h4><p>CVE-2017-9248 is a cryptographic weakness in Telerik UI for ASP.NET AJAX DialogHandler, allowing attackers to gain access to a file manager utility that supports arbitrary file uploads, often resulting in remote code execution (RCE). The vulnerability arises from an information leak in error messages during the decryption of Telerik &#8220;DialogParameters,&#8221; a set of encrypted configuration values echoed back to the server as user input. </p><p>Attackers can exploit these error messages to systematically deduce the <code>Telerik.Web.UI.DialogParametersEncryptionKey</code>. With this key, they can decrypt and re-encrypt the parameters, gaining unauthorized access to the file upload utility, which they can then abuse to upload and execute files on the server.</p><h4>Discovery</h4><p>Targeting the Telerik software first, we kicked off our initial segment scan to identify endpoints reported by the list we generated. Out of the first 10,000 assets, we only were able to discover 567 &#8220;DialogHandler&#8221; endpoints, which is only a roughly 5.7% true positive rate. While there were other Telerik endpoints discovered that may be associated with other CVEs, we focused on this specific endpoint for our research. Of the 567 endpoints we validated, only 31 were found to be vulnerable, representing approximately 5.5% of the total validated endpoints. This is still a fairly large number for a 8-year-old vulnerability.</p><p>Extending this logic to the rest of the target list yielded 7,635 total sites that had the &#8220;DialogHandler&#8221; endpoint, of which 1,291 were still vulnerable to the CVE. In other words, approximately 17% (nearly one fifth) of publicly accessible Telerik sites had vulnerabilities that could be exploited to allow unauthorized file uploads. The discovery of Telerik endpoints in assessments is always exciting for BLS operators, as it often presents a high-probability and low-effort opportunity for success.</p><div id="datawrapper-iframe" class="datawrapper-wrap outer" data-attrs="{&quot;url&quot;:&quot;https://datawrapper.dwcdn.net/2dB2G/2/&quot;,&quot;thumbnail_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/60116857-4832-498e-8443-448ce23d2b83_1260x660.png&quot;,&quot;thumbnail_url_full&quot;:&quot;&quot;,&quot;height&quot;:397,&quot;title&quot;:&quot;Telerik Catalog Sites&quot;,&quot;description&quot;:&quot;Sites that were reported that were using the Telerik Framework&quot;}" data-component-name="DatawrapperToDOM"><iframe id="iframe-datawrapper" class="datawrapper-iframe" src="https://datawrapper.dwcdn.net/2dB2G/2/" width="730" height="397" frameborder="0" scrolling="no"></iframe><script type="text/javascript">!function(){"use strict";window.addEventListener("message",(function(e){if(void 0!==e.data["datawrapper-height"]){var t=document.querySelectorAll("iframe");for(var a in e.data["datawrapper-height"])for(var r=0;r<t.length;r++){if(t[r].contentWindow===e.source)t[r].style.height=e.data["datawrapper-height"][a]+"px"}}}))}();</script></div><p>One specific consideration regarding the Telerik herd is the fact that multiple other CVEs for Telerik could also be vulnerable (e.g., <a href="https://nvd.nist.gov/vuln/detail/cve-2017-11317">CVE-2017-11317</a>, <a href="https://nvd.nist.gov/vuln/detail/cve-2019-18935">CVE-2019-18935</a>, <a href="https://nvd.nist.gov/vuln/detail/CVE-2024-1801">CVE-2024-1801</a>). However, these additional CVEs were not in our scope to assess. Additionally, not all Telerik sites have the &#8220;DialogHandler&#8221; endpoint enabled, and not all installments of Telerik use the default locations; this was evident in the percentage of reported sites using Telerik vs. the true positive endpoints discovered (12,755/122,698; 11%).</p><div id="datawrapper-iframe" class="datawrapper-wrap outer" data-attrs="{&quot;url&quot;:&quot;https://datawrapper.dwcdn.net/JssDt/1/&quot;,&quot;thumbnail_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/056cda96-eafb-45e4-af56-92ceb676d728_1260x660.png&quot;,&quot;thumbnail_url_full&quot;:&quot;&quot;,&quot;height&quot;:381,&quot;title&quot;:&quot;Vulnerable Telerik Sites&quot;,&quot;description&quot;:&quot;Breakdown of sites that had the DialogHandler endpoint and were vulnerable&quot;}" data-component-name="DatawrapperToDOM"><iframe id="iframe-datawrapper" class="datawrapper-iframe" src="https://datawrapper.dwcdn.net/JssDt/1/" width="730" height="381" frameborder="0" scrolling="no"></iframe><script type="text/javascript">!function(){"use strict";window.addEventListener("message",(function(e){if(void 0!==e.data["datawrapper-height"]){var t=document.querySelectorAll("iframe");for(var a in e.data["datawrapper-height"])for(var r=0;r<t.length;r++){if(t[r].contentWindow===e.source)t[r].style.height=e.data["datawrapper-height"][a]+"px"}}}))}();</script></div><h3>DotNetNuke Herd</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ETt6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fb2689f-463e-4092-8afc-858ec3a1f707_1024x1024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ETt6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fb2689f-463e-4092-8afc-858ec3a1f707_1024x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ETt6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fb2689f-463e-4092-8afc-858ec3a1f707_1024x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ETt6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fb2689f-463e-4092-8afc-858ec3a1f707_1024x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ETt6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fb2689f-463e-4092-8afc-858ec3a1f707_1024x1024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ETt6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fb2689f-463e-4092-8afc-858ec3a1f707_1024x1024.jpeg" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8fb2689f-463e-4092-8afc-858ec3a1f707_1024x1024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:185142,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ETt6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fb2689f-463e-4092-8afc-858ec3a1f707_1024x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ETt6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fb2689f-463e-4092-8afc-858ec3a1f707_1024x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ETt6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fb2689f-463e-4092-8afc-858ec3a1f707_1024x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ETt6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fb2689f-463e-4092-8afc-858ec3a1f707_1024x1024.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>Background</h4><p>CVE-2017-9822 is a deserialization vulnerability in DotNetNuke (DNN). It affects versions 5.0.0 through 9.3.0 and can lead to RCE. The vulnerability is tied to the <code>DNNPersonalization</code> cookie, which is used to store personalization settings for anonymous users. </p><p>Exploitation occurs when custom application code (or pages, such as custom 404 error pages&#8212;a common default) processes the <code>DNNPersonalization</code> cookie without properly validating its content. This allows an attacker to craft a malicious serialized object, embed it in the cookie, and trigger its deserialization on the server.</p><h4>Discovery</h4><p>For the DotNetNuke web technology, we had to use custom detection tooling (which we will not be releasing) in order to validate the vulnerability. The default BBOT module triggers a benign exploit validation, which executes code on the server and should only be run with authorized use. We obtained a total of 59,702 sites from the list. The first scan returned a positive rate of 794 out of 10,000 sites vulnerable to the CVE (8%; higher than the percentage from the first Telerik scan).</p><p>Expanding this scan to the rest of the total sites cataloged resulted in 4,485 vulnerable sites running DotNetNuke. Overall, 7.5% were vulnerable to the CVE allowing for code execution. Again, this is with the caveat that the BBOT module only examines default exploitable locations within DotNetNuke. The CVE often manifests itself through custom pages; however, no additional analysis was performed against the sites. Across all of the scans, the technology DotNetNuke was observed on a total of 48,741 sites. Of the sites we positively identified as running DotNetNuke, 9.2% were vulnerable to the CVE.</p><div id="datawrapper-iframe" class="datawrapper-wrap outer" data-attrs="{&quot;url&quot;:&quot;https://datawrapper.dwcdn.net/ZD3VE/1/&quot;,&quot;thumbnail_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8bc0ed62-31a4-4cc3-bfbe-261879dde93a_1260x660.png&quot;,&quot;thumbnail_url_full&quot;:&quot;&quot;,&quot;height&quot;:364,&quot;title&quot;:&quot;DotNetNuke Vulnerable Sites&quot;,&quot;description&quot;:&quot;Breakdown of sites that were running DotNetNuke and were vulnerable&quot;}" data-component-name="DatawrapperToDOM"><iframe id="iframe-datawrapper" class="datawrapper-iframe" src="https://datawrapper.dwcdn.net/ZD3VE/1/" width="730" height="364" frameborder="0" scrolling="no"></iframe><script type="text/javascript">!function(){"use strict";window.addEventListener("message",(function(e){if(void 0!==e.data["datawrapper-height"]){var t=document.querySelectorAll("iframe");for(var a in e.data["datawrapper-height"])for(var r=0;r<t.length;r++){if(t[r].contentWindow===e.source)t[r].style.height=e.data["datawrapper-height"][a]+"px"}}}))}();</script></div><h3>AjaxPro Herd</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hdbH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5a6e689-8117-4f67-a538-45f4a181661f_2048x2048.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hdbH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5a6e689-8117-4f67-a538-45f4a181661f_2048x2048.jpeg 424w, https://substackcdn.com/image/fetch/$s_!hdbH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5a6e689-8117-4f67-a538-45f4a181661f_2048x2048.jpeg 848w, https://substackcdn.com/image/fetch/$s_!hdbH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5a6e689-8117-4f67-a538-45f4a181661f_2048x2048.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!hdbH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5a6e689-8117-4f67-a538-45f4a181661f_2048x2048.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hdbH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5a6e689-8117-4f67-a538-45f4a181661f_2048x2048.jpeg" width="1456" height="1456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b5a6e689-8117-4f67-a538-45f4a181661f_2048x2048.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1130221,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hdbH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5a6e689-8117-4f67-a538-45f4a181661f_2048x2048.jpeg 424w, https://substackcdn.com/image/fetch/$s_!hdbH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5a6e689-8117-4f67-a538-45f4a181661f_2048x2048.jpeg 848w, https://substackcdn.com/image/fetch/$s_!hdbH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5a6e689-8117-4f67-a538-45f4a181661f_2048x2048.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!hdbH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5a6e689-8117-4f67-a538-45f4a181661f_2048x2048.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>Background</h4><p>CVE-2021-23758 is a critical vulnerability in Ajax.NET Professional (AjaxPro) versions prior to 21.11.29.1 that allows attackers to achieve RCE. The issue arises from the framework&#8217;s deserialization process, which fails to adequately validate user-provided JSON data. Attackers can craft malicious payloads that contain specially formatted type information to exploit this weakness, enabling them to execute arbitrary code on the server. </p><p>A key aspect of this vulnerability is its unauthenticated nature, which makes it particularly easy to exploit. Many versions of AjaxPro include a default class, <code>ICartService</code>, which is often enabled by default and exposes a method that accepts arbitrary objects. The combination of a default exploitable class and a lack of authentication greatly increases the risk to applications using the vulnerable framework.</p><h4>Discovery</h4><p>The final herd we went after in our safari was AjaxPro. Again, for this vulnerability, we had to develop custom tooling in order to validate that the site was vulnerable. For AjaxPro, our list contained 12,036 sites running the software&#8212;definitely a smaller scale compared to the first two herds.</p><p>Out of the 12,306 sites, 1,755 were confirmed to be vulnerable to the CVE allowing deserialization. Of all AjaxPro sites being cataloged, 14% were vulnerable to this CVE. This particular herd had the highest false-positive rate out of the safari that required the custom tooling for validation. A large caveat to this web technology is the custom locations often observed. The other two herds are more often deployed with default locations and configurations. We&#8217;ll be looking for ways to improve the detection accuracy of the module in the future.</p><div id="datawrapper-iframe" class="datawrapper-wrap outer" data-attrs="{&quot;url&quot;:&quot;https://datawrapper.dwcdn.net/b3KDp/1/&quot;,&quot;thumbnail_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ec2e5210-0e46-4eee-9ecc-f37e3cd2db86_1260x660.png&quot;,&quot;thumbnail_url_full&quot;:&quot;&quot;,&quot;height&quot;:364,&quot;title&quot;:&quot;AjaxPro Vulnerable Sites&quot;,&quot;description&quot;:&quot;Breakdown of sites that were running AjaxPro and were vulnerable&quot;}" data-component-name="DatawrapperToDOM"><iframe id="iframe-datawrapper" class="datawrapper-iframe" src="https://datawrapper.dwcdn.net/b3KDp/1/" width="730" height="364" frameborder="0" scrolling="no"></iframe><script type="text/javascript">!function(){"use strict";window.addEventListener("message",(function(e){if(void 0!==e.data["datawrapper-height"]){var t=document.querySelectorAll("iframe");for(var a in e.data["datawrapper-height"])for(var r=0;r<t.length;r++){if(t[r].contentWindow===e.source)t[r].style.height=e.data["datawrapper-height"][a]+"px"}}}))}();</script></div><h1>After-Meal Thoughts</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6TkA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb88f39-b5a3-4ea6-9f4c-5d80a13ee862_2048x2048.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6TkA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb88f39-b5a3-4ea6-9f4c-5d80a13ee862_2048x2048.jpeg 424w, https://substackcdn.com/image/fetch/$s_!6TkA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb88f39-b5a3-4ea6-9f4c-5d80a13ee862_2048x2048.jpeg 848w, https://substackcdn.com/image/fetch/$s_!6TkA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb88f39-b5a3-4ea6-9f4c-5d80a13ee862_2048x2048.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!6TkA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb88f39-b5a3-4ea6-9f4c-5d80a13ee862_2048x2048.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6TkA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb88f39-b5a3-4ea6-9f4c-5d80a13ee862_2048x2048.jpeg" width="1456" height="1456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2fb88f39-b5a3-4ea6-9f4c-5d80a13ee862_2048x2048.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:400018,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6TkA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb88f39-b5a3-4ea6-9f4c-5d80a13ee862_2048x2048.jpeg 424w, https://substackcdn.com/image/fetch/$s_!6TkA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb88f39-b5a3-4ea6-9f4c-5d80a13ee862_2048x2048.jpeg 848w, https://substackcdn.com/image/fetch/$s_!6TkA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb88f39-b5a3-4ea6-9f4c-5d80a13ee862_2048x2048.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!6TkA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb88f39-b5a3-4ea6-9f4c-5d80a13ee862_2048x2048.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>After completing our research, we were surprised by the alarmingly high percentages of true positive vulnerabilities identified in these web technologies. It is concerning that despite some of the CVEs dating back as far as 2017, nearly double-digit percentages of vulnerabilities persist for each technology. Combining these vulnerabilities with supplementary discovery methods greatly increases the likelihood of identifying additional exploitable weaknesses.</p><p>While we specifically and carefully enumerate our customers&#8217; organizations and businesses for our ASM service, for this exercise, we adopted a strategy much closer to the way a real attacker&#8217;s campaign would be structured. If an attacker&#8217;s goal is just to find as many vulnerable systems as possible, we have demonstrated how they could leverage the numerous online services that exist solely to identify and track the technologies used by websites. Once a specific technology is identified, vulnerabilities associated with it become much easier to exploit, especially for older technologies with CVEs that have publicly known exploits. Real threat actors are conducting this research constantly, looking for systems to exploit.</p><p>This highlights the need for any company to leverage a robust ASM service, like the one we provide, to continuously monitor and assess their digital footprint. While Black Lantern&#8217;s ASM service does conduct these scans and discover these vulnerabilities, we take it one step further, and our analysts conduct in-depth analyses of attack surfaces. By implementing an ASM program, a business can identify and mitigate these risks before they are exploited.</p><div id="datawrapper-iframe" class="datawrapper-wrap outer" data-attrs="{&quot;url&quot;:&quot;https://datawrapper.dwcdn.net/Sk8Vu/1/&quot;,&quot;thumbnail_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fb81bd35-3a22-4f10-88b2-4aab12c41495_1260x660.png&quot;,&quot;thumbnail_url_full&quot;:&quot;&quot;,&quot;height&quot;:264,&quot;title&quot;:&quot;Technology Breakdown&quot;,&quot;description&quot;:&quot;Breakdown of the different web technologies and number of vulnerable sites&quot;}" data-component-name="DatawrapperToDOM"><iframe id="iframe-datawrapper" class="datawrapper-iframe" src="https://datawrapper.dwcdn.net/Sk8Vu/1/" width="730" height="264" frameborder="0" scrolling="no"></iframe><script type="text/javascript">!function(){"use strict";window.addEventListener("message",(function(e){if(void 0!==e.data["datawrapper-height"]){var t=document.querySelectorAll("iframe");for(var a in e.data["datawrapper-height"])for(var r=0;r<t.length;r++){if(t[r].contentWindow===e.source)t[r].style.height=e.data["datawrapper-height"][a]+"px"}}}))}();</script></div><div><hr></div><p>At Black Lantern Security, we understand the importance of staying ahead of emerging threats. That&#8217;s why our enterprise ASM service, powered by BBOT, continuously monitors your attack surface for the latest vulnerabilities and provides proactive coverage against emerging threats. Start protecting your organization today by signing up for our ASM service. <a href="https://www.blacklanternsecurity.com/contact/">Contact us</a> now to get started and secure your digital footprint!</p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.blacklanternsecurity.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.blacklanternsecurity.com/subscribe?"><span>Subscribe now</span></a></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>This limitation was solved by <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;TheTechromancer&quot;,&quot;id&quot;:50922548,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/dc6a434c-47d5-4202-99b0-2810abb813e5_1024x1024.jpeg&quot;,&quot;uuid&quot;:&quot;78610269-a3f3-4775-9a42-2b967493a503&quot;}" data-component-name="MentionToDOM"></span> in this <a href="https://github.com/blacklanternsecurity/bbot/issues/2134">pull</a> by removing YARA limitations. If you want to do targeted scans, <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;TheTechromancer&quot;,&quot;id&quot;:50922548,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/dc6a434c-47d5-4202-99b0-2810abb813e5_1024x1024.jpeg&quot;,&quot;uuid&quot;:&quot;b304bf4b-35cc-4e43-bf98-68bbea0d6ac0&quot;}" data-component-name="MentionToDOM"></span> also <a href="https://github.com/blacklanternsecurity/bbot/issues/1874">implemented</a><code>--fast</code> as a way to do these scans without doing a full enumeration scan.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>Another recent <a href="https://github.com/blacklanternsecurity/bbot/pull/2396">implementation</a> for better memory optimization  was pushed to help with larger scans.</p></div></div>]]></content:encoded></item><item><title><![CDATA[Tool Release: Webcap]]></title><description><![CDATA[An ultra-lightweight web screenshot tool with advanced features.]]></description><link>https://blog.blacklanternsecurity.com/p/tool-release-webcap</link><guid isPermaLink="false">https://blog.blacklanternsecurity.com/p/tool-release-webcap</guid><dc:creator><![CDATA[TheTechromancer]]></dc:creator><pubDate>Mon, 03 Mar 2025 15:25:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!WSNa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49805b6c-3cd6-49eb-8265-63db6e4b15f1_1108x392.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WSNa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49805b6c-3cd6-49eb-8265-63db6e4b15f1_1108x392.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WSNa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49805b6c-3cd6-49eb-8265-63db6e4b15f1_1108x392.png 424w, https://substackcdn.com/image/fetch/$s_!WSNa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49805b6c-3cd6-49eb-8265-63db6e4b15f1_1108x392.png 848w, https://substackcdn.com/image/fetch/$s_!WSNa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49805b6c-3cd6-49eb-8265-63db6e4b15f1_1108x392.png 1272w, https://substackcdn.com/image/fetch/$s_!WSNa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49805b6c-3cd6-49eb-8265-63db6e4b15f1_1108x392.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WSNa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49805b6c-3cd6-49eb-8265-63db6e4b15f1_1108x392.png" width="1108" height="392" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/49805b6c-3cd6-49eb-8265-63db6e4b15f1_1108x392.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:392,&quot;width&quot;:1108,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:21226,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.blacklanternsecurity.com/i/157962942?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49805b6c-3cd6-49eb-8265-63db6e4b15f1_1108x392.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WSNa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49805b6c-3cd6-49eb-8265-63db6e4b15f1_1108x392.png 424w, https://substackcdn.com/image/fetch/$s_!WSNa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49805b6c-3cd6-49eb-8265-63db6e4b15f1_1108x392.png 848w, https://substackcdn.com/image/fetch/$s_!WSNa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49805b6c-3cd6-49eb-8265-63db6e4b15f1_1108x392.png 1272w, https://substackcdn.com/image/fetch/$s_!WSNa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49805b6c-3cd6-49eb-8265-63db6e4b15f1_1108x392.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Today we&#8217;re excited to announce a new web screenshot tool, <a href="https://github.com/blacklanternsecurity/webcap">Webcap</a>. </p><p>Webcap is designed to fill the role of Gowitness, but with some additional <strong>advanced features</strong> that make it ideal for pentesting and bug bounties, while enabling easy integration into your bash or python scripts.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.blacklanternsecurity.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Black Lantern Security (BLSOPS)! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>In an upcoming release, it will replace Gowitness as the primary web screenshot module in <a href="https://github.com/blacklanternsecurity/bbot">BBOT</a>.</p><h2>Features</h2><p>In addition to the usual features expected from a web screenshot tool, Webcap has some new and <strong>unique capabilities</strong>. Some of these capabilities make it easier to use, while others appeal to advanced users.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7B7j!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa863eb25-7e6a-4685-8bb4-b616ba6d33e0_859x467.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7B7j!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa863eb25-7e6a-4685-8bb4-b616ba6d33e0_859x467.gif 424w, https://substackcdn.com/image/fetch/$s_!7B7j!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa863eb25-7e6a-4685-8bb4-b616ba6d33e0_859x467.gif 848w, https://substackcdn.com/image/fetch/$s_!7B7j!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa863eb25-7e6a-4685-8bb4-b616ba6d33e0_859x467.gif 1272w, https://substackcdn.com/image/fetch/$s_!7B7j!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa863eb25-7e6a-4685-8bb4-b616ba6d33e0_859x467.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7B7j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa863eb25-7e6a-4685-8bb4-b616ba6d33e0_859x467.gif" width="859" height="467" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a863eb25-7e6a-4685-8bb4-b616ba6d33e0_859x467.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:467,&quot;width&quot;:859,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:468701,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.blacklanternsecurity.com/i/157962942?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa863eb25-7e6a-4685-8bb4-b616ba6d33e0_859x467.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7B7j!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa863eb25-7e6a-4685-8bb4-b616ba6d33e0_859x467.gif 424w, https://substackcdn.com/image/fetch/$s_!7B7j!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa863eb25-7e6a-4685-8bb4-b616ba6d33e0_859x467.gif 848w, https://substackcdn.com/image/fetch/$s_!7B7j!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa863eb25-7e6a-4685-8bb4-b616ba6d33e0_859x467.gif 1272w, https://substackcdn.com/image/fetch/$s_!7B7j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa863eb25-7e6a-4685-8bb4-b616ba6d33e0_859x467.gif 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Webcap stays extremely lightweight by interfacing directly with the <strong>Chrome Devtools API</strong>. It doesn&#8217;t depend on any frameworks like Selenium, Puppeteer, or Playwright, and doesn&#8217;t use any third party headless libraries. Instead, it natively implements only the features it needs.</p><h3>Web Interface with Perception Grouping</h3><p>Webcap&#8217;s web interface comes equipped with a feature that groups similar screenshots together, allowing you to browse quickly through them. This works by way of a <a href="https://github.com/blacklanternsecurity/webcap/blob/d7652363e83f6f448f526a9c79d943c3ef03dbf4/webcap/imagehash.py#L93">perception hash</a> which is calculated for every screenshot.</p><p>This perception filter is designed to ease the pain of scrolling through pages of identical screenshots.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;b52162ae-ecdf-4980-84cd-a8c0acd56750&quot;,&quot;duration&quot;:null}"></div><h3>JSON Output</h3><p>Webcap supports JSON output in the terminal. This includes comprehensive data extracted from the browser session.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yqm-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7065f03f-7e58-4c3a-96aa-de4fcb444d5c_1135x327.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yqm-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7065f03f-7e58-4c3a-96aa-de4fcb444d5c_1135x327.png 424w, https://substackcdn.com/image/fetch/$s_!yqm-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7065f03f-7e58-4c3a-96aa-de4fcb444d5c_1135x327.png 848w, https://substackcdn.com/image/fetch/$s_!yqm-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7065f03f-7e58-4c3a-96aa-de4fcb444d5c_1135x327.png 1272w, https://substackcdn.com/image/fetch/$s_!yqm-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7065f03f-7e58-4c3a-96aa-de4fcb444d5c_1135x327.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yqm-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7065f03f-7e58-4c3a-96aa-de4fcb444d5c_1135x327.png" width="1135" height="327" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7065f03f-7e58-4c3a-96aa-de4fcb444d5c_1135x327.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:327,&quot;width&quot;:1135,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:66623,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.blacklanternsecurity.com/i/157962942?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7065f03f-7e58-4c3a-96aa-de4fcb444d5c_1135x327.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yqm-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7065f03f-7e58-4c3a-96aa-de4fcb444d5c_1135x327.png 424w, https://substackcdn.com/image/fetch/$s_!yqm-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7065f03f-7e58-4c3a-96aa-de4fcb444d5c_1135x327.png 848w, https://substackcdn.com/image/fetch/$s_!yqm-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7065f03f-7e58-4c3a-96aa-de4fcb444d5c_1135x327.png 1272w, https://substackcdn.com/image/fetch/$s_!yqm-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7065f03f-7e58-4c3a-96aa-de4fcb444d5c_1135x327.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Capturing of JavaScript</h3><p>In addition to capturing the fully-rendered DOM, Webcap also detects any JavaScript parsed by the browser. It outputs these individually, for later analysis.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xmTO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa3fb89b-f341-4109-8525-06280003d168_944x417.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xmTO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa3fb89b-f341-4109-8525-06280003d168_944x417.png 424w, https://substackcdn.com/image/fetch/$s_!xmTO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa3fb89b-f341-4109-8525-06280003d168_944x417.png 848w, https://substackcdn.com/image/fetch/$s_!xmTO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa3fb89b-f341-4109-8525-06280003d168_944x417.png 1272w, https://substackcdn.com/image/fetch/$s_!xmTO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa3fb89b-f341-4109-8525-06280003d168_944x417.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xmTO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa3fb89b-f341-4109-8525-06280003d168_944x417.png" width="944" height="417" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fa3fb89b-f341-4109-8525-06280003d168_944x417.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:417,&quot;width&quot;:944,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:52398,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.blacklanternsecurity.com/i/157962942?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa3fb89b-f341-4109-8525-06280003d168_944x417.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xmTO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa3fb89b-f341-4109-8525-06280003d168_944x417.png 424w, https://substackcdn.com/image/fetch/$s_!xmTO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa3fb89b-f341-4109-8525-06280003d168_944x417.png 848w, https://substackcdn.com/image/fetch/$s_!xmTO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa3fb89b-f341-4109-8525-06280003d168_944x417.png 1272w, https://substackcdn.com/image/fetch/$s_!xmTO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa3fb89b-f341-4109-8525-06280003d168_944x417.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Capturing of Individual Requests + Responses</h3><p>Webcap captures every request and response made by the browser in the course of loading the page. This includes iframes, AJAX API calls, JavaScript files, and more. These are included in the JSON output.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!B64_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb705cecb-9917-47ab-a6ad-d81dd423d0ac_1063x535.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!B64_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb705cecb-9917-47ab-a6ad-d81dd423d0ac_1063x535.png 424w, https://substackcdn.com/image/fetch/$s_!B64_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb705cecb-9917-47ab-a6ad-d81dd423d0ac_1063x535.png 848w, https://substackcdn.com/image/fetch/$s_!B64_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb705cecb-9917-47ab-a6ad-d81dd423d0ac_1063x535.png 1272w, https://substackcdn.com/image/fetch/$s_!B64_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb705cecb-9917-47ab-a6ad-d81dd423d0ac_1063x535.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!B64_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb705cecb-9917-47ab-a6ad-d81dd423d0ac_1063x535.png" width="1063" height="535" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b705cecb-9917-47ab-a6ad-d81dd423d0ac_1063x535.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:535,&quot;width&quot;:1063,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:79160,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.blacklanternsecurity.com/i/157962942?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb705cecb-9917-47ab-a6ad-d81dd423d0ac_1063x535.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!B64_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb705cecb-9917-47ab-a6ad-d81dd423d0ac_1063x535.png 424w, https://substackcdn.com/image/fetch/$s_!B64_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb705cecb-9917-47ab-a6ad-d81dd423d0ac_1063x535.png 848w, https://substackcdn.com/image/fetch/$s_!B64_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb705cecb-9917-47ab-a6ad-d81dd423d0ac_1063x535.png 1272w, https://substackcdn.com/image/fetch/$s_!B64_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb705cecb-9917-47ab-a6ad-d81dd423d0ac_1063x535.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>OCR Text Extraction</h3><p>Finally, Webcap can extract visible text from the fully-rendered page. Since this uses OCR, it includes rasterized text from images.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!I4Bu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b16e8a1-c69e-4a36-86a3-58364de7660e_936x201.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!I4Bu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b16e8a1-c69e-4a36-86a3-58364de7660e_936x201.png 424w, https://substackcdn.com/image/fetch/$s_!I4Bu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b16e8a1-c69e-4a36-86a3-58364de7660e_936x201.png 848w, https://substackcdn.com/image/fetch/$s_!I4Bu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b16e8a1-c69e-4a36-86a3-58364de7660e_936x201.png 1272w, https://substackcdn.com/image/fetch/$s_!I4Bu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b16e8a1-c69e-4a36-86a3-58364de7660e_936x201.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!I4Bu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b16e8a1-c69e-4a36-86a3-58364de7660e_936x201.png" width="936" height="201" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3b16e8a1-c69e-4a36-86a3-58364de7660e_936x201.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:201,&quot;width&quot;:936,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:25889,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.blacklanternsecurity.com/i/157962942?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b16e8a1-c69e-4a36-86a3-58364de7660e_936x201.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!I4Bu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b16e8a1-c69e-4a36-86a3-58364de7660e_936x201.png 424w, https://substackcdn.com/image/fetch/$s_!I4Bu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b16e8a1-c69e-4a36-86a3-58364de7660e_936x201.png 848w, https://substackcdn.com/image/fetch/$s_!I4Bu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b16e8a1-c69e-4a36-86a3-58364de7660e_936x201.png 1272w, https://substackcdn.com/image/fetch/$s_!I4Bu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b16e8a1-c69e-4a36-86a3-58364de7660e_936x201.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h3>Upcoming Features</h3><p>Here are some features we plan on adding soon:</p><ul><li><p>Technology Detection</p></li><li><p>Custom JavaScript injection</p></li></ul><h3>How to Install</h3><pre><code><code>pipx install webcap</code></code></pre><h3>Example Commands</h3><h4>Scanning</h4><pre><code><code># Capture screenshots of all URLs in urls.txt
webcap scan urls.txt -o ./my_screenshots

# Output to JSON, and include the fully-rendered DOM
webcap scan urls.txt --json --dom | jq

# Capture requests and responses
webcap scan urls.txt --json --requests --responses | jq

# Capture javascript
webcap scan urls.txt --json --javascript | jq

# Extract text from screenshots
webcap scan urls.txt --json --ocr | jq</code></code></pre><h4>Server</h4><pre><code># Start the server
webcap server

# Browse to http://localhost:8000</code></pre><h1>Conclusion</h1><p>We hope you find this tool useful. Stay tuned for more features, and for the imminent Webcap module in <a href="https://github.com/blacklanternsecurity/bbot">BBOT</a>!</p><p>If you have questions or ideas, please let us know on the <a href="https://github.com/blacklanternsecurity/webcap">Webcap Github</a>, or ping us in the <a href="https://discord.com/invite/PZqkgxu5SA">Black Lantern Security Discord</a>.</p><p>Happy hacking!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.blacklanternsecurity.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Black Lantern Security (BLSOPS)! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[BBOT 2.0 - Release Announcement]]></title><description><![CDATA[The recursive internet scanner gets an upgrade]]></description><link>https://blog.blacklanternsecurity.com/p/bbot-20-release-announcement</link><guid isPermaLink="false">https://blog.blacklanternsecurity.com/p/bbot-20-release-announcement</guid><dc:creator><![CDATA[TheTechromancer]]></dc:creator><pubDate>Fri, 09 Aug 2024 14:02:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!stAA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded261df-0937-4e63-8205-4b96d9c0f3b8_907x869.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Today, just in time for DEF CON 32, we are thrilled to announce the release of <strong><a href="https://github.com/blacklanternsecurity/bbot">BBOT 2.0</a></strong>.</p><p>BBOT&#8217;s new features make it easier to use, while significantly speeding up scans.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.blacklanternsecurity.com/bbot/Dev/how_it_works/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!stAA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded261df-0937-4e63-8205-4b96d9c0f3b8_907x869.png 424w, https://substackcdn.com/image/fetch/$s_!stAA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded261df-0937-4e63-8205-4b96d9c0f3b8_907x869.png 848w, https://substackcdn.com/image/fetch/$s_!stAA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded261df-0937-4e63-8205-4b96d9c0f3b8_907x869.png 1272w, https://substackcdn.com/image/fetch/$s_!stAA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded261df-0937-4e63-8205-4b96d9c0f3b8_907x869.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!stAA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded261df-0937-4e63-8205-4b96d9c0f3b8_907x869.png" width="907" height="869" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ded261df-0937-4e63-8205-4b96d9c0f3b8_907x869.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:869,&quot;width&quot;:907,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.blacklanternsecurity.com/bbot/Dev/how_it_works/&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="image" title="image" srcset="https://substackcdn.com/image/fetch/$s_!stAA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded261df-0937-4e63-8205-4b96d9c0f3b8_907x869.png 424w, https://substackcdn.com/image/fetch/$s_!stAA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded261df-0937-4e63-8205-4b96d9c0f3b8_907x869.png 848w, https://substackcdn.com/image/fetch/$s_!stAA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded261df-0937-4e63-8205-4b96d9c0f3b8_907x869.png 1272w, https://substackcdn.com/image/fetch/$s_!stAA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded261df-0937-4e63-8205-4b96d9c0f3b8_907x869.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Above: A chord graph of the relationships between BBOT's modules and the data types they produce/consume. Click the image to explore it interactively.</em></p><h2>How did we get here?</h2><p>Two years ago we released BBOT (Bighuge BLS OSINT Tool), an open-source scanner inspired by <a href="https://github.com/smicallef/spiderfoot">Spiderfoot</a>. Its initial claim to fame was its ability to find <a href="https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off-4e5">more subdomains</a> than any other tool. Since then, it's been steadily gaining users, and as of today, it's been downloaded 400K times. It's always wonderful to hear how people are using it in the bug bounty space. Whenever we hear that BBOT got someone a new payout by finding an outlier subdomain, or a critical RCE, it warms our hearts!</p><p>BBOT's success is a result of the countless contributions from the community (thank you!), which include many of the powerful new modules and features in 2.0. Development has been happening at a fast pace. To give you an idea, BBOT has already passed <strong>4,000 commits</strong>, surpassing even Spiderfoot (with ~3,700), a tool that has been in active development for ten years! That is how much work has been going into BBOT -- both by us at BLS, and by the community -- and how we've already arrived at version 2.0!</p><h1>New Features in 2.0</h1><p>BBOT 2.0 keeps BBOT's original recursive design, while adding some powerful new features and optimizations.</p><p>Note: For full release notes, see <a href="https://github.com/blacklanternsecurity/bbot/discussions/1540">Upgrading to BBOT 2.0</a>.</p><h2>Highlights</h2><p>Here are the three main feature highlights for BBOT 2.0:</p><ul><li><p><strong><a href="https://www.blacklanternsecurity.com/bbot/Dev/scanning/presets/">Presets</a></strong>: An alternative to command-line flags that let you conveniently store your entire scan config in a single YAML file.</p></li><li><p><strong><a href="https://github.com/blacklanternsecurity/baddns">BadDNS</a></strong>: Find subdomain hijacks and other DNS-related vulns.</p></li><li><p><strong><a href="https://gist.github.com/TheTechromancer/a50c14149e63e7d272731ebcbd448b49#Speed-Optimizations">Speed Optimizations</a></strong></p><ul><li><p>YARA integration by <a href="https://x.com/paulmmueller">@paulmmueller</a> == insane boost in regex performance!</p></li><li><p>New DNS/HTTP Engines by <a href="https://x.com/thetechr0mancer">@thetechr0mancer</a> == leverage all your CPU cores!</p></li></ul></li></ul><h2>Presets</h2><p>Presets are one of the biggest features in BBOT 2.0. They were born out of necessity, to save you from having to construct giant BBOT commands. This was something we discovered early on: that due to BBOT's extreme customizability and the fact that it had over 100 modules, commands could get out of hand pretty quickly:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!epFx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94d360f9-7f35-4846-8105-58246ae82230_1169x410.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!epFx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94d360f9-7f35-4846-8105-58246ae82230_1169x410.png 424w, https://substackcdn.com/image/fetch/$s_!epFx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94d360f9-7f35-4846-8105-58246ae82230_1169x410.png 848w, https://substackcdn.com/image/fetch/$s_!epFx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94d360f9-7f35-4846-8105-58246ae82230_1169x410.png 1272w, https://substackcdn.com/image/fetch/$s_!epFx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94d360f9-7f35-4846-8105-58246ae82230_1169x410.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!epFx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94d360f9-7f35-4846-8105-58246ae82230_1169x410.png" width="1169" height="410" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/94d360f9-7f35-4846-8105-58246ae82230_1169x410.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:410,&quot;width&quot;:1169,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;huge-bbot-command&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="huge-bbot-command" title="huge-bbot-command" srcset="https://substackcdn.com/image/fetch/$s_!epFx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94d360f9-7f35-4846-8105-58246ae82230_1169x410.png 424w, https://substackcdn.com/image/fetch/$s_!epFx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94d360f9-7f35-4846-8105-58246ae82230_1169x410.png 848w, https://substackcdn.com/image/fetch/$s_!epFx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94d360f9-7f35-4846-8105-58246ae82230_1169x410.png 1272w, https://substackcdn.com/image/fetch/$s_!epFx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94d360f9-7f35-4846-8105-58246ae82230_1169x410.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Presets solve this by consolidating all your scan settings into a single YAML config. You can create your own, or choose from a list of built-in presets.</p><p>You can list them all with <code>-lp</code>:</p><pre><code># list BBOT presets on the command-line
bbot -lp</code></pre><p>And enable them with <code>-p</code>:</p><pre><code># enumerate subdomains on evilcorp.com
bbot -t evilcorp.com -p subdomain-enum</code></pre><p>You can also mix and match an unlimited number of presets:</p><pre><code># combine subdomains + web spider
bbot -t evilcorp.com -p subdomain-enum spider</code></pre><p>You can also create your own custom preset that includes other presets:</p><pre><code>target:
  - evilcorp.com
  - 1.2.3.0/24

blacklist:
  - test.evilcorp.com

# include other presets
include:
  - subdomain-enum
  - spider

config:
  web:
    http_proxy: http://127.0.0.1:8080
  modules:
    github:
      api_key: 258e88dcbd3cd44d8e7ab43f6ecb6af0</code></pre><p>Run BBOT with your custom preset:</p><pre><code>bbot -p ./my_preset.yml</code></pre><p>For a full list of built-in presets, see <a href="https://www.blacklanternsecurity.com/bbot/Stable/scanning/presets_list/">Full List of Presets</a>.</p><p>For details on Presets, see the <a href="https://www.blacklanternsecurity.com/bbot/Stable/scanning/presets/">Documentation</a>.</p><h2>BadDNS</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7Oow!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F728bb056-8780-4ebc-8153-1d47fbb81316_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7Oow!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F728bb056-8780-4ebc-8153-1d47fbb81316_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!7Oow!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F728bb056-8780-4ebc-8153-1d47fbb81316_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!7Oow!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F728bb056-8780-4ebc-8153-1d47fbb81316_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!7Oow!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F728bb056-8780-4ebc-8153-1d47fbb81316_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7Oow!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F728bb056-8780-4ebc-8153-1d47fbb81316_1024x1024.png" width="324" height="324" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/728bb056-8780-4ebc-8153-1d47fbb81316_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:324,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7Oow!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F728bb056-8780-4ebc-8153-1d47fbb81316_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!7Oow!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F728bb056-8780-4ebc-8153-1d47fbb81316_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!7Oow!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F728bb056-8780-4ebc-8153-1d47fbb81316_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!7Oow!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F728bb056-8780-4ebc-8153-1d47fbb81316_1024x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><a href="https://github.com/blacklanternsecurity/baddns">BadDNS</a> is a slick DNS-hijacking tool written by <a href="https://x.com/paulmmueller">@paulmmueller</a> that's integrated into BBOT 2.0. It replaces BBOT's old <code>subdomain_hijack</code> module, and detects a myriad of vulnerabilities including dangling records.</p><p>For details, see the <a href="https://blog.blacklanternsecurity.com/p/introducing-baddns">BadDNS Blog Post</a>.</p><h2>Speed Optimizations</h2><p>BBOT 2.0 includes several very significant performance improvements, along with numerous small ones. These have combined together to make BBOT 2.0 close to 10x faster than its predecessor.</p><p>The two most significant performance-boosting features are YARA integration and new DNS + HTTP engines.</p><h3>YARA Integration</h3><p>Initially, we used Python's built-in regex library to mine useful goodies (emails, URLs, subdomains, etc.) from various sources like HTTP responses. This was effective, but not very efficient. Lots of regexes multiplied against lots of data resulted in serious slowdowns for the scan.</p><p>In BBOT 2.0,  <a href="https://x.com/paulmmueller">@paulmmueller</a> has completely overhauled the <code>excavate</code> module to use <a href="https://github.com/virustotal/yara">YARA</a>. This not only provides an insane speed boost (YARA has some <a href="https://en.wikipedia.org/wiki/Aho%E2%80%93Corasick_algorithm">wicked algorithms</a> for this), it allows you to add on your custom YARA rules. Pair this with the work <a href="https://x.com/Domwhewell">@Domwhewell</a> has done to download <a href="https://github.com/blacklanternsecurity/bbot/blob/stable/bbot/modules/git_clone.py">Git repos</a> and <a href="https://github.com/blacklanternsecurity/bbot/blob/stable/bbot/modules/docker_pull.py">docker images</a>, and pair that again with his module that extracts text from practically <a href="https://github.com/blacklanternsecurity/bbot/blob/stable/bbot/modules/unstructured.py">every file format known to man</a>, what you effectively have is a <code>grep -R</code> for your target's entire web presence. Oh, and he also made a <a href="https://github.com/trufflesecurity/trufflehog">Trufflehog</a> module to search all of that for secrets.</p><p>Yeah, we&#8217;ve all been busy. Stay tuned for new developments on these features. It's only going to get crazier!</p><h3>New DNS / HTTP Engines</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!k_sU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4d38db5-a46d-4567-8677-619d1a01f881_1431x916.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!k_sU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4d38db5-a46d-4567-8677-619d1a01f881_1431x916.png 424w, https://substackcdn.com/image/fetch/$s_!k_sU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4d38db5-a46d-4567-8677-619d1a01f881_1431x916.png 848w, https://substackcdn.com/image/fetch/$s_!k_sU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4d38db5-a46d-4567-8677-619d1a01f881_1431x916.png 1272w, https://substackcdn.com/image/fetch/$s_!k_sU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4d38db5-a46d-4567-8677-619d1a01f881_1431x916.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!k_sU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4d38db5-a46d-4567-8677-619d1a01f881_1431x916.png" width="1431" height="916" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f4d38db5-a46d-4567-8677-619d1a01f881_1431x916.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:916,&quot;width&quot;:1431,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;engine-architecture-bbot-v1&quot;,&quot;title&quot;:&quot;engine-architecture-bbot-v1&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="engine-architecture-bbot-v1" title="engine-architecture-bbot-v1" srcset="https://substackcdn.com/image/fetch/$s_!k_sU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4d38db5-a46d-4567-8677-619d1a01f881_1431x916.png 424w, https://substackcdn.com/image/fetch/$s_!k_sU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4d38db5-a46d-4567-8677-619d1a01f881_1431x916.png 848w, https://substackcdn.com/image/fetch/$s_!k_sU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4d38db5-a46d-4567-8677-619d1a01f881_1431x916.png 1272w, https://substackcdn.com/image/fetch/$s_!k_sU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4d38db5-a46d-4567-8677-619d1a01f881_1431x916.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Before (BBOT v1)</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Jl72!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49b3ba84-ba17-4201-997c-ba2b135cf80b_2378x1343.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Jl72!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49b3ba84-ba17-4201-997c-ba2b135cf80b_2378x1343.png 424w, https://substackcdn.com/image/fetch/$s_!Jl72!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49b3ba84-ba17-4201-997c-ba2b135cf80b_2378x1343.png 848w, https://substackcdn.com/image/fetch/$s_!Jl72!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49b3ba84-ba17-4201-997c-ba2b135cf80b_2378x1343.png 1272w, https://substackcdn.com/image/fetch/$s_!Jl72!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49b3ba84-ba17-4201-997c-ba2b135cf80b_2378x1343.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Jl72!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49b3ba84-ba17-4201-997c-ba2b135cf80b_2378x1343.png" width="1456" height="822" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/49b3ba84-ba17-4201-997c-ba2b135cf80b_2378x1343.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:822,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;engine-architecture-bbot-v2&quot;,&quot;title&quot;:&quot;engine-architecture-bbot-v2&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="engine-architecture-bbot-v2" title="engine-architecture-bbot-v2" srcset="https://substackcdn.com/image/fetch/$s_!Jl72!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49b3ba84-ba17-4201-997c-ba2b135cf80b_2378x1343.png 424w, https://substackcdn.com/image/fetch/$s_!Jl72!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49b3ba84-ba17-4201-997c-ba2b135cf80b_2378x1343.png 848w, https://substackcdn.com/image/fetch/$s_!Jl72!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49b3ba84-ba17-4201-997c-ba2b135cf80b_2378x1343.png 1272w, https://substackcdn.com/image/fetch/$s_!Jl72!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49b3ba84-ba17-4201-997c-ba2b135cf80b_2378x1343.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>After (BBOT v2)</em></p><p>Early on in BBOT's development, we transitioned to using asyncio. This simplified the code, and resulted in better stability and performance.</p><p>However, we are constantly looking for new ways to speed up scans, and the next bottleneck we encountered was in asyncio itself. Specifically, BBOT was issuing so many DNS and HTTP requests that it reached the max capacity of an asyncio loop within a single CPU core.</p><p>To address this, we've introduced an optimization to the way BBOT interacts with DNS and HTTP, which gives DNS and HTTP each their own dedicated Python process and asyncio event loop. To achieve this without the dreaded overhead of multiprocessing, we use <a href="https://zeromq.org/">ZeroMQ</a> in a ROUTER/DEALER configuration. ZeroMQ enables extremely fast and efficient communication between the processes.</p><h1>Community Shout-outs</h1><p>Finally, we want to give special thanks to four specific members of the community, who have been most active in contributing to BBOT:</p><ul><li><p><a href="https://x.com/Domwhewell">@Domwhewell</a> for continuing to create loads of powerful modules for secrets-looting and more.</p></li><li><p><a href="https://x.com/Shadow012210">@Shadow</a> for testing every new feature ruthlessly, and showering us with awesome ideas! (and congrats on writing his first module).</p></li><li><p><a href="https://github.com/colin-stubbs">@colin-stubbs</a> for bringing his DNS expertise to BBOT by adding CAA-record capabilities (and many more to come!).</p></li><li><p><a href="https://github.com/nicpenning">@nicpenning</a> and <a href="https://github.com/CarsonHrusovsky">@CarsonHrusovsky</a> for <a href="https://www.elastic.co/docs/current/integrations/bbot">integrating BBOT with Elasticsearch</a>.</p></li></ul><p>Thanks guys, you&#8217;ve been awesome to work with! Let&#8217;s keep building this thing!</p>]]></content:encoded></item><item><title><![CDATA[Introducing BadDNS]]></title><description><![CDATA[Black Lantern Security is publicly releasing our new Python DNS auditing tool, BadDNS.]]></description><link>https://blog.blacklanternsecurity.com/p/introducing-baddns</link><guid isPermaLink="false">https://blog.blacklanternsecurity.com/p/introducing-baddns</guid><dc:creator><![CDATA[Paul Mueller]]></dc:creator><pubDate>Wed, 15 May 2024 19:10:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!-y3A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3397cc8-b9b4-43fc-8fca-5ab78b85f29e_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-y3A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3397cc8-b9b4-43fc-8fca-5ab78b85f29e_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-y3A!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3397cc8-b9b4-43fc-8fca-5ab78b85f29e_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!-y3A!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3397cc8-b9b4-43fc-8fca-5ab78b85f29e_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!-y3A!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3397cc8-b9b4-43fc-8fca-5ab78b85f29e_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!-y3A!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3397cc8-b9b4-43fc-8fca-5ab78b85f29e_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-y3A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3397cc8-b9b4-43fc-8fca-5ab78b85f29e_1024x1024.png" width="539" height="539" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e3397cc8-b9b4-43fc-8fca-5ab78b85f29e_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:539,&quot;bytes&quot;:1103874,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-y3A!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3397cc8-b9b4-43fc-8fca-5ab78b85f29e_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!-y3A!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3397cc8-b9b4-43fc-8fca-5ab78b85f29e_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!-y3A!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3397cc8-b9b4-43fc-8fca-5ab78b85f29e_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!-y3A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3397cc8-b9b4-43fc-8fca-5ab78b85f29e_1024x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Black Lantern Security is publicly releasing our new Python DNS auditing tool, <a href="https://github.com/blacklanternsecurity/baddns">BadDNS</a>. </p><p>It&#8217;s primarily a subdomain takeover detection tool but covers other DNS related issues like zone transfers and NSEC walking as well. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.blacklanternsecurity.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Black Lantern Security (BLSOPS)! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Some of the discussion assumes prior knowledge of various DNS record types and of subdomain takeover concepts. Here&#8217;s a good <a href="https://0xpatrik.com/subdomain-takeover-basics/">primer</a> for those who need it.</p><h2>Introduction</h2><p>Let&#8217;s jump into the obvious question first: Why <strong>another</strong> subdomain takeover tool?&nbsp;</p><p>There are lots of subdomain takeover tools already, including <a href="https://github.com/punk-security/dnsReaper">some we really like</a>. But, we wanted to pair solid subdomain takeover detection with exceptional domain discovery, so as to be able to look for these issues at massive scale, and against the hardest to find domains. That is why although BadDNS is a standalone command line tool, it is built from the ground up to integrate into <a href="https://github.com/blacklanternsecurity/bbot">BBOT</a> with its own BBOT module. &nbsp;</p><p>We are simultaneously releasing BadDNS and also upgrading our existing subdomain takeover capabilities in BBOT to use BadDNS.&nbsp;</p><p>Integrating an existing tool into BBOT in this case wasn&#8217;t straightforward, and would have required us to make a lot of compromises that would have introduced significant performance issues and limited some of our detection methodology.</p><p>We are also doing a few unique things that most other tools aren&#8217;t, such as with our <strong>references</strong> and <strong>txt</strong> modules. Before we talk about those, let&#8217;s start by going though all of the modules, beginning with those that may be the most familiar. &nbsp;</p><h2>BadDNS Modules</h2><ul><li><p><strong>cname</strong> - Check for dangling CNAME records and interrogate them for subdomain takeover opportunities</p></li><li><p><strong>ns</strong> - Check for dangling NS records and interrogate them for takeover opportunities</p></li><li><p><strong>mx</strong> - Check for dangling MX records and assess their base domains for availability</p></li><li><p><strong>nsec</strong> - Enumerate subdomains by NSEC-walking</p></li><li><p><strong>references</strong>  - Check HTML content for links or other references that contain a hijackable domain</p></li><li><p><strong>txt</strong> - Check TXT record contents for hijackable domains</p></li><li><p><strong>zonetransfer</strong> - Attempt a DNS zone transfer</p></li></ul><h3>cname</h3><p>Dangling CNAMEs are the most common type of subdomain takeover; this module detects several types of takeovers associated with them. This can include service-specific takeovers, like those pointing to Azure or AWS assets, for example. The logic for this type of takeover is usually wrapped up in signatures, which we will discuss more later. &nbsp;</p><p>It will also look at the parent domain, to see if it&#8217;s unregistered or expired (using WHOIS data). If you can takeover the parent domain, you obviously control all it&#8217;s subdomains as well.</p><h3>ns</h3><p>Dangling NS records are also fairly common, although it&#8217;s getting harder to find exploitable ones recently. AWS&#8217;s <a href="https://aws.amazon.com/route53/">route53</a> service used to be one of the more reliably exploitable types of dangling NS records. We aren&#8217;t exactly sure what AWS is doing behind the scenes to protect their customers (<em>if anyone knows, please share!</em>), but they are definitely doing something. However, we have confirmed that it is still at least <em>sometimes</em> possible to successfully perform a takeover with them.&nbsp;</p><p>Like CNAME takeovers, NS takeovers are also based on signatures because exploitation depends on the particular service they are associated with.&nbsp;</p><h3>mx</h3><p>A takeover based on a dangling MX record can be accomplished if the base domain is available for registration. BadDNS will use <strong>WHOIS </strong>data to attempt to detect this condition. &nbsp;</p><p>Taking over a dangling MX record allows attackers to intercept and potentially manipulate email communications, leading to data breaches, loss of confidentiality, and compromised email functionality. The severity of the impact depends on the priority settings of the MX records.&nbsp;</p><h3>references</h3><p>The <strong>references</strong> module starts to cover some ground most tools don&#8217;t. This detects takeovers in JavaScript or CSS includes present in the HTTP content of the target. Another way to think of this kind of takeover is as a &#8220;second-order&#8221; subdomain takeover. Control of the domain where JavaScript is loaded from has roughly the same consequences as a stored cross-site scripting vulnerability, for example. Behind the scenes, the <strong>cname</strong> module is being called against the domains found to be hosting JS/CSS content.&nbsp;</p><p>In the future, we plan to also look at domains found in CORS/CSP headers vulnerable to takeovers.</p><h3>txt</h3><p>The <strong>txt</strong> modules looks at DNS <strong>txt</strong> records for domain names. If it finds one, it runs the <strong>cname</strong> module against them. A hit here might not be significant at all &#8211; it completely depends on how the organization is using the <strong>txt</strong> record, which is probably all over the map. </p><p>This type of detection is the least likely to be exploitable - but if it is, it could be very interesting. If you get a detection here, it's worth doing the takeover and just spinning up a server and seeing what requests get sent to it.&nbsp;</p><p>The previous BBOT <strong>subdomain_hijack </strong>module introduced this concept, and we expand on it with BadDNS.</p><h3>zonetransfer</h3><p>The <strong>zonetransfer</strong> module in BadDNS specifically targets the potential vulnerability associated with DNS zone transfers, a critical process for synchronizing record information between a primary DNS server and its secondary servers. While zone transfers are vital for DNS operation, they can expose an organization's full DNS records if not properly secured. </p><p>The <strong>zonetransfer</strong> module attempts to perform a zone transfer on the authoritative name servers for a target domain. If the attempt is successful, it not only completes the zone transfer but also compiles and presents all harvested records, potentially unveiling a detailed map of the organization's DNS infrastructure.&nbsp;</p><h3>nsec</h3><p>The <strong>nsec</strong> module in BadDNS utilizes &#8220;<a href="https://www.domaintools.com/resources/blog/zone-walking-zone-enumeration-via-dnssec-nsec-records/">NSEC walking</a>&#8221; to enumerate DNS zones by exploiting the way NSEC records function within DNSSEC. NSEC records, intended to secure DNS by confirming the absence of specific DNS entries, inadvertently disclose the name of the next domain in the zone sequence. The module leverages this feature to make sequential queries, effectively mapping the entire domain structure within a DNS zone, including subdomains and entries that may be sensitive or intended to remain private. This enumeration can reveal a comprehensive view of the DNS zone's structure, including details not intended for public access.&nbsp;</p><p>With both <strong>zonetransfer </strong>and <strong>nsec</strong>, when used with BBOT, any discovered domains are automatically fed back into the scan.</p><h2>Generic Detections</h2><p>Another important concept with BadDNS are &#8220;generic&#8221; detections. This occurs when a dangling CNAME or NS record is found, but there is no signature match indicating the possibility for exploitation. Alerting on these are important for the discovery of <strong>new</strong> subdomain takeover signatures, as they will essentially point out which services are frequently producing dangling records and therefore need to be researched. In BBOT, these will be emitted as <strong>FINDING</strong> events (whereas signature detections will be <strong>VULNERABILITY</strong> events).&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ouct!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb46dd0f1-8887-46a6-8465-d70d95501f1e_1918x481.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ouct!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb46dd0f1-8887-46a6-8465-d70d95501f1e_1918x481.png 424w, https://substackcdn.com/image/fetch/$s_!Ouct!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb46dd0f1-8887-46a6-8465-d70d95501f1e_1918x481.png 848w, https://substackcdn.com/image/fetch/$s_!Ouct!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb46dd0f1-8887-46a6-8465-d70d95501f1e_1918x481.png 1272w, https://substackcdn.com/image/fetch/$s_!Ouct!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb46dd0f1-8887-46a6-8465-d70d95501f1e_1918x481.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ouct!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb46dd0f1-8887-46a6-8465-d70d95501f1e_1918x481.png" width="1448" height="362.9945054945055" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b46dd0f1-8887-46a6-8465-d70d95501f1e_1918x481.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:365,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1448,&quot;bytes&quot;:108268,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Ouct!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb46dd0f1-8887-46a6-8465-d70d95501f1e_1918x481.png 424w, https://substackcdn.com/image/fetch/$s_!Ouct!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb46dd0f1-8887-46a6-8465-d70d95501f1e_1918x481.png 848w, https://substackcdn.com/image/fetch/$s_!Ouct!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb46dd0f1-8887-46a6-8465-d70d95501f1e_1918x481.png 1272w, https://substackcdn.com/image/fetch/$s_!Ouct!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb46dd0f1-8887-46a6-8465-d70d95501f1e_1918x481.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Generic Dangling CNAME Detection w/BBOT</figcaption></figure></div><h2>Signatures</h2><p>That brings us to the other big reason for creating BadDNS &#8211; the issue of takeover signatures.&nbsp;</p><p>Currently, there isn&#8217;t a single source of signatures or research into takeovers. However, we have found the most useful signatures are those in <a href="https://github.com/projectdiscovery/nuclei-templates">Nuclei Templates</a>,  and within the tool <a href="https://github.com/punk-security/dnsReaper/">dnsReaper</a>. For discussions and research, the community has coalesced around the GitHub repository <a href="https://github.com/EdOverflow/can-i-take-over-xyz">can-i-take-over-xyz</a>. Its <a href="https://github.com/EdOverflow/can-i-take-over-xyz/issues">issues</a> page has become a common location for discussions about takeover techniques.&nbsp;</p><p>We have observed a hesitancy in the community for any one entity to become the &#8216;authority&#8217; on takeover signatures, which we completely understand and share ourselves. This directed our approach of ingesting the best sources of signatures already present and converting them automatically into our format. Currently, we &#8216;absorb&#8217; signatures from Nuclei and dnsReaper using automated GitHub actions. These are then generated into pull requests we can quickly and easily review, complete with automatic testing of the generated signatures. This allows us to utilize whatever the community comes up with in terms of new signatures, while not making ourselves the direct maintainers of them, and also allowing us the room to create our own signatures or modify existing ones if needed. &nbsp;</p><h2>Usage</h2><p>Here&#8217;s some basic usage information to get you started:</p><h3>CLI&nbsp;</h3><p>First of all, the standalone BadDNS CLI is embedded within our <a href="https://pypi.org/project/baddns/">pypi package</a>. So all you need to do is install with pip:&nbsp;</p><p><code>pip install baddns</code></p><p>After that, you can run BadDNS by just typing `baddns` in your console. &nbsp;</p><h4>Usage</h4><p><code>Positional arguments: <br>&nbsp;target &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;subdomain to analyze <br><br>options: <br>&nbsp;-h, --help &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show this help message and exit <br>&nbsp;-n CUSTOM_NAMESERVERS, --custom-nameservers CUSTOM_NAMESERVERS <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Provide a list of custom nameservers separated by comma. <br>&nbsp;-c CUSTOM_SIGNATURES, --custom-signatures CUSTOM_SIGNATURES <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Use an alternate directory for loading signatures <br>&nbsp;-l, --list-modules &nbsp;&nbsp;&nbsp;List available modules and their descriptions. <br>&nbsp;-m MODULES, --modules MODULES <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Comma separated list of module names to use. Ex: module1,module2,module3 <br>&nbsp;-d, --debug &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enable debug logging</code><br><br></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PMwP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1123788-3323-4316-83be-3e6349227883_1387x476.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PMwP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1123788-3323-4316-83be-3e6349227883_1387x476.png 424w, https://substackcdn.com/image/fetch/$s_!PMwP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1123788-3323-4316-83be-3e6349227883_1387x476.png 848w, https://substackcdn.com/image/fetch/$s_!PMwP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1123788-3323-4316-83be-3e6349227883_1387x476.png 1272w, https://substackcdn.com/image/fetch/$s_!PMwP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1123788-3323-4316-83be-3e6349227883_1387x476.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PMwP!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1123788-3323-4316-83be-3e6349227883_1387x476.png" width="1200" height="411.82408074981976" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f1123788-3323-4316-83be-3e6349227883_1387x476.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:476,&quot;width&quot;:1387,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:93642,&quot;alt&quot;:&quot;BadDNS Command Line Tool&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="BadDNS Command Line Tool" title="BadDNS Command Line Tool" srcset="https://substackcdn.com/image/fetch/$s_!PMwP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1123788-3323-4316-83be-3e6349227883_1387x476.png 424w, https://substackcdn.com/image/fetch/$s_!PMwP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1123788-3323-4316-83be-3e6349227883_1387x476.png 848w, https://substackcdn.com/image/fetch/$s_!PMwP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1123788-3323-4316-83be-3e6349227883_1387x476.png 1272w, https://substackcdn.com/image/fetch/$s_!PMwP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1123788-3323-4316-83be-3e6349227883_1387x476.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">BadDNS Command Line Tool</figcaption></figure></div><h3>BBOT&nbsp;</h3><p>Using BadDNS with BBOT allows for checking for DNS related issues at immense scale, taking advantage of its cutting-edge DNS recon capabilities.&nbsp;</p><p>For information on using BBOT, please refer to the <a href="https://www.blacklanternsecurity.com/bbot/">BBOT Documentation</a>.</p><p>To do so, just run bbot with <code>-m baddns(</code>the baddns package will automatically be install by BBOT). To combine with subdomain enumeration, run it along with the <strong>subdomain-enum</strong> flag, as shown below:&nbsp;</p><p><code>bbot &#8211;f subdomain-enum &#8211;m baddns &#8211;t &lt;targetdomain&gt;</code></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!b3YG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce0f9958-6fc4-464a-aec7-af7c57fd0092_1531x699.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!b3YG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce0f9958-6fc4-464a-aec7-af7c57fd0092_1531x699.png 424w, https://substackcdn.com/image/fetch/$s_!b3YG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce0f9958-6fc4-464a-aec7-af7c57fd0092_1531x699.png 848w, https://substackcdn.com/image/fetch/$s_!b3YG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce0f9958-6fc4-464a-aec7-af7c57fd0092_1531x699.png 1272w, https://substackcdn.com/image/fetch/$s_!b3YG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce0f9958-6fc4-464a-aec7-af7c57fd0092_1531x699.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!b3YG!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce0f9958-6fc4-464a-aec7-af7c57fd0092_1531x699.png" width="1180" height="538.9423076923077" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ce0f9958-6fc4-464a-aec7-af7c57fd0092_1531x699.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:665,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1180,&quot;bytes&quot;:218745,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!b3YG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce0f9958-6fc4-464a-aec7-af7c57fd0092_1531x699.png 424w, https://substackcdn.com/image/fetch/$s_!b3YG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce0f9958-6fc4-464a-aec7-af7c57fd0092_1531x699.png 848w, https://substackcdn.com/image/fetch/$s_!b3YG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce0f9958-6fc4-464a-aec7-af7c57fd0092_1531x699.png 1272w, https://substackcdn.com/image/fetch/$s_!b3YG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce0f9958-6fc4-464a-aec7-af7c57fd0092_1531x699.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Using BadDNS via the BBOT Module</figcaption></figure></div><h2>Research</h2><p>One goal for BadDNS is that it can be used as a starting point for research into novel DNS-related vulnerabilities. Its modular design and import-friendly architecture facilitate rapid prototyping of new detection code.</p><p>We have already encountered instances of DNS behaving in bizarre and unexpected ways. For example, during the course of creating the <strong>ns </strong>module, we discovered that many DNS servers were essentially lying to us about NS records. If the NS record was present, but there was no associated SOA record (basically the definition of a dangling NS record) all but a small percentage of servers would happily report back that there were no NS records at all. </p><p>We wondered how much this behavior may have affected other tools&#8217; ability to detect dangling NS records. The solution isn&#8217;t too complicated - we just need to perform a fully recursive lookup for these records, ignoring any caching, starting at the root DNS servers and moving forward. This was so important for detecting dangling NS records that we built our own recursive resolving class from scratch.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ik3D!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33ff6d68-127d-4ca7-a15b-7cfa65451b40_1305x808.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ik3D!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33ff6d68-127d-4ca7-a15b-7cfa65451b40_1305x808.png 424w, https://substackcdn.com/image/fetch/$s_!ik3D!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33ff6d68-127d-4ca7-a15b-7cfa65451b40_1305x808.png 848w, https://substackcdn.com/image/fetch/$s_!ik3D!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33ff6d68-127d-4ca7-a15b-7cfa65451b40_1305x808.png 1272w, https://substackcdn.com/image/fetch/$s_!ik3D!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33ff6d68-127d-4ca7-a15b-7cfa65451b40_1305x808.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ik3D!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33ff6d68-127d-4ca7-a15b-7cfa65451b40_1305x808.png" width="894" height="553.5264367816092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/33ff6d68-127d-4ca7-a15b-7cfa65451b40_1305x808.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:808,&quot;width&quot;:1305,&quot;resizeWidth&quot;:894,&quot;bytes&quot;:242149,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ik3D!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33ff6d68-127d-4ca7-a15b-7cfa65451b40_1305x808.png 424w, https://substackcdn.com/image/fetch/$s_!ik3D!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33ff6d68-127d-4ca7-a15b-7cfa65451b40_1305x808.png 848w, https://substackcdn.com/image/fetch/$s_!ik3D!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33ff6d68-127d-4ca7-a15b-7cfa65451b40_1305x808.png 1272w, https://substackcdn.com/image/fetch/$s_!ik3D!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33ff6d68-127d-4ca7-a15b-7cfa65451b40_1305x808.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Random DNS Servers Failing to Find Dangling NS Records</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!L7bH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F890ea655-c366-49e7-b192-3ada3cb03703_613x97.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!L7bH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F890ea655-c366-49e7-b192-3ada3cb03703_613x97.png 424w, https://substackcdn.com/image/fetch/$s_!L7bH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F890ea655-c366-49e7-b192-3ada3cb03703_613x97.png 848w, https://substackcdn.com/image/fetch/$s_!L7bH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F890ea655-c366-49e7-b192-3ada3cb03703_613x97.png 1272w, https://substackcdn.com/image/fetch/$s_!L7bH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F890ea655-c366-49e7-b192-3ada3cb03703_613x97.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!L7bH!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F890ea655-c366-49e7-b192-3ada3cb03703_613x97.png" width="894" height="141.46492659053834" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/890ea655-c366-49e7-b192-3ada3cb03703_613x97.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:97,&quot;width&quot;:613,&quot;resizeWidth&quot;:894,&quot;bytes&quot;:12938,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!L7bH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F890ea655-c366-49e7-b192-3ada3cb03703_613x97.png 424w, https://substackcdn.com/image/fetch/$s_!L7bH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F890ea655-c366-49e7-b192-3ada3cb03703_613x97.png 848w, https://substackcdn.com/image/fetch/$s_!L7bH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F890ea655-c366-49e7-b192-3ada3cb03703_613x97.png 1272w, https://substackcdn.com/image/fetch/$s_!L7bH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F890ea655-c366-49e7-b192-3ada3cb03703_613x97.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Some Rare DNS Servers did Find Dangling NS Records</figcaption></figure></div><p></p><p>The weirdest thing was actually that something like 5% of DNS servers would always tell us the truth and report the dangling NS records. We briefly considered using this handful of servers as a shortcut, but ultimately decided that was not sustainable and wrote the recursive lookup code instead. </p><p>We are also looking forward to exploring more unusual behavior in newer DNS components like NSEC3 and other parts of DNSSEC. The added complexity that comes along with the added security potentially creates more opportunities for abuse. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.blacklanternsecurity.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Black Lantern Security (BLSOPS)! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Subdomain Enumeration Tool Face-off - 2023 Edition]]></title><description><![CDATA[Benchmarking the industry's top subdomain enumeration tools]]></description><link>https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off-4e5</link><guid isPermaLink="false">https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off-4e5</guid><dc:creator><![CDATA[TheTechromancer]]></dc:creator><pubDate>Mon, 07 Aug 2023 16:00:37 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!WNE5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85adcfcd-18be-4993-90eb-f43fa45a1166_1200x800.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In <a href="https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off">2022</a>, we benchmarked the industry's top subdomain enumeration tools.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WNE5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85adcfcd-18be-4993-90eb-f43fa45a1166_1200x800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WNE5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85adcfcd-18be-4993-90eb-f43fa45a1166_1200x800.png 424w, https://substackcdn.com/image/fetch/$s_!WNE5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85adcfcd-18be-4993-90eb-f43fa45a1166_1200x800.png 848w, https://substackcdn.com/image/fetch/$s_!WNE5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85adcfcd-18be-4993-90eb-f43fa45a1166_1200x800.png 1272w, https://substackcdn.com/image/fetch/$s_!WNE5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85adcfcd-18be-4993-90eb-f43fa45a1166_1200x800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WNE5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85adcfcd-18be-4993-90eb-f43fa45a1166_1200x800.png" width="1200" height="800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/85adcfcd-18be-4993-90eb-f43fa45a1166_1200x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;enum_tools&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="enum_tools" title="enum_tools" srcset="https://substackcdn.com/image/fetch/$s_!WNE5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85adcfcd-18be-4993-90eb-f43fa45a1166_1200x800.png 424w, https://substackcdn.com/image/fetch/$s_!WNE5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85adcfcd-18be-4993-90eb-f43fa45a1166_1200x800.png 848w, https://substackcdn.com/image/fetch/$s_!WNE5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85adcfcd-18be-4993-90eb-f43fa45a1166_1200x800.png 1272w, https://substackcdn.com/image/fetch/$s_!WNE5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85adcfcd-18be-4993-90eb-f43fa45a1166_1200x800.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Since then, the tools have received some neat upgrades and there are even some new ones on the block. We decided it would be fun to do an updated face-off for 2023, and we're glad we did because we encountered some surprises along the way - like this suspiciously good <a href="https://www.subdomain.center/">subdomain API</a> (more on that later)!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.blacklanternsecurity.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Black Lantern Security (BLSOPS)! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h4>The goal of this face-off is to rank the top subdomain enumeration tools based on: 1) number of subdomains found, and 2) runtime.</h4><div><hr></div><h4>Tools being tested:</h4><ul><li><p><a href="https://github.com/blacklanternsecurity/bbot">BBOT</a></p></li><li><p><a href="https://github.com/laramies/theHarvester">theHarvester</a></p></li><li><p><a href="https://github.com/projectdiscovery/subfinder">Subfinder</a></p></li><li><p><a href="https://github.com/owasp-amass/amass">Amass</a></p></li><li><p><a href="https://github.com/shmilylty/OneForAll">OneForAll</a></p></li><li><p><a href="https://github.com/smicallef/spiderfoot">Spiderfoot</a></p></li><li><p><a href="https://github.com/Findomain/Findomain">Findomain</a> &lt;-- new this time around</p></li><li><p><a href="https://github.com/aboul3la/Sublist3r">Sublist3r</a></p></li></ul><p>We selected these tools mainly based on their quality and popularity. If you don't see yours in this list, please let us know so we can test it next time!</p><h2>Rules</h2><p>The theme this year is <strong>airlines</strong>. We will be running each of the above tools against both a <strong>large target</strong> (Delta Airlines: <code>delta.com</code>) and a <strong>small target</strong> (Spirit Airlines: <code>spirit.com</code>). By testing against both a large and a small target, we can see how well each of the tools scale with the size of the attack surface.</p><p>Similarly to last time, we will be running each tool out-of-the-box with no API keys and only the minimal config changes required to enable brute force and boost thread count.</p><p>Wildcards and unresolved subdomains will be removed using <a href="https://gist.github.com/TheTechromancer/ed695d6d23e9f64d931cb1621076d0d8">this script</a>.</p><h2>Results</h2><h3>Subdomains Found:</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!a9Rs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15bc8f7d-7a98-404a-baae-815e37bc0116_1200x800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!a9Rs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15bc8f7d-7a98-404a-baae-815e37bc0116_1200x800.png 424w, https://substackcdn.com/image/fetch/$s_!a9Rs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15bc8f7d-7a98-404a-baae-815e37bc0116_1200x800.png 848w, https://substackcdn.com/image/fetch/$s_!a9Rs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15bc8f7d-7a98-404a-baae-815e37bc0116_1200x800.png 1272w, https://substackcdn.com/image/fetch/$s_!a9Rs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15bc8f7d-7a98-404a-baae-815e37bc0116_1200x800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!a9Rs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15bc8f7d-7a98-404a-baae-815e37bc0116_1200x800.png" width="1200" height="800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/15bc8f7d-7a98-404a-baae-815e37bc0116_1200x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;subdomains&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="subdomains" title="subdomains" srcset="https://substackcdn.com/image/fetch/$s_!a9Rs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15bc8f7d-7a98-404a-baae-815e37bc0116_1200x800.png 424w, https://substackcdn.com/image/fetch/$s_!a9Rs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15bc8f7d-7a98-404a-baae-815e37bc0116_1200x800.png 848w, https://substackcdn.com/image/fetch/$s_!a9Rs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15bc8f7d-7a98-404a-baae-815e37bc0116_1200x800.png 1272w, https://substackcdn.com/image/fetch/$s_!a9Rs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15bc8f7d-7a98-404a-baae-815e37bc0116_1200x800.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Runtimes (Lower is Better):</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-L0Y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07227d4-63bf-483b-bf2e-18317a318e52_1200x800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-L0Y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07227d4-63bf-483b-bf2e-18317a318e52_1200x800.png 424w, https://substackcdn.com/image/fetch/$s_!-L0Y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07227d4-63bf-483b-bf2e-18317a318e52_1200x800.png 848w, https://substackcdn.com/image/fetch/$s_!-L0Y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07227d4-63bf-483b-bf2e-18317a318e52_1200x800.png 1272w, https://substackcdn.com/image/fetch/$s_!-L0Y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07227d4-63bf-483b-bf2e-18317a318e52_1200x800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-L0Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07227d4-63bf-483b-bf2e-18317a318e52_1200x800.png" width="1200" height="800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d07227d4-63bf-483b-bf2e-18317a318e52_1200x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;runtimes&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="runtimes" title="runtimes" srcset="https://substackcdn.com/image/fetch/$s_!-L0Y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07227d4-63bf-483b-bf2e-18317a318e52_1200x800.png 424w, https://substackcdn.com/image/fetch/$s_!-L0Y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07227d4-63bf-483b-bf2e-18317a318e52_1200x800.png 848w, https://substackcdn.com/image/fetch/$s_!-L0Y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07227d4-63bf-483b-bf2e-18317a318e52_1200x800.png 1272w, https://substackcdn.com/image/fetch/$s_!-L0Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07227d4-63bf-483b-bf2e-18317a318e52_1200x800.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Analysis</h2><p>The first thing you might notice is that while the outcomes for the small target (<code>spirit.com</code>) were pretty close, <code>delta.com</code> produced a lot more variety. Specifically, there is a big gap between BBOT, theHarvester, Amass, and everything else. There is an interesting explanation for this, which leads us on a fun side-journey out of the land of tools and into the land of APIs.</p><p>As it turns out, a single data source is responsible for this difference. First added to Amass only two months ago, <a href="https://www.subdomain.center/">subdomain.center</a> is a new and mysterious API created by the <a href="https://in.scanfactory.io/">Automated Reconnaissance &amp; Pwning Syndicate</a>. It is free to use, with a limit of 3 requests per minute, and needless to say it is now also a BBOT module.</p><p>I call it &#8216;mysterious&#8217; because it's mysteriously good. Subdomain.center returns more subdomains than any other free API by a huge margin. It returned <strong>1,594</strong> valid <code>delta.com</code> subdomains, while <a href="https://rapiddns.io/">RapidDNS</a> (its runner up) returned only <strong>774</strong>.</p><p>The most mysterious thing about this API is the data itself. Its database is full of strange and complex (but totally valid) subdomains that don't seem to show up anywhere else. No other free APIs contain this data, and none of the tools we're aware of are capable of discovering them via brute force. Even BBOT's massdns module with its NLP-powered subdomain mutations couldn't replicate a fair number of them.</p><p>I reached out to ARPSyndicate hoping to find some answers as to the source of their data, but they declined comment except to say that they are <em>&#8220;continuously aggregating and analyzing DNS datasets&#8221;</em>. Truly then, it's a mystery where they got them. But who cares? They're giving them away for free!</p><p>(<strong>UPDATE 8/6/2023</strong>: Subdomain.center&#8217;s website now says, <em>&#8220;Subdomain Center utilizes <a href="https://nutch.apache.org/">Apache's Nutch</a>, <a href="https://certstream.calidog.io/">Calidog's Certstream</a>, <a href="https://platform.openai.com/docs/guides/embeddings/what-are-embeddings">OpenAI's Embedding Models</a> &amp; a few of our proprietary tools to discover more subdomains than anyone else.&#8221;</em>)</p><h4>Runtimes</h4><p>Runtimes are all over the place. Subfinder and Findomain roughly tie for the fastest tool, both finishing in less than 15 seconds. These tools are not performing any brute forcing, only querying APIs. But damn, are they fast! A fun side note: Subfinder is written in Golang, and Findomain in Rust. Always nice to see some friendly competition between Gophers and Rustaceans.  :)</p><p>Amass and Spiderfoot are the big offenders here. I actually chose to shrink their footprints in the graph because they were dwarfing the other tools' results. In the case of <code>delta.com</code>, both Amass and Spiderfoot had to be cancelled after 6 hours.</p><h3>Subdomains</h3><p>But enough about runtimes. Give me subdomains, you say! Give me as many subdomains as humanly possible!</p><p>In that regard, BBOT has you covered. As the creator of BBOT, I may be a little biased, but regardless of how you slice it, it's the clear winner in this category. BBOT found the most subdomains for both <code>spirit.com</code> and <code>delta.com</code>, gathering <strong>44%</strong> more subdomains on average for Spirit, and <strong>118%</strong> more for Delta than the other tools.</p><h1>Conclusion</h1><p>Most Subdomains: <strong>BBOT</strong></p><p>Fastest: Tie between <strong>Subfinder</strong> and <strong>Findomain</strong></p><p>Honorable Mention: <strong>theHarvester</strong></p><h2>Details</h2><h3><a href="https://github.com/blacklanternsecurity/bbot">BBOT</a></h3><p>Version: 1.1.0.2001</p><p>Command:</p><pre><code>bbot -t &lt;domain&gt; -f subdomain-enum -c modules.massdns.max_resolvers=5000</code></pre><p><strong>spirit.com</strong>:</p><ul><li><p>Subdomains: 235</p></li><li><p>Runtime: 5 minutes, 15 seconds</p></li></ul><p><strong>delta.com</strong>:</p><ul><li><p>Subdomains: 1964</p></li><li><p>Runtime: 30 minutes, 18 seconds</p></li></ul><h3><a href="https://github.com/laramies/theHarvester">theHarvester</a></h3><p>Version: 4.4.0</p><p>Command:</p><pre><code>theHarvester.py -d &lt;domain&gt; --dns-brute --dns-lookup -b anubis,baidu,bevigil,binaryedge,bing,bingapi,bufferoverun,brave,certspotter,criminalip,crtsh,dnsdumpster,duckduckgo,fullhunt,github-code,hackertarget,hunter,hunterhow,intelx,netlas,onyphe,otx,pentesttools,projectdiscovery,rapiddns,rocketreach,securityTrails,sitedossier,subdomaincenter,subdomainfinderc99,threatminer,tomba,urlscan,virustotal,yahoo,zoomeye</code></pre><p><strong>spirit.com</strong>:</p><ul><li><p>Subdomains: 191</p></li><li><p>Runtime: 3 minutes, 15 seconds</p></li></ul><p><strong>delta.com</strong>:</p><ul><li><p>Subdomains: 1607</p></li><li><p>Runtime: 5 minutes, 1 second</p></li></ul><h3><a href="https://github.com/projectdiscovery/subfinder">Subfinder</a></h3><p>Version: v2.6.1</p><p>Command:</p><pre><code>subfinder -d &lt;domain&gt; -silent</code></pre><p><strong>spirit.com</strong>:</p><ul><li><p>Subdomains: 183</p></li><li><p>Runtime: 4.9 seconds</p></li></ul><p><strong>delta.com</strong>:</p><ul><li><p>Subdomains: 696</p></li><li><p>Runtime: 10.2 seconds</p></li></ul><h3><a href="https://github.com/owasp-amass/amass">Amass</a></h3><p>Version: v4.0.3</p><p>Command:</p><pre><code>amass enum -d &lt;domain&gt; -active -brute</code></pre><p><strong>spirit.com</strong>:</p><ul><li><p>Subdomains: 185</p></li><li><p>Runtime: 69 minutes, 58 seconds</p></li></ul><p><strong>delta.com</strong>:</p><ul><li><p>Subdomains: 1598</p></li><li><p>Runtime: Cancelled after 6 hours</p></li></ul><h3><a href="https://github.com/shmilylty/OneForAll">OneForAll</a></h3><p>Version: git clone 2023-07-25</p><p>Command:</p><pre><code>oneforall.py --target &lt;domain&gt; run</code></pre><p><strong>spirit.com</strong>:</p><ul><li><p>Subdomains: 169</p></li><li><p>Runtime: 2 minutes, 28 seconds</p></li></ul><p><strong>delta.com</strong>:</p><ul><li><p>Subdomains: 811</p></li><li><p>Runtime: 7 minutes, 26 seconds</p></li></ul><h3><a href="https://github.com/smicallef/spiderfoot">Spiderfoot</a></h3><p>Version: git clone 2023-07-25</p><p>Command:</p><pre><code>sf.py -s &lt;domain&gt; -t INTERNET_NAME -n</code></pre><p><strong>spirit.com</strong>:</p><ul><li><p>Subdomains: 175</p></li><li><p>Runtime: Cancelled after 6 hours</p></li></ul><p><strong>delta.com</strong>:</p><ul><li><p>Subdomains: 712</p></li><li><p>Runtime: Cancelled after 6 hours</p></li></ul><h3><a href="https://github.com/Findomain/Findomain">Findomain</a></h3><p>Version: v9.0.0</p><p>Command:</p><pre><code>findomain -t &lt;domain&gt;</code></pre><p><strong>spirit.com</strong>:</p><ul><li><p>Subdomains: 174</p></li><li><p>Runtime: 4.0 seconds</p></li></ul><p><strong>delta.com</strong>:</p><ul><li><p>Subdomains: 721</p></li><li><p>Runtime: 13.6 seconds</p></li></ul><h3><a href="https://github.com/aboul3la/Sublist3r">Sublist3r</a></h3><p>Version: git clone 2023-07-25</p><p>Command:</p><pre><code>sublist3r.py -d &lt;domain&gt; --bruteforce</code></pre><p><strong>spirit.com</strong>:</p><ul><li><p>Subdomains: 68</p></li><li><p>Runtime: 12 minutes, 49 seconds</p></li></ul><p><strong>delta.com</strong>:</p><ul><li><p>Subdomains: 172</p></li><li><p>Runtime: 17 minutes, 11 seconds</p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.blacklanternsecurity.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Black Lantern Security (BLSOPS)! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[BBOT - DEF CON Tool Release]]></title><description><![CDATA[BBOT 1.1.0 is here, and with it some exciting new developments!]]></description><link>https://blog.blacklanternsecurity.com/p/bbot-def-con-tool-release</link><guid isPermaLink="false">https://blog.blacklanternsecurity.com/p/bbot-def-con-tool-release</guid><dc:creator><![CDATA[TheTechromancer]]></dc:creator><pubDate>Mon, 07 Aug 2023 16:00:37 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!SjGP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6111d586-d6b6-43e2-9c90-452e5f53e37b_2000x1150.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SjGP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6111d586-d6b6-43e2-9c90-452e5f53e37b_2000x1150.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SjGP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6111d586-d6b6-43e2-9c90-452e5f53e37b_2000x1150.png 424w, https://substackcdn.com/image/fetch/$s_!SjGP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6111d586-d6b6-43e2-9c90-452e5f53e37b_2000x1150.png 848w, https://substackcdn.com/image/fetch/$s_!SjGP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6111d586-d6b6-43e2-9c90-452e5f53e37b_2000x1150.png 1272w, https://substackcdn.com/image/fetch/$s_!SjGP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6111d586-d6b6-43e2-9c90-452e5f53e37b_2000x1150.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SjGP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6111d586-d6b6-43e2-9c90-452e5f53e37b_2000x1150.png" width="1456" height="837" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6111d586-d6b6-43e2-9c90-452e5f53e37b_2000x1150.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:837,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;bbot_banner&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="bbot_banner" title="bbot_banner" srcset="https://substackcdn.com/image/fetch/$s_!SjGP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6111d586-d6b6-43e2-9c90-452e5f53e37b_2000x1150.png 424w, https://substackcdn.com/image/fetch/$s_!SjGP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6111d586-d6b6-43e2-9c90-452e5f53e37b_2000x1150.png 848w, https://substackcdn.com/image/fetch/$s_!SjGP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6111d586-d6b6-43e2-9c90-452e5f53e37b_2000x1150.png 1272w, https://substackcdn.com/image/fetch/$s_!SjGP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6111d586-d6b6-43e2-9c90-452e5f53e37b_2000x1150.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><a href="https://github.com/blacklanternsecurity/bbot">BBOT</a> (Bighuge BLS OSINT Tool) is Black Lantern Security's flagship OSINT tool. We use it every day on penetration tests and as the backend for our Attack Surface Management (ASM) offering. Some of us also leverage it for bug bounties in our off time (we're not double-dipping, you're double-dipping!).</p><p>BBOT gets a <em>lot</em> of testing. Continuous execution against such large fortune-500 targets is sure to uncover every kind of horrible edge case imaginable, and rest assured it has. As the creator and primary maintainer of BBOT, I've taken part in more than a few tense debugging sessions and frantic troubleshootings. It's been really challenging, and sometimes even grueling (our testing has so far uncovered two nasty race conditions in well-established networking libraries). But what doesn't kill you makes you stronger! And it's exactly this cycle of testing and improvement makes BBOT the powerful tool that it is.</p><p>As we round out this phase of dev, we are proud to announce the arrival of BBOT 1.1.0. And since we'll be presenting it at DEF CON's Demo Labs, it is hereby dubbed - &#8220;DEF CON Release&#8221;!</p><p>(For those attending DEF CON, we will be presenting BBOT on Saturday August 12th from 12 p.m. - 2 p.m. in the Caesars Forum Boardroom - <a href="https://forum.defcon.org/node/246339">official forum link</a>.)</p><h2>New Feature Highlights</h2><h3>Documentation</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.blacklanternsecurity.com/bbot/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1ry5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6811cf80-63ce-4846-a65a-ac453ceeb8c1_1503x951.png 424w, https://substackcdn.com/image/fetch/$s_!1ry5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6811cf80-63ce-4846-a65a-ac453ceeb8c1_1503x951.png 848w, https://substackcdn.com/image/fetch/$s_!1ry5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6811cf80-63ce-4846-a65a-ac453ceeb8c1_1503x951.png 1272w, https://substackcdn.com/image/fetch/$s_!1ry5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6811cf80-63ce-4846-a65a-ac453ceeb8c1_1503x951.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1ry5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6811cf80-63ce-4846-a65a-ac453ceeb8c1_1503x951.png" width="1456" height="921" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6811cf80-63ce-4846-a65a-ac453ceeb8c1_1503x951.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:921,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.blacklanternsecurity.com/bbot/&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="image" title="image" srcset="https://substackcdn.com/image/fetch/$s_!1ry5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6811cf80-63ce-4846-a65a-ac453ceeb8c1_1503x951.png 424w, https://substackcdn.com/image/fetch/$s_!1ry5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6811cf80-63ce-4846-a65a-ac453ceeb8c1_1503x951.png 848w, https://substackcdn.com/image/fetch/$s_!1ry5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6811cf80-63ce-4846-a65a-ac453ceeb8c1_1503x951.png 1272w, https://substackcdn.com/image/fetch/$s_!1ry5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6811cf80-63ce-4846-a65a-ac453ceeb8c1_1503x951.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>BBOT now has full-fledged, searchable <a href="https://www.blacklanternsecurity.com/bbot/">documentation</a>! Below is a table of contents:</p><ul><li><p><strong>Basics</strong></p><ul><li><p><a href="https://www.blacklanternsecurity.com/bbot/">Getting Started</a></p></li><li><p><a href="https://www.blacklanternsecurity.com/bbot/how_it_works">How It Works</a></p></li><li><p><a href="https://www.blacklanternsecurity.com/bbot/comparison">Comparison to Other Tools</a></p></li></ul></li><li><p><strong>Scanning</strong></p><ul><li><p><a href="https://www.blacklanternsecurity.com/bbot/scanning/">Scanning Overview</a></p></li><li><p><a href="https://www.blacklanternsecurity.com/bbot/scanning/events">Events</a></p></li><li><p><a href="https://www.blacklanternsecurity.com/bbot/scanning/output">Output</a></p></li><li><p><a href="https://www.blacklanternsecurity.com/bbot/scanning/tips_and_tricks">Tips and Tricks</a></p></li><li><p><a href="https://www.blacklanternsecurity.com/bbot/scanning/advanced">Advanced Usage</a></p></li><li><p><a href="https://www.blacklanternsecurity.com/bbot/scanning/configuration">Configuration</a></p></li><li><p><a href="https://www.blacklanternsecurity.com/bbot/scanning/list_of_modules">List of Modules</a></p></li></ul></li><li><p><strong>Contribution</strong></p><ul><li><p><a href="https://www.blacklanternsecurity.com/bbot/contribution">How to Write a Module</a></p></li></ul></li><li><p><strong>Misc</strong></p><ul><li><p><a href="https://www.blacklanternsecurity.com/bbot/release_history">Release History</a></p></li><li><p><a href="https://www.blacklanternsecurity.com/bbot/troubleshooting">Troubleshooting</a></p></li></ul></li></ul><h3>Asyncification</h3><p>BBOT's threading system has been completely overhauled to use <a href="https://docs.python.org/3/library/asyncio.html">asyncio</a>. What used to be a complex system of thread pools and threading locks is now one clean, well-oiled event loop.</p><p>What does this mean? Mainly it means BBOT is leaner and meaner. Its memory footprint is smaller, it&#8217;s more efficient, and most importantly, it's <em>fast</em>. Thanks to asyncio (and other small tweaks and optimizations), BBOT is now roughly 40% faster.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;73486962-3230-4c1c-a106-0c03f6f09eb7&quot;,&quot;duration&quot;:null}"></div><p><em>A BBOT Scan in Real-Time - Visualization with <a href="https://github.com/blacklanternsecurity/bbot-vivagraphjs">VivaGraphJS</a></em></p><h3>Other</h3><p><strong>Features</strong>:</p><ul><li><p>Better handling of DNS wildcards.</p></li><li><p>New and improved subdomain mutations (<code>massdns</code> module).</p></li><li><p>Ability to list flags and their descriptions (<code>-lf</code>).</p></li><li><p>Precise rate-limiting for HTTP and DNS.</p></li><li><p>Better tests (one for each individual module, 91% test coverage).</p></li><li><p>New and improved paramminer modules.</p></li></ul><p><strong>New Modules</strong>:</p><ul><li><p>Git (detects exposed .git folder on websites)</p></li><li><p><a href="https://www.subdomain.center/">Subdomain Center</a> (subdomain enumeration)</p></li><li><p><a href="https://columbus.elmasy.com/">Columbus API</a> (subdomain enumeration)</p></li><li><p>MySSL (subdomain enumeration)</p></li><li><p>Sitedossier (subdomain enumeration)</p></li><li><p>Digitorus (subdomain enumeration)</p></li><li><p>Nmap (port scanner, more reliable than naabu)</p><ul><li><p>naabu has been removed due to reliability issues.</p></li></ul></li><li><p>NSEC (DNSSEC zone-walking for subdomain enumeration)</p></li><li><p>OAUTH (enumerates OAUTH / OpenID-Connect, detects sprayable endpoints)</p></li><li><p>Azure Realm (detects managed/federated Azure Tenants)</p></li><li><p>Subdomains output module</p></li></ul><h3>Conclusion</h3><p>We've been hard at work on BBOT, and we hope it serves you well in your exploits! If you have questions or comments, please come talk to us in <a href="https://discord.com/invite/PZqkgxu5SA">Discord</a>. If you have an idea for a new feature or find a bug, please open an issue on our <a href="https://github.com/blacklanternsecurity/bbot">Github</a>.</p><p>Thanks for reading, and we hope to see you at DEF CON!</p>]]></content:encoded></item><item><title><![CDATA[Introducing Badsecrets]]></title><description><![CDATA[A Library for Detecting Known or Weak Secrets Across Many Web Frameworks]]></description><link>https://blog.blacklanternsecurity.com/p/introducing-badsecrets</link><guid isPermaLink="false">https://blog.blacklanternsecurity.com/p/introducing-badsecrets</guid><dc:creator><![CDATA[Paul Mueller]]></dc:creator><pubDate>Mon, 20 Mar 2023 16:13:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!LOG5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b2943f2-9010-4ba7-99c4-ba9d73398fac_1000x1000.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LOG5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b2943f2-9010-4ba7-99c4-ba9d73398fac_1000x1000.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LOG5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b2943f2-9010-4ba7-99c4-ba9d73398fac_1000x1000.png 424w, https://substackcdn.com/image/fetch/$s_!LOG5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b2943f2-9010-4ba7-99c4-ba9d73398fac_1000x1000.png 848w, https://substackcdn.com/image/fetch/$s_!LOG5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b2943f2-9010-4ba7-99c4-ba9d73398fac_1000x1000.png 1272w, https://substackcdn.com/image/fetch/$s_!LOG5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b2943f2-9010-4ba7-99c4-ba9d73398fac_1000x1000.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LOG5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b2943f2-9010-4ba7-99c4-ba9d73398fac_1000x1000.png" width="727" height="727" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7b2943f2-9010-4ba7-99c4-ba9d73398fac_1000x1000.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1000,&quot;width&quot;:1000,&quot;resizeWidth&quot;:727,&quot;bytes&quot;:1338716,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!LOG5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b2943f2-9010-4ba7-99c4-ba9d73398fac_1000x1000.png 424w, https://substackcdn.com/image/fetch/$s_!LOG5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b2943f2-9010-4ba7-99c4-ba9d73398fac_1000x1000.png 848w, https://substackcdn.com/image/fetch/$s_!LOG5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b2943f2-9010-4ba7-99c4-ba9d73398fac_1000x1000.png 1272w, https://substackcdn.com/image/fetch/$s_!LOG5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b2943f2-9010-4ba7-99c4-ba9d73398fac_1000x1000.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.blacklanternsecurity.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Black Lantern Security (BLSOPS)! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>We all know how much developers love to copy and paste things from Stack overflow.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PIrb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bfa097c-da19-46ac-a32e-567b41f56c9d_549x720.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PIrb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bfa097c-da19-46ac-a32e-567b41f56c9d_549x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!PIrb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bfa097c-da19-46ac-a32e-567b41f56c9d_549x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!PIrb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bfa097c-da19-46ac-a32e-567b41f56c9d_549x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!PIrb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bfa097c-da19-46ac-a32e-567b41f56c9d_549x720.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PIrb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bfa097c-da19-46ac-a32e-567b41f56c9d_549x720.jpeg" width="307" height="402.62295081967216" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1bfa097c-da19-46ac-a32e-567b41f56c9d_549x720.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:549,&quot;resizeWidth&quot;:307,&quot;bytes&quot;:87380,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!PIrb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bfa097c-da19-46ac-a32e-567b41f56c9d_549x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!PIrb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bfa097c-da19-46ac-a32e-567b41f56c9d_549x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!PIrb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bfa097c-da19-46ac-a32e-567b41f56c9d_549x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!PIrb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bfa097c-da19-46ac-a32e-567b41f56c9d_549x720.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>But, what happens when a cryptographic secret is part of what gets copied? What if a project is forked from another project on GitHub and contains a pre-defined secret? What about when an official example code contains pre-filled in secrets? Looking at you, Microsoft.&nbsp;</p><p>Let&#8217;s keep picking on Microsoft and look at the Machine Key.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!r88q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3378178-903e-4fb7-89ba-8d5e949d210f_1348x795.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!r88q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3378178-903e-4fb7-89ba-8d5e949d210f_1348x795.png 424w, https://substackcdn.com/image/fetch/$s_!r88q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3378178-903e-4fb7-89ba-8d5e949d210f_1348x795.png 848w, https://substackcdn.com/image/fetch/$s_!r88q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3378178-903e-4fb7-89ba-8d5e949d210f_1348x795.png 1272w, https://substackcdn.com/image/fetch/$s_!r88q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3378178-903e-4fb7-89ba-8d5e949d210f_1348x795.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!r88q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3378178-903e-4fb7-89ba-8d5e949d210f_1348x795.png" width="1348" height="795" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e3378178-903e-4fb7-89ba-8d5e949d210f_1348x795.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:795,&quot;width&quot;:1348,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:206838,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!r88q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3378178-903e-4fb7-89ba-8d5e949d210f_1348x795.png 424w, https://substackcdn.com/image/fetch/$s_!r88q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3378178-903e-4fb7-89ba-8d5e949d210f_1348x795.png 848w, https://substackcdn.com/image/fetch/$s_!r88q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3378178-903e-4fb7-89ba-8d5e949d210f_1348x795.png 1272w, https://substackcdn.com/image/fetch/$s_!r88q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3378178-903e-4fb7-89ba-8d5e949d210f_1348x795.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>If someone copies this configuration, they are going to be using a Machine Key which is freely available on the internet. Without diving into the details, possession of the Machine Key with .NET apps is equivalent to code execution (if you want to dive into the details, go <a href="https://blog.liquidsec.net/2021/06/01/asp-net-cryptography-for-pentesters/">here</a>).</p><p>To exploit this situation, we have used the tool <a href="https://github.com/NotSoSecure/Blacklist3r">Blacklist3r</a> in the past. Blacklist3r will take a viewstate (a cryptographic product of the Machine Key), and attempt to decrypt/validate the viewstate using a collection of known keys. The key shown in the Microsoft documentation is in Blacklist3r&#8217;s key list, so using it would likely lead to someone getting RCE on your application. It&#8217;s also interesting to just Google one of the keys (like <strong>FBF50941F22D6A3B229EA593F24C41203DA6837F1122EF17</strong>) and see just how many results it shows up in. That key even appears in physical books published almost a decade ago.&nbsp;</p><p>Diving a bit deeper into Blacklist3r for a moment - it is not without its drawbacks. The main annoyance is that because it is a C# application, it is Windows dependent; unless you want to run Mono which is not without its own pitfalls. It&#8217;s also relatively slow; and although slowness is not a big deal when attacking one application, when doing things at scale, it can be very inefficient.&nbsp;</p><p>We created a BBOT module (if you do not know about BBOT, stop and go <a href="https://blog.blacklanternsecurity.com/p/bbot">here</a>) which was a wrapper around Blacklist3r to detect known Machine Keys. It worked, but the headaches around having Mono as a dependency got to be too much, and thoughts of making a pure Python Machine Key checker started to materialize.&nbsp;</p><p>Recreating C# encryption functionality in Python IS as painful as it sounds, but it would be worth it to remove that dependency? But wait &#8211; isn't this a problem on other platforms? There must be a ton of situations where known (or just painfully weak) secrets get used and create security vulnerabilities. ASP.NET Machine Keys were one of the few cases where a tool even existed to exploit this, and Python-based tools for non-Python frameworks just did not exist.&nbsp;</p><p>This is the vision of <a href="https://github.com/blacklanternsecurity/badsecrets">Badsecrets</a>: <strong>a 100% pure Python library, which can facilitate checking the cryptographic products for known secrets across many platforms. </strong>It has a<strong> </strong>module-based design, which will make adding additional frameworks later a more straightforward process. And, since we are also the creators of BBOT, we have created an accompanying BBOT module to make finding this type of security weakness efficient at &#8220;bighuge&#8221; scales.&nbsp;&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4roP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bd97f90-7ec1-4e18-bf95-a40b9addd80c_800x376.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4roP!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bd97f90-7ec1-4e18-bf95-a40b9addd80c_800x376.gif 424w, https://substackcdn.com/image/fetch/$s_!4roP!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bd97f90-7ec1-4e18-bf95-a40b9addd80c_800x376.gif 848w, https://substackcdn.com/image/fetch/$s_!4roP!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bd97f90-7ec1-4e18-bf95-a40b9addd80c_800x376.gif 1272w, https://substackcdn.com/image/fetch/$s_!4roP!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bd97f90-7ec1-4e18-bf95-a40b9addd80c_800x376.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4roP!,w_2400,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bd97f90-7ec1-4e18-bf95-a40b9addd80c_800x376.gif" width="1044" height="490.68" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9bd97f90-7ec1-4e18-bf95-a40b9addd80c_800x376.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:376,&quot;width&quot;:800,&quot;resizeWidth&quot;:1044,&quot;bytes&quot;:6640801,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4roP!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bd97f90-7ec1-4e18-bf95-a40b9addd80c_800x376.gif 424w, https://substackcdn.com/image/fetch/$s_!4roP!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bd97f90-7ec1-4e18-bf95-a40b9addd80c_800x376.gif 848w, https://substackcdn.com/image/fetch/$s_!4roP!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bd97f90-7ec1-4e18-bf95-a40b9addd80c_800x376.gif 1272w, https://substackcdn.com/image/fetch/$s_!4roP!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bd97f90-7ec1-4e18-bf95-a40b9addd80c_800x376.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Currently, there are <s>ten</s> <s>eleven</s> twelve modules:</p><ul><li><p>ASPNET_Viewstate&nbsp;- Checks the viewstate/generator against a list of known Machine Keys.&nbsp;</p></li><li><p>Telerik_HashKey&nbsp;- Checks patched (2017+) versions of Telerik UI for a known Telerik.Upload.ConfigurationHashKey.</p></li><li><p>Telerik_EncryptionKey&nbsp;- Checks patched (2017+) versions of Telerik UI for a known Telerik.Web.UI.DialogParametersEncryptionKey.&nbsp;</p></li><li><p>Flask_SignedCookies&nbsp;- Checks for weak Flask cookie signing passwords. Wrapper for <a href="https://github.com/Paradoxis/Flask-Unsign">flask-unsign</a>.</p></li><li><p>PeopleSoft_PSToken&nbsp;- Can check a PeopleSoft PS_TOKEN for a bad/weak signing password.</p></li><li><p>Django_SignedCookies&nbsp;- Checks Django's session cookies (when in signed_cookie mode) for known Django secret_key.</p></li><li><p>Rails_SecretKeyBase&nbsp;- Checks Ruby on Rails signed or encrypted session cookies (from multiple major releases) for known secret_key_base.</p></li><li><p>Generic_JWT&nbsp;- Checks JWTs for known HMAC secrets or RSA private keys.</p></li><li><p>Jsf_viewstate&nbsp;- Checks both Mojarra and Myfaces implementations of JavaServer Faces (JSF) for use of known or weak secret keys.</p></li><li><p>Symfony_SignedURL&nbsp;- Checks Symfony "_fragment" URLs for known HMAC key. Operates on Full URL, including hash.</p></li><li><p>Express_SignedCookies - Checks express.js signed cookies and session cookies for session secret</p></li><li><p>Laravel_SignedCookies - Checks 'laravel_session' cookies for known laravel 'APP_KEY'</p></li></ul><p>Just the ASPNET_Viewstate module alone is already a full-blown replacement of Blacklist3r, which is faster and has no non-Python dependencies (we&#8217;re not knocking the guys at NotSoSecure who built it &#8211; they inspired all of this!). </p><p>There are other cases where a Badsecrets module can replace existing tools. The PeopleSoft_PSToken module can fully replace (at least for detection) the now homeless and hard to find TockenChpoken tool from 2015. </p><p>Previously, for JavaServer Faces (JSF) Viewstate exploitation,  your best bet was one of a handful of random Python scripts floating around which only worked against a specific implementation and version of JSF, which were apparently created for a particular HackTheBox box. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eNj-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63d73dbf-c78c-4545-a108-b57ba0ce1146_800x352.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eNj-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63d73dbf-c78c-4545-a108-b57ba0ce1146_800x352.gif 424w, https://substackcdn.com/image/fetch/$s_!eNj-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63d73dbf-c78c-4545-a108-b57ba0ce1146_800x352.gif 848w, https://substackcdn.com/image/fetch/$s_!eNj-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63d73dbf-c78c-4545-a108-b57ba0ce1146_800x352.gif 1272w, https://substackcdn.com/image/fetch/$s_!eNj-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63d73dbf-c78c-4545-a108-b57ba0ce1146_800x352.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eNj-!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63d73dbf-c78c-4545-a108-b57ba0ce1146_800x352.gif" width="938" height="411.5475" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/63d73dbf-c78c-4545-a108-b57ba0ce1146_800x352.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:351,&quot;width&quot;:800,&quot;resizeWidth&quot;:938,&quot;bytes&quot;:4262951,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!eNj-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63d73dbf-c78c-4545-a108-b57ba0ce1146_800x352.gif 424w, https://substackcdn.com/image/fetch/$s_!eNj-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63d73dbf-c78c-4545-a108-b57ba0ce1146_800x352.gif 848w, https://substackcdn.com/image/fetch/$s_!eNj-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63d73dbf-c78c-4545-a108-b57ba0ce1146_800x352.gif 1272w, https://substackcdn.com/image/fetch/$s_!eNj-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63d73dbf-c78c-4545-a108-b57ba0ce1146_800x352.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Detecting a Known Mojarra JavaServer Faces ClientStateSavingPassword with Badsecrets and BBOT</figcaption></figure></div><h3>Limitations&nbsp;</h3><p>The consequences of using known cryptographic keys vary widely across the modules. In some cases, it will result in an almost 100% chance of an RCE. In other cases, it may merely facilitate a privilege escalation by allowing control of a secure cookie. One thing Badsecrets does not much with is the actual exploitation of these vulnerabilities. It will help you find them, but you are generally on your own from there. Sometimes exploitation will be very straightforward, and in other cases it might require a lot of follow-on work or chaining with other vulnerabilities. This probably won&#8217;t change, as we do not really want to enable people to get RCE on systems when they have not put in even basic research to understand the vulnerabilities which they want to exploit. &nbsp;</p><h3>Use Cases&nbsp;</h3><p>There are some included &#8220;example&#8221; scripts. These include a general &#8220;CLI&#8221; utility (<a href="https://github.com/blacklanternsecurity/badsecrets/blob/main/examples/cli.py">cli.py</a>) which can accept any cryptographic product and try it against all modules at once. <a href="https://github.com/blacklanternsecurity/badsecrets/blob/main/examples/blacklist3r.py">Blacklist3r.py</a> is&nbsp;essentially a CLI recreation of Blacklist3r. <a href="https://github.com/blacklanternsecurity/badsecrets/blob/main/examples/telerik_knownkey.py">Telerik_knownkey.py</a> is a brute force tool that utilizes cryptographic functions within the Telerik-based Badsecrets modules. &nbsp;<a href="https://github.com/blacklanternsecurity/badsecrets/blob/main/examples/symfony_knownkey.py">Symfony_knownkey.py</a> can identify known Symfony HMAC keys, even when a sample hash can not be identified.</p><p>Despite the provided examples, Badsecrets is designed to be a library used by other tools. The most immediate example of this is the <a href="https://github.com/blacklanternsecurity/bbot/blob/stable/bbot/modules/badsecrets.py">Badsecrets BBOT module</a>, which makes much of its functionality immediately accessible in a way that can identify critical security vulnerabilities at scale.&nbsp;</p><p>Badsecrets has a couple of different &#8220;levels&#8221; it is designed to be used at. The most basic way is to load up a particular module, then submit a corresponding cryptographic product to it, and find out if that product was created with a known or weak secret.&nbsp;</p><p>It can also be used to &#8220;carve&#8221; data out of HTML content. For example, you can hand the carve functionality a page with an ASP.NET viewstate in it, and let it automatically find and test the viewstate without bothering with manually grabbing it.&nbsp;&nbsp;</p><p>The way our BBOT module interacts with Badsecrets is by taking advantage of the &#8220;carve_all_modules&#8221; functionality. Modules can include a special regex which helps the carve functionality find a particular type of secret. The carve_all_modules function checks an HTTP response against every available Badsecrets module. If it finds a matching secret, it moves on to trying to use all its known keys against it, as defined by the detecting module. Any matches get forwarded to BBOT&#8217;s event system, and just like that,&nbsp;you have yourself a confirmed critical vulnerability &#8211; all from merely parsing HTML content.&nbsp;&nbsp;</p><p>This can also be accomplished with the <a href="https://github.com/blacklanternsecurity/badsecrets/blob/main/examples/cli.py">cli.py</a> example script. This is not very fancy, but it is meant to be an example implementation of a CLI-based interface with Badsecrets. You can supply the &#8220;product&#8221; directly or use the <code>&#8211;url</code> mode to actually visit a page and try to carve for one. &nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tpN0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11c0db46-ff2c-4a45-9576-8cddf7fd6132_800x406.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tpN0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11c0db46-ff2c-4a45-9576-8cddf7fd6132_800x406.gif 424w, https://substackcdn.com/image/fetch/$s_!tpN0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11c0db46-ff2c-4a45-9576-8cddf7fd6132_800x406.gif 848w, https://substackcdn.com/image/fetch/$s_!tpN0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11c0db46-ff2c-4a45-9576-8cddf7fd6132_800x406.gif 1272w, https://substackcdn.com/image/fetch/$s_!tpN0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11c0db46-ff2c-4a45-9576-8cddf7fd6132_800x406.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tpN0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11c0db46-ff2c-4a45-9576-8cddf7fd6132_800x406.gif" width="800" height="406" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/11c0db46-ff2c-4a45-9576-8cddf7fd6132_800x406.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:406,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4387864,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tpN0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11c0db46-ff2c-4a45-9576-8cddf7fd6132_800x406.gif 424w, https://substackcdn.com/image/fetch/$s_!tpN0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11c0db46-ff2c-4a45-9576-8cddf7fd6132_800x406.gif 848w, https://substackcdn.com/image/fetch/$s_!tpN0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11c0db46-ff2c-4a45-9576-8cddf7fd6132_800x406.gif 1272w, https://substackcdn.com/image/fetch/$s_!tpN0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11c0db46-ff2c-4a45-9576-8cddf7fd6132_800x406.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Using the cli.py Utility to Analyze Various Cryptographic Products for Known Secrets</figcaption></figure></div><p>Some of the bad secrets detected by Badsecrets naturally lend themselves quite nicely to massively-scaled detection. This is because the cryptographic product in question is automatically presented on the page, and most or every page within the application. This applies to the <strong>ASPNET_Viewstate</strong> module, to the <strong>Jsf_Viewstate</strong> module (looking for JavaServer Faces viewstates), and to a much lesser extent - the <strong>Generic_JWT</strong> module. &nbsp;</p><p>However, not all the modules are going to work well with BBOT because the cryptographic products don&#8217;t just automatically appear on their own. In most cases, this is because the product in question is a cookie, which is usually only assigned after authentication. In these cases, it may be easier to manually check the secret, either using <strong>cli.py</strong> or manually from a Python console. This applies to the <strong>Django_SignedCookies</strong>, <strong>Rails_SecretKeyBase</strong>, and <strong>Flask_SignedCookies</strong> modules. This is why Badsecrets was started as a stand-alone project and later integrated into BBOT, and not just a BBOT component. BBOT can take parts of Badsecrets and make them scale beautifully, but is much less helpful in other cases. &nbsp;</p><p>In the case of the Telerik Badsecrets modules, finding a page which directly displays the `DialogParameters` value might be difficult. It will only appear on a page that utilizes the Telerik UI text editor utility.&nbsp; Without diving too far into the technical details of Telerik UI vulnerabilities (<a href="https://blog.blacklanternsecurity.com/p/yet-another-telerik-ui-revisit">we&#8217;ve already done that elsewhere</a>), it is the kind of thing that you&#8217;d be more likely to spot when looking through your Burp Suite history after testing an application, as opposed to being able to scan a lot of targets for it at once.&nbsp;</p><p>However, our included example utility (<strong>Telerik_knownkey.py</strong>) only requires the  <strong>Telerik.Web.UI.DialogHandler.aspx</strong> endpoint and will brute force with all of the Telerik encryption and/or hash keys, even if a page containing the editor cannot be located or does not exist. This is the only public tool capable of exploiting fully patched versions of Telerik UI!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eoA-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2e51882-3cd4-4089-93bb-bf5bfff4cb14_800x354.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eoA-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2e51882-3cd4-4089-93bb-bf5bfff4cb14_800x354.gif 424w, https://substackcdn.com/image/fetch/$s_!eoA-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2e51882-3cd4-4089-93bb-bf5bfff4cb14_800x354.gif 848w, https://substackcdn.com/image/fetch/$s_!eoA-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2e51882-3cd4-4089-93bb-bf5bfff4cb14_800x354.gif 1272w, https://substackcdn.com/image/fetch/$s_!eoA-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2e51882-3cd4-4089-93bb-bf5bfff4cb14_800x354.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eoA-!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2e51882-3cd4-4089-93bb-bf5bfff4cb14_800x354.gif" width="970" height="429.225" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b2e51882-3cd4-4089-93bb-bf5bfff4cb14_800x354.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:354,&quot;width&quot;:800,&quot;resizeWidth&quot;:970,&quot;bytes&quot;:3461894,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!eoA-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2e51882-3cd4-4089-93bb-bf5bfff4cb14_800x354.gif 424w, https://substackcdn.com/image/fetch/$s_!eoA-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2e51882-3cd4-4089-93bb-bf5bfff4cb14_800x354.gif 848w, https://substackcdn.com/image/fetch/$s_!eoA-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2e51882-3cd4-4089-93bb-bf5bfff4cb14_800x354.gif 1272w, https://substackcdn.com/image/fetch/$s_!eoA-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2e51882-3cd4-4089-93bb-bf5bfff4cb14_800x354.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Using the Standalone telerik_knownkey.py Tool to Find Known Keys in Telerik UI</figcaption></figure></div><p>This is a good example of how one of the biggest benefits of Badsecrets: it&#8217;s a repository of various cryptographic implementations which might be otherwise not available in Python. For example, to make the <strong>telerik_encryptionkey</strong> module work with all known versions of Telerik UI, a Python implementation of C#&#8217;s specially modified pbkdf1 key derivation function had to be implemented, which deviates from the standard used by every other language. If anyone else should be unfortunate enough to need this in Python, it is available as a standalone class in <strong><a href="https://github.com/blacklanternsecurity/badsecrets/blob/dev/badsecrets/helpers.py">helpers.py</a></strong>. &nbsp;</p><p>Hopefully, others will find these individual components useful and use them in other tools.&nbsp;</p><h3>Populating Keys&nbsp;</h3><p>To get the known keys we check against, we used a combination of sources. One is just grabbing what is already out there in the community, such as with Blacklist3r&#8217;s existing Machine Keys. We also took a queue from <a href="https://blog.assetnote.io/2020/09/18/finding-hidden-files-folders-iis-bigquery/">Assetnote</a> and used Google BigQuery to scrape all of GitHub for keys when we could. They have a database which includes all the code on GitHub, which is astounding, and incredibly useful (for both good and evil). This ended up letting us add on to existing collections of keys for some modules and build a good starting set for others which have not had one. But, be cautious with BigQuery &#8211; you can rack up hundreds of dollars in charges quickly if you are not careful!&nbsp;</p><h3>Future&nbsp;</h3><p>The goal for Badsecrets is to become the standard bearer for this classification of &#8216;vulnerabilities&#8217; (really, misconfigurations). Hopefully, there will be community contributions which can continue to grow the available modules and cover more web frameworks and utilities. We would LOVE it if someone just made a brand new module and submitted a pull request! But, a fantastic way people can contribute is to add to the known keys lists if they encounter one that we do not have that are also publicly exposed. Even just requests for modules to cover a specific framework would be immensely helpful! &nbsp;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.blacklanternsecurity.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Black Lantern Security (BLSOPS)! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The BLS-Bible]]></title><description><![CDATA[A knowledge-base management tool aimed to improve the lives of information security professionals in all walks of life.]]></description><link>https://blog.blacklanternsecurity.com/p/bls-bible</link><guid isPermaLink="false">https://blog.blacklanternsecurity.com/p/bls-bible</guid><dc:creator><![CDATA[Cody Martin]]></dc:creator><pubDate>Wed, 08 Feb 2023 17:00:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!H30k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7131a118-2674-4b66-b6fd-b4a5744b025a_2047x1047.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>At Black Lantern Security (BLS), we have felt the pains of managing the vast sea of knowledge acquired by each of our amazingly talented operators. We have tried Wikis, Git repositories, and decentralized collections of data in CherryTree or Obsidian - all in an attempt to manage everything. Each option we tried had their drawbacks and some features we loved. After a great deal of thought and planning, (with a herculean effort from <a href="https://twitter.com/ThomasPresto1">@ThomasPresto1</a> on many of the guides and the CLI) as well as front/back-end development from <a href="https://twitter.com/codymartin">@codymartin</a>, BLS is thrilled to announce the public release of the <a href="https://github.com/blacklanternsecurity/bls-bible">BLS-Bible</a>!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!H30k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7131a118-2674-4b66-b6fd-b4a5744b025a_2047x1047.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!H30k!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7131a118-2674-4b66-b6fd-b4a5744b025a_2047x1047.png 424w, https://substackcdn.com/image/fetch/$s_!H30k!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7131a118-2674-4b66-b6fd-b4a5744b025a_2047x1047.png 848w, https://substackcdn.com/image/fetch/$s_!H30k!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7131a118-2674-4b66-b6fd-b4a5744b025a_2047x1047.png 1272w, https://substackcdn.com/image/fetch/$s_!H30k!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7131a118-2674-4b66-b6fd-b4a5744b025a_2047x1047.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!H30k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7131a118-2674-4b66-b6fd-b4a5744b025a_2047x1047.png" width="1456" height="745" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7131a118-2674-4b66-b6fd-b4a5744b025a_2047x1047.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:745,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:257752,&quot;alt&quot;:&quot;BLS-Bible Main Screen&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="BLS-Bible Main Screen" title="BLS-Bible Main Screen" srcset="https://substackcdn.com/image/fetch/$s_!H30k!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7131a118-2674-4b66-b6fd-b4a5744b025a_2047x1047.png 424w, https://substackcdn.com/image/fetch/$s_!H30k!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7131a118-2674-4b66-b6fd-b4a5744b025a_2047x1047.png 848w, https://substackcdn.com/image/fetch/$s_!H30k!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7131a118-2674-4b66-b6fd-b4a5744b025a_2047x1047.png 1272w, https://substackcdn.com/image/fetch/$s_!H30k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7131a118-2674-4b66-b6fd-b4a5744b025a_2047x1047.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">BLS-Bible Main Screen</figcaption></figure></div><h3>Feature Set</h3><p>For starters, the <a href="https://github.com/blacklanternsecurity/bls-bible">BLS-Bible</a> is packed with features:</p><ul><li><p>Multiple deployment types to suit your operational needs</p></li><li><p>Markdown rendered pages</p></li><li><p>In-app editing</p></li><li><p>Tag-based, filterable searching</p></li><li><p>Regular expression searching with optional context</p></li><li><p>Threat profiles</p><ul><li><p>Exportable to PDF, ATT&amp;CK Navigator</p></li><li><p>Calculate percent-match to known APTs</p></li></ul></li><li><p>MITRE ATT&amp;CK mapping for guides via tags</p></li><li><p>Version control thanks to Git</p></li><li><p>Apochrypha - Git sub-modules so you can pull in your favorite repositories of knowledge</p></li><li><p>Assessalonians - Git sub-module specifically for your organization&#8217;s private repository of knowledge</p></li><li><p>Apostles - A leaderboard to rank the entire community&#8217;s contributions to the <a href="https://github.com/blacklanternsecurity/bls-bible">BLS-Bible</a></p></li><li><p>Developer tools - A collection of utility functions to help maintain the knowledge-base</p></li><li><p>Themes - Easily switch between premade color schemes or make your own</p></li></ul><p>Instead of writing at length about each of these, it is easier to demonstrate with images.</p><h4>Markdown Rendering</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4IeX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f83ea0b-8631-4514-a7c5-1071f9bc62d6_1975x991.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4IeX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f83ea0b-8631-4514-a7c5-1071f9bc62d6_1975x991.png 424w, https://substackcdn.com/image/fetch/$s_!4IeX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f83ea0b-8631-4514-a7c5-1071f9bc62d6_1975x991.png 848w, https://substackcdn.com/image/fetch/$s_!4IeX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f83ea0b-8631-4514-a7c5-1071f9bc62d6_1975x991.png 1272w, https://substackcdn.com/image/fetch/$s_!4IeX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f83ea0b-8631-4514-a7c5-1071f9bc62d6_1975x991.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4IeX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f83ea0b-8631-4514-a7c5-1071f9bc62d6_1975x991.png" width="1456" height="731" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8f83ea0b-8631-4514-a7c5-1071f9bc62d6_1975x991.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:731,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:112352,&quot;alt&quot;:&quot;Viewing a Page&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Viewing a Page" title="Viewing a Page" srcset="https://substackcdn.com/image/fetch/$s_!4IeX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f83ea0b-8631-4514-a7c5-1071f9bc62d6_1975x991.png 424w, https://substackcdn.com/image/fetch/$s_!4IeX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f83ea0b-8631-4514-a7c5-1071f9bc62d6_1975x991.png 848w, https://substackcdn.com/image/fetch/$s_!4IeX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f83ea0b-8631-4514-a7c5-1071f9bc62d6_1975x991.png 1272w, https://substackcdn.com/image/fetch/$s_!4IeX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f83ea0b-8631-4514-a7c5-1071f9bc62d6_1975x991.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Viewing a Page</figcaption></figure></div><p>All files under the <code>/Data</code> directory can be rendered to screen in a human readable format. This includes programs/scripts as well with full syntax highlighting. The reading window has the table of contents on the left pane and has custom history management as well as navigation at the top. Clicking a link within the page will take you to that page. The arrow buttons allow you to traverse forward and backward through your reading.</p><h4>In-App Editing</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9EQ-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66d84155-a1e8-4dd6-b71b-f78f69f072db_1972x972.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9EQ-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66d84155-a1e8-4dd6-b71b-f78f69f072db_1972x972.png 424w, https://substackcdn.com/image/fetch/$s_!9EQ-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66d84155-a1e8-4dd6-b71b-f78f69f072db_1972x972.png 848w, https://substackcdn.com/image/fetch/$s_!9EQ-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66d84155-a1e8-4dd6-b71b-f78f69f072db_1972x972.png 1272w, https://substackcdn.com/image/fetch/$s_!9EQ-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66d84155-a1e8-4dd6-b71b-f78f69f072db_1972x972.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9EQ-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66d84155-a1e8-4dd6-b71b-f78f69f072db_1972x972.png" width="1456" height="718" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/66d84155-a1e8-4dd6-b71b-f78f69f072db_1972x972.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:718,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:144997,&quot;alt&quot;:&quot;Editing a Page&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Editing a Page" title="Editing a Page" srcset="https://substackcdn.com/image/fetch/$s_!9EQ-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66d84155-a1e8-4dd6-b71b-f78f69f072db_1972x972.png 424w, https://substackcdn.com/image/fetch/$s_!9EQ-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66d84155-a1e8-4dd6-b71b-f78f69f072db_1972x972.png 848w, https://substackcdn.com/image/fetch/$s_!9EQ-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66d84155-a1e8-4dd6-b71b-f78f69f072db_1972x972.png 1272w, https://substackcdn.com/image/fetch/$s_!9EQ-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66d84155-a1e8-4dd6-b71b-f78f69f072db_1972x972.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Editing a Page</figcaption></figure></div><p>On specific deployments (dev, ops) you can edit pages within the application itself. The syntax and functionality available are nearly equivalent to what you&#8217;d expect when using GitHub. If you want to make a quick edit on your local system or deploy a temporary ops server to edit on collaboratively during an assessment, you can. Once you&#8217;re ready to push your content additions, you can commit your changes to a new branch and request a pull into the development branch.</p><h4>Tag-Based, Filterable Searching</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ESgf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cb5b55-3b9d-4824-a56f-5801207c9812_542x921.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ESgf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cb5b55-3b9d-4824-a56f-5801207c9812_542x921.png 424w, https://substackcdn.com/image/fetch/$s_!ESgf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cb5b55-3b9d-4824-a56f-5801207c9812_542x921.png 848w, https://substackcdn.com/image/fetch/$s_!ESgf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cb5b55-3b9d-4824-a56f-5801207c9812_542x921.png 1272w, https://substackcdn.com/image/fetch/$s_!ESgf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cb5b55-3b9d-4824-a56f-5801207c9812_542x921.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ESgf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cb5b55-3b9d-4824-a56f-5801207c9812_542x921.png" width="542" height="921" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/15cb5b55-3b9d-4824-a56f-5801207c9812_542x921.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:921,&quot;width&quot;:542,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:88156,&quot;alt&quot;:&quot;Tag Based Searching&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Tag Based Searching" title="Tag Based Searching" srcset="https://substackcdn.com/image/fetch/$s_!ESgf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cb5b55-3b9d-4824-a56f-5801207c9812_542x921.png 424w, https://substackcdn.com/image/fetch/$s_!ESgf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cb5b55-3b9d-4824-a56f-5801207c9812_542x921.png 848w, https://substackcdn.com/image/fetch/$s_!ESgf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cb5b55-3b9d-4824-a56f-5801207c9812_542x921.png 1272w, https://substackcdn.com/image/fetch/$s_!ESgf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cb5b55-3b9d-4824-a56f-5801207c9812_542x921.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Tag Based Searching</figcaption></figure></div><p>The basic search functionality is built around tags (<code>#@tag</code>) that are included within each page, as well as the naming of the folders and pages themselves. These tags are indexed to provide a very responsive list of results.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!48PX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed2a2dac-85c9-425d-8f4e-57722c96e37f_992x812.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!48PX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed2a2dac-85c9-425d-8f4e-57722c96e37f_992x812.png 424w, https://substackcdn.com/image/fetch/$s_!48PX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed2a2dac-85c9-425d-8f4e-57722c96e37f_992x812.png 848w, https://substackcdn.com/image/fetch/$s_!48PX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed2a2dac-85c9-425d-8f4e-57722c96e37f_992x812.png 1272w, https://substackcdn.com/image/fetch/$s_!48PX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed2a2dac-85c9-425d-8f4e-57722c96e37f_992x812.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!48PX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed2a2dac-85c9-425d-8f4e-57722c96e37f_992x812.png" width="992" height="812" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ed2a2dac-85c9-425d-8f4e-57722c96e37f_992x812.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:812,&quot;width&quot;:992,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:44845,&quot;alt&quot;:&quot;Search Filters&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Search Filters" title="Search Filters" srcset="https://substackcdn.com/image/fetch/$s_!48PX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed2a2dac-85c9-425d-8f4e-57722c96e37f_992x812.png 424w, https://substackcdn.com/image/fetch/$s_!48PX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed2a2dac-85c9-425d-8f4e-57722c96e37f_992x812.png 848w, https://substackcdn.com/image/fetch/$s_!48PX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed2a2dac-85c9-425d-8f4e-57722c96e37f_992x812.png 1272w, https://substackcdn.com/image/fetch/$s_!48PX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed2a2dac-85c9-425d-8f4e-57722c96e37f_992x812.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Search Filters</figcaption></figure></div><p>You can further filter down the results shown to you in your search results, as well as the main screen. Selecting these filters will show you those resources containing the relevant tags. Selecting known threat profiles will filter to the techniques associated with the threat profiles.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DpLZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d1fc5c3-1530-470a-ac77-19fb082c8ce1_564x457.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DpLZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d1fc5c3-1530-470a-ac77-19fb082c8ce1_564x457.png 424w, https://substackcdn.com/image/fetch/$s_!DpLZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d1fc5c3-1530-470a-ac77-19fb082c8ce1_564x457.png 848w, https://substackcdn.com/image/fetch/$s_!DpLZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d1fc5c3-1530-470a-ac77-19fb082c8ce1_564x457.png 1272w, https://substackcdn.com/image/fetch/$s_!DpLZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d1fc5c3-1530-470a-ac77-19fb082c8ce1_564x457.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DpLZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d1fc5c3-1530-470a-ac77-19fb082c8ce1_564x457.png" width="564" height="457" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9d1fc5c3-1530-470a-ac77-19fb082c8ce1_564x457.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:457,&quot;width&quot;:564,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:47050,&quot;alt&quot;:&quot;Filtered Search Results&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Filtered Search Results" title="Filtered Search Results" srcset="https://substackcdn.com/image/fetch/$s_!DpLZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d1fc5c3-1530-470a-ac77-19fb082c8ce1_564x457.png 424w, https://substackcdn.com/image/fetch/$s_!DpLZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d1fc5c3-1530-470a-ac77-19fb082c8ce1_564x457.png 848w, https://substackcdn.com/image/fetch/$s_!DpLZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d1fc5c3-1530-470a-ac77-19fb082c8ce1_564x457.png 1272w, https://substackcdn.com/image/fetch/$s_!DpLZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d1fc5c3-1530-470a-ac77-19fb082c8ce1_564x457.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Filtered Search Results</figcaption></figure></div><p>As you can see above, according to MITRE&#8217;s data, APT41 is known utilizing the listed techniques, and those techniques happen to contain <code>AD</code>.</p><h4>Regular Expression Searching with Context</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eC-i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde008c0-0247-40ac-8434-6cec7f74808e_1977x936.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eC-i!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde008c0-0247-40ac-8434-6cec7f74808e_1977x936.png 424w, https://substackcdn.com/image/fetch/$s_!eC-i!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde008c0-0247-40ac-8434-6cec7f74808e_1977x936.png 848w, https://substackcdn.com/image/fetch/$s_!eC-i!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde008c0-0247-40ac-8434-6cec7f74808e_1977x936.png 1272w, https://substackcdn.com/image/fetch/$s_!eC-i!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde008c0-0247-40ac-8434-6cec7f74808e_1977x936.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eC-i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde008c0-0247-40ac-8434-6cec7f74808e_1977x936.png" width="1456" height="689" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fde008c0-0247-40ac-8434-6cec7f74808e_1977x936.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:689,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:135682,&quot;alt&quot;:&quot;Contextualized Regex Pattern Search&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Contextualized Regex Pattern Search" title="Contextualized Regex Pattern Search" srcset="https://substackcdn.com/image/fetch/$s_!eC-i!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde008c0-0247-40ac-8434-6cec7f74808e_1977x936.png 424w, https://substackcdn.com/image/fetch/$s_!eC-i!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde008c0-0247-40ac-8434-6cec7f74808e_1977x936.png 848w, https://substackcdn.com/image/fetch/$s_!eC-i!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde008c0-0247-40ac-8434-6cec7f74808e_1977x936.png 1272w, https://substackcdn.com/image/fetch/$s_!eC-i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde008c0-0247-40ac-8434-6cec7f74808e_1977x936.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Contextualized Regex Pattern Search</figcaption></figure></div><p>While tagging is helpful, not everything is going to be tagged perfectly. Additionally, we include content from other amazing public projects and can&#8217;t expect them to adhere to our tagging system. For those reasons, you can also perform a regex or advanced search for the thing you&#8217;re looking for. This will take a regex pattern and search through every file within the project (including external projects) and provide you with a list of files containing the pattern match. You can also bump up the <code>context </code>setting to see for sure if that&#8217;s the file you are looking for.</p><h4>Threat Profiles</h4><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3j0x!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0da30913-98e4-4157-ac69-eafecea66277_522x225.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3j0x!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0da30913-98e4-4157-ac69-eafecea66277_522x225.png 424w, https://substackcdn.com/image/fetch/$s_!3j0x!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0da30913-98e4-4157-ac69-eafecea66277_522x225.png 848w, https://substackcdn.com/image/fetch/$s_!3j0x!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0da30913-98e4-4157-ac69-eafecea66277_522x225.png 1272w, https://substackcdn.com/image/fetch/$s_!3j0x!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0da30913-98e4-4157-ac69-eafecea66277_522x225.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3j0x!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0da30913-98e4-4157-ac69-eafecea66277_522x225.png" width="522" height="225" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0da30913-98e4-4157-ac69-eafecea66277_522x225.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:225,&quot;width&quot;:522,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:21646,&quot;alt&quot;:&quot;Threat Profile Management&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Threat Profile Management" title="Threat Profile Management" srcset="https://substackcdn.com/image/fetch/$s_!3j0x!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0da30913-98e4-4157-ac69-eafecea66277_522x225.png 424w, https://substackcdn.com/image/fetch/$s_!3j0x!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0da30913-98e4-4157-ac69-eafecea66277_522x225.png 848w, https://substackcdn.com/image/fetch/$s_!3j0x!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0da30913-98e4-4157-ac69-eafecea66277_522x225.png 1272w, https://substackcdn.com/image/fetch/$s_!3j0x!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0da30913-98e4-4157-ac69-eafecea66277_522x225.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Threat Profile Management</figcaption></figure></div><p>It made sense to allow end users the ability to create their own threat profiles within the application. With threat profiles, you can add techniques to your custom threat profile as you proceed through your assessment. At the end of your assessment, you&#8217;ll have a list outlining the techniques you used against the target environment.</p><h5>Exporting Threat Profiles</h5><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fTug!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3448e063-f637-4b48-acb1-449c444e8e4f_1142x1032.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fTug!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3448e063-f637-4b48-acb1-449c444e8e4f_1142x1032.png 424w, https://substackcdn.com/image/fetch/$s_!fTug!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3448e063-f637-4b48-acb1-449c444e8e4f_1142x1032.png 848w, https://substackcdn.com/image/fetch/$s_!fTug!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3448e063-f637-4b48-acb1-449c444e8e4f_1142x1032.png 1272w, https://substackcdn.com/image/fetch/$s_!fTug!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3448e063-f637-4b48-acb1-449c444e8e4f_1142x1032.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fTug!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3448e063-f637-4b48-acb1-449c444e8e4f_1142x1032.png" width="1142" height="1032" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3448e063-f637-4b48-acb1-449c444e8e4f_1142x1032.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1032,&quot;width&quot;:1142,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:129998,&quot;alt&quot;:&quot;PDF Export of Threat Profile&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="PDF Export of Threat Profile" title="PDF Export of Threat Profile" srcset="https://substackcdn.com/image/fetch/$s_!fTug!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3448e063-f637-4b48-acb1-449c444e8e4f_1142x1032.png 424w, https://substackcdn.com/image/fetch/$s_!fTug!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3448e063-f637-4b48-acb1-449c444e8e4f_1142x1032.png 848w, https://substackcdn.com/image/fetch/$s_!fTug!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3448e063-f637-4b48-acb1-449c444e8e4f_1142x1032.png 1272w, https://substackcdn.com/image/fetch/$s_!fTug!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3448e063-f637-4b48-acb1-449c444e8e4f_1142x1032.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">PDF Export of Threat Profile</figcaption></figure></div><p>If your client is interested in learning more about the techniques used, you can export the threat profile directly to a PDF document that you may share with your client.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!d-ch!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35549a68-fa9a-460c-8826-b5ea3d13b317_1521x959.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!d-ch!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35549a68-fa9a-460c-8826-b5ea3d13b317_1521x959.png 424w, https://substackcdn.com/image/fetch/$s_!d-ch!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35549a68-fa9a-460c-8826-b5ea3d13b317_1521x959.png 848w, https://substackcdn.com/image/fetch/$s_!d-ch!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35549a68-fa9a-460c-8826-b5ea3d13b317_1521x959.png 1272w, https://substackcdn.com/image/fetch/$s_!d-ch!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35549a68-fa9a-460c-8826-b5ea3d13b317_1521x959.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!d-ch!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35549a68-fa9a-460c-8826-b5ea3d13b317_1521x959.png" width="1456" height="918" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/35549a68-fa9a-460c-8826-b5ea3d13b317_1521x959.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:918,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:215203,&quot;alt&quot;:&quot;MITRE ATT&amp;CK Navigator Export of Threat Profiles&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="MITRE ATT&amp;CK Navigator Export of Threat Profiles" title="MITRE ATT&amp;CK Navigator Export of Threat Profiles" srcset="https://substackcdn.com/image/fetch/$s_!d-ch!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35549a68-fa9a-460c-8826-b5ea3d13b317_1521x959.png 424w, https://substackcdn.com/image/fetch/$s_!d-ch!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35549a68-fa9a-460c-8826-b5ea3d13b317_1521x959.png 848w, https://substackcdn.com/image/fetch/$s_!d-ch!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35549a68-fa9a-460c-8826-b5ea3d13b317_1521x959.png 1272w, https://substackcdn.com/image/fetch/$s_!d-ch!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35549a68-fa9a-460c-8826-b5ea3d13b317_1521x959.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">MITRE ATT&amp;CK Navigator Export of Threat Profiles</figcaption></figure></div><p>You can also export your profile or profiles directly to an ATT&amp;CK Navigator file to be ingested into this widely-used application.</p><h5>Matching Threat Profiles to APTs</h5><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uzqp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a5b305e-be33-476a-829e-0e95ec134a6c_1661x274.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uzqp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a5b305e-be33-476a-829e-0e95ec134a6c_1661x274.png 424w, https://substackcdn.com/image/fetch/$s_!uzqp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a5b305e-be33-476a-829e-0e95ec134a6c_1661x274.png 848w, https://substackcdn.com/image/fetch/$s_!uzqp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a5b305e-be33-476a-829e-0e95ec134a6c_1661x274.png 1272w, https://substackcdn.com/image/fetch/$s_!uzqp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a5b305e-be33-476a-829e-0e95ec134a6c_1661x274.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uzqp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a5b305e-be33-476a-829e-0e95ec134a6c_1661x274.png" width="1456" height="240" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4a5b305e-be33-476a-829e-0e95ec134a6c_1661x274.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:240,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:31315,&quot;alt&quot;:&quot;Percent Match of Threat Profile to Known APTs&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Percent Match of Threat Profile to Known APTs" title="Percent Match of Threat Profile to Known APTs" srcset="https://substackcdn.com/image/fetch/$s_!uzqp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a5b305e-be33-476a-829e-0e95ec134a6c_1661x274.png 424w, https://substackcdn.com/image/fetch/$s_!uzqp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a5b305e-be33-476a-829e-0e95ec134a6c_1661x274.png 848w, https://substackcdn.com/image/fetch/$s_!uzqp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a5b305e-be33-476a-829e-0e95ec134a6c_1661x274.png 1272w, https://substackcdn.com/image/fetch/$s_!uzqp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a5b305e-be33-476a-829e-0e95ec134a6c_1661x274.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Percent Match of Threat Profile to Known APTs</figcaption></figure></div><p>Another helpful feature is the ability to compare your custom threat profiles to known advanced persistent threats (APTs) as tracked by MITRE. This gives you an idea of how well you are emulating known attackers.</p><h4>MITRE ATT&amp;CK</h4><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2Fnc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fd4f721-360c-4ca8-94e9-3017029ae8b7_617x71.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2Fnc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fd4f721-360c-4ca8-94e9-3017029ae8b7_617x71.png 424w, https://substackcdn.com/image/fetch/$s_!2Fnc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fd4f721-360c-4ca8-94e9-3017029ae8b7_617x71.png 848w, https://substackcdn.com/image/fetch/$s_!2Fnc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fd4f721-360c-4ca8-94e9-3017029ae8b7_617x71.png 1272w, https://substackcdn.com/image/fetch/$s_!2Fnc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fd4f721-360c-4ca8-94e9-3017029ae8b7_617x71.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2Fnc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fd4f721-360c-4ca8-94e9-3017029ae8b7_617x71.png" width="617" height="71" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2fd4f721-360c-4ca8-94e9-3017029ae8b7_617x71.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:71,&quot;width&quot;:617,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6799,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!2Fnc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fd4f721-360c-4ca8-94e9-3017029ae8b7_617x71.png 424w, https://substackcdn.com/image/fetch/$s_!2Fnc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fd4f721-360c-4ca8-94e9-3017029ae8b7_617x71.png 848w, https://substackcdn.com/image/fetch/$s_!2Fnc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fd4f721-360c-4ca8-94e9-3017029ae8b7_617x71.png 1272w, https://substackcdn.com/image/fetch/$s_!2Fnc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fd4f721-360c-4ca8-94e9-3017029ae8b7_617x71.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Guide Context Menus</figcaption></figure></div><p>Since we are including the MITRE ATT&amp;CK framework into the application, it also made sense to give a visual representation of what techniques each guide was employing. This is handled through placing tags within the guide for the individual techniques being used.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CeUc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6500671f-1734-4daa-8ec6-c34b59bbbef3_679x209.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CeUc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6500671f-1734-4daa-8ec6-c34b59bbbef3_679x209.png 424w, https://substackcdn.com/image/fetch/$s_!CeUc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6500671f-1734-4daa-8ec6-c34b59bbbef3_679x209.png 848w, https://substackcdn.com/image/fetch/$s_!CeUc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6500671f-1734-4daa-8ec6-c34b59bbbef3_679x209.png 1272w, https://substackcdn.com/image/fetch/$s_!CeUc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6500671f-1734-4daa-8ec6-c34b59bbbef3_679x209.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CeUc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6500671f-1734-4daa-8ec6-c34b59bbbef3_679x209.png" width="679" height="209" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6500671f-1734-4daa-8ec6-c34b59bbbef3_679x209.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:209,&quot;width&quot;:679,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:16980,&quot;alt&quot;:&quot;TTP Context Menus&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="TTP Context Menus" title="TTP Context Menus" srcset="https://substackcdn.com/image/fetch/$s_!CeUc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6500671f-1734-4daa-8ec6-c34b59bbbef3_679x209.png 424w, https://substackcdn.com/image/fetch/$s_!CeUc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6500671f-1734-4daa-8ec6-c34b59bbbef3_679x209.png 848w, https://substackcdn.com/image/fetch/$s_!CeUc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6500671f-1734-4daa-8ec6-c34b59bbbef3_679x209.png 1272w, https://substackcdn.com/image/fetch/$s_!CeUc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6500671f-1734-4daa-8ec6-c34b59bbbef3_679x209.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">TTP Context Menus</figcaption></figure></div><p>Additionally, if you are trying to recreate a specific ATT&amp;CK technique, it is helpful to quickly see which guides you can use to help you execute your actions.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-5MU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc729efe-60c5-4450-ab6f-c9c2b08df904_2020x759.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-5MU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc729efe-60c5-4450-ab6f-c9c2b08df904_2020x759.png 424w, https://substackcdn.com/image/fetch/$s_!-5MU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc729efe-60c5-4450-ab6f-c9c2b08df904_2020x759.png 848w, https://substackcdn.com/image/fetch/$s_!-5MU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc729efe-60c5-4450-ab6f-c9c2b08df904_2020x759.png 1272w, https://substackcdn.com/image/fetch/$s_!-5MU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc729efe-60c5-4450-ab6f-c9c2b08df904_2020x759.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-5MU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc729efe-60c5-4450-ab6f-c9c2b08df904_2020x759.png" width="1456" height="547" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fc729efe-60c5-4450-ab6f-c9c2b08df904_2020x759.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:547,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:165450,&quot;alt&quot;:&quot;Reference Highlighting&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Reference Highlighting" title="Reference Highlighting" srcset="https://substackcdn.com/image/fetch/$s_!-5MU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc729efe-60c5-4450-ab6f-c9c2b08df904_2020x759.png 424w, https://substackcdn.com/image/fetch/$s_!-5MU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc729efe-60c5-4450-ab6f-c9c2b08df904_2020x759.png 848w, https://substackcdn.com/image/fetch/$s_!-5MU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc729efe-60c5-4450-ab6f-c9c2b08df904_2020x759.png 1272w, https://substackcdn.com/image/fetch/$s_!-5MU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc729efe-60c5-4450-ab6f-c9c2b08df904_2020x759.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Reference Highlighting</figcaption></figure></div><p>This isn&#8217;t just restricted to offensive security. While the Blue Testament isn&#8217;t well built out currently, the goal is to have full coverage for offensive and defensive security professionals alike. With greater contributions to the Blue Testament, we will start to see overlap (in purple, of course) in the tactics, techniques, and procedures (TTPs) where we have mapped both the offensive and defensive strategies.</p><h4>Apocrypha</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OaMk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7932012e-b6fd-41fc-a6f0-f5e52b8fa5a7_893x675.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OaMk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7932012e-b6fd-41fc-a6f0-f5e52b8fa5a7_893x675.png 424w, https://substackcdn.com/image/fetch/$s_!OaMk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7932012e-b6fd-41fc-a6f0-f5e52b8fa5a7_893x675.png 848w, https://substackcdn.com/image/fetch/$s_!OaMk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7932012e-b6fd-41fc-a6f0-f5e52b8fa5a7_893x675.png 1272w, https://substackcdn.com/image/fetch/$s_!OaMk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7932012e-b6fd-41fc-a6f0-f5e52b8fa5a7_893x675.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OaMk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7932012e-b6fd-41fc-a6f0-f5e52b8fa5a7_893x675.png" width="893" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7932012e-b6fd-41fc-a6f0-f5e52b8fa5a7_893x675.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:675,&quot;width&quot;:893,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:61898,&quot;alt&quot;:&quot;Apocrypha - External Repositories&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Apocrypha - External Repositories" title="Apocrypha - External Repositories" srcset="https://substackcdn.com/image/fetch/$s_!OaMk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7932012e-b6fd-41fc-a6f0-f5e52b8fa5a7_893x675.png 424w, https://substackcdn.com/image/fetch/$s_!OaMk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7932012e-b6fd-41fc-a6f0-f5e52b8fa5a7_893x675.png 848w, https://substackcdn.com/image/fetch/$s_!OaMk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7932012e-b6fd-41fc-a6f0-f5e52b8fa5a7_893x675.png 1272w, https://substackcdn.com/image/fetch/$s_!OaMk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7932012e-b6fd-41fc-a6f0-f5e52b8fa5a7_893x675.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Apocrypha - External Repositories</figcaption></figure></div><p>It is not our goal to reinvent the wheel or reproduce what is already out there. At the same time, we want to make sure we have access to the materials we rely on as security researchers. For these reasons, we&#8217;ve included Apocrypha which utilizes Git sub-modules to pull in high-value repositories like <a href="https://github.com/swisskyrepo/PayloadsAllTheThings">PayloadsAllTheThings</a> and <a href="https://github.com/carlospolop/hacktricks">HackTricks</a>. If you stand this up on your own attack box or op-specific server before entering an unknown network, you will be sure that you will have all the resources you need to get the job done.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ejRh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbef187da-f56f-46e9-843e-160b891999f1_1956x922.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ejRh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbef187da-f56f-46e9-843e-160b891999f1_1956x922.png 424w, https://substackcdn.com/image/fetch/$s_!ejRh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbef187da-f56f-46e9-843e-160b891999f1_1956x922.png 848w, https://substackcdn.com/image/fetch/$s_!ejRh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbef187da-f56f-46e9-843e-160b891999f1_1956x922.png 1272w, https://substackcdn.com/image/fetch/$s_!ejRh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbef187da-f56f-46e9-843e-160b891999f1_1956x922.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ejRh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbef187da-f56f-46e9-843e-160b891999f1_1956x922.png" width="1456" height="686" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bef187da-f56f-46e9-843e-160b891999f1_1956x922.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:686,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:94951,&quot;alt&quot;:&quot;Viewing Apocrypha Files&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Viewing Apocrypha Files" title="Viewing Apocrypha Files" srcset="https://substackcdn.com/image/fetch/$s_!ejRh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbef187da-f56f-46e9-843e-160b891999f1_1956x922.png 424w, https://substackcdn.com/image/fetch/$s_!ejRh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbef187da-f56f-46e9-843e-160b891999f1_1956x922.png 848w, https://substackcdn.com/image/fetch/$s_!ejRh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbef187da-f56f-46e9-843e-160b891999f1_1956x922.png 1272w, https://substackcdn.com/image/fetch/$s_!ejRh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbef187da-f56f-46e9-843e-160b891999f1_1956x922.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Viewing Apocrypha Files</figcaption></figure></div><p>We take advantage of the fact that most (if not all) knowledge-base repositories are written using Markdown. This allows us to render their contents in the same way as our own content.</p><h4>Apostles</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NXX0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92cfe281-e5fb-43cc-8508-12fcdfd686a4_1014x810.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NXX0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92cfe281-e5fb-43cc-8508-12fcdfd686a4_1014x810.png 424w, https://substackcdn.com/image/fetch/$s_!NXX0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92cfe281-e5fb-43cc-8508-12fcdfd686a4_1014x810.png 848w, https://substackcdn.com/image/fetch/$s_!NXX0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92cfe281-e5fb-43cc-8508-12fcdfd686a4_1014x810.png 1272w, https://substackcdn.com/image/fetch/$s_!NXX0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92cfe281-e5fb-43cc-8508-12fcdfd686a4_1014x810.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NXX0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92cfe281-e5fb-43cc-8508-12fcdfd686a4_1014x810.png" width="1014" height="810" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/92cfe281-e5fb-43cc-8508-12fcdfd686a4_1014x810.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:810,&quot;width&quot;:1014,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:42022,&quot;alt&quot;:&quot;Apostles Leaderboard&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Apostles Leaderboard" title="Apostles Leaderboard" srcset="https://substackcdn.com/image/fetch/$s_!NXX0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92cfe281-e5fb-43cc-8508-12fcdfd686a4_1014x810.png 424w, https://substackcdn.com/image/fetch/$s_!NXX0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92cfe281-e5fb-43cc-8508-12fcdfd686a4_1014x810.png 848w, https://substackcdn.com/image/fetch/$s_!NXX0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92cfe281-e5fb-43cc-8508-12fcdfd686a4_1014x810.png 1272w, https://substackcdn.com/image/fetch/$s_!NXX0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92cfe281-e5fb-43cc-8508-12fcdfd686a4_1014x810.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Apostles Leaderboard</figcaption></figure></div><p>To give everyone their fair shake and some public bragging rights, we included the Apostles. This is a leaderboard that ranks contributors to the project based on the number of pull requests submitted, and the number of files changed. This feature will require you to use your own GitHub API key (public read-only) to properly function. We hope this becomes a fun way to add some competition into spreading quality knowledge throughout the community.</p><h4>Developer Tools</h4><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yim7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef5cb56d-e872-494a-a273-114968185ab7_829x195.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yim7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef5cb56d-e872-494a-a273-114968185ab7_829x195.png 424w, https://substackcdn.com/image/fetch/$s_!yim7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef5cb56d-e872-494a-a273-114968185ab7_829x195.png 848w, https://substackcdn.com/image/fetch/$s_!yim7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef5cb56d-e872-494a-a273-114968185ab7_829x195.png 1272w, https://substackcdn.com/image/fetch/$s_!yim7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef5cb56d-e872-494a-a273-114968185ab7_829x195.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yim7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef5cb56d-e872-494a-a273-114968185ab7_829x195.png" width="829" height="195" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ef5cb56d-e872-494a-a273-114968185ab7_829x195.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:195,&quot;width&quot;:829,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:19161,&quot;alt&quot;:&quot;Developer Maintenance Tools&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Developer Maintenance Tools" title="Developer Maintenance Tools" srcset="https://substackcdn.com/image/fetch/$s_!yim7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef5cb56d-e872-494a-a273-114968185ab7_829x195.png 424w, https://substackcdn.com/image/fetch/$s_!yim7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef5cb56d-e872-494a-a273-114968185ab7_829x195.png 848w, https://substackcdn.com/image/fetch/$s_!yim7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef5cb56d-e872-494a-a273-114968185ab7_829x195.png 1272w, https://substackcdn.com/image/fetch/$s_!yim7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef5cb56d-e872-494a-a273-114968185ab7_829x195.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Developer Maintenance Tools</figcaption></figure></div><p>This block of features is primarily aimed at those who want to help maintain the repository. The endpoints are only accessible on dev deployments but will give you quick readouts for things that may need to be addressed or updated as the project continues to grow in content.</p><h4>Themes</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3z1L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03e6aaba-a220-406b-9505-f08f2988c5bf_583x251.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3z1L!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03e6aaba-a220-406b-9505-f08f2988c5bf_583x251.png 424w, https://substackcdn.com/image/fetch/$s_!3z1L!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03e6aaba-a220-406b-9505-f08f2988c5bf_583x251.png 848w, https://substackcdn.com/image/fetch/$s_!3z1L!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03e6aaba-a220-406b-9505-f08f2988c5bf_583x251.png 1272w, https://substackcdn.com/image/fetch/$s_!3z1L!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03e6aaba-a220-406b-9505-f08f2988c5bf_583x251.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3z1L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03e6aaba-a220-406b-9505-f08f2988c5bf_583x251.png" width="583" height="251" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/03e6aaba-a220-406b-9505-f08f2988c5bf_583x251.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:251,&quot;width&quot;:583,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:29898,&quot;alt&quot;:&quot;Custom Theme Selection&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Custom Theme Selection" title="Custom Theme Selection" srcset="https://substackcdn.com/image/fetch/$s_!3z1L!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03e6aaba-a220-406b-9505-f08f2988c5bf_583x251.png 424w, https://substackcdn.com/image/fetch/$s_!3z1L!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03e6aaba-a220-406b-9505-f08f2988c5bf_583x251.png 848w, https://substackcdn.com/image/fetch/$s_!3z1L!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03e6aaba-a220-406b-9505-f08f2988c5bf_583x251.png 1272w, https://substackcdn.com/image/fetch/$s_!3z1L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03e6aaba-a220-406b-9505-f08f2988c5bf_583x251.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Custom Theme Selection</figcaption></figure></div><p>Lastly, what is a good application without some ability to change how it looks. Included are five dark mode themes that can easily be switched between. Thanks to the simple way the colors are defined, it is very easy to create your own custom themes and have them submitted for general use.</p><h2>For the Community</h2><p>We sincerely hope this tool finds those who are experiencing the same pains we were without knowledge-base management. We welcome contributions and suggestions to the project at the GitHub repo (<a href="https://github.com/blacklanternsecurity/bls-bible">one more time in case you missed it</a>). Please feel free to reach out to anyone at BLS with any questions or ideas you may have about the project on our Discord <a href="https://discord.gg/PZqkgxu5SA">server</a> or directly over Twitter (<a href="https://twitter.com/codymartin">@codymartin</a>, <a href="https://twitter.com/blacklanternllc">@blacklanternllc</a>).</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.blacklanternsecurity.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Black Lantern Security (BLSOPS)! Subscribe for free to receive new posts.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Introducing the ETM API: Enhanced Capabilities for Black Lantern Security's enter_the_matrix Tool]]></title><description><![CDATA[ETM API provides enhanced abilities for interacting directly on the data collected by ETM including the ability to produce actionable metrics for clients]]></description><link>https://blog.blacklanternsecurity.com/p/introducing-the-etm-api-enhanced</link><guid isPermaLink="false">https://blog.blacklanternsecurity.com/p/introducing-the-etm-api-enhanced</guid><dc:creator><![CDATA[Cody Martin]]></dc:creator><pubDate>Tue, 31 Jan 2023 17:00:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0qN3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5035a74f-0796-4936-9d79-c920ff660feb_1023x576.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/blacklanternsecurity/enter_the_matrix" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0qN3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5035a74f-0796-4936-9d79-c920ff660feb_1023x576.png 424w, https://substackcdn.com/image/fetch/$s_!0qN3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5035a74f-0796-4936-9d79-c920ff660feb_1023x576.png 848w, https://substackcdn.com/image/fetch/$s_!0qN3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5035a74f-0796-4936-9d79-c920ff660feb_1023x576.png 1272w, https://substackcdn.com/image/fetch/$s_!0qN3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5035a74f-0796-4936-9d79-c920ff660feb_1023x576.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0qN3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5035a74f-0796-4936-9d79-c920ff660feb_1023x576.png" width="1023" height="576" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/5035a74f-0796-4936-9d79-c920ff660feb_1023x576.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:576,&quot;width&quot;:1023,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:772146,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/blacklanternsecurity/enter_the_matrix&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0qN3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5035a74f-0796-4936-9d79-c920ff660feb_1023x576.png 424w, https://substackcdn.com/image/fetch/$s_!0qN3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5035a74f-0796-4936-9d79-c920ff660feb_1023x576.png 848w, https://substackcdn.com/image/fetch/$s_!0qN3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5035a74f-0796-4936-9d79-c920ff660feb_1023x576.png 1272w, https://substackcdn.com/image/fetch/$s_!0qN3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5035a74f-0796-4936-9d79-c920ff660feb_1023x576.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Black Lantern Security (BLS) is happy to announce a new milestone has been achieved in the development of <code>enter_the_matrix</code><a href="https://github.com/blacklanternsecurity/enter_the_matrix"> </a>(<a href="https://github.com/blacklanternsecurity/enter_the_matrix">ETM</a>). A full CRUD API has been introduced that gives users the ability to integrate <a href="https://github.com/blacklanternsecurity/enter_the_matrix">ETM </a>into their workflows and reporting capabilities.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_h_S!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fff2cac7e-a602-4405-9dcb-b2d4cce15dc6_1621x1065.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_h_S!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fff2cac7e-a602-4405-9dcb-b2d4cce15dc6_1621x1065.png 424w, https://substackcdn.com/image/fetch/$s_!_h_S!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fff2cac7e-a602-4405-9dcb-b2d4cce15dc6_1621x1065.png 848w, https://substackcdn.com/image/fetch/$s_!_h_S!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fff2cac7e-a602-4405-9dcb-b2d4cce15dc6_1621x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!_h_S!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fff2cac7e-a602-4405-9dcb-b2d4cce15dc6_1621x1065.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_h_S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fff2cac7e-a602-4405-9dcb-b2d4cce15dc6_1621x1065.png" width="1456" height="957" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/ff2cac7e-a602-4405-9dcb-b2d4cce15dc6_1621x1065.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:957,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:69543,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_h_S!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fff2cac7e-a602-4405-9dcb-b2d4cce15dc6_1621x1065.png 424w, https://substackcdn.com/image/fetch/$s_!_h_S!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fff2cac7e-a602-4405-9dcb-b2d4cce15dc6_1621x1065.png 848w, https://substackcdn.com/image/fetch/$s_!_h_S!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fff2cac7e-a602-4405-9dcb-b2d4cce15dc6_1621x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!_h_S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fff2cac7e-a602-4405-9dcb-b2d4cce15dc6_1621x1065.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The API is available with full Swagger documentation to help you test and create your integrations as easily as possible. Authorization is required on all API endpoints and is handled by supplying the <code>X-API-Key</code> custom header and a key generated within <a href="https://github.com/blacklanternsecurity/enter_the_matrix">ETM</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bgeK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff171e3a3-246e-4496-8b1d-872c8785a908_1632x1042.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bgeK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff171e3a3-246e-4496-8b1d-872c8785a908_1632x1042.png 424w, https://substackcdn.com/image/fetch/$s_!bgeK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff171e3a3-246e-4496-8b1d-872c8785a908_1632x1042.png 848w, https://substackcdn.com/image/fetch/$s_!bgeK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff171e3a3-246e-4496-8b1d-872c8785a908_1632x1042.png 1272w, https://substackcdn.com/image/fetch/$s_!bgeK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff171e3a3-246e-4496-8b1d-872c8785a908_1632x1042.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bgeK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff171e3a3-246e-4496-8b1d-872c8785a908_1632x1042.png" width="1456" height="930" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/f171e3a3-246e-4496-8b1d-872c8785a908_1632x1042.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:930,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:78250,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bgeK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff171e3a3-246e-4496-8b1d-872c8785a908_1632x1042.png 424w, https://substackcdn.com/image/fetch/$s_!bgeK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff171e3a3-246e-4496-8b1d-872c8785a908_1632x1042.png 848w, https://substackcdn.com/image/fetch/$s_!bgeK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff171e3a3-246e-4496-8b1d-872c8785a908_1632x1042.png 1272w, https://substackcdn.com/image/fetch/$s_!bgeK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff171e3a3-246e-4496-8b1d-872c8785a908_1632x1042.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Each API key has granular permissions that are controlled within the administrative section of the application. Keys can be limited to specific resource types, specific CRUD operations, and specific assessments.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sbIn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F16253690-ff2c-4582-9a41-fe3004e5ba69_1619x1064.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sbIn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F16253690-ff2c-4582-9a41-fe3004e5ba69_1619x1064.png 424w, https://substackcdn.com/image/fetch/$s_!sbIn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F16253690-ff2c-4582-9a41-fe3004e5ba69_1619x1064.png 848w, https://substackcdn.com/image/fetch/$s_!sbIn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F16253690-ff2c-4582-9a41-fe3004e5ba69_1619x1064.png 1272w, https://substackcdn.com/image/fetch/$s_!sbIn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F16253690-ff2c-4582-9a41-fe3004e5ba69_1619x1064.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sbIn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F16253690-ff2c-4582-9a41-fe3004e5ba69_1619x1064.png" width="1456" height="957" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/16253690-ff2c-4582-9a41-fe3004e5ba69_1619x1064.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:957,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:54688,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!sbIn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F16253690-ff2c-4582-9a41-fe3004e5ba69_1619x1064.png 424w, https://substackcdn.com/image/fetch/$s_!sbIn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F16253690-ff2c-4582-9a41-fe3004e5ba69_1619x1064.png 848w, https://substackcdn.com/image/fetch/$s_!sbIn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F16253690-ff2c-4582-9a41-fe3004e5ba69_1619x1064.png 1272w, https://substackcdn.com/image/fetch/$s_!sbIn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F16253690-ff2c-4582-9a41-fe3004e5ba69_1619x1064.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Through the new API, you can pull out data to produce interesting metrics about yourself as an organization as well as your client&#8217;s organizations. Create reports using tools like PowerBI to present a history of attack scenarios used against your client or show which vulnerabilities you&#8217;ve used as a consultant to cause business impact. The metrics you create through the general use of <a href="https://github.com/blacklanternsecurity/enter_the_matrix">ETM</a> also paint a picture of how you as a consultant operate. Understanding this information can help you improve areas you may not execute in often, or simply show how well you match up to the adversaries you are emulating.</p><p>To learn more about the <a href="https://github.com/blacklanternsecurity/enter_the_matrix">ETM</a> API and its capabilities, head over to <a href="https://github.com/blacklanternsecurity/enter_the_matrix">https://github.com/blacklanternsecurity/enter_the_matrix</a>, deploy <a href="https://github.com/blacklanternsecurity/enter_the_matrix">ETM</a>, and navigate to the<code> /swagger</code> endpoint for full documentation. We hope you find these updates useful, and we look forward to continuing to improve <a href="https://github.com/blacklanternsecurity/enter_the_matrix">ETM</a> in the future. If you have any questions or ideas for future development work, please feel free to reach out over in our Discord <a href="https://discord.gg/PZqkgxu5SA">server</a>, by submitting an issue on <a href="https://github.com/blacklanternsecurity/enter_the_matrix">GitHub</a>, or directly over Twitter (<a href="https://twitter.com/blacklanternllc">@blacklanternllc</a>, <a href="https://twitter.com/codymartin">@codymartin</a>)</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.blacklanternsecurity.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Black Lantern Security (BLSOPS)! Subscribe for free to receive new posts!</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Yet Another Telerik UI Revisit]]></title><description><![CDATA[Introduction]]></description><link>https://blog.blacklanternsecurity.com/p/yet-another-telerik-ui-revisit</link><guid isPermaLink="false">https://blog.blacklanternsecurity.com/p/yet-another-telerik-ui-revisit</guid><dc:creator><![CDATA[Paul Mueller]]></dc:creator><pubDate>Wed, 19 Oct 2022 16:04:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/h_600,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F016eaff1-5134-4dbf-b7df-72cfec4687b4_1456x808.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Introduction</h2><p>Several vulnerabilities with the popular ASP.NET web application add-on Telerik UI for ASP.NET AJAX have become a frequent source of &#8220;easy-wins&#8221; for operators at BLS. Discovery and exploitation are usually straightforward, and they result in remote code execution on public-facing IIS servers. </p><p>Although use of the Telerik UI library has declined somewhat in the wake of several severe vulnerabilities, it&#8217;s hard to find an organization with IIS servers that doesn&#8217;t have at least an application or two using it. Even though patches have been available for years, we still encounter vulnerable versions on a regular basis in 2022.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.blacklanternsecurity.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Black Lantern Security (BLSOPS)! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>There has been a significant amount research into this particular library already, and there are existing tools to detect and exploit it. However, after finding some unusual edge cases where existing tooling failed, we decided to take a deep look into the library for ourselves.</p><h2>Vulnerable Endpoints </h2><p>The vulnerabilities revolve around a couple handler endpoints that interface with the Telerik.Web.UI.dll library. The vulnerable .dll can be found in the /bin folder of the application it is being utilized in. The URL to .dll mapping occurs in the application&#8217;s web.config, and looks something like this:</p><pre><code><code>&lt;handlers&gt;
    &lt;add name="Telerik_Web_UI_DialogHandler_aspx" verb="*"       
        preCondition="integratedMode" path="Telerik.Web.UI.DialogHandler.aspx" 
        type="Telerik.Web.UI.DialogHandler" /&gt;
    &lt;add name="Telerik_Web_UI_SpellCheckHandler_axd" verb="*" 
        preCondition="integratedMode"     
        path="Telerik.Web.UI.SpellCheckHandler.axd" 
        type="Telerik.Web.UI.SpellCheckHandler"/&gt;
    &lt;add name="Telerik_Web_UI_WebResource_axd" verb="*"   
        preCondition="integratedMode" path="Telerik.Web.UI.WebResource.axd" 
        type="Telerik.Web.UI.WebResource"/&gt;
&lt;/handlers&gt;</code></code></pre><p>The path variable in the config entry defines the URL that the the server will watch for, and the type parameter defines what class within the .dll the URL maps to. </p><h3>Telerik.Web.UI.WebResource.axd?type=rau</h3><p>The <code>Telerik.Web.UI.WebResource.axd</code> endpoint is the most well-researched and the most commonly exploited. It will not be the focus of this post, but it&#8217;s worth mentioning to provide context. The two main vulnerabilities here are <a href="https://nvd.nist.gov/vuln/detail/CVE-2017-11317">CVE-2017-11317</a>, an arbitrary-file upload made possible by a hard-coded default key. The next is <a href="https://nvd.nist.gov/vuln/detail/CVE-2019-18935">CVE-2019-18935</a>, an unsafe deserialization vulnerability. The deserialization vulnerability typically depends on the file upload; they need to be chained. </p><p>The real advantage CVE-2019-18935 provides is that the uploaded file can go anywhere on disk, whereas getting an RCE from a&nbsp;file upload usually requires write access to the web root. This increases the number cases where the 2017 CVE is exploitable.</p><p>For this endpoint, a <a href="https://bishopfox.com/blog/cve-2019-18935-remote-code-execution-in-telerik-ui">blog post by Bishop Fox</a> has really become the definitive guide for understanding and exploiting it. If you want to know more that should be your next stop. It&#8217;s also worth noting <a href="https://codewhitesec.blogspot.com/2019/02/telerik-revisited.html">this blog post</a> talking about the research around the 2019 deserialization vulnerability.</p><h3><strong>Telerik.Web.UI.DialogHandler.aspx</strong></h3><p>That leaves us with <code>Telerik.Web.UI.DialogHandler.aspx</code>. Note that it is deceptively not an .aspx file but just another handler mapping to the Telerik.Web.UI.dll library.</p><p><em>Note: Some web frameworks that include Telerik UI map this functionality to Telerik.Web.UI.DialogHandler.axd instead.</em></p><p>The dialog handler exploit is the less exploited but probably more fun little brother to the &#8220;rau&#8221; endpoint. The central issue is some poorly designed/implemented cryptography &#8220;protecting&#8221; a set of parameters that are used to initialize a file manager interface. It&#8217;s designated as <a href="http://vd.nist.gov/vuln/detail/CVE-2017-9248">CVE-2017-9248</a>, and here&#8217;s the official CVE description:</p><blockquote><p>Telerik.Web.UI.dll in Progress Telerik UI for ASP.NET AJAX before R2 2017 SP1 and Sitefinity before 10.0.6412.0 does not properly protect Telerik.Web.UI.DialogParametersEncryptionKey or the MachineKey, which makes it easier for remote attackers to defeat cryptographic protection mechanisms, leading to a MachineKey leak, arbitrary file uploads or downloads, XSS, or ASP.NET ViewState compromise.</p></blockquote><p>This description is somewhat lacking, and doesn&#8217;t give a good sense of what&#8217;s going on. The big prize is getting access to the file browser, from which you can look around the file system and upload files. Although you can see directory listings and filenames, to our knowledge you can&#8217;t download anything so we&#8217;re actually not sure what the official description is referring to there. Regardless, as you may be aware, uploading a malicious .aspx to the webroot will result in code execution in most cases.</p><h4>Unpatched Telerik UI Encryption</h4><p>To get to the file upload, we&#8217;ve first got to get around the &#8220;encryption&#8221; protecting the dialog parameters. How does it work?</p><p><strong>String with Dialog Parameters -&gt; Base64 -&gt; Rotating XOR -&gt; Base64 (again).</strong></p><p>Decryption is the opposite:</p><p><strong>Un-base64 -&gt; Rotating XOR -&gt; Un-base64 again -&gt; Parse the string for dialog parameters.</strong></p><p>Needless to say &#8211; this is very unusual, and well&#8230; not good. Not only is a notoriously weak encryption scheme in use (rotating-key XOR), but it&#8217;s being used essentially as a form of authentication. </p><p>During decryption, the interaction between the XOR and the second base64 operation has some very interesting effects and is the source of the exploit as we&#8217;ll see soon.</p><p>At a high level, a couple basic cryptography principles explain where this encryption goes wrong:</p><p><strong>Never &#8216;roll your own&#8217; cryptography.</strong> This is a good example of the unexpected ways cryptography can go sideways when it&#8217;s deployed incorrectly. There&#8217;s almost no better example of breakable encryption than rotating key XOR, but that was even further undermined by the error messages leaking details about the decryption process. There&#8217;s a pretty large skill-gap between knowing enough to make cryptography functional and knowing enough to make it truly secure. It&#8217;s best to leave as much of the implementation as possible to the web framework or language being used.</p><p><strong>Encryption is not authentication.</strong> Encryption is only meant to protect confidentiality, and any limited protection to integrity is an incidental side-effect of it. The success or failure of a decryption operation should not be used as a form of authentication.</p><p>To protect integrity, utilize hashing and signing. There are also encryption schemes that deliberately incorporate integrity protection alongside the encryption. A great example would be <a href="https://en.wikipedia.org/wiki/Galois/Counter_Mode">AES-GCM</a>, which is encryption with built-in authentication. </p><p>The patched version of Telerik UI utilizes AES in CBC mode paired with HMAC256 to validate the integrity of the message before attempting decryption, which is mostly driven by encryption libraries built into C#. Although the implementation wasn&#8217;t perfect, this is a dramatic improvement.</p><h4>Exploit Details</h4><p>When we send a request to <code>Telerik.Web.UI.DialogHandler.aspx</code>, our encrypted dialog parameters get sent via the <code>dp</code> GET parameter. When they are decrypted, if something is wrong, we will receive an error message with the specific reason why. Since we are base64 decoding after we decrypt, we get a little information leak that tells us if what was decrypted is valid base64 or not.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mdhr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4213ed58-7af8-4015-a3d2-853418aff848_1143x178.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mdhr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4213ed58-7af8-4015-a3d2-853418aff848_1143x178.png 424w, https://substackcdn.com/image/fetch/$s_!mdhr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4213ed58-7af8-4015-a3d2-853418aff848_1143x178.png 848w, https://substackcdn.com/image/fetch/$s_!mdhr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4213ed58-7af8-4015-a3d2-853418aff848_1143x178.png 1272w, https://substackcdn.com/image/fetch/$s_!mdhr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4213ed58-7af8-4015-a3d2-853418aff848_1143x178.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mdhr!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4213ed58-7af8-4015-a3d2-853418aff848_1143x178.png" width="1200" height="186.8766404199475" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/4213ed58-7af8-4015-a3d2-853418aff848_1143x178.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:178,&quot;width&quot;:1143,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:25383,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!mdhr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4213ed58-7af8-4015-a3d2-853418aff848_1143x178.png 424w, https://substackcdn.com/image/fetch/$s_!mdhr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4213ed58-7af8-4015-a3d2-853418aff848_1143x178.png 848w, https://substackcdn.com/image/fetch/$s_!mdhr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4213ed58-7af8-4015-a3d2-853418aff848_1143x178.png 1272w, https://substackcdn.com/image/fetch/$s_!mdhr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4213ed58-7af8-4015-a3d2-853418aff848_1143x178.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">The error message received when decryption results in <strong>invalid</strong> base64</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!P3qT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1d0c4ae0-9564-4aa1-9c55-1ee8198cc75c_1136x173.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!P3qT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1d0c4ae0-9564-4aa1-9c55-1ee8198cc75c_1136x173.png 424w, https://substackcdn.com/image/fetch/$s_!P3qT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1d0c4ae0-9564-4aa1-9c55-1ee8198cc75c_1136x173.png 848w, https://substackcdn.com/image/fetch/$s_!P3qT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1d0c4ae0-9564-4aa1-9c55-1ee8198cc75c_1136x173.png 1272w, https://substackcdn.com/image/fetch/$s_!P3qT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1d0c4ae0-9564-4aa1-9c55-1ee8198cc75c_1136x173.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!P3qT!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1d0c4ae0-9564-4aa1-9c55-1ee8198cc75c_1136x173.png" width="1200" height="182.74647887323943" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/1d0c4ae0-9564-4aa1-9c55-1ee8198cc75c_1136x173.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:173,&quot;width&quot;:1136,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:21463,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!P3qT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1d0c4ae0-9564-4aa1-9c55-1ee8198cc75c_1136x173.png 424w, https://substackcdn.com/image/fetch/$s_!P3qT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1d0c4ae0-9564-4aa1-9c55-1ee8198cc75c_1136x173.png 848w, https://substackcdn.com/image/fetch/$s_!P3qT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1d0c4ae0-9564-4aa1-9c55-1ee8198cc75c_1136x173.png 1272w, https://substackcdn.com/image/fetch/$s_!P3qT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1d0c4ae0-9564-4aa1-9c55-1ee8198cc75c_1136x173.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">The Error Message Received When Decryption Results in <strong>Valid</strong> base64</figcaption></figure></div><p>It turns out, all these different error messages leak enough information about the process to completely decrypt the message and discover the encryption key. It is possible to use this information to continually reduce the possible values for the key through a series of systematic requests, and ultimately discover the entire key. In many ways, this closely resembles a <a href="https://research.nccgroup.com/2021/02/17/cryptopals-exploiting-cbc-padding-oracles/">padding oracle</a> attack, but instead of abusing the AES block padding we are abusing the properties of base64 encoding.<br><br><strong>A brief primer on base64 padding</strong></p><p>Base64 encoding is the practice of mapping data, usually 8-bit characters, into sequences of 24 bits, which are then represented by a series of four 6-bit characters.</p><p>Storing text in base64 comes with some overhead cost. For each block of four base64 characters, we can represent (at most) three 8-bit characters (or 8-bit chunks of binary data). Base64 data exists at a 4:3 ratio compared to its unencoded form.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qXaT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9622a13d-7e42-4811-95af-a0ca306a33cd_643x179.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qXaT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9622a13d-7e42-4811-95af-a0ca306a33cd_643x179.png 424w, https://substackcdn.com/image/fetch/$s_!qXaT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9622a13d-7e42-4811-95af-a0ca306a33cd_643x179.png 848w, https://substackcdn.com/image/fetch/$s_!qXaT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9622a13d-7e42-4811-95af-a0ca306a33cd_643x179.png 1272w, https://substackcdn.com/image/fetch/$s_!qXaT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9622a13d-7e42-4811-95af-a0ca306a33cd_643x179.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qXaT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9622a13d-7e42-4811-95af-a0ca306a33cd_643x179.png" width="643" height="179" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/9622a13d-7e42-4811-95af-a0ca306a33cd_643x179.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:179,&quot;width&quot;:643,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:10895,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qXaT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9622a13d-7e42-4811-95af-a0ca306a33cd_643x179.png 424w, https://substackcdn.com/image/fetch/$s_!qXaT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9622a13d-7e42-4811-95af-a0ca306a33cd_643x179.png 848w, https://substackcdn.com/image/fetch/$s_!qXaT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9622a13d-7e42-4811-95af-a0ca306a33cd_643x179.png 1272w, https://substackcdn.com/image/fetch/$s_!qXaT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9622a13d-7e42-4811-95af-a0ca306a33cd_643x179.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Source: https://en.wikipedia.org/wiki/Base64</figcaption></figure></div><p>We also might have a situation where we need to represent just one or two characters. This is where padding comes in. The &#8220;=&#8221; character is used to represent padding in base64. If one character is being represented, &#8220;==&#8221; will be appended as the padding. If the base64 block is representing two characters, &#8220;=&#8221; will be appended.</p><p><em>Note: Not all base64 implementations use padding, but the one used by Telerik UI does.</em></p><h3>dp_crypto</h3><p>The existing tool for cracking the key is called <a href="https://github.com/bao7uo/dp_crypto">dp_crypto</a>. We have used this many times in the past, and when it works, it works well. However, we eventually discovered an instance where dp_crypto could not solve the whole key. It would get about half-way through and just get stuck. One thing we noticed about this key after solving it later, was that it wasn&#8217;t only hex characters like the others we&#8217;d seen. Instead, it appeared to be comprised of random characters within the ascii-printable range.</p><p>After extensive testing our conclusion was that for hex-only keys, the tool worked great, but for random ascii keys, it was a bit of a crap-shoot. The tool is making assumptions about the key and doing some optimizations that would occasionally cause it to follow a false branch that led to a dead-end. These optimizations could be turned down, and in some cases this would result in finding the key. Still others were completely unsolvable. In addition, even when it worked, the process was slow and made a significant number of http requests in the process.</p><p>We give a lot of credit to the tool&#8217;s author, there are some very clever things going on. To come up with what he did with nothing else to work from is notable. We&#8217;re spoiling the punchline a little, but building our tool relied heavily on a lot of the existing logic in dp_crypto.</p><h3>SR Labs Blog Post</h3><p>Confused by the strange half-solved key we set out to see if anyone else had encountered this or had another solution. That quickly led us to the blog post <strong><a href="https://www.srlabs.de/bites/telerik-100-times-faster">Achieving Telerik Remote Code Execution 100 Times Faster</a></strong> by Security Research Labs. </p><p>We were very impressed by the research they did. They, in fact, did identify a much more efficient technique for deducing the key. The blog post is well written, complete with lots of easy to understand graphics. They step through a tool they built and walk through the difference in the exploit technique compared with dp_crypto in detail.</p><p>However, they opted to not release the tool. Going through the details of a tool but not releasing it seemed a little odd to us. In their post teased that they used a &#8220;little trick&#8221; to get one of the more difficult obstacles of this exploit to work, but declined to describe how they did it, and we were interested to know.</p><blockquote><p>&#8220;Note: If password includes &#8220;=&#8221; sign (which is a valid base64 character), there is a little trick to be made, which will not be covered in this blog post.&#8221;</p></blockquote><p>We did eventually figure out how to deal with &#8220;=&#8221; in the password with a extra pain. We nevertheless give the authors a ton of credit for the concepts they come up with and their detailed descriptions of them, which we leaned on heavily. </p><h3>dp_cryptomg</h3><p>That brings us to the tool we are releasing: <a href="https://github.com/blacklanternsecurity/dp_cryptomg">dp_cryptomg</a>. Our goal when we started writing it was to attempt to implement the techniques described in the SR Labs blog post, which would hopefully help to retrieve our previously irretrievable key. </p><p>Although we never wanted to make a new tool (especially in the midst of an engagement), it seemed worth it given we&#8217;d net an RCE for the engagement and it&#8217;s a great opportunity to dive into a really unique and interesting cryptography problem.</p><p>Let&#8217;s take a closer look at the technical details of the tool. Our goal is to deduce the original key, which we do this one base64 &#8220;block&#8221; at a time. In the context of each block, we can solve individual characters of the key one at a time.</p><p>For each character, we can send a series of &#8220;probes&#8221;. The goal of each probe is to answer the following question:</p><p><strong>Given these 4 bytes we&#8217;re sending you, after you decrypt them using your rotating XOR key, does the result equal valid base64 or not?</strong></p><p>The final result for each probe is a Boolean value, which reveals a little more information about the key for that position. Specifically, we can narrow down the possible candidates for what the key at the same position could be. </p><p>By sending the probe and checking for the &#8220;<strong>Index out of range</strong>&#8221; error message, we will know whether the bytes in our probe end up being valid base64 or not after being XOR&#8217;d with the key.</p><p>We can determine ahead of time which key characters will produce a true result and which will produce a false result for a given probe and use this data to reduce the number of candidates of characters which could be the key. This is the essence of the exploit.</p><p>The following is a simplified simulation, which has been slowed down to help  conceptualize the process.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9uRA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbede4c1e-4e1d-4c74-9c50-a8777dfb15d9_1072x576.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9uRA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbede4c1e-4e1d-4c74-9c50-a8777dfb15d9_1072x576.gif 424w, https://substackcdn.com/image/fetch/$s_!9uRA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbede4c1e-4e1d-4c74-9c50-a8777dfb15d9_1072x576.gif 848w, https://substackcdn.com/image/fetch/$s_!9uRA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbede4c1e-4e1d-4c74-9c50-a8777dfb15d9_1072x576.gif 1272w, https://substackcdn.com/image/fetch/$s_!9uRA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbede4c1e-4e1d-4c74-9c50-a8777dfb15d9_1072x576.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9uRA!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbede4c1e-4e1d-4c74-9c50-a8777dfb15d9_1072x576.gif" width="988" height="530.8656716417911" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/bede4c1e-4e1d-4c74-9c50-a8777dfb15d9_1072x576.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:576,&quot;width&quot;:1072,&quot;resizeWidth&quot;:988,&quot;bytes&quot;:729395,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9uRA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbede4c1e-4e1d-4c74-9c50-a8777dfb15d9_1072x576.gif 424w, https://substackcdn.com/image/fetch/$s_!9uRA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbede4c1e-4e1d-4c74-9c50-a8777dfb15d9_1072x576.gif 848w, https://substackcdn.com/image/fetch/$s_!9uRA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbede4c1e-4e1d-4c74-9c50-a8777dfb15d9_1072x576.gif 1272w, https://substackcdn.com/image/fetch/$s_!9uRA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbede4c1e-4e1d-4c74-9c50-a8777dfb15d9_1072x576.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Simulation of exploit to illustrate the key retrieval technique</figcaption></figure></div><p>As we continue to send more probes, each &#8220;true&#8221; result will split the remaining set of possible characters. Eventually, we end up with a single possible character left, which we can be confident is the key character for that position.</p><p>We apply our partially solved key and move to the next character position and repeat the process for the rest of the block. One of the nice things about an XOR operation, is that sending 0x00 in a given position means we aren&#8217;t changing anything there. Therefore, we can effectively target the character we want to solve by sending 0x00 to the three positions we don&#8217;t want to affect. </p><p>The following chart breaks down the process that takes place for each individual probe as the server receives it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9kxj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7de94dbd-a3a0-4494-a451-44c2394fdbe6_983x700.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9kxj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7de94dbd-a3a0-4494-a451-44c2394fdbe6_983x700.png 424w, https://substackcdn.com/image/fetch/$s_!9kxj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7de94dbd-a3a0-4494-a451-44c2394fdbe6_983x700.png 848w, https://substackcdn.com/image/fetch/$s_!9kxj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7de94dbd-a3a0-4494-a451-44c2394fdbe6_983x700.png 1272w, https://substackcdn.com/image/fetch/$s_!9kxj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7de94dbd-a3a0-4494-a451-44c2394fdbe6_983x700.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9kxj!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7de94dbd-a3a0-4494-a451-44c2394fdbe6_983x700.png" width="1002" height="713.53001017294" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/7de94dbd-a3a0-4494-a451-44c2394fdbe6_983x700.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:700,&quot;width&quot;:983,&quot;resizeWidth&quot;:1002,&quot;bytes&quot;:47294,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9kxj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7de94dbd-a3a0-4494-a451-44c2394fdbe6_983x700.png 424w, https://substackcdn.com/image/fetch/$s_!9kxj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7de94dbd-a3a0-4494-a451-44c2394fdbe6_983x700.png 848w, https://substackcdn.com/image/fetch/$s_!9kxj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7de94dbd-a3a0-4494-a451-44c2394fdbe6_983x700.png 1272w, https://substackcdn.com/image/fetch/$s_!9kxj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7de94dbd-a3a0-4494-a451-44c2394fdbe6_983x700.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The <a href="https://www.srlabs.de/bites/telerik-100-times-faster">SR Labs blog post</a> also describes this process in great detail and is worth a read if you still haven&#8217;t fully grokked the concept. They go on to describe how they found a few specific probe bytes that can be used to efficiently triage the characters into initial groups. However, the blog is less clear on how to select the correct probe bytes to take the process to a conclusion.</p><h3>Choosing the Probes to Send</h3><p>The SR Labs research discusses their strategy for choosing probes based on the likelihood of a given key character appearing in the key. They discuss the specific probe bytes that their research suggests are the most efficient in terms of doing some initial triage to what &#8220;bucket&#8221; the key character belongs to.</p><p>But what about after that? How do we keep determining the right bytes to send, all the way to the end where we end up with the solution? Our solution diverged from the SR labs technique here. The technique is not particularly elegant but was very effective: try every possible probe byte in an offline simulation and see which one splits the remaining possible values the most evenly.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!C8wz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe2d42fe-dcce-4bbf-88b9-0a38e1b6babd_466x347.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!C8wz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe2d42fe-dcce-4bbf-88b9-0a38e1b6babd_466x347.png 424w, https://substackcdn.com/image/fetch/$s_!C8wz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe2d42fe-dcce-4bbf-88b9-0a38e1b6babd_466x347.png 848w, https://substackcdn.com/image/fetch/$s_!C8wz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe2d42fe-dcce-4bbf-88b9-0a38e1b6babd_466x347.png 1272w, https://substackcdn.com/image/fetch/$s_!C8wz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe2d42fe-dcce-4bbf-88b9-0a38e1b6babd_466x347.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!C8wz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe2d42fe-dcce-4bbf-88b9-0a38e1b6babd_466x347.png" width="466" height="347" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/fe2d42fe-dcce-4bbf-88b9-0a38e1b6babd_466x347.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:347,&quot;width&quot;:466,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:15854,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!C8wz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe2d42fe-dcce-4bbf-88b9-0a38e1b6babd_466x347.png 424w, https://substackcdn.com/image/fetch/$s_!C8wz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe2d42fe-dcce-4bbf-88b9-0a38e1b6babd_466x347.png 848w, https://substackcdn.com/image/fetch/$s_!C8wz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe2d42fe-dcce-4bbf-88b9-0a38e1b6babd_466x347.png 1272w, https://substackcdn.com/image/fetch/$s_!C8wz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe2d42fe-dcce-4bbf-88b9-0a38e1b6babd_466x347.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">findSplittingProbe Function From dp_cryptomg Tool</figcaption></figure></div><p>The computational cost of &#8220;brute forcing&#8221; the optimal probe is negligible, and insignificant when compared with the network delay to the victim server.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nVLG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0f2772fd-cbc1-4c59-b656-49dade53476c_1171x802.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nVLG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0f2772fd-cbc1-4c59-b656-49dade53476c_1171x802.png 424w, https://substackcdn.com/image/fetch/$s_!nVLG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0f2772fd-cbc1-4c59-b656-49dade53476c_1171x802.png 848w, https://substackcdn.com/image/fetch/$s_!nVLG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0f2772fd-cbc1-4c59-b656-49dade53476c_1171x802.png 1272w, https://substackcdn.com/image/fetch/$s_!nVLG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0f2772fd-cbc1-4c59-b656-49dade53476c_1171x802.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nVLG!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0f2772fd-cbc1-4c59-b656-49dade53476c_1171x802.png" width="1034" height="708.1707941929974" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/0f2772fd-cbc1-4c59-b656-49dade53476c_1171x802.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:802,&quot;width&quot;:1171,&quot;resizeWidth&quot;:1034,&quot;bytes&quot;:65207,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nVLG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0f2772fd-cbc1-4c59-b656-49dade53476c_1171x802.png 424w, https://substackcdn.com/image/fetch/$s_!nVLG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0f2772fd-cbc1-4c59-b656-49dade53476c_1171x802.png 848w, https://substackcdn.com/image/fetch/$s_!nVLG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0f2772fd-cbc1-4c59-b656-49dade53476c_1171x802.png 1272w, https://substackcdn.com/image/fetch/$s_!nVLG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0f2772fd-cbc1-4c59-b656-49dade53476c_1171x802.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">dp_cryptomg.py Code Responsible for Selecting and Sending Probes to the Server</figcaption></figure></div><h3><strong>The &#8220;=&#8221; Problem</strong></h3><p>It is worth noting that we only really learn something actionable on &#8216;true&#8217; results. This is counter-intuitive, instinct would suggest that regardless of the result we can split them, selecting one bucket or the other. However, if we get a negative result, we must simply throw it away. Why? We can&#8217;t trust it because of the small possibility that are negative result was caused by the XOR randomly decrypting to an &#8220;=&#8221; in the wrong place. Only with a &#8220;true&#8221; result, which reaches down to where the plaintext is being parsed, can we make any definitive determinations about the key. This little annoying property of the &#8220;=&#8221; is easy enough to deal with, although it does reduce efficiency significantly. </p><p>The most challenging consequence of the unique properties of the &#8220;=&#8221; character occurs when the key itself contains one. This is because whenever it is used as a key in the same position as one of the \x00 bytes in our probe, it will result in a &#8220;=&#8221; (an XOR operation when one side is a null byte does not change anything).</p><p>So why exactly does that matter? Well, depending on at which position of the four byte base64 block the &#8220;=&#8221; key character is present in, the rules about whether &#8220;=&#8221; makes valid or invalid base64 change in according with base64 padding. For example, a &#8220;=&#8221; is always okay in the fourth position, sometimes ok in the 3rd position (only if the fourth is also a &#8220;=&#8221;) and never ok in the 1st or 2nd positions.</p><p>We eventually discovered that there are a special very specific series of probes than can help us find out if there are &#8220;=&#8221; characters in the key. We can use them to identify any equals signs in the key before we proceed as normal with the rest of the technique. </p><p><em>Note: The following section has been updated since release as we later discovered a rare edge case that can cause a false-positive when it comes to detecting a key byte being an equals.</em></p><p>If we send the following probes:</p><p><strong>\x00\x00\x00\x01 - Result = False</strong></p><p><strong>\x00\x00\x00\x02 - Result = False</strong></p><p><strong>\x00\x00\x00\x00 - Result = True</strong></p><p><strong>\x00\x00\x00\x05 - Result = True</strong></p><p><strong>\x00\x00\x00\x16 - Result = True</strong></p><p><strong>\x00\x00\x00\x71 - Result = True</strong></p><p>If the x01 and 0x2 probes are both they are both false (they both produce invalid base64), and the 0x00,x05,x16, and x71 probes are true, the key byte in question is a &#8220;=&#8221;. We can provably claim no other character will have the same combination of probe results. </p><p>With this pre-calculated set of probes,  we can cover every possibility when it comes to an equals character being in the portion of the key we are trying to solve. This is best illustrated by looking at the functions implementing this.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cNjP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3abe9634-1946-43f8-a61e-b63aa44592f1_728x751.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cNjP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3abe9634-1946-43f8-a61e-b63aa44592f1_728x751.png 424w, https://substackcdn.com/image/fetch/$s_!cNjP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3abe9634-1946-43f8-a61e-b63aa44592f1_728x751.png 848w, https://substackcdn.com/image/fetch/$s_!cNjP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3abe9634-1946-43f8-a61e-b63aa44592f1_728x751.png 1272w, https://substackcdn.com/image/fetch/$s_!cNjP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3abe9634-1946-43f8-a61e-b63aa44592f1_728x751.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cNjP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3abe9634-1946-43f8-a61e-b63aa44592f1_728x751.png" width="728" height="751" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/3abe9634-1946-43f8-a61e-b63aa44592f1_728x751.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:751,&quot;width&quot;:728,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:89879,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cNjP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3abe9634-1946-43f8-a61e-b63aa44592f1_728x751.png 424w, https://substackcdn.com/image/fetch/$s_!cNjP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3abe9634-1946-43f8-a61e-b63aa44592f1_728x751.png 848w, https://substackcdn.com/image/fetch/$s_!cNjP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3abe9634-1946-43f8-a61e-b63aa44592f1_728x751.png 1272w, https://substackcdn.com/image/fetch/$s_!cNjP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3abe9634-1946-43f8-a61e-b63aa44592f1_728x751.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">dp_cryptomg.py Code Responsible for Selecting and Sending Probes to the Server</figcaption></figure></div><p>With this special case out accounted for, the block can be solved using probes generated by the <code>findSplittingProbe</code> function.</p><p>When all blocks finish, the key will be revealed and saved to a .txt file. Just as with dp_crypto.py, a link will also be generated with a pre-populated <code>dp</code> GET parameter, which is set up to load the file manager tool and is encrypted with the newly discovered key. </p><p><em>Note: There was a bug in versions before 0.1.3 where pre-2010 versions of Telerik where the key could be retrieved but could not be exploited because of subtle differences in how the dialog parameters were parsed. This has now been fixed. It may be the case that this is the first public tool that has ever been exploit exploit these versions of Telerik, as admittedly we did not have a pre-2010 .dll to test with during development.</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SUHp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F016eaff1-5134-4dbf-b7df-72cfec4687b4_1456x808.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SUHp!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F016eaff1-5134-4dbf-b7df-72cfec4687b4_1456x808.gif 424w, https://substackcdn.com/image/fetch/$s_!SUHp!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F016eaff1-5134-4dbf-b7df-72cfec4687b4_1456x808.gif 848w, https://substackcdn.com/image/fetch/$s_!SUHp!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F016eaff1-5134-4dbf-b7df-72cfec4687b4_1456x808.gif 1272w, https://substackcdn.com/image/fetch/$s_!SUHp!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F016eaff1-5134-4dbf-b7df-72cfec4687b4_1456x808.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SUHp!,w_2400,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F016eaff1-5134-4dbf-b7df-72cfec4687b4_1456x808.gif" width="1200" height="665.934065934066" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/016eaff1-5134-4dbf-b7df-72cfec4687b4_1456x808.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:808,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:5070753,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SUHp!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F016eaff1-5134-4dbf-b7df-72cfec4687b4_1456x808.gif 424w, https://substackcdn.com/image/fetch/$s_!SUHp!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F016eaff1-5134-4dbf-b7df-72cfec4687b4_1456x808.gif 848w, https://substackcdn.com/image/fetch/$s_!SUHp!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F016eaff1-5134-4dbf-b7df-72cfec4687b4_1456x808.gif 1272w, https://substackcdn.com/image/fetch/$s_!SUHp!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F016eaff1-5134-4dbf-b7df-72cfec4687b4_1456x808.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">dp_cryptomg.py</figcaption></figure></div><p><em>A note on the fancy interface: There&#8217;s no particular reason it needed to be built this way, however it can be really helpful for understanding when doing exploits against cryptography to get some kind of visual indication of what&#8217;s going on. It is also just more fun to look at. </em></p><p><em>That said, if you want a more simplistic view, just run it with -s. This will provide a more traditional command-line output. Running with -S will even further reduce the output shown. Using these modes will also increase the speed of the exploit.</em></p><h3><strong>Telerik.Web.UI.SpellCheckHandler.axd</strong></h3><p>While our minds were deep inside the Telerik UI Library, we wondered about the third endpoint, shown in the configuration example at the beginning of this post, of which we had seen next to nothing written about. The <code>Telerik.Web.UI.SpellCheckHandler.axd</code> endpoint appeared to use the same DialogParameters scheme as the DialogHandler endpoint, with the same Base64 -&gt; Rotating XOR -&gt; Base64 encryption routine. </p><p>With some very minor adjustments to the existing tool (namely, the <code>Telerik.Web.UI.SpellCheckHandler.axd</code> endpoint wants a POST request, where certain other parameters must be present), we quickly realized we could easily extract the exact same key by reusing the same technique. dp_cryptomg will automatically detect if the provided URL is for the SpellCheckHandler.axd endpoint and adjust its behavior accordingly.</p><p>The DialogHandler endpoint is mostly dangerous because it allows for file uploads, which (usually) lead straight to RCE on web servers. What could the SpellCheckHandler offer? Well, to begin with the key used is exactly the same. You could use the SpellCheckHandler to get the key, and then exploit the DialogHandler with it. Of course, you also could have just used the DialogHandler so not is much gained there.</p><p>With that limited utility in mind, we set out to see what we could do if we only had access to the SpellCheckHandler endpoint. Such a scenario is not so far-fetched. The other two endpoints are very well-known, and some web application firewall security vendors have chosen to address the vulnerabilities by simply blocking repeated attempts to access them. In other cases, a developer might be made aware of the vulnerable Telerik endpoint and simply opt to remove their handlers and replace the functionality they were using, while neglecting the SpellCheckHandler endpoint because it is not mentioned anywhere.</p><p>The results of our efforts were admittedly somewhat disappointing but still worthy of discussion. We are still pulling on a few interesting threads that are not quite ready, but there is at least one we have ran all the way to ground.</p><p><strong>Telerik.Web.UI.SpellCheckHandler.axd Arbitrary .txt file write</strong></p><p>Once you know the <code>Telerik.Web.UI.DialogParametersEncryptionKey</code> key, it is simple to decrypt and re-encrypt dialog parameters. With the SpellCheckHandler.axd endpoint, the encrypted dialog parameters are sent in the <code>Configuration </code>POST parameter. We have included a simple utility in our <a href="https://github.com/blacklanternsecurity/dp_cryptomg">GitHub repo</a> (dp_manual_crypt.py) which can be used to manually encrypt, decrypt, and modify the encrypted dialog parameters for both endpoints, as depicted in several screenshots to follow.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7AaO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc36d55d4-c2c1-4773-8101-bb3da4561f04_1160x103.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7AaO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc36d55d4-c2c1-4773-8101-bb3da4561f04_1160x103.png 424w, https://substackcdn.com/image/fetch/$s_!7AaO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc36d55d4-c2c1-4773-8101-bb3da4561f04_1160x103.png 848w, https://substackcdn.com/image/fetch/$s_!7AaO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc36d55d4-c2c1-4773-8101-bb3da4561f04_1160x103.png 1272w, https://substackcdn.com/image/fetch/$s_!7AaO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc36d55d4-c2c1-4773-8101-bb3da4561f04_1160x103.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7AaO!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc36d55d4-c2c1-4773-8101-bb3da4561f04_1160x103.png" width="1200" height="106.55172413793103" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/c36d55d4-c2c1-4773-8101-bb3da4561f04_1160x103.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:103,&quot;width&quot;:1160,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:33322,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7AaO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc36d55d4-c2c1-4773-8101-bb3da4561f04_1160x103.png 424w, https://substackcdn.com/image/fetch/$s_!7AaO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc36d55d4-c2c1-4773-8101-bb3da4561f04_1160x103.png 848w, https://substackcdn.com/image/fetch/$s_!7AaO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc36d55d4-c2c1-4773-8101-bb3da4561f04_1160x103.png 1272w, https://substackcdn.com/image/fetch/$s_!7AaO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc36d55d4-c2c1-4773-8101-bb3da4561f04_1160x103.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Using the dp_manual_crypt.py utility to decrypt the dialog parameters with a known key</figcaption></figure></div><p>As an example, with the key set to <code>DEADBEEFDEADBEEFDEADBEEFDEADBEEF </code>our <code>Configuration parameter </code>value<code> ends up as follows:</code></p><p><code>FgItLiYCKTAmKAc9JxMHLiACJjcQKAM1J3cUNw8GPRQhKwMuGAAhESd0MR0RKwcuCXQLNxs/CxUddAcdEyshHwkDCysYACEBHXQXMBAoMRAJdQs3Gy4hch0/NQYgAj0wIHUHLxgAC3cndhMyIBY9AR0SOT4YFjI8CAMTPSYSEHERdgMoIAI9AiUCFy4jdAc/JnYbNBgCEz8IABssIA0LKggBCDcPLzEEJSgHcBQdDzUIABssIA0LKggBADcULiERJ3QxHRErBy4hERcdFSkhDCATGxIjdhMQCXULNxsuIXIWAgcMFCg1LgkCKSsbKHQVJ3QxHREdExwTAik2</code></p><p>When we decrypt this with the DEADBEEF key, we can see how the parameters are constructed:</p><p><code>DictionaryPath,False,0,QzpcdGVsZXJpa3Rlc3RcQXBwX0RhdGFcUmFkU3BlbGxc;AllowAddCustom,False,3,True;SpellCheckProvider,False,2,2;AjaxUrl,False,0,VGVsZXJpay5XZWIuVUkuU3BlbGxDaGVja0hhbmRsZXIuYXhk</code></p><p>The format for each parameter being used is as follows: </p><p><code>ParameterName,Boolean,Integer,Base64EncodedValue;</code></p><p>Then, each parameter is separated by a semicolon.</p><p>We can safely ignore the Boolean value; it is just used to defined whether the parameter is an array or not. The integer defines what data type the parameter is:</p><ul><li><p>0 for string</p></li><li><p>1 for int</p></li><li><p>2 for Enum</p></li><li><p>3 for Bool</p></li><li><p>4 for DateTime</p></li></ul><p><em>Note: These particular base64 decoded values end up being </em><code>C:\teleriktest\App_Data\RadSpell\ </code><em>for Di</em><code>ctionaryPath</code><em> and </em><code>Telerik.Web.UI.SpellCheckHandler.axd </code><em>for</em><code> AjaxUrl.</code></p><p>These are not the only parameters that can be used, and by having a quick look at the decompiled Telerik UI .dll we can see what our options are for the SpellCheckHandler endpoint.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MgAq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9f3c0cc0-0b60-4c8c-9a3d-29cb5a49dbab_976x246.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MgAq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9f3c0cc0-0b60-4c8c-9a3d-29cb5a49dbab_976x246.png 424w, https://substackcdn.com/image/fetch/$s_!MgAq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9f3c0cc0-0b60-4c8c-9a3d-29cb5a49dbab_976x246.png 848w, https://substackcdn.com/image/fetch/$s_!MgAq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9f3c0cc0-0b60-4c8c-9a3d-29cb5a49dbab_976x246.png 1272w, https://substackcdn.com/image/fetch/$s_!MgAq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9f3c0cc0-0b60-4c8c-9a3d-29cb5a49dbab_976x246.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MgAq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9f3c0cc0-0b60-4c8c-9a3d-29cb5a49dbab_976x246.png" width="976" height="246" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/9f3c0cc0-0b60-4c8c-9a3d-29cb5a49dbab_976x246.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:246,&quot;width&quot;:976,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:33722,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!MgAq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9f3c0cc0-0b60-4c8c-9a3d-29cb5a49dbab_976x246.png 424w, https://substackcdn.com/image/fetch/$s_!MgAq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9f3c0cc0-0b60-4c8c-9a3d-29cb5a49dbab_976x246.png 848w, https://substackcdn.com/image/fetch/$s_!MgAq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9f3c0cc0-0b60-4c8c-9a3d-29cb5a49dbab_976x246.png 1272w, https://substackcdn.com/image/fetch/$s_!MgAq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9f3c0cc0-0b60-4c8c-9a3d-29cb5a49dbab_976x246.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">CreateSpellChecker function within the decompiled Telerik UI library </figcaption></figure></div><p>The one we are interested in here is the <code>CustomDictionarySuffix. </code>This parameter is used to help define where custom word lists get saved on the file system. These word lists are created or appended to when a user uses the &#8220;add to dictionary&#8221; functionality within the spellcheck editor.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Yz8r!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4eac1511-93a4-414c-8207-f95940b7b3c1_831x525.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Yz8r!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4eac1511-93a4-414c-8207-f95940b7b3c1_831x525.png 424w, https://substackcdn.com/image/fetch/$s_!Yz8r!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4eac1511-93a4-414c-8207-f95940b7b3c1_831x525.png 848w, https://substackcdn.com/image/fetch/$s_!Yz8r!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4eac1511-93a4-414c-8207-f95940b7b3c1_831x525.png 1272w, https://substackcdn.com/image/fetch/$s_!Yz8r!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4eac1511-93a4-414c-8207-f95940b7b3c1_831x525.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Yz8r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4eac1511-93a4-414c-8207-f95940b7b3c1_831x525.png" width="588" height="371.4801444043321" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/4eac1511-93a4-414c-8207-f95940b7b3c1_831x525.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:525,&quot;width&quot;:831,&quot;resizeWidth&quot;:588,&quot;bytes&quot;:72354,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Yz8r!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4eac1511-93a4-414c-8207-f95940b7b3c1_831x525.png 424w, https://substackcdn.com/image/fetch/$s_!Yz8r!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4eac1511-93a4-414c-8207-f95940b7b3c1_831x525.png 848w, https://substackcdn.com/image/fetch/$s_!Yz8r!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4eac1511-93a4-414c-8207-f95940b7b3c1_831x525.png 1272w, https://substackcdn.com/image/fetch/$s_!Yz8r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4eac1511-93a4-414c-8207-f95940b7b3c1_831x525.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Telerik UI SpellCheck add to dictionary functionality</figcaption></figure></div><p>This value in this parameter is concatenated into the path of the custom dictionary file. There is no sanitization or validation of the encrypted parameters, as a result we can use directory traversal characters to erase the beginning of the path and choose both the file path and name of the file. The only thing which can&#8217;t be changed is the .txt extension, which is appended onto the end of the string.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dlFF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbedfba74-a7c3-457d-8e78-b3309a677767_617x197.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dlFF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbedfba74-a7c3-457d-8e78-b3309a677767_617x197.png 424w, https://substackcdn.com/image/fetch/$s_!dlFF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbedfba74-a7c3-457d-8e78-b3309a677767_617x197.png 848w, https://substackcdn.com/image/fetch/$s_!dlFF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbedfba74-a7c3-457d-8e78-b3309a677767_617x197.png 1272w, https://substackcdn.com/image/fetch/$s_!dlFF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbedfba74-a7c3-457d-8e78-b3309a677767_617x197.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dlFF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbedfba74-a7c3-457d-8e78-b3309a677767_617x197.png" width="617" height="197" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/bedfba74-a7c3-457d-8e78-b3309a677767_617x197.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:197,&quot;width&quot;:617,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3998,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dlFF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbedfba74-a7c3-457d-8e78-b3309a677767_617x197.png 424w, https://substackcdn.com/image/fetch/$s_!dlFF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbedfba74-a7c3-457d-8e78-b3309a677767_617x197.png 848w, https://substackcdn.com/image/fetch/$s_!dlFF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbedfba74-a7c3-457d-8e78-b3309a677767_617x197.png 1272w, https://substackcdn.com/image/fetch/$s_!dlFF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbedfba74-a7c3-457d-8e78-b3309a677767_617x197.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Converting the directory traversal path to base64</figcaption></figure></div><p>We then base64 encode this value and encrypt it back into the dialog parameters along with all the existing values.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IHob!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F50d6d489-f89f-4f67-a0d2-b3668aa7cae1_1159x173.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IHob!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F50d6d489-f89f-4f67-a0d2-b3668aa7cae1_1159x173.png 424w, https://substackcdn.com/image/fetch/$s_!IHob!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F50d6d489-f89f-4f67-a0d2-b3668aa7cae1_1159x173.png 848w, https://substackcdn.com/image/fetch/$s_!IHob!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F50d6d489-f89f-4f67-a0d2-b3668aa7cae1_1159x173.png 1272w, https://substackcdn.com/image/fetch/$s_!IHob!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F50d6d489-f89f-4f67-a0d2-b3668aa7cae1_1159x173.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IHob!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F50d6d489-f89f-4f67-a0d2-b3668aa7cae1_1159x173.png" width="1200" height="179.11993097497842" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/50d6d489-f89f-4f67-a0d2-b3668aa7cae1_1159x173.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:173,&quot;width&quot;:1159,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:68279,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IHob!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F50d6d489-f89f-4f67-a0d2-b3668aa7cae1_1159x173.png 424w, https://substackcdn.com/image/fetch/$s_!IHob!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F50d6d489-f89f-4f67-a0d2-b3668aa7cae1_1159x173.png 848w, https://substackcdn.com/image/fetch/$s_!IHob!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F50d6d489-f89f-4f67-a0d2-b3668aa7cae1_1159x173.png 1272w, https://substackcdn.com/image/fetch/$s_!IHob!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F50d6d489-f89f-4f67-a0d2-b3668aa7cae1_1159x173.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">dp_manual_crypt.py re-encrypting the dialog parameters with a new parameter</figcaption></figure></div><p>The encrypted dialog parameters are added to a request to the SpellCheckHandler endpoint with <code>CommandName </code>set to<code> AddCustom </code>and<code> CommandArgument </code>set to the text we wish to write to the file. Note that it is also possible to write binary data using this method, by simply URL-encoding any non-standard bytes.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8cOU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb701e217-d468-4371-8aed-2b95791803f4_1051x389.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8cOU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb701e217-d468-4371-8aed-2b95791803f4_1051x389.png 424w, https://substackcdn.com/image/fetch/$s_!8cOU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb701e217-d468-4371-8aed-2b95791803f4_1051x389.png 848w, https://substackcdn.com/image/fetch/$s_!8cOU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb701e217-d468-4371-8aed-2b95791803f4_1051x389.png 1272w, https://substackcdn.com/image/fetch/$s_!8cOU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb701e217-d468-4371-8aed-2b95791803f4_1051x389.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8cOU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb701e217-d468-4371-8aed-2b95791803f4_1051x389.png" width="1051" height="389" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/b701e217-d468-4371-8aed-2b95791803f4_1051x389.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:389,&quot;width&quot;:1051,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:68494,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8cOU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb701e217-d468-4371-8aed-2b95791803f4_1051x389.png 424w, https://substackcdn.com/image/fetch/$s_!8cOU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb701e217-d468-4371-8aed-2b95791803f4_1051x389.png 848w, https://substackcdn.com/image/fetch/$s_!8cOU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb701e217-d468-4371-8aed-2b95791803f4_1051x389.png 1272w, https://substackcdn.com/image/fetch/$s_!8cOU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb701e217-d468-4371-8aed-2b95791803f4_1051x389.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Sending the request which will write to the arbitrary .txt file</figcaption></figure></div><p>If the file is not already present, it will be created. If it exists, the content will be appended to it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Trs1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb9d288d-fc46-431f-b32f-3a0a413f4326_905x506.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Trs1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb9d288d-fc46-431f-b32f-3a0a413f4326_905x506.png 424w, https://substackcdn.com/image/fetch/$s_!Trs1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb9d288d-fc46-431f-b32f-3a0a413f4326_905x506.png 848w, https://substackcdn.com/image/fetch/$s_!Trs1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb9d288d-fc46-431f-b32f-3a0a413f4326_905x506.png 1272w, https://substackcdn.com/image/fetch/$s_!Trs1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb9d288d-fc46-431f-b32f-3a0a413f4326_905x506.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Trs1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb9d288d-fc46-431f-b32f-3a0a413f4326_905x506.png" width="905" height="506" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/fb9d288d-fc46-431f-b32f-3a0a413f4326_905x506.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:506,&quot;width&quot;:905,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:25458,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Trs1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb9d288d-fc46-431f-b32f-3a0a413f4326_905x506.png 424w, https://substackcdn.com/image/fetch/$s_!Trs1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb9d288d-fc46-431f-b32f-3a0a413f4326_905x506.png 848w, https://substackcdn.com/image/fetch/$s_!Trs1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb9d288d-fc46-431f-b32f-3a0a413f4326_905x506.png 1272w, https://substackcdn.com/image/fetch/$s_!Trs1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb9d288d-fc46-431f-b32f-3a0a413f4326_905x506.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Arbitrary .txt file successfully created</figcaption></figure></div><p></p><p>Of course, the fact that we can only write .txt files is a huge caveat and significantly reduces the impact. By itself, it is of little to no value outside of a denial of service attack by way of filling the server&#8217;s disk with junk. However, it is important to remember that getting arbitrary content onto the disk of a system is often a critical step in larger attacks. Consider a local file include (LFI) vulnerability; in such a case the .txt file can elevate the LFI into remote code execution.</p><p>There may also be specialized applications running on a server which is also using Telerik UI that performs some special action with .txt files in a particular directory.</p><h2><strong>Summary and Conclusions</strong></h2><p>We have improved on existing tooling surrounding CVE-2017-9248, increasing the scope of the exploit to cover vulnerable but previously unexploitable systems. We took a deep-dive into a few of the more challenging aspects of making the exploit work properly.</p><p>The<code> Telerik.Web.UI.SpellCheckHandler.axd </code>finally gets some attention, and with <a href="https://github.com/blacklanternsecurity/dp_cryptomg">dp_cryptomg</a> it can now be used to retrieve the <code>DialogParametersEncryptionKey </code>as well. We highlighted an interesting abuse specific to the SpellCheckHandler, albeit one with a limited use case. </p><p>It is worth mentioning that, although all of the issues discussed in this post are patched, many of the underlying coding mistakes were not. For example, rotating XOR encryption was replaced with a standard AES-CBC implementation, but it was implemented with a static initialization vector. This is still a <strong>vast</strong> improvement but is a pretty clear violation of accepted best practice and potentially opens the door for some fascinating exploits. </p><p>All of lack of sanitization of user-input, and path-traversal bugs are still present even in fully patched versions, they are just locked behind the new encryption. We believe there are more bugs to discover in this library, including within versions fully patched today. In fact, based on our current research we believe this blog will likely end up with a couple sequels. We cannot divulge details yet, but there is certainly more research to share in the near future, stay tuned.</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.blacklanternsecurity.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Black Lantern Security (BLSOPS)! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Subdomain Enumeration Tool Face-off 2022]]></title><description><![CDATA[Comparing the industry's top subdomain enumeration tools]]></description><link>https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off</link><guid isPermaLink="false">https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off</guid><dc:creator><![CDATA[TheTechromancer]]></dc:creator><pubDate>Wed, 12 Oct 2022 15:10:05 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!K_0v!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4492049-83ee-46e9-89bd-db59c584d42c_1200x800.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2><strong>Update: 2023 version <a href="https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off-4e5">here</a>.</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!K_0v!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4492049-83ee-46e9-89bd-db59c584d42c_1200x800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!K_0v!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4492049-83ee-46e9-89bd-db59c584d42c_1200x800.png 424w, https://substackcdn.com/image/fetch/$s_!K_0v!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4492049-83ee-46e9-89bd-db59c584d42c_1200x800.png 848w, https://substackcdn.com/image/fetch/$s_!K_0v!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4492049-83ee-46e9-89bd-db59c584d42c_1200x800.png 1272w, https://substackcdn.com/image/fetch/$s_!K_0v!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4492049-83ee-46e9-89bd-db59c584d42c_1200x800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!K_0v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4492049-83ee-46e9-89bd-db59c584d42c_1200x800.png" width="1200" height="800" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/c4492049-83ee-46e9-89bd-db59c584d42c_1200x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;logos&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="logos" title="logos" srcset="https://substackcdn.com/image/fetch/$s_!K_0v!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4492049-83ee-46e9-89bd-db59c584d42c_1200x800.png 424w, https://substackcdn.com/image/fetch/$s_!K_0v!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4492049-83ee-46e9-89bd-db59c584d42c_1200x800.png 848w, https://substackcdn.com/image/fetch/$s_!K_0v!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4492049-83ee-46e9-89bd-db59c584d42c_1200x800.png 1272w, https://substackcdn.com/image/fetch/$s_!K_0v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4492049-83ee-46e9-89bd-db59c584d42c_1200x800.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1>What is the best subdomain enumeration tool in 2022?</h1><p><strong>The goal of this face-off is to answer this question, ranking the top subdomain enumeration tools based on:</strong><br><br>1) The number of subdomains they're able to find</p><p>2) The time it takes to find them.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.blacklanternsecurity.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Black Lantern Security (BLSOPS)! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3><strong>Tools being tested:</strong></h3><ul><li><p><a href="https://github.com/OWASP/Amass">Amass</a></p></li><li><p><a href="https://github.com/projectdiscovery/subfinder">Subfinder</a></p></li><li><p><a href="https://github.com/laramies/theHarvester">TheHarvester</a></p></li><li><p><a href="https://github.com/aboul3la/Sublist3r">Sublist3r</a></p></li><li><p><a href="https://github.com/gfek/Lepus">Lepus</a></p></li><li><p><a href="https://github.com/shmilylty/OneForAll">OneForAll</a></p></li><li><p><a href="https://github.com/smicallef/spiderfoot">Spiderfoot</a></p></li><li><p><a href="https://github.com/blacklanternsecurity/bbot">BBOT</a></p></li></ul><p>If you're a veteran OSINTer, you're probably familiar with most of the tools on this list &#8212; with the exception maybe of BBOT. BBOT is a new OSINT tool inspired by Spiderfoot, written here at Black Lantern Security, and released a little over a month ago. Like Spiderfoot, BBOT isn't exclusively a subdomain enumeration tool, but we designed it with subdomain enumeration in mind, which is a reason why we chose subdomain enumeration for its first real test. A subdomain enumeration benchmark seems like a good &#8220;christening&#8221; that will either mock or (hopefully) validate our efforts on the tool.</p><p>After sharing the results, we'll go over the exact command we ran for each tool, and details on any unique subdomains it uncovered.</p><h1><strong>Rules</strong></h1><h3><strong>Target: </strong><code>tesla.com</code></h3><ul><li><p><strong>Active enumeration is allowed</strong> (HTTP/SSL)</p></li><li><p><strong>Free APIs only</strong>. No paid APIs will be used in this test.</p><ul><li><p>The purpose of this rule is to gauge the effectiveness of a tool in gathering FREE and OPEN SOURCE information without any tedious/expensive preconfiguration.</p></li></ul></li><li><p><strong>Wildcards and unresolved subdomains don't count</strong>. Subdomains must have at least one valid DNS record of type A, AAAA, MX, TXT, NS, SOA, SRV, or CNAME. The output from every tool will be cleaned using the <a href="https://gist.github.com/TheTechromancer/d69e3b9e4d8a659c845bb38081d636d1">same method</a>.</p></li><li><p><strong>DNS brute-forcing is allowed</strong>. However all tools will be configured to use the same <a href="https://github.com/danielmiessler/SecLists/blob/master/Discovery/DNS/subdomains-top1million-5000.txt">base subdomain wordlist</a>. This is intended to show off each tool's unique capabilities instead of only its wordlist quality. Also, since runtime is a factor in the results, this helps keep the scan durations more comparable.</p></li><li><p><strong>Default settings only</strong> &#8212;no weird config changes.</p><ul><li><p>With the exception of 1) the common brute wordlist and 2) bumping the thread count (because we have blazing fast internet), we will be using tools' default settings. Tool defaults should always be reasonable and we will avoid messing with them as giving more attention to the configuration of a single tool may give it an unfair advantage over the others.</p></li></ul></li></ul><h1><strong>Setup</strong></h1><p>The benchmarks will be performed on a modest Linode VM with the following specs:</p><ul><li><p>2 dedicated CPU Cores</p></li><li><p>4GB RAM</p></li><li><p>~3,000Mbps download / ~2600Mbps upload according to speedtest.net</p></li></ul><p>Each tool will be run separately, with ample pause between runs to account for rate limiting, etc.</p><h1><strong>Results</strong></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9T1x!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F494023ef-5989-4d46-82a3-7ffa4a3a383d_1300x1800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9T1x!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F494023ef-5989-4d46-82a3-7ffa4a3a383d_1300x1800.png 424w, https://substackcdn.com/image/fetch/$s_!9T1x!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F494023ef-5989-4d46-82a3-7ffa4a3a383d_1300x1800.png 848w, https://substackcdn.com/image/fetch/$s_!9T1x!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F494023ef-5989-4d46-82a3-7ffa4a3a383d_1300x1800.png 1272w, https://substackcdn.com/image/fetch/$s_!9T1x!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F494023ef-5989-4d46-82a3-7ffa4a3a383d_1300x1800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9T1x!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F494023ef-5989-4d46-82a3-7ffa4a3a383d_1300x1800.png" width="1300" height="1800" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/494023ef-5989-4d46-82a3-7ffa4a3a383d_1300x1800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1800,&quot;width&quot;:1300,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;benchmark-results&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="benchmark-results" title="benchmark-results" srcset="https://substackcdn.com/image/fetch/$s_!9T1x!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F494023ef-5989-4d46-82a3-7ffa4a3a383d_1300x1800.png 424w, https://substackcdn.com/image/fetch/$s_!9T1x!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F494023ef-5989-4d46-82a3-7ffa4a3a383d_1300x1800.png 848w, https://substackcdn.com/image/fetch/$s_!9T1x!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F494023ef-5989-4d46-82a3-7ffa4a3a383d_1300x1800.png 1272w, https://substackcdn.com/image/fetch/$s_!9T1x!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F494023ef-5989-4d46-82a3-7ffa4a3a383d_1300x1800.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1><strong>Analysis</strong></h1><p>The true winner of this benchmark may differ depending on whether speed or thoroughness is more important for your OSINT process. For example, <strong>BBOT</strong> found the highest number of subdomains, but <strong>Subfinder</strong> found 90% of what BBOT did, and in about a tenth of the time.</p><p>BBOT uses a recursive model similar to Spiderfoot which is one of the reasons for its higher subdomain yield and subsequently higher runtime. But even considering the higher runtime, it severely outperformed Spiderfoot for the purposes of subdomain enumeration, as seen in both of the above charts. In our testing, we let Spiderfoot run for 48 hours, after which we were forced to cancel it.</p><p>One interesting data point which we've included below is the number of <strong>unique subdomains</strong> found by each tool. This number is calculated by comparing each tool's output to the combined output of every other tool, and asking which subdomains it found that none of the other ones did.</p><p>BBOT&#8217;s <code>massdns</code> module, which pairs its recursive methodology with smart mutations, ensured that BBOT claimed the highest number of unique subdomains. Amass found several thanks to its unique <code>Maltiverse</code> module, and Lepus' Markov Chain / Permutation functionality was able to uncover a few as well.</p><h1><strong>Details</strong></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bVyS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F061c98ba-06e3-4069-8a3a-af66340b117c_500x288.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bVyS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F061c98ba-06e3-4069-8a3a-af66340b117c_500x288.png 424w, https://substackcdn.com/image/fetch/$s_!bVyS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F061c98ba-06e3-4069-8a3a-af66340b117c_500x288.png 848w, https://substackcdn.com/image/fetch/$s_!bVyS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F061c98ba-06e3-4069-8a3a-af66340b117c_500x288.png 1272w, https://substackcdn.com/image/fetch/$s_!bVyS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F061c98ba-06e3-4069-8a3a-af66340b117c_500x288.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bVyS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F061c98ba-06e3-4069-8a3a-af66340b117c_500x288.png" width="500" height="288" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/061c98ba-06e3-4069-8a3a-af66340b117c_500x288.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:288,&quot;width&quot;:500,&quot;resizeWidth&quot;:500,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;bbot&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="bbot" title="bbot" srcset="https://substackcdn.com/image/fetch/$s_!bVyS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F061c98ba-06e3-4069-8a3a-af66340b117c_500x288.png 424w, https://substackcdn.com/image/fetch/$s_!bVyS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F061c98ba-06e3-4069-8a3a-af66340b117c_500x288.png 848w, https://substackcdn.com/image/fetch/$s_!bVyS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F061c98ba-06e3-4069-8a3a-af66340b117c_500x288.png 1272w, https://substackcdn.com/image/fetch/$s_!bVyS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F061c98ba-06e3-4069-8a3a-af66340b117c_500x288.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><pre><code># Note: Each tool's default resolver thread count was multiplied by 10

bbot -t tesla.com -f subdomain-enum -m httpx -c modules.massdns.max_resolvers=5000</code></pre><p><a href="https://github.com/blacklanternsecurity/bbot">https://github.com/blacklanternsecurity/bbot</a></p><p><strong>Version</strong>: v1.0.3.736 (04 October 2022)</p><p><strong>Subdomains</strong>: 409</p><p><strong>Runtime</strong>: 12 minutes 19 seconds</p><p><strong>Unique subdomains</strong>: 13</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!c96P!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F038c293b-1913-4ee6-94d4-d577066d25fa_636x679.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!c96P!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F038c293b-1913-4ee6-94d4-d577066d25fa_636x679.png 424w, https://substackcdn.com/image/fetch/$s_!c96P!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F038c293b-1913-4ee6-94d4-d577066d25fa_636x679.png 848w, https://substackcdn.com/image/fetch/$s_!c96P!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F038c293b-1913-4ee6-94d4-d577066d25fa_636x679.png 1272w, https://substackcdn.com/image/fetch/$s_!c96P!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F038c293b-1913-4ee6-94d4-d577066d25fa_636x679.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!c96P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F038c293b-1913-4ee6-94d4-d577066d25fa_636x679.png" width="636" height="679" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/038c293b-1913-4ee6-94d4-d577066d25fa_636x679.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:679,&quot;width&quot;:636,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="image" title="image" srcset="https://substackcdn.com/image/fetch/$s_!c96P!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F038c293b-1913-4ee6-94d4-d577066d25fa_636x679.png 424w, https://substackcdn.com/image/fetch/$s_!c96P!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F038c293b-1913-4ee6-94d4-d577066d25fa_636x679.png 848w, https://substackcdn.com/image/fetch/$s_!c96P!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F038c293b-1913-4ee6-94d4-d577066d25fa_636x679.png 1272w, https://substackcdn.com/image/fetch/$s_!c96P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F038c293b-1913-4ee6-94d4-d577066d25fa_636x679.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aTRM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F64cfc7ad-6fbb-4f1a-8d72-7564f3e007e1_250x250.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aTRM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F64cfc7ad-6fbb-4f1a-8d72-7564f3e007e1_250x250.png 424w, https://substackcdn.com/image/fetch/$s_!aTRM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F64cfc7ad-6fbb-4f1a-8d72-7564f3e007e1_250x250.png 848w, https://substackcdn.com/image/fetch/$s_!aTRM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F64cfc7ad-6fbb-4f1a-8d72-7564f3e007e1_250x250.png 1272w, https://substackcdn.com/image/fetch/$s_!aTRM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F64cfc7ad-6fbb-4f1a-8d72-7564f3e007e1_250x250.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aTRM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F64cfc7ad-6fbb-4f1a-8d72-7564f3e007e1_250x250.png" width="250" height="250" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/64cfc7ad-6fbb-4f1a-8d72-7564f3e007e1_250x250.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:250,&quot;width&quot;:250,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;harvester&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="harvester" title="harvester" srcset="https://substackcdn.com/image/fetch/$s_!aTRM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F64cfc7ad-6fbb-4f1a-8d72-7564f3e007e1_250x250.png 424w, https://substackcdn.com/image/fetch/$s_!aTRM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F64cfc7ad-6fbb-4f1a-8d72-7564f3e007e1_250x250.png 848w, https://substackcdn.com/image/fetch/$s_!aTRM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F64cfc7ad-6fbb-4f1a-8d72-7564f3e007e1_250x250.png 1272w, https://substackcdn.com/image/fetch/$s_!aTRM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F64cfc7ad-6fbb-4f1a-8d72-7564f3e007e1_250x250.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><pre><code># Note: theharvester provides no way to specify custom wordlist, so its wordlists were manually modified
# theharvester did not allow for increased thread count

theHarvester.py --domain tesla.com --dns-lookup --dns-brute --source anubis,baidu,bevigil,binaryedge,bing,bingapi,bufferoverun,censys,certspotter,crtsh,dnsdumpster,duckduckgo,fullhunt,github-code,hackertarget,hunter,intelx,omnisint,otx,pentesttools,projectdiscovery,qwant,rapiddns,rocketreach,securityTrails,sublist3r,threatcrowd,threatminer,urlscan,virustotal,yahoo,zoomeye</code></pre><p><a href="https://github.com/laramies/theHarvester">https://github.com/laramies/theHarvester</a></p><p><strong>Version</strong>: v4.2.0 (13 August 2022)</p><p><strong>Subdomains</strong>: 376</p><p><strong>Runtime</strong>: 7 minutes 10 seconds</p><p><strong>Unique subdomains</strong>: None</p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!iBzc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F284f9a20-a782-4fbe-b583-dc739b281966_530x109.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iBzc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F284f9a20-a782-4fbe-b583-dc739b281966_530x109.png 424w, https://substackcdn.com/image/fetch/$s_!iBzc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F284f9a20-a782-4fbe-b583-dc739b281966_530x109.png 848w, https://substackcdn.com/image/fetch/$s_!iBzc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F284f9a20-a782-4fbe-b583-dc739b281966_530x109.png 1272w, https://substackcdn.com/image/fetch/$s_!iBzc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F284f9a20-a782-4fbe-b583-dc739b281966_530x109.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iBzc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F284f9a20-a782-4fbe-b583-dc739b281966_530x109.png" width="530" height="109" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/284f9a20-a782-4fbe-b583-dc739b281966_530x109.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:109,&quot;width&quot;:530,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;subfinder&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="subfinder" title="subfinder" srcset="https://substackcdn.com/image/fetch/$s_!iBzc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F284f9a20-a782-4fbe-b583-dc739b281966_530x109.png 424w, https://substackcdn.com/image/fetch/$s_!iBzc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F284f9a20-a782-4fbe-b583-dc739b281966_530x109.png 848w, https://substackcdn.com/image/fetch/$s_!iBzc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F284f9a20-a782-4fbe-b583-dc739b281966_530x109.png 1272w, https://substackcdn.com/image/fetch/$s_!iBzc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F284f9a20-a782-4fbe-b583-dc739b281966_530x109.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><pre><code># Note: subfinder does not support DNS brute-forcing

subfinder -domain tesla.com -all -t 100</code></pre><p><a href="https://github.com/projectdiscovery/subfinder">https://github.com/projectdiscovery/subfinder</a></p><p><strong>Version</strong>: v2.5.3 (03 August 2022)</p><p><strong>Subdomains</strong>: 373</p><p><strong>Runtime</strong>: 1 minute 17 seconds</p><p><strong>Unique subdomains</strong>: None</p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qnXQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb997652-b8d4-41f7-930e-7db47329d303_467x174.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qnXQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb997652-b8d4-41f7-930e-7db47329d303_467x174.png 424w, https://substackcdn.com/image/fetch/$s_!qnXQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb997652-b8d4-41f7-930e-7db47329d303_467x174.png 848w, https://substackcdn.com/image/fetch/$s_!qnXQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb997652-b8d4-41f7-930e-7db47329d303_467x174.png 1272w, https://substackcdn.com/image/fetch/$s_!qnXQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb997652-b8d4-41f7-930e-7db47329d303_467x174.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qnXQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb997652-b8d4-41f7-930e-7db47329d303_467x174.png" width="467" height="174" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/fb997652-b8d4-41f7-930e-7db47329d303_467x174.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:174,&quot;width&quot;:467,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;amass&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="amass" title="amass" srcset="https://substackcdn.com/image/fetch/$s_!qnXQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb997652-b8d4-41f7-930e-7db47329d303_467x174.png 424w, https://substackcdn.com/image/fetch/$s_!qnXQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb997652-b8d4-41f7-930e-7db47329d303_467x174.png 848w, https://substackcdn.com/image/fetch/$s_!qnXQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb997652-b8d4-41f7-930e-7db47329d303_467x174.png 1272w, https://substackcdn.com/image/fetch/$s_!qnXQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb997652-b8d4-41f7-930e-7db47329d303_467x174.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><pre><code># Note: Amass did not allow for increased thread count

amass enum -d tesla.com -active -brute -w subdomains-top1million-5000.txt</code></pre><p><a href="https://github.com/OWASP/Amass">https://github.com/OWASP/Amass</a></p><p><strong>Version</strong>: v3.20.0 (22 September 2022)</p><p><strong>Subdomains</strong>: 342</p><p><strong>Runtime</strong>: 8 minutes 42 seconds</p><p><strong>Unique subdomains</strong>: 5</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LSWH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F16288a04-354c-4846-a537-e252449ec4e5_832x301.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LSWH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F16288a04-354c-4846-a537-e252449ec4e5_832x301.png 424w, https://substackcdn.com/image/fetch/$s_!LSWH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F16288a04-354c-4846-a537-e252449ec4e5_832x301.png 848w, https://substackcdn.com/image/fetch/$s_!LSWH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F16288a04-354c-4846-a537-e252449ec4e5_832x301.png 1272w, https://substackcdn.com/image/fetch/$s_!LSWH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F16288a04-354c-4846-a537-e252449ec4e5_832x301.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LSWH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F16288a04-354c-4846-a537-e252449ec4e5_832x301.png" width="832" height="301" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/16288a04-354c-4846-a537-e252449ec4e5_832x301.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:301,&quot;width&quot;:832,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="image" title="image" srcset="https://substackcdn.com/image/fetch/$s_!LSWH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F16288a04-354c-4846-a537-e252449ec4e5_832x301.png 424w, https://substackcdn.com/image/fetch/$s_!LSWH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F16288a04-354c-4846-a537-e252449ec4e5_832x301.png 848w, https://substackcdn.com/image/fetch/$s_!LSWH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F16288a04-354c-4846-a537-e252449ec4e5_832x301.png 1272w, https://substackcdn.com/image/fetch/$s_!LSWH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F16288a04-354c-4846-a537-e252449ec4e5_832x301.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xePX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6b217c40-a59a-4998-aa2e-af9c72541a79_500x121.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xePX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6b217c40-a59a-4998-aa2e-af9c72541a79_500x121.png 424w, https://substackcdn.com/image/fetch/$s_!xePX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6b217c40-a59a-4998-aa2e-af9c72541a79_500x121.png 848w, https://substackcdn.com/image/fetch/$s_!xePX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6b217c40-a59a-4998-aa2e-af9c72541a79_500x121.png 1272w, https://substackcdn.com/image/fetch/$s_!xePX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6b217c40-a59a-4998-aa2e-af9c72541a79_500x121.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xePX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6b217c40-a59a-4998-aa2e-af9c72541a79_500x121.png" width="500" height="121" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/6b217c40-a59a-4998-aa2e-af9c72541a79_500x121.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:121,&quot;width&quot;:500,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;oneforall&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="oneforall" title="oneforall" srcset="https://substackcdn.com/image/fetch/$s_!xePX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6b217c40-a59a-4998-aa2e-af9c72541a79_500x121.png 424w, https://substackcdn.com/image/fetch/$s_!xePX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6b217c40-a59a-4998-aa2e-af9c72541a79_500x121.png 848w, https://substackcdn.com/image/fetch/$s_!xePX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6b217c40-a59a-4998-aa2e-af9c72541a79_500x121.png 1272w, https://substackcdn.com/image/fetch/$s_!xePX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6b217c40-a59a-4998-aa2e-af9c72541a79_500x121.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><pre><code># Note: oneforall.py provides no way to specify custom wordlist, so its wordlists were manually modified
# oneforall.py did not allow for increased thread count

oneforall.py --target tesla.com run</code></pre><p><a href="https://github.com/shmilylty/OneForAll">https://github.com/shmilylty/OneForAll</a></p><p><strong>Version</strong>: v0.4.5 (10 July 2022)</p><p><strong>Subdomains</strong>: 312</p><p><strong>Runtime</strong>: 2 minutes 4 seconds</p><p><strong>Unique subdomains</strong>: 1</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qf5W!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5e3097d0-bb7b-49b4-bd4d-02adb29073ba_405x113.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qf5W!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5e3097d0-bb7b-49b4-bd4d-02adb29073ba_405x113.png 424w, https://substackcdn.com/image/fetch/$s_!qf5W!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5e3097d0-bb7b-49b4-bd4d-02adb29073ba_405x113.png 848w, https://substackcdn.com/image/fetch/$s_!qf5W!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5e3097d0-bb7b-49b4-bd4d-02adb29073ba_405x113.png 1272w, https://substackcdn.com/image/fetch/$s_!qf5W!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5e3097d0-bb7b-49b4-bd4d-02adb29073ba_405x113.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qf5W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5e3097d0-bb7b-49b4-bd4d-02adb29073ba_405x113.png" width="405" height="113" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/5e3097d0-bb7b-49b4-bd4d-02adb29073ba_405x113.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:113,&quot;width&quot;:405,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="image" title="image" srcset="https://substackcdn.com/image/fetch/$s_!qf5W!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5e3097d0-bb7b-49b4-bd4d-02adb29073ba_405x113.png 424w, https://substackcdn.com/image/fetch/$s_!qf5W!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5e3097d0-bb7b-49b4-bd4d-02adb29073ba_405x113.png 848w, https://substackcdn.com/image/fetch/$s_!qf5W!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5e3097d0-bb7b-49b4-bd4d-02adb29073ba_405x113.png 1272w, https://substackcdn.com/image/fetch/$s_!qf5W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5e3097d0-bb7b-49b4-bd4d-02adb29073ba_405x113.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!crDq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F35fcd82b-9d3c-478b-91fa-597eeed070d2_892x194.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!crDq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F35fcd82b-9d3c-478b-91fa-597eeed070d2_892x194.png 424w, https://substackcdn.com/image/fetch/$s_!crDq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F35fcd82b-9d3c-478b-91fa-597eeed070d2_892x194.png 848w, https://substackcdn.com/image/fetch/$s_!crDq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F35fcd82b-9d3c-478b-91fa-597eeed070d2_892x194.png 1272w, https://substackcdn.com/image/fetch/$s_!crDq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F35fcd82b-9d3c-478b-91fa-597eeed070d2_892x194.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!crDq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F35fcd82b-9d3c-478b-91fa-597eeed070d2_892x194.png" width="892" height="194" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/35fcd82b-9d3c-478b-91fa-597eeed070d2_892x194.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:194,&quot;width&quot;:892,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;lepus&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="lepus" title="lepus" srcset="https://substackcdn.com/image/fetch/$s_!crDq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F35fcd82b-9d3c-478b-91fa-597eeed070d2_892x194.png 424w, https://substackcdn.com/image/fetch/$s_!crDq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F35fcd82b-9d3c-478b-91fa-597eeed070d2_892x194.png 848w, https://substackcdn.com/image/fetch/$s_!crDq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F35fcd82b-9d3c-478b-91fa-597eeed070d2_892x194.png 1272w, https://substackcdn.com/image/fetch/$s_!crDq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F35fcd82b-9d3c-478b-91fa-597eeed070d2_892x194.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><pre><code># Note: Each tool's default resolver thread count was multiplied by 10

lepus.py tesla.com --permutate --reverse --ripe --portscan --markovify -w subdomains-top1million-5000.txt --threads 1000</code></pre><p><a href="https://github.com/gfek/Lepus">https://github.com/gfek/Lepus</a></p><p><strong>Version</strong>: git clone (05 October 2022)</p><p><strong>Subdomains</strong>: 171</p><p><strong>Runtime</strong>: 15 minutes 59 seconds</p><p><strong>Unique subdomains</strong>:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cSKX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7f3cfe22-658d-4310-8aae-390cb8e6dbc4_812x256.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cSKX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7f3cfe22-658d-4310-8aae-390cb8e6dbc4_812x256.png 424w, https://substackcdn.com/image/fetch/$s_!cSKX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7f3cfe22-658d-4310-8aae-390cb8e6dbc4_812x256.png 848w, https://substackcdn.com/image/fetch/$s_!cSKX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7f3cfe22-658d-4310-8aae-390cb8e6dbc4_812x256.png 1272w, https://substackcdn.com/image/fetch/$s_!cSKX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7f3cfe22-658d-4310-8aae-390cb8e6dbc4_812x256.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cSKX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7f3cfe22-658d-4310-8aae-390cb8e6dbc4_812x256.png" width="812" height="256" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/7f3cfe22-658d-4310-8aae-390cb8e6dbc4_812x256.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:256,&quot;width&quot;:812,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="image" title="image" srcset="https://substackcdn.com/image/fetch/$s_!cSKX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7f3cfe22-658d-4310-8aae-390cb8e6dbc4_812x256.png 424w, https://substackcdn.com/image/fetch/$s_!cSKX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7f3cfe22-658d-4310-8aae-390cb8e6dbc4_812x256.png 848w, https://substackcdn.com/image/fetch/$s_!cSKX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7f3cfe22-658d-4310-8aae-390cb8e6dbc4_812x256.png 1272w, https://substackcdn.com/image/fetch/$s_!cSKX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7f3cfe22-658d-4310-8aae-390cb8e6dbc4_812x256.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NptL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9c3b7d46-85ee-47cc-9594-c5bea1a9de81_360x80.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NptL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9c3b7d46-85ee-47cc-9594-c5bea1a9de81_360x80.png 424w, https://substackcdn.com/image/fetch/$s_!NptL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9c3b7d46-85ee-47cc-9594-c5bea1a9de81_360x80.png 848w, https://substackcdn.com/image/fetch/$s_!NptL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9c3b7d46-85ee-47cc-9594-c5bea1a9de81_360x80.png 1272w, https://substackcdn.com/image/fetch/$s_!NptL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9c3b7d46-85ee-47cc-9594-c5bea1a9de81_360x80.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NptL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9c3b7d46-85ee-47cc-9594-c5bea1a9de81_360x80.png" width="360" height="80" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/9c3b7d46-85ee-47cc-9594-c5bea1a9de81_360x80.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:80,&quot;width&quot;:360,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;spiderfoot&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="spiderfoot" title="spiderfoot" srcset="https://substackcdn.com/image/fetch/$s_!NptL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9c3b7d46-85ee-47cc-9594-c5bea1a9de81_360x80.png 424w, https://substackcdn.com/image/fetch/$s_!NptL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9c3b7d46-85ee-47cc-9594-c5bea1a9de81_360x80.png 848w, https://substackcdn.com/image/fetch/$s_!NptL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9c3b7d46-85ee-47cc-9594-c5bea1a9de81_360x80.png 1272w, https://substackcdn.com/image/fetch/$s_!NptL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9c3b7d46-85ee-47cc-9594-c5bea1a9de81_360x80.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><pre><code># Note: Spiderfoot's dnsbrute module doesn't support custom wordlists, so its wordlists were manually modified
# Spiderfoot's command line interface does not support increased thread count

sf.py -t INTERNET_NAME -n -s tesla.com</code></pre><p><a href="https://github.com/smicallef/spiderfoot">https://github.com/smicallef/spiderfoot</a></p><p><strong>Version</strong>: v4.0 (07 April 2022)</p><p><strong>Subdomains</strong>: 129</p><p><strong>Runtime</strong>: 48+ hours (cancelled)</p><p><strong>Unique subdomains</strong>: None</p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LTPZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffae94e8f-a58a-4e15-bce8-746226963316_500x127.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LTPZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffae94e8f-a58a-4e15-bce8-746226963316_500x127.png 424w, https://substackcdn.com/image/fetch/$s_!LTPZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffae94e8f-a58a-4e15-bce8-746226963316_500x127.png 848w, https://substackcdn.com/image/fetch/$s_!LTPZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffae94e8f-a58a-4e15-bce8-746226963316_500x127.png 1272w, https://substackcdn.com/image/fetch/$s_!LTPZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffae94e8f-a58a-4e15-bce8-746226963316_500x127.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LTPZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffae94e8f-a58a-4e15-bce8-746226963316_500x127.png" width="500" height="127" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/fae94e8f-a58a-4e15-bce8-746226963316_500x127.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:127,&quot;width&quot;:500,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;sublist3r&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="sublist3r" title="sublist3r" srcset="https://substackcdn.com/image/fetch/$s_!LTPZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffae94e8f-a58a-4e15-bce8-746226963316_500x127.png 424w, https://substackcdn.com/image/fetch/$s_!LTPZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffae94e8f-a58a-4e15-bce8-746226963316_500x127.png 848w, https://substackcdn.com/image/fetch/$s_!LTPZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffae94e8f-a58a-4e15-bce8-746226963316_500x127.png 1272w, https://substackcdn.com/image/fetch/$s_!LTPZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffae94e8f-a58a-4e15-bce8-746226963316_500x127.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><pre><code># Note: Note: Each tool's default resolver thread count was multiplied by 10
# Sublist3r doesn't support custom wordlists, so its wordlists were manually modified

sublist3r.py --domain tesla.com --bruteforce --threads 300</code></pre><p><a href="https://github.com/aboul3la/Sublist3r">https://github.com/aboul3la/Sublist3r</a></p><p><strong>Version</strong>: git clone (04 October 2022)</p><p><strong>Subdomains</strong>: 46</p><p><strong>Runtime</strong>: 3 minutes 39 seconds</p><p><strong>Unique subdomains</strong>: None</p><div><hr></div><h1><strong>Conclusion</strong></h1><p>Comparing these OSINT tools was a fun and educational exercise, and we hope you find the results helpful.</p><p>The best subdomain enumeration tools, by the standards of this benchmark, are:</p><ul><li><p><strong><a href="https://github.com/blacklanternsecurity/bbot">BBOT</a></strong> &#8212; <strong>MOST SUBDOMAINS</strong></p></li><li><p><strong><a href="https://github.com/projectdiscovery/subfinder">SUBFINDER</a></strong> &#8212; <strong>FASTEST</strong></p></li><li><p><strong><a href="https://github.com/laramies/theHarvester">THEHARVESTER</a></strong> &#8212; <strong>Runner-up for both categories</strong></p></li></ul><p>Happy hacking!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.blacklanternsecurity.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Black Lantern Security (BLSOPS)! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[BBOT]]></title><description><![CDATA[Recursive OSINT Machine]]></description><link>https://blog.blacklanternsecurity.com/p/bbot</link><guid isPermaLink="false">https://blog.blacklanternsecurity.com/p/bbot</guid><dc:creator><![CDATA[TheTechromancer]]></dc:creator><pubDate>Fri, 19 Aug 2022 13:15:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jTDr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F82e50968-9a59-4a07-b05b-d017b91beaa4_1900x920.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong><a href="https://www.blacklanternsecurity.com">Black Lantern Security</a></strong> is proud to announce the release of BBOT (<strong>BEE&#183;bot)</strong>: an open-source OSINT automation framework for hackers. </p><p>BBOT is the OSINT tool you&#8217;ve been waiting for. In a single command, it can execute subdomain enumeration, port scanning, web screenshots, vulnerability scans, and more.</p><div><hr></div><h2><strong>Install and Run</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!N9wn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd4a1b25-9ed5-41a2-9fb8-7a67ecbf3d47_1171x229.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!N9wn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd4a1b25-9ed5-41a2-9fb8-7a67ecbf3d47_1171x229.png 424w, https://substackcdn.com/image/fetch/$s_!N9wn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd4a1b25-9ed5-41a2-9fb8-7a67ecbf3d47_1171x229.png 848w, https://substackcdn.com/image/fetch/$s_!N9wn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd4a1b25-9ed5-41a2-9fb8-7a67ecbf3d47_1171x229.png 1272w, https://substackcdn.com/image/fetch/$s_!N9wn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd4a1b25-9ed5-41a2-9fb8-7a67ecbf3d47_1171x229.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!N9wn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd4a1b25-9ed5-41a2-9fb8-7a67ecbf3d47_1171x229.png" width="1171" height="229" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/fd4a1b25-9ed5-41a2-9fb8-7a67ecbf3d47_1171x229.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:229,&quot;width&quot;:1171,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:42451,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!N9wn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd4a1b25-9ed5-41a2-9fb8-7a67ecbf3d47_1171x229.png 424w, https://substackcdn.com/image/fetch/$s_!N9wn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd4a1b25-9ed5-41a2-9fb8-7a67ecbf3d47_1171x229.png 848w, https://substackcdn.com/image/fetch/$s_!N9wn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd4a1b25-9ed5-41a2-9fb8-7a67ecbf3d47_1171x229.png 1272w, https://substackcdn.com/image/fetch/$s_!N9wn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd4a1b25-9ed5-41a2-9fb8-7a67ecbf3d47_1171x229.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a><figcaption class="image-caption">Installing BBOT</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jTDr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F82e50968-9a59-4a07-b05b-d017b91beaa4_1900x920.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jTDr!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F82e50968-9a59-4a07-b05b-d017b91beaa4_1900x920.gif 424w, https://substackcdn.com/image/fetch/$s_!jTDr!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F82e50968-9a59-4a07-b05b-d017b91beaa4_1900x920.gif 848w, https://substackcdn.com/image/fetch/$s_!jTDr!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F82e50968-9a59-4a07-b05b-d017b91beaa4_1900x920.gif 1272w, https://substackcdn.com/image/fetch/$s_!jTDr!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F82e50968-9a59-4a07-b05b-d017b91beaa4_1900x920.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jTDr!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F82e50968-9a59-4a07-b05b-d017b91beaa4_1900x920.gif" width="1456" height="705" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/82e50968-9a59-4a07-b05b-d017b91beaa4_1900x920.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:705,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;subdomain demo&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="subdomain demo" title="subdomain demo" srcset="https://substackcdn.com/image/fetch/$s_!jTDr!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F82e50968-9a59-4a07-b05b-d017b91beaa4_1900x920.gif 424w, https://substackcdn.com/image/fetch/$s_!jTDr!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F82e50968-9a59-4a07-b05b-d017b91beaa4_1900x920.gif 848w, https://substackcdn.com/image/fetch/$s_!jTDr!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F82e50968-9a59-4a07-b05b-d017b91beaa4_1900x920.gif 1272w, https://substackcdn.com/image/fetch/$s_!jTDr!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F82e50968-9a59-4a07-b05b-d017b91beaa4_1900x920.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Running BBOT</figcaption></figure></div><p>At Black Lantern Security, we do a lot of OSINT. In a way, OSINT is the foundation of everything we do. It's the common denominator between every type of engagement, whether for a red-team, attack surface evaluation, or the usual pentest. If you want to hack something, you first have to find it.</p><p>Historically, when it comes to OSINT, each of us have our own tools and our own processes that we like best. For a long time, we stuck to our individual methods because none of us could agree on which tools were best, and because old habits die hard.</p><p>But eventually, we began to see that our OSINT was suffering because of this fragmented approach. Some tools were good at some things and some were good at others, but no tool or tools were good at everything, and none of them fit together in a cohesive way.</p><p>So we began to envision a way of improving our capabilities by pooling our efforts into a tool that we could all use and trust -- a tool that would replace everything else. This is what we set out to create with BBOT.</p><p>But there are already plenty of OSINT frameworks available. Why choose BBOT?</p><p>BBOT is the culmination of years of manual OSINT-gathering experience. In short, it solves quite a lot of problems. But here I'm going to try and stay as brief as possible, hitting the main points that differentiate BBOT from other tools.</p><div><hr></div><h2><strong>BBOT Features</strong></h2><ul><li><p><strong>Recursive</strong></p></li><li><p><strong>Graphing</strong></p></li><li><p><strong>Modular</strong></p></li><li><p><strong>Multi-Target</strong></p></li><li><p><strong>Automatic Dependencies</strong></p></li><li><p><strong>Smart Dictionary Attacks</strong></p></li><li><p><strong>Scope Distance</strong></p></li><li><p><strong>Easily Configurable via YAML</strong></p></li></ul><p>Great. Let's get into it.</p><div><hr></div><h3><strong>Recursive</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Qtrp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc83f7542-10ab-407e-ab7f-71d14cce0c75_640x439.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Qtrp!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc83f7542-10ab-407e-ab7f-71d14cce0c75_640x439.gif 424w, https://substackcdn.com/image/fetch/$s_!Qtrp!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc83f7542-10ab-407e-ab7f-71d14cce0c75_640x439.gif 848w, https://substackcdn.com/image/fetch/$s_!Qtrp!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc83f7542-10ab-407e-ab7f-71d14cce0c75_640x439.gif 1272w, https://substackcdn.com/image/fetch/$s_!Qtrp!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc83f7542-10ab-407e-ab7f-71d14cce0c75_640x439.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Qtrp!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc83f7542-10ab-407e-ab7f-71d14cce0c75_640x439.gif" width="640" height="439" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/c83f7542-10ab-407e-ab7f-71d14cce0c75_640x439.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:439,&quot;width&quot;:640,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;recursion&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="recursion" title="recursion" srcset="https://substackcdn.com/image/fetch/$s_!Qtrp!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc83f7542-10ab-407e-ab7f-71d14cce0c75_640x439.gif 424w, https://substackcdn.com/image/fetch/$s_!Qtrp!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc83f7542-10ab-407e-ab7f-71d14cce0c75_640x439.gif 848w, https://substackcdn.com/image/fetch/$s_!Qtrp!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc83f7542-10ab-407e-ab7f-71d14cce0c75_640x439.gif 1272w, https://substackcdn.com/image/fetch/$s_!Qtrp!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc83f7542-10ab-407e-ab7f-71d14cce0c75_640x439.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Most tools take a <strong>Phased Approach</strong> to OSINT. Combine the output from a bunch of miscellaneous command-line tools, sort, clean, and uniq it, then feed it into the next set of tools, sort, clean, and uniq it, and repeat.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JWgX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F509c9c35-9cdb-4205-8530-80734075b1aa_1788x564.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JWgX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F509c9c35-9cdb-4205-8530-80734075b1aa_1788x564.png 424w, https://substackcdn.com/image/fetch/$s_!JWgX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F509c9c35-9cdb-4205-8530-80734075b1aa_1788x564.png 848w, https://substackcdn.com/image/fetch/$s_!JWgX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F509c9c35-9cdb-4205-8530-80734075b1aa_1788x564.png 1272w, https://substackcdn.com/image/fetch/$s_!JWgX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F509c9c35-9cdb-4205-8530-80734075b1aa_1788x564.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JWgX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F509c9c35-9cdb-4205-8530-80734075b1aa_1788x564.png" width="1456" height="459" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/509c9c35-9cdb-4205-8530-80734075b1aa_1788x564.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:459,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;traditional-workflow&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="traditional-workflow" title="traditional-workflow" srcset="https://substackcdn.com/image/fetch/$s_!JWgX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F509c9c35-9cdb-4205-8530-80734075b1aa_1788x564.png 424w, https://substackcdn.com/image/fetch/$s_!JWgX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F509c9c35-9cdb-4205-8530-80734075b1aa_1788x564.png 848w, https://substackcdn.com/image/fetch/$s_!JWgX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F509c9c35-9cdb-4205-8530-80734075b1aa_1788x564.png 1272w, https://substackcdn.com/image/fetch/$s_!JWgX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F509c9c35-9cdb-4205-8530-80734075b1aa_1788x564.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Traditional OSINT Workflow</figcaption></figure></div><p>What's the problem with doing it that way?</p><p>The problem is that a <strong>Phased Approach</strong> has a tendency to <strong>miss things</strong>.</p><p>Imagine you're enumerating subdomains for evilcorp.com. Your phases may look like this:</p><ol><li><p>Query a bunch of subdomain APIs and do a big DNS brute-force</p></li><li><p>Combine the subdomains from the previous two steps, resolve them to IP addresses, and resolve the IP addresses back to domains again</p></li><li><p>Perform a port scan on every host</p></li><li><p>Visit the open ports on HTTP/HTTPS and parse results for more subdomains</p></li><li><p>Visit the open ports for SSL certs and parse results for more subdomains</p></li><li><p>Finally, clean and dedupe into a final list, making sure to filter out troublesome garbage like wildcard DNS entries.</p></li></ol><p>If you've done any OSINT yourself, you may already see the problem. What if Step 5 yields a unique subdomain that you didn't have in Step 3? It's possible that subdomain has additional goodies such as PTR records, open ports, and web pages. Should you go back to Step 3 and run your port scan again? Should you go back to Step 2 and resolve it again? Or should you go all the way back to Step 1 and run the brute-force again?</p><p>The problem is that each of these steps rely on the output from the step before, which means that if your goal is to find as much as possible, it's not enough to only do this once. You have to repeat these steps again and again, each time feeding their output back into the beginning.</p><p>The point is that OSINT is simply not well-suited to a linear workflow. BBOT solves this with <strong>Recursion</strong>, which is its characteristic feature.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!h4Do!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F524546db-ac32-48e2-987c-de44a27325e6_1396x939.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!h4Do!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F524546db-ac32-48e2-987c-de44a27325e6_1396x939.png 424w, https://substackcdn.com/image/fetch/$s_!h4Do!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F524546db-ac32-48e2-987c-de44a27325e6_1396x939.png 848w, https://substackcdn.com/image/fetch/$s_!h4Do!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F524546db-ac32-48e2-987c-de44a27325e6_1396x939.png 1272w, https://substackcdn.com/image/fetch/$s_!h4Do!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F524546db-ac32-48e2-987c-de44a27325e6_1396x939.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!h4Do!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F524546db-ac32-48e2-987c-de44a27325e6_1396x939.png" width="1396" height="939" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/524546db-ac32-48e2-987c-de44a27325e6_1396x939.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:939,&quot;width&quot;:1396,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;recursive-modules&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="recursive-modules" title="recursive-modules" srcset="https://substackcdn.com/image/fetch/$s_!h4Do!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F524546db-ac32-48e2-987c-de44a27325e6_1396x939.png 424w, https://substackcdn.com/image/fetch/$s_!h4Do!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F524546db-ac32-48e2-987c-de44a27325e6_1396x939.png 848w, https://substackcdn.com/image/fetch/$s_!h4Do!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F524546db-ac32-48e2-987c-de44a27325e6_1396x939.png 1272w, https://substackcdn.com/image/fetch/$s_!h4Do!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F524546db-ac32-48e2-987c-de44a27325e6_1396x939.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">BBOT Improved OSINT Workflow</figcaption></figure></div><p>Instead of working in phases, BBOT's modules continually feed results to each other in real-time as they are discovered. Phases are not used because each newly-found piece of information is acted upon immediately, being fed back into the machine and used to continue the discovery process. This allows for the discovery of distant and well-hidden nuggets that a phased approach would not uncover.</p><p>You may recognize this recursive model from <strong>Spiderfoot</strong>. It is worth mentioning that before BBOT, Spiderfoot was my tool of choice, and it's where I learned the value of a recursive approach to OSINT. Spiderfoot is a brilliant tool, and I wanted it to be the one-stop OSINT tool at Black Lantern Security. But, ultimately, it couldn't stand up to our demands, and my efforts led, instead, to the development of something entirely new.</p><div><hr></div><h3><strong>Graph Output</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nMnG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0edaa7a3-9d1e-4ba2-bb89-ecd87c39a7ea_1455x874.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nMnG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0edaa7a3-9d1e-4ba2-bb89-ecd87c39a7ea_1455x874.png 424w, https://substackcdn.com/image/fetch/$s_!nMnG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0edaa7a3-9d1e-4ba2-bb89-ecd87c39a7ea_1455x874.png 848w, https://substackcdn.com/image/fetch/$s_!nMnG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0edaa7a3-9d1e-4ba2-bb89-ecd87c39a7ea_1455x874.png 1272w, https://substackcdn.com/image/fetch/$s_!nMnG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0edaa7a3-9d1e-4ba2-bb89-ecd87c39a7ea_1455x874.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nMnG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0edaa7a3-9d1e-4ba2-bb89-ecd87c39a7ea_1455x874.png" width="1455" height="874" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/0edaa7a3-9d1e-4ba2-bb89-ecd87c39a7ea_1455x874.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:874,&quot;width&quot;:1455,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;graph&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="graph" title="graph" srcset="https://substackcdn.com/image/fetch/$s_!nMnG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0edaa7a3-9d1e-4ba2-bb89-ecd87c39a7ea_1455x874.png 424w, https://substackcdn.com/image/fetch/$s_!nMnG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0edaa7a3-9d1e-4ba2-bb89-ecd87c39a7ea_1455x874.png 848w, https://substackcdn.com/image/fetch/$s_!nMnG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0edaa7a3-9d1e-4ba2-bb89-ecd87c39a7ea_1455x874.png 1272w, https://substackcdn.com/image/fetch/$s_!nMnG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0edaa7a3-9d1e-4ba2-bb89-ecd87c39a7ea_1455x874.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Neo4j Graph Output</figcaption></figure></div><p>BBOT natively supports output to Neo4j. Other output formats include JSON, CSV, TXT, HTTP, Websockets, and more. You can even output to multiple destinations at once.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1DEW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F597ac5cc-5f91-47bd-9d12-bcf98b949c52_850x225.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1DEW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F597ac5cc-5f91-47bd-9d12-bcf98b949c52_850x225.png 424w, https://substackcdn.com/image/fetch/$s_!1DEW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F597ac5cc-5f91-47bd-9d12-bcf98b949c52_850x225.png 848w, https://substackcdn.com/image/fetch/$s_!1DEW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F597ac5cc-5f91-47bd-9d12-bcf98b949c52_850x225.png 1272w, https://substackcdn.com/image/fetch/$s_!1DEW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F597ac5cc-5f91-47bd-9d12-bcf98b949c52_850x225.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1DEW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F597ac5cc-5f91-47bd-9d12-bcf98b949c52_850x225.png" width="850" height="225" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/597ac5cc-5f91-47bd-9d12-bcf98b949c52_850x225.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:225,&quot;width&quot;:850,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:37339,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1DEW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F597ac5cc-5f91-47bd-9d12-bcf98b949c52_850x225.png 424w, https://substackcdn.com/image/fetch/$s_!1DEW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F597ac5cc-5f91-47bd-9d12-bcf98b949c52_850x225.png 848w, https://substackcdn.com/image/fetch/$s_!1DEW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F597ac5cc-5f91-47bd-9d12-bcf98b949c52_850x225.png 1272w, https://substackcdn.com/image/fetch/$s_!1DEW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F597ac5cc-5f91-47bd-9d12-bcf98b949c52_850x225.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Outputting to Simultaneous Destinations</figcaption></figure></div><div><hr></div><h3><strong>Modules</strong></h3><p>BBOT has over 50 modules and counting. Modules are written in Python, and each one is its own <code>.py</code> file. Modules are easy to write, and they have an arsenal of helper functions at their disposal to help make them the best they can be:</p><ul><li><p>Built-in threading and parallelization</p></li><li><p>Zero-effort data sanitization and deduplication</p></li><li><p>Automatic dependency installation (more on this later)</p></li><li><p>Interact.sh integration for finding SSRFs and other web goodies</p></li><li><p>Smart target-specific wordlist for DNS enumeration, bucket brute-forcing, dirbusting, etc. (more on this later)</p></li><li><p>Configurable options via the CLI or BBOT's YAML config file</p></li></ul><h4><strong>A sample module (</strong><code>mymodule.py</code>):</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-S1z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F224477d7-36a6-415c-b1be-3f023cd86dde_1036x463.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-S1z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F224477d7-36a6-415c-b1be-3f023cd86dde_1036x463.png 424w, https://substackcdn.com/image/fetch/$s_!-S1z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F224477d7-36a6-415c-b1be-3f023cd86dde_1036x463.png 848w, https://substackcdn.com/image/fetch/$s_!-S1z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F224477d7-36a6-415c-b1be-3f023cd86dde_1036x463.png 1272w, https://substackcdn.com/image/fetch/$s_!-S1z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F224477d7-36a6-415c-b1be-3f023cd86dde_1036x463.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-S1z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F224477d7-36a6-415c-b1be-3f023cd86dde_1036x463.png" width="1036" height="463" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/224477d7-36a6-415c-b1be-3f023cd86dde_1036x463.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:463,&quot;width&quot;:1036,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:73773,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-S1z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F224477d7-36a6-415c-b1be-3f023cd86dde_1036x463.png 424w, https://substackcdn.com/image/fetch/$s_!-S1z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F224477d7-36a6-415c-b1be-3f023cd86dde_1036x463.png 848w, https://substackcdn.com/image/fetch/$s_!-S1z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F224477d7-36a6-415c-b1be-3f023cd86dde_1036x463.png 1272w, https://substackcdn.com/image/fetch/$s_!-S1z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F224477d7-36a6-415c-b1be-3f023cd86dde_1036x463.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Sample Module: mymodule.py</figcaption></figure></div><div><hr></div><h3><strong>Multi-Target</strong></h3><p>BBOT accepts unlimited targets, both from files and directly via the command line. Targets can be of differing types, e.g. IP addresses, DNS names, Subnets, etc.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IBa6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb49249c2-b7d3-4b7e-b506-263b996ca2f4_1113x84.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IBa6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb49249c2-b7d3-4b7e-b506-263b996ca2f4_1113x84.png 424w, https://substackcdn.com/image/fetch/$s_!IBa6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb49249c2-b7d3-4b7e-b506-263b996ca2f4_1113x84.png 848w, https://substackcdn.com/image/fetch/$s_!IBa6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb49249c2-b7d3-4b7e-b506-263b996ca2f4_1113x84.png 1272w, https://substackcdn.com/image/fetch/$s_!IBa6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb49249c2-b7d3-4b7e-b506-263b996ca2f4_1113x84.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IBa6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb49249c2-b7d3-4b7e-b506-263b996ca2f4_1113x84.png" width="1113" height="84" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/b49249c2-b7d3-4b7e-b506-263b996ca2f4_1113x84.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:84,&quot;width&quot;:1113,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:14436,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IBa6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb49249c2-b7d3-4b7e-b506-263b996ca2f4_1113x84.png 424w, https://substackcdn.com/image/fetch/$s_!IBa6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb49249c2-b7d3-4b7e-b506-263b996ca2f4_1113x84.png 848w, https://substackcdn.com/image/fetch/$s_!IBa6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb49249c2-b7d3-4b7e-b506-263b996ca2f4_1113x84.png 1272w, https://substackcdn.com/image/fetch/$s_!IBa6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb49249c2-b7d3-4b7e-b506-263b996ca2f4_1113x84.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">BBOT Targets Command</figcaption></figure></div><p>Whitelists and blacklists are also supported, enabling granular scope control for pentest and bug bounty targets.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!la_4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F881054bf-bf14-4e86-b4db-b1273989316c_921x114.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!la_4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F881054bf-bf14-4e86-b4db-b1273989316c_921x114.png 424w, https://substackcdn.com/image/fetch/$s_!la_4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F881054bf-bf14-4e86-b4db-b1273989316c_921x114.png 848w, https://substackcdn.com/image/fetch/$s_!la_4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F881054bf-bf14-4e86-b4db-b1273989316c_921x114.png 1272w, https://substackcdn.com/image/fetch/$s_!la_4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F881054bf-bf14-4e86-b4db-b1273989316c_921x114.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!la_4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F881054bf-bf14-4e86-b4db-b1273989316c_921x114.png" width="921" height="114" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/881054bf-bf14-4e86-b4db-b1273989316c_921x114.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:114,&quot;width&quot;:921,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:19100,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!la_4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F881054bf-bf14-4e86-b4db-b1273989316c_921x114.png 424w, https://substackcdn.com/image/fetch/$s_!la_4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F881054bf-bf14-4e86-b4db-b1273989316c_921x114.png 848w, https://substackcdn.com/image/fetch/$s_!la_4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F881054bf-bf14-4e86-b4db-b1273989316c_921x114.png 1272w, https://substackcdn.com/image/fetch/$s_!la_4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F881054bf-bf14-4e86-b4db-b1273989316c_921x114.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">BBOT Whitelist and Blacklist Capabilities</figcaption></figure></div><div><hr></div><h3><strong>Dependency Handling</strong></h3><p>BBOT automates module dependencies with <strong>Ansible</strong>. When you install BBOT, you <code>pipx install</code>, and that's it. There's no fiddling with third-party tools and dependencies. Even if a module requires a special binary or a specific OS package, BBOT will install it for you.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!n2Ep!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1651cfe4-b42c-4f12-a4dc-ca952e0df1e3_1230x802.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!n2Ep!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1651cfe4-b42c-4f12-a4dc-ca952e0df1e3_1230x802.png 424w, https://substackcdn.com/image/fetch/$s_!n2Ep!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1651cfe4-b42c-4f12-a4dc-ca952e0df1e3_1230x802.png 848w, https://substackcdn.com/image/fetch/$s_!n2Ep!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1651cfe4-b42c-4f12-a4dc-ca952e0df1e3_1230x802.png 1272w, https://substackcdn.com/image/fetch/$s_!n2Ep!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1651cfe4-b42c-4f12-a4dc-ca952e0df1e3_1230x802.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!n2Ep!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1651cfe4-b42c-4f12-a4dc-ca952e0df1e3_1230x802.png" width="1230" height="802" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/1651cfe4-b42c-4f12-a4dc-ca952e0df1e3_1230x802.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:802,&quot;width&quot;:1230,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:101036,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!n2Ep!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1651cfe4-b42c-4f12-a4dc-ca952e0df1e3_1230x802.png 424w, https://substackcdn.com/image/fetch/$s_!n2Ep!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1651cfe4-b42c-4f12-a4dc-ca952e0df1e3_1230x802.png 848w, https://substackcdn.com/image/fetch/$s_!n2Ep!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1651cfe4-b42c-4f12-a4dc-ca952e0df1e3_1230x802.png 1272w, https://substackcdn.com/image/fetch/$s_!n2Ep!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1651cfe4-b42c-4f12-a4dc-ca952e0df1e3_1230x802.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">BBOT Dependency Handling Module</figcaption></figure></div><div><hr></div><h3><strong>Word Cloud</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IUwu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fae961ef6-bb81-4454-b57b-03128f3f1a2c_1343x581.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IUwu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fae961ef6-bb81-4454-b57b-03128f3f1a2c_1343x581.png 424w, https://substackcdn.com/image/fetch/$s_!IUwu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fae961ef6-bb81-4454-b57b-03128f3f1a2c_1343x581.png 848w, https://substackcdn.com/image/fetch/$s_!IUwu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fae961ef6-bb81-4454-b57b-03128f3f1a2c_1343x581.png 1272w, https://substackcdn.com/image/fetch/$s_!IUwu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fae961ef6-bb81-4454-b57b-03128f3f1a2c_1343x581.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IUwu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fae961ef6-bb81-4454-b57b-03128f3f1a2c_1343x581.png" width="1343" height="581" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/ae961ef6-bb81-4454-b57b-03128f3f1a2c_1343x581.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:581,&quot;width&quot;:1343,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;word-cloud&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="word-cloud" title="word-cloud" srcset="https://substackcdn.com/image/fetch/$s_!IUwu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fae961ef6-bb81-4454-b57b-03128f3f1a2c_1343x581.png 424w, https://substackcdn.com/image/fetch/$s_!IUwu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fae961ef6-bb81-4454-b57b-03128f3f1a2c_1343x581.png 848w, https://substackcdn.com/image/fetch/$s_!IUwu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fae961ef6-bb81-4454-b57b-03128f3f1a2c_1343x581.png 1272w, https://substackcdn.com/image/fetch/$s_!IUwu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fae961ef6-bb81-4454-b57b-03128f3f1a2c_1343x581.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">BBOT Target Specific Word Cloud </figcaption></figure></div><p>During each scan, BBOT gathers target-specific keywords from DNS names, web pages, etc., and compiles them into a shared wordlist that is accessible to all modules. This wordlist is saved at the end of a each scan, and can be used for password cracking, etc., or reused in subsequent scans.</p><p>BBOT's <code>massdns</code> module makes extensive use of the word cloud for subdomain brute-forcing. But this type of data is useful for all sorts of other tasks, such as dirbuster and storage bucket enumeration.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BCBe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad4276b-f313-4fb7-89dd-fc0bee0c83dc_944x560.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BCBe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad4276b-f313-4fb7-89dd-fc0bee0c83dc_944x560.png 424w, https://substackcdn.com/image/fetch/$s_!BCBe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad4276b-f313-4fb7-89dd-fc0bee0c83dc_944x560.png 848w, https://substackcdn.com/image/fetch/$s_!BCBe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad4276b-f313-4fb7-89dd-fc0bee0c83dc_944x560.png 1272w, https://substackcdn.com/image/fetch/$s_!BCBe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad4276b-f313-4fb7-89dd-fc0bee0c83dc_944x560.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BCBe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad4276b-f313-4fb7-89dd-fc0bee0c83dc_944x560.png" width="944" height="560" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/0ad4276b-f313-4fb7-89dd-fc0bee0c83dc_944x560.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:560,&quot;width&quot;:944,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:29146,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!BCBe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad4276b-f313-4fb7-89dd-fc0bee0c83dc_944x560.png 424w, https://substackcdn.com/image/fetch/$s_!BCBe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad4276b-f313-4fb7-89dd-fc0bee0c83dc_944x560.png 848w, https://substackcdn.com/image/fetch/$s_!BCBe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad4276b-f313-4fb7-89dd-fc0bee0c83dc_944x560.png 1272w, https://substackcdn.com/image/fetch/$s_!BCBe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad4276b-f313-4fb7-89dd-fc0bee0c83dc_944x560.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Word Cloud Output</figcaption></figure></div><div><hr></div><h3><strong>Scope Distance</strong></h3><p>Scope Distance is a unique feature of BBOT that allows you to control how far out BBOT will explore. Since BBOT is recursive, it needs to have an "exit condition" (i.e., a mechanism that tells it when to stop searching). This is where Scope Distance comes in. Each newly-discovered piece of data&#8212;an "Event" in BBOT terms&#8212;gets assigned a scope distance that represents how many hops away it is from the main scope.</p><p>By default, BBOT searches up to one hop away from your defined target, and although its DNS resolution spiders out to three hops, it will only output the data if it finds something that's in scope. Of course all of these settings are configurable via <code>bbot.yaml</code>.</p><div><hr></div><h3><strong>YAML Config</strong></h3><p>BBOT's scanner and modules are configurable via a single YAML file. This is where you put things like API keys.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6Wxg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf43c659-d711-441e-89a2-41e6331c4957_1247x643.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6Wxg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf43c659-d711-441e-89a2-41e6331c4957_1247x643.png 424w, https://substackcdn.com/image/fetch/$s_!6Wxg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf43c659-d711-441e-89a2-41e6331c4957_1247x643.png 848w, https://substackcdn.com/image/fetch/$s_!6Wxg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf43c659-d711-441e-89a2-41e6331c4957_1247x643.png 1272w, https://substackcdn.com/image/fetch/$s_!6Wxg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf43c659-d711-441e-89a2-41e6331c4957_1247x643.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6Wxg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf43c659-d711-441e-89a2-41e6331c4957_1247x643.png" width="1247" height="643" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/bf43c659-d711-441e-89a2-41e6331c4957_1247x643.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:643,&quot;width&quot;:1247,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:90985,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6Wxg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf43c659-d711-441e-89a2-41e6331c4957_1247x643.png 424w, https://substackcdn.com/image/fetch/$s_!6Wxg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf43c659-d711-441e-89a2-41e6331c4957_1247x643.png 848w, https://substackcdn.com/image/fetch/$s_!6Wxg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf43c659-d711-441e-89a2-41e6331c4957_1247x643.png 1272w, https://substackcdn.com/image/fetch/$s_!6Wxg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf43c659-d711-441e-89a2-41e6331c4957_1247x643.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Customizable YAML File</figcaption></figure></div><div><hr></div><h2><strong>Conclusion</strong></h2><p>We hope you're as excited about BBOT as we are. But, why are you still reading about it? Go try it out!</p><p><a href="https://github.com/blacklanternsecurity/bbot">https://github.com/blacklanternsecurity/bbot</a></p><p>Be sure to stay tuned for more BBOT content, including live demos and head-to-head comparisons with other OSINT tools.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.blacklanternsecurity.com/p/bbot?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.blacklanternsecurity.com/p/bbot?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.blacklanternsecurity.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.blacklanternsecurity.com/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[Introducing Offensive-Azure]]></title><description><![CDATA[A Toolkit Written in Python Aiming to Decouple the Relationship Between PowerShell and Offensive Azure tooling]]></description><link>https://blog.blacklanternsecurity.com/p/introducing-offensive-azure</link><guid isPermaLink="false">https://blog.blacklanternsecurity.com/p/introducing-offensive-azure</guid><dc:creator><![CDATA[Cody Martin]]></dc:creator><pubDate>Wed, 30 Mar 2022 12:00:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!FUDp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcda3a29e-ff63-440e-82db-1e51dd6aa402_420x315.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>During the course of typical red team operations, interacting with Azure products has been a growing issue. As time progresses, many corporations are moving large segments of their infrastructure to cloud based providers, namely Microsoft Azure. As a red team operator, this requires you to at least have a Windows virtual machine available to utilize existing tooling that targets Azure. The requirement is due to tools being written largely in PowerShell. At BLS, we enjoy using Python whenever possible since it is cross-platform and massively supported within the community.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/blacklanternsecurity/offensive-azure" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FUDp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcda3a29e-ff63-440e-82db-1e51dd6aa402_420x315.png 424w, https://substackcdn.com/image/fetch/$s_!FUDp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcda3a29e-ff63-440e-82db-1e51dd6aa402_420x315.png 848w, https://substackcdn.com/image/fetch/$s_!FUDp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcda3a29e-ff63-440e-82db-1e51dd6aa402_420x315.png 1272w, https://substackcdn.com/image/fetch/$s_!FUDp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcda3a29e-ff63-440e-82db-1e51dd6aa402_420x315.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FUDp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcda3a29e-ff63-440e-82db-1e51dd6aa402_420x315.png" width="420" height="315" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/cda3a29e-ff63-440e-82db-1e51dd6aa402_420x315.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:315,&quot;width&quot;:420,&quot;resizeWidth&quot;:420,&quot;bytes&quot;:92323,&quot;alt&quot;:&quot;Offensive-Azure Logo&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/blacklanternsecurity/offensive-azure&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Offensive-Azure Logo" title="Offensive-Azure Logo" srcset="https://substackcdn.com/image/fetch/$s_!FUDp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcda3a29e-ff63-440e-82db-1e51dd6aa402_420x315.png 424w, https://substackcdn.com/image/fetch/$s_!FUDp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcda3a29e-ff63-440e-82db-1e51dd6aa402_420x315.png 848w, https://substackcdn.com/image/fetch/$s_!FUDp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcda3a29e-ff63-440e-82db-1e51dd6aa402_420x315.png 1272w, https://substackcdn.com/image/fetch/$s_!FUDp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcda3a29e-ff63-440e-82db-1e51dd6aa402_420x315.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Offensive-Azure</figcaption></figure></div><p>This brings us to the <a href="https://github.com/blacklanternsecurity/offensive-azure/">Offensive-Azure</a> toolkit. Our aim is to create or re-create tooling that is beneficial to the red team professional in a way that is platform agnostic. One of the main goals of this project is to keep the tools as open and loose as possible. We are publishing the toolkit in its infancy, and will continue to develop and release more tools under this umbrella project. In this initial release, we are releasing two tools:</p><ul><li><p>device-code-easy-mode.py</p></li><li><p>token-juggle.py</p></li></ul><p>The inspiration for these tools comes directly from the work done on <a href="https://o365blog.com/aadinternals/">AADInternals </a>and <a href="https://github.com/rvrsh3ll/TokenTactics">TokenTactics</a>. They are amazing tools that deserve recognition.</p><h1>device-code-easy-mode.py</h1><p>Original inspiration comes directly from <a href="https://twitter.com/DrAzureAD">Dr. Azure AD</a> and his <a href="https://o365blog.com/aadinternals/">AADInternals</a> project. He developed a workflow in PowerShell for creating the device code flow authentication process that required you to stand up and supply an SMTP server for the cmdlet to interact on.</p><p>The workflow present in AADInternals didn't fit with BLS operations, so we decided to make a simpler tool that requests the device code for you, presents it to you, and polls the endpoint for any authentication events. It is up to you to stand up your own email infrastructure and conduct this phish in a successful way. Like the cmdlet in AADInternals, we use the application ID for Microsoft Office. Presenting the victim with an authentication request for "Microsoft Office" helps reassure the victim that they are interacting with a legitimate process.</p><p>You have the option to set the targeted resource within the script; just choose from the URIs presented. For AzureAD usage, you'll want to use <code>graph</code>. This is supposed to be going away sometime in April 2022 in favor of <code>ms-graph</code>.</p><p>For use with all of the <code>Az</code> cmdlets, you'll need both <code>graph</code> and <code>azure_management</code> tokens. To request the other necessary tokens, you'll need to use our other new tool, <code>token-juggle.py,</code> with your refresh token to request additional tokens once the device code flow authentication is completed.</p><h2>Usage</h2><pre><code>python3 ./device-code-easy-mode.py</code></pre><ul><li><p>Send your phish with the code you are presented with as well as the <code>devicelogin</code> endpoint shown</p></li><li><p>Wait for the target to perform the required steps</p><ul><li><p>The device code authentication flow expires after 15 minutes. Note that social engineering may help you prep your target</p></li></ul></li></ul><h2>Installation</h2><pre><code>git clone https://github.com/blacklanternsecurity/offensive-azure.git

cd ./offensive-azure/Device-Code/

pipenv shell

pip install -r requirements.txt</code></pre><h1>token-juggle.py</h1><p>Inspiration for <code>token-juggle.py</code> comes directly from <a href="https://twitter.com/424f424f">rvrsh3ll</a> and his project <a href="https://github.com/rvrsh3ll/TokenTactics">TokenTactics</a>. <code>token-juggle.py</code> requests a new access token for a Microsoft/Azure resource using a refresh token.</p><p>This script will attempt to load a refresh token from a REFRESH_TOKEN environment variable if none is passed with <code>-r</code> or <code>-R</code>.</p><p>After a successful refresh to a new access and refresh token pair, the response output will be saved to where you specify with <code>-o|--outfile</code>. If you do not specify an outfile, then it will be saved to <code>./YYYY-mm-DD_HH-MM-SS_&lt;resource&gt;_token.json</code>. These can be passed back to the script for further use.</p><h2>Usage</h2><p>Using the environment variable:</p><pre><code>export REFRESH_TOKEN=&lt;refresh-token&gt;
python3 token-juggle.py teams</code></pre><p>Using a refresh token as input:</p><pre><code>python3 token-juggle.py outlook -r &lt;refresh-token&gt;</code></pre><p>Using an already saved token response from this script:</p><pre><code>python3 token-juggle.py ms_graph -R &lt;path-to-refresh-token.json&gt;</code></pre><h2>Installation</h2><pre><code>git clone https://github.com/blacklanternsecurity/offensive-azure.git

cd ./offensive-azure/Access-Tokens/

pipenv shell

pip install -r requirements.txt</code></pre><h1>The Next Steps</h1><p>We encourage everyone to watch the <a href="https://github.com/blacklanternsecurity/offensive-azure/">Offensive-Azure</a> repository as we will be adding many more scripts in the near future that will include Azure Active Directory enumeration as well as scripts that will target the other major Microsoft applications.</p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.blacklanternsecurity.com/p/introducing-offensive-azure?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.blacklanternsecurity.com/p/introducing-offensive-azure?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.blacklanternsecurity.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.blacklanternsecurity.com/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[Introducing TREVORproxy and TREVORspray 2.0]]></title><description><![CDATA[Increasing the Speed and Effectiveness of Password Sprays]]></description><link>https://blog.blacklanternsecurity.com/p/introducing-trevorproxy-and-trevorspray</link><guid isPermaLink="false">https://blog.blacklanternsecurity.com/p/introducing-trevorproxy-and-trevorspray</guid><dc:creator><![CDATA[TheTechromancer]]></dc:creator><pubDate>Wed, 19 Jan 2022 15:07:10 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Hf0U!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0b25d99f-3da8-46a9-8a7a-7f21235c24ee_507x500.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3><strong>Password spraying is one of the great joys of pentesting. Or at least, it used to be.</strong></h3><p>Classically, password spraying has been the single lowest-effort and highest-yield technique for gaining an initial foothold in an organization. This made it pretty fun. You start by gathering up a big list of emails, then you kick off a spray with a stupid password like "Spring2022!", and spend the next ten minutes getting disproportionately large and debatably undeserved hits of dopamine as you discover just how many employees are using that stupid password.</p><p>But alas, with increasing Multi-Factor coverage and defensive countermeasures like Smart Lockout, password spraying is becoming more and more of a chore.</p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Hf0U!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0b25d99f-3da8-46a9-8a7a-7f21235c24ee_507x500.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Hf0U!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0b25d99f-3da8-46a9-8a7a-7f21235c24ee_507x500.png 424w, https://substackcdn.com/image/fetch/$s_!Hf0U!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0b25d99f-3da8-46a9-8a7a-7f21235c24ee_507x500.png 848w, https://substackcdn.com/image/fetch/$s_!Hf0U!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0b25d99f-3da8-46a9-8a7a-7f21235c24ee_507x500.png 1272w, https://substackcdn.com/image/fetch/$s_!Hf0U!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0b25d99f-3da8-46a9-8a7a-7f21235c24ee_507x500.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Hf0U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0b25d99f-3da8-46a9-8a7a-7f21235c24ee_507x500.png" width="507" height="500" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/0b25d99f-3da8-46a9-8a7a-7f21235c24ee_507x500.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:500,&quot;width&quot;:507,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;slow-password-sprays&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="slow-password-sprays" title="slow-password-sprays" srcset="https://substackcdn.com/image/fetch/$s_!Hf0U!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0b25d99f-3da8-46a9-8a7a-7f21235c24ee_507x500.png 424w, https://substackcdn.com/image/fetch/$s_!Hf0U!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0b25d99f-3da8-46a9-8a7a-7f21235c24ee_507x500.png 848w, https://substackcdn.com/image/fetch/$s_!Hf0U!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0b25d99f-3da8-46a9-8a7a-7f21235c24ee_507x500.png 1272w, https://substackcdn.com/image/fetch/$s_!Hf0U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0b25d99f-3da8-46a9-8a7a-7f21235c24ee_507x500.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>As pentesters, we've been forced to dial back the intensity of our password sprays so that they take hours or days to finish. And even when we find a valid credential, it sometimes doesn't lead anywhere thanks to security policies like MFA. Overall, it's a similar upward trend to what's happening in the phishing space, which is a whole different blog post. But I digress.</p><p>I suppose that, since we work in cybersecurity, we should be happy about these changes, since it means better security for organizations. After all, the goal of our industry is to make hackers' jobs harder. But since we're hackers and it's our job to hack stuff, it's hard to sit idly by and let our favorite pastime of password spraying go the way of the dodo.</p><p>What I'm trying to say is that we're frustrated. And when hackers are frustrated, they write code. So it is with great delight that we are open-sourcing some new tools, which are the product of our frustration, and will hopefully help to make password spraying fun again.</p><h1><strong>Introducing TREVORproxy and TREVORspray 2.0</strong></h1><p>When I set out to write these tools, the biggest problem I wanted to solve was <strong>Smart Lockout</strong>.</p><p><strong>Smart Lockout</strong> tries to lock out attackers without locking out legitimate users. So basically, it's a fancy word for a lockout mechanism that considers the source IP address when locking an account. There are nuances -- like how Smart Lockout is often powered by machine learning, which makes it inconsistent and unpredictable -- but this is the gist of it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ifZ0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F48142522-462a-4434-948a-54740fda9427_1902x921.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ifZ0!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F48142522-462a-4434-948a-54740fda9427_1902x921.gif 424w, https://substackcdn.com/image/fetch/$s_!ifZ0!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F48142522-462a-4434-948a-54740fda9427_1902x921.gif 848w, https://substackcdn.com/image/fetch/$s_!ifZ0!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F48142522-462a-4434-948a-54740fda9427_1902x921.gif 1272w, https://substackcdn.com/image/fetch/$s_!ifZ0!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F48142522-462a-4434-948a-54740fda9427_1902x921.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ifZ0!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F48142522-462a-4434-948a-54740fda9427_1902x921.gif" width="1456" height="705" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/48142522-462a-4434-948a-54740fda9427_1902x921.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:705,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;smart-lockout-at-work&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="smart-lockout-at-work" title="smart-lockout-at-work" srcset="https://substackcdn.com/image/fetch/$s_!ifZ0!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F48142522-462a-4434-948a-54740fda9427_1902x921.gif 424w, https://substackcdn.com/image/fetch/$s_!ifZ0!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F48142522-462a-4434-948a-54740fda9427_1902x921.gif 848w, https://substackcdn.com/image/fetch/$s_!ifZ0!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F48142522-462a-4434-948a-54740fda9427_1902x921.gif 1272w, https://substackcdn.com/image/fetch/$s_!ifZ0!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F48142522-462a-4434-948a-54740fda9427_1902x921.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>                                             Smart Lockout at Work</p><p></p><h2><strong>TREVORproxy</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NQhw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6f7b594-f97e-4b7d-bbe3-82ed3c22d8f5_298x552.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NQhw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6f7b594-f97e-4b7d-bbe3-82ed3c22d8f5_298x552.png 424w, https://substackcdn.com/image/fetch/$s_!NQhw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6f7b594-f97e-4b7d-bbe3-82ed3c22d8f5_298x552.png 848w, https://substackcdn.com/image/fetch/$s_!NQhw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6f7b594-f97e-4b7d-bbe3-82ed3c22d8f5_298x552.png 1272w, https://substackcdn.com/image/fetch/$s_!NQhw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6f7b594-f97e-4b7d-bbe3-82ed3c22d8f5_298x552.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NQhw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6f7b594-f97e-4b7d-bbe3-82ed3c22d8f5_298x552.png" width="298" height="552" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/d6f7b594-f97e-4b7d-bbe3-82ed3c22d8f5_298x552.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:552,&quot;width&quot;:298,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;trevorproxy-diagram&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="trevorproxy-diagram" title="trevorproxy-diagram" srcset="https://substackcdn.com/image/fetch/$s_!NQhw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6f7b594-f97e-4b7d-bbe3-82ed3c22d8f5_298x552.png 424w, https://substackcdn.com/image/fetch/$s_!NQhw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6f7b594-f97e-4b7d-bbe3-82ed3c22d8f5_298x552.png 848w, https://substackcdn.com/image/fetch/$s_!NQhw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6f7b594-f97e-4b7d-bbe3-82ed3c22d8f5_298x552.png 1272w, https://substackcdn.com/image/fetch/$s_!NQhw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6f7b594-f97e-4b7d-bbe3-82ed3c22d8f5_298x552.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>                                   TREVORproxy IPv6 Subnet Proxy Diagram</p><p></p><p><strong><a href="https://github.com/blacklanternsecurity/TREVORproxy">TREVORproxy</a></strong> is a simple SOCKS proxy that helps avoid Smart Lockout by load-balancing your requests between multiple IP addresses. It accomplishes this with built-in Linux features -- no complex OpenVPN setups or strange firewall configurations. You can use this proxy with Burp Suite, your spraying tool of choice, or even your web browser.</p><p>There are two techniques that TREVORproxy can use to spread your requests across multiple IP adressess: an <strong>SSH Proxy</strong> and a <strong>Subnet Proxy</strong>.</p><h3><strong>SSH Proxy</strong></h3><p>The SSH Proxy is pretty straightforward. You give TREVORproxy some hosts that support SSH, and it sends your traffic through them, making sure to balance equally between all the hosts.</p><pre><code>trevorproxy ssh root@1.2.3.4 root@4.3.2.1</code></pre><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UhR3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0e5d049e-30b4-4595-b05e-3ad6fa941d4a_1516x926.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UhR3!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0e5d049e-30b4-4595-b05e-3ad6fa941d4a_1516x926.gif 424w, https://substackcdn.com/image/fetch/$s_!UhR3!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0e5d049e-30b4-4595-b05e-3ad6fa941d4a_1516x926.gif 848w, https://substackcdn.com/image/fetch/$s_!UhR3!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0e5d049e-30b4-4595-b05e-3ad6fa941d4a_1516x926.gif 1272w, https://substackcdn.com/image/fetch/$s_!UhR3!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0e5d049e-30b4-4595-b05e-3ad6fa941d4a_1516x926.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UhR3!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0e5d049e-30b4-4595-b05e-3ad6fa941d4a_1516x926.gif" width="1456" height="889" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/0e5d049e-30b4-4595-b05e-3ad6fa941d4a_1516x926.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:889,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;ssh-proxy&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="ssh-proxy" title="ssh-proxy" srcset="https://substackcdn.com/image/fetch/$s_!UhR3!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0e5d049e-30b4-4595-b05e-3ad6fa941d4a_1516x926.gif 424w, https://substackcdn.com/image/fetch/$s_!UhR3!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0e5d049e-30b4-4595-b05e-3ad6fa941d4a_1516x926.gif 848w, https://substackcdn.com/image/fetch/$s_!UhR3!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0e5d049e-30b4-4595-b05e-3ad6fa941d4a_1516x926.gif 1272w, https://substackcdn.com/image/fetch/$s_!UhR3!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0e5d049e-30b4-4595-b05e-3ad6fa941d4a_1516x926.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>                                                      TREVORproxy SSH Proxy Demo</p><h3><strong>Subnet Proxy</strong></h3><p>The subnet proxy can be a lot of fun. If you have access to a <code>/64</code> IPv6 subnet (<a href="https://www.linode.com/">Linode</a> is perfect for this), TREVORproxy will load-balance your requests across <strong>eighteen quintillion</strong> (18,446,744,073,709,551,616) unique source addresses.</p><p>Note that if you're using the subnet proxy in IPv6 mode, your target must also support IPv6.</p><pre><code>sudo trevorproxy subnet -s dead:beef::0/64 -i eth0</code></pre><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tQfJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc7e13fa-76df-4ed9-80f3-d8aa60191b0a_1917x953.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tQfJ!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc7e13fa-76df-4ed9-80f3-d8aa60191b0a_1917x953.gif 424w, https://substackcdn.com/image/fetch/$s_!tQfJ!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc7e13fa-76df-4ed9-80f3-d8aa60191b0a_1917x953.gif 848w, https://substackcdn.com/image/fetch/$s_!tQfJ!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc7e13fa-76df-4ed9-80f3-d8aa60191b0a_1917x953.gif 1272w, https://substackcdn.com/image/fetch/$s_!tQfJ!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc7e13fa-76df-4ed9-80f3-d8aa60191b0a_1917x953.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tQfJ!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc7e13fa-76df-4ed9-80f3-d8aa60191b0a_1917x953.gif" width="1456" height="723" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/dc7e13fa-76df-4ed9-80f3-d8aa60191b0a_1917x953.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:723,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;subnet-proxy&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="subnet-proxy" title="subnet-proxy" srcset="https://substackcdn.com/image/fetch/$s_!tQfJ!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc7e13fa-76df-4ed9-80f3-d8aa60191b0a_1917x953.gif 424w, https://substackcdn.com/image/fetch/$s_!tQfJ!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc7e13fa-76df-4ed9-80f3-d8aa60191b0a_1917x953.gif 848w, https://substackcdn.com/image/fetch/$s_!tQfJ!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc7e13fa-76df-4ed9-80f3-d8aa60191b0a_1917x953.gif 1272w, https://substackcdn.com/image/fetch/$s_!tQfJ!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc7e13fa-76df-4ed9-80f3-d8aa60191b0a_1917x953.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>                                                        TREVORproxy Subnet Proxy Demo</p><h2><strong>TREVORspray</strong></h2><p><strong><a href="https://github.com/blacklanternsecurity/TREVORspray">TREVORspray</a></strong> is a modular password sprayer with built-in TREVORproxy support. It has the following features:</p><ul><li><p>Threads, lots of threads</p></li><li><p>Multiple modules</p><ul><li><p><code>msol</code> (Office 365)</p></li><li><p><code>adfs</code> (Active Directory Federation Services)</p></li><li><p><code>okta</code> (Okta SSO)</p></li><li><p><code>anyconnect</code> (Cisco VPN)</p></li><li><p>custom modules (easy to make!)</p></li></ul></li><li><p>Tells you the status of each account: if it exists, is locked, has MFA enabled, etc. (when supported)</p></li><li><p>Automatic cancel/resume (remembers already-tried user/pass combos in <code>~/.trevorspray/tried_logins.txt</code>)</p></li><li><p>Automatic infinite reconnect/retry if a proxy goes down (or if you lose internet)</p></li><li><p>Spoofs <code>User-Agent</code> and other signatures to look like legitimate auth traffic</p></li><li><p>Comprehensive logging</p></li><li><p>Optional <code>--delay</code>, <code>--jitter</code>, and <code>--lockout-delay</code> between requests to bypass lockout countermeasures</p></li><li><p>IPv6 support</p></li><li><p>O365 MFA bypass support (disable with <code>--no-loot</code>)</p><ul><li><p>IMAP</p></li><li><p>SMTP</p></li><li><p>POP</p></li><li><p>EWS (Exchange Web Services) - Automatically retrieves GAL (Global Address Book)</p></li><li><p>EAS (Exchange ActiveSync)</p></li><li><p>EXO (Exchange Online PowerShell)</p></li><li><p>UM (Exchange Unified Messaging)</p></li><li><p>AutoDiscover - Automatically retrieves OAB (Offline Address Book)</p></li><li><p>Azure Portal Access</p></li></ul></li><li><p>Domain <code>--recon</code> to list MX/TXT records, O365 tenant info, federation configuration, autodiscover, etc.</p></li></ul><h3><strong>TREVORspray Example - O365 Password Spray + MFA Bypass</strong></h3><p>Note that the eight O365 MFA bypass checks listed above are automatically executed when a valid cred is found.</p><pre><code># --delay         Sleep for this many seconds between requests
# --lockout-delay Sleep for this many additional seconds when a lockout is encountered
# --jitter        Add a random delay of up to this many seconds between requests

trevorspray -u emails.txt -p 'Spring2022!' --ssh root@1.2.3.4 root@4.3.2.1 --delay 30 --lockout-delay 30 --jitter 10</code></pre><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0OuG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc39a693a-b7fa-4370-8d20-13e160708969_1905x925.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0OuG!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc39a693a-b7fa-4370-8d20-13e160708969_1905x925.gif 424w, https://substackcdn.com/image/fetch/$s_!0OuG!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc39a693a-b7fa-4370-8d20-13e160708969_1905x925.gif 848w, https://substackcdn.com/image/fetch/$s_!0OuG!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc39a693a-b7fa-4370-8d20-13e160708969_1905x925.gif 1272w, https://substackcdn.com/image/fetch/$s_!0OuG!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc39a693a-b7fa-4370-8d20-13e160708969_1905x925.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0OuG!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc39a693a-b7fa-4370-8d20-13e160708969_1905x925.gif" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/c39a693a-b7fa-4370-8d20-13e160708969_1905x925.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;trevorspray-demo&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="trevorspray-demo" title="trevorspray-demo" srcset="https://substackcdn.com/image/fetch/$s_!0OuG!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc39a693a-b7fa-4370-8d20-13e160708969_1905x925.gif 424w, https://substackcdn.com/image/fetch/$s_!0OuG!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc39a693a-b7fa-4370-8d20-13e160708969_1905x925.gif 848w, https://substackcdn.com/image/fetch/$s_!0OuG!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc39a693a-b7fa-4370-8d20-13e160708969_1905x925.gif 1272w, https://substackcdn.com/image/fetch/$s_!0OuG!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc39a693a-b7fa-4370-8d20-13e160708969_1905x925.gif 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>                         TREVORspray Password Spray + MFA Bypass Demo</p><h3><strong>TREVORspray Example - Domain Recon</strong></h3><pre><code>trevorspray --recon evilcorp.com</code></pre><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cRig!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F48cfe52e-3c5b-462f-bc58-c859b9fbd00e_1516x926.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cRig!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F48cfe52e-3c5b-462f-bc58-c859b9fbd00e_1516x926.gif 424w, https://substackcdn.com/image/fetch/$s_!cRig!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F48cfe52e-3c5b-462f-bc58-c859b9fbd00e_1516x926.gif 848w, https://substackcdn.com/image/fetch/$s_!cRig!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F48cfe52e-3c5b-462f-bc58-c859b9fbd00e_1516x926.gif 1272w, https://substackcdn.com/image/fetch/$s_!cRig!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F48cfe52e-3c5b-462f-bc58-c859b9fbd00e_1516x926.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cRig!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F48cfe52e-3c5b-462f-bc58-c859b9fbd00e_1516x926.gif" width="1456" height="889" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/48cfe52e-3c5b-462f-bc58-c859b9fbd00e_1516x926.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:889,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;trevorspray-recon&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="trevorspray-recon" title="trevorspray-recon" srcset="https://substackcdn.com/image/fetch/$s_!cRig!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F48cfe52e-3c5b-462f-bc58-c859b9fbd00e_1516x926.gif 424w, https://substackcdn.com/image/fetch/$s_!cRig!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F48cfe52e-3c5b-462f-bc58-c859b9fbd00e_1516x926.gif 848w, https://substackcdn.com/image/fetch/$s_!cRig!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F48cfe52e-3c5b-462f-bc58-c859b9fbd00e_1516x926.gif 1272w, https://substackcdn.com/image/fetch/$s_!cRig!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F48cfe52e-3c5b-462f-bc58-c859b9fbd00e_1516x926.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>                                    TREVORspray Domain Recon Demo</p><p></p><h2><strong>Conclusion</strong></h2><p>By combining the IP-shuffling capability of TREVORproxy and TREVORspray's customizable <code>--delay</code>, <code>--jitter</code>, and <code>--lockout-delay</code> options, you can confuse Smart Lockout and boost the speed and effectiveness of your password sprays. For more examples and in-depth explanations of these concepts, please see the projects' READMEs.</p><ul><li><p><a href="https://github.com/blacklanternsecurity/TREVORproxy">https://github.com/blacklanternsecurity/TREVORproxy</a></p></li><li><p><a href="https://github.com/blacklanternsecurity/TREVORspray">https://github.com/blacklanternsecurity/TREVORspray</a></p></li></ul><p>Happy spraying!</p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.blacklanternsecurity.com/p/introducing-trevorproxy-and-trevorspray?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.blacklanternsecurity.com/p/introducing-trevorproxy-and-trevorspray?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.blacklanternsecurity.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.blacklanternsecurity.com/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[Kerberos Cache Manager Ticket Formatter]]></title><description><![CDATA[Release of the KCMTicketFormatter Tool to Format TGTs from the Kerberos Cache Manager]]></description><link>https://blog.blacklanternsecurity.com/p/kerberos-cache-manager-ticket-formatter</link><guid isPermaLink="false">https://blog.blacklanternsecurity.com/p/kerberos-cache-manager-ticket-formatter</guid><pubDate>Sat, 29 May 2021 02:11:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!BHOR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5163d819-5c1c-4326-8ba9-52db889e0b41_646x349.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Author: Carson Sallis</em></p><p>During a penetration test, Black Lantern Security (BLS) attempted to pivot from a domain-joined Linux system to a Windows environment. By utilizing FireEye&#8217;s SSSDKCMExtractor tool, BLS Operators were able to extract the payload for a Ticket-Granting Ticket from the SSSD Samba Database. Unfortunately, in its extracted state, the ticket could not be recognized by a Windows system due to the SSSDKCMExtractor tool lacking the ability to properly format the ticket, instead leaving it as an exercise for the reader. Since we always do our homework at BLS, and in spite of our love for tedious hex editing, we decided to automate the process. KCMTicketFormatter (<a href="https://github.com/blacklanternsecurity/KCMTicketFormatter">KCMTicketFormatter on GitHub</a>) was created to take the output from the SSSDKCMExtractor tool and parse the output into a properly formatted TGT in the form of a Kerberos Credential Cache (CCACHE file).</p><h2>Overview of System Security Services Daemon (SSSD) on Linux</h2><p>The following list briefly describes SSSD and how SSSD integrates with the Kerberos Cache Manager (KCM):</p><ul><li><p>SSSD is used to join a Linux system to an Active Directory domain</p></li><li><p>SSSD utilizes the Kerberos Cache Manager to store Kerberos tickets from the domain in a local Samba database</p></li><li><p>The tickets are stored encrypted with the decryption key stored in the same directory</p></li><li><p>SSSD works with KCM to store and deploy Kerberos tickets and enable normal function within the domain</p></li></ul><h2>Brief Synopsis of SSSDKCMExtractor</h2><p>FireEye created SSSDKCMExtractor to decrypt the KCM database used by SSSD and to extract Kerberos payloads. The tools utilizes the following workflow:</p><ul><li><p>With root privileges, an attacker navigates to the /var/lib/sss/secrets directory on a domain-joined Linux system</p></li><li><p>The attacker exfiltrates the Samba Trivial Database (.tdb) and decryption key (.mkey)</p></li><li><p>The attacker executes the SSSDKCMExtractor tool while providing both the database and decryption key</p></li><li><p>JSON output is returned featuring the user, domain, and payload containing the unformatted TGT</p></li></ul><h2>Usage of KCMTicketFormatter</h2><p>The following code snippet describes the normal usage of KCMTicketFormatter:</p><pre><code>

usage: KCMTicketFormatter.py [-h] -f FILE [-o OUTPUT] [-v]

Format SSSD Raw Kerberos Payloads into CCACHE files for use on Windows systems.

optional arguments:
  -h, --help            show this help message and exit
  -f FILE, --file FILE  &lt;Required&gt; Specify path to the file containing SSSD Raw Kerberos Payload
  -o OUTPUT, --output OUTPUT
                        Specify name of file to output the ccache. Defaults to ticket.ccache
  -v, --verbose         Show debugging messages
</code></pre><p><strong>The following steps describe how to format using the KCMTicketFormatter:</strong></p><ol><li><p>Ensure you have a working Python3 environment</p></li><li><p>Copy the payload from SSSDKCMExtractor and store it in a text file, which will be provided as input.</p></li><li><p>Execute the tool providing the payload file as input</p></li></ol><p>After running the tool, you can validate you have a properly formatted CCACHE file using the <code>klist</code> tool. Export the CCACHE file as <code>KRB5CCNAME,</code> and then run <code>klist -A</code>. The following screenshot demonstrates normal usage of the tool.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BHOR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5163d819-5c1c-4326-8ba9-52db889e0b41_646x349.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BHOR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5163d819-5c1c-4326-8ba9-52db889e0b41_646x349.png 424w, https://substackcdn.com/image/fetch/$s_!BHOR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5163d819-5c1c-4326-8ba9-52db889e0b41_646x349.png 848w, https://substackcdn.com/image/fetch/$s_!BHOR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5163d819-5c1c-4326-8ba9-52db889e0b41_646x349.png 1272w, https://substackcdn.com/image/fetch/$s_!BHOR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5163d819-5c1c-4326-8ba9-52db889e0b41_646x349.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BHOR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5163d819-5c1c-4326-8ba9-52db889e0b41_646x349.png" width="646" height="349" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/5163d819-5c1c-4326-8ba9-52db889e0b41_646x349.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:349,&quot;width&quot;:646,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Example Usage&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Example Usage" title="Example Usage" srcset="https://substackcdn.com/image/fetch/$s_!BHOR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5163d819-5c1c-4326-8ba9-52db889e0b41_646x349.png 424w, https://substackcdn.com/image/fetch/$s_!BHOR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5163d819-5c1c-4326-8ba9-52db889e0b41_646x349.png 848w, https://substackcdn.com/image/fetch/$s_!BHOR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5163d819-5c1c-4326-8ba9-52db889e0b41_646x349.png 1272w, https://substackcdn.com/image/fetch/$s_!BHOR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5163d819-5c1c-4326-8ba9-52db889e0b41_646x349.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Example Usage with the KCMTicketFormatter Tool</figcaption></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.blacklanternsecurity.com/p/kerberos-cache-manager-ticket-formatter?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.blacklanternsecurity.com/p/kerberos-cache-manager-ticket-formatter?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.blacklanternsecurity.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.blacklanternsecurity.com/subscribe?"><span>Subscribe now</span></a></p><h2>References</h2><ol><li><p><a href="https://github.com/mandiant/SSSDKCMExtractor">https://github.com/mandiant/SSSDKCMExtractor</a></p></li><li><p><a href="https://docs.pagure.org/sssd.sssd/design_pages/kcm.html">https://docs.pagure.org/sssd.sssd/design_pages/kcm.html</a></p></li><li><p><a href="https://github.com/blacklanternsecurity/KCMTicketFormatter">https://github.com/blacklanternsecurity/KCMTicketFormatter</a></p></li></ol><p></p>]]></content:encoded></item></channel></rss>