\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{sir\_slammington} \pdfinfo{ /Title (shodan.pdf) /Creator (Cheatography) /Author (sir\_slammington) /Subject (Shodan Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{076AA3} \definecolor{LightBackground}{HTML}{EFF5F9} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{Shodan Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{sir\_slammington} via \textcolor{DarkBackground}{\uline{cheatography.com/147122/cs/31955/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}sir\_slammington \\ \uline{cheatography.com/sir-slammington} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 2nd May, 2022.\\ Updated 2nd May, 2022.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{3} \begin{tabularx}{5.377cm}{x{1.24425 cm} x{3.73275 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Common General Search Filters}} \tn % Row 0 \SetRowColor{LightBackground} {\bf{ip:}} & Filter results by specific IP address. \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} {\bf{asn:}} & Filter results by specific ASN ID. \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} {\bf{hostname:}} & Filter results by specific hostname. \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} {\bf{port:}} & Filter results by specific port number of service. \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} {\bf{net:}} & Filter results from specified CIDR block. \tn % Row Count 10 (+ 2) % Row 5 \SetRowColor{white} {\bf{isp:}} & Filter results by devices assigned a particular address (space) from a specified ISP. \tn % Row Count 13 (+ 3) % Row 6 \SetRowColor{LightBackground} {\bf{city:}} & Filter results by specific city. \tn % Row Count 15 (+ 2) % Row 7 \SetRowColor{white} {\bf{country:}} & Filter results by specific two-digit country code. \tn % Row Count 17 (+ 2) % Row 8 \SetRowColor{LightBackground} {\bf{os:}} & Filter results by particular OS. \tn % Row Count 19 (+ 2) % Row 9 \SetRowColor{white} {\bf{product:}} & Filter results by particular software. \tn % Row Count 21 (+ 2) % Row 10 \SetRowColor{LightBackground} {\bf{version:}} & Filter results by specified version of software. \tn % Row Count 23 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{0.89586 cm} x{4.08114 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Common Premium API Search Filters}} \tn % Row 0 \SetRowColor{LightBackground} {\bf{vuln:}} & Filter results by particular vulnerability ID (commonly CVE). \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} {\bf{tag:}} & Filter results by tags on device. \tn % Row Count 4 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.59264 cm} x{3.38436 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{HTTP Filters}} \tn % Row 0 \SetRowColor{LightBackground} {\bf{http.component:}} & Filter results by a particular web technology. \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} {\bf{http.status:}} & Filter results by specific status code. \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} {\bf{http.html:}} & Filter results by strings found in HTML of files served. \tn % Row Count 7 (+ 3) % Row 3 \SetRowColor{white} {\bf{http.title:}} & Filter results by string found in title of web pages served. \tn % Row Count 10 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.29402 cm} x{3.68298 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Common CLI Commands}} \tn % Row 0 \SetRowColor{LightBackground} {\bf{count}} & Returns the number of results for a search. \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} {\bf{domain}} & View all available information for a domain. \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} {\bf{download}} & Download search results and save them in a compressed JSON file. \tn % Row Count 7 (+ 3) % Row 3 \SetRowColor{white} {\bf{honeyscore}} & Check whether the IP is a honeypot or not. \tn % Row Count 9 (+ 2) % Row 4 \SetRowColor{LightBackground} {\bf{host}} & View all available information for an IP address. \tn % Row Count 11 (+ 2) % Row 5 \SetRowColor{white} {\bf{parse}} & Extract information out of compressed JSON files. \tn % Row Count 13 (+ 2) % Row 6 \SetRowColor{LightBackground} {\bf{scan}} & Scan an IP/ netblock using Shodan. \tn % Row Count 15 (+ 2) % Row 7 \SetRowColor{white} {\bf{search}} & Search the Shodan database. \tn % Row Count 16 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{0.4977 cm} p{0.4977 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Common CLI Search Fields}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{{\bf{ip\_str}}} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{{\bf{port}}} \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{{\bf{org}}} \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{{\bf{hostnames}}} \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{{\bf{os}}} \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{{\bf{country}}} \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{{\bf{city}}} \tn % Row Count 7 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{These will display their values upon a search, but won't provide statistics.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{0.4977 cm} p{0.4977 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Common CLI Stats Facets}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{{\bf{asn}}} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{{\bf{city}}} \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{{\bf{country}}} \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{{\bf{cloud.provider}}} \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{{\bf{cloud.service}}} \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{{\bf{device}}} \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{{\bf{domain}}} \tn % Row Count 7 (+ 1) % Row 7 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{{\bf{ip}}} \tn % Row Count 8 (+ 1) % Row 8 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{{\bf{org}}} \tn % Row Count 9 (+ 1) % Row 9 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{{\bf{os}}} \tn % Row Count 10 (+ 1) % Row 10 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{{\bf{version}}} \tn % Row Count 11 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{These will return statistical information about a given series of devices found on the public facing Internet. For example, it could be used to return the most common version found among devices running MariaDB in a particular ASN.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.55618 cm} x{1.51041 cm} x{1.51041 cm} } \SetRowColor{DarkBackground} \mymulticolumn{3}{x{5.377cm}}{\bf\textcolor{white}{Use Case Examples}} \tn % Row 0 \SetRowColor{LightBackground} {\bf{host: 8.8.8.8}} & {\bf{shodan host 8.8.8.8}} & Display information about a Google's public DNS. \tn % Row Count 4 (+ 4) % Row 1 \SetRowColor{white} {\bf{asn:15169 product:mysql}} & {\bf{shodan stats asn:15169 product:mysql}} & Show information about devices within Google's ASN that run MySQL. \tn % Row Count 10 (+ 6) % Row 2 \SetRowColor{LightBackground} {\bf{microsoft iis 6.0}} & {\bf{shodan search -{}-fields ip\_str,port,org,hostnames microsoft iis 6.0}} & Detect IIS servers running on 6.0. \tn % Row Count 16 (+ 6) % Row 3 \SetRowColor{white} {\bf{Navigate to \seqsplit{https://honeyscore}.shodan.io/ and enter target IP.}} & {\bf{shodan honeyscore {[}TARGET{]}}} & Detect if given target is a honeypot or not. \tn % Row Count 22 (+ 6) \hhline{>{\arrayrulecolor{DarkBackground}}---} \SetRowColor{LightBackground} \mymulticolumn{3}{x{5.377cm}}{Column one is the search you would perform in the Web UI. Column two is the search you would perform using the CLI utility, and the third column is an explanation of the search.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}---} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}