# Nikto, nuclei и др.

Коммерческие:

- acunetix
- netsparker
- IBM AppScan
- WebInspect

Бесплатные:

- OWASP Zap
- W3af
- arachni
- Iron Wasp
- Nexpose (совместим с MSF)
- Nessus (совместим с MSF)

**Nikto**

```
nikto -host 172.16.10.11 -port 80

+ Server: Apache/2.4.58 (Ubuntu)
+ /: The anti-clickjacking X-Frame-Options header is not present. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options
+ /: The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type. See: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ /: Server may leak inodes via ETags, header found with file /, inode: 29af, size: 63d6cf46a153e, mtime: gzip. See: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-1418
+ OPTIONS: Allowed HTTP Methods: GET, POST, OPTIONS, HEAD .
+ /backup/: Directory indexing found.
+ /backup/: This might be interesting.
+ 8102 requests: 0 error(s) and 6 item(s) reported on remote host
+ End Time:           2025-08-30 20:12:35 (GMT8) (40 seconds)
```

**Nuclei**

[Адрес проекта](https://docs.projectdiscovery.io/home)

Отправляет DNS, HTTP, сокеты. Общая база с возможностью расширения. Можно использовать для поиска данных авторизации в локальных файлах.

Основан на YAML шаблонах. Структура шаблона:

<table border="1" id="bkmrk-id-%D0%A3%D0%BD%D0%B8%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9-%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8" style="border-collapse: collapse; width: 100%; height: 119.188px;"><colgroup><col style="width: 26.9644%;"></col><col style="width: 73.1548%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="height: 29.7969px;">ID</td><td style="height: 29.7969px;">Уникальный идентификатор шаблона</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Metadata</td><td style="height: 29.7969px;">Описание шаблона (автор, ...</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Protocol</td><td style="height: 29.7969px;">Протокол</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Operators</td><td style="height: 29.7969px;">Паттерны и получаемые данные</td></tr></tbody></table>

Простой шаблон:

```yaml
id: detect-apache-welcome-page
info:
  name: Apache2 Ubuntu Default Page
  author: Dolev Farhi and Nick Aleks
  severity: info
  tags: apache
http:
  - method: GET
    path:
      - '{{BaseURL}}'
    matchers:
      - type: word
        words:
          - "Apache2 Ubuntu Default Page: It works"
        part: body
```

**wmap**

Сканер web уязвимостей, встроенный в MSF. Почему-то предлагается сначала создать новую базу для хранения результатов.

```
msf > workspace -a for_wmap
msf > workspace
  default
* for_wmap
```

Загружаем в MSF модуль

```
msf > load wmap
```

После этого появятся команды сканера. Команда wmap\_sites управляет списком сайтов.

<table border="1" id="bkmrk-wmap_sites--a-http%3A%2F" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 36.6072%;"></col><col style="width: 63.512%;"></col></colgroup><tbody><tr><td>wmap\_sites -a http://172.16.194.172</td><td>Добавить сайт для сканирования</td></tr><tr><td>wmap\_sites -l</td><td>Список сайтов</td></tr><tr><td>wmap\_sites -d \[id\]</td><td>Удаляет цели из списка по id</td></tr></tbody></table>

wmap\_targets управляет endpoint сайта

Добавляем сайт для сканирования

<table border="1" id="bkmrk-wmap_targets--t-http" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 36.6072%;"></col><col style="width: 63.512%;"></col></colgroup><tbody><tr><td>wmap\_targets -t https://172.16.194.172</td><td>Добавить endpoint для сканирования</td></tr><tr><td>wmap\_targets -l</td><td>Список endpoint</td></tr><tr><td>wmap\_sites -d \[id\]</td><td>Удаляет endpoint из списка по id</td></tr></tbody></table>

wmap\_run управляет запуском сканирования

<table border="1" id="bkmrk-wmap_run--t-%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA-%D0%BC" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 36.6072%;"></col><col style="width: 63.512%;"></col></colgroup><tbody><tr><td>wmap\_run -t</td><td>Список модулей, используемых для сканирования</td></tr><tr><td>wmap\_run -e</td><td>Выполнить модули</td></tr></tbody></table>

wmap\_vulns выводит информацию об уязвимостях.

<table border="1" id="bkmrk-wmap_vulns--l-%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 36.6072%;"></col><col style="width: 63.512%;"></col></colgroup><tbody><tr><td>wmap\_vulns -l</td><td>Список уязвимостей</td></tr></tbody></table>

Однако в выводе сканера можно увидеть дополнительную информацию, которая не попала в данный список, например предположительную версию web сервера или сертификаты.

В таблице vulns также уязвимости.

**Cariddi**

Сканер endpoint. [Git проекта.](https://github.com/edoardottt/cariddi?tab=readme-ov-file) Сначала установить go.

Если не ограничить - сначала просматривает все страницы.

<table border="1" id="bkmrk-%D0%9E%D0%BF%D1%86%D0%B8%D0%B8--e-%D0%9F%D0%BE%D0%B8%D1%81%D0%BA-%D1%83%D1%8F%D0%B7%D0%B2%D0%B8" style="border-collapse: collapse; width: 100%; height: 714.923px;"><colgroup><col style="width: 27.8847%;"></col><col style="width: 72.1153%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="height: 29.7969px;">**Опции**</td><td style="height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">-e</td><td style="height: 29.7969px;">Поиск уязвимостей в endpoint

-ef string Use an external file (txt, one per line) to use custom parameters for endpoints hunting.

</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">-info</td><td style="height: 29.7969px;">Ищет полезную информацию. Например, быстрый поиск email ip Используется самостоятельно.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">-s</td><td style="height: 29.7969px;">Hunt for secrets.

-sf string Use an external file (txt, one per line) to use custom regexes for secrets hunting.

</td></tr><tr><td>-err</td><td>Hunt for errors in websites.</td></tr><tr><td>-ext int</td><td>Hunt for juicy file extensions. Integer from 1(juicy) to 7(not juicy).</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">**Настройки формата запроса**</td><td style="height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">-proxy string</td><td style="height: 29.7969px;">Set a Proxy to be used (http and socks5 supported).</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">-headers string</td><td style="height: 29.7969px;">Use custom headers for each request E.g. -headers "Cookie: auth=yes;;Client: type=2".</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">-headersfile string</td><td style="height: 29.7969px;">Read from an external file custom headers (same format of headers flag).</td></tr><tr style="height: 29.5938px;"><td style="height: 29.5938px;">-rua</td><td style="height: 29.5938px;">Use a random browser user agent on every request.</td></tr><tr><td>-ua</td><td>Use a custom User Agent.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">**Настройки поиска**</td><td style="height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">-i string</td><td style="height: 29.7969px;">Ignore the URL containing at least one of the elements of this array.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">-ie value</td><td style="height: 29.7969px;">Comma-separated list of extensions to ignore while scanning. ```
cat urls.txt | cariddi -ie pdf,png,jpg
```

</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">-it string</td><td style="height: 29.7969px;">Ignore the URL containing at least one of the lines of this file.</td></tr><tr><td>-md int</td><td>Maximum level the crawler will follow from the initial target URL.</td></tr><tr><td>-intensive</td><td>Crawl searching for resources matching 2nd level domain.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">**Скорость работы**</td><td style="height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">-c int</td><td style="height: 29.7969px;">Concurrency level. (default 20)</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">-d int</td><td style="height: 29.7969px;">Delay between a page crawled and another.</td></tr><tr><td>-t int</td><td>Set timeout for the requests. (default 10)</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">**Выходной формат**</td><td style="height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">-json</td><td style="height: 29.7969px;">Print the output as JSON in stdout.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">-oh string</td><td style="height: 29.7969px;">Write the output into an HTML file.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">-ot string</td><td style="height: 29.7969px;">Write the output into a TXT file.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">-plain</td><td style="height: 29.7969px;">Print only the results.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">**Дополнительно**</td><td style="height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">-debug</td><td style="height: 29.7969px;">Print debug information while crawling.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">-examples</td><td style="height: 29.7969px;">Print the examples.</td></tr><tr><td>-sr</td><td>Store HTTP responses.</td></tr><tr><td style="height: 29.7969px;">-cache</td><td style="height: 29.7969px;">Use the .cariddi\_cache folder as cache.</td></tr></tbody></table>