Nmap VS superscan4 [solved]
В винде использовал для сканирования superscan4, очень шустрая штука + дает нужный мне формат вывода.
Вот переехал на линукс начал сканировать, nmap медленне сканирует, покурил маны, скорость увеличил, получил вот такую каманду
nmap 192.168.1.1-255 -n -sS --open --max-retries 0 -p T:445 -T4 -oA list
А вот как мне преобразовать вывод из:
# Nmap 4.76 scan initiated Wed Nov 26 18:37:00 2008 as: nmap -n -sS --open --max-retries 0 -p T:445 -T4 -oA list 192.168.1.1-255
Host: 192.168.1.2 () Ports: 445/open/tcp//microsoft-ds///
Host: 192.168.1.7 () Ports: 445/open/tcp//microsoft-ds///
Host: 192.168.1.55 () Ports: 445/open/tcp//microsoft-ds///
Host: 192.168.1.56 () Ports: 445/open/tcp//microsoft-ds///
# Nmap done at Wed Nov 26 18:37:03 2008 -- 255 IP addresses (4 hosts up) scanned in 2.78 seconds
В вот такой формат
192.168.1.2:445
192.168.1.7:445
92.168.1.55:445
192.168.1.56:445
Придумал только такое:
slava@SS19 ~ $ cat list.gnmap |grep -Eo "[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}"
26 18:37:00
192.168.1.1
192.168.1.2
192.168.1.7
192.168.1.55
192.168.1.56
26 18:37:03
И как мне к этому прибавить порт (только один 445) ?
- Для комментирования войдите или зарегистрируйтесь
Я бы предложил использовать
Я бы предложил использовать sed, если nmap нельзя настроить на вывод в нужном формате
Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.
sed
что-то у меня с sed не клеится , как вне просто добавить несколько символов в конец строки ?
| sed
| sed 's/$/<что_добавить>/'
Но я бы форматировал sed'ом весь вывод nmap (вытащил только адрес и порт), а grep не использовал бы.
Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.
sed
Как удалить от сюда
192.168.1.2 : 445/open/tcp//microsoft-ds///
192.168.1.7 : 445/open/tcp//microsoft-ds///
192.168.1.55 : 445/open/tcp//microsoft-ds///
192.168.1.56 : 445/open/tcp//microsoft-ds///
Вот эту строку /open/tcp//microsoft-ds/// ?
У меня sed ругается
Выложите ваш скрипт, которым
Выложите ваш скрипт, которым вы пользуетесь и мы посмотрим. Телепаты нынче в отпуске.
sed
SS19 slava # cat list.gnmap| sed -e '/#/d'| sed 's/Host://g' |sed 's/()//g'| sed 's/Ports//g'
192.168.1.2 : 445/open/tcp//microsoft-ds///
192.168.1.7 : 445/open/tcp//microsoft-ds///
192.168.1.55 : 445/open/tcp//microsoft-ds///
192.168.1.56 : 445/open/tcp//microsoft-ds///
А дальше
cat list.gnmap| sed -e '/#/d'| sed 's/Host://g' |sed 's/()//g'| sed 's/Ports//g'|sed ''s//open/tcp//microsoft-ds/////g'
>
sed -e 's/Host: \(.*\) ()
sed -e 's/Host: \(.*\) () Ports: \(.*\)\/open.*/\1:\2/'
sed
SS19 slava # cat list.gnmap| sed -e '/#/d' |sed -e 's/Host: \(.*\) () Ports: \(.*\)\/open.*/\1:\2/'
Host: 192.168.1.2 () Ports: 445/open/tcp//microsoft-ds///
Host: 192.168.1.7 () Ports: 445/open/tcp//microsoft-ds///
Host: 192.168.1.55 () Ports: 445/open/tcp//microsoft-ds///
Host: 192.168.1.56 () Ports: 445/open/tcp//microsoft-ds///
Не чего или я что то делаю не так ?
надо так: ~/tmp $ cat z | sed
надо так:
~/tmp $ cat z | sed -e 's/Host: \(.*\) () Ports: \(.*\)\/open.*/\1:\2/'
Может быт так лучше:cat z |
Может быт так лучше:
cat z | sed -e '/#/d' | sed -e 's/^Host: \(.*\) () Ports: \(.*\)\/open.*/\1:\2/'
sed --version
GNU sed версия 4.1.5
Copyright (C) 2003 Free Software Foundation, Inc.
Ну и я поизвращаюсь :) grep
Ну и я поизвращаюсь :)
grep Host test.txt | awk '{print $2,$5}' | awk -F \/ '{print $1}' | sed s/\ /:/
192.168.1.2:445
192.168.1.7:445
192.168.1.55:445
192.168.1.56:445
Я ♥ Gentoo & Funtoo
sed
ftp://linux.vsi.ru/pub/list.gnmap
Вот оригинал проверьте на нем ! Пожалуйста !
ВСЕМ большое спасибо!!!
Вот так у меня все заработало
cat list.gnmap |grep Host | awk '{print $2,$5}' | awk -F \/ '{print $1}' | sed s/\ /:/
А какая разница, на каком
А какая разница, на каком файле проверять?
grep Host list.gnmap | awk '{print $2,$5}' | awk -F \/ '{print $1}' | sed s/\ /:/
192.168.1.2:445
192.168.1.7:445
192.168.1.55:445
192.168.1.56:445
Я ♥ Gentoo & Funtoo
У тебя в файле после "()" не
У тебя в файле после "()" не пробел, а табуляция.
Так должно работать:
cat list.gnmap | sed -e '/#/d' | sed -e 's/^Host: \(.*\) ()\tPorts: \(.*\)\/open.*$/\1:\2/'
Ну тогда так: %grep Host
Ну тогда так:
%grep Host list.gnmap | awk '{print $2":"$5}' | awk -F \/ '{print $1}'
192.168.1.2:445
192.168.1.7:445
192.168.1.55:445
192.168.1.56:445
Я ♥ Gentoo & Funtoo
дожгу...
дожгу...
#nmap -n -sS --open --max-retries 0 -p T:445 -T4 -oA list -oX nmaptest 192.168.1.0/24
#cat nmap.php
$file="nmaptest";
$xml = simplexml_load_file($file);
foreach($xml->host as $host)
{
if ( intval($host->ports->port['portid'])==445 && $host->ports->port->state['state']='open' )
echo($host->address['addr'].':445'),"\n";
}
?>
$ php nmap.php
192.168.1.2:445
192.168.1.5:445
Рецептов вам уже
Рецептов вам уже накидали.
1) Скучно под линем без sed/awk/grep/cut. Это как аз, буки,веди и глагол
2) Сам nmap обладает достаточно богатыми опциями форматирования вывода, смотри man nmap раздел OUTPUT
ЗЫ
Кстати в качестве сканера безопасности можно попробовать openvas. Дельная прожка
ping
а можно по пингу IP отсортировать ?
Ну или как скормить пингу список IP из файла ?
Вот навоял
У меня появляеться файлик ping.host , скармливаю его fping
Потом делаем
SS19 nmap # fping -q -u -C 3 -f ping.host >host.alive
192.168.1.2 : 4.45 0.24 0.24
192.168.1.7 : 4.37 0.21 0.22
192.168.1.55 : 4.81 0.42 0.42
192.168.1.56 : 0.02 0.02 0.01
Вывод только в консоли в host.alive пусто.
Что делать ?
Я в дальнейшем хотел попробывать с помощью paste объеденить два файла $IP:$PORT и host.alive.
.
Используй "2>&1 >host.alive"
http://www.google.com/search?q=%222%3E%261+%3E%22
Возможно, неправильно понял,
Возможно, неправильно понял, но, если необходим вывод в консоль и запись в файл, можно использовать tee:
Your_CMD | tee > file.txt
Я ♥ Gentoo & Funtoo