Сканирование стран

Скачиваем базы стран
lite.ip2location.com/

wget https://download.ip2location.com/lite/IP2LOCATION-LITE-DB1.CSV.ZIP
unzip IP2LOCATION-LITE-DB1.CSV.ZIP

wget https://download.ip2location.com/lite/IP2LOCATION-LITE-DB1.IPV6.CSV.ZIP
unzip IP2LOCATION-LITE-DB1.IPV6.CSV.ZIP


grep Ukraine IP2LOCATION-LITE-DB1.CSV> ukraine.csv

grep Austria IP2LOCATION-LITE-DB1.CSV > austria.csv

grep Syrian IP2LOCATION-LITE-DB1.CSV > syrian.csv

grep Iran IP2LOCATION-LITE-DB1.CSV > iran.csv

grep Russian IP2LOCATION-LITE-DB1.CSV > russian.csv

grep Kazakhstan IP2LOCATION-LITE-DB1.CSV > kazakhstan.csv

IPv6

grep Austria IP2LOCATION-LITE-DB1.IPV6.CSV > austria_v6.csv
grep Ukraine IP2LOCATION-LITE-DB1.IPV6.CSV> ukraine_v6.csv
grep Syrian IP2LOCATION-LITE-DB1.IPV6.CSV> syrianv6.csv
grep Iran IP2LOCATION-LITE-DB1.IPV6.CSV> iran_v6.csv
grep Russian IP2LOCATION-LITE-DB1.IPV6.CSV> russian_v6.csv
grep Kazakhstan IP2LOCATION-LITE-DB1.IPV6.CSV> kazakhstan_v6.csv




parse.php — (не работает для IPv6)
<?php 
$infile = $argv[1];
$outfile = $argv[2];
$fp = fopen($outfile,'w');
$handle = fopen($infile, "r");
if ($handle)
{
    while (($line = fgets($handle)) !== false) {
        $line = trim($line);
        $a = explode(',',$line);
        $from = str_replace('"','',$a[0]);
        $to = str_replace('"','',$a[1]);
        for($i=$from;$i<$to;$i++)
        {
          $ip = long2ip($i);
          fwrite($fp,$ip."\n");
          if(++$j % 10000==0)
                echo ".";
        }
    }
    fclose($handle);
}
fclose($fp);



php parse.php ukraine.csv ukraine.ips
php parse.php austria.csv austria.ips
php parse.php syrian.csv syrian.ips
php parse.php iran.csv iran.ips
php parse.php russian.csv russian.ips
php parse.php kazakhstan.csv kazakhstan.ips


csv вида
"3651081728","3651081983","AT","Austria"
"3652020992","3652021247","AT","Austria"

превращаем в
217.199.95.1
217.199.95.2
217.199.95.3
...
217.199.95.253
217.199.95.254

Считаем количество IP адресов для сканирования
wc -l austria.ips
#11173550
wc -l iran.ips
#12582507
wc -l kazakhstan.ips
#3193725
wc -l russian.ips
#45212923
wc -l syrian.ips
#1279525
wc -l ukraine.ips
#11620944 

Для качества и скорости сканирования надо регулировать параметр --max-rate

сканирование Windows машин
masscan -p445 --rate 300 -iL russian.ips -oG russian.445.scan && cat russian.445.scan | wc -l

DNS open-resolver
masscan -pU:53 --max-rate 100000 -iL russian.ips -oG russian.53.scan
cat russian.53.scan | wc -l

MongoDB
masscan -p:27017 --max-rate 100000 -iL russian.ips -oG russian.27017.scan
russian.27017.scan | wc -l

Elasticsearch
masscan -p:9200 --max-rate 100000 -iL russian.ips -oG russian.9200.scan
cat russian.9200.scan | wc -l

Shodan
all:"mongodb server information" all:"metrics" country:ru
port:27017 -all:"partially" all:"fs.files" country:ru
port:"9200" all:"elastic indices" country:ru


Поиск открытых резолверов

Метод прост: с помощью команды dig проверяем, сработает ли на данном IP резолвинг случайного адреса, который я предоставлю. Для файла со всеми IP я поставил в цикл команду
dig +short test.openresolver.com TXT @ip.of.dns.server
Если получен ответopen-resolver-detected, адрес записывается в лог.

Нет комментариев