Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
meg — Извлекает множество путей для множества хостов — без вреда для хостов | Kitploit
Инструменты/GitHubGitHub/tomnomnom/meg
РазведкаСбор информацииВеб-безопасностьКраулер
GitHubtomnomnom/meg

meg

Извлекает множество путей для множества хостов — без вреда для хостов

Репозиторий
1.7k2674 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

meg

meg — это инструмент для загрузки множества URL-адресов, оставаясь при этом «вежливым» к серверам.

Его можно использовать для загрузки множества путей для множества хостов; сначала загружается один путь для всех хостов, затем следующий путь, и так повторяется.

Вы получаете много результатов быстро, но ни один отдельный хост не перегружается трафиком.

Установка

meg написан на Go и не имеет зависимостей времени выполнения. Если у вас установлен и настроен Go версии 1.9 или новее, вы можете установить meg с помощью go install:

root@kitploit:~
▶ go install github.com/tomnomnom/meg@latest

Или скачайте бинарный файл и поместите его куда-нибудь в $PATH (например, в /usr/bin/).

Ошибки установки

Если вы видите такую ошибку, это означает, что ваша версия Go устарела:

root@kitploit:~
# github.com/tomnomnom/rawhttp
/root/go/src/github.com/tomnomnom/rawhttp/request.go:102: u.Hostname undefined (
type *url.URL has no field or method Hostname)
/root/go/src/github.com/tomnomnom/rawhttp/request.go:103: u.Port undefined (type
 *url.URL has no field or method Port)
 /root/go/src/github.com/tomnomnom/rawhttp/request.go:259: undefined: x509.System
 CertPool

Вам следует либо обновить версию Go, либо использовать бинарный релиз для вашей платформы.

Базовое использование

Дан файл с путями:

root@kitploit:~
/robots.txt
/.well-known/security.txt
/package.json

И файл с хостами (с протоколом):

root@kitploit:~
http://example.com
https://example.com
http://example.net

meg запросит каждый путь для каждого хоста:

root@kitploit:~
▶ meg --verbose paths hosts
out/example.com/45ed6f717d44385c5e9c539b0ad8dc71771780e0 http://example.com/robots.txt (404 Not Found)
out/example.com/61ac5fbb9d3dd054006ae82630b045ba730d8618 https://example.com/robots.txt (404 Not Found)
out/example.net/1432c16b671043271eab84111242b1fe2a28eb98 http://example.net/robots.txt (404 Not Found)
out/example.net/61deaa4fa10a6f601adb74519a900f1f0eca38b7 http://example.net/.well-known/security.txt (404 Not Found)
out/example.com/20bc94a296f17ce7a4e2daa2946d0dc12128b3f1 http://example.com/.well-known/security.txt (404 Not Found)
...

И сохранит вывод в каталоге ./out:

root@kitploit:~
▶ head -n 20 ./out/example.com/45ed6f717d44385c5e9c539b0ad8dc71771780e0
http://example.com/robots.txt

> GET /robots.txt HTTP/1.1
> Host: example.com

< HTTP/1.1 404 Not Found
< Expires: Sat, 06 Jan 2018 01:05:38 GMT
< Server: ECS (lga/13A2)
< Accept-Ranges: bytes
< Cache-Control: max-age=604800
< Content-Type: text/*
< Content-Length: 1270
< Date: Sat, 30 Dec 2017 01:05:38 GMT
< Last-Modified: Sun, 24 Dec 2017 06:53:36 GMT
< X-Cache: 404-HIT

<!doctype html>
<html>
<head>

Без аргументов meg будет читать пути из файла ./paths, а хосты — из файла ./hosts. Вывод при этом отсутствует:

root@kitploit:~
▶ meg
▶

Но он сохранит индексный файл в ./out/index:

root@kitploit:~
▶ head -n 2 ./out/index
out/example.com/538565d7ab544bc3bec5b2f0296783aaec25e756 http://example.com/package.json (404 Not Found)
out/example.com/20bc94a296f17ce7a4e2daa2946d0dc12128b3f1 http://example.com/.well-known/security.txt (404 Not Found)

Вы можете использовать индексный файл, чтобы найти, где хранится ответ, но часто проще найти то, что нужно, с помощью grep:

root@kitploit:~
▶ grep -Hnri '< Server:' out/
out/example.com/61ac5fbb9d3dd054006ae82630b045ba730d8618:14:< Server: ECS (lga/13A2)
out/example.com/bd8d9f4c470ffa0e6ec8cfa8ba1c51d62289b6dd:16:< Server: ECS (lga/13A3)

Если вы хотите запросить только один путь, вы можете указать его напрямую как аргумент:

root@kitploit:~
▶ meg /admin.php

Подробное использование

Вывод справки meg действительно старается быть полезным:

root@kitploit:~
▶ meg --help
Request many paths for many hosts

Usage:
  meg [options] [path|pathsFile] [hostsFile] [outputDir]

Options:
  -c, --concurrency <val>    Set the concurrency level (defaut: 20)
  -d, --delay <val>          Milliseconds between requests to the same host (default: 5000)
  -H, --header <header>      Send a custom HTTP header
  -r, --rawhttp              Use the rawhttp library for requests (experimental)
  -s, --savestatus <status>  Save only responses with specific status code
  -v, --verbose              Verbose mode
  -X, --method <method>      HTTP method (default: GET)

Defaults:
  pathsFile: ./paths
  hostsFile: ./hosts
  outputDir:  ./out

Paths file format:
  /robots.txt
  /package.json
  /security.txt

Hosts file format:
  http://example.com
  https://example.edu
  https://example.net

Examples:
  meg /robots.txt
  meg -s 200 -X HEAD
  meg -c 30 /
  meg hosts.txt paths.txt output

Конкурентность

По умолчанию meg пытается выполнять 20 одновременных запросов. Вы можете изменить это с помощью опции -c или --concurrency:

root@kitploit:~
▶ meg --concurrency 5

Не очень хорошо держать уровень конкурентности выше количества хостов — вы можете отправить много запросов на один хост одновременно.

Задержка

По умолчанию meg ждёт 5000 миллисекунд между запросами к одному хосту. Вы можете переопределить это с помощью опции -d или --delay:

root@kitploit:~
▶ meg --delay 10000

Предупреждение: перед уменьшением задержки убедитесь, что у вас есть разрешение на отправку большого объёма запросов к целевым хостам.

Добавление заголовков

Вы можете задать дополнительные заголовки в запросах с помощью опции -H или --header:

root@kitploit:~
▶ meg --header "Origin: https://evil.com"
▶ grep -h '^>' out/example.com/*
> GET /.well-known/security.txt HTTP/1.1
> Origin: https://evil.com
> Host: example.com
...

Сырой HTTP (Экспериментально)

Если вы хотите отправлять некорректные запросы — например, с неверной кодировкой URL — HTTP-клиент Go завершится с ошибкой:

root@kitploit:~
▶ meg /%%0a0afoo:bar
request failed: parse https://example.org/%%0a0afoo:bar: invalid URL escape "%%0"

Вы можете использовать флаг -r или --rawhttp, чтобы включить использование библиотеки rawhttp, которая почти не проверяет запросы:

root@kitploit:~
▶ meg --verbose --rawhttp /%%0a0afoo:bar
out/example.com/eac3a4978bfb95992e270c311582e6da4568d83d https://example.com/%%0a0afoo:bar (HTTP/1.1 404 Not Found)

Библиотека rawhttp и её использование являются экспериментальными. Среди прочего, она пока не поддерживает чанкованное кодирование передачи, поэтому вы можете заметить в выводе фрагменты длин чанков.

Сохранение только определённых кодов состояния

Если вы хотите сохранять только результаты, вернувшие определённый код состояния, используйте опцию -s или --savestatus:

root@kitploit:~
▶ meg --savestatus 200 /robots.txt

Указание метода

Вы можете указать, какой HTTP-метод использовать, с помощью опции -X или --method:

root@kitploit:~
▶ meg --method TRACE
▶ grep -nri 'TRACE' out/
out/example.com/61ac5fbb9d3dd054006ae82630b045ba730d8618:3:> TRACE /robots.txt HTTP/1.1
out/example.com/bd8d9f4c470ffa0e6ec8cfa8ba1c51d62289b6dd:3:> TRACE /.well-known/security.txt HTTP/1.1
...
Скачать инструмент