> 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 и потенциальных путей атаки.

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

#### Общие команды и справочник по параметрам:

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

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

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

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

| Параметр            | Описание                                                                                    |
| ------------------- | ------------------------------------------------------------------------------------------- |
| `--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 позволяет анализировать уязвимости определенного хоста. Запуская скрипты из **vuln** (уязвимости) и **safe** (безопасные сканирования) категории, он выявляет возможные уязвимости безопасности. Результаты сохраняются в файл с именем **vulnScan** для последующего анализа.

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

```bash
enum4linux -a 10.10.10.10
```

<figure><img src="/files/d29386b6decd6351690497d9fd1b0e4f9727b587" alt=""><figcaption></figcaption></figure>

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

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

<figure><img src="/files/65e823285b69e2cac0335a98e3c109f80f4d8c73" 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
