Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Старый 01.08.2010, 08:16   #1
 Сержант
Аватар для -SHiSH-
 
-SHiSH- никому не известный тип
Регистрация: 26.04.2010
Сообщений: 103
Популярность: 9
Сказал(а) спасибо: 6
Поблагодарили 48 раз(а) в 29 сообщениях
Отправить сообщение для -SHiSH- с помощью Skype™
 
По умолчанию Основы хакерства. Урок 5

Вступление.
Привет. Вот и пришло время 5 урока «Основ хакерства».
В этой части я хотел бы уделить внимание нашей безопасности.
Наверное это нужно было разобрать немного раньше. Ведь данный аспект является очень важным.
Так же в этом уроке я начну повествовать об анализе php движков.
Еще мы разберем такую тему, как DoS/DDoS. Напоследок дебютирует новый топик «Прогулка по багтракам»

Cоntent:

# Безопасность при взломе.

# Установка движка и азы анализа

# DoS и DDOS общие принципы.

# Sql injection
#

# Прогулка по багтракам.



Безопасность при взломе.
Это действительно важно.
Если администратор сайта обнаружит твой реальный ip адрес,
он без проблем сможет сообщить о проникновении твоему провайдеру.
А дальше как повезет.
Итак, сначала стоит разобрать, как сохраняются твои данные.
Логи ведет веб сервер. Он записывает фактически все телодвижение пользователей.
Вот например если в логах будет замечена такая строка:


65.234.112.11- - [13/Jan/2019:14:23:57 +0300] "GET /scripts/photo?id=1’ " 404 - "-" "-"


Сразу станет ясно что пользователь с адресом 65.234.112.11 пытался проверить параметр id на инъекцию.
Вообще нам важны логи ошибок (ErrorLog) и основные логи.
В ErrorLog хранятся данные ошибочных запросов. В httpd.conf(файл конфигурации веб сервера)
путь к ним можно найти по директиве ErrorLog.
В основном логе находятся все запросы к серверу. Его можно найти по директиве CustomLog.
Ну что ж более или менее понятно.
По сути наша задача это подменить айпи адрес. Ведь именно он нас палит.
Как факт изменить свой ip нельзя. Но! Его можно скрыть или ПОДменить.
Каким образом? С помощью прокси серверa.

Прокси-сервер (от англ. proxy — «представитель, уполномоченный») — служба в компьютерных сетях,
позволяющая клиентам выполнять косвенные запросы к другим сетевым службам

Проще говоря, мы сначала будем подключаться к прокси серверу и уже от туда делать запросы к жертве.
Естественно в логах целевого сайта будет светится айпи прокси сервера. Так то. Теперь по порядку:
Бывают паблик (публичные) прокси.
Бывают приватные прокси (только для избранных).
Как думаю ясно первые можно легко найти в сети. Со вторыми сложнее. Если хочешь приобрести такие нужно платить.
Собственно в чем разница то? Паблик прокси медленные, т.к. их юзает куча народу.
Приватные более быстрые. Вот собственно и все.
Вот несколько источников бесплатных прокси северов:

[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]

Ах да… забыли о главном – как же их использовать?
Натягивать их нужно на свой браузер. Разберем на примере троих:


* InternetExplorer

* Opera

* FireFox



* InernetExplorer:
Нажмите кнопку Сервис и выберите пункт Свойства обозревателя.
На вкладке Подключения щелкните Настройка LAN.
Установите флажок Использовать прокси-сервер для локальной сети.
В поле Адрес введите адрес прокси-сервера.
В поле Порт введите номер порта.


* Opera:
Выбираем: инструменты настройки
Вкладка дополнительно
Пункт сеть
Кнопка прокси серверы
Указываем на галочку HTTP и вводим прокси и порт.


* FireFox
Инструменты – настройки
Вкладка дополнительно
Настроить
Ручная нстройка сервера прокси



Ну, на этом пока все. В будущем расскажу про анонимайзеры и цепочки прокси.

Установка и анализ движка.
Незаменимым атрибутом веб хакера является умения анализировать и находить ошибки в php скриптах.
Учиться этому мы начнем уже с этого урока.
Итак, сначала нужно подготовить платформу для тестирования.
Кажется, в прошлой статье я упоминал, что мы будем работать с Денвером.
Денвер это набор дистрибутивов (Apache, PHP, MySQL, Perl и т.д.) и программная оболочка.
Все дело в том, что для его установки не нужно производить практически не каких телодвижений
(в отличии от отдельной установки php apche mysql), но зато теряется гибкость.
Итак, вам нужно скачать denwer и установить его.
Платформу можно считать готовой На примере wordpress 2.3
я покажу, как установить движок.

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

[Ссылки могут видеть только зарегистрированные пользователи. ]
Далее в поле «Создать новую базу данных» введите wordpress и нажмите создать. Все.
Теперь переходи по адресу bugsite11.us. Если все было сделано правильно вы увидите главную страницу инсталлятора wordpress.
Пройдите несколько шагов. Когда потребуется ввести данные в поле база данных нужно ввести wordpress в поле пользователь – root, поле пароля оставляем пустым. Сервер – localhost. Все. Теперь можете перейти по адресу bugsite11.us и вы увидите готовенький для
тестинга сайт на локалхосте.
Как видите установить двиг не сложно. Теперь по делу.
Сейчас я поведаю чисто поверхностную информацию об анализе скриптов.


* Во-первых - прежде чем изучать код скрипта нужно проверить его в работе. Собственно для этого мы и ставили denwer.

* Во вторых – чуть ли не ключевым аспектом при поиске уязвимостей является понимание структуры CMS (или что там мы ставили).
Разбираться лучше всего от начальной страницы (почти всегда index.php). В ней часто выполняются подключение, каких то модулей.
И так по порядку нужно изучать работу скриптов. Кстати, в изучении вам может помочь документация к скрипту.
Если таковая отсутствует можно поискать в Интернете какую либо информацию.

* В-третьих – очень часто придется производить поиск по исходному коду. Так что желательно обзавестись
нормальным текстовым редактором. Я предлагаю Notepad++.

* Ну и в четвертых нужно обязательно заглядывать на сайт разработчика. Там можно найти доки, информацию
об уязвимостях в предыдущих версиях и вообще много полезной информации.


На этом я закончу. Хочу что бы вы потренировались в установке движков на localhost. В следующем уроке мы
потихоньку начнем разбирать основные ошибки php программистов.

DoS и DDOS общие принципы.
Бывает, что нужный нам сайт недоступен. Браузер говорит нам, что сервер не отвечает.
Это может происходить вследствие DDOS атаки на сервер.
Немного понятий:


* DoS - Denial of Service – отказ от обслуживания. На самом деле это не атака, а результат атаки.
По сути DoS происходит из-за ошибок в программном коде либо недостаточной проверки входных данных.
Например, на сервере висит FTP демон. Входные данные от пользователя (например логин) не проверяются
на правильность. Т.е. пользователь может ввести любое кол во символов. Довольно типичная ошибка.

Вот например еще уязвимость в SolarWinds TFTP Server 9.2.0.111
[Ссылки могут видеть только зарегистрированные пользователи. ]
Ошибка может возникнуть при обработке при обработке TFTP пакетов.

Кстати есть довольно известный способ как можно «подвесить» сайт с помощью sql injection:

[Ссылки могут видеть только зарегистрированные пользователи. ], BENCHMARK(10000, NOW()))

Функция BENCHMARK повторяет действия указанное во втором аргументе количество раз указанное в аргументе параметре.
Функция NOW() показывает текущее время. Т.е. можно прикинуть, как мы загрузим сервер.
Вместо now можно подставить функцию вроде md5().

* DDoS – очень часто путают с DoS. Тут расклад немного другой. Смысл этой атаки именно
в «затапливании» сервера огромным количеством запросом, до тех пор, пока сервер не исчерпает свои ресурсы закончиться память
Как ясно с одного компьютера такое не сделаешь. Именно поэтому хакеры составляют ботнет с которого они могут топить сервер запросами.
Ботнет это энное количество компютеров с установленной троянской программой, через которую взломщик может контролировать каждый компьютер.
Ну вот. Если тебя заинтересовала эта тема, могу подкинуть несколько статеек:
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]



SQL injection


* Обход magis_quert

* concat_ws и удобный вывод.


На прошлом уроке мы говорили о такой вещи как магические кавычки. Я в общем рассказал что это.
Сейчас мы разберем как можно обойти эти самые кавычки.

Во-первых, можно использовать функцию char. Эта функция преобразовывает ASCII (аск) код в символы.
ASCII код это код символа. У каждого символа есть свой код. Например, у символа одинарной кавычки код 27.
Таблицу кодов можно найти здесь
Итак, функция char преобразовывает эти коды в символы, т.е. например:
Char(27,27)
Вернет нам две одинарные кавычки.
Кстати зная коды символов можно сделать так:

Зажать клавишу alt и набрать 0 и код символа.
Например, alt+077 выведет нам букву M.
Так же можно выводить некоторые специфические знаки вроде знака копирайта – alt+0169)

Вернемся к нашим скулям:

[Ссылки могут видеть только зарегистрированные пользователи. ]

Если ты забыл, то мы пытаемся загрузить файл /etc/passwd (файл со списком аккаунтов)
Часто кавычки режутся. А что если сделать так:

[Ссылки могут видеть только зарегистрированные пользователи. ])),
4,5,6,7,8,9,10/*

Кавычки закодированы, значит все ок.
Еще можно обойти фильтрация путем замены исходной строки аналогичной ей, только в хекс(hex) варианте (в шестнадцатеричном варианте).
Причем перед строкой нужно подставить знак 0x. Смотрим на примере:
Берем исходную строку '/etc/passwd'. Опять же идем на сайт [Ссылки могут видеть только зарегистрированные пользователи. ] выбираем раздел SQL Hex и вписываем строку
На выходе 0x5c272f6574632f7061737377645c27
В нашем примере это будет так:

[Ссылки могут видеть только зарегистрированные пользователи. ]

concat_ws.
Для лучшего понимания возьмем реальный пример:

[Ссылки могут видеть только зарегистрированные пользователи. ],
32,33,34,35,36+from+auth--+
Видим, что только одно читабельное поле – 2. Скажу наперед, что поле логина – login, а пароля – pwd.
Итак, наша задача скомбинировать эти два поля и вывести в удобном виде. Делается это с помощью функции concat_ws:

concat_ws(0x3a,login,pwd)

Первый аргумент это разделитель между полями. 0x3a записан в sql hex, в ASCII это будет : (знак двоеточия), т.е. вывод произойдет такой:

Loginwd

Вот еще пример:

concat_ws(0x2d,login,pwd)
0x2d означает тире (-)

Login-pwd
А вот как это будет выглядеть в нашем случае:

[Ссылки могут видеть только зарегистрированные пользователи. ],
22,23,24,25,26,27,28,29,30,31,32,33,34,35,36+from+ auth--+
По сути, польза не большая, но так удобней и изящней. Мы ж эстеты =)
Так с этим ясно. Что дальше? В следующем уроке я расскажу о записи файлов с помощью инжектов.
И наверное, на этом покончу повествования об основах. Т.к. далее продолжать бессмысленно. В Интернете очень много статей об этом,
а азы вы уже знаете. В уроках я буду рассказывать о каких то нестандартных ситуациях, более подробно о языке mysql и тому подобные вещи.
А сейчас продолжаем...

Прогулка по багтракам.
Еще немного об этом топике:
Суть в том, что я буду выкладывать некоторые интересные уязвимости с багтраков.
Так сказать примеры нахождения уязвимостей. Что это даст? Самое главное это понимание сути проблемы. Начнемсс...

Уязвимость CMS Bitweaver 2.6
[Ссылки могут видеть только зарегистрированные пользователи. ]
Итак, уязвимость найдена в CMS Bitweaver 2.6.
Бага позволяет нам создавать произвольные файлы в системе.
посмотрев сплоит, понимаем что:
Уязвимость присутствует в сценарии boards_rss.php - строка 102:

...
echo $rss->saveFeed( $rss_version_name, $cacheFile );


В этом куске функция saveFeed вызывается небезопасно.
Аргументы не проверяются и могут содержать символы обхода каталога ../(см урок 3)
Данные получаются так:

Переменная=$_REQUEST['version']


Теперь посмотрим собственно на саму функцию saveFeed в /RSS/ feedcreator.class.php

...
function saveFeed($filename="", $displayContents=true) {
if ($filename=="") {
$filename = $this->_generateFilename();
}
if ( !is_dir( dirname( $filename ))) {
mkdir( dirname( $filename ));// создаем каталог
}
$feedFile = fopen($filename, "w+"); // открываем файл для записи (w+)
if ($feedFile) {
fputs($feedFile,$this->createFeed()); пишем в файл информацию
fclose($feedFile);// закрываем файл
if ($displayContents) {
$this->_redirect($filename);
}
} else {
echo "
Error creating feed file, please check write permissions.
";
}
}

}
...
Тут попросту происходит сохранение файла.
Постараюсь объяснить функции, приведенные в этом коде:
dirname – возвращает каталог из указанного пути. Например, есть путь /home/hockfuke/text.c
Функция вернет /home/hockfuke/
is_dir – проверяет является ли файл каталогом.
Mkdir – создает каталог
Fopen – открывает файл
Fputs – пишет в файл.

Теперь собственно сам пример использования:

[Ссылки могут видеть только зарегистрированные пользователи. ]

С NULL байтом вы уже знакомы, он обрубает остальную часть запроса.
Параметр version мы как раз получали с помощью $_REQUEST.
Собственно ясно, что будет создать файл heck.php. Функция сохранения файлa была приведена выше.
Как помним наш подопытный это rss скрипт. Созданный файл будет таким:

[?xml version="1.0" encoding="UTF-8"?]
[!-- generator="FeedCreator 1.7.2" --]
[?xml-stylesheet href="http://www.w3.org/2000/08/w3c-synd/style.css" type="text/css"?]
[rss version="0.91"]
[channel]
[title> Feed[/title]
[description][/description]
[link]http://192.168.0.1[/link]
[lastBuildDate]Sat, 09 Sep 2009 20:01:44 +0100[/lastBuildDate]
[generator]FeedCreator 1.7.2[/generator]
[language]en-us[/language]
[/channel]
[/rss]
[/code]

Собственно нам то нужно выполнить код. Вот что заметили багоискатели:
Для выполнения кода можно создать учетную запись на сайте и в Display Name (ну имя) вписать код:

[?php system("ls –al");?]

system выполняет команду в системе.
Теперь делаем так:

[Ссылки могут видеть только зарегистрированные пользователи. ]

На сервере появится тот же файл но уже вместо [title] Feed [/ TITLE] будет [title] Feed ([?php system("ls –al");?>[/TITLE].

Подведем маленький итог. Ошибка заключался опять же в отсутствии фильтрации.
Из-за чего можно у нас появилась возможность создать собственный файл и выполнить в нем код. Т.к. displayname тоже не проверялось.

Конец.
Ну вот подошел к концу 5 урок.
Сегодня я приводил много исходных кодов. Хочу, что бы вы поняли, что это основа.
И уметь программировать просто необходимо.
Что дальше? Думаю, на следующем уроке мы продолжим знакомиться с анализом движков.
Так же я расскажу еще кое-что о твоей безопасности. На этом все.
Все уголковые скобки заменены на [ and ]

Ссылки:
[Ссылки могут видеть только зарегистрированные пользователи. ] – сайт Денвера
Неплохая статейка про sql injection
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]
________________
[Ссылки могут видеть только зарегистрированные пользователи. ] [Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 29.09.2010, 23:01   #2
 Разведчик
Аватар для akchu®
 
akchu® неизвестен в этих краях
Регистрация: 10.08.2010
Сообщений: 46
Популярность: -89
Сказал(а) спасибо: 60
Поблагодарили 4 раз(а) в 3 сообщениях
Отправить сообщение для akchu® с помощью ICQ
 
Exclamation Re: Основы хакерства. Урок 5

Цитата:
Сообщение от -SHiSH-Посмотреть сообщение
Вступление.

Например, на сервере висит FTP демон.

не "демон", а домен=) наверно...
________________
Обычно мне пофиг. Сегодня как обычно.
  Ответить с цитированием
Старый 30.09.2010, 00:25   #3
 Разведчик
Аватар для Kozalo
 
Kozalo на правильном пути
Регистрация: 20.02.2010
Сообщений: 26
Популярность: 62
Сказал(а) спасибо: 160
Поблагодарили 26 раз(а) в 18 сообщениях
Отправить сообщение для Kozalo с помощью Skype™
 
По умолчанию Re: Основы хакерства. Урок 5

Цитата:
Сообщение от akchu®Посмотреть сообщение
не "демон", а домен=) наверно...

[Ссылки могут видеть только зарегистрированные пользователи. ]
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Пользователь сказал cпасибо:
akchu® (30.09.2010)
Старый 30.09.2010, 15:52   #4
 Разведчик
Аватар для akchu®
 
akchu® неизвестен в этих краях
Регистрация: 10.08.2010
Сообщений: 46
Популярность: -89
Сказал(а) спасибо: 60
Поблагодарили 4 раз(а) в 3 сообщениях
Отправить сообщение для akchu® с помощью ICQ
 
Smile Re: Основы хакерства. Урок 5

Цитата:
Сообщение от KozaloПосмотреть сообщение
[Ссылки могут видеть только зарегистрированные пользователи. ]

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


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Основы хакерства. Урок 3 -SHiSH- Web-программирование и технологии 2 28.03.2011 16:10
Основы хакерства.Урок 4 -SHiSH- Web-программирование и технологии 0 01.08.2010 08:14
Основы хакерства. Урок 2 -SHiSH- Web-программирование и технологии 0 01.08.2010 08:09

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 04:59.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net