Проблема Nmap как вывести в результате ip

  • Автор темы Автор темы tr1stan
  • Дата начала Дата начала
  • Теги Теги
    nmap
T

tr1stan

Доброго всем времени суток.
Помогите пожалуйста решить проблему.
Нужно с помощью Nmap просканировать список IP из файла на 22 порт и вывести в мой файл просто список IP.
Что то типа этого, но это у меня не работает:
sudo nmap --open -p 22 -iL /root/diapazon.txt | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' > /root/results.txt
У меня по какой-то причине после запуска, все стоит на месте.
[doublepost=1506798064,1506784379][/doublepost]и вот так пробую, все равно стоит на месте.
sudo nmap -p 22 -v -Pn --open -iL /root/diapazon.txt -oG /root/results.txt | awk '/22\/open/ {print $2}'
 

Вложения

  • Снимок экрана от 2017-09-30 18-11-42.png
    Снимок экрана от 2017-09-30 18-11-42.png
    14,7 КБ · Просмотры: 528
  • Нравится
Реакции: Vander
nmap -p 22 -iL /root/diapazon.txt | grep -B5 "22/tcp open" | grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}" > /root/results.txt;
cat /root/results.txt;


Стоит он потому что ему нужно сначала выполнить задачу по сканированию, потом уже грепать. По идее это можно решить циклом:

while read /root/results.txt do ...

Но это по идее у меня такое не запустилось и как цикл работать не стало. Плюс большое количество диапазонов таким простым образом нельзя сканировать, nmap просто повиснет. Нужно поставить таймауты, максимальное количество задач и можно ещё -T5 поставить. Вернусь домой, могу скинуть как у меня такой скрипт выглядит. Кстати ещё один минус в файле все ip будут без пробелов, это здорово усложняет читаемость, но для продолжения работы с ними у софта проблем не возникает, если сделать cat то он выдаст все ip в по одному в каждой строке. Пробовал текст преобразовать sed, но не получилось. К сожалению сейчас вообще на это все мало времени остается. :_(
[doublepost=1509009848,1509002949][/doublepost]нашел опции для nmap:
nmap -T5 -p 22 -Pn -iL /root/diapazon.txt --max-retries 3 --min-hostgroup 100 --max-hostgroup 600 --host-timeout 180s

-T5 увеличивает уровень агрессии скана до максимума.
-Pn считать все хосты онлайн
--max-retries 3 количество повторных попыток просканировать хост. Можно поставить больше, но как я понимаю будет и так просканированно достаточно большое количсетво адресов, так что не имеет смысла ставить больше.
--max-hostgroup 600 возможно критичная опция в данном вопросе. Поскольку nmap увеличивает группу сканируемых хостов с каждым разом и в какой то момент просто виснет из-за их большого количества, когда идет объемная задача. Это предотвращает зависание.
--host-timeout 180s это таймаут если хост не сканится.

grep -B5 "22/tcp open" тут ищется строка 22 open и берется 5 вышестоящих строк где с заданными опциями и распологается ip хоста.

grep -E -o
-E
подразумевает применение регулярного выражения, а -o говорит что нужно забирать только символы соответствующие шаблону.

(и кстати да, лучше большое количество все таки сканировать masscan, скорость будет выше, может тогда создам отдельную тему для него, хотя у него опций конечно поменьше)
[doublepost=1509045132][/doublepost]Собственно самый простой вариант сканирования на порт:

masscan -p22 --conection-timeout 15 --open -iL /root/diapazon.txt | grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}" > /root/results.txt;


работает быстрее, результат читабельный. Думаю nmap в таком случае лучше использовать что бы он выводил ip с открытым портом и определенной ОС.
 
А в каком формате файлик diapazon.txt ???
Диапазоны в CIDR, текстовый документ самый обычный txt, но вроде если просто диапазон через "-" записывать то же должно нормально все идти. Плюс nmap в том что его можно запускать из под msf.
в продолжении темы можно ещё такую штуку сделать:


masscan -p22 --conection-timeout 15 --open -iL diapazon.txt | grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}" > results.txt;
nmap -T4 -p22 -O -iL results.txt --max-retries 5 --min-hostgroup 100 --max-hostgroup 600 --host-timeout 180s | grep -B 11 "OS details: Linux" | grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}" > goods.txt;


После масскана нмапом ищем определенную ОС которая нам нужна, хотя таким образом у меня nmap пропускал какие то хосты из-за обилия fingerprint'ов. я подумал что ему просто определять ОС по 22 порту не нравится, но потом все нормально просканилось. Я это все пишу к тому что можно с этим много всего интересного сделать.

пример текстового файла:
 

Вложения

Нужно с помощью Nmap просканировать список IP из файла на 22 порт и вывести в мой файл просто список IP.
Для сканирования портов удалённых компьютеров рекомендую пользоваться не nmap, а её ближайшей "подругой" - программой masscan.
Программа masscan сканирует порты удалённых компьютеров в разы быстрее.
Но, при большом количестве потоков, возможны пропуски IP.
В операционной системе LINUX, для вывода только списка IP предлагаю воспользоваться командой
masscan -iL ranges.txt -p3389 --rate=1000 |awk '{print $6}' > result.txt

где
ranges.txt - текстовый файл со списком диапазонов Ip,
--rate=1000 - количество потоков сканирования,
-p3389 - порт сканирования,
result.txt - текстовый файл, в котором сохранится список результат сканирования.
В операционной системе Windows проще всего воспользоваться графической оболочкой этой программы.

Но, если всё-таки тебе нужен в работе nmap, то команда для вывода только списка IP может иметь примерно следующий вид
nmap -sP 217.168.69.0/24 | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' > result.txt
 
Последнее редактирование модератором:
Вот как-то странно получается коллеги. Просканил masscan'oм Лондон, на порты 3389 и 22. А там аж
Scanning 29728 hosts [1 port/host]
Но! Не нашел ни одного хоста.
0.00-kpps, 100.00% done, waiting 5-secs, found=0
Делал так:
masscan -iL diapazon.txt -p3389 --rate=100 |awk '{print $6}' > result.txt
Как видите потоков мало. В чем причина? Может от провайдера что-то?
 
  • Нравится
Реакции: Vander
В какой операционной системе запускал сканирование ?
 
  • Нравится
Реакции: Vander
Ой, ой ))
Неожиданный для меня ответ, неожиданная ось )
Признаюсь, никогда не работала с ней.
Программой mascan я сканировала только в Windows или RedHat-подобных дистрибутивах.
Команда
Код:
masscan -iL diapazon.txt -p3389 --rate=100 |awk '{print $6}' > result.txt
в моих случаях работала безотказно.
 
  • Нравится
Реакции: Vander
Как видите потоков мало. В чем причина? Может от провайдера что-то?
Аналогичная проблема. Пробовал в ubuntu и archlinux. Выводит по нулям либо 3-5 штук. при повторном сканировании они пропадают. Кто нибудь разобрался в чем может быть дело??
 
Аналогичная проблема. Пробовал в ubuntu и archlinux. Выводит по нулям либо 3-5 штук. при повторном сканировании они пропадают. Кто нибудь разобрался в чем может быть дело??
разобраться. в чём проблема не сложно.
Вот план.
1. Сначала проверим, корректно ли сканирует masscan без всяких наворотов.
# masscan -iL ranges.txt -p3389 --max-rate 100 -oL result.txt
Имейте ввиду. что masscan записывает результат сканирования в файл result.txt ПОСЛЕ ПРОЦЕССА сканирования. То есть необходимо дождаться окончания процесса.
2. Результатом сканирования будет текстовый файл , в котором помимо IP адресов содержится ненужная нам информация.
Код:
#masscan
open tcp 3389 5.242.180.247 1569881769
open tcp 3389 213.242.5.150 1569881772
open tcp 3389 78.36.202.10 1569881970
open tcp 3389 83.212.150.166 1569882364
open tcp 3389 83.219.149.2 1569882373
open tcp 3389 194.205.156.12 1569882566
open tcp 3389 109.227.3.147 1569882570
open tcp 3389 109.111.156.105 1569882571
open tcp 3389 109.229.218.34 1569882583
open tcp 3389 212.44.62.22 1569882776
open tcp 3389 109.237.1.221 1569882981
open tcp 3389 185.113.212.120 1569882984
open tcp 3389 193.162.24.6 1569883170
open tcp 3389 209.287.224.82 1569883186
open tcp 3389 227.188.72.142 1569883578
open tcp 3389 95.55.422.141 1569883582
open tcp 3389 188.158.138.88 1569883771
open tcp 3389 195.145.212.58 1569883974
open tcp 3389 180.217.22.128 1569883979
# end
Поэтому команда
# masscan -iL diapazon.txt -p3389 --rate=100 |awk '{print $6}' > result.txt
должна очистить всю ненужную инфу и оставить только список IP.
А так как у вас файл result.txt оказался пустым, то это говорит о том, что вторая часть команды " |awk '{print $6}' > result.txt " - некорректна в вашем случае.
Вероятно, нужно заменить цифру 6 на цифру 4, чтобы получилось " |awk '{print $4}' > result.txt "
Вся команда будет выглядеть следующим образом:
# masscan -iL ranges.txt -p3389 --rate=100 |awk '{print $4}' > result.txt

3. Для анонимного сканирования через TOR с использованием проксификатора proxichains4, команда будет выглядеть следующим образом:
proxychains4 masscan -iL ranges.txt -p3389 --rate=100 |awk '{print $4}' > result.txt
 
Как видите потоков мало. В чем причина? Может от провайдера что-то?
Нужно заменить " --rate=100 " на "--max-rate 100", чтобы в итоге получилось:
# masscan -iL ranges.txt -p3389 --max-rate 100 -oX result.txt

Если этот совет не помогает, то список диапазонов IP ranges.txt записать НЕ в CIDR, а в обычном виде.
Код:
5.3.31.0-5.3.31.255
5.11.64.0-5.11.79.255
5.44.59.0-5.44.59.255
 
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!