ZMap – Brzi internet skener


ZMap – Brzi internet skener

Uvod

Ako ste pentester ili jednostavno volite da skenirate mreže, onda vam je ZMap: Brzi Internet skener već dobro poznat. Ali ima i onih koji ne znaju, zato ćemo baciti pogled na neke detalje vezane za ovaj internet skener.

ZMap – Brzi Internet skener

ZMap je brzi internet skener (open-source) dizajniran za pregledanje mreža šriom Interneta i za veoma kratko vreme može da izvrši sveobuhvatno skeniranje IPv4 adresnog prostora, pa čak i većih delova. Može da postigne neverovatne rezultate. ZMap je sposoban da za oko 45 minuta skenira ceo Internet na gigabitnoj mrežnoj konekciji, ali sa konekcijom od 10gigE i PF_RING-om za manje od 5 minuta može skenirati IPv4 adresni prostor.

Za razliku od prethodnik mrežnih alata, ovaj brzi internet skener ima takvu arhitekturu koja pružu skeniranje kompletnog adresnog prostora. ZMap radi na GNU/Linux-u, macOS-u, BSD-u i podržava TCP SYN i ICMP echo zahteve.

ZMap instalacija

Lista komandi za instaliranje putem ugrađenih menadžera paketa na sledećim operativnim sistemima:

  • sudo yum install zmap – Fedora 19+ ili EPEL 6+
  • sudo apt install zmap  – Debian 8+ ili Ubuntu 14.04+
  • sudo emerge zmap – Gentoo
  • brew install zmap – macOS (upotrebom Homebrew-a)
  • sudo pacman -S zmap – Arch Linux

It has a lot of dependencies, such as: CMake, GMP, libdnet, Gengetopt, etc. To install required dependencies, write following commands:

  • RHEL- i sistemi bazirani na Fedora sistemu (uključujući CentOS):
sudo yum install cmake gmp-devel gengetopt libpcap-devel flex byacc json-c-devel libunistring-devel
  • Sistemi bazirani na Debian sistemu (including Ubuntu):
sudo apt-get install build-essential cmake libgmp3-dev gengetopt libpcap-dev flex byacc libjson-c-dev pkg-config libunistring-dev
  • macOS sistemi (upotrebom Homebrew-a):
brew install pkg-config cmake gmp gengetopt json-c byacc libdnet libunistring

Za kompajliranje ZMap skenera pokrenite:

cmake .
make -j4

a zatim ga instalirajte: sudo make install .

Napomena: Podrška za Redis, po podrazumevanim podešavanjima, nije omogućena. Ukoliko želite da ZMap koristite sa Redis-om, najpre morate instalirati hiredis (RedisDB podržan u C-u). Zatzim pokrenite cmake na sledeći način:

-DWITH_REDIS = ON.

  • libhiredis-dev – Debian/Ubuntu;
  • hiredis-devel – Fedora/RHEL/CentOS

ZMap opcije

Slika terminala pokazuje neke od osnovnih i sken opcija. U nastaku teksta ćemo izlistati mrežne i napredne opcije (postoje takođe i izlazne opcije, napredne opcije, udp probe modul ipcije, izlazni filteri, itd.).

brzi internet skener

Po podrazumevanim podešavanjima, ZMap pokušava da skenira propusnu moć vašeg interfejsa i lagano može da iskoristi protok od 1 Gbit/s. Upotrebite -B (--bandwidth) opciju kako biste podesili maksimalni protok (neophodno je da ograničite mrežu i upstream konekciju).

Mrežne opcije

-s, --source-port=port|range
    Source port(s) for scan packets

-S, --source-ip=ip|range
    Source address(es) for scan packets

-G, --gateway-mac=addr
    Specify gateway MAC address. All packets will be sent to this Ethernet address.

-i, --interface=name
    Specify network interface to use.

-X, --vpn
    If using ZMap through a VPN, use this  option.  Instead  of  sending  raw  Ethernet
    frames,  ZMap  will  send  IP packets. When using this option, it is generally also
    necessary to provide the interface (through the -i flag).

Test opcije

-M, --probe-module=name
     Select probe module  (default=tcp_synscan)

-O, --output-module=name
    Select output module  (default=simple_file)

-f, --output-fields=fields
    Fields that should be output in result set; see --list-output-fields

    --probe-args=args
    Arguments to pass to probe module

    --output-args=args
    Arguments to pass to output module

    --list-output-modules
    List available output modules

    --list-probe-modules
    List available probe modules

    --list-output-fields
    List all fields that can be output  (using  --output-fields  )  by  selected  probe module

ZMap primeri

Podrazumevano, ZMap će na navedenom portu izvršiti TCP SYN skeniranje po maksimalno mogućoj brzini. Sa konzervatinom kofiguracijom ZMap je sposoban da skenira čak 10,000 nasumičnih adresa na portu 80 (max 10Mbps) na sledeći način:

$ zmap --bandwidth=10M --target-port=80 --max-targets=10000 --output-file=results.csv

ili:

$ zmap -B 10M -p 80 -n 10000 -o results.csv

Ako je skeniranje uspešno startovano, bićete u mogućnosti da pratite statuse (ažurirano) u realnom vremenu (informacije o trenutnom stanju skeniranja). Trebalo da izgleda slično ovome:

0% (1h51m left); send: 28777 562 Kp/s (560 Kp/s avg); recv: 1192 248 p/s (231 p/s avg); hits: 0.04%
0% (1h51m left); send: 34320 554 Kp/s (559 Kp/s avg); recv: 1442 249 p/s (234 p/s avg); hits: 0.04%
0% (1h50m left); send: 39676 535 Kp/s (555 Kp/s avg); recv: 1663 220 p/s (232 p/s avg); hits: 0.04%
0% (1h50m left); send: 45372 570 Kp/s (557 Kp/s avg); recv: 1890 226 p/s (232 p/s avg); hits: 0.04%

Ukoliko želite da isključite reserved/unallocated IP prostor, preporučeno je da koristite blacklist fajl. ZMap će podrazumevano upotrebiti mali blacklist fajl, koji se nalazi na sledećoj lokaciji: /etc/zmap/blacklist.conf.

Takođe, ukoliko želite da dodate/izmenite određena podešavanja (maksimalni protok, blacklist fajl, itd.) svaki put kada pokrenete ZMap, možete upotrebiti custom konfiguracioni fajl ili da podešavanja specifikujete unutar glavnog ZMap konfiguracionog fajla – /etc/zmap/zmap.conf.