> For the complete documentation index, see [llms.txt](https://reeves0x0.gitbook.io/linux-under-attack/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://reeves0x0.gitbook.io/linux-under-attack/scan/01-skan-nmap.md).

# 01 - Скан nmap

<https://nmap.org/>**Nmap** - пожалуй самый мощный инструмент командной строки для сканирования сети и проверки устройств, их открытых портов, а также для определения информации об операционных системах и службах, запущенных на удаленных узлах в сети. \
К тому же его функционал легко расширяется за счет плагинов написанных на Lua

```bash
// Быстрый скан подсети, без проверки открытых портов (ищем живые хосты)
nmap -sn 192.168.140.0/24
```

```bash
// Скрытое SYN сканирование, + все порты TCP, ОС и службы и вывод в файл
nmap -sS -A -p- -T4 192.168.140.129 -oN result.txt
*
// Сканирование SYN сканирование, + все порты UDP, ОС и службы и вывод в файл
nmap -sU -A -p- T4 192.168.140.129 -oN result.txt 
```

Нужно понимать что флаги `-A` и -`T4` являются агрессивными, а значит это повышает риск быть обнаруженным.\
Исходя из задачи: "найти в локальной сети web-server" .\
Я бы рекомендовал следующие шаги:

```bash
// Находим хосты с открытими портами 80 и 443 в подсети /24
nmap -sS  -p 80,443 192.168.0.1/24
*
// Идентифицируем web-сервер и его версию (без определения ОС)
nmap -sV  -p 80,443 192.168.0.100
```

Так же от уклонения от firewall или IDS бывает полезно использовать `ACK`-сканирование (`nmap -sA`), `фрагментировать` пакеты (`nmap -f`), играться с `mtu (`nmap --mtu`)` добавлять в пакет случайные байты - `nmap --data-length, принудительно задавать исходящий порт пакета (nmap --source-port).`

<figure><img src="/files/5uzlJrW9co6fSYJ4Db9A" alt=""><figcaption><p>Пример работы Nmap</p></figcaption></figure>

В данном примере сканирования, нас итересуют открытые порты 22 - SSH и 80 - Apache.\
Запомним этот момент, в дальнейшем будем работать с ними.
