ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #20  
Старый 11.04.2009, 22:13
[underwater]
Познающий
Регистрация: 29.03.2009
Сообщений: 87
Провел на форуме:
2185909

Репутация: 308
По умолчанию

Если требуется быстро просканить некоторок количество сайтов и их ближайшие IP на маленький список возможных уязвимостей, то вот скрипт:

Код:
#! /usr/bin/perl -w

use Net::DNS;

if (@ARGV<2) {
   print <<END;
============================================================
            Usage: SCRIPT.PL TOP BOTTOM
                   ip4scan.pl 10 15 > out.txt
     TOP & BOTTOM: scope around ip
          example: ip = 64.125.86.120, TOP = 10  BOTTOM = 15
get range to scan: 64.125.86.105 ... 64.125.86.130

           in.txt: list hostnames for scan
       ipbase.txt: note base of scaned hostname
                   format hostname -> ip
============================================================
END
exit;}

open(IN, "<in.txt");
open(IPBASE, ">>ipbase.txt");
@hostname = <IN>;
chomp @hostname;

# Строим хэш $hostname -> $IP-адрес (только первый IP из возвращаемых)

foreach $hostname (@hostname) {
        $ip{$hostname} = &resolve($hostname);
}

# Записываем эти пары в одну кучу в файл без проверки на повторы

foreach $hostname (sort keys %ip) {
        print IPBASE "$hostname -> $ip{$hostname}\n";
}

# Строим диапазоны для сканирования вокруг целевых IP-адресов
# Нижнее и верхнее значение задается в параметрах, передаваемых скрипту

foreach $hostname (sort keys %ip) {
        $top = &ip2int( $ip{$hostname} ) + $ARGV[0];
        $bottom = &ip2int( $ip{$hostname} ) - $ARGV[1];

        @range = map {&int2ip($bottom + $_)} (0..$top-$bottom);
        print join ("\n", @range),"\n";
}

# Подпрограмма определения ip-адреса по имени хоста

sub resolve {
    my $res   = Net::DNS::Resolver->new;
    my $query = $res->search("$hostname");

    if ($query) {
       foreach my $rr ($query->answer) {
          next unless $rr->type eq "A";
          return $rr->address;
       }
    } else {
           warn "query failed: ", $res->errorstring, "\n";
    }
}

# Подпрограмма перевода IP-адреса в 32-разрядное число
# Лучше подпрограмм ip2int и int2ip не придумалось

sub ip2int {
    @a = split(/\./,$_[0]); 
    return $a[0]*256**3+$a[1]*256**2+$a[2]*256+$a[3];
}

# Подпрограмма перевода 32-разрядного числа в IP-адрес

sub int2ip {
    $d[0] = int($_[0]/256/256/256);
    $d[1] = int(($_[0]-$d[0]*256**3)/256/256);
    $d[2] = int(($_[0]-$d[0]*256**3-$d[1]*256**2)/256);
    $d[3] = int($_[0]-$d[0]*256**3-$d[1]*256**2-$d[2]*256);
    return join (".", @d);
}
Список с именами хостов находится в файле in.txt.На выходе в файле out.txt получаются диапазоны IP с заданными границами.
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Новый метод защитит компьютерные сети от новых вредоносных программ cash$$$ Мировые новости 4 15.01.2008 15:43
Изобретен новый метод защиты информации, хранящейся на мобильных телефонах DRON-ANARCHY Мировые новости 7 17.09.2005 20:34



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ