March 4, 2020

Тест проникновения SSH от порта 22

Эксперименты со всех открытых портов - это первый шаг к тому, что хакеры почти готовы к своим атакам.

И чтобы это работало, кто-то должен держать порт открытым, но ему также угрожает взлом.

Таким образом, даже если они открыты, они должны изучить безопасность своих портов.

В связи с этим мы обработаем тест на проникновение SSH, также называемый Secure Shell.

Таблица содержания

  • Введение в SSH
  • Настройка SSH
  • Сканирование порта SSH
  • Методы подключения SSH
    • Терминальная команда (Linux)
    • Прослойка (Windows)
  • Переадресация портов
  • Тест переадресации портов
  • Установление соединения SSH с использованием ключа RSA
  • SSH Эксплойт с Métasploit
    • Постоянство ключа SSH - постэксплуатация
    • Кража ключа SSH
    • Вход через SSH через Pubkey
  • Взлом пароля SSH

Введение в Secure Shell

Протокол SSH - это метод установления безопасного и безопасного удаленного входа с одного компьютера на другой.

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

Это безопасная альтернатива для незащищенных протоколов входа в систему (таких как telnet и rlogin) и нестабильных методов отправки файлов (таких как FTP).

Настройка SSH

Очень легко установить и настроить службу ssh, мы можем напрямую установить службу ssh, используя пакет openssh-server из репозитория ubuntu.

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

Установка и настройка службы SSH довольно просты, мы можем установить пакет openssh-server непосредственно из репозиториев Ubuntu.

Для установки требуется root-авторизация, затем:

apt insall openssh-server

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

Вы можете проверить порт, открытый с помощью команды netstat.

Сканирование порта SSH

Если у вас нет прямого доступа к хост-машине, используйте nmap для удаленного определения состояния порта, что считается первым шагом в тесте на проникновение.

Мы будем использовать Kali Linux для проведения нашего теста на проникновение.

Чтобы идентифицировать открытый порт в удаленной сети, мы будем использовать сканирование версии nmap, которое не только идентифицирует открытый порт, но и захватит баннер, который покажет установленную версию сервиса.

nmap -sV -p22 192.168.1.103

Методы подключения SSH

Команда терминала (Linux)

Запустите команду ниже, чтобы получить доступ к оболочке ssh вашей удаленной машины как авторизованный пользователь.

Имя пользователя: ignite

Пароль: 123

ssh [email protected]

Putty (Windows)

Шаг 1:

Установите putty.exe и запустите его.Затем введите 192.168.1.103 в разделе IP-адреса HOST:22 в разделе портов

и выберите раздел Тип соединения SSH.

Шаг 2:

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

Имя пользователя: ignite

Пароль: 123

Переадресация портов

По умолчанию ssh прослушивает порт 22.

Это означает, что если злоумышленник узнает, что порт 22 открыт,хакер может попытаться атаковать порт 22, чтобы связаться с машиной.

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

Вы можете выполнить следующие шаги для переадресации портов.

Шаг 1:

Отредактируйте

файл sshd_config

в / etc / sshd

с помощью редактора.

nano / etc / sshd / sshd_config

Шаг 2:

Измените часть порта с 22 на 2222 и сохраните файл.

Шаг 3:

Перезапустите SSH.

Тест переадресации портов

Таким образом, когда мы начинаем сканирование на порту 22, вы можете видеть, что состояние порта закрыто для ssh, но оно открыто на порте 2222 ниже.

Установление соединения SSH с использованием ключа RSA

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

Вот почему нам нужен дополнительный метод безопасности для безопасности сервера SSH.

Пара ключей SSH - это дополнительная функция, необходимая для аутентификации клиента на сервере.

Он состоит из длинной строки символов: один открытый и один закрытый ключ.

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

Когда ключи совпадают, система позволяет автоматически настроить сеанс SSH без необходимости ввода пароля.

Ssh-keygen - это инструмент, используемый для создания новых пар ключей аутентификации для SSH.

Такие пары ключей;

используется для автоматического входа, единого входа и аутентификации хоста.

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

Шаг 1:

Введите приведенную ниже команду для создания

пары ключей ssh ​​(id_rsa и id_rsa.pub)

на хост-компьютере Ubuntu

ssh-keygen

Шаг 2:

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

Шаг 3:

После создания

пары ключей ssh ​​( id_rsa и id_rsa.pub)

переименуйте

id_rsa.pub

в authorized_keys

Шаг 4:

Предоставьте доступ к Author_keys

на хост-машине, скопировав в каталог .ssh

Шаг 5:

Отредактируйте файл sshd_config

в / etc / sshd с помощью редактора.

etc / sshd / sshd_config

Шаг 6: Установите

«пароль аутентификации» на «нет»

вместо «да».

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

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

Шаг 7:

Скопируйте ключ

id_rsa

из Kali Linux в Windows, чтобы вы могли

подключиться с помощью авторизованного ключа в

Windows.

Шаг 8:

Установите puttygen.exe.

Шаг 9:

Запустите puttygen.exe,

загрузите id_rsa и сохраните его как

Ключ,и нажмитк кнопку "Сохранить как ключ"

Шаг 10:

Используйте putty.exe для соединения с хостом, введя

192.168.1.103 в разделе имени хоста

и 22 в разделе порта

Шаг 11: Перейдите в

SSH -> Auth

и выберите browse, чтобы выбрать ключ, который мы записали в шаге 9.

С помощью этого метода вы можете установить ssh-соединение между Windows-клиентом и сервером без пароля.

SSH Эксплойт с Métasploit

Постоянство ключа SSH -Хост после эксплуатации

представьте, что вы провели сеанс,на тачке и в следующий раз захотите оставить постоянный бэкдор, который обеспечит обратное соединение.

Это событие может

быть выполнено с помощью модуля Métasploit, который называется

«Постоянство ключа SSH - пост-эксплойт»,

если на хост-машине открыт порт 22.

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

use post/linux/manage/sshkey_persistence
msf post(sshkey_persistence) > set session 1

Как вы можете видеть на картинке

/home/ignite/.ssh

добавлен в уполномоченный ключевой части и

/root/.msf4/loot

это также специальный ключ в магазин.

Поскольку мы подключили это, подключив хост-компьютер через порт 22 и используя созданный здесь закрытый ключ, я переименовал приватную часть в «ключ» и дал 600 разрешений.

chmod 600 key
ssh -i key [email protected]

Это так просто!

Он работает без каких-либо помех, и таким образом мы также можем использовать ключ ssh в качестве постоянного бэкдора.

Кража ключа SSH

Представьте, что вы получили сеанс тачки, скомпрометировав хост-компьютер, порт 22 открыт для ssh, и вы хотите украсть открытый ключ SSH и ключ доступа.

Это событие может

быть реализовано с помощью модуля под названием Multi-Gather OpenSSH PKI Credentials Collection -a post exploit.

Этот модуль будет собирать содержимое каталогов .ssh всех пользователей на целевом компьютере.

Кроме того, он загрузит известные_хосты, авторизованные_кейсы и другие файлы.

Этот модуль основан на модуле firefox_creds.rb во многих отношениях.

use auxillary/scanner/ssh /ssh_login_pubkey
auxiliary (scanner/ssh /ssh_login_pubkey)>set rhosts 192.168.1.103
auxiliary (scanner/ssh /ssh_login_pubkey)>set username ignite
auxiliary (scanner/ssh /ssh_login_pubkey)>set key_path /root/.ssh/id_rsa

Это даст сеанс команды, который может быть дополнительно обновлен в сеансе meterpreter, выполнив следующую команду

sessions -u 1

Взлом пароля SSH

Мы можем попробовать атаку brute force на ssh, чтобы угадать пароль или протестировать пороговую политику при проникновении в SSH.

Нам нужен список имен пользователей и паролей.

У нас есть user.txt,

который является списком имен пользователей, и pass.txt, который является списком паролей.

С помощью Гидры мы можем проводить атаку грубой силой.

Hydra -L user.txt -P pass.txt 192.168.1.103 ssh

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

Вы можете использовать fail2ban, IPS, чтобы защитить ваш сервис от атаки методом перебора.

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