# Практика 3. Deception
1. С помощью nmap нашли 2 хоста - 172.22.0.1 и 172.22.0.2:

2. Проверим сервисы на хостах:

3. Проверим сервисы на 172.22.0.2


3. Посмотрим сервисы на хосте 172.22.0.1:

## SSH
**SSH** (англ. Secure Shell — «безопасная оболочка») — сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов). Схож по функциональности с протоколами Telnet и rlogin, но, в отличие от них, шифрует весь трафик, включая и передаваемые пароли. SSH допускает выбор различных алгоритмов шифрования. SSH-клиенты и SSH-серверы доступны для большинства сетевых операционных систем
1. **cat /etc/passwd**
- Эта команда позволяет просмотреть файл, в котором описаны все существующие в системе пользователи, домашний каталог, идентификатор пользователя, группы, регистрационная оболочка.
- Злоумышленник получит представление о системе, ее пользователях.
3. **ls -la**

- Данная команда позволяет посмотреть, какие файлы есть в каталоге, кто владелец(группа и пользователь), какие разрешения на него есть
- С помощью этой команды можно узнать, какие файлы можно запускать, кто их создал а так же какие файлы мы можем отредактировать.
4. **whoami**

- Эта команда позволяет посмотреть, под каким пользователем удалось подключиться.
- Обычно эта команда является началом первой фазы атаки(разведка), когда злоумышленник пытается понять кто он.
5. **cat /etc/shadow**

- Данный файл содержит хэш-значения паролей пользователей и данные о пароле(дата истечения, дата обновления и тп)
- В купе с файлом /etc/passwd можно попробовать пробрутфорсить пароли других пользователей. [Подробнее](https://www.securitylab.ru/analytics/531326.php)
6. **crontab -l**

- Просмотр файла crontab, где располагаются задачи, выполняемые периодически.
- Злоумышленник может посмотреть, какие программы периодически запускаются и либо напрямую добавить свой вредонос для авто-запуска, либо попробовать прописать непосредственно эксплойт, который, например, будет строить reverse-shell туннель
## Telnet
TELNET — сетевой протокол для реализации текстового терминального интерфейса по сети.
Если быть точнее - это не команды telnet, а команды huawei оборудования:
1. **display snmp-server arp-sync table**

- Просмотр таблиц ARP c помощью протокола SNMP
- Информация, полученная с помощью этой команды может быть использована для дальнейшей ARP-spoofing атаки
2. **display ip vpn-instance**

- Отображение информации об экземплярах VPN
3. **display arp**

- Отобразить arp-таблицу
4. **system view**

- Просмотр данных о системе
5. **display session limit vpn-instance vpna**

- Отображает информацию о количестве(лимитах) vpn-соединений. USG2200 не поддерживают такой синтаксис. Тольк USG5000.
## HTTP-server
Протокол прикладного уровня передачи данных, изначально — в виде гипертекстовых документов в формате HTML, в настоящее время используется для передачи произвольных данных.
1. **/../../../etc/passwd**

- Попытка вывести файл /etc/passwd
- Опасно тем, что через такого рода уязвимсоть злоумышленник может узнать много инфомрации о системе и в дальнешем, на основе этих данных, взломать систему.
2. **/robots.txt**

- Данный файл предназначен для настроек доступа робота к сайту из поисковых систем(какие страницы индексируются роботами поисковых систем, а какие нет). Не работает на поддоменах.
- Злоумышленник, прочитав этот файл, может сделать вывод о тех поддоменах, папках и файлах, которые разработчики скрывают от поисковых систем. Скорее всего, эту информацию скрывают не просто так.
3. **/phpinfo.php**

- Это файл php, который, как правило, содержит скрипт, в котором прописана одна функция - phpinfo(). Эта функция выводит на экран большое количество информации о текущем статусе PHP. Сюда входят:
* информация о сервере, версия/конфигурация PHP, ОС;
* document_root — директория, из которой выполняется текущий скрипт;
* error_log — логи ошибок (можно задействовать при LFI);
* safe_mode (default OFF) — безопасный режим;
* open_basedir (default empty) — ограничивает список файлов, которые могут быть открыты через PHP;
* allow_url_fopen (default ON) — разрешает доступ к URL на уровне файлов;
* allow_url_include (default OFF) — удаленное подключение файлов;
* magic_quotes_gpc (default OFF) — автоматическое экранирование входящих данных;
* register_globals (default OFF) — глобальные переменные;
* disable_functions (default empty) — отключает использование определенных функций;
* max_execution_time (default 0) — максимальное время работы скрипта;
* display_errors (default OFF) — отображение ошибок;
* upload_tmp_dir — путь к tmp-директории.
* подключенные модули (curl, sockets, zip и т. д.);
* содержимое всех глобальных переменных _GET, _POST, _COOKIE, _FILES, _SERVER.
Если этот файл не убрать с сайта, то есть вероятность получить серьезные проблемы в виде RCE на вашем сервере. Подробное описание возможной атаки в журнале [хакер](https://xakep.ru/2012/01/25/58183/#toc09.)
4. **/sitemap.xml**

- файле Sitemap содержится информация о том, как организован контент на сайте (например, веб-страницы, видео и прочие ресурсы). Она помогает Google и другим поисковым системам более точно индексировать ваши материалы. В данном файле расположены все url сайта, которые необходимо индексировать, в иерархическом порядке
- если злоумышленник получит доступ к этому файлу, у него будет возможность провести XXE атаку, а так же узнать о некоторых доменах и поддоменах компании без активного сканирования
5. **/admin.php**

- Скорее всего это страница для администратора, или же форма авторизации для администратора
- Данную страницу необходимо очень хорошо защищать, так как в случае какой-либо уязвимости внутри этой страницы у злоумышленника появляется шанс получить доступ с привилегиями администратора.
## Redis
Redis — резидентная система управления базами данных класса NoSQL с открытым исходным кодом, работающая со структурами данных типа «ключ — значение». Используется как для баз данных, так и для реализации кэшей, брокеров сообщений.
1. **CONFIG GET \***

- чтения параметров конфигурации работающего сервера Redis
2. **client list**

- вывод списка клиентов
3. **GET admin**

- получение значения по ключу ADMIN
4. **SELECT 1**

- получение информации из базы
5. **INFO**

- возвращение информации и статистики о сервере
## FTP
FTP (англ. File Transfer Protocol) — протокол передачи файлов по сети, появившийся в 1971 году задолго до HTTP и даже до TCP/IP, благодаря чему является одним из старейших прикладных протоколов. Изначально FTP работал поверх протокола NCP, на сегодняшний день широко используется для распространения ПО и доступа к удалённым хостам.
1. **USER anonymous**

**PASS anonymous**

- Данные команды позволяют ввести логин и пароль при авторизации. Так как используется anonymous/anonymous, доступ пытается получить анонимный пользователь.
- Анонимное подключение опасно тем, что неавторизованный пользователь получает доступ к серверу как авторизованный, и в случае слабой защиты может взять под контроль сервер.
3. **FEAT**

- предоставление механизма быстрого определения того, какие расширенные функции поддерживает FTP-сервер
5. **HELP**

- получения информации о реализации протокола FTP-сервером, возвращат списка поддерживаемых (или распознанных) команд
7. **LIST -l**

- вывод информации о файлах на сервере
9. **PWD**

- вывод информации о текущей дериктории
11. **APPE /exploit.sh**

- загрузка файла на сервер
13. **STOR /etc/passwd**

- Копирует локальный файл на удаленный компьютер, используя текущий тип перемещения файлов.
# Анализ действий злоумышленника
Попытки получения доступа к honeypot были через telnet и ssh. Далее хакеры собирали информацию о структуре сайта и о содержании базы данных. Далее используя протокол FTP передали вредоносный файл в систему. В ходе сканирования утилитой nmap был выявлен MAC-адрес злоумышленника:
# Рекомендации по защите
1. Изменить все пароли по-умолчанию на более сложные
2. Убрать с сайта HTTP чувствительные и явно уязвимые компоненты системы
3. Перевести HTTP сайт на HTTPs, что позволит защитить передаваемые данные с помощью шифрования
4. Если возможно - сделать доступ до определенных компонентов инфраструктуры только с определенных ip-адресов. Как правило - с компьютеров администраторов.