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
– Gentoobrew 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.).
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
.