- Заметаем следы вместе с хакерами. Чистим логи и историю Bash на взломанных Linux системах
- Шаг 1. Скомпрометируйте цель
- Шаг 2. Создайте легко удаляемый скрытый каталог
- Шаг 3. Удалите историю Bash
- Шаг4. Очистите файлы журнала
- Шаг 5. Используйте специальный инструмент для наилучшего сокрытия следов
- Заключение
- Как очистить (усечь) файлы журнала в Linux
- Как очистить (усечь) файлы журнала в Linux
- Пустой файл журнала с помощью команды truncate
- Пустой файл журнала, используя:> или true>
- Пустой файл журнала с помощью команды echo
- Пустой файл журнала с помощью команды dd
- Как чистить логи linux
Заметаем следы вместе с хакерами. Чистим логи и историю Bash на взломанных Linux системах
Последним этапом деятельности любого хакера является заметание следов.
Автор: DRD_, Cyber Weapons Lab
Последним этапом деятельности любого хакера является заметание следов. Киберпреступник удаляет следы своей деятельности и логи, чтобы избежать обнаружения. Данный этап особенно важен, если злоумышленник в будущем планирует снова получить доступ к целевому устройству.
Для демонстрации основ заметания следов, сначала скомпрометируем цель, а затем изучим несколько методов, используемых для удаления истории Bash и очистки логов после взлома Linux систем.
Шаг 1. Скомпрометируйте цель
Первое, что нам следует сделать, — взломать цель. Используя некорректную обработку сервером команд ОС, можно применить внедрение команд, для получения оболочки. Затем нашу новую оболочку необходимо обновить до полностью интерактивной. Данная процедура значительно упростит работу. После этого мы сможем повысить наши привилегии до root, чтобы наилучшим образом использовать преимущества системы и оставаться незамеченными.
Шаг 2. Создайте легко удаляемый скрытый каталог
Получив root-доступ, мы можем создать скрытый каталог для работы и хранить в нем любые скрипты или файлы. С одной стороны, подобные манипуляции обманут лишь самого начинающего администратора, но дополнительный уровень защиты определенно не повредит. Во-первых, давайте найдем все доступные для записи каталоги с помощью следующей команды:
С помощью команды mkdir можно создать скрытый каталог, добавив точку к имени:
Зададим команду перечисления содержимого /dev/shm. Как видим, ничего не появилось:
Каталог появляется лишь тогда, когда мы используем переключатель -a для вывода списка всех файлов и каталогов:
Для удаления каталога после завершения работы на машине, используйте команду rmdir :
Шаг 3. Удалите историю Bash
Команды записываются в переменную среды HISTFILE, обычно это .bash_history. Воспользуемся echo для определения местоположения:
Используем команду unset для удаления переменной:
Повторив процедуру снова, видим, что ничего не появляется:
Чтобы история команд не сохранялась, также можно ее отправить в /dev/null. Для этого установите переменную:
Или сделайте то же самое с командой экспорта:
История теперь будет отправлена в /dev/null (то есть никуда):
Установите количество команд, которые будут сохраняться во время текущего сеанса, равным 0, используя переменную HISTSIZE:
В качестве альтернативы используйте команду экспорта:
Измените количество строк, разрешенных в файле истории, с помощью переменной HISTFILESIZE. Установите данное значение на 0:
Или с экспортом:
Для изменения параметров оболочки также можно использовать команду set. Чтобы отключить опцию истории, используйте следующую команду:
Снова включите ее:
Точно так же для изменения параметров оболочки можно использовать команду shopt. Чтобы отключить историю, используйте следующую команду:
Снова включите ее:
Во время выполнения команд на целевой системе иногда получается избежать их сохранения в истории, запустив команду с начального пробела:
Данный метод работает не всегда и зависит от системы. Также можно просто очистить историю с помощью переключателя -c :
Чтобы убедиться, что изменения записаны на диск, используйте переключатель -w :
Данные действия очистят историю только для текущего сеанса. Чтобы окончательно убедиться, что история очищается при выходе из сеанса, пригодится следующая команда:
Также можно использовать команду kill для выхода из сеанса без сохранения истории:
Шаг4. Очистите файлы журнала
Конечно, можно просто удалить журнал с помощью команды rm :
Но скорее всего, данная процедура вызовет многочисленные красные флажки. Поэтому лучше сделать файл пустым, чем стирать его полностью. Используем команду truncate, чтобы уменьшить размер файла до 0:
Обратите внимание, функция усечения присутствует не всегда и не во всех системах.
То же самое можно сделать, отображая в файл “ничего”:
А также использовать > сам по себе для очистки файла:
Мы также можем отправить его в /dev/null:
Или использовать команду tee :
Также можно использовать команду dd, чтобы ничего не записывать в файл журнала:
Команда shred может быть использована, чтобы поверх перезаписать файл с бессмысленными двоичными данными:
Дополнительно добавив -zu, вы обрежете файл и перезапишете его нулями:
Шаг 5. Используйте специальный инструмент для наилучшего сокрытия следов
Перейдите в каталог с возможностью записи и используйте chmod, чтобы сделать его исполняемым:
Затем запустите его:
Нам предоставляется настраиваемая подсказка с несколькими вариантами на выбор. Выберем первый, чтобы очистить логи:
Также можно отключить Bash и историю авторизации с помощью опции 2:
Если вам нужно срочно все очистить, просто добавьте в команду now:
Заключение
Отмечу, что существуют и другие способы удаления следов атаки. Можно использовать Metasploit , сценарии оболочки или осуществить сокрытие следов на взломанной Windows системе. Тем не менее информации, приведенной в статье, вполне достаточно для сокрытия активности на базовом Linux компьютере.
Источник
Как очистить (усечь) файлы журнала в Linux
Как очистить (усечь) файлы журнала в Linux
В какой-то момент жизненного цикла Sysadmin может потребоваться очистить файл журнала, чтобы сэкономить место на системном диске или по любой другой причине. Существуют различные способы очистки файла в системе Linux.
Пустой файл журнала с помощью команды truncate
Самый безопасный способ очистки файла журнала в Linux — использование команды truncate. Команда усечения используется для сокращения или расширения размера каждого ФАЙЛА до указанного размера.
Где -s используется для установки или настройки размера файла по размеру байтов. file Может быть относительно текущего каталога или абсолютный путь к файлу при условии.
Для полных опций команды усечения используйте опцию —help
Пустой файл журнала, используя:> или true>
Вы также можете использовать :> для очистки содержимого файла. Синтаксис
Пустой файл журнала с помощью команды echo
Если вы ничего не отобразите в файле, он очистит содержимое, чтобы очистить его.
Пустой файл журнала с помощью команды dd
Синтаксис для использования dd команды
Смотрите примеры ниже
Для нескольких файлов достаточно простого цикла в bash.
Используйте любой из методов, чтобы очистить ваши большие файлы журнала.
Источник
Как чистить логи linux
Всем привет!
В этой статье, я хочу рассказать о логах в ОС Linux и необходимости очистки логов в боевой обстановке, например, во время взлома (пен-теста) или вардрайвинга.
Введение
1. Логи в Linux
2. Очистка лог файлов
3. Wardriver Log Cleaner
4. Локальная очистка логов на «Системном» уровне
5. Удаленная очистка логов на «Системном» и «Прикладном» уровнях
6. Локальная очистка логов на «Параноидальном» уровне
Заключение
Список использованных источников
ПРИЛОЖЕНИЕ — Исходный код
Введение
Что такое вардрайвинг? Если говорить своими словами, то вардрайвинг — это разведка местности, с целью выявления (локализации) точек доступа Wi-Fi и их последующего взлома.
В Википедии дано следующее определение вардрайвинга: Вардра́йвинг (англ. Wardriving) — процесс поиска и взлома уязвимых точек доступа беспроводных сетей Wi-Fi человеком либо группой лиц, оснащенных переносным компьютером с Wi-Fi-адаптером. При этом для пространственного поиска и локализации точки используется транспортное средство (отсюда и название — боевое вождение). [1]
Цели занятия вардрайвингом могут быть следующие:
- Интерес. Можно взламывать точки доступа забавы ради;
- Доступ к Интернету. Получив доступ к Интернету, появляется возможность действовать от имени (с адреса) владельца точки, при этом самому оставаясь «в тени» (proxy, VPN, TOR и т.д. не рассматриваются);
- Конкретная цель. Целью конкретной атаки может стать компания или частное лицо, проникновение в Wi-Fi сеть которого, предоставит возможность дальнейшего развития атаки внутри сети.
Получив доступ к сети, хакер может просто уйти, а может продолжить развитие атаки. Дальнейшее развитие атаки получило название Pivoting.
Pivoting ссылается на метод используемый в пен-тестировании, который использует взломанную систему для атак на другие системы. Это многослойная атака, в которой можно получить доступ к тем системам, которые доступны для внутреннего использования. [2]
Возможности проведения вардрайвинга, пен-тестирования и многого другого, сосредоточены в одной известной ОС — BackTrack, ставшей позднее Kali Linux. В этой статье рассматривается работа именно в Kali Linux.
Kali Linux является передовым Linux дистрибутивом для проведения тестирования на проникновение и аудита безопасности. [3]
Как известно, ничто не проходит бесследно, и любая деятельность имеет свои последствия. Такие последствия могут выражаться в виде записей в лог файлах.
Определение логов в Википедии следующее: Файл регистрации, протокол, журнал или лог (англ. log) — файл с записями о событиях в хронологическом порядке. Различают регистрацию внешних событий и протоколирование работы самой программы — источника записей (хотя часто всё записывается в единый файл). [4]
Логируется всё, что может быть залогировано: команды пользователя, действия программ, трафик, подключения к системе и т.д. и т.п. Правило «Чисти логи два раза в день» ещё ни кто не отменял, и это понятно, ведь по логам, можно обнаружить атаку или постороннего пользователя в системе. Если хакер не очистил логи, его присутствие может быть обнаружено, так же по логам можно выяснить, как хакер проник в систему, что он делал после проникновения и т.д., проще говоря, составить хронологию его действий, и, возможно даже вычислить взломщика. Что для последнего является весьма не желательным.
Для того, чтобы скрыть факт атаки и своё присутствие в системе, хакеры обычно очищают логи на захваченной машине (руткиты не рассматриваются).
Логи хранятся не только на удалённой машине, но и на роутере (маршрутизаторе), через который идёт обмен данными, а так же на машине самого хакера. По этому важно очищать логи не только на удалённой машине, но и на роутере, и на своей собственной машине (имеется в виду ЭВМ, а не автомобиль).
1. Логи в Linux
Большинство лог файлов хранится в каталоге /var/log/, однако некоторые программы хранят логи в домашнем каталоге пользователя.
Лог файлы в Linux бывают двух типов: бинарные и текстовые.
Бинарные лог файлы используются системными программами, и, как следует из названия хранят информацию в бинарном виде. Основными бинарными лог файлами в Linux являются:
- /var/run/utmp — содержит сведения о текущих подключениях к системе. Используется утилитами w и who;
- /var/log/wtmp — содержит исторические сведения о подключениях к системе. Используется утилитой last;
- /var/log/btmp — содержит информацию о неудачных попытках входа в систему. Используется утилитой lastb;
- /var/log/lastlog — содержит информацию о последнем входе пользователя в систему. Используется утилитой lastlog. [5]
Текстовые лог файлы хранят логи в простом текстовом виде, их могут вести, как системные, так и прикладные программы. К системным текстовым лог файлам, можно отнести следующие:
- /var/log/auth.log — содержит информацию о аутентификации пользователей;
- /var/log/audit/audit.log — содержит информацию об отказах в доступе;
- /var/log/messages — лог сообщений;
- /var/log/security — содержит информацию о аутентификации пользователей.
Каталог /var/log/ содержит лог файлы многих других программ, например:
- SSH: /var/log/sshd.log;
- ProFTPd:
- /var/log/proftpd/proftpd.log;
- /var/log/proftpd/xferlog;
- Apache:
- /var/log/apache2/error.log;
- /var/log/apache2/access.log;
- MySQL:
- /var/log/mysql.err;
- /var/log/mysql.log;
- и др.
Как уже было сказано, некоторые программы хранят логи в домашнем каталоге пользователя, например (root в Kali Linux):
- /root/.mysql_history;
- /root/ .maltego/v3.3.0BT/var/log/messages.log;
- /root/.armitage/;
- /root/.w3af/urlhistory.pkl;
- /root/.bash_history;
- metasploit:
- /root/.msf4/history;
- /root/.msf4/logs/framework.log;
- и т.д..
Примечание: очищать $HOME/.bash_history по усмотрению.
Кроме каталога /var/log/ и домашнего каталога пользователя, логи могут хранится в различных местах файловой системы, например:
- nessus:
- /opt/nessus/var/nessus/logs/nessusd.dump;
- /opt/nessus/var/nessus/logs/nessusd.messages;
- /opt/nessus/var/nessus/logs/www_server.log.
- SET:
- /usr/share/set/src/logs/harvester.log;
- /usr/share/set/src/logs/set_logfile.log.
- metasploit: /opt/metasploit/apps/pro/data/vulndex/vulndex.log.
Например, reaver хранит логи и сохранённые сессии в /etc/reaver/.
Примечание: логов программ для работы с Wi-Fi сетями, такими, как wash, wifite и семейство aircrack — в процессе исследования, обнаружено не было.
2. Очистка лог файлов
В введении уже было сказано о логах и необходимости их очистки, как на захваченной и промежуточной машинах, так и на собственной. Тем не менее, повторюсь, компрометирующим материалом являются не только логи сервера (и промежуточной машины), но и логи вашей собственной машины (ПК, ноутбук и т.д.). Ведь если вы не очистите логи у себя, то эти же ваши логи, могут стать доказательством вашей причастности или вины, если вы провернули какое-то дело и вас нашли.
В любом случае, перед каждой вылазкой на вардрайвинг, рекомендуется использовать ARP-Spoofing, чтобы подменить MAC-адрес своего Wi-Fi адаптера, а после вылазки, зачищать у себя логи.
Лучший способ не оставлять у себя логов — это работать с Live-CD или загрузочной флешки (без установки самой ОС). Таким образом, все логи будут уничтожены при перезагрузке/выключении. Но в этой статье речь пойдёт о работе с установленной системой Kali Linux, соответственно логи, после выключения/перезагрузки, сами никуда не денутся.
Способы очистки логов:
- Ручное удаление лог файлов и отключение демонов. Это самый примитивный и неэффективный способ очистки логов. Администратор быстро заметит неладное и примет меры;
- Ручная очистка лог файлов. Этот способ так же является неэффективным, т.к. файлов для очистки может быть много, а объём их достаточно большой. Поиск и удаление нужных строк может занять много времени. А бинарные файлы очистить вручную не получится вовсе;
- Использование специализированных программ — лог клинеров. Данный способ является наиболее эффективным, о нём пойдёт речь дальше. Для очистки лог файлов используются лог клинеры, эти программы автоматически удаляют нужные записи из лог файлов, скрыв от администратора, как факт атаки на систему, так и присутствие хакера.
Лог клинеры для очистки лог файлов используют следующие методы:
- Выполняется поиск записей, которые нужно скрыть в лог файле, эти записи затираются пробелами или нулевыми структурами;
- Из лог файла во временный файл копируется вся информация, кроме той, которую требуется скрыть. Затем содержимое лог файла заменяется информацией из сформированного временного файла;
- Данные, которые нужно скрыть в лог файле, не удаляются, а подменяются фальсифицированными аналогами.
Недостатком первого метода является то, что многие утилиты обнаружения атак проверяют файлы utmp/wtmp/lastlog и др. на наличие нулевых структур. В связи с чем, рекомендуется использовать лог клинеры, работающие по второму методу. Очистка лог файлов через временный файл (метод 2) выполняется как для бинарных файлов, так и для текстовых. [5]
Критерии лог клинеров:
- Надежность. После запуска лог клинера все логи должны быть корректно очищены, а лог файлы остаться доступными для дальнейшего журналирования;
- Скорость. Скорость работы лог клинера, далеко не последний по важности критерий, особенно, если очистка происходит в боевой обстановке;
- Маскировка и скрытность. Лог клинер не должен оставлять за собой каких-либо временных файлов либо core-dump’ов. [6]
3. Wardriver Log Cleaner
В 2013 году (месяц не помню) я заинтересовался очисткой лог файлов под Linux, и в процессе исследования, написал простой лог клинер. Позже я его немного доработал и забросил. Относительно недавно заинтересовался вардрайвингом, вспомнил про лог клинер и решил довести его до ума, сделав из простого чистильщика, программу, пригодную к использованию в боевых условиях.
Начиная с версии 0.3, программа получила название «Wardriver Log Cleaner» (рисунок 1).
Принцип работы лог клинера
Очистка лог файлов выполняется через временный файл. Перед началом очистки логов, программа сохраняет дату/время последнего доступа и модификации лог файла. Из лог файла во временный файл копируется вся информация, кроме той, которую требуется скрыть. После чего временный файл заменяет собой лог файл. Затем для очищенного лог файла выставляется сохранённая дата/время.
Таким образом «Wardriver Log Cleaner» надёжно очищает лог файлы, удаляя лишь нужные записи, при этом, лог файл доступен для дальнейшего протоколирования.
Так же «Wardriver Log Cleaner», не оставляет за собой следов (временные файлы, дампы и т.д.), и, что очень важно, не изменяет дату/время доступа/модификации лог файла.
Уровни очистки
Лог клинер работает на трёх уровнях очистки:
- «Системный». На этом уровне очищаются системные лог файлы, содержащие указанное имя пользователя и терминал. Очищаемые файлы:
- /var/run/utmp;
- /var/log/wtmp;
- /var/log/btmp;
- /var/log/audit/audit.log;
- /var/log/messages;
- /var/log/security;
- /var/log/lastlog;
- /var/log/auth.log.
- «Прикладной». На этом уровне очищаются логи следующих программ:
- Apache;
- nginx;
- lighthttpd;
- MySQL;
- PostgreSQL;
- SSH;
- ProFTPd;
- PureFTPd;
- vsFTPd.
- «Параноидальный». На этом уровне происходит массовая зачистка практически всех лог файлов в системе. Очищаются как отдельные лог файлы, так и лог файлы целых программ, вычищаются целые директории, содержащие компрометирующие логи. Очищаются, как системные логи, так и прикладные. Очистка происходит в /var/log/, в домашнем каталоге пользователя, и в других местах файловой системы. На «Параноидальном» уровне очистке подвергаются следующие программы:
- armitage;
- metasploit;
- SET;
- wireshark;
- reaver;
- maltego;
- w3af;
- другие программы и файлы;
- а так же чистки «по мелочи», включая корзину.
При работе с «Wardriver Log Cleaner» можно использовать любой уровень очистки или комбинировать их.
Например, указав аргументы -u -t — будет выполнена очистка на «Системном» уровне. Из лог файлов будут удалены записи, содержащие указанное имя пользователя и терминал, сделав указанного пользователя невидимым.
Указав аргумент -i — будет выполнена очистка на «Прикладном» уровне. Из лог файлов будут удалены записи, содержащие указанный IP-адрес.
Указав аргумент -p — будет выполнена очистка на «Параноидальном» уровне.
Аргументы можно комбинировать. Например, если вы хотите скрыть факт атаки на систему, а так же своё присутствие в системе, запустите лог клинер с тремя аргументами: -u -t -i — эта команда запустит очистку на «Системном» и «Прикладном» уровнях, скрыв ваши следы и присутствие от администратора.
Запуск лог клинера без аргументов, выдаст следующую подсказку (рисунок 2).
Возможности применения
Использовать лог клинер, можно как на своей машине для очистки локальных логов, так и на удалённой. Например, получив доступ к серверу, можно загрузить на него лог клинер, очистить логи на «Системном» и «Прикладном» уровнях, и стать невидимым для администратора, скрыв сам факт атаки на сервер.
При проникновении в Wi-Fi сеть, так же рекомендуется выполнять (ручную) очистку логов на роутере (маршрутизаторе).
4. Локальная очистка логов на «Системном» уровне
Хакер вошёл в систему под логином evilhacker, с терминала tty3 (рисунок 3).
Рисунок 4 — Вывод утилиты who
Рисунок 5 — Вывод утилиты w
Рисунок 6 — Вывод утилиты last
Рисунок 7 — Вывод утилиты lastlog
Из рисунка 8 видно, что лог клинер выполнил очистку логов на «Системном» уровне для пользователя evilhacker на терминале tty3. Были очищены все файлы из списка, кроме /var/log/audit/audit.log и /var/log/security. Эти два файла не были очищены, т.к. они отсутствуют в системе.
Очистка логов завершена, проверим вывод утилит who, w, last и lastlog (Рисунки 9, 10 и 11).
Рисунок 9 — Вывод утилиты who
Рисунок 10 — Вывод утилиты w
Рисунок 11 — Вывод утилит last и lastlog
Рисунок 12 — Свойства utmp
Рисунок 13 — Свойства wtmp
Рисунок 14 — Свойства btmp
Рисунок 15 — Свойства messages
Рисунок 16 — Свойства lastlog
Рисунок 17 — Свойства auth.log
Из рисунков 12 — 17 видно, что лог клинер не изменяет дату/время доступа/модификации файла. Исключение в данном случае составил файл auth.log, т.к. запуск лог клинера пользователем evilhacker был выполнен от имени рута (команда sudo).
Примечание: очищать .bash_history по усмотрению, т.к. запуск лог кленера от имени рута (команда sudo), приведет к очистке файла /root/.bash_history.
5. Удаленная очистка логов на «Системном» и «Прикладном» уровнях
На данном этапе будет продемонстрирована удалённая очистка лог файлов на сервере. IP-адрес сервера представлен на рисунке 18.
Рисунок 22 — Логи хакера на WWW сервере (access.log)
Рисунок 23 — Логи хакера на WWW сервере (error.log)
Таким образом, администратор, изучив логи, может восстановить хронологию действий хакера, понять, как он проник в систему и что он сделал дальше. Так же появляется возможность заблокировать хакера, и предотвратить повторное вторжение в систему.
На рисунке 26 показана работа лог клинера по очистке логов в удалённой системе на «Системном» и «Прикладном» уровнях.
Рисунок 27 — логи WWW сервера (access.log) после очистки
Рисунок 28 — Логи WWW сервера (error.log) после очистки
Рисунок 29 — Логи FTP сервера после очистки
Рисунок 30 — Очищенный лог файл WWW сервера (access.log)
Рисунок 31 — Очищенный лог файл WWW сервера (error.log)
Рисунок 32 — Очищенный лог файл FTP сервера
Таким образом, хакер очистил логи на «Системном» и «Прикладном» уровнях удалённой системы, скрыв факт атаки и своего присутствия на захваченной машине. Администратор может полагать, что посторонних пользователей в системе нет, хотя на самом деле это не так. Очистив логи, хакер может оставаться скрытым от администратора и продолжать развивать атаку.
6 Локальная очистка логов на «Параноидальном» уровне
На этом уровне выполняется очистка множества лог файлов и директорий на локальной машине. В качестве примера, будет приведена очистка директории .armitage/, и файла .msf4/history.
После работы в msfconsole, Metasploit сохраняет историю в файле .msf4/history, содержимое которого представлено на рисунке 34.
Таким образом, «Wardriver Log Cleaner» выполняет очистку на «Параноидальном» уровне, уничтожая нежелательные логи (историю), заметая все следы деятельности хакера на локальной машине.
Заключение
Статья получилась довольно объемная, но теперь она подошла к концу, и я хочу поблагодарить всех, кто проявил интерес и настойчивость, и прочитал её до конца. Надеюсь, вы узнали для себя что-нибудь новое и полезное.
Источник