> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/ru/reconnaissance/nmap.md).

# Nmap

Заметки по Nmap-разведке для сканирования портов, определения сервисов, скриптов NSE, обнаружения хостов, обхода файрвола и сканирования уязвимостей.

Nmap используется во время разведки для определения живых хостов, открытых портов, версий сервисов, операционных систем, результатов NSE-скриптов и потенциальных путей атаки.

{% hint style="info" %}
**Nmap**, что расшифровывается как "*Сетевой картограф*", — это инструмент с открытым исходным кодом, используемый для исследования и аудита сетей, а также для обнаружения хостов и сервисов в сети. Изначально он был создан Гордоном Лайоном, также известным как Фёдор Васкович. Nmap предоставляет возможности сетевого сканирования, которые позволяют пользователям обнаруживать устройства, подключённые к сети, определять сервисы, работающие на этих устройствах, и получать подробную информацию о сетевой конфигурации.
{% endhint %}

#### Справочник по распространённым командам и параметрам:

## Справочник параметров Nmap

### Обнаружение целей и хостов

| Параметр             | Описание                                                             |
| -------------------- | -------------------------------------------------------------------- |
| `10.10.10.0/24`      | Диапазон целевой сети.                                               |
| `-sL`                | Сканирование списка. Перечисляет цели без их сканирования.           |
| `-sn`                | Отключает сканирование портов и выполняет только обнаружение хостов. |
| `-Pn`                | Считает хосты онлайн и пропускает проверки обнаружения хостов.       |
| `-n`                 | Отключает разрешение DNS.                                            |
| `-PE`                | Выполняет обнаружение хостов с помощью ICMP Echo-запросов.           |
| `--disable-arp-ping` | Отключает ARP-ping-запросы в локальных сетях.                        |
| `--dns-server <ns>`  | Выполняет разрешение DNS с использованием указанного серверa имён.   |

### Выбор портов и типы сканирования

| Параметр            | Описание                                                                         |
| ------------------- | -------------------------------------------------------------------------------- |
| `--open`            | Показывает только открытые порты.                                                |
| `--top-ports <num>` | Сканирует указанное число самых распространённых портов.                         |
| `-p-`               | Сканирует все TCP-порты.                                                         |
| `-p22-110`          | Сканирует все порты между 22 и 110.                                              |
| `-p22,25`           | Сканирует только указанные порты 22 и 25.                                        |
| `-F`                | Быстрое сканирование. Сканирует 100 самых распространённых портов.               |
| `-sS`               | Выполняет TCP SYN-скан.                                                          |
| `-sT`               | Выполняет TCP connect-скан, полезный, когда нет привилегий для SYN-сканирования. |
| `-sA`               | Выполняет TCP ACK-скан, полезный для картирования правил брандмауэра.            |
| `-sU`               | Выполняет UDP-скан.                                                              |
| `-sV`               | Определяет версии сервисов на обнаруженных службах.                              |
| `-sC`               | Запускает NSE-скрипты, относящиеся к категории `по умолчанию`.                   |
| `--script <script>` | Запускает указанный NSE-скрипт или категорию скриптов.                           |

### Обнаружение и обход

| Параметр                             | Описание                                                                            |
| ------------------------------------ | ----------------------------------------------------------------------------------- |
| `-O`                                 | Выполняет определение ОС.                                                           |
| `-A`                                 | Включает определение ОС, определение версии, NSE-скрипты по умолчанию и traceroute. |
| `--packet-trace`                     | Показывает отправленные и полученные пакеты.                                        |
| `--reason`                           | Показывает причину, по которой Nmap сообщил о состоянии порта или хоста.            |
| `-D RND:5`                           | Использует пять случайных приманок для обхода брандмауэра/IDS.                      |
| `-e <interface>`                     | Указывает сетевой интерфейс, используемый для сканирования.                         |
| `-S 10.10.10.200`                    | Указывает исходный IP-адрес для сканирования.                                       |
| `-g <port>` / `--source-port <port>` | Указывает исходный порт для сканирования.                                           |

### Параметры вывода

| Параметр       | Описание                                                                                                |
| -------------- | ------------------------------------------------------------------------------------------------------- |
| `-oA filename` | Сохраняет результаты во всех доступных форматах вывода, используя `filename` в качестве базового имени. |
| `-oN filename` | Сохраняет результаты в обычном формате.                                                                 |
| `-oG filename` | Сохраняет результаты в формате, пригодном для grep.                                                     |
| `-oX filename` | Сохраняет результаты в XML-формате.                                                                     |

### Параметры производительности

| Параметр                     | Описание                                                         |
| ---------------------------- | ---------------------------------------------------------------- |
| `--max-retries <num>`        | Задаёт число повторных попыток для запросов сканирования портов. |
| `--stats-every=5s`           | Показывает статус сканирования каждые 5 секунд.                  |
| `-v` / `-vv`                 | Показывает подробный вывод во время сканирования.                |
| `--initial-rtt-timeout 50ms` | Задаёт начальный тайм-аут RTT.                                   |
| `--max-rtt-timeout 100ms`    | Задаёт максимальный тайм-аут RTT.                                |
| `--min-rate 300`             | Отправляет пакеты не медленнее указанной скорости.               |
| `-T <0-5>`                   | Задаёт шаблон времени, от `0` параноидального до `5` безумного.  |

## **Сканирование портов**

```bash
nmap --open -p- -sS --min-rate 5000 -vvv -n -Pn 192.168.0.1 -oG allPorts
```

Быстрое полное TCP SYN-сканирование портов, которое пропускает DNS и обнаружение хостов, показывает подробный ход выполнения и сохраняет вывод в grep-формате.

<figure><img src="https://hacking-notes.jord4n.pro/~gitbook/image?url=https%3A%2F%2F3467118603-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FwJ00xYl3QY03Wq54i4By%252Fuploads%252Fe6BGuXp1hLil6uT3Jtic%252Fimage.png%3Falt%3Dmedia%26token%3D96d46423-ca25-4471-a563-42daeae3be1e&#x26;width=768&#x26;dpr=4&#x26;quality=100&#x26;sign=bcba8a61&#x26;sv=1" alt=""><figcaption></figcaption></figure>

## **Сканирование версий портов**

```bash
nmap -p22,80,443 -sCV 192.168.0.1 -oN targeted
```

Точечное сканирование сервисов и скриптов по умолчанию по выбранным портам, сохранённое в обычном формате вывода.

<figure><img src="https://hacking-notes.jord4n.pro/~gitbook/image?url=https%3A%2F%2F3467118603-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FwJ00xYl3QY03Wq54i4By%252Fuploads%252F2MsfGLpxVpuiWEE7sRjJ%252Fimage.png%3Falt%3Dmedia%26token%3D767e772a-f3ea-4fee-b266-0c73398b7a4f&#x26;width=768&#x26;dpr=4&#x26;quality=100&#x26;sign=b468a586&#x26;sv=1" alt=""><figcaption></figcaption></figure>

## **Идентификация устройств, подключённых к сети**

```bash
nmap -sn 192.168.0.1/24
```

Сканирование для обнаружения хостов, позволяющее определить живые системы в диапазоне сети без сканирования портов.

<figure><img src="https://hacking-notes.jord4n.pro/~gitbook/image?url=https%3A%2F%2F3467118603-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FwJ00xYl3QY03Wq54i4By%252Fuploads%252FEFDeAo8BSjtTrsirRHC8%252Fimage.png%3Falt%3Dmedia%26token%3D679e4610-aa84-4b59-80e0-1a08f0c9140b&#x26;width=768&#x26;dpr=4&#x26;quality=100&#x26;sign=753ed2d0&#x26;sv=1" alt=""><figcaption></figcaption></figure>

## Обход брандмауэров с помощью Nmap

{% hint style="info" %}
Существует несколько способов обойти брандмауэр с помощью инструмента Nmap. Ниже приведены наиболее распространённые и эффективные методы для этой цели.
{% endhint %}

### Изменение размера отправляемых пакетов

> Техника обхода MTU, или «Maximum Transmission Unit», заключается в изменении размера отправляемых пакетов, чтобы избежать их обнаружения брандмауэром. Nmap позволяет вручную настроить максимальный размер пакета, чтобы пакеты были достаточно малы для прохождения через брандмауэр без обнаружения.

```bash
nmap 192.168.0.1 --mtu 8
```

### Добавить заполняющие данные

> Этот метод заключается в изменении длины отправляемых данных так, чтобы она была достаточно малой и не обнаруживалась брандмауэром. Nmap позволяет пользователям вручную настраивать длину отправляемых данных для обхода обнаружения.

```bash
nmap -p22 192.168.0.1 --data-length 21
```

### Вручную задать номер исходного порта

> Этот метод заключается в ручной настройке номера исходного порта отправляемых пакетов, чтобы избежать обнаружения. С помощью Nmap пользователи могут указать случайный исходный порт или конкретный порт для обхода брандмауэра.

```bash
nmap -p22 192.168.0.1 --source-port 53
```

### Отправка поддельных пакетов в сеть

> Этот метод обхода позволяет отправлять поддельные пакеты по сети, чтобы запутать системы обнаружения вторжений и избежать обнаружения брандмауэром. С `-D` помощью этой опции Nmap отправляет поддельные пакеты вместе с реальными, чтобы скрыть активность пользователя.

```bash
nmap -p22 192.168.0.1 -D 192.168.0.100,192.168.0.152
```

### Фрагментация отправляемых пакетов

> Этот метод заключается в фрагментации отправляемых пакетов, чтобы брандмауэр не мог определить трафик как сканирование. Параметр Nmap `-f` позволяет фрагментировать пакеты и отправлять их частями, чтобы избежать обнаружения.

```bash
nmap -p22 192.168.0.1 -f
```

### Изменение MAC-адреса пакета

> Этот метод обхода заключается в изменении MAC-адреса пакета, чтобы избежать его обнаружения брандмауэром. Nmap позволяет вручную настроить MAC-адрес, чтобы замаскировать трафик.

```bash
nmap -p22 192.168.0.1 --spoof-mac f4:69:42:f4:a7:d0
```

## Сканирование уязвимостей с помощью скриптов Nmap

```bash
nmap --script "vuln and safe" -p445 10.10.10.10 -oN vulnScan
```

> Этот скрипт Nmap позволяет анализировать уязвимости конкретного хоста. При запуске скриптов из категорий **уязвимости** и **безопасные** он выявляет возможные уязвимости безопасности. Результаты сохраняются в файл под названием **vulnScan** для последующего анализа.

**Перечисление Linux (без учётных данных)**

```bash
enum4linux -a 10.10.10.10
```

<figure><img src="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-fce72ab9ffa72b4149e4e03a00e2fef1cef79467%2Fimage%20(600).png?alt=media" alt=""><figcaption></figcaption></figure>

**Перечисление Linux с учётными данными**

```bash
enum4linux -a 10.10.10.10 -u admin -p password1
```

<figure><img src="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-729956858769d747348cf1bc4f10825b000854d4%2Fimage%20(601).png?alt=media" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://hacking-notes.jord4n.pro/ru/reconnaissance/nmap.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
