Анонимная отправка писем. Отправка письма в HTML.

Тема в разделе "Статьи", создана пользователем Grey_a, 8 ноя 2007.

  1. Grey_a
    Grey_a Новичок
    Симпатии:
    4
    Анонимная отправка писем.

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

    1) Протокол SMTP...

    1. Регим почту, к примеру на яндексе (лучше на менее крупных сайтах, к примеру с мейл.ру такое не прокатывает).
    2. Кодируем логин, а потом и пароль в base64 (к примеру на php это сделать проще простого <?php echo(base64_encode('string')); ?>).
    3. Дальше конектимся телнетом к smtp серваку (адрес как правило можно найти почитав раздел "помощь - как настроить аутлук и т.д.") на 25 порт (cmd telnet smtp.yandex.ru 25). Вводим логин и пасс, вводим письмо с указанном в хейдере левом мылом и все... На практике это выглядит так:

    cmd telnet yandex.ru 25

    HELO Grey - здесь просто указываем имя, тут в принципе можно написать что угодно.
    AUTH LOGIN - это необходимо для авторизации, дальше нужно ввести логин и пароль закодированные в base64.
    bG9naW4= - логин в данном случае слово login
    cGFzc3dvcmQ= - пароль в данном случае слово password
    MAIL FROM: login@yndex.ru - здесь пишем пока что реальный адрес
    RCPT TO: lam@yandex.ru - здесь пишем адрес кому отправлям
    DATA - с этой строки начинается тело письма
    From: xaker@yandex.ru - здесь пишем уже левый адрес именно он и будет отображатся при получение письма
    To: lam@yandex.ru - здесь еще раз пишем
    кому отправляем письмо
    Subject: Тест... - здесь заголовок письма
    бла бла бла бла бла - здесь текст письма
    бла бла бла - и здесь тоже
    . - точка на новой строке означает конец тела письма
    QUIT - отключаемся от smtp сервака.

    2) Используя язык PHP.

    Напишем небольшой скриптик для отправки письма (используя функцию mail()):

    PHP:
    <?php

    //-----------------------------------

    $to = 'lam@yandex.ru'; // Кому письмо
    $subject = 'Тест'; // Тема пиьсма
    $from = 'xaker@yandex.ru'; // От кого письмо
    $message = 'бла бла бла'; // Текст пиьсма

    //-----------------------------------

    $header = "From: ".$from;

    mail($to, $subject, $message, $header);

    ?>
    Отправка письма в HTML.

    Наверное многие любители фейков или просто СИ в целом, не отказались бы отправлять письма в ввиде HTML.

    Это не сложно, опять два варианта:

    1) Протокол SMTP...

    cmd telnet yandex.ru 25

    HELO Grey - здесь просто указываем имя, тут в принципе можно написать что угодно.
    AUTH LOGIN - это необходимо для авторизации, дальше нужно ввести логин и пароль закодированные в base64.
    bG9naW4= - логин в данном случае слово login
    cGFzc3dvcmQ= - пароль в данном случае слово password
    MAIL FROM: login@yndex.ru - здесь пишем пока что реальный адрес
    RCPT TO: lam@yandex.ru - здесь пишем адрес кому отправлям
    DATA - с этой строки начинается тело письма
    From: xaker@yandex.ru - здесь пишем уже левый адрес именно он и будет отображатся при получение письма
    To: lam@yandex.ru - здесь еще раз пишем
    кому отправляем письмо
    Subject: Тест... - здесь заголовок письма
    Content-type: text/html - теперь письмо будет выполнятся как html!
    <h1>123123</h1> - тело письма
    . - точка на новой строке означает конец тела письма
    QUIT - отключаемся от smtp сервака.

    Как можно заметить ничего особо сложного не прибавилось, достаточно указать в хейдере еще один параметр в котором будет наисано что письмо типа text/html.

    2) Используя язык PHP.

    PHP:
    <?php

    //-----------------------------------

    $to = 'lam@yandex.ru'; // Кому письмо
    $subject = 'бла бла бла'; // Тема пиьсма
    $from = 'xaker@yandex.ru'; // От кого письмо
    $message = '<h1>бла бла бла</h1>'; // Текст пиьсма с html тегами

    //-----------------------------------

    $header = "From: ".$from."\r\nContent-type: text/html";

    mail($to, $subject, $message, $header);

    ?>
    Как видно ничего сложного ни в анонимной отправке ни в отправке письма в ввиде html страницы нету. А вот помочь в использование СИ, фейках и т.д. это может очень даже сильно.

    P.S. статью писал сам специально для этого форума (здесь ничего по этому вопросу я не нашел), так что видеть копи/паст не хочу (статей на эту тему полно, но тут на мой взгляд все расписано более понятно и рационально), максимум я это напишу еще на, родном мне, ачате.
     
    8 ноя 2007
    1 человеку нравится это.
  2. logos
    logos Guest
    А вот модифицированный скрипт. Адресаты берутся из файла, есть возможность добавления аттача.

    Скрин:



    Код:

    Код:
    <html>
    <head>
      <title>Mail</title>
    <style type="text/css">
    body {font-family: Arial, Helvetica, sans-serif;font-size: 11px;}
    td {font-family: Arial, Helvetica, sans-serif;font-size: 11px;}
    h1 {font-family: Arial, Helvetica, sans-serif;font-size: 16px; color:#72BA75; }
    a {font-family: Arial, Helvetica, sans-serif;font-size: 11px;color : #000000;text-decoration: underline;}
    a:hover{font-family: Arial, Helvetica, sans-serif;font-size: 11px;color : #294A7B;text-decoration: none;}
    INPUT.button {padding:0px;height: 21px;font-family:Tahoma; font-size:12px;color:#FFFFFF; background-color:#B9BAC8; border: 1px solid #F7F7F7; cursor: pointer;font-weight: bold;}
    INPUT.inp {border: 1px solid #B9BAC8;background-color:#FFFFFF; font-size:11px;height: 18px; font-family:Arial;}
    textarea.inp {border: 1px solid #B9BAC8;background-color:#FFFFFF; font-size:11px; font-family:Arial;}
    </style>
    </head>
    <body>
    
    <?php
    $message_in_min = 10000;
    $mode = $HTTP_POST_VARS['mode'];
    
    switch($mode){
      case 'send':
        if(isset($HTTP_POST_FILES['filename']['tmp_name'])){
          $base_name = $HTTP_POST_FILES['filename']['name'];
          $f = fopen($HTTP_POST_FILES['filename']['tmp_name'],"rb");
          $attach = base64_encode(fread($f,filesize($HTTP_POST_FILES['filename']['tmp_name'])));
          $isfile = 1;
        }
        else {$isfile = 0;}
        # Проверки #################################################################
        $from = $HTTP_POST_VARS['from'];
        if(empty($from)){echo("Неуказан адрес отправителя");exit;}
        else if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i",$from)){echo("$from - не верный адрес отправителя"); exit;}
        $fromname = @$HTTP_POST_VARS['fromname'];
        if(isset($fromname)){$from = $fromname." <$from>";}
        $subject = $HTTP_POST_VARS['subject'];
        $subject =  htmlspecialchars(stripslashes($subject));
        if(!$subject){echo("Опять же, кто будет писать тему сообщения?");}
        $type = $HTTP_POST_VARS['type'];
        $message = $HTTP_POST_VARS['message'];
        if($type == 'text'){$message =  htmlspecialchars(stripslashes($message));}
        if(!$message){echo("Короче, нужно что то написать. Где сообщение-то?"); exit;}
        ############################################################################
        $to_arr = file(@$HTTP_POST_FILES['to']['tmp_name']);
        // print_r($to_arr);exit;
        $to_arr = array_unique($to_arr);
        $i = 0;
        $current_message= 0;
        $num_send = 0;
        $num_bad  = 0;
        $num_error= 0;
        while(isset($to_arr[$i])){
          $to_arr[$i] = trim($to_arr[$i]);
          if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i",$to_arr[$i])){
            echo($to_arr[$i].' - голимый адрес, я на его отправлять ничего не собираюсь'."<br>\n");
            $num_bad++;
          }
          else{
            if(sendemail($from,$to_arr[$i],$subject,$message,$type)){
              echo('Сообщение на '.$to_arr[$i]." отправлено<br>\n"); flush();
              $num_send++;
            }
            else{$num_error++;}
          }
          $current_message++;
          if($current_message == $message_in_min){
            $current_message = 0;
            echo('Отправлено '.$message_in_min.' соообщений. Пауза 60 сек.'."<br>\n");
            flush();
            sleep(30);
            echo('<!---->'."\n");
            flush();
            sleep(30);
          }
          $i++;
        }
        echo('<hr size="1" color="#000000">Рассылка завершена!<br>'."\n");
        echo('
          <b>Отправлено  : '.$num_send.'</b>
          <b>Ошибок связи: '.$num_error.'</b>
          <b>Плохих email: '.$num_bad.'</b>
          <hr size="1" color="#000000">
        ');
      break;
      default:
        echo('
    <div align="center">
    <h1>Рассылка писем</h1>
    <form method="post" enctype="multipart/form-data">
    <table align="center" border="0">
    <tr>
      <td align="right" bgcolor="#EBEBEB"><strong>От кого (Имя):</strong></td>
      <td><input type="Text" class="inp" name="fromname" value="" size="30"> * - Не обязательно. Например, Пупкин И.И.</td>
    </tr>
    <tr>
      <td align="right" bgcolor="#EBEBEB"><strong>От кого (Email):</strong></td>
      <td><input type="Text" class="inp" name="from" value="" size="30"> * - Только email адрес</td>
    </tr>
    <tr>
      <td align="right" bgcolor="#EBEBEB"><strong>Кому:</strong></td>
      <td><input type="File" name="to" class="inp" size="68"></td>
    </tr>
    <tr>
      <td align="right" bgcolor="#EBEBEB"><strong>Тема:</strong></td>
      <td><input type="Text" class="inp" name="subject" value="" size="80"></td>
    </tr>
    <tr>
      <td valign="top" align="right" bgcolor="#EBEBEB"><strong>Сообщение:</strong></td>
      <td><textarea name="message" rows="10" cols="82" class="inp"></textarea></td>
    </tr>
    <tr>
      <td align="right" bgcolor="#EBEBEB"><strong>Фаил:</strong></td>
      <td><input type="File" name="filename" class="inp" size="68"></td>
    </tr>
    <tr>
      <td align="right" bgcolor="#EBEBEB"><strong>Формат</strong></td>
      <td>
    
    <table width="100%">
    <tr>
      <td width="20"><input class="inp" type="Radio" name="type" value="text" checked></td>
      <td width="40">text&nbsp;&nbsp;&nbsp;&nbsp;</td>
      <td width="20"><input class="inp" type="Radio" name="type" value="html"></td>
      <td width="40">html</td>
      <td align="right"><input type="Hidden" name="mode" value="send"><input type="Submit" class="inp" value="Отправить"></td>
    </tr>
    </table>
    
    </td>
    </tr>
    <tr>
      <td bgcolor="#EBEBEB"></td>
      <td><hr size="3" color="#F7F7F7"></td>
    </tr>
    </table>
    </form>
    </div>
    ');
      break;
    }
    
    function sendemail($from,$to,$subject,$message,$type){
      $bound = time().'SPB';
      global $attach, $base_name, $isfile;
    
      $sep = chr(13).chr(10); // Разделитель строк заголовка
      switch($type){
        case 'text':
          $headers = "From: ".$from.$sep;
          $headers.= "X-Priority: 3".$sep;
          $headers.= "X-MSMail-Priority: Normal".$sep;
          $headers.= "X-Mailer: PHP/".phpversion().$sep;
          $headers.= "MIME-Version: 1.0".$sep;
          $headers.= "Content-Type: multipart/mixed; boundary=\"".$bound."\"".$sep.$sep;
    
          $body = "--$bound".$sep;
          $body.= "Content-type: text/plain; charset=\"windows-1251\"".$sep;
          $body.= "Content-Transfer-Encoding: 8bit".$sep.$sep;
          $body.= $message.$sep;
          
          if($isfile == 1){
            $body.= "$sep$sep--$bound".$sep;
            $body.= "Content-Type: application/octet-stream;";
            $body.= "name=\"".basename($base_name)."\"".$sep;
            $body.= "Content-Transfer-Encoding:base64".$sep;
            $body.= "Content-Disposition:attachment".$sep.$sep;
            $body.= $attach.$sep;
          }
          // $body.="$bound--".$sep.$sep;
        break;
        case 'html':
          $headers = "From: ".$from.$sep;
          $headers.= "X-Priority: 3".$sep;
          $headers.= "X-MSMail-Priority: Normal".$sep;
          $headers.= "X-Mailer: PHP/".phpversion().$sep;
          $headers.= "MIME-Version: 1.0".$sep;
          $headers.= "Content-Type: multipart/mixed; boundary=\"".$bound."\"".$sep.$sep;
    
          $body = "--$bound".$sep;
          $body.= "Content-type: text/html; charset=\"windows-1251\"".$sep;
          $body.= "Content-Transfer-Encoding: 8bit".$sep.$sep;
          $body.= $message.$sep;
    
          if($isfile == 1){
            $body.= "$sep$sep--$bound".$sep;
            $body.= "Content-Type: application/octet-stream;";
            $body.= "name=\"".basename($base_name)."\"".$sep;
            $body.= "Content-Transfer-Encoding:base64".$sep;
            $body.= "Content-Disposition:attachment".$sep.$sep;
            $body.= $attach.$sep;
          }
          // $body.="$bound--".$sep.$sep;
        break;
        default:
          echo('<center><b>Неверный параметр типа письма.</b></center>');
        break;
      }
      if(mail($to,$subject,$body,$headers)){return true;}
      else{return false;}
    }
    ?>
    </body>
    </html>
    
     
    8 ноя 2007
    3 пользователям это понравилось.
  3. Anvil
    Anvil Guest
    А вот если каму надо для держателей сайтов. Пример тут.

    Код:
    <style type="text/css">
    <!--
    .incode {
    	font-size: 12px;
    	width: 60px;
    	text-align: center;
    }
    .butt {
    	height: auto;
    	font-size: 12px;
    	text-align: center;
    	color: #666666;
    	font-family: Verdana, Arial, Helvetica, sans-serif;
    }
    .tabletka {
    	border: 1px dashed #999999;
    	font-family: Verdana, Arial, Helvetica, sans-serif;
    	font-size: 12px;
    	color: #666666;
    }
    .Zagol {
    	font-size: 24px;
    	font-family: Verdana, Arial, Helvetica, sans-serif;
    }
    -->
    </style>
    </head>
    
    <body>
    <br />
    <?php
    if($_POST['submit']) {
    
    session_start();
    $string = strtoupper($_SESSION['string']);
    $userstring = strtoupper($_POST['userstring']); 
    session_destroy();   
    
    
    
    if ($_POST['to'] =="") {echo '<script>alert(\'Вы не ввели адрес получателя!\');</script>';} 
    else {
    if ($_POST['from'] =="") {echo '<script>alert(\'Вы не ввели адрес отправителя!\');</script>';} 
    else {
    if ($_POST['title'] =="") {echo '<script>alert(\'Вы не ввели тему сообщения!\');</script>';} 
    else {
    if ($_POST['mess'] =="") {echo '<script>alert(\'Вы не ввели текст сообщения!\');</script>';} 
    else {
    if (($string !== $userstring) && (strlen($string) > 4)) 
    {
    	echo '<script>alert(\'Проверочный код введен не верно!\');</script>';
    }
    
            $title = substr(htmlspecialchars(trim($_POST['title'])), 0, 1000);
            $mess =  substr(htmlspecialchars(trim($_POST['mess'])), 0, 1000000);
    		
    		If
    		(mail($to, $title, $mess, 'From:'.$from))
    		{
    		if(!file_exists($log))
    {
    
    $f=fopen("$log","w");
    If (!f) exit ("!");
    fwrite ($f,"",0);
    @chmod($f, 0664);
    fclose($f);
    
    }
    $f=fopen($log,"r");
    $oldData = fread($f, filesize ($log));
    fclose($f);
    $f=fopen("$log","w+");
    If (!f) exit ("!");
    
    $str =
    $ip."::".
    $ref."::".
    $time."::".
    $_POST['to']."::".
    $_POST['from']."::".
    $_POST['title']."::".
    $_POST['mess']."\r\n";
    fputs($f,"$str\n");
    fwrite($f,$oldData);
    fclose($f);
    		
            echo '<script>alert(\'Спасибо! Ваше письмо отправлено.\');</script>';
    		echo "<HTML><HEAD>
    <META HTTP-EQUIV='REfresh' CONTENT='0; URL=$_SERVER[PHP_SELF]'>
    </HEAD> </HTML>";}
    		else
    		{echo '<script>alert(\'Произошла ошибка! Ваше письмо не отправлено.\');</script>';
    		echo "<HTML><HEAD>
    <META HTTP-EQUIV='REfresh' CONTENT='0; URL=$_SERVER[PHP_SELF]'>
    </HEAD> </HTML>";}
    }
    }
    }
    }
    }
    echo "
      <form action='' method=POST enctype='multipart/form-data'>
      <div align='center'>
        <table border='0' cellpadding='0' cellspacing='0' class='tabletka'>
      <tr>
        <td height='24' colspan='2'><div align='center'>Кому<br />
            <input type='text' name='to' size='40' value='billy@microsoft.com' onblur='if(this.value=='') this.value='billy@microsoft.com';' onfocus='if(this.value=='billy@microsoft.com') this.value='';' />
            <br />
          От кого<br />
      <input type='text' name='from' size='40' value='vasya_pupkin@mail.ru' onblur='if(this.value=='') this.value='vasya_pupkin@mail.ru';' onfocus='if(this.value=='vasya_pupkin@mail.ru') this.value='';' />
      <br />
          Teма<br />
      <input type='text' name='title' size='40' value='Ай нид ё мани. Паделись мля' onblur='if(this.value=='') this.value='Ай нид ё мани. Паделись мля';' onfocus='if(this.value=='Ай нид ё мани. Паделись мля') this.value='';' />
      <br />
          Сообщение<br />
      <textarea name='mess' rows='10' cols='40'></textarea>
        </div></td>
      </tr>
      <tr>
        <td width='34' height='' valign='top'><img src='minicaptcha.php' alt='Включите эту картинку' /></td>
        <td width='270' valign='top'><input name='userstring' type='text' class='incode' value='' size='4' maxlength='4' />
          <input name='submit' type='submit' class='butt' value='Отправить' />
          <input name='Reset' type='reset' class='butt' value='Очистить' /></td>
      </tr>
    </table>
    </div>
    </form>
    ";
    ?>
    
    И фаил создания картинки. (Чтоб не написали прогу отправки писем с вашего сайта)

    Код:
    <?php
    
    $max = strlen($acceptedChars)-1;
    $password = NULL;
    $a = rand(50,99);
    $b = rand (1,49);
    $password = $a-$b;
    
    session_start();
    $_SESSION['string'] = $password;
    
    header('Content-type: image/gif');
    $image = imagecreatetruecolor (41, 16);
    $x = rand(100,155);
    $y = rand(100,155);
    $z = rand(100,155);
    
    $d = ImageColorAllocate($image, 255, 255, 255);
    $c = ImageColorAllocate($image, $x, $y, $z);
    $e = ImageColorAllocate($image, 125, 125, 125);
    imageFill($image,0,0, $d);
    ImageString($image,4,0,1, $a ,$c);
    ImageString($image,4,16,1, '-' ,$c);
    ImageString($image,4,25,1, $b ,$c);
    $p = 0;
    while ($p<1000)
    {
       $x = mt_rand(1,200); 
       $y = mt_rand(1,200); 
       $pixel = imagecolorat($image,$x,$y); 
       $point = ($pixel == $z) ? $y : $x; 
       imagesetpixel($image,$x,$y,$point); 
       $p++;
    }
    imagepng($image);
    imagedestroy($image);
      
    ?> 
    
    З.Ы. Прошу при распространении кода указывать на автора. (Тобиш меня)
     
    Последнее редактирование модератором: 8 ноя 2007
    8 ноя 2007
  4. rashxxl
    rashxxl Guest
    неработает отправить письмо в html , текст приходит

    здесь можно отправить анонимно:
    _http://downloadportal.ru/email.php
    _http://goob.coolpage.biz/mail.php

    по ссылкам html у меня тоже непришло, только текст
     
    28 ноя 2008
  5. Shokko
    Shokko Новичок
    Симпатии:
    0
    (протестил)
    1 сервак по отправке коряво работает...
    2 - норм (даже отлично). :))
     
    4 дек 2008
Загрузка...