Статья usbrip: USB-форензика для Линуксов, или Как Алиса стала Евой

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

Краткий очерк того, что здесь будет происходить (дабы незаинтересованные сразу могли покинуть тред): около 2-х недель назад ко мне обратился знакомый (далее "Боб") с просьбой о помощи в доказательстве факта измены своей подруги (далее "Алиса"), апеллируя к тому, что "ты ж программист". Согласен, довольно необычный аргумент в такой ситуации, но технари же всесильны, разве нет ;)? Конечно, я согласился, ибо предстояло интересное расследование компьютерной активности в поисках аномальных следов любовника на ноутбуке подруги друга (заковыристо!), что обещало хоть как-то разбавить мои серые буди. В этой статье поговорим об опенсорсной утилите usbrip, написанной энтузиастом-соотечественником (насколько я могу судить по профилю на Гитхабе) для мониторинга истории USB-подключений под Линуксами, моем опыте ее использования и применения к "боевым" задачам.

Предыстория событий

Явился ко мне, значит, Боб и говорит, мол, чувствую я, что моя мне изменяет: романтика ушла, задерживаться после работы стала и т. д. Сказал, что недавно ездил в командировку и уверен, что, если его догадки коррелируют с истиной, то уж в эти дни точно должно было произойти что-то такое, что послужит прямым доказательством ее вины. На мой ответ, что я не сыскное агентство, он объяснил, почему обратился ко мне: расследование-то, оказалось компьютерным! "Эва как, брат...", – подумал я, и проследовал к ним на квартиру смотреть на злосчастный подругин лэптоп (ее, конечно, в тот момент дома не было).

Не являясь профессиональным форензиком (да и даже любителем, наверно), сначала не представлял, за что браться. Истории браузеров чистятся элементарно даже технически неподкованными людьми (и то необходимость появляется, только если пренебрегать использованием инкогнито-режимов), искать фотки, разную мультимедию тоже глупо, да и пока не понятно было, что вообще я искал (+ не факт, что кто-то посторонний взаимодействовал бы с ноутбуком в принципе).

В какой-то момент меня осенило: каждый раз, когда я бывал у этой пары, Алиса оставляла заряжать свой телефон от ноутбука. Не знаю, чем вызвано столь необычное увлечение (странно, но розеток в пределах досягаемости я у них тоже не видел, может поэтому), но случалось это регулярно. "Это может сыграть мне на руку", – подумал я, забрал с собой системные логи (с разрешения друга, естественно) и благополучно ушел для анализа дампов во-свояси.
(Отвечаю на немой вопрос, который, думаю, появился у большинства из вас: да, мне тоже непонятно, почему у Алисы, не связанной со сферой айти, стоит Убунту на домашнем ноутбуке. Приятеля я допытовать по этому поводу не стал, но предположу, что так было дешевле при покупке, а ставить привычные Окна – руки не дошли. Одна из версий.)

Дома

Итак, в моем распоряжении оказалось 8 syslog'ов (/var/log/syslog, /var/log/syslog.1, /var/log/syslog.2.gz, ..., /var/log/syslog.7.gz), в которых предположительно кроется убийца измена. Как будем искать? Писать собственный парсер ради такого случая было сильно лень, да и время не позволяло, а ручками grep'ать каждый лог – замучаешься, поэтому было принято волевое решение, спросить у Гугла. Гугл посоветовал утилиту, под названием usbrip, написанную на питоне третьей версии. "Почему нет", – решил я, да и репозиторий чувака выглядел K P A C N B O.

Далее об установке и использовании.

Использование

Юзать софтину будем из portable режима. Нам вполне хватит его функционала, хотя автор предлагает установщик, который автоматизирует процесс резолва нужных зависимостей для Пайтона и хардкодит прогу в систему (деинсталлятор также прилагается).

По умолчанию все команды будем выполнять из домашнего каталога. Для начала подготовим виртуальную среду и поставим нужные пакеты (работаю под Kali, так что промпт терминала в листингах тоже будет Kali'вский за исключением того, что # заменю на $, чтобы маркдаун не блочил хайлайт синтаксиса bash'а):
Bash:
# При необходимости установим менеджер виртуальных окружений
root@kali:~$ apt install python-virtualenv

# Создадим и активируем виртуальное окружение
root@kali:~$ virtualenv -p python3 usbrip-venv
root@kali:~$ . usbrip-venv/bin/activate

# Установим необходимые зависимости (2 пакета)
(usbrip-venv) root@kali:~$ pip install terminaltables termcolor

# Загрузим софтину и сменим директорию
(usbrip-venv) root@kali:~$ git clone https://github.com/snovvcrash/usbrip.git usbrip && cd usbrip

Для начала проверим работоспособность:
Bash:
(usbrip-venv) root@kali:~/usbrip$ python3 usbrip.py banner

Если в итоге получили симпатичный баннер тулзы, можно мучить дальше:

1.png


Мы будем пользоваться лишь одной функцией утилиты (к моему удивлению, этого оказалось достаточно), а именно – events history:

Bash:
root@kali:~/usbrip$ python3 usbrip.py events history -e -d "May 23" "May 24" "May 25" "May 26" "May 27" "May 28" "May 29" -f <СПИСОК_СИСЛОГОВ_ДЛЯ_АНАЛИЗА>

Этим действием я попросил все внешние USB-устройства, подключенные к данному лэптому в период за 23.05-29.05. Конечно, вид команды, приведшей к нужному результату (обличению злодея), был получен методом проб и ошибок, и вам я представляю только конечный вариант. Почему выбран именно такой временной отрезок, будет сказано ниже.

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

2.png


Пока не обращаем внимание на выделенную область. Проанализируем полученную таблицу, отражающую, какие внешние устройства подключались к ноутбуку Алисы за указанный промежуток времени (кстати, добрались до имени пользователя, и это забавно, потому что девушку на самом деле зовут Алиса :LOL:).

Очевидны следующие паттерны:
  1. Каждое утро (перед работой?) Алиса подключает к ноутбуку флешку Silicon Power 16 Gb, затем отключает примерно через 5 минут.
  2. В вечернее время (после работы?) Алиса подключает свой айфон на зарядку к ноутбуку примерно на 4 часа (но иногда забывает и оставляет до утра).
  3. В вечернее время (ближе ко сну?) Алиса подключает жесткий диск Seagate BUP Slim SL примерно на 2,5 часа (смотрит кино/сериал?).
  4. НЕОЖИДАННО 27-го мая к ноутбуку Алисы в 20:25:02 по МСК подключается Ведроид Сосунг SAMSUNG Android к шине 3-2 примерно на 7 часов (выделено страшным красным прямоугольником).
После собранной информации позвонил другу с рассказом, и после разговора картина прояснилась от начала до конца.

Реконструкция событий в период с 23.05 по 29.05

Алиса работает на пол ставки: 23-е, 24-е, 25-е мая 2018 года (среда, четверг и пятница соответственно) были ее рабочими днями. Каждое утро перед работой Алиса подключает свою компактную дамскую флешку Silicon Power, которую носит на брелоке на ключах, для формирования плейлиста на грядущий день. На это ей требуется около пяти минут. После этого она работает-на-работе, слушает музыку со своей флешки, приходит домой, загружает ноутбук и ставит свой айфон (с серийным номером USB-модуля 3a134be282ddc846b794fc83f2a53a6245620b06) на зарядку. Далее, по желанию, она действительно может посмотреть серию-другую-третью "13 причин почему" (хз, что это, говорят сериал такой...).

Теперь о том, что происходило в следующие дни: 25-го мая, как можно видеть из логов, ритуал завершился не полностью. Причиной тому стала внезапная пятница и поход отмечать грядущую командировку друга (уехал днем 26-го, приехал вечером 28-го) шумной компанией в бар после работы. Как следствие, 26-го мая пара вернулась домой только к часу ночи, в чем можно убедиться по логу загрузки флешки Jetflash Mass Storage Device, которую Алисе дала её подруга, чтобы та скинула себе фотки. После этого Алиса по традиции поставила айфон на зарядку, пара попыталась посмотреть фильм с винчестера Seagate BUP Slim SL, но, видимо, попытки не увенчались успехом, т. к. оба устройства были отключены от компьютера только утром в районе 11-ти часов.

Потом Боб во второй половине дня уехал в командировку, Алиса его благополучно проводила и... пропала до 20:16:13, когда вместе со своим айфоном на зарядку был поставлен SAMSUNG (отключенный впоследствии лишь поздно ночью). После "разговора на чистоту" Боба с Алисой было выяснено, что да, действительно после того, как Боб уехал в командировку, на квартиру пришел злостный обладатель самсунга (у-у-ух, никогда их не долюбливал), пробыл там всю ночь, и уехал только 28-го мая после обеда. Одновременно с Алисой, которая, в свою очередь, отправилась встречать благоверного в аэропорт. Боб с Алисой вернулись домой к полуночи (когда календарь уже перелистнул страничку на 29 мая), когда девушка вновь поставила свой айфон на зарядку.

Последующие дни шли согласно устоявшимся ритуалам Алисы: флешка – утром, айфон и жд – вечером. И все бы ничего, если бы идиллию не разрушил злостный Я. Хотя мне не стыдно.
(Конечно, все точечные детали, описанные выше, были получены после разговора с Бобом, угадывать события прошлого по syslog'ам прога не умеет).

Пара слов о программе

Интересное замечание: если бы Боб выполнил установку этой утилиты заранее на компьютер девушки, задал список доверенных USB-устройств и настроил запуск проги по crontab'у (что, кстати, подробно описано в репозитории), возможно, ему не потребовалось бы вмешивать в свой семейные распри посторонних (aka меня), ибо посмотреть "нарушителей" можно было бы спокойно самому. Такие дела.

Конечно, как мне видится, такой функционал в программе изначально закладывался для отслеживания выполнений корпоративных политик в офисах (работающих на Линуксах), но теперь автор может указать еще один способ применения блока violations у себя в README :ROFLMAO:

Итого

Пара рассталась, сердце Боба разбито, Алиса на самом деле оказалась злостной Евой, моя верная возлюбленная (теперь я, к слову, умею проверять на верность, так что аккуратней, дорогая) пожала плечами, а я добавил в коллекцию интересную форензик-тулзу.

Suum cuique

Благодарю за внимание.

Links
 
Последнее редактирование:

MLNK

Mod. Ethical Hacking
Red Team
23.01.2018
560
706
BIT
7
вообще чтоб вас не спаслили по логам --> shipcod3/TuxLogCleaner скрипт легко адоптируется под себя. после ещё рам почистить чемнибудь вроде пандоры и замусорить освободившееся место )))
 
  • Нравится
Реакции: Tihon49 и ghost

neonh4ze

Active member
07.06.2018
34
162
BIT
2
вообще чтоб вас не спаслили по логам --> shipcod3/TuxLogCleaner скрипт легко адоптируется под себя. после ещё рам почистить чемнибудь вроде пандоры и замусорить освободившееся место )))
Удобный скрипт (пути к логам вспоминать не надо), но по мне так, если уж чистить следы, то как-нибудь а-ля shred -zvu -n7 /var/log/syslog* ))
 
  • Нравится
Реакции: Tihon49

MLNK

Mod. Ethical Hacking
Red Team
23.01.2018
560
706
BIT
7
Удобный скрипт (пути к логам вспоминать не надо), но по мне так, если уж чистить следы, то как-нибудь а-ля shred -zvu -n7 /var/log/syslog* ))
тоже вариант просто в спешке можно чтото забыть ) а так автоматизировал всё и красотища )))
 

qwertyytrewq

New member
13.02.2018
4
0
BIT
0
Хорошая статья. Удобно юзать данную прогу для проверки логов.
Удобно смотреть кто запихнул и когда в ноут + портабильность это прям бомба. Однозначно в копилку форензики. Правда оставлять в скринах свои серийные номера не лучшая затея =D
Интересно эти сислоги можно как-то почистить не из под рута или сделать так, чтобы они не видели флешку?
 

neonh4ze

Active member
07.06.2018
34
162
BIT
2
Хорошая статья. Удобно юзать данную прогу для проверки логов.
Удобно смотреть кто запихнул и когда в ноут + портабильность это прям бомба. Однозначно в копилку форензики. Правда оставлять в скринах свои серийные номера не лучшая затея =D
Интересно эти сислоги можно как-то почистить не из под рута или сделать так, чтобы они не видели флешку?
Мало (читай "ничего"), что можно сделать плохого, обладая лишь серийниками устройств, и не зная ничего больше об этих устройствах. И, к тому же, кто сказал, что серийники остались оригинальными ;)?
Что касается рут-прав – да, они нужны при любом раскладе (и чтобы почистить логи, и чтобы скрыть правду от софтины).
 
  • Нравится
Реакции: qwertyytrewq

Remir

Grey Team
05.11.2017
283
355
BIT
378
Нисколько не оспариваю реальность событий, но смешно (извините) было читать после упоминаний о подключенном в 8 вечера "Самсунге". И об умопомрачительных умозаключениях по этому поводу :)
Аж сомнения в реальности возникают.

Бро, твой "Боб" должен тебе проставиться однозначно. Но не за то, что ты ему "рога" снял, а за то, что его несложившаяся (к счастью Боба) пассия оказалась ... м-м-м... , как бы это помягче выразиться... - с IQ на уровне первоклашки и такое вот сомнительное (IMHO) "счастье" ему не досталось на всю оставшуюся жизнь. "Обертка" у нее, может, и красивая, но вот "начинка" - оставляет желать лучшего. А жить ведь не с "оберткой" ... :)

Я просто фигею от связи "чужой смарт в ноуте"-"измена"! Никакой связи нет.
И куча вполне реальных сопоставлений этому "грандиозному" "залету", начиная от "...подруга забыла свой смарт со шнуром, а я принесла и включила подзарядить..." (...нашла смарт в пакете, включила и решила вернуть владельцу(-ице)... ) до "...к соседям пришли гости, смарт сел, а у них только USB-шнур с собой, у соседей компа нет..."
И если у нее не хватает ума скрыть свое непостоянство, то она и по жизни бы его не могла бы скрыть, т.е. об этом знали бы ВСЕ. И ходил бы твой "Боб", покачивая ветвистыми рогами и контролируя габариты по высоте и ширине...
 
Последнее редактирование:
  • Нравится
Реакции: Vertigo и Глюк

Tihon49

Green Team
06.01.2018
193
120
BIT
0
Так тот Боб и без форензики уже заподозрил не ладное. Значит было с чего. А уж поймав на лжи свою пассию сумел докрутить до чистосердечного признания. Вполне реальная ситуация.
P.s. Читал как детектив ))) даже забыл что статья про некую тулзу )))))) статья классная!!!!
 
  • Нравится
Реакции: user1661930181 и Глюк

neonh4ze

Active member
07.06.2018
34
162
BIT
2
Нисколько не оспариваю реальность событий, но смешно (извините) было читать после упоминаний о подключенном в 8 вечера "Самсунге". И об умопомрачительных умозаключениях по этому поводу :)
Аж сомнения в реальности возникают.

Бро, твой "Боб" должен тебе проставиться однозначно. Но не за то, что ты ему "рога" снял, а за то, что его несложившаяся (к счастью Боба) пассия оказалась ... м-м-м... , как бы это помягче выразиться... - с IQ на уровне первоклашки и такое вот сомнительное (IMHO) "счастье" ему не досталось на всю оставшуюся жизнь. "Обертка" у нее, может, и красивая, но вот "начинка" - оставляет желать лучшего. А жить ведь не с "оберткой" ... :)

Я просто фигею от связи "чужой смарт в ноуте"-"измена"! Никакой связи нет.
И куча вполне реальных сопоставлений этому "грандиозному" "залету", начиная от "...подруга забыла свой смарт со шнуром, а я принесла и включила подзарядить..." (...нашла смарт в пакете, включила и решила вернуть владельцу(-ице)... ) до "...к соседям пришли гости, смарт сел, а у них только USB-шнур с собой, у соседей компа нет..."
И если у нее не хватает ума скрыть свое непостоянство, то она и по жизни бы его не могла бы скрыть, т.е. об этом знали бы ВСЕ. И ходил бы твой "Боб", покачивая ветвистыми рогами и контролируя габариты по высоте и ширине...
Ты угадал, на стадии сбора информации я практически не придал значения появлению неопознанного телефона в логах (даже несмотря на то, что отключился он в 3 ночи). А вот Боб после того, как выслушал, придал ахаха. Без понятия, почему, мб уже были стычки с или подозрения на обладателя такого девайса. Мы не большие друзья, чтобы я у него детали выпытывал, да и не особо интересно уже было под конец, знаешь) Просто вдруг он стал настолько уверен, что эта мобила есть корень всех бед, что я немедленно в это поверил :p.
Что девушка так легко сдалась – наверно, на то тоже свои причины-тараканы. В глубинных смыслах чужих отношений копаться – упаси боже...
 
  • Нравится
Реакции: Vertigo

Tayrus

Red Team
13.04.2017
365
787
BIT
6
вообще чтоб вас не спаслили по логам --> shipcod3/TuxLogCleaner скрипт легко адоптируется под себя. после ещё рам почистить чемнибудь вроде пандоры и замусорить освободившееся место )))
Модифицировал скрипт:
Код:
#You need install shred!
import subprocess
logs =     ["/var/log/lastlog",
            "/var/log/messages",
            "/var/log/warn",
            "/var/log/wtmp",
            "/var/log/poplog",
            "/var/log/qmail",
            "/var/log/smtpd",
            "/var/log/telnetd",
            "/var/log/secure",
            "/var/log/auth",
            "/var/log/auth.log",
            "/var/log/cups/access_log",
            "/var/log/cups/error_log",
            "/var/log/thttpd_log",
            "/var/log/spooler",
            "/var/spool/tmp",
            "/var/spool/errors",
            "/var/spool/locks",
            "/var/log/nctfpd.errs",
            "/var/log/acct",
            "/var/apache/log",
            "/var/apache/logs",
            "/usr/local/apache/log",
            "/usr/local/apache/logs",
            "/usr/local/www/logs/thttpd_log",
            "/var/log/news",
            "/var/log/news/news",
            "/var/log/news.all",
            "/var/log/news/news.all",
            "/var/log/news/news.crit",
            "/var/log/news/news.err",
            "/var/log/news/news.notice",
            "/var/log/news/suck.err",
            "/var/log/news/suck.notice",
            "/var/log/xferlog",
            "/var/log/proftpd/xferlog.legacy",
            "/var/log/proftpd.xferlog",
            "/var/log/proftpd.access_log",
            "/var/log/httpd/error_log",
            "/var/log/httpsd/ssl_log",
            "/var/log/httpsd/ssl.access_log",
            "/var/adm",
            "/var/run/utmp",
            "/etc/wtmp",
            "/etc/utmp",
            "/etc/mail/access",
            "/var/log/mail/info.log",
            "/var/log/mail/errors.log",
            "/var/log/httpd/*_log",
            "/var/log/ncftpd/misclog.txt",
            "/var/account/pacct",
            "/var/log/snort",
            "/var/log/bandwidth",
            "/var/log/explanations",
            "/var/log/syslog",
            "/var/log/user.log",
            "/var/log/daemons/info.log",
            "/var/log/daemons/warnings.log",
            "/var/log/daemons/errors.log",
            "/etc/httpd/logs/error_log",
            "/etc/httpd/logs/*_log",
            "/var/log/mysqld/mysqld.log"
            "/root/.ksh_history",
            "/root/.bash_history",
            "/root/.sh_history",
            "/root/.history",
            "/root/*_history",
            "/root/.login",
            "/root/.logout",
            "/root/.bash_logut",
            "/root/.Xauthority"]
print 'Start...'
for log in logs:
    try:
        out = subprocess.check_output(['shred','-zvu','-n7',log])
        print out
    except:
        continue
print 'Done.'
 

MLNK

Mod. Ethical Hacking
Red Team
23.01.2018
560
706
BIT
7
Модифицировал скрипт:
Код:
#You need install shred!
import subprocess
logs =     ["/var/log/lastlog",
            "/var/log/messages",
            "/var/log/warn",
            "/var/log/wtmp",
            "/var/log/poplog",
            "/var/log/qmail",
            "/var/log/smtpd",
            "/var/log/telnetd",
            "/var/log/secure",
            "/var/log/auth",
            "/var/log/auth.log",
            "/var/log/cups/access_log",
            "/var/log/cups/error_log",
            "/var/log/thttpd_log",
            "/var/log/spooler",
            "/var/spool/tmp",
            "/var/spool/errors",
            "/var/spool/locks",
            "/var/log/nctfpd.errs",
            "/var/log/acct",
            "/var/apache/log",
            "/var/apache/logs",
            "/usr/local/apache/log",
            "/usr/local/apache/logs",
            "/usr/local/www/logs/thttpd_log",
            "/var/log/news",
            "/var/log/news/news",
            "/var/log/news.all",
            "/var/log/news/news.all",
            "/var/log/news/news.crit",
            "/var/log/news/news.err",
            "/var/log/news/news.notice",
            "/var/log/news/suck.err",
            "/var/log/news/suck.notice",
            "/var/log/xferlog",
            "/var/log/proftpd/xferlog.legacy",
            "/var/log/proftpd.xferlog",
            "/var/log/proftpd.access_log",
            "/var/log/httpd/error_log",
            "/var/log/httpsd/ssl_log",
            "/var/log/httpsd/ssl.access_log",
            "/var/adm",
            "/var/run/utmp",
            "/etc/wtmp",
            "/etc/utmp",
            "/etc/mail/access",
            "/var/log/mail/info.log",
            "/var/log/mail/errors.log",
            "/var/log/httpd/*_log",
            "/var/log/ncftpd/misclog.txt",
            "/var/account/pacct",
            "/var/log/snort",
            "/var/log/bandwidth",
            "/var/log/explanations",
            "/var/log/syslog",
            "/var/log/user.log",
            "/var/log/daemons/info.log",
            "/var/log/daemons/warnings.log",
            "/var/log/daemons/errors.log",
            "/etc/httpd/logs/error_log",
            "/etc/httpd/logs/*_log",
            "/var/log/mysqld/mysqld.log"
            "/root/.ksh_history",
            "/root/.bash_history",
            "/root/.sh_history",
            "/root/.history",
            "/root/*_history",
            "/root/.login",
            "/root/.logout",
            "/root/.bash_logut",
            "/root/.Xauthority"]
print 'Start...'
for log in logs:
    try:
        out = subprocess.check_output(['shred','-zvu','-n7',log])
        print out
    except:
        continue
print 'Done.'
ябы оставил всётаки проверку на запуск от рута.
Код:
if __name__ == "__main__":
    if not os.geteuid() == 0:
        sys.exit("Пссс, пацанчик, от рута меня запустил БИСТРО!")

    else:
        tux()
 
  • Нравится
Реакции: IioS, Vertigo и ghost

ghost

Well-known member
12.05.2016
1 636
3 289
BIT
0
Модифицировал скрипт:
Код:
#You need install shred!
import subprocess
logs =     ["/var/log/lastlog",
            "/var/log/messages",
            "/var/log/warn",
            "/var/log/wtmp",
            "/var/log/poplog",
            "/var/log/qmail",
            "/var/log/smtpd",
            "/var/log/telnetd",
            "/var/log/secure",
            "/var/log/auth",
            "/var/log/auth.log",
            "/var/log/cups/access_log",
            "/var/log/cups/error_log",
            "/var/log/thttpd_log",
            "/var/log/spooler",
            "/var/spool/tmp",
            "/var/spool/errors",
            "/var/spool/locks",
            "/var/log/nctfpd.errs",
            "/var/log/acct",
            "/var/apache/log",
            "/var/apache/logs",
            "/usr/local/apache/log",
            "/usr/local/apache/logs",
            "/usr/local/www/logs/thttpd_log",
            "/var/log/news",
            "/var/log/news/news",
            "/var/log/news.all",
            "/var/log/news/news.all",
            "/var/log/news/news.crit",
            "/var/log/news/news.err",
            "/var/log/news/news.notice",
            "/var/log/news/suck.err",
            "/var/log/news/suck.notice",
            "/var/log/xferlog",
            "/var/log/proftpd/xferlog.legacy",
            "/var/log/proftpd.xferlog",
            "/var/log/proftpd.access_log",
            "/var/log/httpd/error_log",
            "/var/log/httpsd/ssl_log",
            "/var/log/httpsd/ssl.access_log",
            "/var/adm",
            "/var/run/utmp",
            "/etc/wtmp",
            "/etc/utmp",
            "/etc/mail/access",
            "/var/log/mail/info.log",
            "/var/log/mail/errors.log",
            "/var/log/httpd/*_log",
            "/var/log/ncftpd/misclog.txt",
            "/var/account/pacct",
            "/var/log/snort",
            "/var/log/bandwidth",
            "/var/log/explanations",
            "/var/log/syslog",
            "/var/log/user.log",
            "/var/log/daemons/info.log",
            "/var/log/daemons/warnings.log",
            "/var/log/daemons/errors.log",
            "/etc/httpd/logs/error_log",
            "/etc/httpd/logs/*_log",
            "/var/log/mysqld/mysqld.log"
            "/root/.ksh_history",
            "/root/.bash_history",
            "/root/.sh_history",
            "/root/.history",
            "/root/*_history",
            "/root/.login",
            "/root/.logout",
            "/root/.bash_logut",
            "/root/.Xauthority"]
print 'Start...'
for log in logs:
    try:
        out = subprocess.check_output(['shred','-zvu','-n7',log])
        print out
    except:
        continue
print 'Done.'
Спасибо за скрипт. А ТС за интересную статью.
Я бы, например, в скрипте shred заменил на srm из пакета secure-delete.
И затирал логи Гутманом в 35 проходов. Но это если никуда не торопишься...
 

MLNK

Mod. Ethical Hacking
Red Team
23.01.2018
560
706
BIT
7
Спасибо за скрипт. А ТС за интересную статью.
Я бы, например, в скрипте shred заменил на srm из пакета secure-delete.
И затирал логи Гутманом в 35 проходов. Но это если никуда не торопишься...
это если совсем никуда не торопиться ))))
 
  • Нравится
Реакции: ghost

Sunnych

Mod. Forensics
Gold Team
01.06.2018
277
1 454
BIT
41
Модифицировал скрипт:
Код:
#You need install shred!
print 'Done.'
Tayrus
Это классно что такие вещи Вы создаете, но есть программные продукты и комплексы которые поднимают информацию, а вот если скрипт все эти файлы будет внутри очищать и туда записывать случайное количество строк с "неразрывный пробел" (что бы произошло изменение файла) и ещё устроить смену атрибутов создания и изменение файлов, то восстановить уже будет не возможно, а некоторые комплексы из за смены атрибутов вообще станут бесполезны в применении и не смогут даже при наличии кусочка считаться уликой (проверенно), а потом этот же скрипт просто удалит эти файлы ;-)
Или по надобности добавить в свою систему нужный из этого софт
 
Последнее редактирование:

Tayrus

Red Team
13.04.2017
365
787
BIT
6
Tayrus
Это классно что такие вещи Вы создаете, но есть программные продукты и комплексы которые поднимают информацию, а вот если скрипт все эти файлы будет внутри очищать и туда записывать случайное количество строк с "неразрывный пробел" (что бы произошло изменение файла) и ещё устроить смену атрибутов создания и изменение файлов, то восстановить уже будет не возможно, а некоторые комплексы из за смены атрибутов вообще станут бесполезны в применении и не смогут даже при наличии кусочка считаться уликой (проверенно), а потом этот же скрипт просто удалит эти файлы ;-)
Или по надобности добавить в свою систему нужный из этого софт
Конечно, если просто удалить файл он еще будет на HDD, но мой скрипт автоматизирует работу с shred(утилита для безвозвратного удаления файлов ), смотрите какие параметры стоят и что они означают:
z - в конце перезаписать нулями, чтобы скрыть измельчение .
u - обрезать и удалить файл после перезаписи .
n7 - переписать 7 раз.
Тем самым файлы восстановить уже не удастся.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!