Repository to check existence and map IPv6 addressed and check respondse tates while avoiding aliases
@DressPD
@zhang12574
to install ZMapv6, do:
sudo apt-get install build-essential cmake libgmp3-dev gengetopt libpcap-dev flex byacc libjson-c-dev pkg-config libunistring-dev
For other systems, refer to https://github.com/zmap/zmap/blob/main/INSTALL.md to install dependencies. git clone https://github.com/tumi8/zmap.git
git checkout master
DO NOT use any version provided by Ubuntu or any release version, none of them support IPv6.
cmake .
make -j4
sudo make install
to check whether installed successfully, run:
zmap --version
zmap --help | grep IPv6
to scan a list of IPv6 addresses with zmap:
zmap_scan
--ipv6-source-ip=<Your IP> -G <Your MAC> --ipv6-target-file=<Your File>
note: gateway MAC maybe not needed. bash zmap_scan_once.sh
@DressPD
to set up entropy-ip:
git clone https://github.com/akamai/entropy-ip.git
in terminal in current reporitory to extract the source code0-create_py_envs.txt
to set up a conda enviroment with python 2 and necessary packages for entropy-ip (consider pip or atp as alternative solutions)
to run entropy-ip for addresses modeling:./ALL.sh <ips> <target>
, where <ips>
is your dataset file, and <target>
is the output directory for storing the results@DressPD
to install eip-generator:
https://github.com/pforemski/eip-generator
in terminal in current reporitory to extract the source codesudo apt-get install golang-go
to install GO if not availablemake \ go build -o eip-generator eip-generator.go lib.go
to run eip-generator for addresses creation:./eip-convert.py ../ipv6_model/segments ../ipv6_model/analysis ../ipv6_model/cpd > ../ipv6_model/eip.model
to translate the model./eip-generator -M 100000 -N 8000000 < ../ipv6_model/eip.model > generated_ipv6_addresses.txt
to generato 100k new addressespython3 ipv6_de_transform.py > ../ipv6_hitlists/generated_ipv6_addresses.txt
to format the addresses
-M int -> max. number of addresses per model state (default 1000)
-N int -> approx. number of addresses to generate (default 1000000)
-P int -> max. depth in model to run in parallel (default 4)
-S float -> minimum state probability, 0 = auto
-V -> verbose
-p -> pass stdin to stdout
@DressPD
to execute the operation, perform the following processes:
chmod +x 1-retrieve_addresses.sh
to allow execution of customs bash files./1-retrieve_addresses.sh
that will download weekly list of actives addresses and decode into a local .txt file:
ipv6_retrieval.py
will be executed downloading and storing in the working directory ipv6 hitlist called responsive_ipv6_addresses.txtipv6_identify_prefixes.py
will iterate the hitlist, remove aliased addresses in /64 prefix and generate 1 pseudo-random address for each 4-bit /68 subprefix storing the output in a list and file called aliased_ipv6_addresses.txt@zhang12574
chmod +x dealiase_addresses.sh
to allow execution of customs bash files./2-dealiase_addresses.sh
will do the previous two jobs, and it is included and called also in ./1-retrieve_addresses.sh
@DressPD
chmod +x 3-model_addresses.sh
to allow execution of customs bash files./3-model_addresses.sh
that will provide the folllowing tasks:
ipv6_transform.py
will prepare dealiased_ipv6_addresses.txt IPv6 list in hex IP format (32 hex characters per line, no colons)./ALL.sh <ips> <target>
will generate new ipv6 model based on the input hitlist@DressPD
chmod +x 4-generate_addresses.sh
to allow execution of customs bash files./4-generate_addresses.sh
that will provide the folllowing tasks:
eip-convert.py
will convert the previous model in readble input to generat addresses./eip-generator
will generate new ipv6 addresses based on the input file@zhang12574
chmod +x 5-scan_all.sh
to allow execution of customs bash files./5-scan_all.sh
daily to get the scan result for de-aliased and generated addresses and produce reports in dedicate folder@zhang12574
chmod +x 6-analysis.sh
to allow execution of customs bash files./6-analysis.sh
result_aggregate.py
will aggregate the results in numerical format from the responses collectedplotting.py
will iterate the named files and produce a line chart showing the hit ratio per day in the reports folder