<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Home on Disruptive Labs</title>
    <link>https://disruptivelabs.in/</link>
    <description>Ramblings of a security engineer</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 15 Oct 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://disruptivelabs.in/index.xml" rel="self" type="application/rss+xml" /><item>
      <title>A Practical Guide to Red Teaming in Mac Environments</title>
      <link>https://disruptivelabs.in/talks/practical-red-teaming-macos/</link>
      <pubDate>Wed, 15 Oct 2025 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/talks/practical-red-teaming-macos/</guid>
      <description><![CDATA[<p><strong>Talk title:</strong>  A Practical Guide to Red Teaming in Mac Environments</p>
<p><strong>Conference:</strong> c0c0n 2025</p>
<p><strong>Slides:</strong> <a href="https://mrt-c0c0n.netlify.app">https://mrt-c0c0n.netlify.app</a></p>
]]></description>
    </item><item>
      <title>Vim for hackers</title>
      <link>https://disruptivelabs.in/notes/vim-for-hackers/</link>
      <pubDate>Sun, 29 Jun 2025 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/notes/vim-for-hackers/</guid>
      <description><![CDATA[<p><strong>Run a OS command on each line in the file</strong></p>
<p><code>:%!COMMAND</code></p>
<p><code>:%!sort</code> # sort all the lines alphabetically</p>
<p><code>:%!sort | uniq</code> #remove duplicate lines</p>
<p><code>:%!tac</code> #reverse lines (last line to first line)</p>
<p><code>:%!base64 -d</code> #base64 decode one line at a time</p>
<p><strong>Extract IP addresses in a file</strong></p>
<p><code>:%!grep -oE '([0-9]{1,3}\.){3}[0-9]{1,3}'</code></p>
<p><strong>Create custom commands for repeatable tasks</strong></p>
<p>You might want to repeat tasks regularly. For example:</p>
<p>You want to encode all the lines in the file (one line at a time). The below vim command would register a custom command <code>EncodeLines</code> that will take one argument and operate that argument on one line at a time. Now, you can use this <code>base64</code>, <code>xxd</code>, <code>sha256</code> or anything else as long as your shell has the command.</p>
<div class="highlight"><pre tabindex="0" style="background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>:command! -nargs=1 EncodeLines execute <span style="color:#666;font-style:italic">&#39;%!awk &#39;&#39;{print $0 | &#34;&#39;</span> . &lt;q-args&gt; . <span style="color:#666;font-style:italic">&#39;&#34;; close(&#34;&#39;</span> . &lt;q-args&gt; . <span style="color:#666;font-style:italic">&#39;&#34;);}&#39;&#39;&#39;</span>
</span></span><span style="display:flex;"><span>:EncodeLines base64
</span></span><span style="display:flex;"><span>:EncodeLines xxd
</span></span></code></pre></div><p>You might want to remove empty lines in a file regularly</p>
<div class="highlight"><pre tabindex="0" style="background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>:command! RemoveEmptyLines g/^$/d
</span></span></code></pre></div><p>Add these lines to <code>~/.vimrc</code> for persistence.</p>
<h3 class="heading" id="where-did-i-learn-steal-this-from">
  Where did I learn (steal!?) this from?
  <a class="anchor" href="#where-did-i-learn-steal-this-from">#</a>
</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=l8iXMgk2nnY">https://www.youtube.com/watch?v=l8iXMgk2nnY</a></li>
</ul>
]]></description>
    </item><item>
      <title>Fiddling with Certificate Transparency Logs</title>
      <link>https://disruptivelabs.in/notes/fiddling-ct-logs/</link>
      <pubDate>Sat, 21 Jun 2025 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/notes/fiddling-ct-logs/</guid>
      <description><![CDATA[<p><a href="https://github.com/hdm/ctail">https://github.com/hdm/ctail</a></p>
<p><a href="https://github.com/0xbharath/ctlog-utilities/">https://github.com/0xbharath/ctlog-utilities/</a></p>
<p><code>crt.sh</code> by Comodo provides direct DB access to it&rsquo;s CT Logs. There is a 1-12 hours delay though.</p>
<div class="highlight"><pre tabindex="0" style="background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>psql -h crt.sh -p 5432 -U guest certwatch <span style="color:#666;font-style:italic">\
</span></span></span><span style="display:flex;"><span><span style="color:#666;font-style:italic"></span>-c <span style="color:#666;font-style:italic">&#34;SELECT id, x509_commonname(certificate) AS common_name FROM certificate WHERE identities(certificate) @@ plainto_tsquery(&#39;navigalactic.com&#39;) AND lower(x509_commonname(certificate)) LIKE &#39;%.navigalactic.com&#39; ;&#34;</span>
</span></span></code></pre></div><h3 class="heading" id="where-did-i-learn-steal-this-from">
  Where did I learn (steal!?) this from?
  <a class="anchor" href="#where-did-i-learn-steal-this-from">#</a>
</h3>
]]></description>
    </item><item>
      <title>JSON parsing tips &amp; tricks</title>
      <link>https://disruptivelabs.in/notes/json-parsing-tricks/</link>
      <pubDate>Sun, 18 May 2025 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/notes/json-parsing-tricks/</guid>
      <description><![CDATA[<p><strong>Parsing large unknown JSON files</strong></p>
<p>&ldquo;Let&rsquo;s say I want a list of usernames of all the people who starred a project on Github via Github API.&rdquo;</p>
<ol>
<li>Let&rsquo;s call the API using curl and find the number of elements in the JSON returned</li>
</ol>
<div class="highlight"><pre tabindex="0" style="background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl <span style="color:#666;font-style:italic">&#34;https://api.github.com/repos/tomnomnom/gron/stargazers&#34;</span> -s | jq length
</span></span></code></pre></div><p>The JSON is farly large. Let&rsquo;s get to parsing it.</p>
<ol start="2">
<li>Use <a href="https://github.com/tomnomnom/gron">Gron</a> to understand the structure of the JSON file.</li>
</ol>
<div class="highlight"><pre tabindex="0" style="background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>gron <span style="color:#666;font-style:italic">&#34;https://api.github.com/repos/tomnomnom/gron/stargazers&#34;</span> -s
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#666;font-weight:bold;font-style:italic">json</span> = [];
</span></span><span style="display:flex;"><span>json[0] = {};
</span></span><span style="display:flex;"><span>json[0].avatar_url = <span style="color:#666;font-style:italic">&#34;https://avatars.githubusercontent.com/u/369020?v=4&#34;</span>;
</span></span><span style="display:flex;"><span>json[0].events_url = <span style="color:#666;font-style:italic">&#34;https://api.github.com/users/iamthemovie/events{/privacy}&#34;</span>;
</span></span><span style="display:flex;"><span>json[0].followers_url = <span style="color:#666;font-style:italic">&#34;https://api.github.com/users/iamthemovie/followers&#34;</span>;
</span></span><span style="display:flex;"><span>json[0].following_url = <span style="color:#666;font-style:italic">&#34;https://api.github.com/users/iamthemovie/following{/other_user}&#34;</span>;
</span></span><span style="display:flex;"><span>json[0].gists_url = <span style="color:#666;font-style:italic">&#34;https://api.github.com/users/iamthemovie/gists{/gist_id}&#34;</span>;
</span></span><span style="display:flex;"><span>json[0].gravatar_id = <span style="color:#666;font-style:italic">&#34;&#34;</span>;
</span></span><span style="display:flex;"><span>json[0].html_url = <span style="color:#666;font-style:italic">&#34;https://github.com/iamthemovie&#34;</span>;
</span></span><span style="display:flex;"><span>json[0].id = 369020;
</span></span><span style="display:flex;"><span>json[0].login = <span style="color:#666;font-style:italic">&#34;iamthemovie&#34;</span>;
</span></span></code></pre></div><p>The <code>login</code> field seems to have the username of the stargazer. Let&rsquo;s now use the output of <code>gron</code> with <code>jq</code> to extract all the usernames.</p>
<blockquote>
<p>This is the beauty of Gron. It makes JSON greppable and also it gives you a flat visual structure of what the JSON looks like. You can simply copy paste the flat representation of a specific element to get the exact elements and their values in large JSON files</p></blockquote>
<ul>
<li>Replace the <code>json</code> keyword with <code>.</code></li>
<li>Remove the index numerical to get all the usernames</li>
</ul>
<div class="highlight"><pre tabindex="0" style="background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl <span style="color:#666;font-style:italic">&#34;https://api.github.com/repos/tomnomnom/gron/stargazers&#34;</span> -s | jq <span style="color:#666;font-style:italic">&#34;.[].login&#34;</span>
</span></span></code></pre></div><p>Let&rsquo;s do a similar activity. Using <a href="https://www.cisa.gov/known-exploited-vulnerabilities-catalog">Known Exploited Vulnerabilities Catalog</a> JSON, list the names of all the vendors whose products are being attacked actively in the wild.</p>
<div class="highlight"><pre tabindex="0" style="background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>gron https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json
</span></span><span style="display:flex;"><span>curl https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json | jq <span style="color:#666;font-style:italic">&#34;.vulnerabilities[].vendorProject&#34;</span> | sort -u
</span></span></code></pre></div><h2 class="heading" id="where-did-i-learn-steal-this-from">
  Where did I learn (steal!?) this from?
  <a class="anchor" href="#where-did-i-learn-steal-this-from">#</a>
</h2>
<ul>
<li><a href="https://github.com/tomnomnom/gron">https://github.com/tomnomnom/gron</a></li>
<li><a href="https://www.youtube.com/watch?v=TOgbERklQr4">https://www.youtube.com/watch?v=TOgbERklQr4</a></li>
</ul>
]]></description>
    </item><item>
      <title>Git commands for security assessments</title>
      <link>https://disruptivelabs.in/notes/git-commands-security-assessment/</link>
      <pubDate>Thu, 01 May 2025 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/notes/git-commands-security-assessment/</guid>
      <description><![CDATA[<p><strong>Find out the history of a specific piece of code</strong></p>
<pre tabindex="0"><code># Blame for specific lines
git blame -L start,end /path/to/file
git blame -L 21,42 config.yml
</code></pre><h3 class="heading" id="where-did-i-learn-steal-this-from">
  Where did I learn (steal!?) this from?
  <a class="anchor" href="#where-did-i-learn-steal-this-from">#</a>
</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=aolI_Rz0ZqY">https://www.youtube.com/watch?v=aolI_Rz0ZqY</a></li>
</ul>
]]></description>
    </item><item>
      <title>On choosing a platform for an Open Source Community</title>
      <link>https://disruptivelabs.in/posts/open-source-community-platforms/</link>
      <pubDate>Fri, 24 May 2024 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/posts/open-source-community-platforms/</guid>
      <description><![CDATA[<blockquote>
<p>TL;DR:</p>
<p>This blog is on my views around choosing a platform for an Open Source project&rsquo;s community.</p>
<p>Spoiler alert: I like forums that can be indexed by search engines, can be read without logging in and doesn&rsquo;t need additional software.</p>
<p>We moved our Mantis project community from Discord to Github discussions <a href="https://github.com/PhonePe/mantis/discussions">https://github.com/PhonePe/mantis/discussions</a></p></blockquote>
<p>Of late I have noticed a trend among lot of Open Source projects where they use collaboration or communication platforms like Slack/Discord for managing their communities. There are also projects using messaging platforms like Telegram. Examples include:</p>
<ul>
<li>ProjectDiscovery using Discord</li>
<li>Frida using Telegram <a href="https://frida.re/contact/">https://frida.re/contact/</a></li>
<li>Null community using WhatsApp, Discord etc <a href="https://linktr.ee/nullcommunity">https://linktr.ee/nullcommunity</a></li>
</ul>
<p>I&rsquo;m one of the maintainers for a small Open Source project called Mantis. We started off using Discord for community management. However, I personally observed few pitfalls in using these platforms for community management instead of using &ldquo;open&rdquo; forums. We eventually decided to use &ldquo;Github Discussions&rdquo; forums instead of Discord as our primary point of community interactions. I&rsquo;ll discuss a few points that led us to this decision:</p>
<h2 class="heading" id="killing-the-wisdom-of-the-ancients">
  Killing the &ldquo;Wisdom of the Ancients&rdquo;
  <a class="anchor" href="#killing-the-wisdom-of-the-ancients">#</a>
</h2>
<p>














<figure class=" img-small">

    <div class="img-container" >
        <img loading="lazy" alt="xkcd - wisdom of ancients" src="https://imgs.xkcd.com/comics/wisdom_of_the_ancients.png#small" >
    </div>

    
    <div class="caption-container">
        <figcaption> xkcd - wisdom of ancients </figcaption>
    </div>
    
</figure>
</p>
<p>Have you ever had to work on some niche technology or ran into some obscure error that you couldn&rsquo;t solve yourself? In your despair, you had to turn to Stack Overflow or support forums for a solution. You most probably found your answers lying in some ancient forum thread. The &ldquo;Wisdom of the Ancients&rdquo; has come to your rescue!</p>
<p>A lot of technical troubleshooting relies on leveraging the &ldquo;Wisdom of the Ancients&rdquo;. Personally, I would have given up on using Linux as my primary OS in earlier days if it were not for the Wisdom of the Ancients on the support forums.</p>
<p>Most of the collaboration/messaging platforms are behind login and are not indexable by search engines. This means, your community needs to be on the platform and are at the mercy of the platform&rsquo;s search. I personally noticed that we were solving the same issue multiple times because of the inefficiencies of the search and interface on these platforms.</p>
<p>I like forums that are open for reading by anyone on the Internet and are indexable by search engines or archival services like WayBack machine.</p>
<h2 class="heading" id="walled-garden-vs-bazaar">
  Walled garden vs Bazaar
  <a class="anchor" href="#walled-garden-vs-bazaar">#</a>
</h2>
<p>Most of the new-age collaboration platforms act like walled-gardens. They are behind a login, running on platform provider&rsquo;s infrastructure and they recommend using their new flashy desktop client.</p>
<p>This creates a significant barrier for hobbyist users that just want test the waters and get involved with your project.</p>
<p>I prefer forums that can be read by anyone with a working Internet connection and a browser.</p>
<h2 class="heading" id="the-chatting-mindset">
  The &ldquo;chatting&rdquo; mindset
  <a class="anchor" href="#the-chatting-mindset">#</a>
</h2>
<p>This point is highly-opinionated. Most collaboration/messaging tools fixate the users into a mindset of &ldquo;chatting&rdquo;/&ldquo;talking&rdquo;. This sorta sets an unrealistic expectation on the project maintainers to respond quick and often.</p>
<p>The &ldquo;chatting&rdquo; mindset can be great to get conversations/discussions to kick-start but I noticed that these &ldquo;chatting&rdquo; quickly evolves into a banter that doesn&rsquo;t add value and in turn drowns any meaningful conversations. This can also turn into a nightmare for moderation.</p>
<p>Although this maybe seem insignificant, this mindset can affect the project&rsquo;s community in a long term.</p>
<h2 class="heading" id="final-thoughts">
  Final thoughts
  <a class="anchor" href="#final-thoughts">#</a>
</h2>
<p>So, what would work for your Open Source project? Like with all the engineering problems, the answer is, &ldquo;it depends&rdquo;. I&rsquo;ll conclude this blog with the closing points from a <a href="https://www.mooreds.com/wordpress/archives/3451">better blog</a> post on this topic:</p>
<p>As alluded to initially, you can of course use both tools at different times in your community’s evolution. I think the longer you build, the more you’ll move to a forum or other public knowledge sharing solution.</p>
<p>Well, what do you want to emphasise? Long term aggregation of knowledge and a culture of completeness, or community and a culture of immediacy.</p>
<h2 class="heading" id="additional-reading">
  Additional reading
  <a class="anchor" href="#additional-reading">#</a>
</h2>
<ul>
<li><a href="https://en.wikipedia.org/wiki/Closed_platform">https://en.wikipedia.org/wiki/Closed_platform</a></li>
<li><a href="https://www.mooreds.com/wordpress/archives/3451">https://www.mooreds.com/wordpress/archives/3451</a></li>
<li><a href="https://x.com/mooreds/status/1381286576903233536">https://x.com/mooreds/status/1381286576903233536</a></li>
</ul>
]]></description>
    </item><item>
      <title>Mantis - Asset Discovery at Scale</title>
      <link>https://disruptivelabs.in/talks/mantis-blackhat-2023/</link>
      <pubDate>Wed, 06 Dec 2023 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/talks/mantis-blackhat-2023/</guid>
      <description><![CDATA[<p><strong>Talk title:</strong> Mantis - Asset Discovery at Scale</p>
<p><strong>Conference:</strong> BlackHat Europe (Arsenal) | 06th Dec 2023</p>
<p><strong>Slides Deck:</strong> <a href="https://speakerdeck.com/0xbharath/mantis-asset-discovery-at-scale">https://speakerdeck.com/0xbharath/mantis-asset-discovery-at-scale</a></p>
]]></description>
    </item><item>
      <title>Breaking iOS Security Testing Barrier</title>
      <link>https://disruptivelabs.in/talks/breaking-ios-testing-barrier/</link>
      <pubDate>Sun, 15 Oct 2023 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/talks/breaking-ios-testing-barrier/</guid>
      <description><![CDATA[<p><strong>Talk title:</strong> Breaking iOS Security Testing Barrier</p>
<p><strong>Conference:</strong> ThreatCon | 15th Sep 2023 | Kathmandu, Nepal</p>
<p><strong>Slides Deck:</strong> <a href="https://speakerdeck.com/0xbharath/breaking-ios-security-testing-barrier">https://speakerdeck.com/0xbharath/breaking-ios-security-testing-barrier</a></p>
]]></description>
    </item><item>
      <title>Notes on Yubikey setup &amp; automation on Linux/MacOS</title>
      <link>https://disruptivelabs.in/posts/notes-yubikey-setup-and-automation/</link>
      <pubDate>Tue, 04 Apr 2023 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/posts/notes-yubikey-setup-and-automation/</guid>
      <description><![CDATA[<p>I have finally managed to move my MFA to hardware security keys using Yubikeys, thanks to the Cloudflare&rsquo;s <a href="https://blog.cloudflare.com/making-phishing-defense-seamless-cloudflare-yubico/">&ldquo;Good for the Internet&rdquo; offer</a> where any Cloudflare customer was able to buy Yubikeys for as low as $10 per key. I maxed out on my offer by buying four of Yubikey 5 series (2xYubiKey 5C NFC &amp; YubiKey 5 NFC).</p>
<p>This blog post is my ad hoc notes on setting up and automating Yubikey 5 series on Linux/MacOS</p>
<blockquote>
<p>The setup and automation works for my specific scenarios, environment and threat model. Your mileage may vary.</p></blockquote>
<h2 class="heading" id="software-required">
  Software required
  <a class="anchor" href="#software-required">#</a>
</h2>
<p>Once you have the Yubikeys, the following are the quintessential software to work with Yubikeys -</p>
<ol>
<li><a href="https://www.yubico.com/support/download/yubikey-manager/">Yubikey Manager</a> - configure FIDO2, OTP and PIV functionality on your YubiKey</li>
<li><a href="https://developers.yubico.com/yubikey-manager/">YubiKey Manager CLI (ykman)</a> - Because CLI is the way to automate</li>
<li><a href="https://www.yubico.com/products/yubico-authenticator/">Yubico Authenticator</a> - To work with TOTPs (Simply put, OTPs for which you use &ldquo;Authenticator&rdquo; apps)</li>
<li><a href="https://github.com/FiloSottile/yubikey-agent">yubikey-agent</a> - <code>ssh-agent</code> for YubiKeys</li>
</ol>
<h2 class="heading" id="working-with-time-based-one-time-passwords-totps">
  Working with Time based one time passwords (TOTPs)
  <a class="anchor" href="#working-with-time-based-one-time-passwords-totps">#</a>
</h2>
<p>You are in luck if the application you want to secure with MFA supports Yubikeys natively (FIDO2/FIDO U2F) such as Github etc. A lot of applications (VPNs, SSH MFA etc) do not support FIDO2/FIDO U2F and they support only TOTP that requires an Authenticator app on a secondary device (mobile phone).</p>
<p>Using Yubikeys, you can make your TOTP mechanism relatively more secure and usable by storing the TOTPs on the Yubikey that on the Authenticator app on a mobile or worse, using browser extensions like <a href="https://chrome.google.com/webstore/detail/authenticator/bhghoamapcdpbohphigoooaddinpkbai?hl=en">Autheticator</a> which nullify the security provided by MFA.</p>
<blockquote>
<p>Yubikeys + TOTPs are still not the best from usability PoV because you still have to retrieve the OTP from the Yubikey and enter the OTP but in my opinion, storing TOTP on Yubikey is a better storing on an app on mobile device</p></blockquote>
<ol>
<li>Install Yubico Authenticator on your mobile device and pair it with your Yubikey (I have a Yubikey with NFC so I do it via NFC)</li>
<li>Scan the QR code of your TOTP using Yubico Authenticator, this will store the TOTP on the Yubikey</li>
<li>Alternatively, you can use <code>ykman</code> to add a TOTP to your Yubikey (<a href="https://docs.yubico.com/software/yubikey/tools/ykman/OATH_Commands.html">https://docs.yubico.com/software/yubikey/tools/ykman/OATH_Commands.html</a>)</li>
</ol>
<div class="highlight"><pre tabindex="0" style="background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ykman oath access change <span style="color:#888;font-style:italic"># set password for OATH codes access </span>
</span></span><span style="display:flex;"><span>ykman oath accounts add &lt;NAME&gt; --touch<span style="color:#666;font-style:italic">`</span> <span style="color:#888;font-style:italic"># Add an OATH TOTP to Yubikey</span>
</span></span></code></pre></div><ol>
<li>You can not read the code on the Yubikey using <code>ykman oath accounts code &lt;NAME&gt;</code></li>
<li>You can automate the above process by using bash functions (or alias) added to your shell config (<code>.zshrc</code> for ZSH)</li>
</ol>
<div class="highlight"><pre tabindex="0" style="background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>my-vpn-otp () {
</span></span><span style="display:flex;"><span>    <span style="font-weight:bold;font-style:italic">echo</span> <span style="color:#666;font-style:italic">&#34;Generating OTP for VPN&#34;</span>
</span></span><span style="display:flex;"><span>    ykman oath accounts code &lt;NAME&gt; | cut -d <span style="color:#666;font-style:italic">&#34; &#34;</span> -f 3 | pbcopy
</span></span><span style="display:flex;"><span>    <span style="font-weight:bold;font-style:italic">echo</span> <span style="color:#666;font-style:italic">&#34;Code copied to clipboard!&#34;</span>
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><h2 class="heading" id="hardware-backed-yubikey-ssh-authentication">
  Hardware-backed (yubikey) SSH authentication
  <a class="anchor" href="#hardware-backed-yubikey-ssh-authentication">#</a>
</h2>
<p>You can secure your SSH autnetication by using Yubikeys for hardware based authentication. You can secure SSH private keys with the YubiKey by importing them or generating the private key directly on the YubiKey. Private keys cannot be exported or extracted from the YubiKey.</p>
<p><a href="https://developers.yubico.com/SSH/">https://developers.yubico.com/SSH/</a></p>
<p>OpenSSH version 8.2p1 added support for FIDO hardware authenticators. FIDO devices are supported by the public key types “ecdsa-sk” and “ed25519-sk&quot;, along with corresponding certificate types.</p>
<div class="highlight"><pre tabindex="0" style="background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ssh-keygen -t ecdsa-sk -O resident
</span></span></code></pre></div><p>The easiest way of setting up SSH key based authentication is using <a href="https://github.com/FiloSottile/yubikey-agent">yubikey-agent</a>.</p>
<p>Just install <code>yubikey-agent</code> and run <code>yubikey-agent -setup</code>, you are good to go!</p>
<h2 class="heading" id="other-tips">
  Other tips
  <a class="anchor" href="#other-tips">#</a>
</h2>
<ul>
<li>You can remember the OATH TOTP password for Yubikey for a given session using <code>ykman oath access remember</code></li>
</ul>
<h2 class="heading" id="better-blogs-on-the-same-topic">
  Better blogs on the same topic
  <a class="anchor" href="#better-blogs-on-the-same-topic">#</a>
</h2>
<ul>
<li><a href="https://github.com/drduh/YubiKey-Guide">https://github.com/drduh/YubiKey-Guide</a></li>
<li><a href="https://debugging.works/blog/yubikey-cheatsheet/">https://debugging.works/blog/yubikey-cheatsheet/</a></li>
<li><a href="https://felixhammerl.com/2022/08/29/yubikey-madness.html">https://felixhammerl.com/2022/08/29/yubikey-madness.html</a></li>
<li><a href="https://gist.github.com/reanim8ed/35a998b018f976e1189fe7266b2d1a43">https://gist.github.com/reanim8ed/35a998b018f976e1189fe7266b2d1a43</a></li>
<li><a href="https://www.dzombak.com/blog/2021/02/Securing-my-personal-SSH-infrastructure-with-Yubikeys.html">https://www.dzombak.com/blog/2021/02/Securing-my-personal-SSH-infrastructure-with-Yubikeys.html</a></li>
</ul>
]]></description>
    </item><item>
      <title>Effective OpenSSH Client Usage</title>
      <link>https://disruptivelabs.in/trainings/effective-openssh-client-usage/</link>
      <pubDate>Mon, 03 Apr 2023 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/trainings/effective-openssh-client-usage/</guid>
      <description><![CDATA[<p><strong>License:</strong> <a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode">Creative Commons Attribution-Share Alike 4.0 International License</a></p>
<p><strong>Creator:</strong> <a href="https://twitter.com/0xbharath">Bharath</a></p>
<p><strong>Recommended Class Duration:</strong> 2 hours</p>
<p><strong>Class content:</strong> Documentation &amp; Labs at <a href="https://github.com/0xbharath/Effective-OpenSSH-Client-Usage-Workshop/">https://github.com/0xbharath/Effective-OpenSSH-Client-Usage-Workshop/</a></p>
]]></description>
    </item><item>
      <title>FRida Unleashed - Scratching beneath the surface of bug bounties</title>
      <link>https://disruptivelabs.in/talks/frida-unleashed-threatcon/</link>
      <pubDate>Sat, 15 Oct 2022 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/talks/frida-unleashed-threatcon/</guid>
      <description><![CDATA[<p><strong>Talk title:</strong> FRida Unleashed - Scratching beneath the surface of bug bounties</p>
<p><strong>Conference:</strong> ThreatCon | 15th Sep 2022 | Kathmandu, Nepal</p>
<p><strong>Slides Deck:</strong> <a href="https://speakerdeck.com/0xbharath/frida-unleashed-scratching-beneath-the-surface-of-bug-bounties">https://speakerdeck.com/0xbharath/frida-unleashed-scratching-beneath-the-surface-of-bug-bounties</a></p>
]]></description>
    </item><item>
      <title> An attacker’s guide to AWS Access Keys</title>
      <link>https://disruptivelabs.in/talks/attackers-guide-to-aws-access-keys/</link>
      <pubDate>Sat, 27 Aug 2022 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/talks/attackers-guide-to-aws-access-keys/</guid>
      <description><![CDATA[<p><strong>Talk title:</strong>  An attacker’s guide to AWS Access Keys</p>
<p><strong>Conference:</strong> Webinar</p>
<p><strong>Slides deck:</strong> <a href="https://speakerdeck.com/0xbharath/an-attackers-guide-to-aws-access-keys">https://speakerdeck.com/0xbharath/an-attackers-guide-to-aws-access-keys</a></p>
]]></description>
    </item><item>
      <title>Attacking CloudGoat 2</title>
      <link>https://disruptivelabs.in/trainings/attacking-cloudgoat2/</link>
      <pubDate>Tue, 28 Apr 2020 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/trainings/attacking-cloudgoat2/</guid>
      <description><![CDATA[<p><strong>License:</strong> <a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode">Creative Commons Attribution-Share Alike 4.0 International License</a></p>
<p><strong>Creator:</strong> <a href="https://twitter.com/0xbharath">Bharath</a></p>
<p><strong>Recommended Class Duration:</strong> 4 hours</p>
<p><strong>Class content:</strong> Documentation &amp; Labs at <a href="https://github.com/appsecco/attacking-cloudgoat2">https://github.com/appsecco/attacking-cloudgoat2</a></p>
]]></description>
    </item><item>
      <title>CLI on steroids: Productivity boost on the linux command-line</title>
      <link>https://disruptivelabs.in/posts/cli-on-steroids/</link>
      <pubDate>Tue, 02 Apr 2019 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/posts/cli-on-steroids/</guid>
      <description><![CDATA[<blockquote>
<p>This post is inspired by a post by Remy Sharp at <a href="https://remysharp.com/2018/08/23/cli-improved">https://remysharp.com/2018/08/23/cli-improved</a></p>
<p>Please read that blog post as I won&rsquo;t repeat some tools mentioned in that blog</p></blockquote>
<p>If you use *nix OS then you&rsquo;ll find yourself using command-line more often than not. I find myself using the command-line majority of the time and I prefer using CLI over GUI. Linux command-line by default has tools that are mature and powerful to get most tasks done.</p>
<p>Over the years, I have picked up various tools that are not available by default in Linux command-line. I use these tools extensively to improve my CLI experience and stay productivity.</p>
<p>In this blog post, I&rsquo;ll list various tools that I use to improve my CLI experience. I&rsquo;ll try not to repeat the tools mentioned in Remy blog post unless necessary.</p>
<h2 class="heading" id="fzf--ctrlr">
  fzf &gt; ctrl+r
  <a class="anchor" href="#fzf--ctrlr">#</a>
</h2>
<p>In terminal, <code>ctrl+r</code> is used to search through history but I found <code>ctrl+r</code> to be not intutive. <code>fzf</code> is a great alternative to <code>ctrl+r</code>.</p>
<p><strong>Project page</strong>: <a href="https://github.com/junegunn/fzf">https://github.com/junegunn/fzf</a></p>
<p>Remy blog covers this tool: <a href="https://remysharp.com/2018/08/23/cli-improved#fzf--ctrlr">https://remysharp.com/2018/08/23/cli-improved#fzf--ctrlr</a></p>
<h2 class="heading" id="zoxide--fasd--cd">
  zoxide &gt; <del>fasd</del> &gt; cd
  <a class="anchor" href="#zoxide--fasd--cd">#</a>
</h2>
<blockquote>
<p>This section recommended <a href="https://github.com/clvv/fasd">fasd</a> in the past but the project is deprecated. Use <code>zoxide</code> instead.</p></blockquote>
<p><strong>Project page</strong>: <a href="https://github.com/ajeetdsouza/zoxide">https://github.com/ajeetdsouza/zoxide</a></p>
<p>Traversing directories is one of the most tedious things to do on the command-line. <code>zoxide</code> boosts your productivity by offering ways to quickly access to files and directories.</p>
<p>Zoxide ranks files and directories by &ldquo;frecency,&rdquo; that is, by both &ldquo;frequency&rdquo; and &ldquo;recency&rdquo;</p>
<p>Zoxide defines various powerful commands but I tend to use the following commands frequently</p>
<ul>
<li><code>z &lt;keyword&gt;</code>: To quickly switch to the highest weightage directory with the keyword</li>
<li><code>zi &lt;keyword&gt;</code>: List of all directories with the keyword and their corresponding weightage</li>
<li><code>zoxide add &lt;dir&gt;</code>: Add a specific directory to <code>zoxide</code></li>
</ul>
<blockquote>
<p><code>zoxide</code> required <code>fzf</code> as a prerequisite.</p></blockquote>
<h2 class="heading" id="fd--find">
  fd &gt; find
  <a class="anchor" href="#fd--find">#</a>
</h2>
<p><code>find</code> is a command to find files. Although powerful, it is a struggle to remember the syntax for the <code>find</code> command.</p>
<p><code>fd</code> is a great replacement for <code>find</code>. The command suntax is straight forward and covers all the common use cases.</p>
<p>Remy blog covers this tool - <a href="https://remysharp.com/2018/08/23/cli-improved#fd--find">https://remysharp.com/2018/08/23/cli-improved#fd--find</a></p>
<h2 class="heading" id="trippy--mtr--traceroute">
  trippy &gt; <del>mtr</del> &gt; traceroute
  <a class="anchor" href="#trippy--mtr--traceroute">#</a>
</h2>
<blockquote>
<p>This section recommended <a href="http://www.bitwizard.nl/mtr/">mtr</a> in the past but I have started to use <code>trippy</code> often. <code>mtr</code> and <code>trippy</code> are great tools solving the same problem.</p></blockquote>
<p><strong>Project page</strong>: <a href="https://github.com/fujiapple852/trippy">https://github.com/fujiapple852/trippy</a></p>
<p><code>trippy</code> is a combination <code>traceroute</code> and <code>ping</code> functionalities. It is quite handy when diagonising network issues.</p>
<pre tabindex="0"><code>trip disruptivelabs.in
</code></pre><h2 class="heading" id="nnn--ranger--gui-file-managers">
  nnn &gt; ranger &gt; GUI file managers
  <a class="anchor" href="#nnn--ranger--gui-file-managers">#</a>
</h2>
<p><strong>Project page</strong> : <a href="https://github.com/jarun/nnn">https://github.com/jarun/nnn</a></p>
<p><strong>Installation</strong> - <a href="https://github.com/jarun/nnn#installation">https://github.com/jarun/nnn#installation</a></p>
<p><code>nnn</code> is blazing fast and lightweight CLI file manager. I also like <a href="https://github.com/ranger/ranger">ranger</a> as an alternative but <code>nnn</code> flow feels more natural and faster.</p>
<h2 class="heading" id="socat--netcat">
  Socat &gt; Netcat
  <a class="anchor" href="#socat--netcat">#</a>
</h2>
<p><strong>Project page</strong> : <a href="http://www.dest-unreach.org/socat/">http://www.dest-unreach.org/socat/</a></p>
<p>This one is might be a little obscure. I do security assessments and often I need to use tools that connect to different hosts/ports and also forward ports etc.</p>
<p><code>socat</code> is an incredibly powerful tool for network relays, forwarding ports etc. It supports IPv6 and SSL. Socat has strange syntax but once you get hold of the syntax, you can do magic with <code>socat</code>.</p>
<h2 class="heading" id="jq">
  jq
  <a class="anchor" href="#jq">#</a>
</h2>
<p><strong>Project page</strong> : <a href="https://stedolan.github.io/jq/">https://stedolan.github.io/jq/</a></p>
<p><strong>Installation</strong> - <a href="https://stedolan.github.io/jq/download/">https://stedolan.github.io/jq/download/</a></p>
<p>JSON has become defacto format for data exchange. <code>jq</code> is a command-line JSON processor which is quite handy while working with JSON streams. The syntax is a little tricky to get hold of though</p>
<div class="highlight"><pre tabindex="0" style="background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -s <span style="color:#666;font-style:italic">&#39;https://api.github.com/repos/stedolan/jq/commits?per_page=5&#39;</span> | jq .
</span></span></code></pre></div><h2 class="heading" id="tig--git">
  Tig ~ Git
  <a class="anchor" href="#tig--git">#</a>
</h2>
<p><strong>Project page</strong> : <a href="https://github.com/jonas/tig">https://github.com/jonas/tig</a></p>
<p><strong>Installation</strong> - <a href="https://github.com/jonas/tig/blob/master/INSTALL.adoc">https://github.com/jonas/tig/blob/master/INSTALL.adoc</a></p>
<p><code>tig</code> is a great compliment to <code>git</code>. <code>tig</code> makes <code>git</code> through CLI more intutive.</p>
<p>I use the following <code>tig</code> commands often -</p>
<ol>
<li><code>tig</code> - equivalent of <code>git log</code></li>
<li><code>tig status</code> - qquivalent of <code>git status</code> but cleaner and interactive</li>
<li><code>tig refs</code> - equivalent of <code>git tag -n</code></li>
</ol>
<h2 class="heading" id="other-mentions">
  Other mentions
  <a class="anchor" href="#other-mentions">#</a>
</h2>
<ul>
<li><a href="https://i3wm.org/">i3wm</a> Powerful, resource efficient, productive tiling window manager. The learning curve is steep but totally worth it. Customisation is the key.</li>
<li><a href="https://ohmyz.sh/">Oh My Zsh</a> Glorified Bash. I find that using <code>zsh</code> &amp; <code>Oh My Zsh</code> make me relatively productive</li>
<li><a href="https://terminator-gtk3.readthedocs.io/">Terminator</a> Linux terminal on steroids with tabs, layouts and shortcuts etc</li>
<li><a href="https://httpie.org/">HTTPie</a> <code>curl</code> for humans</li>
<li><a href="https://github.com/direnv/direnv">direnv</a> Manages directory specific environments</li>
<li><a href="https://asciinema.org/">asciinema</a> Tool to record and share a terminal session (Not videos)</li>
</ul>
<h2 class="heading" id="references">
  References
  <a class="anchor" href="#references">#</a>
</h2>
<ul>
<li><a href="https://github.com/alebcay/awesome-shell">https://github.com/alebcay/awesome-shell</a></li>
<li><a href="https://github.com/BurntSushi">https://github.com/BurntSushi</a></li>
<li><a href="https://www.atlassian.com/blog/git/git-tig">https://www.atlassian.com/blog/git/git-tig</a></li>
<li><a href="http://jonas.nitro.dk/tig/manual.html">http://jonas.nitro.dk/tig/manual.html</a></li>
<li><a href="https://blog.dnsimple.com/2017/07/ag-a-better-unix-search-tool/">https://blog.dnsimple.com/2017/07/ag-a-better-unix-search-tool/</a></li>
</ul>
]]></description>
    </item><item>
      <title>Intro to Browser security policies/features</title>
      <link>https://disruptivelabs.in/talks/intro-browser-security/</link>
      <pubDate>Sat, 17 Nov 2018 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/talks/intro-browser-security/</guid>
      <description><![CDATA[<p><strong>Talk title:</strong> Intro to Browser security policies/features</p>
<p><strong>Conference:</strong> Null Bangalore | 17th November 2018</p>
<p><strong>Slides Deck:</strong> <a href="https://speakerdeck.com/0xbharath/features">https://speakerdeck.com/0xbharath/features</a></p>
]]></description>
    </item><item>
      <title>Static Analysis of Client-Side JavaScript for pen testers</title>
      <link>https://disruptivelabs.in/posts/static-analysis-javascript/</link>
      <pubDate>Sat, 22 Sep 2018 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/posts/static-analysis-javascript/</guid>
      <description><![CDATA[<p>A blog post on performing static analysis of client-side JavaScript code for pen testers and bug bounty hunters.</p>
<p><a href="https://blog.appsecco.com/static-analysis-of-client-side-javascript-for-pen-testers-and-bug-bounty-hunters-f1cb1a5d5288">https://blog.appsecco.com/static-analysis-of-client-side-javascript-for-pen-testers-and-bug-bounty-hunters-f1cb1a5d5288</a></p>
]]></description>
    </item><item>
      <title>Open Source Intelligence Gathering 201</title>
      <link>https://disruptivelabs.in/posts/osint201/</link>
      <pubDate>Thu, 06 Sep 2018 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/posts/osint201/</guid>
      <description><![CDATA[<p>A blog post on Open Source Intelligence Gathering techniques</p>
<p><a href="https://blog.appsecco.com/open-source-intelligence-gathering-201-covering-12-additional-techniques-b76417b5a544">https://blog.appsecco.com/open-source-intelligence-gathering-201-covering-12-additional-techniques-b76417b5a544</a></p>
]]></description>
    </item><item>
      <title>Practical recon techniques for bug hunters &amp; pen testers</title>
      <link>https://disruptivelabs.in/talks/bugcrowd-levelup-practical-recon/</link>
      <pubDate>Sat, 26 May 2018 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/talks/bugcrowd-levelup-practical-recon/</guid>
      <description><![CDATA[<p><strong>Talk title:</strong> Practical recon techniques for bug hunters &amp; pen testers</p>
<p><strong>Conference:</strong> Bugcrowd LevelUp 0x02 | 26th May 2018 | Online</p>
<p><strong>Github repo:</strong> <a href="https://github.com/appsecco/practical-recon-levelup0x02">https://github.com/appsecco/practical-recon-levelup0x02</a></p>
<p><strong>Slides Deck:</strong> <a href="https://speakerdeck.com/0xbharath/practical-recon-techniques-for-bug-hunters-and-pentesters">https://speakerdeck.com/0xbharath/practical-recon-techniques-for-bug-hunters-and-pentesters</a></p>
<p><strong>Video:</strong> <a href="https://youtu.be/McLdm4c1oLs">https://youtu.be/McLdm4c1oLs</a></p>
]]></description>
    </item><item>
      <title>A quick primer on encoding &amp; decoding</title>
      <link>https://disruptivelabs.in/posts/encoding-decoding/</link>
      <pubDate>Sat, 21 Apr 2018 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/posts/encoding-decoding/</guid>
      <description><![CDATA[<p>This blog post tries to be a quick and practical primer on encoding and decoding schemes for security testers.</p>
<p><a href="https://medium.com/disruptive-labs/a-quick-primer-on-encoding-decoding-for-security-folks-a021afd98fbe">https://medium.com/disruptive-labs/a-quick-primer-on-encoding-decoding-for-security-folks-a021afd98fbe</a></p>
]]></description>
    </item><item>
      <title>Understanding Windows Management Instrumentation(WMI)</title>
      <link>https://disruptivelabs.in/talks/understanding-wmi/</link>
      <pubDate>Sat, 10 Mar 2018 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/talks/understanding-wmi/</guid>
      <description><![CDATA[<p><strong>Talk title:</strong> Understanding Windows Management Instrumentation(WMI)</p>
<p><strong>Conference:</strong> Null Bangalore | 10th March 2018</p>
<p><strong>Talk repo:</strong> <a href="https://github.com/0xbharath/understanding-wmi/">https://github.com/0xbharath/understanding-wmi/</a></p>
<p><strong>Slides deck</strong> <a href="https://speakerdeck.com/0xbharath/understanding-windows-management-instrumentation-wmi">https://speakerdeck.com/0xbharath/understanding-windows-management-instrumentation-wmi</a></p>
]]></description>
    </item><item>
      <title>Hunting publicly accessible DigitalOcean Spaces</title>
      <link>https://disruptivelabs.in/posts/hunting-digitalocean-spaces/</link>
      <pubDate>Mon, 27 Nov 2017 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/posts/hunting-digitalocean-spaces/</guid>
      <description><![CDATA[<p>A blog post on <code>Spaces Finder</code>, a tool to hunt publicly accessible DigitalOcean Spaces.</p>
<p><a href="https://blog.appsecco.com/hunting-publicly-accessible-digitalocean-spaces-for-pentesters-9516a4cd3c87">https://blog.appsecco.com/hunting-publicly-accessible-digitalocean-spaces-for-pentesters-9516a4cd3c87</a></p>
]]></description>
    </item><item>
      <title>Doing recon like it&#39;s 2017</title>
      <link>https://disruptivelabs.in/talks/doing-recon-2017/</link>
      <pubDate>Fri, 27 Oct 2017 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/talks/doing-recon-2017/</guid>
      <description><![CDATA[<p><strong>Talk title:</strong> Doing recon like it&rsquo;s 2017</p>
<p><strong>Conference:</strong> Bsides Delhi | 27th Oct 2017</p>
<p><strong>Repo:</strong> <a href="https://github.com/appsecco/bsides-delhi-recon">https://github.com/appsecco/bsides-delhi-recon</a></p>
]]></description>
    </item><item>
      <title>A penetration tester’s guide to sub-domain enumeration</title>
      <link>https://disruptivelabs.in/posts/pentesters-guide-subdomain-enumeration/</link>
      <pubDate>Wed, 11 Oct 2017 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/posts/pentesters-guide-subdomain-enumeration/</guid>
      <description><![CDATA[<p>An extensive blog post on various sub-domain enumeration techniques:</p>
<p><a href="https://blog.appsecco.com/a-penetration-testers-guide-to-sub-domain-enumeration-7d842d5570f6">https://blog.appsecco.com/a-penetration-testers-guide-to-sub-domain-enumeration-7d842d5570f6</a></p>
]]></description>
    </item><item>
      <title>Certificate Transparency — The dark side</title>
      <link>https://disruptivelabs.in/posts/certificate-transparency-dark-side/</link>
      <pubDate>Fri, 15 Sep 2017 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/posts/certificate-transparency-dark-side/</guid>
      <description><![CDATA[<p>A blog post on the dark side of <code>Certificate Transparency</code>. This is the third post in a series of three technical posts on Certificate Transparency.</p>
<p><a href="https://blog.appsecco.com/certificate-transparency-part-3-the-dark-side-9d401809b025">https://blog.appsecco.com/certificate-transparency-part-3-the-dark-side-9d401809b025</a></p>
]]></description>
    </item><item>
      <title>Certificate Transparency — The bright side</title>
      <link>https://disruptivelabs.in/posts/certificate-transparency-bright-side/</link>
      <pubDate>Wed, 23 Aug 2017 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/posts/certificate-transparency-bright-side/</guid>
      <description><![CDATA[<p>A blog post on the bright side of <code>Certificate Transparency</code>. This is the second post in a series of three technical posts on Certificate Transparency.</p>
<p><a href="https://blog.appsecco.com/certificate-transparency-part-2-the-bright-side-c0b99ebf31a8">https://blog.appsecco.com/certificate-transparency-part-2-the-bright-side-c0b99ebf31a8</a></p>
]]></description>
    </item><item>
      <title>Certificate Transparency — The bright side and The dark side</title>
      <link>https://disruptivelabs.in/posts/certificate-transparency-bright-dark/</link>
      <pubDate>Mon, 07 Aug 2017 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/posts/certificate-transparency-bright-dark/</guid>
      <description><![CDATA[<p>A blog post on <code>Certificate Transparency</code>. This is the first post in a series of three technical posts on Certificate Transparency.</p>
<p><a href="https://blog.appsecco.com/certificate-transparency-the-bright-side-and-the-dark-side-8aa47d9a6616">https://blog.appsecco.com/certificate-transparency-the-bright-side-and-the-dark-side-8aa47d9a6616</a></p>
]]></description>
    </item><item>
      <title>Esoteric sub-domain enumeration techniques</title>
      <link>https://disruptivelabs.in/talks/bugcrowd-levelup-subdomain-enumeration/</link>
      <pubDate>Sat, 15 Jul 2017 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/talks/bugcrowd-levelup-subdomain-enumeration/</guid>
      <description><![CDATA[<p><strong>Talk title:</strong> Esoteric sub-domain enumeration techniques</p>
<p><strong>Conference:</strong> Bugcrowd LevelUp | 15th July 2017 | Online</p>
<p><strong>Github repo:</strong> <a href="https://github.com/appsecco/bugcrowd-levelup-subdomain-enumeration">https://github.com/appsecco/bugcrowd-levelup-subdomain-enumeration</a></p>
<p><strong>Slides Deck:</strong> <a href="https://speakerdeck.com/0xbharath/esoteric-sub-domain-enumeration-techniques">https://speakerdeck.com/0xbharath/esoteric-sub-domain-enumeration-techniques</a></p>
<p><strong>Video:</strong> <a href="https://www.youtube.com/watch?v=e_Gq99CKAys">https://www.youtube.com/watch?v=e_Gq99CKAys</a></p>
]]></description>
    </item><item>
      <title>DNS for penetration testers</title>
      <link>https://disruptivelabs.in/talks/dns-penetration-testers/</link>
      <pubDate>Sat, 17 Jun 2017 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/talks/dns-penetration-testers/</guid>
      <description><![CDATA[<p><strong>Talk title:</strong> DNS for penetration testers</p>
<p><strong>Conference:</strong> Null Bangalore | 17th June 2017</p>
<p><strong>Slides Deck:</strong> <a href="https://speakerdeck.com/0xbharath/dns-for-penetration-testers">https://speakerdeck.com/0xbharath/dns-for-penetration-testers</a></p>
]]></description>
    </item><item>
      <title>VirtualBox’s little secret: command-line</title>
      <link>https://disruptivelabs.in/posts/virtualbox-little-secret-command-line/</link>
      <pubDate>Wed, 07 Jun 2017 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/posts/virtualbox-little-secret-command-line/</guid>
      <description><![CDATA[<p>A blog post on the dark side of <code>vboxmanage</code>, VirtualBox&rsquo;s command-line utility and how you can leverage it to automate your workshop setup.</p>
<p><a href="https://medium.com/disruptive-labs/virtualboxs-little-secret-command-line-924442d9a2dc">https://medium.com/disruptive-labs/virtualboxs-little-secret-command-line-924442d9a2dc</a></p>
]]></description>
    </item><item>
      <title>IPv6 for penetration testers</title>
      <link>https://disruptivelabs.in/talks/ipv6-for-penetration-testers/</link>
      <pubDate>Sat, 17 Dec 2016 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/talks/ipv6-for-penetration-testers/</guid>
      <description><![CDATA[<p><strong>Talk title:</strong> IPv6 for penetration testers</p>
<p><strong>Conference:</strong> Null Bangalore | 17th Dec 2017</p>
<p><strong>Slides Deck:</strong> <a href="https://speakerdeck.com/0xbharath/pentesting-ipv6-networks">https://speakerdeck.com/0xbharath/pentesting-ipv6-networks</a></p>
]]></description>
    </item><item>
      <title>The Art of Packet Crafting with Scapy</title>
      <link>https://disruptivelabs.in/trainings/packet-crafting-scapy/</link>
      <pubDate>Tue, 04 Oct 2016 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/trainings/packet-crafting-scapy/</guid>
      <description><![CDATA[<p><strong>License:</strong> <a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode">Creative Commons Attribution-Share Alike 4.0 International License</a> for notes and <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 License</a> for code.</p>
<p><strong>Creator:</strong> <a href="https://twitter.com/0xbharath">Bharath</a></p>
<p><strong>Class Pre-requisites:</strong> <a href="../python-programming-foundations">Python programming: Foundations</a>  / <a href="https://developers.google.com/edu/python/">Google&rsquo;s Python Class</a> / <a href="https://cs.stanford.edu/people/nick/python-in-one-easy-lesson/">Python in one easy lesson</a> or equivalent.</p>
<p><strong>Lab setup:</strong> The VM&rsquo;s used for workshop are available at <a href="https://archive.org/details/pysos_class3_labs_32bit.7z">https://archive.org/details/pysos_class3_labs_32bit.7z</a></p>
<p><strong>Recommended Class Duration:</strong> 1-2 days</p>
<p><strong>Class Notes:</strong> <a href="https://scapy.disruptivelabs.in">https://scapy.disruptivelabs.in</a></p>
]]></description>
    </item><item>
      <title>Network programming in Python</title>
      <link>https://disruptivelabs.in/trainings/python-network-programming/</link>
      <pubDate>Sun, 04 Sep 2016 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/trainings/python-network-programming/</guid>
      <description><![CDATA[<p><strong>License:</strong> <a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode">Creative Commons Attribution-Share Alike 4.0 International License</a> for notes and <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 License</a> for code.</p>
<p><strong>Creator:</strong> <a href="https://twitter.com/0xbharath_">Bharath</a></p>
<p><strong>Class Pre-requisites:</strong> <a href="../python-programming-foundations">Python programming: Foundations</a>  / <a href="https://developers.google.com/edu/python/">Google&rsquo;s Python Class</a> / <a href="https://cs.stanford.edu/people/nick/python-in-one-easy-lesson/">Python in one easy lesson</a> or equivalent.</p>
<p><strong>Lab setup:</strong> <a href="https://github.com/brandon-rhodes/fopnp/tree/m/playground">Network playground</a> by Brandon Rhodes</p>
<p><strong>Recommended Class Duration:</strong> 1-2 days</p>
<p><strong>Class Notes:</strong> <a href="https://0xbharath.github.io/python-network-programming">https://0xbharath.github.io/python-network-programming</a></p>
]]></description>
    </item><item>
      <title>IoT exploitation</title>
      <link>https://disruptivelabs.in/talks/iot-exploitation/</link>
      <pubDate>Sat, 13 Aug 2016 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/talks/iot-exploitation/</guid>
      <description><![CDATA[<p><strong>Talk title:</strong> IoT exploitation</p>
<p><strong>Conference:</strong> Null Bangalore | 13th Aug 2016</p>
<p><strong>Slides Deck:</strong> <a href="https://speakerdeck.com/0xbharath/iot-exploitation">https://speakerdeck.com/0xbharath/iot-exploitation</a></p>
]]></description>
    </item><item>
      <title>Python Programming Foundations</title>
      <link>https://disruptivelabs.in/trainings/python-programming-foundations/</link>
      <pubDate>Thu, 04 Aug 2016 00:00:00 +0000</pubDate><guid>https://disruptivelabs.in/trainings/python-programming-foundations/</guid>
      <description><![CDATA[<p><strong>License:</strong> <a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode">Creative Commons Attribution-Share Alike 4.0 International License</a> for notes and <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 License</a> for code.</p>
<p><strong>Creator:</strong> <a href="https://twitter.com/0xbharath_">Bharath</a></p>
<p><strong>Class Pre-requisites:</strong> Familiarity with some programming language(Not necessarily Python).</p>
<p><strong>Lab setup:</strong> Any machine with Python 2.7.x installed is enough to practice.</p>
<p><strong>Recommended Class Duration:</strong> 1-2 days</p>
<p><strong>Class Notes:</strong> <a href="https://0xbharath.github.io/python-foundations/">https://0xbharath.github.io/python-foundations/</a></p>
]]></description>
    </item></channel>
</rss>
