Статья Свой DNS (Orange Pi) + WebMap (Nmap)

Приветствую, гостей и обитателей форума Codeby.net!

В этой статье речь пойдет о двух вещах:
  • WebMap – Web-панель для анализа отчетов XML Nmap;
1548184761359.png

  • DNS для своей локальной сети.
1548184777768.png


Что касается первой, мы видели очень много надстроек облегчающих вывод, анализ и прочие моменты при работе со сканером nmap, их много и они разнообразны.

Но в этот раз мне попалась, довольно интересная вещь – работающая в докере web-панель, которая позволяет анализировать отчеты nmap формата XML, при этом она анализирует хосты на возможные уязвимости, а так же позволяет строить карту сети.

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

Ну а второй пункт, собственный DNS, это скорее дополнение к статье, так как, при установке и настройке WebMap, мне захотелось обращаться к ней не по IP, а по доменному имени, для удобства.

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

Приступим к установке и настройке DNS, я выбрал Bind9 располагаться он будет на:

1548184819968.png


Bind9 - это пакет, создающий DNS-сервер в локальной или глобальной сети. Bind9 может также работать и в режиме кеширующего DNS-сервера.

Код:
apt install –y bind9 dnsutils

1548184891846.png


Настраиваем файл конфигурации Bind9:

Код:
nano /etc/bind/named.conf.options

Приводим его к следующему виду:

1548184925509.png


acl - создает ACL (Access control list) - список контроля доступа, с помощью которого ограничивается диапазон адресов, которые могут запрашивать зоны с нашего сервера.
allow-query { mynetwork; }; - список тех, кто имеет право запрашивать информацию.
forwarders {192.168.0.1; 8.8.8.8; }; - это DNS провайдера, или любые другие, у которых можно получить информацию о доменах неизвестных вашему серверу.
listen-on-v6 { none; } - запрещает работать с IPv6.

Корректируем файл локальной конфигурации Bind9:

Код:
nano /etc/bind/named.conf.local

Этот файл содержит локальную конфигурацию DNS-сервера, в нем объявляются зоны, связанные с доменами этого сервера.

Добавляем в него файлы наших зон (зону прямого просмотра и зону обратного просмотра):

1548185056946.png


Зона в DNS — это часть пространства имён DNS, управляемая конкретным сервером или группой серверов DNS.

Зона прямого просмотра - это тип зоны, в которой доменное имя преобразуется в IP-адрес. Создаем файл для зоны прямого просмотра:

Код:
nano /etc/bind/zones/home/flz.home.zone

Со следующим содержимым:

1548185123225.png


$ORIGIN - оригинальное имя зоны
ns1.home.loc. - Наш DNS-сервер (точка в конце обязательна).
admin.home.loc. – e-mail администратора сервера, где вместо символа @ используется точка.
Serial - серийный номер зоны в формате ГГГГММДД и номер текущего изменения за этот день. (Важно, при каждом изменении, нужно редактировать этот номер, увеличивая его в большую сторону) Пример: 2019011701.
Refresh - период времени, с которым вторичный сервер DNS обращается к основному.
Retry - период, с которым вторичный сервер будет повторять попытки при неудачном обновлении.
Expire - максимальное время использования данных на вторичном сервере, после которого делается обязательное обновление.
Negative Cache TTL - время актуальности данных в кэше запросов.

Далее идут записи имён хостов с ip-адресами или псевдонимами.

ns.provider.org. - вместо этой записи можете указать NS вашего регистратора либо Free DNS сервиса.

В конце файла оставляем пустую строку.

Зона обратного просмотра, выполняет преобразование IP-адреса в доменное имя. Создадим файл для зоны обратного просмотра:

Код:
nano /etc/bind/zones/home/rlz.home.zone

1548185196554.png


В этом файле должны быть только записи типа PTR. В конце этого файла так же должна быть пустая строка. Число 111 - это последний октет в IP адресе нашего DNS сервера.

Проверим корректность работы DNS.

Код:
named-checkconf –z
rndc reload

1548185233559.png


Редактируем resolv.conf, приводим его к следующему виду:

Код:
nano /etc/resolv.conf

1548185260108.png


Проверяем, все ли работает корректно:

Код:
nslookup home.loc
nslookup 192.168.0.111

1548185283499.png


Пропишем адрес DNS в свой роутер, на этом настройка закончена, позже мы к нему еще вернемся, чтобы внести последние штрихи.

Приступим к установке WebMap, как я уже говорил, эта панель работает в докере, у вас должен быть установлен и настроен пакет docker.

Код:
curl -sL http://bit.ly/webmapsetup | bash

1548185311209.png


Стартуем докер webmap:

Код:
docker ps –a
docker start [container ID]

1548185337303.png


Для доступа к панели инструментов WebMap нам нужен токен. Создаем новый токен с помощью:

Код:
docker exec -ti webmap /root/token

1548185361770.png


Проверяем работу панели, перейдя по адресу сервера, указав порт 8000 и введя токен:

Код:
http://192.168.0.101:8000

1548185390962.png


Теперь, немного о функционале WebMap:
  • Импорт и анализ файлов Nmap XML;
  • Запуск и планирование сканирований Nmap из панели инструментов;
  • Статистика и графики по обнаруженным службам, портам, ОС и т. Д;
  • Проверка одного хоста, выбрав его IP-адрес;
  • Прикрепление ярлыков на хост;
  • Создание заметок для конкретного хоста;
  • Создание отчетов в формате PDF с диаграммами, деталями, метками и заметками;
  • Копирование в буфер обмена команд Nikto, Curl или Telnet;
  • Поиск CVE и эксплойтов на основе CPE, собранных Nmap;
  • RESTful API.
Имена файлов XML.

При создании PDF-версии отчета Nmap XML в качестве заголовка документа на первой странице используется имя файла XML. WebMap заменит некоторые части имени файла следующим образом:
  • _ will replaced by a space ()
  • .xml will be removed
Пример: ACME_Ltd..xml
PDF заголовок: ACME Ltd.

CVE и эксплойты.

Благодаря API-сервисам circl.lu, WebMap может искать CVE и эксплойты для каждого CPE, собранного Nmap. Не все CPE проверяются через API circl.lu, но только если указана конкретная версия (например: cpe: / a: microsoft: iis: 7.5 и не cpe: / o: microsoft: windows).

Подробнее с видео и картинками можно ознакомиться здесь.

Запустим сканирование хоста с дальнейшим анализом его в WebMap, но перед этим добавим WebMap в файлы зон DNS сервера, чтобы мы могли обращаться к нему по адресу:
Код:
nano /etc/bind/zones/home/rlz.home.loc

1548185574005.png


Код:
nano /etc/bind/zones/home/flz.home.loc

1548185599517.png


Сканируем сеть:

Код:
nmap -sT -A -T4 -oX /tmp/webmap/myhost.xml 192.168.0.1/24

1548185629252.png


По завершении сканирования, в WebMap появится отчет для дальнейшего анализа:

1548185641886.png


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

1548185661134.png


Общая информация выглядит так:

1548185674835.png


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

И весь функционал, предоставленный в этой панели, соответствует целевому использованию, ничего лишнего я там не нашел.

Для решения CTF было удобно работать с WebMap, плюс – это все отчеты в одном месте, систематизация порадовала.

Надеюсь, данная статья была полезна, на этом все, спасибо за внимание.

Специально для Codeby.net.
 

zakrush

Well-known member
21.03.2018
81
118
BIT
0
А не подскажете, bind9 умеет делать DNS Load Balance (хотя бы RoundRobin) + имеется ли поддержка A записей через regexp?
Например необходимо направлять все *.example.ru на 1.1.1.1 2.2.2.2 3.3.3.3 и чтобы это еще и балансировалось а не в 1.1.1.1 постоянно шло.

Как оказалось на практике, это не все умеют к сожалению.
 
G

g00dkid

при выполнении
Код:
curl -sL http://bit.ly/webmapsetup | bash
ругается: 404: Not Found
+ образа ev3rse/webmap:latest на docker hub нет
 

Goodkid

New member
01.05.2019
2
0
BIT
0
при выполнении
Код:
curl -sL http://bit.ly/webmapsetup | bash
ругается: 404: Not Found
+ образа ev3rse/webmap:latest на docker hub нет
 

Goodkid

New member
01.05.2019
2
0
BIT
0

Bash:
curl https://gitlab.com/bytehackr/WebMap/raw/v2.1/master/docker/setup.txt --output setup.txt && sed -i 's/Rev3rseSecurity\/WebMap/bytehackr\/WebMap/g' setup.txt && cat setup.txt | bash


Код:
root@kali:~# curl https://gitlab.com/bytehackr/WebMap/raw/v2.1/master/docker/setup.txt --output setup.txt && sed -i 's/Rev3rseSecurity\/WebMap/bytehackr\/WebMap/g' setup.txt && cat setup.txt | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   420  100   420    0     0    328      0  0:00:01  0:00:01 --:--:--   328

[+] Starting WebMap docker setup
[+] Creating required dirs
mkdir: невозможно создать каталог «/tmp/webmap»: Файл существует
[+] Docker run webmap
Unable to find image 'rev3rse/webmap:latest' locally
docker: Error response from daemon: repository rev3rse/webmap not found: does not exist or no pull access.
See 'docker run --help'.
[+] Done

Now you can point your browser to http://localhost:8000
Please, take few seconds to support this project on GitHub
https://github.com/bytehackr/WebMap

Спасибо за ответ, попробую через Dockerfile собрать
 
Последнее редактирование:

useralexrc

Green Team
12.11.2016
30
7
BIT
1
Что делать с данной ошибкой?
Код:
rndc: connect failed: 127.0.0.1#953: connection refused
 

zakrush

Well-known member
21.03.2018
81
118
BIT
0
Что делать с данной ошибкой?
Так у тебя судя по всему порта 953 на localhost нет. Чтобы понять надо больше вводной информации.

Посмотри на каком порту слушается нужный тебе сервис, если он вообще запущен. Исходя из этого смотри, что надо: запускать(службу), если докер то маппить порт, или в конфигах где-то обозначить порт, куда надо стучаться.
 
  • Нравится
Реакции: useralexrc и Vertigo

YurKing

New member
24.02.2024
1
0
BIT
8
Мастер, спасибо, информативно. Ищу простое решение обьезда запретов.
А именно касательно второго, про DNS: мой провайдер блокирует smotrim.ru
Я пробую socat tcp:smotrim.ru:443 localhost:8080
Не получается. Пров отвечает: not recognized smotrim.ru. И не пингуется. Tracert-om заканчивается на мне
В наличии CentOS сервер в немецком домене и пиндосском дата центре. С него пингуется. Но тоже socat не срабатывает.
Идеи?
 
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!