Вернуться   RDot > RDot.org > Статьи/Articles

Ответ
 
Опции темы Опции просмотра
Старый 15.02.2014, 15:37   #1
<Gh0St>
 
Аватар для <Gh0St>
 
Регистрация: 22.03.2012
Сообщений: 75
Репутация: 19
Post Зачистка следов в боевой обстановке

Зачистка следов в боевой обстановке

Всем привет!
В этой статье, я хочу рассказать о логах в ОС 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, соответственно логи, после выключения/перезагрузки, сами никуда не денутся.

Способы очистки логов:
  1. Ручное удаление лог файлов и отключение демонов. Это самый примитивный и неэффективный способ очистки логов. Администратор быстро заметит неладное и примет меры;
  2. Ручная очистка лог файлов. Этот способ так же является неэффективным, т.к. файлов для очистки может быть много, а объём их достаточно большой. Поиск и удаление нужных строк может занять много времени. А бинарные файлы очистить вручную не получится вовсе;
  3. Использование специализированных программ - лог клинеров. Данный способ является наиболее эффективным, о нём пойдёт речь дальше. Для очистки лог файлов используются лог клинеры, эти программы автоматически удаляют нужные записи из лог файлов, скрыв от администратора, как факт атаки на систему, так и присутствие хакера.

Лог клинеры для очистки лог файлов используют следующие методы:
  1. Выполняется поиск записей, которые нужно скрыть в лог файле, эти записи затираются пробелами или нулевыми структурами;
  2. Из лог файла во временный файл копируется вся информация, кроме той, которую требуется скрыть. Затем содержимое лог файла заменяется информацией из сформированного временного файла;
  3. Данные, которые нужно скрыть в лог файле, не удаляются, а подменяются фальсифицированными аналогами.
Недостатком первого метода является то, что многие утилиты обнаружения атак проверяют файлы utmp/wtmp/lastlog и др. на наличие нулевых структур. В связи с чем, рекомендуется использовать лог клинеры, работающие по второму методу. Очистка лог файлов через временный файл (метод 2) выполняется как для бинарных файлов, так и для текстовых. [5]

Критерии лог клинеров:
  • Надежность. После запуска лог клинера все логи должны быть корректно очищены, а лог файлы остаться доступными для дальнейшего журналирования;
  • Скорость. Скорость работы лог клинера, далеко не последний по важности критерий, особенно, если очистка происходит в боевой обстановке;
  • Маскировка и скрытность. Лог клинер не должен оставлять за собой каких-либо временных файлов либо core-dump'ов. [6]


3. Wardriver Log Cleaner
В 2013 году (месяц не помню) я заинтересовался очисткой лог файлов под Linux, и в процессе исследования, написал простой лог клинер. Позже я его немного доработал и забросил. Относительно недавно заинтересовался вардрайвингом, вспомнил про лог клинер и решил довести его до ума, сделав из простого чистильщика, программу, пригодную к использованию в боевых условиях.
Начиная с версии 0.3, программа получила название "Wardriver Log Cleaner" (рисунок 1).

Рисунок 1 - Баннер лог клинера

Принцип работы лог клинера
Очистка лог файлов выполняется через временный файл. Перед началом очистки логов, программа сохраняет дату/время последнего доступа и модификации лог файла. Из лог файла во временный файл копируется вся информация, кроме той, которую требуется скрыть. После чего временный файл заменяет собой лог файл. Затем для очищенного лог файла выставляется сохранённая дата/время.

Таким образом "Wardriver Log Cleaner" надёжно очищает лог файлы, удаляя лишь нужные записи, при этом, лог файл доступен для дальнейшего протоколирования.
Так же "Wardriver Log Cleaner", не оставляет за собой следов (временные файлы, дампы и т.д.), и, что очень важно, не изменяет дату/время доступа/модификации лог файла.

Уровни очистки
Лог клинер работает на трёх уровнях очистки:
  1. "Системный". На этом уровне очищаются системные лог файлы, содержащие указанное имя пользователя и терминал. Очищаемые файлы:
    • /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.
  2. "Прикладной". На этом уровне очищаются логи следующих программ:
    • Apache;
    • nginx;
    • lighthttpd;
    • MySQL;
    • PostgreSQL;
    • SSH;
    • ProFTPd;
    • PureFTPd;
    • vsFTPd.
  3. "Параноидальный". На этом уровне происходит массовая зачистка практически всех лог файлов в системе. Очищаются как отдельные лог файлы, так и лог файлы целых программ, вычищаются целые директории, содержащие компрометирующие логи. Очищаются, как системные логи, так и прикладные. Очистка происходит в /var/log/, в домашнем каталоге пользователя, и в других местах файловой системы. На "Параноидальном" уровне очистке подвергаются следующие программы:
    • armitage;
    • metasploit;
    • SET;
    • wireshark;
    • reaver;
    • maltego;
    • w3af;
    • другие программы и файлы;
    • а так же чистки "по мелочи", включая корзину.

При работе с "Wardriver Log Cleaner" можно использовать любой уровень очистки или комбинировать их.
Например, указав аргументы -u <user> -t <tty> - будет выполнена очистка на "Системном" уровне. Из лог файлов будут удалены записи, содержащие указанное имя пользователя и терминал, сделав указанного пользователя невидимым.
Указав аргумент -i <ip> - будет выполнена очистка на "Прикладном" уровне. Из лог файлов будут удалены записи, содержащие указанный IP-адрес.
Указав аргумент -p - будет выполнена очистка на "Параноидальном" уровне.

Аргументы можно комбинировать. Например, если вы хотите скрыть факт атаки на систему, а так же своё присутствие в системе, запустите лог клинер с тремя аргументами: -u <user> -t <tty> -i <ip> - эта команда запустит очистку на "Системном" и "Прикладном" уровнях, скрыв ваши следы и присутствие от администратора.

Запуск лог клинера без аргументов, выдаст следующую подсказку (рисунок 2).

Рисунок 2 - Подсказка лог клинера

Возможности применения
Использовать лог клинер, можно как на своей машине для очистки локальных логов, так и на удалённой. Например, получив доступ к серверу, можно загрузить на него лог клинер, очистить логи на "Системном" и "Прикладном" уровнях, и стать невидимым для администратора, скрыв сам факт атаки на сервер.
При проникновении в Wi-Fi сеть, так же рекомендуется выполнять (ручную) очистку логов на роутере (маршрутизаторе).


4. Локальная очистка логов на "Системном" уровне
Хакер вошёл в систему под логином evilhacker, с терминала tty3 (рисунок 3).

Рисунок 3 - Хакер вошёл в систему

После авторизации, в системе появляются следы хакера, и администратор может заметить присутствие постороннего пользователя, например, через утилиты who и w (Рисунки 4 и 5).

Рисунок 4 - Вывод утилиты who


Рисунок 5 - Вывод утилиты w

Так же следы хакера можно обнаружить утилитами last и lastlog (Рисунки 6 и 7).

Рисунок 6 - Вывод утилиты last


Рисунок 7 - Вывод утилиты lastlog

Чтобы скрыть своё присутствие в системе, хакер очищает логи на "Системном" уровне (Рисунок 8).

Рисунок 8 - Очистка логов на "Системном" уровне

Из рисунка 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

Из рисунков 9, 10 и 11 видно, что хакер стал невидимым в системе. Более того, если верить утилите lastlog, evilhacker вообще никогда не входил в систему.
Таким образом, очистив логи на "Системном" уровне, хакер скрыл своё присутствие в системе.
Согласно выводу лог клинера (рисунок 8), были очищены следующие файлы:
  • /var/run/utmp;
  • /var/log/wtmp;
  • /var/log/btmp;
  • /var/log/messages;
  • /var/log/lastlog;
  • /var/log/auth.log;
  • .bash_history.

Проверка даты/времени доступа/модификации файлов представлена на рисунках 12 - 17.
Лог клинер был запущен в 22:30 по системному времени.

Рисунок 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.

Рисунок 18 - IP-адрес сервера

Запущенные сервисы показаны на рисунке 19.

Рисунок 19 - Запущенные сервисы

Из рисунков 18 и 19 видно, что IP-адрес сервера 192.168.1.6, и на сервере запущены сервисы FTP, SSH и WWW.
Логи хакера на сервисах WWW и FTP были оставлены заранее.
На рисунке 20 представлен IP-адрес хакера.

Рисунок 20 - IP-адрес хакера

На рисунке 21 показано подключение хакера к серверу через SSH.

Рисунок 21 - Подключение хакера к серверу

Из рисунка 21 видно, что хакер подключился к серверу (192.168.1.6) с логином evilhacker на терминал /dev/pts/1.
Логи хакера на WWW сервере представлены на рисунках 22 и 23.

Рисунок 22 - Логи хакера на WWW сервере (access.log)


Рисунок 23 - Логи хакера на WWW сервере (error.log)

Логи хакера на FTP сервере показаны на рисунке 24.

Рисунок 24 - Логи хакера на FTP сервере

Как видно из рисунков 22 - 24, хакер успел наследить в логах.
На рисунке 25 представлен вывод утилит who, w, last и lastlog, из которых видно присутствие хакера в системе.

Рисунок 25 - Следы хакера в удалённой системе

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

На рисунке 26 показана работа лог клинера по очистке логов в удалённой системе на "Системном" и "Прикладном" уровнях.

Рисунок 26 - Очистка логов на удалённой системе

Дата/время доступа/модификации лог файлов представлены на рисунках 27 - 29. Из рисунков видно, что лог клинер не изменяет временные характеристики файлов.
Лог клинер был запущен в 23:40 по системному времени.

Рисунок 27 - логи WWW сервера (access.log) после очистки


Рисунок 28 - Логи WWW сервера (error.log) после очистки


Рисунок 29 - Логи FTP сервера после очистки

На рисунках 30 - 32 представлены очищенные логи WWW и FTP сервисов. Из рисунков видно, что следы хакера были очищены, в остальном лог файлы остались прежними.

Рисунок 30 - Очищенный лог файл WWW сервера (access.log)


Рисунок 31 - Очищенный лог файл WWW сервера (error.log)


Рисунок 32 - Очищенный лог файл FTP сервера

На рисунке 33 представлен вывод утилит who, w, last и lastlog, после очистки лог файлов, из которых видно, что хакер скрыл свое присутствие в системе, более того, evilhacker никогда не входил в систему.

Рисунок 33 - Следы хакера в удалённой системе очищены

Таким образом, хакер очистил логи на "Системном" и "Прикладном" уровнях удалённой системы, скрыв факт атаки и своего присутствия на захваченной машине. Администратор может полагать, что посторонних пользователей в системе нет, хотя на самом деле это не так. Очистив логи, хакер может оставаться скрытым от администратора и продолжать развивать атаку.


6 Локальная очистка логов на "Параноидальном" уровне
На этом уровне выполняется очистка множества лог файлов и директорий на локальной машине. В качестве примера, будет приведена очистка директории .armitage/, и файла .msf4/history.
После работы в msfconsole, Metasploit сохраняет историю в файле .msf4/history, содержимое которого представлено на рисунке 34.

Рисунок 34 - История msfconsole

Становится очевидным, что такие логи не сулят ничего хорошего и подлежат уничтожению. В отличии от двух предыдущих уровней очистки ("Системного" и "Прикладного"), где требовался "тонкий подход" к обработке лог файлов, здесь, на "Параноидальном" уровне, всё проще - лог файл вычищается полностью, т.к. подобная история не нужна вовсе.
Содержимое каталога .armitage/ представлено на рисунке 35. Как видно из рисунка, каталог содержит различные лог файлы с историей работы в Armitage, и так же подлежит очистке.

Рисунок 35 - Содержимое каталога .armitage до очистки

Очистка лог файлов на "Параноидальном" уровне представлена на рисунке 36 (вывод лог клинера сокращен).

Рисунок 36 - Очистка логов на "Параноидальном" уровне.

Временные характеристики файла .msf4/history после очистки показаны на рисунке 37. Из рисунка видно, что лог файл был очищен, а его временные характеристики не изменились.
Лог клинер был запущен в 23:57 по системному времени.

Рисунок 37 - Временные характеристики файла после очистки

Содержимое каталога .armitage/ после очистки показано на рисунке 38. Из рисунка видно, что каталог был полностью очищен.

Рисунок 38 - Содержимое каталога .armitage после очистки

Таким образом, "Wardriver Log Cleaner" выполняет очистку на "Параноидальном" уровне, уничтожая нежелательные логи (историю), заметая все следы деятельности хакера на локальной машине.


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


Список использованных источников
  1. http://ru.wikipedia.org/wiki/Вардрайвинг
  2. http://www.levinkv.ru/bezopasnost/metasploit/metasploit-penetration-testing-cookbook-часть-6.html
  3. http://ru.docs.kali.org/introduction-ru/что-такое-kali-linux
  4. http://ru.wikipedia.org/wiki/Файл_регистрации
  5. Иван Скляров. "Программирование боевого софта под Linux"
  6. http://www.xakep.ru/magazine/xs/032/062/1.asp


ПРИЛОЖЕНИЕ - Исходный код
Ссылка: http://www.sendspace.com/file/76ffks
Пароль к архиву: special-for_rdot.org
__________________
- Про опыт говорят: "Мы так свои ошибки называем"
<Gh0St> вне форума   Ответить с цитированием
Старый 16.02.2014, 11:56   #2
Ravenous
 
Аватар для Ravenous
 
Регистрация: 14.07.2012
Сообщений: 63
Репутация: 1
По умолчанию

Как правило если таргет не какойнить одиночный VPS, а сервак, на котором десяток сайтов. То логи будут хранится в месте типа /homе/sdasda/httpdocs/logs/access_log или т.п. , правильно понимаю, что прдется править исходных код программы и добавлять пути в ручную практически в каждом случае?
Ravenous вне форума   Ответить с цитированием
Старый 16.02.2014, 13:08   #3
<Gh0St>
 
Аватар для <Gh0St>
 
Регистрация: 22.03.2012
Сообщений: 75
Репутация: 19
По умолчанию

Править исходник не нужно.
Достаточно добавить свои пути в список
__________________
- Про опыт говорят: "Мы так свои ошибки называем"
<Gh0St> вне форума   Ответить с цитированием
Старый 10.06.2017, 17:33   #4
Capablanka
 
Регистрация: 12.02.2016
Сообщений: 1
Репутация: 0
По умолчанию

Остался у кого-то исходный код выложенный в статье?
Capablanka вне форума   Ответить с цитированием
Старый 06.12.2017, 16:17   #5
[cash]
 
Аватар для [cash]
 
Регистрация: 07.07.2010
Сообщений: 36
Репутация: 3
По умолчанию

Вот почти тоже самое.
https://github.com/Pashkela/WhiteCat...ter/whitecat.c
__________________
.old school.
[cash] вне форума   Ответить с цитированием
Ответ

Метки
kali, log cleaner, logs, wardriving

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Перевод: zCarot