
国/州のペアでCitrixアプライアンスのリストを収集し、CVE-2019-19781に対して脆弱かどうかを確認します。結果はJSONとして出力され、有意義なPowerBIレポートへと簡単に整形できます。
これは、検索文字列に一致する特定の国のすべての結果をShodanに問い合わせることで実現します。デフォルトでは、検索文字列"Set-Cookie: pwcount=0"を使用してcountry:AU has_ssl:trueを検索します。
脆弱性を確認するには、https://<HOST>/vpn/%2E%2E/vpns/cfg/smb.conf に対するHEADリクエストがステータス200を返すかどうかを確認します。これは、ディレクトリトラバーサルが許可されており、パッチや回避策がホストに適用されていないことを意味します。
発見されたホストの詳細を解決するために、GeoLite2 ASNおよびCity DBをダウンロードする必要があります。ダウンロードはこちら: https://dev.maxmind.com/geoip/geoip2/geolite2/
.mmdbファイルを、shitsniffer.pyを展開した場所の下にあるgeoliteという名前のフォルダに配置します。
usage: shitsniffer.py [-h] [-t TARGETHOST] [-f RESULTSFILE] [-d DATAFILE]
[-a APIKEY] [-c COUNTRY] [-s SEARCHSTRING] [-n]
[-l LIMIT]
OPTIONS:
-h, --help show this help message and exit
-t TARGETHOST, --targethost TARGETHOST
Host to check, will scan shodan if not specified
-f RESULTSFILE, --resultsfile RESULTSFILE
Where to save the scanner output json file
-d DATAFILE, --datafile DATAFILE
Path to save/load shodan data file (saves query
credits)
-a APIKEY, --apikey APIKEY
Your shodan.io API key
-c COUNTRY, --country COUNTRY
Country to search
-s SEARCHSTRING, --searchstring SEARCHSTRING
Additional search arguments
-n, --no-color Output without color
-l LIMIT, --limit LIMIT
Process this many hosts from shodan data
Example: python shitsniffer.py -a <API key> -d shodan-DDMMYY.json -f output-DDMMYY.json
この試みに没頭する時間を与えてくれたDiverse Servicesに感謝します。