Skip to content

Commit 9e1ab42

Browse files
document getting and using GreyNoise Psychic data
1 parent 9003284 commit 9e1ab42

1 file changed

Lines changed: 40 additions & 0 deletions

File tree

README.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,46 @@ Example Output:
140140
{"ip":"1.1.1.1","spur":{"as":{"number":13335,"organization":"Cloudflare, Inc."},"infrastructure":"DATACENTER","ip":"1.1.1.1","location":{"city":"Anycast","country":"ZZ","state":"Anycast"},"organization":"Taguchi Digital Marketing System"}}
141141
```
142142

143+
### Greynoise Psychic
144+
[Greynoise](https://greynoise.io) is an IP intelligence feed that provides metadata like threat classification and associated CVE's.
145+
Their Psychic data downloads provide their data feed in a database suitable for offline data enrichment.
146+
To use their download with `zannotate`, you'll want to download an `.mmdb` formatted file using your GreyNoise API key.
147+
As of April 2026, signing up with a free account gives access to data downloads.
148+
149+
0. Sign up for a free GreyNoise account [here](https://www.greynoise.io).
150+
1. Copy API key from the appropriate [section of your account](https://viz.greynoise.io/workspace/api-key).
151+
2. Download a `mmdb` file. Details on download parameters
152+
(The below command is for downloading data for a single date - April 7th, 2026 - you can also download data for a range of days and for models of various levels of detail.
153+
See GreyNoise's Psychic [documentation](https://psychic.labs.greynoise.io) for more details.
154+
```shell
155+
curl -H "key: GREYNOISE_API_KEY_HERE" \
156+
https://psychic.labs.greynoise.io/v1/psychic/download/2026-04-07/3/mmdb \
157+
-o /tmp/m3.mmdb
158+
```
159+
160+
3. Test GreyNoise data enrichment:
161+
162+
> [!NOTE]
163+
> The below examples are using the exact data download from the above `curl` command. What results you see will depend on the data downloaded.
164+
165+
```shell
166+
echo "14.1.105.157" | zannotate --greynoise --greynoise-database=/tmp/m3.mmdb
167+
````
168+
Example Output:
169+
```json
170+
{"greynoise":{"classification":"malicious","cves":["CVE-2015-2051","CVE-2016-20016","CVE-2018-10561","CVE-2018-10562","CVE-2016-6277","CVE-2024-12847"],"date":"2026-04-07","handshake_complete":true,"last_seen":"2026-04-07T00:00:00Z","seen":true,"tags":["Mirai TCP Scanner","Mirai","Telnet Protocol","Generic IoT Default Password Attempt","Web Crawler","Generic Suspicious Linux Command in Request","HNAP Crawler","Telnet Login Attempt","D-Link Devices HNAP SOAPAction Header RCE Attempt","MVPower CCTV DVR RCE CVE-2016-20016 Attempt","JAWS Webserver RCE","GPON CVE-2018-10561 Router Worm","Generic ${IFS} Use in RCE Attempt","CCTV-DVR RCE","NETGEAR Command Injection CVE-2016-6277","NETGEAR DGN setup.cgi CVE-2024-12847 Command Execution Attempt","CGI Script Scanner"],"actor":"unknown"},"ip":"14.1.105.157"}
171+
```
172+
173+
Note that many IPs will not be in the GreyNoise dataset, so you may see output like the following:
174+
```shell
175+
echo "1.1.1.1" | zannotate --greynoise --greynoise-database=/tmp/m3.mmdb
176+
```
177+
178+
```json
179+
{"ip":"1.1.1.1","greynoise":null}
180+
```
181+
182+
143183
# Input/Output
144184

145185
## Output

0 commit comments

Comments
 (0)