Тест проникновения 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, чтобы защитить ваш сервис от атаки методом перебора.
На изображении ниже вы можете видеть, что наш запрос на соединение отброшен, когда мы попытались запустить атаку методом перебора.