вторник, 25 декабря 2018 г.


UNHIDE. ПОИСК СКРЫТЫХ ПРОЦЕССОВ В СИСТЕМЕ.


Unhide — утилита для обнаружения скрытых процессов и портов в системе. Отличный инструмент, который стоит использовать в ходе осмотра сервера после взлома. Unhide работает с данными, которые получает из /proc, /bin/ps и из системных вызовов. Список всех тестов можно получить просто выполнив команду:
# unhide
В рамках большинства тестов происходит сравнение данных из разных источников в системе. Например, сравнивается вывод /bin/ps с информацией, собранной с помощью chdir() в procfs. Или же информация из /bin/ps с данными собранными из sysinfo(). На основе результатов сравнения делается вывод — имеется ли в системе что-то скрытое или нет. Для проведения доступно 6 стандартных тестов и 19 базовых (Elementary tests).
  • Проверка всех процессов методом перебора:
# unhide brute
  • Сравнение данных из /proc и от /bin/ps:
# unhide proc
  • Соотношение данных полученных от /bin/ps с procfs:
# unhide procfs
  • Совмещает в себе proc и procfs тесты:
# unhide procall
  • Сравнение информации полученной из системных вызовов и /bin/ps:
# unhide sys
  • Проверяет что бы информация обо всём что определяется ps была так же и в procfs, и в системных вызовах:
# unhide reverse
  • Совмещает в себе proc, procfs и sys. Работает быстрее, но при этом вероятность ложных срабатываний увеличивается:
# unhide quick
Помимо общих, администратор имеет возможность запустить один из 19 базовых тестов. Это удобно, например, при использовании unhide в скриптах для выполнения конкретных проверок.
Вместе с unhide в систему устанавливается утилита unhide-tcp, которая определяет наличие скрытых активных портов в системе. Unhide-tcp сканирует все порты, и определяет есть ли среди них такие, которые ожидают соединение, но при этом не отображаются в netstat.
# unhide-tcp
 Unhide-tcp 20130526
 Copyright © 2013 Yago Jesus & Patrick Gouin
 License GPLv3+ : GNU GPL version 3 or later
 http://www.unhide-forensics.info
 Used options:
 [*]Starting TCP checking
 [*]Starting UDP checking

среда, 19 декабря 2018 г.

Тут во как раз к слову реплика (моя) :  В своем стремлении "Служить Родине", вовсе не следует уподобаться  той лошади, на которой всегда можно ездить и ВСЕГДА трезво относиться к задачам вам ей предъявляемым,  поскольку иногда "родина" , в лице конкретных, вовсе не уполномоченных "ей" лиц,  поправ все нормы приличия и совсем  потеряв берега,  может откровенно начать на вас ЕЗДИТЬ!   (классик марксизма).

суббота, 15 декабря 2018 г.

Chkrootkit - нейтрализация внутреннего врага


Оригинал: Chkrootkit - Eliminate the Enemy Within 
Автор: Prashant Phatak 
Дата публикации: 1 Октября 2011 г. 
Перевод: А.Панин 
Дата перевода: 25 Декабря 2012 г.
В прошлой статье мы обсудили технические особенности руткитов. Мы также рассмотрели вопросы о том, почему руткиты опасны, какой ущерб они могут принести и кратко осветили вопрос о некоторых путях их обнаружения. В этой статье продолжается рассмотрение затронутой темы в плоскости проверенных методов для обнаружения руткитов на серверах - для этой цели предназначается мощная свободная утилита под названием "chkrootkit". Мы рассмотрим процесс ее установки и использования, а также пути ее интеграции в повседневные процессы по администрированию, проводимые для повышения безопасности функционирования серверов в датацентрах.
В течение нескольких лет дистрибутивы Linux приобрели статус стабильнейших платформ для осуществления обработки данных в составе IT-инфраструктуры для особо важных операций. Этот рост популярности привлек внимание взломщиков к поиску возможностей эксплуатации уязвимостей систем Linux; наиболее опасными являются руткиты, менее опасными - вирусы и трояны. Мы обсудили основы функционирования руткитов в предыдущей статье - обратитесь к ней для лучшего понимания.

О chkrootkit

По своей сути chkrootkit является набором инструментов для обнаружения присутствия руткитов в системе, а также большим подарком для администраторов систем Linux по двум следующим причинам:
  1. Это свободная утилита с открытым исходным кодом, доступная во множестве дистрибутивов.
  2. Она способна обнаруживать практически все существующие современные руткиты, а так как ее исходный код открыт, сообщество разработчиков поддерживает ее в актуальном состоянии.
Со временем система сканирования Chkrotkit усовершенствовалась, в результате чего повышалась скорость ее работы, что особенно полезно при осуществлении тщательных проверок ядра на наличие известных руткитов.
При разговоре об особо полезных возможностях утилиты следует упомянуть о том, что она способна обнаруживать более 60 устаревших и современных руткитов, может определять сетевые интерфейсы в promiscous-режиме, способна эффективно обнаруживать измененные файлы lastlog и wtmp (которые в свою очередь сообщают администраторам о вторжениях в систему), имеет интерфейс командной строки с простым синтаксисом и понятными параметрами и выводит подробные результаты сканирования системы, что позволяет администраторам автоматизировать процесс.
Chkrootkit использует язык C и сценарии командной оболочки для выполнения тщательных проверок процессов и исследования системных бинарных файлов с целью определения сигнатур руткитов. Во время сканирования в большинстве случаев также возможно удаление обнаруженных руткитов. Утилита также содержит ряд встроенных алгоритмов для определения вероятного наличия руткитов, даже в том случае, если они официально не поддерживаются. В таблице ниже приводится список внутренних программ chkrootkit и назначение каждой из них.
ПрограммаНазначение
chkrootkitГлавный сценарий для поиска измененных системных файлов
strings.cОбнаруживает и производит замены строк
ifpromisc.cПроизводит проверку интерфейсов на работу в promiscous-режиме
chklastlog.c, chkwtmp.cПроверяет, не удалены ли данные из файлов lastlog и wtmp
chkproc.c, chkdirs.cПроизводит поиск троянов в форме модулей ядра Linux

Установка

Установка утилиты в большинстве дистрибутивов представляет простой и понятный процесс. Вы можете скачать самую новую версию архива с исходными кодами и распаковать во временную директорию. Рекомендуется провести проверку хэша MD5 скачанного архива, после чего распаковать его с использованием следующей команды: tar -xfvz chkrotkit.tar.gz. Перейдите в директорию с распакованными исходными кодами и начните компиляцию при помощи команды make sense.
На самом деле, установка в дистрибутивах Debian/Ubuntu намного проще описанной выше, достаточно просто выполнить команду sudo apt-get install chkrootkit.

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

Сразу после установки утилиты chkrootkit в качестве первого шага рекомендуется запустить программу ifpromisc. Она проверит, не работают ли сетевые интерфейсы в promiscous-режиме, чего не должно быть в любом случае за исключением того, когда система была инфицирована руткитом до установки chkrootkit.
Как только эта проверка будет завершена, в качестве следующего шага производится запуск утилиты chkrootkit без параметров командной строки. На Рисунке 1 показан типичный вывод при сканировании операционной системы Ubuntu в поисках аномалий и руткитов.
Сканирование в поисках руткитов
Рисунок 1. Сканирование в поисках руткитов
На Рисунке 2 показан ход проверки всех процессов ядра и системных файлов при помощи chkrootkit на основе внутреннего списка проверок.
Проверка всех процессов ядра и системных файлов
Рисунок 2. Проверка всех процессов ядра и системных файлов
Если любая из стандартных утилит операционной системы (такая, как fingerd на Рисунке 2) не найдена, выводится соответствующая информация для того, чтобы сценарии для администрирования имели возможность провести проверку того, какие из системных файлов были удалены.
Хотя использование chkrootkit без параметров командной строки обычно достаточно эффективно, администраторам может быть необходима большая гибкость для использования утилиты в сценариях оболочки. Следующая таблица описывает некоторые параметры командной строки с примерами их использования.
ПараметрОписаниеПример
-lВывод всех поддерживаемых типов проверок>chkrootkit -l
[тип проверки]Выполнение заданного типа проверкиПроверка наличия в системе интерфейсов в promiscous-режиме и трояна "ps":
>chkrootkit ps sniffer
-xРежим эксперта (вывод каждого действия, проводимого в отношении каждого исследуемого файла)> chkrotkit -x | more
-qРежим минимального вывода. Выводятся только сообщения о найденных инфицированных файлах> chkrotkit -q
-rИспользование заданной директории в качестве корневой. Полезно в случае проверки подозрительной системы со стороны системы без руткитов. Также полезно при проверке смонтированных томов.Проверить том, смонтированный, например, в точку "/mnt1":
> chkrootkit -r /mnt
Также важно понимать то, каким образом chkrootkit осуществляет вывод информации. Обычно выводятся такие фразы, как "Not found" ("Не найдено") и "Not infected" ("Не инфицировано"). Когда обнаружен руткит или есть подозрения о его наличии, выводятся предупредительные сообщения "INFECTED" ("ИНФИЦИРОВАНО") или "The following suspicious files or directories have been found." ("Найдены следующие подозрительные файлы или директории."). Рассмотрите Рисунок 3, на котором показано сообщение о подозрительном сценарии на языке Python.
Сообщение об инфицированном файле
Рисунок 3. Сообщение об инфицированном файле
Этот вывод может быть сохранен в текстовый файл или обработан утилитой grep для удаления незначительной информации и вывода только важных сообщений. Использование параметра командной строки -q также возможно, но в этом случае могут быть отброшены сообщения о подозрительных объектах, что является не самой лучшей идеей.

Что делать если руткит обнаружен?

Chkrootkit может обнаруживать руткиты, но не может удалять многие из них. После обнаружения руткита в системе в первую очередь следует разорвать сетевое соединение для того, чтобы не позволить ему распространиться по сети. Для полного удаления руткита следует сделать резервную копию важных данных и переустановить систему - это, однако, не всегда представляется возможным. Другим вариантом является тщательное изучение обнаруженного руткита и проведение действий по его полному удалению из системы на основе данных о пути его проникновения в систему и функционирования.
Многие руткиты могут быть удалены вручную; тем не менее, существует несколько руткитов, которые могут быть удалены только в ходе полной переустановки системы. Для повышения точности обнаружения рекомендуется использовать chkrootkit только на заведомо неинфицирванных системах для исследования всех остальных серверов фермы.

Интеграция утилиты chkrootkit в комплекс административных задач

Системным администраторам настоятельно рекомендуется использовать chkrootkit в рамках их повседневных административных задач. При помощи соответствующих параметров командной строки становится возможным использование утилиты в сценарии оболочки с выводом в файл для последующего поиска аномалий.
Этот сценарий может быть запланирован (при помощи задачи cron) для ежедневного выполнения. Со временем этот сценарий может быть усовершенствован для удаления ошибочных предупреждений о подозрительных файлах и вывода только сообщений о найденных руткитах. Другая задача cron может выполняться чаще и проводить поиск сетевых интерфейсов, работающих в promiscous-режиме. Это необходимо, так как обычно атака с применением руткитов начинается с вмешательства в настройки сети.
После этого в сценарий могут быть добавлены функции для составления списка серверов в составе фермы требующих проверки, обработки вывода в процессе их проверки и уведомления администратора о результате.

Заключение

Руткиты являются серьезной угрозой современным датацентрам. IT-менеджменту необходимо знать о методах их обнаружения и применять эти методы на практике. chkrootkit является быстрым и эффективным инструментом как раз для этой цели. Параметры командной строки этой утилиты помогают автоматизировать ее запуски на постоянной основе, что может быть крайне полезно для администраторов.

понедельник, 10 декабря 2018 г.

Cамба сервер 
отсюда
Если Вам в "наследство" или каким то другим способом достался контроллер домена на Samba в роли PDC, то Вы рано или поздно столкнетесь с ситуацией, когда нужно будет узнать какой пользователь домена открыл тот или иной файл, так как для всех остальных кто имеет к нему доступ, он становится только для чтения. Происходит это по вполне понятным причинам, но расчудесный офисный пакет от MS который иногда работает только по одному ему известным алгоритмам, не показывает у кого именно открыт целевой файл, даже если в настройках прописано имя пользователя. Бухгалтера и прочие экономисты и слышать не хотят про какие то там "невозможно", "файл открыт другим пользователям", им подавай здесь и сейчас -- Работа стоит!
Чтобы работа не стояла и настроение ни у кого не портилось, открываем терминал с правами суперпользователя root и выведем список файлов которые на данный момент заблокированы от изменений.
smbstatus -L
В выхлопе может быть много всякого ненужного мусора, но мы зная имя целевого файла с помощью grep элегантно уберем все лишнее.
smbstatus -L | grep file_name
В выводе будет содержаться pid процесса которым сейчас используется этот файл и собственно путь до него. Далее нам нужно сопоставить pid процесса и имя пользователя.
Например pid процесса открывшего файл - 10023
smbstatus -u | grep 10023
Теперь Samba выведет нам логин пользователя открывшего файл.
//Как показывает практика, чаще всего можно начинать со второго этапа, опустив выполнение
smbstatus -L