{"id":14109910,"url":"https://github.com/apg-intel/ipv6tools","last_synced_at":"2025-08-01T09:32:13.869Z","repository":{"id":142547756,"uuid":"42948255","full_name":"apg-intel/ipv6tools","owner":"apg-intel","description":"IPv6Tools is a robust modular framework that enables the ability to visually audit an IPv6 enabled network.","archived":false,"fork":false,"pushed_at":"2018-06-24T02:05:41.000Z","size":7575,"stargazers_count":125,"open_issues_count":6,"forks_count":19,"subscribers_count":11,"default_branch":"master","last_synced_at":"2024-08-14T10:15:37.565Z","etag":null,"topics":["framework","free","icmpv6","ipv6","ipv6-framework","llmnr","multicast","networking","open-source","python","python-scapy","scapy","security"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apg-intel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2015-09-22T17:05:52.000Z","updated_at":"2024-07-11T13:50:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"1e0c47e2-25f5-4a2e-b9e7-c97eba3b72c7","html_url":"https://github.com/apg-intel/ipv6tools","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apg-intel%2Fipv6tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apg-intel%2Fipv6tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apg-intel%2Fipv6tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apg-intel%2Fipv6tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apg-intel","download_url":"https://codeload.github.com/apg-intel/ipv6tools/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228360470,"owners_count":17907923,"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":["framework","free","icmpv6","ipv6","ipv6-framework","llmnr","multicast","networking","open-source","python","python-scapy","scapy","security"],"created_at":"2024-08-14T10:02:33.470Z","updated_at":"2024-12-05T19:31:13.280Z","avatar_url":"https://github.com/apg-intel.png","language":"Python","readme":"# IPv6Tools\n\n\u003e The IPv6Tools framework is a robust set of modules and plugins that allow a user to audit an IPv6 enabled network.  The built-in modules support enumeration of IPv6 features such as ICMPv6 and Multicast Listener Discovery (MLD).  In addition, the framework also supports enumeration of Upper Layer Protocols (ULP) such as multicast DNS (mDNS) and Link-Local Multicast Name Resolution (LLMNR).  Users can easily expand the capability of the framework by creating plugins and modules in the Python language.\n\n### Write-up\n\nTo read more about how this project came to fruition and how to build an app using the same technologies, follow the links below!\n\n*  [There’s No Place Like ::1 — Enumerating Local IPv6 networks](https://secdevops.ai/theres-no-place-like-1-enumerating-local-ipv6-networks-88a6247e3519)\n* For content related to development, security, devops, AI, etc... check out [SecDevOps.AI](https://secdevops.ai)!\n\n\u003cbr\u003e\n\u003cp\u003e\n  \u003cimg src=\"screenshots/scanning.gif\" alt=\"IPv6Tools Scanning Network\"\u003e\n\u003c/p\u003e\n\n\n\n* [Requirements](#requirements)\n* [Installation](#installation)\n* [Usage](#usage)\n* [Modules](#modules)\n* [Known Issues](#known-issues)\n\n## Requirements\n\n* python 2.7\n* pip\n* npm [development only]\n\n## Installation\n\n### Standard\n\n*[Optional] Use a virtualenv for installation:* `virtualenv venv \u0026\u0026 source venv/bin/activate`\n\n1. `git clone http://github.com/apg-intel/ipv6tools.git`\n2. `sudo pip install -r requirements.txt`\n\n\n### Development\n1. `git clone http://github.com/apg-intel/ipv6tools.git`\n2. `git checkout dev`\n3. `npm run setup`\n\n## Usage\n\n### Standard\n1. `sudo python app.py`\n2. Navigate to [http://localhost:8080](http://localhost:8080) in a web browser\n\n### Development\n1. Run `$ npm run serve`\n2. In a separate terminal, run `npm run dev`\n3. Navigate to [http://localhost:8081](http://localhost:8081) in a web browser\n\n### CLI\n**TODO**\n\n## Modules\n\nModules are classes that allow interaction with individual nodes or all nodes. These show up as a right click option on each node, or as a button below the graph.\n\n### Included Modules\n\nIncluded in the project are a couple of modules to help validate your network, as well as use as examples for your own modules.\n\n* **poisonLLMNR** - Link-Local Multicast Name Resolution is the successor of of NBT-NS, which allows local nodes to resolve names and IP addresses.  Enabling this module poisons LLMNR queries to all nodes on the local link.\n* **CVE-2016-1879** - The following CVE is a vulnerability in SCTP that affects FreeBSD 9.3, 10.1 and 10.2.  Enabling this module will launch a crafted ICMPv6 packet and potentially cause a DoS (assertion failure or NULL pointer dereference and kernel panic) to a single node.\n\n### Custom Modules\n\nAll modules are located in `/modules` and are automatically loaded when starting the server. Included in `/modules` is a file called `template.py`. This file contains the class that all modules must extend in order to display correctly and communicate with the webpage.\n\nUse this template to build a custom module\n\n```python\nfrom template import Template\n\nclass IPv6Module(Template):\n\n  def __init__(self, socketio, namespace):\n    super(IPv6Module, self).__init__(socketio, namespace)\n    self.modname = \"CVE-2016-1879\"\n    self.menu_text = \"FreeBSD IPv6 DoS\"\n    self.actions = [\n      {\n        \"title\": \"FreeBSD IPv6 DoS\", #name that's displayed on the buttons/menu\n        \"action\": \"action\", #method name to call\n        \"target\": True #set this to true to display it in the right-click menu\n      }\n    ]\n\n  def action(self, target=None):\n    # send a log msg\n    self.socket_log('Running DoS on '+target['ip'])\n    \n    # do stuff, etc\n\n    # merge results with main result set\n    listOfDicts = [{ip: '::1', device_name: 'test'}]\n    self.module_merge(listOfDicts)\n\n```\n\n## Known Issues\n\n* Untested on large networks\n* Any stack traces mentioning `dnet` or `dumbnet` - follow the instructions below.\n* Some operating systems may require the libpcap headers. See notes below.\n\n### Installing libdnet\n```\ngit clone https://github.com/dugsong/libdnet.git\ncd libdnet\n./configure \u0026\u0026 make\nsudo make install\ncd python\npython setup.py install\n```\n\n### libpcap headers in Ubuntu\n`sudo apt install libpcap-dev`\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapg-intel%2Fipv6tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapg-intel%2Fipv6tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapg-intel%2Fipv6tools/lists"}