{"id":13843486,"url":"https://github.com/NetSPI/NetblockTool","last_synced_at":"2025-07-11T19:31:49.712Z","repository":{"id":38286627,"uuid":"224011769","full_name":"NetSPI/NetblockTool","owner":"NetSPI","description":"Find netblocks owned by a company","archived":false,"fork":false,"pushed_at":"2023-08-03T16:28:15.000Z","size":82,"stargazers_count":344,"open_issues_count":3,"forks_count":64,"subscribers_count":11,"default_branch":"master","last_synced_at":"2024-11-11T01:21:28.641Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NetSPI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-11-25T18:09:11.000Z","updated_at":"2024-11-08T14:44:17.000Z","dependencies_parsed_at":"2022-08-25T02:32:11.223Z","dependency_job_id":"300766a6-7750-432f-8410-2f49c1d066fd","html_url":"https://github.com/NetSPI/NetblockTool","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NetSPI%2FNetblockTool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NetSPI%2FNetblockTool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NetSPI%2FNetblockTool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NetSPI%2FNetblockTool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NetSPI","download_url":"https://codeload.github.com/NetSPI/NetblockTool/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225755006,"owners_count":17519184,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-04T17:02:10.520Z","updated_at":"2024-11-21T15:31:01.417Z","avatar_url":"https://github.com/NetSPI.png","language":"Python","funding_links":[],"categories":["Python (1887)","Python"],"sub_categories":[],"readme":"# NetblockTool\nFind netblocks owned by a company\n\n[![licence badge]][licence] \n[![stars badge]][stars] \n[![forks badge]][forks] \n[![issues badge]][issues]\n\n[licence badge]:https://img.shields.io/badge/license-New%20BSD-blue.svg\n[stars badge]:https://img.shields.io/github/stars/NetSPI/NetblockTool.svg\n[forks badge]:https://img.shields.io/github/forks/NetSPI/NetblockTool.svg\n[issues badge]:https://img.shields.io/github/issues/NetSPI/NetblockTool.svg\n\n[licence]:https://github.com/NetSPI/NetblockTool/blob/master/LICENSE\n[stars]:https://github.com/NetSPI/NetblockTool/stargazers\n[forks]:https://github.com/NetSPI/NetblockTool/network\n[issues]:https://github.com/NetSPI/NetblockTool/issues\n\n\n## Overview\n* Use NetblockTool to easily dump a unique list of IP addresses belonging to a company and its subsidiaries.\n* All data gathering is passive. No traffic is ever sent to the target company.\n* Sources include ARIN API, ARIN GUI search functionality, and Google dorking. Company subsidiaries are retrieved from SEC's public database.\n\n\n## Quick Run\n```\ngit clone https://github.com/NetSPI/NetblockTool.git\ncd NetblockTool \u0026\u0026 pip3 install -r requirements.txt\npython3 NetblockTool.py -v Company\n```\n\n\n## Output\nResults are written to a CSV called *Company.csv* where *Company* is the provided company's name. The truncated output for Google is shown below.\n\n![NetblockOutput](https://i.imgur.com/XpFNiO0.png) \n\n\n## How does this script work?\nIn depth information on the tool and how it works can be found [here](https://blog.netspi.com/netblocktool/).\n* A target company is provided\n* Google dorking is used to find netblocks\n* Traffic is sent that simulates a user searching ARIN's database for the company name\n* All ARIN links are found, visited, and processed from the previous database query\n* Duplicate networks are removed\n* Each netblock is given a confidence score\n* Netblocks are sorted by confidence score and written to a CSV\n\n\n## Common Use Cases\nSimple run. Get results from Google dorking and ARIN database:\n\n`python3 NetblockTool.py Company`\n\nInclude the verbose flag to print status updates:\n\n`python3 NetblockTool.py -v Company`\n\nExtract netblocks owned by your target company’s subsidiaries:\n\n`python3 NetblockTool.py -v Company -s`\n\nExtract point of contact information:\n\n`python3 NetblockTool.py -v Company -p`\n\nGet as much information as possible, including netblocks found using wildcard queries, points of contact, geolocation data, and physical addresses:\n\n`python3 NetblockTool.py -wpgav Company -so`\n\n\n## Help\n```\n$ ./NetblockTool.py\nusage:\n  _   _      _   _     _            _    _____           _\n | \\ | | ___| |_| |__ | | ___   ___| | _|_   _|__   ___ | |\n |  \\| |/ _ \\ __| '_ \\| |/ _ \\ / __| |/ / | |/ _ \\ / _ \\| |\n | |\\  |  __/ |_| |_) | | (_) | (__|   \u003c  | | (_) | (_) | |\n |_| \\_|\\___|\\__|_.__/|_|\\___/ \\___|_|\\_\\ |_|\\___/ \\___/|_|\n\n./NetblockTool.py [options] {target company}\n    Find netblocks owned by a company\n\nPositional arguments:\n    {target} Target company (exclude \"Inc\", \"Corp\", etc.)\n\nOptional arguments:\n    Common Options:\n    -l        List mode; argument is a file with list of companies, one per line\n    -o        File name to write data to (no extension, default is target name)\n    -v        Verbose mode\n    -q        Quiet mode\n    -h        Print this help message\n\n    Data Retrieval \u0026 Processing:\n    -n        Don't perform thorough wildcard queries (query = target)\n    -ng       Don't perform Google Dorking queries\n    -w        Perform more thorough complete wildcard queries (query = *target*). Note\n                  that this option may return significantly more false positives.\n    -c        Company name if different than target (may affect accuracy of confidence\n                  scores, use carefully; exclude \"Inc\", \"Corp\", etc.)\n    -e        Only return results greater than a given confidence score\n    -p        Retrieve and write point of contact information to a text file. Note that\n                  retrieval of PoC information will likely take some time.\n    -4        Only return IPv4 netblocks\n    -6        Only return IPv6 netblocks\n\n    Company Subsidiaries:\n    -s        Fetch subsidiary information and return netblocks of all subsidiaries in\n                  addition to initial target\n    -sn       Company name to use when fetching subsidiaries\n    -sp       Use alternate parsing method when fetching subsidiary information; use\n                  if the default method isn't working as expected\n    -so       Write subsidiary information to a text file (CompanyName_subsidiaries.txt)\n\n    Physical Location:\n    -g        Retrieve geolocation data (if available)\n    -a        Write netblock address information to output\n    -ag       Write netblock address information to output but only if it contains a\n                  given string\n\nExamples:\n    python NetblockTool.py -v Google\n    python NetblockTool.py -so -wv Facebook -o Results\n    python NetblockTool.py -gavl companies.txt\n```\n\n\n### This script isn't working\nEnsure the following:\n* Are all of the dependencies listed in `requirements.txt` installed?\n* Is the `edgar` folder in this repository in the same folder as the NetblockTool.py script?\n* Is the script printing out `Google CAPTCHA detected`? You may need to change your public IP or wait ~60 minutes to retrieve Google dorking results. \n* You may need to use Python 3.7+\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNetSPI%2FNetblockTool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FNetSPI%2FNetblockTool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNetSPI%2FNetblockTool/lists"}