Categories: linux

nmap/

Данный пост представляет собой небольшую шпаргалку по сканеру портов Nmap, а также утилитам, идущим с ним в комплекте — Ncrack, Ncat, Ndiff и Nping. Уметь пользоваться Nmap полезно не только злобным хакерам, но и системным администраторам, а также devops. Как еще, например, проверить, не осталось ли в системе лишних открытых портов? Или избавиться от сигнатур, по которым можно удаленно определить используемую на сервере ОС? Как обычно, здесь мы рассмотрим самые основные параметры и флаги, а более подробную информацию всегда можно найти в man.

Далее, если для выполнения команды требуются права суперпользователя, она выполняется через sudo. Если такие права не требуются, sudo не используется.

Установка Nmap в Debian/Ubuntu:

sudo apt-get install nmap

Установка утилиты Ncrack (на момент написания поста она находится в альфе и потому не содержится в deb-пакете):

wget https: // nmap.org / ncrack / dist / ncrack-0.4ALPHA.tar.gz
tar -xvzf ncrack-0.4ALPHA.tar.gz
cd ncrack-0.4ALPHA
. / configure
make
sudo ckeckinstall

Сканируем 1000 наиболее часто используемых портов:

nmap 12.34.56.78

Указываем список портов:

nmap -p22, 80 , 100 200 12.34.56.78

Сканирование подсети:

nmap -p22 52.8.254.0 / 24

Сканирование списка хостов из файла:

nmap -p22 -iL iplist.txt

Генерировать списки случайных IP можно, например, таким скриптом на Perl :

#!/usr/bin/perl

use strict ;
use warnings ;

my $cnt = 0 ;
my %filter ;

my $gen_number = shift ;

if ( ! $gen_number ) {
die «Usage: $0 <number>» ;
}

while ( $cnt < $gen_number ) {
my $x = 1 + int ( rand ( 239 ) ) ;
my $y = int ( rand ( 256 ) ) ;
my $z = int ( rand ( 256 ) ) ;
my $w = 1 + int ( rand ( 254 ) ) ;

# see https://en.wikipedia.org/wiki/Reserved_IP_addresses
if ( ( $x == 10 ) || ( $x == 127 ) ) { next ; }
if ( ( $x == 100 ) && ( $y >= 64 ) && ( $y <= 127 ) ) { next ; }
if ( ( $x == 169 ) && ( $y == 254 ) ) { next ; }
if ( ( $x == 172 ) && ( $y >= 16 ) && ( $y <= 31 ) ) { next ; }
if ( ( $x == 192 ) && ( $y == 0 ) && ( $z == 0 ) ) { next ; }
if ( ( $x == 192 ) && ( $y == 0 ) && ( $z == 2 ) ) { next ; }
if ( ( $x == 192 ) && ( $y == 88 ) && ( $z == 99 ) ) { next ; }
if ( ( $x == 192 ) && ( $y == 168 ) ) { next ; }
if ( ( $x == 198 ) && ( $y == 18 ) ) { next ; }
if ( ( $x == 198 ) && ( $y == 19 ) ) { next ; }
if ( ( $x == 198 ) && ( $y == 51 ) && ( $z == 100 ) ) { next ; }
if ( ( $x == 203 ) && ( $y == 0 ) && ( $z == 113 ) ) { next ; }
if ( ( $x >= 224 ) && ( $x <= 239 ) ) { next ; }

my $ip = «$x.$y.$z.$w» ;
if ( $filter { $ip } ) { next ; }

$filter { $ip } = 1 ;
print «$ip n » ;
$cnt ++;
}

Сканирование методом установки TCP соединения:

nmap -p22, 80 -sT 12.34.56.78

SYN-сканирование:

sudo nmap -p22, 80 -sS 12.34.56.78

Прочие виды сканирования: FIN, Xmas Tree и NULL:

sudo nmap -p22, 80 -sF 12.34.56.78
sudo nmap -p22, 80 -sX 12.34.56.78
sudo nmap -p22, 80 -sN 12.34.56.78

Не определять доменные имена для сканируемых IP:

nmap -n -p22 12.34.56.78

Показывать причину, по которой определенный порт считается «открытым»:

nmap -p22, 80 , 100 200 —reason 12.34.56.78

Определение версии сервисов:

nmap -p22, 80 , 100 200 -sV 12.34.56.78

Определение операционной системы:

sudo nmap -O 12.34.56.78

Пингануть хосты для проверки, онлайн ли они, но не сканировать порты:

nmap -sn 12.34.56.0 / 24

Сканировать хосты, даже если они не отвечают на пинги:

nmap -p22, 80 -Pn 12.34.56.78

Считать, что хост онлайн, если он отвечает на SYN, посланный на порт 443:

nmap -p22, 80 , 443 -PS 443 12.34.56.0 / 24

Сканирование UDP (работает медленнее обычного сканирования TCP):

sudo nmap -sU -p123 tick.ucla.edu

Ограничиваем время, которое можно потратить на один хост:

nmap -p22 —host-timeout 1m 12.34.56.78

Управление степенью параллелизма:

nmap -p22 —max-parallelism 2 12.34.56.78
nmap -p22 —min-parallelism 2 12.34.56.78

Делаем паузу прежде, чем перейти к следующему хосту:

nmap -p22 —scan-delay 5s 12.34.56.0 / 24

Ограничение на число пакетов, посылаемых в секунду:

nmap -p22 —min-rate 1 —max-rate 100 12.34.56.78

Использование NSE (Nmap Scripting Engine) :

# обновляем базу данных скриптов
sudo nmap —script-updatedb

# натравляем все скрипты из группы default:
nmap —script default 12.34.56.78

# все скрипты, название которых начинается на http
nmap —script http- * 12.34.56.78

Ломаем SSH с помощью Ncrack:

ncrack ssh: // 12.34.56.78
ncrack —user root ssh: // 12.34.56.78

Fun fact! Существуют и другие утилиты для подбора паролей, заметно отличающиеся между собой поддерживаемыми протоколами и опциями. В частности, стоит обратить внимание на утилиты hydra и medusa .

Указываем списки логинов и паролей для Ncrack:

ncrack -U users.txt -P passwords.txt …

Выводим больше отладочной информации, включая подбираемые логины и пароли:

ncrack -d7

Используем Ncrack совместно с Nmap:

nmap 12.34.56.78 -oX scan.xml
ncrack -iX scan.xml

Использование Ndiff:

ndiff scan1.xml scan2.xml

Пример использования Nping:

sudo nping -c2 -p80 —tcp 12.34.56.78

Примеры использования Ncat:

ncat host 123 < send.txt
ncat -l > received.txt

Использование Ncat в качестве бэкдора:

ncat -k -l -p 3344 -e / bin / bash
ncat localhost 3344

Ncat для пробрасывания портов:

ncat -l 10.1.2.3 —keep-open 2222
—sh-exec «ncat 192.168.2.15 22»
ssh user @ 10.1.2.3 -p 2222

Ncat для расшифровки SSL:

ncat -l localhost —keep-open 8080
—sh-exec «ncat —ssl encrypted.google.com 443»

С сохранением трафика в файл:

ncat -l localhost —keep-open 8080 —hex-dump dump.log
—sh-exec «ncat —ssl encrypted.google.com 443»

Такая вот незамысловатая шпаргалка. Если вам есть, что к ней добавить, не стесняйтесь воспользоваться комментариями.

admin

Share
Published by
admin
Tags: Linux

Recent Posts

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

2 месяца ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

2 месяца ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

2 месяца ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

2 месяца ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

2 месяца ago

Как управлять журналами событий из командной строки

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

2 месяца ago