Першим розглянемо Backdoor – шкідлива програма, а іноді навмисно залишена лазівка в коді легальної програми, яка надає доступ до пристрою для несанкціонованих дій. Бекдор точно відповідає своїй назві (від англ. back door – «чорний хід»): потай впускає зловмисника в систему, наділяючи правами адміністратора. Бекдори споріднені офіційним утілітам для віддаленого адміністрування, але функціональність їх зазвичай ширше. Крім безпосереднього управління процесами на рівні системи і навіть Bios, бекдори можуть красти персональні дані користувача, завантажувати та відправляти по мережі файли, відкривати доступ для вірусів та черв’яків, підключатися до віддалених хостів, перетворювати комп’ютер на «зомбі», роблячи його частиною ботнета та все це непомітно. Далі на черзі LUA та SSH. LUA – мова програмування, в основі якої лежать скрипти. Називається скриптовим. Використовується для того, щоб створювати бізнес-логіку .
SSH це протокол, що використовує клієнт-серверну модель для аутентифікації віддалених систем та забезпечення шифрування даних, обмін якими відбувається в рамках віддаленого доступу. За замовчуванням для роботи протоколу використовується TCP-22 порт: на ньому сервер (хост) очікує вхідне підключення і після отримання команди та проведення аутентифікації, організує запуск клієнта, відкриваючи обрану користувачем оболонку. При необхідності користувач може змінювати порт, що використовується. Для створення SSH підключення клієнт повинен ініціювати з’єднання з сервером, забезпечивши захищене з’єднання і підтвердивши свій ідентифікатор (перевіряються відповідність ідентифікатора з попередніми записами, що зберігаються в RSA-файлі, та особисті дані користувача, необхідні для автентифікації. Підключення до лабораторії здійснюється через VPN. Рекомендується не підключатися з робочого комп’ютера або з хоста, де є важливі для вас дані, оскільки Ви потрапляєте в приватну мережу з людьми, які щось вміють в області ІБ.
1. Насамперед скануємо відкриті порти. Оскільки сканувати всі порти nmap’ом довго, то спочатку зроблю це за допомогою masscan. Ми скануємо всі TCP та UDP порти з інтерфейсу tun0 зі швидкістю 500 пакетів на секунду. Приклад команди та результат сканування відображені на Скріншоті 1 та Скріншоті 2.
2. Для отримання більш детальної інформації про послуги, що працюють на портах, запустимо сканування з опцією -А. (Скріншот 3. та Скріншот 4.)
3. На хості працюють служба SSH та веб-сервер. Зайшовши на веб-сервер нічого не виявимо, крім послання. (Скріншот 5.)
4. Але звертаємо увагу на щось цікаве у вихідному коді. (Скріншот 6.)
5. Шукаємо цей рядок у Google і виходимо на цю сторінку github. (Скріншот 7. та Скріншот 8.)
1. Перебираючи дані файли, визначаємо, що на сервер був завантажений файл smevk.php. (Cкріншот 1.) Після чого у початковому коді на гітхабі знаходимо облікові дані за умовчанням та авторизуємось. (Скріншот 2. та Скріншот 3.)
2. Наступним кроком ми згенеруємо PHP шелл і запустимо лістонер. (Скріншот 4. та Скріншот 5.)
3. Тепер завантажимо шелл і звернемося до нього. Отримуємо сесію meterpreter. (Скріншот 6. та Скріншот 7.)
1. У домашній директорії користувача знаходимо файли та записку до них. ( Скріншот 1.)
2.А також від імені користувача sysadmin можна запустити lua скрипт. (Скріншот 2.)
2. Запускаємо шелл. (Скріншот 3.) Для зручності кинемо SSH ключ. Для цього згенеруємо пару відкритий/закритий і запишемо відкритий authorized_keys.
3. Підключимося за допомогою закритого та забираємо прапор. (Скріншот 4.)
1. Запустимо скрипт базового переліку LinPEAS. І у звіті знайдемо цікаві файли для запису. (Скріншот 1. та Скріншот 2.)
2. Таким чином, файл /etc/update-motd.d/00-header виконується щоразу, коли відбувається підключення SSH. Давайте перевіримо з допомогою pspy. Запустимо цю утиліту і підключимося по SSH. Та відразу допишемо реверс шелл у цей файл. (Скріншот 3. та Скріншот 4.)
3. Тепер одразу підключимося та побачимо зворотне підключення на наш хост. (Скріншот 5.)