Легко ли взломать линукс

Линукс — история одного взлома

Предыстория

Рабочий день проходил так, как обычно он проходит у любого среднестатистического разработчика: монитор, клавиатура, чай, печеньки… В общем, ничего выдающегося, как всегда, не предвиделось. Утомившись от продолжительной отладки приложения в Xdebug, я решил выйти из офиса и немного подышать свежим воздухом, чтобы хоть чуть-чуть привести голову (к тому времени уже «чугунную») в порядок.

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

— Слушай, похоже что у тебя идентификатор процесса браузера это XXXX, да?

Выполнив команду ps -A | grep opera, я увидел что pid действительно именно тот, о котором говорил коллега.

— Да, и что? — невозмутимым голосом ответил я.
— Ничего — сказал коллега и нажал «Enter» на клавиатуре своего компьютера. Окно моего браузера закрылось у меня на глазах.

Я тут же принялся искать процессы в системе, которые могли дать удаленный шелл. Это был не SSH.
Коллега намекнул что это nc (netcat), процесс которого, конечно же, незамедлительно был убит.
Мы оба посмеялись, обсудили этот забавный случай, выяснилось, что на самом деле взлома никакого и не было и что «nc» был запущен из-под моего пользователя в тот момент, пока меня не было на рабочем месте. Just for lulz.
Шутка в общем-то удалась, но подсознательно я решил, что так просто оставлять это дело нельзя, это был вызов!

Мякотка

Однажды в студеную зимнюю пору, аккурат перед самым Новым Годом, я решил что пришла пора взять реванш. Но на этот раз я хотел полностью захватить доступ к компьютеру — получить root.

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

Воспользовавшись небольшим «окном» в своем рабочем времени, я начал продумывать план действий по взлому. Основная проблема, которую надо было как-то решить это конечно же непосредственно получение учетной записи root, поскольку всё остальное всего лишь дело техники. Начался активный перебор идей о том, как вообще это можно сделать.

У коллеги стоял Linux Mint 14 «Nadia». Версия ядра — 3.5. Хоть ядро и не такое старое, вероятность быстро найти в свободном доступе работающий локальный эксплойт близка к нулю. Из служб у него кроме Apache толком ничего не стояло, да и Apache он закрыл для наружного доступа.

Читайте также:  Windows tablet edition rus

Откидывая идею за идеей, в итоге меня осенило! А что если попробовать самый простой и самый банальный bash alias?
Решив проверить свое предположение, запускаю у себя терминал (Debian Squeeze), создаю файл test.py с банальным print «Hello, world!», сохраняю в домашнем каталоге, выполняю команду:

после этого набираю:

Вот оно! Совершенно легальная «дыра» в безопасности. Банально, но эффективно.

А теперь скрипт!

Вкратце: скрипт имитирует запрос пароля sudo, перехватывает пароль и отсылает его на указанный сервер, где информация просто записывается в файл.

Воспользовавшись временным отсутствием коллеги на рабочем месте, я пересел за его компьютер и начал свою «спецоперацию»:

1. Создаем постоянный алиас в bashrc:

2. Создаем файл с хитрым именем .xsession-lock, чтобы не бросалось в глаза при листинге /home/user, и сохраняем в него наш Python-скрипт.
3. Устанавливаем права на выполнение .xsession-lock — chmod +x
4. Чистим bash_history!

Первым делом после своего возвращения, коллега, ожидая подвоха, внимательно осмотрел bash_history, и ничего не заметив, начал работать.
Спустя какое-то время, я решил проверить лог-файл на удаленном сервере, который сохранял пароли, и вот она, рыба учетная запись моей мечты — root!
Конечно если быть точным, то на самом деле это пароль от рабочего пользователя коллеги, который давал мне возможность получить root и закрепиться в системе.

Позже я снова дождался когда коллега выйдет из офиса и «поколдовал» над его компьютером уже от имени root, но, к сожалению, неправильно рассчитал время и прокололся! Увы, попался с поличным прямо на месте «преступления».

Мы снова посмеялись, обсудили детали «взлома», а потом дружно и весело всем офисом отметили Новый Год.
Вот такая вот предновогодняя история.

Заключение

В свете того, что Valve выпустила steam под linux, появилась вероятность оттока «хомячков» в сторону Linux-систем и, вместе с тем, вероятность того, что господа из «black hat» нацелят свои взоры на Linux.

Поэтому хотелось бы, чтобы эта статья стала очередным напоминанием о том, что «спасение утопающих — дело рук самих утопающих».
Устанавливая Linux, не думайте о том, что Вы надели «памперс». Ответственность за безопасность Вашей информации всё еще лежит на Вас!

Источник

Упражнения по взлому Linux-систем

Для тех, кто интересуется вопросами безопасности и уязвимостями Linux, создан обучающий проект exploit-exercises.com с подборкой виртуальных Linux-машин, описаниями уязвимостей, документацией и практическими заданиями.

Самые общие уязвимости, связанные с эскалацией привилегий в Linux: это SUID-файлы, разрешения, состояние гонки (race conditions), метапеременные оболочки, уязвимости $PATH, уязвимости скриптовых языков, ошибки компиляции бинарных файлов.

Nebula включает в себя 19 уровней, для загрузки уровня следует залогиниться под именем levelXX, где XX — номер уровня от 00 до 19. Некоторые уровни можно пройти только в удалённом режиме. В случае необходимости рутового доступа для изменения каких-то настроек, можно залогиниться с именем nebula, пароль nebula, после чего выполнить команду sudo -s с паролем nebula.

Введение в ошибки памяти Linux/x86: переполнение стека (8 упражнений), сетевое программирование: работа с сокетами и порядок байтов (4 упражнения), форматный вывод (5 упражнений), переполнение кучи (4 упражнения), итоговые упражнения (3).

Читайте также:  Учебники по kali linux

Войти в систему можно под логином user, с паролем user. Описание уровней находится в директории /opt/protostar/bin.

3. Виртуальная машина Fusion (на базе Protostar)
торрент-файл

Продвинутые эксплойты, криптографические задачи, атака по времени, различные сетевые протоколы (Protocol Buffers, Sun RPC и другие), а также демонстрация некоторых механизмов защиты, таких как рандомизация адресного пространства, исполнение кода в зависимости от позиции (Position Independent Executables), неисполняемая память, фортификация исходного кода (_DFORTIFY_SOURCE=), защита от переполнения буфера (ProPolice / SSP), всего 28 упражнений.

Виртуальные машины идут в архивах ova: краткая справка по Open Virtualization Format. Архив вмещает саму виртуальную машину и файл с настройками. В программе VMware Workstation файл импортируется командой FileOpen, а в VirtualBox — командой FileImport Appliance. Как вариант, для VirtualBox можно предварительно переконвертировать файл в формат vmx с помощью утилиты ovftool. А для программ линейки VMware ESIx может понадобится конвертация в vmx с помощью программы VMware vCenter Converter Standalone.

Источник

4 лучших инструмента для взлома Linux.

Друзья, сегодня минимум слов, максимум дела! В материале ниже будем смотреть инструменты пост-эксплуатации для систем Linux! Что можно сделать после того как ты уже прорвался во внутренний периметр сети, или, как на CTF-соревнованиях, когда ты получил доступ к уязвимой тачке и готов броситься в бой дальше!

Пост-эксплуатация в практике пен-теста

Пост-эксплуатация (англ. post-explotation) — это то, что можно сделать с целевой системой после того, как удалось найти уязвимость и выполнить какой-то участок кода на целевой системе. Так же под этим термином понимается один из этапов взлома компьютерных систем (фаза) позволяющая собирать дальнейшую информацию о целевой системе, получить дальнейший доступ к сети и хранящимся данным. Фаза пост-эксплуатации позволяет идентифицировать такие вещи, как дополнительные подсети, маршрутизаторы, названия серверов, сетевых служб и установленных приложений.

Основные паттерны, по которым работают злоумышленники на этапе пост-эксплуатации:

получить доступ на выполнение произвольного кода\команд

изучение данных, хранящихся на сервере

перехват данных, которых нет на системе сейчас, но они могут появиться в будущем

организация перманентного доступа к целевой системе

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

Дополнительно, хакер может получать информацию о скомпрометированной системе, анализируя следующие параметры:

конфигурацию системы (логин и пароль к БД в исходных кодах)

конфигурацию веб-сервера (например, httpd.conf, .htaccess)

исходные коды приложения (поиск уязвимостей, анализируя логику приложения)

доступы к окружению (находясь внутри сети может быть проще попасть на соседние сервера и изолированные сегменты подсети)

базы данных (аутентификационная информация к другим системам, хранящаяся в них)

Обзор инструментов пост-эксплуатации

Мы же в материале сделаем акцент на рассмотрение инструментов пост-эксплуатации исключительно под Linux-системы.

1. PXEenum — полное перечисление всего что есть в системе

Основной задачей данного скрипта является функция перечисления (англ. Enumeration). Он вытаскивает всю доступную информацию о системе. Данный скрипт создан, если не сказать, что создан для лентяев то для тех, кто ценит свое время.

Читайте также:  Sql server login failed with windows authentication

Для запуска он не требует прав root’а, работает в стандартном терминале.

# git clone https://github.com/shawnduong/PXEnum.git

2. MIDA Multitool — палим систему по взрослому

Другой интересный инструмент MIDA Multitool созданный на базе менее именитых собратьев SysEnum и RootHelper, но включающий в себя гораздо больший функционал. По воле разработчика функционал MIDA Multitool включает в себя отдельные функции своих предшественников под одним капотом, а именно:

SysEnum — Bash скрипт, предназначенный для получения основной информацию о системе, включая, но не ограничиваясь следующими данными — текущий пользователь, IP-конфигурация, таблицы ARP, запущенные процессы и т.д.

Roothelper — призван помочь в процессе эскалации привилегий в системе, которая была скомпрометирована, путем выполнения ряда перечислений и использования доверительных сценариев.

Устанавливаем скрипт в систему с github:

# git clone https://github.com/NullArray/Bash-Kit-Multitool

# chmod +x bashkit.sh

Дело сделано! Можно запускать в системе!

3. MimiPenguin — пиздим пароли без зазрения совести

Очень хорошо известный скрипт в узких кругах пен-тестеров под названием MimiPenguin. основной задачей утилиты служит сброса пароля на вход в систему от текущего пользователя Linux. Если такое сравнение возможно то это аналог утилиты mimikatz для дампа пароля в Windows системах (о ней мы уже рассказывали в одной из наших прошлых статей)

Кроме того, MimiPenguin поддерживает такие приложения, как VSFTPd (активные подключения клиента FTP), популярнейший web-сервер Apache2 (активные/старые сеансы HTTP BASIC AUTH, но для этого требуется Gcore) и openssh-сервер (активные подключения SSH с использованием команды sudo). И вообще необходимо сказать, что MimiPenguin часто становится частью эксплойтов под Linux.

Устанавливаем MimiPenguin забирая его с репозитория GitHub:

# git clone https://github.com/huntergregal/mimipenguin

# chmod +x mimipenguin.sh

4. LARE — ломимся под рута используя баги ядра

И напоследок еще один довольно простой скрипт, который помогает с помощью использования известных уязвимостей в ядре ОС получать привилегии root удаленно с атакующей машины. Скрипт использует локальные эксплойты для получения root прав для версий ядра Linux Kernel v2.6-v4.8.

Кстати, эта тулза очень часто находит свое применение на пиздатом сертификационном экзамене OSCP.

Устанавливаем скрипт в систему:

# git clone https://github.com/EnigmaDimitri/LARE && cd LARE

Запуск скрипта на целевой машине в сети

# LARE.sh -l [Attackers-IP]

Запуск на машине с подключением к базе данных эксплойтов на GitHub

# LARE.sh -l or ./LARE.sh -l

Проверка и защита системы от техник пост-эксплуатации

Для обеспечения безопасности системы на предмет пост-эксплуатации, по мимо традиционных вариантов защиты как то установка патчей (security patch) и минимизация привилегий, дополнительно существуют специальные тулзы для проверки системы. Ведь в противовес неправильно сложившегося мнения, к пост-эксплуатации не обязательно ведут только 0-day или устаревший софт,

А вот их обзор читай в материале на страницах журнала ][акер!

Заключение

Сегодня мы кратко рассмотрели самые популярные и проверенные в практике пен-теста рабочие инструменты, используемые на фазе пост-эксплуатации для серверов под управлением Linux! Как видишь, нет ничего абсолютно защищенного. Эти знания, я надеюсь, пригодится тебе и на CTF и для пен-теста свойственной корпоративной сети и развития общего понимания практики обеспечения раальной ИБ.

Источник

Оцените статью