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.
Write-UP
To read more about how this project came to fruition and how to build an app using the same technologies, follow the links below!
Requirements
Also Read – GDA Android Reversing Tool
Installation
Standard
[Optional] Use a virtualenv for installation: virtualenv venv && source venv/bin/activate
git clone http://github.com/apg-intel/ipv6tools.git
sudo pip install -r requirements.txt
Development
git clone http://github.com/apg-intel/ipv6tools.git
git checkout dev
npm run setup
Usage
Standard
sudo python app.pyDevelopment
$ npm run servenpm run devModules
Modules 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.
Included Modules
Included in the project are a couple of modules to help validate your network, as well as use as examples for your own modules.
Custom Modules
All 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.
Use this template to build a custom module
from template import Template
class IPv6Module(Template):
def init(self, socketio, namespace):
super(IPv6Module, self).init(socketio, namespace)
self.modname = “CVE-2016-1879”
self.menu_text = “FreeBSD IPv6 DoS”
self.actions = [
{
“title”: “FreeBSD IPv6 DoS”, #name that’s displayed on the buttons/menu
“action”: “action”, #method name to call
“target”: True #set this to true to display it in the right-click menu
}
]
def action(self, target=None):
#send a log msg
self.socket_log(‘Running DoS on ‘+target[‘ip’])
#do stuff, etc
#merge results with main result set
listOfDicts = [{ip: ‘::1’, device_name: ‘test’}]
self.module_merge(listOfDicts)
Known Issues
dnet or dumbnet – follow the instructions below.Installing libdnet
git clone https://github.com/dugsong/libdnet.git
cd libdnet
./configure && make
sudo make install
cd python
python setup.py install
libpcap headers in Ubuntu
sudo apt install libpcap-dev
Nginx is a high-performance web server and reverse proxy trusted by some of the largest…
ufw (Uncomplicated Firewall) sits on top of iptables (or nftables on newer systems) and replaces…
When you share a server with a team or investigate unexpected activity, the first question…
The file command inspects the actual contents of a file and reports its type — regardless of…
chattr sets and removes special file attributes that operate at the filesystem level, separate from standard…
env prints the current environment, sets or removes variables for a single command, and can start…