Pull to refresh

Вытаскиваем кучу паролей из пиринговых сетей

Reading time3 min
Views12K
Появилась эта задумка уже давно — с тех самых пор, когда узнал про wand.dat. До недавнего времени всё никак не доходили руки.

Итак, что у нас есть
  1. Браузер Opera. Хранит он все запомненные пароли от сайтов в файле wand.dat в открытом виде. Правда в открытом только в том случае, если не стоит мастер-пароль, который конечно же никто не ставит. Что заставило разработчиков сохранять пароли в незашифрованном виде, если нет мастер-пароля? Неизвестно. Логичней было бы форсированно не сохранять пароли вообще, пока пользователь-таки не установит мастер-пароль.
  2. Direct Connect. «Частично централизованная файлообменная (P2P) сеть». Пользователь расшаривает папки/файлы на своём компьютере, заходит на хабы, качает/раздаёт. Поиск работает в пределах подключенных хабов. Уникальность файлов определяется через Tiger Tree Hashing. Люди, которым нечего расшаривать (на многие хабы не пускают без минимальной шары в 10-15 ГБ), расшаривают Program Files, Windows, ну и иже с ними.
  3. /dev/hands. Ну а без этого никак.

В чём состояла задумка: написать бота, сидящего на хабах и регулярно ищущего и качающего wand.dat. Писал я программу на любимом Delphi.
Собственно, алгоритм работы бота:
  1. Бот сканирует папку для сохранённых файлов, перебирает файлы по заданному паттерну имён, сохраняет TTH файлов (модуль для снятия TTH для Delphi написан MetalFan’ом и взят отсюда) в памяти. Заодно создаётся batch-скрипт для обработки всех существующих wand’ов за один двойной клик. В качестве парсера используется, например, вот это.
  2. Открывается заранее приготовленный список хабов в формате «одна строчка — один хаб». На каждый хаб создаётся отдельный тред.
  3. Откуда брать список хабов? Качается bz2-файл с хабами, распаковывается, парсится чем угодно (внизу пример парсера на php).
  4. Заходим на хаб. Ищем wand.dat размером не меньше килобайта. Повторяем поиск каждые 20-ь минут.
  5. Качаем каждый найденный wand.dat, если такого TTH ещё нет во внутренней базе программы. Сохраняем в папку к остальным. Добавляем TTH нового файла к своему списку, обновляем batch-скрипт для обработки накаченного.
  6. Когда надоест качать, выключаем бота, запускаем скрипт, Получаем один конечный файл со всеми паролями
Единственные знания, которые потребовались при программировании: WinSock, многопоточные приложения, протокол Direct Connect (да и то не весь). Из нового для меня был только сам протокол. На написание ушло 8 часов. 380 строк кода без модулей. В скомпилированном программа виде занимает 149 Килобайт. Выкладывать бота не буду, это чревато.

Ну а парсер списка хабов на php вот:
<?php
 header(
'Content-type: text/plain');
 
$f_name='./hublist.xml';
 
$f  =fopen($f_name,'r');
 
$buf=fread($f,filesize($f_name));
 fclose(
$f);
 preg_match_all(
'|address="dchub://([a-z0-9:.-]+?)"|i',$buf,$a);#да-да, знаю, паттерн не самый прямой
 
$f  =fopen('./hublist.txt','w');
 for (
$i=0;$i<count($a[1]);$i++){fwrite($f,$a[1][$i]."\r\n");}
 fclose(
$f);
 echo
'done '.count($a[1]);
?>

Паттерн при надобности можно поправить, например, на исключительно .ru-хабы.

Тест
Тестировал программу с 25 по 28 апреля 2010. За это время накачано 232 wand.dat. Самый жирный занимал 129 Килобайт. Что нашёл в этих вандах? Я их даже не открывал, ибо это уже нехорошо. Да и не пароли от вконтактиков были целью. Целью написания бота была проверка на трудность задачи автоматизации утаскивания паролей, лежащих на видном месте без присмотра.

Что накаченным богатством делать
А что там в этих вандах может быть?
  1. Во-первых, список валидных почтовых адресов. Можно использовать для спама. (На самом деле затраты их добычи таким способом не окупаются совершенно, легче использовать встроенный поиск MailAgent’а).
  2. Пароли от всяких Контактов/Одноклассников/Фейсбуков — ценности для хакеров никакой.
  3. Доступ к ftp сайтов, это уже опаснее — от надписи «Haxored by xakep Vasya666» до эксплойта на главной хакера отделяет лишь выдумка.
  4. Список почтовых аккаунтов с паролями. По-моему, это самое опасное. Почту, как всем известно, с серверов никто не удаляет.
  5. Пароли от аккаунтов у вашего провайдера. Правда за такое вас однозначно накажет провайдер. Жесто-о-око накажет.
На самом деле в вандах ещё может всякого лежать, только это всякое я описывать не буду, дабы не махать красной тряпкой перед хакерами, вернувшимися со школы.

Результат
Пароли. Очень много паролей за достаточно малый промежуток времени при минимальных одноразовых усилиях.

Вывод
Вывод? Какой ещё может быть новый вывод? Опять напоминать про то, что надо ставить мастер-пароли на браузеры, коли вы сохраняете пароли в браузере? Напоминать, что надо следить за тем, что вы расшариваете? НО ЗАЧЕМ?! К этому всё равно никто не прислушается. Вот только не плакать, когда жареный петух клюнет в одно место.
Tags:
Hubs:
Total votes 75: ↑52 and ↓23+29
Comments36

Articles