criminalip

package
v0.0.0-...-324f9bf Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 28, 2024 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ProviderName      = "criminalip"
	APIURL            = "https://api.criminalip.io"
	HostIPPath        = "/v1/asset/ip/report"
	IndentPipeHyphens = " |-----"
	ResultTTL         = 24 * time.Hour
)

Variables

This section is empty.

Functions

func NewProviderClient

func NewProviderClient(c session.Session) (providers.ProviderClient, error)

Types

type Client

type Client struct {
	session.Session
}

func (*Client) CreateTable

func (c *Client) CreateTable(data []byte) (*table.Writer, error)

func (*Client) Enabled

func (c *Client) Enabled() bool

func (*Client) FindHost

func (c *Client) FindHost() ([]byte, error)

func (*Client) GenPortDataForTable

func (c *Client) GenPortDataForTable(in []PortDataEntry) (GeneratePortDataForTableOutput, error)

func (*Client) GetConfig

func (c *Client) GetConfig() *session.Session

func (*Client) Initialise

func (c *Client) Initialise() error

func (*Client) Priority

func (c *Client) Priority() int

type Config

type Config struct {
	session.Session
	Host   netip.Addr
	APIKey string
	// contains filtered or unexported fields
}

type GeneratePortDataForTableInput

type GeneratePortDataForTableInput struct{}

type GeneratePortDataForTableOutput

type GeneratePortDataForTableOutput struct {
	// contains filtered or unexported fields
}

type HostSearchResult

type HostSearchResult struct {
	Raw    []byte
	IP     string `json:"ip"`
	Issues struct {
		IsVpn          bool `json:"is_vpn"`
		IsCloud        bool `json:"is_cloud"`
		IsTor          bool `json:"is_tor"`
		IsProxy        bool `json:"is_proxy"`
		IsHosting      bool `json:"is_hosting"`
		IsMobile       bool `json:"is_mobile"`
		IsDarkweb      bool `json:"is_darkweb"`
		IsScanner      bool `json:"is_scanner"`
		IsSnort        bool `json:"is_snort"`
		IsAnonymousVpn bool `json:"is_anonymous_vpn"`
	} `json:"issues"`
	Score struct {
		Inbound  string `json:"inbound"`
		Outbound string `json:"outbound"`
	} `json:"score"`
	UserSearchCount int `json:"user_search_count"`
	ProtectedIP     struct {
		Count int `json:"count"`
		Data  []struct {
			IPAddress     string `json:"ip_address"`
			ConfirmedTime string `json:"confirmed_time"`
		} `json:"data"`
	} `json:"protected_ip"`
	Domain HostSearchResultDomain `json:"domain"`
	Whois  struct {
		Count int `json:"count"`
		Data  []struct {
			AsName         string  `json:"as_name"`
			AsNo           int     `json:"as_no"`
			City           string  `json:"city"`
			Region         string  `json:"region"`
			OrgName        string  `json:"org_name"`
			PostalCode     string  `json:"postal_code"`
			Longitude      float64 `json:"longitude"`
			Latitude       float64 `json:"latitude"`
			OrgCountryCode string  `json:"org_country_code"`
			ConfirmedTime  string  `json:"confirmed_time"`
		} `json:"data"`
	} `json:"ipapi"`
	Hostname struct {
		Count int `json:"count"`
		Data  []struct {
			DomainNameRep  string `json:"domain_name_rep"`
			DomainNameFull string `json:"domain_name_full"`
			ConfirmedTime  string `json:"confirmed_time"`
		} `json:"data"`
	} `json:"hostname"`
	IDs struct {
		Count int `json:"count"`
		Data  []struct {
			Classification string `json:"classification"`
			URL            string `json:"url"`
			Message        string `json:"message"`
			ConfirmedTime  string `json:"confirmed_time"`
			SourceSystem   string `json:"source_system"`
		} `json:"data"`
	} `json:"ids"`
	Vpn struct {
		Count int `json:"count"`
		Data  []struct {
			VpnName       string `json:"vpn_name"`
			VpnURL        string `json:"vpn_url"`
			VpnSourceURL  string `json:"vpn_source_url"`
			SocketType    string `json:"socket_type"`
			ConfirmedTime string `json:"confirmed_time"`
		} `json:"data"`
	} `json:"vpn"`
	AnonymousVpn struct {
		Count int `json:"count"`
		Data  []struct {
			VpnName       string `json:"vpn_name"`
			VpnURL        string `json:"vpn_url"`
			VpnSourceURL  string `json:"vpn_source_url"`
			SocketType    string `json:"socket_type"`
			ConfirmedTime string `json:"confirmed_time"`
		} `json:"data"`
	} `json:"anonymous_vpn"`
	Webcam struct {
		Count int `json:"count"`
		Data  []struct {
			ImagePath     string `json:"image_path"`
			CamURL        string `json:"cam_url"`
			Country       string `json:"country"`
			City          string `json:"city"`
			OpenPortNo    int    `json:"open_port_no"`
			Manufacturer  string `json:"manufacturer"`
			ConfirmedTime string `json:"confirmed_time"`
		} `json:"data"`
	} `json:"webcam"`
	Honeypot struct {
		Count int `json:"count"`
		Data  []struct {
			IPAddress     string `json:"ip_address"`
			LogDate       string `json:"log_date"`
			DstPort       int    `json:"dst_port"`
			Message       string `json:"message"`
			UserAgent     string `json:"user_agent"`
			ProtocolType  string `json:"protocol_type"`
			ConfirmedTime string `json:"confirmed_time"`
		} `json:"data"`
	} `json:"honeypot"`
	IPCategory struct {
		Count int `json:"count"`
		Data  []struct {
			DetectSource  string   `json:"detect_source"`
			Type          string   `json:"type"`
			DetectInfo    struct{} `json:"detect_info,omitempty"`
			ConfirmedTime string   `json:"confirmed_time"`
			DetectInfo0   struct {
				Md5    string `json:"md5"`
				Domain string `json:"domain"`
			} `json:"detect_info,omitempty"`
		} `json:"data"`
	} `json:"ip_category"`
	Port struct {
		Count int             `json:"count"`
		Data  []PortDataEntry `json:"data"`
	} `json:"port"`
	Vulnerability struct {
		Count int `json:"count"`
		Data  []struct {
			CveID          string  `json:"cve_id"`
			CveDescription string  `json:"cve_description"`
			Cvssv2Vector   string  `json:"cvssv2_vector"`
			Cvssv2Score    float64 `json:"cvssv2_score"`
			Cvssv3Vector   string  `json:"cvssv3_vector"`
			Cvssv3Score    float64 `json:"cvssv3_score"`
			ListCwe        []struct {
				CveID          string `json:"cve_id"`
				CweID          int    `json:"cwe_id"`
				CweName        string `json:"cwe_name"`
				CweDescription string `json:"cwe_description"`
			} `json:"list_cwe"`
			ListEdb []struct {
				CveID         string `json:"cve_id"`
				EdbID         int    `json:"edb_id"`
				Type          string `json:"type"`
				Platform      string `json:"platform"`
				VerifyCode    int    `json:"verify_code"`
				Title         string `json:"title"`
				ConfirmedTime string `json:"confirmed_time"`
			} `json:"list_edb"`
			AppName        string `json:"app_name"`
			AppVersion     string `json:"app_version"`
			OpenPortNoList struct {
				TCP []int `json:"TCP"`
				UDP []any `json:"UDP"`
			} `json:"open_port_no_list"`
			HaveMorePorts bool `json:"have_more_ports"`
			OpenPortNo    []struct {
				Port   int    `json:"port"`
				Socket string `json:"socket"`
			} `json:"open_port_no"`
			ListChild []struct {
				AppName    string `json:"app_name"`
				AppVersion string `json:"app_version"`
				Vendor     string `json:"vendor"`
				Type       string `json:"type"`
				IsVuln     string `json:"is_vuln"`
				TargetHw   string `json:"target_hw"`
				TargetSw   string `json:"target_sw"`
				Update     string `json:"update"`
				Edition    string `json:"edition"`
			} `json:"list_child"`
			Vendor   string `json:"vendor"`
			Type     string `json:"type"`
			IsVuln   string `json:"is_vuln"`
			TargetHw string `json:"target_hw"`
			TargetSw string `json:"target_sw"`
			Update   string `json:"update"`
			Edition  string `json:"edition"`
		} `json:"data"`
	} `json:"vulnerability"`
	Mobile struct {
		Count int `json:"count"`
		Data  []struct {
			Broadband    string `json:"broadband"`
			Organization string `json:"organization"`
		} `json:"data"`
	} `json:"mobile"`
	Message string `json:"message"`
	Status  int    `json:"status"`
}

type HostSearchResultData

type HostSearchResultData struct {
	Hash       int      `json:"hash"`
	Opts       struct{} `json:"opts,omitempty"`
	Timestamp  string   `json:"timestamp"`
	Isp        string   `json:"isp"`
	Data       string   `json:"data"`
	CriminalIP struct {
		Region  string   `json:"region"`
		Module  string   `json:"module"`
		Ptr     bool     `json:"ptr"`
		Options struct{} `json:"options"`
		ID      string   `json:"id"`
		Crawler string   `json:"crawler"`
	} `json:"_criminalip,omitempty"`
	Port      int      `json:"port"`
	Hostnames []string `json:"hostnames"`
	Location  struct {
		City        string  `json:"city"`
		RegionCode  string  `json:"region_code"`
		AreaCode    any     `json:"area_code"`
		Longitude   float64 `json:"longitude"`
		CountryName string  `json:"country_name"`
		CountryCode string  `json:"country_code"`
		Latitude    float64 `json:"latitude"`
	} `json:"location"`
	DNS struct {
		ResolverHostname any  `json:"resolver_hostname"`
		Recursive        bool `json:"recursive"`
		ResolverID       any  `json:"resolver_id"`
		Software         any  `json:"software"`
	} `json:"dns,omitempty"`
	HTTP struct {
		Status     int    `json:"status"`
		RobotsHash string `json:"robots_hash"`
		Redirects  []struct {
			Host     string `json:"host"`
			Data     string `json:"data"`
			Location string `json:"location"`
		}
		SecurityTxt string `json:"security_txt"`
		Title       string `json:"title"`
		SitemapHash string `json:"sitemap_hash"`
		HTMLHash    int    `json:"html_hash"`
		Robots      string `json:"robots"`
		Favicon     struct {
			Hash     int    `json:"hash"`
			Data     string `json:"data"`
			Location string `json:"location"`
		} `json:"favicon"`
		HeadersHash     int      `json:"headers_hash"`
		Host            string   `json:"host"`
		HTML            string   `json:"html"`
		Location        string   `json:"location"`
		Components      struct{} `json:"components"`
		Server          string   `json:"server"`
		Sitemap         string   `json:"sitemap"`
		SecurityTxtHash string   `json:"securitytxt_hash"`
	} `json:"http,omitempty"`
	IP        string   `json:"ip"`
	Domains   []string `json:"domains"`
	Org       string   `json:"org"`
	Os        any      `json:"os"`
	Asn       string   `json:"asn"`
	Transport string   `json:"transport"`
	IPStr     string   `json:"ip_str"`
	Ssl       struct {
		ChainSha256   []string `json:"chain_sha256"`
		Jarm          string   `json:"jarm"`
		Chain         []string `json:"chain"`
		Dhparams      any      `json:"dhparams"`
		Versions      []string `json:"versions"`
		AcceptableCas []any    `json:"acceptable_cas"`
		Tlsext        []struct {
			ID   int    `json:"id"`
			Name string `json:"name"`
		} `json:"tlsext"`
		Ja3S string `json:"ja3s"`
		Cert struct {
			SigAlg     string `json:"sig_alg"`
			Issued     string `json:"issued"`
			Expires    string `json:"expires"`
			Expired    bool   `json:"expired"`
			Version    int    `json:"version"`
			Extensions []struct {
				Critical bool   `json:"critical,omitempty"`
				Data     string `json:"data"`
				Name     string `json:"name"`
			} `json:"extensions"`
			Fingerprint struct {
				Sha256 string `json:"sha256"`
				Sha1   string `json:"sha1"`
			} `json:"fingerprint"`
			Serial  json.RawMessage `json:"serial"`
			Subject struct {
				Cn string `json:"CN"`
			} `json:"subject"`
			Pubkey struct {
				Type string `json:"type"`
				Bits int    `json:"bits"`
			} `json:"pubkey"`
			Issuer struct {
				C  string `json:"C"`
				Cn string `json:"CN"`
				O  string `json:"O"`
			} `json:"issuer"`
		} `json:"cert"`
		Cipher struct {
			Version string `json:"version"`
			Bits    int    `json:"bits"`
			Name    string `json:"name"`
		} `json:"cipher"`
		Trust struct {
			Revoked bool `json:"revoked"`
			Browser any  `json:"browser"`
		} `json:"trust"`
		HandshakeStates []string `json:"handshake_states"`
		Alpn            []any    `json:"alpn"`
		Ocsp            struct{} `json:"ocsp"`
	} `json:"ssl,omitempty"`
}

type HostSearchResultDomain

type HostSearchResultDomain struct {
	Count int `json:"count"`
	Data  []struct {
		Domain        string `json:"domain"`
		IPType        string `json:"ip_type"`
		Registrar     string `json:"registrar"`
		CreateDate    string `json:"create_date"`
		ConfirmedTime string `json:"confirmed_time"`
		Email         string `json:"email"`
	} `json:"data"`
}

type PortDataEntry

type PortDataEntry struct {
	AppName       string   `json:"app_name"`
	ConfirmedTime string   `json:"confirmed_time"`
	Banner        string   `json:"banner"`
	AppVersion    string   `json:"app_version"`
	OpenPortNo    int      `json:"open_port_no"`
	PortStatus    string   `json:"port_status"`
	Protocol      string   `json:"protocol"`
	Socket        string   `json:"socket"`
	Tags          []string `json:"tags"`
	DNSNames      string   `json:"dns_names"`
	SdnCommonName string   `json:"sdn_common_name"`
	JarmHash      string   `json:"jarm_hash"`
	SslInfoRaw    string   `json:"ssl_info_raw"`
	Technologies  []struct {
		TechName    string `json:"tech_name"`
		TechVersion string `json:"tech_version"`
		TechLogoURL string `json:"tech_logo_url"`
	} `json:"technologies"`
	IsVulnerability bool `json:"is_vulnerability"`
}

type WrappedPortDataEntry

type WrappedPortDataEntry struct {
	AgeMatch     bool
	NetworkMatch bool
	PortDataEntry
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL