<?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:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Shodan - Shodan Blog]]></title><description><![CDATA[The latest news and developments for Shodan.]]></description><link>https://blog.shodan.io/</link><generator>Ghost 0.7</generator><lastBuildDate>Thu, 09 Apr 2026 23:26:40 GMT</lastBuildDate><atom:link href="https://blog.shodan.io/tag/shodan/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Trends in Internet Exposure]]></title><description><![CDATA[<blockquote>
  <p><strong>Edit</strong>: The original data for RDP in March, 2020 included IPv6 results whereas the historical analysis only looked at IPv4. I've changed the numbers to reflect the new counts. Tl;dr: we're still seeing growth but significantly less than before.</p>
</blockquote>

<p>More companies are going remote due to COVID-19 and as</p>]]></description><link>https://blog.shodan.io/trends-in-internet-exposure/</link><guid isPermaLink="false">e751b30d-dce7-488c-881a-0144dd1b486c</guid><category><![CDATA[research]]></category><category><![CDATA[Shodan]]></category><dc:creator><![CDATA[John Matherly]]></dc:creator><pubDate>Mon, 30 Mar 2020 00:06:18 GMT</pubDate><media:content url="http://blog.shodan.io/content/images/2020/03/ics-map-2020.png" medium="image"/><content:encoded><![CDATA[<blockquote>
  <img src="http://blog.shodan.io/content/images/2020/03/ics-map-2020.png" alt="Trends in Internet Exposure"><p><strong>Edit</strong>: The original data for RDP in March, 2020 included IPv6 results whereas the historical analysis only looked at IPv4. I've changed the numbers to reflect the new counts. Tl;dr: we're still seeing growth but significantly less than before.</p>
</blockquote>

<p>More companies are going remote due to COVID-19 and as a result there's been a lot of speculation around how this impacts the exposure of companies and the Internet as a whole (in terms of publicly-accessible services). I was actually already working on creating trends for various services due to a presentation I gave late last year so let me share with you some updated charts on how the Internet has evolved over the past few years (up to March 29, 2020).</p>

<h4 id="methodology">Methodology</h4>

<p>Just quickly I'll mention a bit about how the data itself is generated:</p>

<ol>
<li>Shodan infrastructure is globally distributed to prevent being geographically biased  </li>
<li>Crawlers run 24/7 and don't do sweeps of IP ranges the same way a network scanner would  </li>
<li>Crawlers attempt full protocol-specific handshakes to validate that a port is responding. Depending on the protocol Shodan also performs additional steps to validate the response. For example, in the case of RDP the crawlers grab a screenshot, perform OCR on that screenshot and do a variety of basic security checks.</li>
</ol>

<h5 id="timeframe">Timeframe</h5>

<p>Shodan keeps a full history of every IP in the Internet that it's ever seen. We store that archive in a variety of formats and for this purpose I reprocessed our data going back to the beginning of 2017. You can also access that historical data via the <a href="https://help.shodan.io/developer-fundamentals/looking-up-ip-info">API, CLI, </a> or the new <a href="https://beta.shodan.io">beta website</a>.</p>

<h5 id="aggregation">Aggregation</h5>

<p>I binned the results by unique IPs per month for each port/ tag. This means that data is not based on point-in-time scans but rather an aggregate view of the active IPs during a month.</p>

<h4 id="remotedesktop">Remote Desktop</h4>

<p>The Remote Desktop Protocol (RDP) is a common way for Windows users to remotely manage their workstation or server. However, it has a history of security issues and generally shouldn't be publicly accessible without any other protections (ex. firewall whitelist, 2FA).</p>

<p><img src="https://blog.shodan.io/content/images/2020/04/Shodan---Remote-Desktop-Port.png" alt="Trends in Internet Exposure"></p>

<p>The number of devices exposing RDP to the Internet has grown over the past month which makes sense given how many organizations are moving to remote work.</p>

<p>It's surprising how the number of RDP instances actually went up after the initial Microsoft bulletin on Bluekeep in May 2019. And then it dropped sharply in August once a series of issues were revealed (DejaBlue) that impacted newer versions of RDP.</p>

<p>A common tactic we've seen in the past by IT departments is to put an insecure service on a non-standard port (aka <a href="https://blog.shodan.io/hiding-in-plain-sight/">security by obscurity</a>). To that point, this is how the exposure for RDP looks like on an alternate port (3388) that we've seen organizations use:</p>

<p><img src="https://blog.shodan.io/content/images/2020/04/Shodan---Remote-Desktop-Port--3388-.png" alt="Trends in Internet Exposure"></p>

<p>It follows very similar growth as seen for the standard port (3389). The last thing I wanted to point out is that 8% of the results remain vulnerable to BlueKeep (CVE-2019-0708).</p>

<h4 id="vpns">VPNs</h4>

<p><img src="https://blog.shodan.io/content/images/2020/04/Shodan---VPN-Exposure.png" alt="Trends in Internet Exposure"></p>

<p>The above chart encompasses a few different VPN protocols and ports (IKE, PPTP etc.). VPNs are a secure way to allow remote workers access to your network and it's not surprising to see that number grow as well the past month.</p>

<h4 id="industrialcontrolsystems">Industrial Control Systems</h4>

<p><img src="https://blog.shodan.io/content/images/2020/04/Shodan---Industrial-Control-Systems.png" alt="Trends in Internet Exposure"></p>

<p>We've observed significant growth in other protocols (HTTPS) but one of the important areas where we've seen a worrying increase in exposure is for industrial control systems (ICS). The growth is not as large as for other protocols but these are ICS protocols that don't have any authentication or security measures. We had actually seen a stagnation in the ICS exposure up until now. And there have been significant advancements in OT security so there are plenty of secure options to choose from.</p>

<p>We're also keeping our <a href="https://exposure.shodan.io">country-wide exposure dashboards</a> up-to-date if you'd like to see breakdowns by country.</p>

<h4 id="conclusion">Conclusion</h4>

<p>I hope the above data provides a more data-driven view of how the exposure of those ports has changed the past few years. There aren't any earth-shattering surprises in the data but it's good to validate what many already assumed. If you're an organization that is concerned with your Internet exposure and wants to keep track of what you have connected to the Internet then please check out our <a href="https://monitor.shodan.io">Shodan Monitor service</a>.</p>]]></content:encoded></item><item><title><![CDATA[Introducing the Shodan Real-Time Stream]]></title><description><![CDATA[<p>Do you want to keep an eye on the latest results coming into Shodan? Want to create your own custom data feeds? Or want to grab a few thousand random web servers for your research? Using the Streaming API from Shodan you can directly subscribe to the raw data feed</p>]]></description><link>https://blog.shodan.io/shodan-real-time-stream/</link><guid isPermaLink="false">05c71efa-c8a3-4183-8c9d-7ef1aa84e136</guid><category><![CDATA[API]]></category><category><![CDATA[Shodan]]></category><category><![CDATA[Firehose]]></category><category><![CDATA[Stream]]></category><category><![CDATA[Developers]]></category><dc:creator><![CDATA[John Matherly]]></dc:creator><pubDate>Thu, 23 Jul 2015 03:12:59 GMT</pubDate><media:content url="http://blog.shodan.io/content/images/2015/07/DsHZk.png" medium="image"/><content:encoded><![CDATA[<img src="http://blog.shodan.io/content/images/2015/07/DsHZk.png" alt="Introducing the Shodan Real-Time Stream"><p>Do you want to keep an eye on the latest results coming into Shodan? Want to create your own custom data feeds? Or want to grab a few thousand random web servers for your research? Using the Streaming API from Shodan you can directly subscribe to the raw data feed from the crawlers! The feed streams between 400-500 banners every second and depending on your API plan you have access to all or a fraction of it. And to get started with the stream you don't need any programming knowledge, just install the <a href="https://cli.shodan.io">Shodan command-line tool</a> and you're good to go. I've created a video that highlights some of the basic usage using the <strong>shodan</strong> command. Note that unless you use <strong>--limit</strong> or hit CTRL + C the stream will continue going forever:</p>

<script type="text/javascript" src="https://asciinema.org/a/23809.js" id="asciicast-23809" async></script>

<h4 id="shodanstream">shodan stream</h4>

<p>At the heart is the <strong>stream</strong> command that when run by itself will simply stream all data you have access to and print it to your terminal. It won't store the data anywhere or perform any operations on it. Use this command if you'd like to explore random IPs on the Internet.</p>

<h6 id="ports">--ports</h6>

<p>Often you're only interested in a certain type of service, and for those instances you can narrow down the stream using the <strong>--ports</strong> option. You can provide one port:</p>

<pre><code>shodan stream --ports 23
</code></pre>

<p>Or many ports:</p>

<pre><code>shodan stream --ports 23,1023
</code></pre>

<p>And without any other arguments it will once again just print the results to the terminal.</p>

<h6 id="datadir">--datadir</h6>

<p>Most of the time you also want to store the results so you're not throwing away information. To do so, simply create a directory and supply the <strong>--datadir</strong> option to the streaming command. This will result in the shodan tool storing the results from the stream in a file in the data folder, where the file name is the current date in YYYY-MM-DD.json.gz format:</p>

<pre><code>mkdir shodan-data
shodan stream --datadir shodan-data
</code></pre>

<p>This is useful so you can keep the streaming command running and every day a new file will automatically be created for you. And then you can use the <strong>shodan parse</strong> command to extract the information you care about.</p>

<h6 id="limit">--limit</h6>

<p>Sometimes you want to get a random sample of results. Lets say you'd like to see how many of the most recent 10,000 results are Nginx vs Apache vs Lighttpd etc. You can take periodic samplings to see how those trends change over time using your own computer. To get 10,000 web server results use the <strong>--limit</strong> option to make the stream command exit after it has received the provided number of results:</p>

<pre><code>shodan stream --limit 10000 --ports 80
</code></pre>

<p>The above command would filter the stream for web servers running on port 80 (<strong>--port 80</strong>) and it would exit after 10,000 results were received (<strong>--limit</strong>).</p>

<p>I use the real-time stream for a lot of my own research and I hope you'll find it useful as well! If you have any thoughts, questions or suggestions please let me know <a href="https://twitter.com/achillean">@achillean</a></p>]]></content:encoded></item></channel></rss>