/greynoise

Unofficial greynoise.io go client. WIP.

Primary LanguageGoGNU General Public License v3.0GPL-3.0

Unofficial Greynoise.io go client

This is a basic go client for the greynoise v2 api. Most endpoints are functional, but several are still to be implemented on they greynoise platform.

to get started:

go get -u github.com/securityclippy/greynoise

main.go

holds some basic examples of the endpoints and their associated functions

basic usage:

package main

import (
	"github.com/securityclippy/greynoise/client"
	"github.com/securityclippy/greynoise/conf"
)

func main() {
	config, err := conf.ReadConfig("config.json")
	if err != nil {
		logger.Fatal(err)
	}
	greyNoise := client.NewClient(config)

	// call endpoint call
	resp, err := greyNoise.MetaPing()
    if err != nil {
        log.Fatal(err)
    }

    // parse response body from *http.response returned by endpoints
    body, err := greyNoise.ParseResponse(resp)
    // print out response body
    log.Info(string(body))

endpoint implementation Status

NOTE: as noted by greynoise.io...

Many endpoints may be subject to change, not working fully or not yet implemented. Endpoints are a best-effort right now, but work unless noted. Some are currently not responding within a 5 minute timeout, but may work in future.

  • /v2/meta/ping
  • /v2/research/time_series/scan/{protoco}/{port} NOTE: currently not responding
  • /v2/research/time_series/http/path - (Greynoise - Not Yet Implemented)
  • /v2/research/time_series/http/useragent - (Greynoise - Not Yet Implemented)
  • /v2/research/tag/list
  • /v2/research/tag/combination
  • /v2/research/tag/single
  • /v2/research/ip/{ip}
  • /v2/research/raw/scan/{protocol}/{port} - (Greynoise - Not Yet Implemented)
  • /v2/research/raw/ip/{ip} - (Greynoise - Not Yet Implemented)
  • /v2/research/raw/http/path (Greynoise - Not Yet Implemented)
  • /v2/research/raw/http/useragent (Greynoise - Not Yet Implemented)
  • /v2/research/stats/top/scan
  • /v2/research/stats/top/http/path
  • /v2/research/stats/top/http/useragent
  • /v2/research/stats/top/org
  • /v2/research/stats/top/asn
  • /v2/research/stats/top/rdns
  • /v2/research/search/org NOTE: currently not responding
  • /v2/research/search/org/historical
  • /v2/research/actors NOTE: currently not responding
  • /v2/infections/cidr/{block}/{bits}
  • /v2/infections/asn/{asn} NOTE: currently not responding
  • /v2/infections/search/org NOTE: currently not responding
  • /v2/research/scanners/cidr/{block}/{bits}
  • /v2/research/scanners/asn/{asn} NOTE: currently not responding
  • /v2/research/ja3/fingerprint/{fingerprint}
  • /v2/research/ja3/ip/{ip}
  • /v2/enterprise/noise/quick/{ip}
  • /v2/enterprise/noise/multi/quick

TODO:

  • Unit Tests
  • update not-responding endpoints
  • add data types for endpoints