Skip to content

ninoseki/apullo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

apullo

Gem Version Build Status Docker Cloud Build Status Coverage Status CodeFactor

eyecatch

A scanner for taking basic fingerprints.

Installation

gem install apullo
# or
docker pull ninoseki/apullo

Usage

$ apullo
Commands:
  apullo check [Target]  # Take fingerprints from a target(IP, domain or URL)
  apullo help [COMMAND]  # Describe available commands or one specific command

It takes basic network fingerprints of a target.

  • Hashes of an HTTP response body
  • Headers of an HTTP response
  • Hashes of an SSL certificate
  • Hashes of a favicon image
  • Hashes of an SSH host key
  • DNS records
  • WHOIS registrant data
$ apullo check https://example.com
{
  "http": {
    "body": {
      "md5": "84238dfc8092e5d9c0dac8ef93371a07",
      "mmh3": -2087618365,
      "sha1": "4a3ce8ee11e091dd7923f4d8c6e5b5e41ec7c047",
      "sha256": "ea8fac7c65fb589b0d53560f5251f74f9e9b243478dcb6b3ea79b5e36449c8d9"
    },
    "cert": {
      "md5": "3510c21c66bd62010fc547d3cd3f0ce6",
      "serial": 21020869104500376438182461249190639870,
      "sha1": "7bb698386970363d2919cc5772846984ffd4a889",
      "sha256": "9250711c54de546f4370e0c3d3a3ec45bc96092a25a4a71a1afa396af7047eb8"
    },
    "favicon": {
    },
    "headers": {
      "cache-control": "max-age=604800",
      "content-type": "text/html; charset=UTF-8",
      "date": "Sat, 11 Jan 2020 10:47:09 GMT",
      "etag": "\"3147526947+gzip\"",
      "expires": "Sat, 18 Jan 2020 10:47:09 GMT",
      "last-modified": "Thu, 17 Oct 2019 07:18:26 GMT",
      "server": "ECS (oxr/830F)",
      "vary": "Accept-Encoding",
      "x-cache": "HIT",
      "content-length": "648"
    },
    "meta": {
      "url": "https://example.com",
      "links": {
        "shodan": {
          "body": "https://www.shodan.io/search?query=http.html_hash%3A-2087618365",
          "cert": "https://www.shodan.io/search?q=ssl.cert.serial%3A21020869104500376438182461249190639870"
        },
        "censys": {
          "body": "https://censys.io/ipv4?q=ea8fac7c65fb589b0d53560f5251f74f9e9b243478dcb6b3ea79b5e36449c8d9",
          "cert": "https://censys.io/ipv4?q=9250711c54de546f4370e0c3d3a3ec45bc96092a25a4a71a1afa396af7047eb8"
        }
      }
    }
  },
  "domain": {
    "dns": {
      "ns": [
        "a.iana-servers.net",
        "b.iana-servers.net"
      ],
      "cname": [

      ],
      "soa": [
        "noc.dns.icann.org"
      ],
      "mx": [

      ],
      "a": [
        "93.184.216.34"
      ],
      "aaaa": [
        "2606:2800:220:1:248:1893:25C8:1946"
      ]
    },
    "whois": {
      "registrant_contacts": [
        {
          "id": null,
          "type": 1,
          "name": null,
          "organization": "Internet Assigned Numbers Authority",
          "address": null,
          "city": null,
          "zip": null,
          "state": null,
          "country": null,
          "country_code": null,
          "phone": null,
          "fax": null,
          "email": null,
          "url": null,
          "created_on": null,
          "updated_on": null
        }
      ],
      "admin_contacts": [

      ],
      "technical_contacts": [

      ]
    },
    "meta": {
      "links": {
        "securitytrails": "https://securitytrails.com/domain/example.com/dns"
      }
    }
  },
  "ssh": {
  },
  "meta": {
    "target": "https://example.com"
  }
}

$ apullo check jppost-ku.com
{
  "http": {
    "body": {
      "md5": "0728450344e6ea95107ce8c3b00f10ae",
      "mmh3": 421543491,
      "sha1": "6fa29d366b33d5f3c54d62c95b23aa1cce2587a3",
      "sha256": "7bc86f6a3d8877bd84d9917c3661658867af3fdb44842b973be2d299fe793dc2"
    },
    "cert": {
    },
    "favicon": {
      "md5": "ad184c25a1a01d97696dcb59a1ffef74",
      "mmh3": 111036816,
      "sha1": "cb4842a54c3e96408765290cb810793302c17f0b",
      "sha256": "6949c58f841fa21a89e2e2375ae5645e1db62385f89a0218766f2b0a9c490fb8",
      "meta": {
        "url": "https://www.post.japanpost.jp/img/common/touch-icon.png"
      }
    },
    "headers": {
      "server": "Apache-Coyote/1.1",
      "accept-ranges": "bytes",
      "etag": "W/\"54423-1577193448000\"",
      "last-modified": "Tue, 24 Dec 2019 13:17:28 GMT",
      "content-type": "text/html",
      "content-length": "54423",
      "date": "Sat, 11 Jan 2020 10:48:28 GMT"
    },
    "meta": {
      "url": "http://jppost-ku.com",
      "links": {
        "shodan": {
          "body": "https://www.shodan.io/search?query=http.html_hash%3A421543491",
          "favicon": "https://www.shodan.io/search?query=http.favicon.hash%3A111036816"
        },
        "censys": {
          "body": "https://censys.io/ipv4?q=7bc86f6a3d8877bd84d9917c3661658867af3fdb44842b973be2d299fe793dc2"
        }
      }
    }
  },
  "domain": {
    "dns": {
      "ns": [
        "ns2.bdydns.cn",
        "ns1.bdydns.cn"
      ],
      "cname": [

      ],
      "soa": [
        "sa.dudns.com"
      ],
      "mx": [

      ],
      "a": [
        "45.10.90.113"
      ],
      "aaaa": [

      ]
    },
    "whois": {
      "registrant_contacts": [

      ],
      "admin_contacts": [

      ],
      "technical_contacts": [

      ]
    },
    "meta": {
      "links": {
        "securitytrails": "https://securitytrails.com/domain/jppost-ku.com/dns"
      }
    }
  },
  "ssh": {
    "rsa": {
      "md5": "565c74c34ca3a4a44625e8cbf732bed5",
      "sha1": "2fb4d2241f7b6dd83c376548a794d5e903ce2b64",
      "sha256": "e97b6fa7a9c3cb00919fbe90d862b08c2b4b1ac8c09701a0bb063e47ae764160"
    },
    "ecdsa-sha2-nistp256": {
      "md5": "59e75650c592742fbe54a56140965af6",
      "sha1": "1cddc49647d0e3cd5fefcc15e41fa036651ba903",
      "sha256": "54a7bcac7ac7c2ffc501396dd1ae68b0c7f7b3a627c813c0020822b7a01e6a69"
    },
    "ed25519": {
      "md5": "5ca62c892f4cb1c3197b245b2e1b9254",
      "sha1": "9bbcfec876f80c831a9ace061dfa7ba7d207c2d2",
      "sha256": "e7c2073b8ae07dea059307eb4d1f435c92d25228e5def49075e8007f5cb44765"
    },
    "meta": {
      "links": {
        "shodan": "https://www.shodan.io/search?query=port%3A22+56%3A5c%3A74%3Ac3%3A4c%3Aa3%3Aa4%3Aa4%3A46%3A25%3Ae8%3Acb%3Af7%3A32%3Abe%3Ad5",
        "censys": "https://censys.io/ipv4?q=54a7bcac7ac7c2ffc501396dd1ae68b0c7f7b3a627c813c0020822b7a01e6a69"
      }
    }
  },
  "meta": {
    "target": "jppost-ku.com"
  }
}

Notes

  • mmh3 is a 32 bit signed int value of MurmurHash3.
  • Keys of http.headers are downcased.

License

The gem is available as open source under the terms of the MIT License.