GitXplorerGitXplorer
n

rogue_one

public
23 stars
6 forks
2 issues

Commits

List of commits on branch master.
Verified
e0b1866fd70dc45f213548ccf9a89f3c37d3516a

Merge pull request #42 from ninoseki/renovate/actions-checkout-3.x

nninoseki committed 3 years ago
Verified
22e4b9ea271a59eeef835cb4d59274d73ade6e2a

chore(deps): update actions/checkout action to v3

rrenovate-bot committed 3 years ago
Verified
f1e610ff2198e09c4fbeb43d6d7038a1f1def4ea

Merge pull request #40 from ninoseki/update-readme

nninoseki committed 3 years ago
Unverified
496cf31aa5f28649e995d4046fb8c60cd4285de5

docs: add requirements [skip ci]

nninoseki committed 3 years ago
Verified
cf59f1533fbd462fcfd26aa58113fc9b6418e0f2

Merge pull request #39 from ninoseki/v0.4.3

nninoseki committed 3 years ago
Unverified
2712a7cbc68488eb0d36f2c424265330733bf221

v0.4.3

nninoseki committed 3 years ago

README

The README file for this repository.

Rogue one

Gem Version Ruby CI CodeFactor Coverage Status

A PoC tool for analyzing a rogue DNS server.

This tool could be used for checking maliciousness of a DNS server and extracting landing pages.

How it works

image

IPv4 space is vast. But an attacker could secure a few numbers of IP addresses for landing pages. It means you can (probably) find malicious landing pages by using the following methods.

  • Resolving a bunch of domains by using a DNS server.
  • Finding frequent IPv4s from the resolutions. They might be landing pages.
  • If a DNS server has landing pages, it might be a rogue one.

Requirements

  • Ruby 3.x / Ruby 2.7+

Installation

gem install rogue_one

Usage

$ rogue_one
Commands:
  rogue_one help [COMMAND]       # Describe available commands or one specific command
  rogue_one report [DNS_SERVER]  # Show a report of a given DNS server

$ rogue_one help report
Usage:
  rogue_one report [DNS_SERVER]

Options:
  [--custom-list=CUSTOM_LIST]    # A path to a custom list of domains
  [--default-list=DEFAULT_LIST]  # A default list of top 100 domains (Alexa or Fortune)
                                 # Default: alexa
  [--record-type=RECORD_TYPE]    # A type of the DNS resource to check
                                 # Default: A
  [--threshold=N]                # Threshold value for determining malicious or not
  [--verbose], [--no-verbose]

Show a report of a given DNS server

$ rogue_one report 1.1.1.1
{
  "verdict": "benign one",
  "landing_pages": [

  ]
}

$ rogue_one report 1.53.252.215
{
  "verdict": "rogue one",
  "landing_pages": [
    "1.171.168.19",
    "1.171.170.228",
    "61.230.102.66"
  ]
}

$ rogue_one report 171.244.3.111 --custom-list tmp/roaming.yml
{
  "verdict": "rogue one",
  "landing_pages": [
    "154.223.53.53",
    "58.82.243.9"
  ]
}
# Note: a custom list should be an array of domains in a YAML file.
Key Desc.
verdict A detection result (rogue one or benign one)
landing_pages An array of IP of landing pages
results DNS resolution results (only available if --verbose option is specified)

Notes

  • This is just a PoC tool. I cannot guarantee the results with high confidence at the moment.

License

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