NFsec Logo

Szybsze skanowanie nmap za pomocą parallel

08/03/2020 w Hacks & Scripts Brak komentarzy.  (artykuł nr 725, ilość słów: 302)

Z

ałóżmy, że posiadamy wiele projektów u publicznego dostawcy chmury obliczeniowej. Jeśli pracują na nich różni użytkownicy może dojść do sytuacji, w której zostanie otwartych zbyt wiele portów do danej usługi. Aby posiadać kontrolę nad tym, co nowego pojawia się w projektach można m.in. systematycznie skanować ich adresy IP. Jednak, aby cały proces nie trwał za długo nawet dla dużej ilości projektów można go zrównoleglić. Na pomoc przychodzi nam już znany parallel. Na początek musimy stworzyć listę projektów w formacie CSV:

project1,xxx.xxx.xxx.xxx
project1,xxx.xxx.xxx.xxx
project2,xxx.xxx.xxx.xxx

Następnie tworzymy skrypt odpalający nmap.sh:

#!bin/bash

mkdir logs
cat projects-ips.csv | cut -f1 -d, | sort -u | while read project;
do mkdir logs/${project}; done

cat projects-ips.csv | while IFS="," read -r project ip;
do echo nmap -sS -T5 -Pn -p- -oG logs/${project}/${ip}.nmap $ip; done > scan.out

parallel --jobs 32 < scan.out

Powyższy kod uruchamia 32 równoległe skanowania nmap. Liczbę zadań możemy odpowiednio dostosować pod względem możliwości sieciowych i obliczeniowych maszyny źródłowej. Dzięki użyciu raportu w formacie, który jest przyjazny do przeszukiwania możemy wygenerować raport.sh wszystkich otwartych portów, jakie pojawiły się podczas skanowania:

#!/bin/bash

for dirname in logs/*;
do
  for filename in ${dirname}/*.nmap;
  do
    project=`echo $filename | cut -d/ -f2`;
    ip=`echo $filename | cut  -d/ -f3`;
    ip=${ip::-5};
    cat $filename | cut -d' ' -f2,4- | sed -n -e 's/Ignored.*//p' |\
    awk -v ip="$ip" -v project="$project" '{$1=""; for(i=2; i<=NF; i++)
    { a=a" "$i; }; split(a,s,","); for(e in s) { split(s[e],v,"/");
    if (v[2] == "open") { printf project "," ip ",%s,%s\n" , v[1], v[5]}}; a="" }';
  done;
done;

Po uruchomieniu skryptu powinniśmy otrzymać raport w formacie:

project1,xxx.xxx.xxx.xxx, 53,domain
project1,xxx.xxx.xxx.xxx, 80,http
project2,yyy.yyy.yyy.yyy, 443,https

Więcej informacji: Faster nmap scanning with the help of GNU parallel

Kategorie K a t e g o r i e : Hacks & Scripts

Tagi T a g i : , , , , , , ,

Komentowanie tego wpisu jest zablokowane.