shodan
$
npx mdskill add taracodlabs/aiden/shodanLooks up internet-connected devices and their exposed services using Shodan
- Finds open ports, services, and vulnerabilities on specific IPs or domains
- Uses the Shodan API to query indexed device metadata
- Matches user queries to Shodan search terms like IPs, services, or CVEs
- Returns structured device data including location, OS, and TLS info
SKILL.md
.github/skills/shodanView on GitHub ↗
---
name: shodan
description: "Shodan lookups: internet-connected devices, ports, services"
category: security
version: 1.0.0
license: Apache-2.0
origin: aiden
tags: security, shodan, osint, recon, ports, services, iot, asset-discovery, cve, infosec
env_required:
- SHODAN_API_KEY
---
# Shodan — Internet Device Search
Shodan indexes internet-connected devices and exposes metadata: open ports, running services, banners, TLS certificates, and known CVEs. Use it for security audits, reconnaissance, and asset discovery.
**Requires:** `SHODAN_API_KEY` — free tier at https://account.shodan.io (1 req/sec, 100 queries/month).
## When to Use
- User wants to know what ports/services are exposed on a specific IP
- User wants to find vulnerable systems of a specific type (e.g. exposed databases)
- User is doing a security audit and needs external exposure info
- User asks "what does Shodan show for IP X" or "find exposed Redis servers"
- Asset discovery: find all internet-exposed assets for a company/ASN
## How to Use
### Look up a specific IP address
```powershell
$ip = "8.8.8.8"
$key = $env:SHODAN_API_KEY
$url = "https://api.shodan.io/shodan/host/${ip}?key=${key}"
$host = Invoke-RestMethod -Uri $url
Write-Host "IP: $($host.ip_str)"
Write-Host "Organization: $($host.org)"
Write-Host "OS: $($host.os)"
Write-Host "Country: $($host.country_name)"
Write-Host "Open ports: $($host.ports -join ', ')"
Write-Host ""
Write-Host "Services:"
$host.data | ForEach-Object {
Write-Host " Port $($_.port)/$($_.transport) — $($_.product) $($_.version)"
}
```
### Search for exposed services by query
```powershell
$query = [Uri]::EscapeDataString("port:27017 product:MongoDB")
$key = $env:SHODAN_API_KEY
$url = "https://api.shodan.io/shodan/host/search?query=${query}&key=${key}"
$results = Invoke-RestMethod -Uri $url
Write-Host "Total results: $($results.total)"
$results.matches | Select-Object -First 10 | ForEach-Object {
Write-Host " $($_.ip_str):$($_.port) — $($_.org) ($($_.location.country_name))"
}
```
### Find CVEs on a host
```powershell
$ip = "TARGET_IP"
$key = $env:SHODAN_API_KEY
$host = Invoke-RestMethod -Uri "https://api.shodan.io/shodan/host/${ip}?key=${key}"
if ($host.vulns) {
Write-Host "CVEs found on ${ip}:"
$host.vulns.PSObject.Properties | ForEach-Object { Write-Host " $($_.Name)" }
} else {
Write-Host "No known CVEs found for ${ip}"
}
```
### Useful Shodan search filters
```
port:22 country:IN SSH servers in India
product:nginx version:1.14 Specific nginx version
org:"Amazon" Amazon-owned IPs
ssl.cert.subject.cn:*.example.com Certs for a domain
http.title:"Dashboard" port:80 Web dashboards on port 80
vuln:CVE-2021-44228 Log4Shell vulnerable hosts
```
## Examples
**"What is exposed on IP 1.2.3.4?"**
→ Use the host lookup. Shows open ports, services, OS.
**"Find all MongoDB servers with no auth"**
→ Query: `port:27017 product:MongoDB -authentication`
**"Search for Apache servers in India"**
→ Query: `product:Apache country:IN`
**"Does this IP have any known CVEs?"**
→ Use the CVE snippet above on the target IP.
## Cautions
- Free tier: 100 queries/month and 1 request/second — add `Start-Sleep -Milliseconds 1100` between bulk calls
- Shodan data is cached — it reflects the last scan date, not necessarily the current state
- Host lookups and scans data about publicly reachable services only — no active scanning is performed by this skill
- Never use Shodan results to attempt unauthorized access; this skill is for reconnaissance and awareness only
- The `vulns` field only appears when Shodan has matched CVE data to the service banner
## Requirements
- `SHODAN_API_KEY` — free account at https://account.shodan.io
More from taracodlabs/aiden
- ade-footerInstalled skill — add instructions here
- archon-bridgeUnified portfolio + order routing across Zerodha, Upstox, Angel One
- censysCensys lookups: hosts, certificates, services on the public internet
- clipboard-historyRead/write Windows clipboard text, HTML, images, history (PowerShell)
- code_executionRunning scripts and code on Windows
- create_txt_fileCreates a text file with specified content at a given path
- crt.shEnumerate subdomains and TLS certs via CT logs (no API key needed)
- currently_running_processesShow me my currently running processes.
- cveapiCVE lookup via MITRE + NVD: severity, CVSS, affected products, refs
- decrease_volume_littleDecreases the system volume by a small amount.