Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
vp-webdev
6 лет назад

Парсим сеть с помощью MASSCAN и Nmap


Начинающих нетсталкеров чаще всего интересует поиск открытых FTP серверов а также веб-страниц в каком-либо диапазоне IP адресов.

Узнать диапазон IP любого города России можно здесь:

https://4it.me/getlistip

или здесь для Казахстана:

http://serj.ws/iprange

Учимся работать с masscan и Nmap

Программа masscan предназначена для быстрого сканирования большого количества IP адресов, на предмет наличия открытых портов. Она работает в разы быстрее чем Nmap, но не обладает таким большим количеством модулей.

Обычно masscan применяют в связке с Nmap - сперва с помощью masscan сканируют диапазон, и составляют список IP с открытыми портами, которые нас интересуют. А далее уже скармливают полученный список программе Nmap, которая может вытащить заголовки веб страниц и проверить FTP сервера на возможность анонимного входа.

Все описанные далее действия подразумевают что мы находимся в Linux и у нас уже установлены masscan, Nmap и все зависимости.

Создадим в домашней директории папку example, а в ней файл masin.txt с диапазонами IP которые нужно просканировать. Обратите внимание на правильный формат записи строк с IP, совместимый с Nmap.

Для примера я поместил в файл masin.txt два диапазона

37.151.22.0/24
193.255.208.0/24

Теперь находясь в этом же каталоге откроем терминал и дадим команду

sudo masscan -p80,21 -iL masin.txt --rate=300 -oL masout.txt

Эта команда заставит masscan просканировать диапазоны из файла masin.txt на открытые порты 80 и 21, со скоростью 300 запросов в секунду. Результат будет выведен в файл masout.txt

После сканирования в нашем каталоге появится файл masout.txt в котором будут те IP в которых masscan нашел открытые 21 или 80 порт.

Теперь нам нужно очистить этот файл от лишних символов, оставив только IP адреса

Находясь в том же каталоге, запустим команду

awk '{ print $4 }' masout.txt > nmapin.txt

Эта команда очистит от лишних символов данные из файла masout.txt и запишет очищенный список IP в файл nmapin.txt который мы скормим программе Nmap

nmap -p 80,21 --script "http-title","ftp-anon" -iL nmapin.txt -oN output.txt

Наберемся терпения - Nmap работает не очень быстро. После того как команда отработает, у нас появится файл output.txt который мы проанализируем и превратим в удобный вид простым скриптом на Python

Листинг скрипта nparse.py

import subprocess
import inspect
import sys, os, codecs, re
import webbrowser

dic={
"\\xD0\\xB0":"а", "\\xD0\\x90":"А",
"\\xD0\\xB1":"б", "\\xD0\\x91":"Б",
"\\xD0\\xB2":"в", "\\xD0\\x92":"В",
"\\xD0\\xB3":"г", "\\xD0\\x93":"Г",
"\\xD0\\xB4":"д", "\\xD0\\x94":"Д",
"\\xD0\\xB5":"е", "\\xD0\\x95":"Е",
"\\xD1\\x91":"ё", "\\xD0\\x81":"Ё",
"\\xD0\\xB6":"ж", "\\xD0\\x96":"Ж",
"\\xD0\\xB7":"з", "\\xD0\\x97":"З",
"\\xD0\\xB8":"и", "\\xD0\\x98":"И",
"\\xD0\\xB9":"й", "\\xD0\\x99":"Й",
"\\xD0\\xBA":"к", "\\xD0\\x9A":"К",
"\\xD0\\xBB":"л", "\\xD0\\x9B":"Л",
"\\xD0\\xBC":"м", "\\xD0\\x9C":"М",
"\\xD0\\xBD":"н", "\\xD0\\x9D":"Н",
"\\xD0\\xBE":"о", "\\xD0\\x9E":"О",
"\\xD0\\xBF":"п", "\\xD0\\x9F":"П",
"\\xD1\\x80":"р", "\\xD0\\xA0":"Р",
"\\xD1\\x81":"с", "\\xD0\\xA1":"С",
"\\xD1\\x82":"т", "\\xD0\\xA2":"Т",
"\\xD1\\x83":"у", "\\xD0\\xA3":"У",
"\\xD1\\x84":"ф", "\\xD0\\xA4":"Ф",
"\\xD1\\x85":"х", "\\xD0\\xA5":"Х",
"\\xD1\\x86":"ц", "\\xD0\\xA6":"Ц",
"\\xD1\\x87":"ч", "\\xD0\\xA7":"Ч",
"\\xD1\\x88":"ш", "\\xD0\\xA8":"Ш",
"\\xD1\\x89":"щ", "\\xD0\\xA9":"Щ",
"\\xD1\\x8A":"ъ", "\\xD0\\xAA":"Ъ",
"\\xD1\\x8B":"ы", "\\xD0\\xAB":"Ы",
"\\xD1\\x8C":"ь", "\\xD0\\xAC":"Ь",
"\\xD1\\x8D":"э", "\\xD0\\xAD":"Э",
"\\xD1\\x8E":"ю", "\\xD0\\xAE":"Ю",
"\\xD1\\x8F":"я", "\\xD0\\xAF":"Я",
}

f=open('output.txt', 'r')
f2=open('output.html', 'w')

f2.write('<html lang="ru"><head><title>Scan results</title><meta charset="utf-8"></head><body>')

for x in f:
    if('Nmap scan report for' in x):
        hosts = re.search('(\d+\.\d+\.\d+\.\d+)', x)
        host=hosts.group(1).strip()
    if('Anonymous FTP login allowed' in x):
        f2.write('<a href="ftp://'+host+'" target="_blank">ftp://'+host+'</a><p>')
    if('http-title:' in x):
        x=x.replace('|_http-title:','')
        x=x.replace('| http-title: ','')
        w=x.strip()
        for k in dic:      
            if (k in w):
                w=w.replace(k, dic[k])
        f2.write('<a href="http://'+host+'" target="_blank">'+w+'</a><p>')

f2.write('</body></html>')
f2.close()
f.close()
        
webbrowser.open('output.html')  

Закинем данный скрипт в наш каталог и запустим командой

python3 nparse.py

Данный скрипт проанализирует файл output.txt и создаст список ссылок в виде HTML файла output.html и сразу откроет его в браузере.

Вуаля! Квест закончен - вы можете увидеть результаты нашего сканирования. Мы нашли несколько веб страниц и парочку открытых FTP серверов.

Материал подготовлен автором @pythono

242
14.160 GOLOS
На Golos с August 2017
Комментарии (2)
Сортировать по:
Сначала старые