Обговорюємо важливість кібербезпеки у сучасному бізнесі, зокрема, загрози від внутрішніх зловмисників та соціальної інженерії. Ви дізнаєтесь про техніку “Reverse Shell” для віддаленого контролю системи, використання USB-пристроїв для впровадження шкідливого коду та обфускацію для ускладнення виявлення. Основна увага приділяється методам захисту та необхідності посилення заходів безпеки для запобігання таким атакам.
Сьогодні, технології невід’ємна частина бізнесу, безпека комп’ютерних систем стає критичним аспектом для будь-якої компанії. Вразливість у них — це не лише технічні слабкі місця в програмному забезпеченні чи апаратному забезпеченні. Справжнє вразливе місце, що часто ігнорується, – це люди.
Внутрішній загрози для безпеки даних стають особливо небезпечними через можливість соціальної інженерії та внутрішньої кібернетичної загрози. Найбільш простий шлях для зловмисника отримати доступ до системи підприємства – це отримати фізичний доступ до комп’ютерів чи мережевих ресурсів. Використовуючи наприклад, USB-пристрої, які мають вбудовані шкідливі програми, зловмисники можуть легко впровадити ШПЗ в систему компанії.
“Reverse Shell” – це техніка, яка використовується зловмисниками для віддаленого отримання контролю над комп’ютерною системою або сервером без необхідності фізичного доступу до цільового пристрою. Основна ідея полягає в тому, що атакуючий створює “обернену оболонку” або “зворотний канал” на комп’ютері жертви, який дозволяє атакуючому відправляти команди та отримувати результати виконання цих команд через мережу.
Ця техніка є надзвичайно потужною та небезпечною, оскільки вона надає атакуючому повний доступ та контроль над цільовою системою. Основні етапи атаки “Reverse Shell” включають в себе:
Зараження системи: Атакуючий повинен спробувати здійснити вразливість у цільовій системі або використовувати соціальну інженерію для введення шкідливого коду на комп’ютер жертви.
Створення зворотньої оболонки: Після успішного введення шкідливого коду, атакуючий створює зворотню оболонку або з’єднання зі своїм сервером. Вони встановлюють “тунель” між атакуючим та жертвою, через який можуть передавати команди та отримувати відповіді.
Виконання команд: Після встановлення зворотньої оболонки, атакуючий може віддалено виконувати будь-які команди або операції на комп’ютері жертви, такі як видалення файлів, зміна конфігурацій, крадіжка даних і так далі.
Розглядаючи різні типи “Reverse Shell”, можна виділити два основних варіанти: TCP та HTTP. “Reverse TCP Shell” використовує протокол TCP для зв’язку між атакуючим та жертвою, тоді як “Reverse HTTP(S) Shell” використовує HTTP або HTTPS для забезпечення тахтоманського з’єднання. Кожен з цих типів має свої переваги та недоліки і може бути вибраний відповідно до конкретних потреб атакуючого.
Основні сфери застосування “Reverse Shell” включають кібершпигунство, злом систем, крадіжку конфіденційних даних, введення внутрішніх мереж під контроль атакуючого та інші зловживання. Таким чином, розуміння цієї загрози є важливим для розробки ефективних стратегій захисту та виявлення цих атак у сучасних системах кібербезпеки.
Розглянемо методи та технології, які використовуються зловмисниками для введення шкідливого коду в комп’ютерну систему чи мережу за допомогою USB-приладів. Цей вид атаки може бути вкрай ефективним, оскільки USB-пристрої загально поширені та добре прийняті в сучасному користувацькому оточенні.
Шкідливий USB-пристрій: Атакуючий створює USB-пристрій, який містить шкідливий код, такий як віруси, троянці, keyloggers або інші зловмисні програми. Цей код може бути розроблений так, щоб автоматично запускатися після підключення USB-пристрою до цільового комп’ютера.
Фізичне втілення: Зловмисник може фізично приховати шкідливий USB-пристрій в об’єкті, який може бути зламаним, наприклад, у USB-кабелі, флешці, мишці або навіть в клавіатурі. Після підключення до комп’ютера, пристрій може виконувати свої зловмисні завдання без відома користувача.
Приклад шкідливого коду на мові програмуванні – python: https://pastebin.com/pVdacpHr
Імпорт необхідних модулів (socket, subprocess, os).
Створення об’єкту сокета (s) для з’єднання з вказаною IP-адресою (10.10.10.10) та портом 9001.
Перенаправлення стандартного вводу, виводу та помилок на сокет (s.fileno() – отримання файлового дескриптора сокета за допомогою методу fileno() та os.dup2() для перенаправлення).
Імпорт модуля pty та виклик функції spawn() з параметром “sh”, що запускає оболонку командного рядка, яка доступна на більшості UNIX-подібних систем.
Обфускація коду – це процес перетворення програмного коду з метою ускладнення його аналізу та розуміння для людини. Це зазвичай використовується з метою унеможливлення розуміння або втручання зловмисників, антивірусних програм, або інших засобів аналізу коду.
Обфускація може включати в себе різні техніки, такі як перейменування змінних та функцій у коді, додавання зайвих або непотрібних конструкцій, шифрування рядків або використання складних конструкцій мови програмування для унеможливлення легкого розуміння логіки програми.
Основна мета обфускації – це зробити код менш зрозумілим для читача, або аналізатора програм, не змінюючи його функціональності для комп’ютера. Це допомагає ускладнити виявлення вразливостей, запобігти аналізу шкідливого коду та унеможливити виявлення шкідливих дій антивірусними програмами.
Код обфускації reverse shell (автор: deeexcee-io; github – https://github.com/deeexcee-io/PowerShell-Reverse-Shell-Generator):
Введення IP-адреси та порту.
Заміна змінних у скрипті на випадкові 10-символьні імена, крім змінної $PSHOME.
Заміна деяких фіксованих фраз у скрипті на випадкові рядки символів.
Заміна місцям ‘$LHOST’ та ‘LPORT’ на введені IP-адресу та порт.
Перетворення IP-адреси на шістнадцятковий формат.
Перетворення номера порту на шістнадцятковий формат, за винятком 65535.
Виведення зміненого скрипта у консоль.
Rubber Ducky – це пристрій, створений для автоматизації атак імітацією клавіатурного введення.
Коли Rubber Ducky підключений до комп’ютера через USB, він емулює поведінку клавіатури, відправляючи команди у вигляді текстових стрічок на цільовий комп’ютер. Це дозволяє виконувати певні дії на системі, надаючи можливість віддалено виконувати команди та отримувати доступ до важливої інформації.
Коли Rubber Ducky використовується для reverse shell, він може виконати скрипт, який імітує клавіатурні дії для запуску програми, яка встановлює зв’язок із сервером зловмисника. Цей сервер може бути налаштований для прийому зворотнього з’єднання і запуску команд через це з’єднання, надаючи зловмиснику віддалений доступ до системи через інтернет.
Приклад коду: https://pastebin.com/b631zyCY
Наше дослідження підкреслює необхідність посилення заходів захисту, враховуючи можливість впровадження шкідливих програм через USB порти та використання методів обфускації.
Disclaimer. Ця стаття створена виключно з ознайомлювальною метою. Усі поради та інструкції надані для освітніх цілей, і ми не несемо відповідальності за будь-які можливі наслідки, пов’язані з реалізацією цього проекту. Завжди дотримуйтесь безпеки при роботі з електронними компонентами.