GreyNoise#
GreyNoise collects and analyzes the constant, widespread, opportunistic scan and attack traffic that hits every host on the public Internet. Mass scanners (Shodan, Censys), search engines, bots, worms, and crawlers fire indiscriminately at the IPv4 space. GreyNoise gives the operator a way to filter that noise out, so what is left is signal.
GreyNoise CLI#
Install and configure.
$ pip install greynoise
$ python setup.py install
$ greynoise setup --api-key <your-API-key>
Command options.
Command |
Description |
|---|---|
|
Run a GNQL structured query |
|
View account information |
|
List, create, delete, manage alerts |
|
Analyze IP addresses (log file, stdin) |
|
Send feedback to the GreyNoise team |
|
Filter noise from a log file or stdin |
|
Show help and exit |
|
Report one or more IPs as interesting |
|
Query all information on an IP |
|
Get PCAP for a given IP |
|
Check whether IPs are noise |
|
Start an interactive shell |
|
Configure API key |
|
Submit IDS signature |
|
Aggregate stats from a GNQL query |
|
Version and OS of GreyNoise |
Filter#
Strip noise IPs from a log file.
$ cat ips.txt | greynoise filter > non-noise-ips.txt
Analyze#
Enrich IPs with ASN, category, classification, country, OS, org, tags.
$ cat ips.txt | greynoise analyze
Stats#
$ greynoise stats "ip:113.88.161.0/24 classification:malicious"
GNQL#
IP data.
$ greynoise query "ip:<IPAddr or CIDR>"
$ greynoise query "ip:113.88.161.215"
$ greynoise query "113.88.161.0/24"
Classification.
$ greynoise query "classification:<type>"
$ greynoise query "classification:malicious"
First seen, last seen, actor, tags.
$ greynoise query "first_seen:<YYYY-MM-DD>"
$ greynoise query "last_seen:<YYYY-MM-DD>"
$ greynoise query "actor:censys"
$ greynoise query "198.108.0.0/16 actor:censys"
$ greynoise query "tags:<tag string>"
$ greynoise query "tags:avtech"
Metadata.
$ greynoise query "metadata.category:ISP"
$ greynoise query "metadata.country:turkey"
$ greynoise query "metadata.country_code:RU"
$ greynoise query "metadata.city:moscow"
$ greynoise query "metadata.organization:Yandex"
$ greynoise query "metadata.rdns:*yandex*"
$ greynoise query "metadata.asn:AS17974"
$ greynoise query "metadata.tor:true"
Raw data.
$ greynoise query "raw_data.scan.port:23"
$ greynoise query "raw_data.scan.protocol:udp"
$ greynoise query "raw_data.web.paths:*admin*"
$ greynoise query "raw_data.web.useragents:*baidu*"
$ greynoise query "raw_data.ja3.fingerprint:<JA3 hash>"
GreyNoise UI#
The web UI at https://viz.greynoise.io/ accepts the same query
fields directly (ip, classification, first_seen,
actor, tags, metadata.*, raw_data.*).