Как рассылать спам на php
Перейти к содержимому

Как рассылать спам на php

Как рассылать спам на php

Completing the CAPTCHA proves you are a human and gives you temporary access to the web property.

What can I do to prevent this in the future?

If you are on a personal connection, like at home, you can run an anti-virus scan on your device to make sure it is not infected with malware.

If you are at an office or shared network, you can ask the network administrator to run a scan across the network looking for misconfigured or infected devices.

Another way to prevent getting this page in the future is to use Privacy Pass. You may need to download version 2.0 now from the Chrome Web Store.

Cloudflare Ray ID: 71ad9e5c6aab9b77 • Your IP : 82.102.23.104 • Performance & security by Cloudflare

Спам через PHP

Добрый день. Подскажите пожалуйста, какими способами можно отправить почту из PHP? Дело в том, что у меня на сервере libhttpd.ep кушает 99% процессора, в очереди писем 4000 единиц спама и весь спам отправлен от имени апача. Специальный скрипт, заменяющий /bin/mail и /usr/sbin/sendmail записывает обращения к этим программам в лог и вызывает оригинальные бинарники, но в логах ничего нет. 25-й порт никто не слушает. В апаче куча виртуальных хостов, так что просмотреть тексты на предмет этой гадости не представляется возможным. Тушить postfix тоже нельзя — есть хорошие скрипты, использующие отправку почты, которые должны работать. Вопрос: как же еще может отправляться почта из PHP или других скриптов на хостинге?

Re: Спам через PHP

Как минимум, реализовать SMTP на ПХП не так и сложно. Так что запросто могут /bin/mail и не использовать.

Можно попробовать от рута lsof -P | grep IPv4 | grep :25 | head

Это покажет те процессы, что коннектятся на 25 порт.

Потом посмотреть тем же лсофом, какие еще файлы у них открыты.

Лучше даже сделать lsof >snapshot, и потом уже с этим файлом возиться.

Re: Спам через PHP

25-й порт не LISTEN никто

Re: Спам через PHP

Re: Спам через PHP

Та-ак, у меня его тоже никто не listen

тогда lsof | grep postfix

и смотреть потом, кто еще пишет в указанные файлы. Вероятно, смотреть придется *много* раз — скрипт-то быстро закинул данные и свалил.

Среди открытых файлов мылоотправляющих процессов должен быть и сам скрипт, естественно.

. А вот интересно, что более опытные товарищи скажут?

Re: Спам через PHP

> Специальный скрипт, заменяющий /bin/mail и /usr/sbin/sendmail
А может кто-то закинул и вызывает свои собственные аналоги mail/sendmail ? Или выкупил пути/мена оригинальных бинарников и вызывает их напрямую ?
Да, каталог почтовой очереди не доступен на запись кому не надо ?

Re: Спам через PHP

Если так, то sendmail используется

Re: Спам через PHP

Поиск по имени mail и sendmail ничего не выявляет. А если злодей их переименовал, то как их пропалить?

Re: Спам через PHP

Каталог с очередью на запись только для postfix и рута.

Re: Спам через PHP

watch "lsof | grep /var/www/ | grep postfix" > /var/log/watch.log

Так показать должен по идее рано или поздно, не так ли?

Re: Спам через PHP

Re: Спам через PHP

Проблема в том, что скрипты которые мылят есть, и их много, но на 99% это формы для обратной связи, т.е. хорошие скрипты. А есть один плохой. Но из 1000 его очень трудно выискать.

Re: Спам через PHP

> Специальный скрипт, заменяющий /bin/mail и /usr/sbin/sendmail
Да, а не пробовали заменить скрипт бинарником или использовать sudo ? А то для запуска скрипта, тому, кто запускает, необходимо иметь право на его чтение (т.к. реально идет запуск не самого скрипта, а /bin/bash, /usr/bin/perl, . которые для выполнения читают скрипт).
А раз у всех есть право на его чтение, значит каждый может увидеть какие реальные бинарники он вызывает, и вызывать их напрямую в обход скрипта.
Думаю это более реальный вариант, т.к. наличие своих собственных (собранных самостоятельно) бинарников вряд ли что-то даст спамеру. Например у sendmail-а бинарник /usr/sbin/sendmail имеет бит SGID и группу smmsp, в которую никто, кроме user-а smmsp не входит, и право записи в очередь имеет только этот user.
Т.е. спамер не сможет дать своему бинарнику нужную группу/владельца всемте с битами SGID/SUID.

Как рассылать спам на php

Nickolay.info. PHP. PHPMailer — скрипт для начинающего спамера или почта с любого адреса

Технически ничего сложного в задаче программной отправки E-mail, в том числе и с любого адреса, нет. Достаточно написать небольшой скрипт на PHP (или Perl), вызывающий функцию mail с нужными параметрами. Простейший кусочек кода приведён, например, в этой статье (пункт 1).

Представленный ниже скрипт, по сути дела, есть просто «накрутка» над подобным же вызовом функции mail . Для ввода и редактирования письма в формате HTML он использует прекрасную (правда, довольно объемную — около 1,5 Мб в разжатом состоянии) библиотеку TinyMCE, плюс содержит несколько дополнительных функций для проверки корректности вводимых данных, установки ограничений на время между повторными отправками и т.п. Получается вот такой сервис:

Как видно на рисунке, скрипт позволяет формировать тело письма в WYSIWYG-редакторе, похожем на обычный Microsoft Word, а также отправлять письмо как простой текст (переключатель справа от кнопки «Сброс»). Время до повторной отправки, а также ограничения на максимальный размер письма и максимальную длину слова настраиваются в файле config.php . После отправки письма скрипт оставляет письмо в форме и позволяет, спустя указанное Вами число секунд, повторить отправку. Думаю, нетрудно добавить в post.php ещё несколько строчек кода, чтоб рассылать письмо по списку адресов, сохранённому, скажем, в текстовом файле. Подключения MySQL эта версия скрипта не требует.

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

Скрипту требуется PHP 5.1.0 или выше — из-за вызова функции htmlspecialchars_decode , нужного, чтоб превратить «обратно в HTML» полученные от TinyMCE данные. Естественно, написав свой аналог этой функции, можно использовать скрипт и на младших версиях PHP.

Вывод функции mail не подавлен, так что при неудачной отправке перед текстом «Не удалось отправить сообщение. » должно вывалиться системное сообщение от сервера — его анализ поможет выяснить, в чём дело. А дело будет, скорее всего в том, о чём пойдёт речь дальше в статье.

На файл time должны быть права на запись.

Кроме того, как и для запуска любых других скриптов, работающих с сессиями или загрузкой файлов, должны быть настроены права 777 на папку временных файлов (обычно PHP/tmp ). Если увидели такое:

Вот ссылка для скачивания скрипта вместе с установленной Tinymce:
скачать phpmailer.zip,

Кстати, изменив функционал кнопки «Отправить» (или вовсе убрав её, потому что есть кнопка предварительного просмотра на панели инструментов), можно использовать скрипт и просто как визуальный редактор HTML-кода.

Прежде, чем порассуждать о том, почему инет до сих пор не наводнён такими скриптами и спам удаётся удерживать хоть в каких-то рамках, давайте поговорим об ещё одной распространённой проблеме, связанной с отправкой почты из языков сценариев. У большинства клиентов и начинающих программистов на PHP стоит та или иная версия Windows и часто возникает вопрос — как отлаживать скрипты и эмулировать отправку почты (а лучше прямо отправлять её!) функцией mail на локальном сервере Windows. Разрешением этого вопроса мы и займёмся дальше.

Настройка SMTP-сервера на локальном хосте Windows

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

Думаю, Вы понимаете, что для работы такого сервиса нужно установить и настроить у себя в Windows локальный сервер IIS (вот моя статья), а также добавить компоненту SMTP — встроенного в Windows «виртуального» почтового сервера. Здесь и дальше я ориентируюсь на Windows XP, для других близких версий Windows отличия минимальны.

Для этого идём Пуск, Панель управления, Установка и удаление программ, вкладка Установка компонентов Windows, в списке выбираем Internet Information Services, далее кнопка Состав, включить компоненту «служба SMTP». Возможно, понадобится и будет запрошен диск с Вашим дистрибутивом Windows.

В отличие от www-сервера на локальном компьютере Windows, успешно работающего «по умолчанию» на адресе http://127.0.0.1 , SMTP-сервер «сам по себе» ничего отправлять не будет, и при попытке программно отправить почту функцией mail из PHP или Perl Вы увидите примерно следующее:

SMTP server response: 550 5.7.1 Unable to relay адрес@почты

Решаем эту проблему так:

Идём Пуск, Панель управления, Администрирование, Internet Information Services, раскрываем список ИМЯ_СЕРВЕРА (локальный компьютер) , щёлкаем правой кнопкой на компоненте «Виртуальный SMTP-сервер по умолчанию», далее пункт Свойства, вкладка Доступ, кнопка Ретрансляция. Вверху выбираем «Только указанные в списке» (мы ведь собираемся работать с SMTP только со своего локалхоста?), жмём кнопочку «Добавить», в новом окне выбираем радиокнопку «Отдельный компьютер», в поле IP-адрес вписываем 127.0.0.1, жмем ОК и ещё раз ОК, чтобы закрыть окно «Ограничения ретрансляции». Перед этим, думаю, Вы не забыли снять галочку «Разрешить ретрансляцию любому не указанному в списке компьютеру».

На всякий случай в том же окне «Свойства: Виртуальный SMTP-сервер. » и на той же вкладке «Доступ» жмём кнопку «Подключение. «, в новом окне выбираем «Только указанные в списке», кнопка «Добавить», выбор «Отдельный компьютер», ввод IP-адреса 127.0.0.1 — в общем, то же самое. Применяем сделанные изменения — и локалхост начинает отправлять почту. только она не приходит!

Дело в том, что функция mail сама по себе ничего не отправляет, она просто вызывает программу sendmail , которая в дистрибутив Web-сервера IIS и интерпретатора PHP под Windows не входит. И никогда не входила, и никогда не будет входить.

Где же тогда взять sendmail ?

Вот «волшебная ссылка», качаем, разворачиваем архив, кидаем, например, в папку внутри папки PHP. У меня это c:\php , так что путь получится c:\php\sendmail .

Любым текстовым редактором открываем свой файл php.ini . Обычно это c:\WINDOWS\php.ini , но бывает по-разному. Чтоб узнать точно, создайте в отдельном файле с именем phpinfo.php код вида
<? phpinfo (); ?>
и выполните его на локалхосте из браузера:
http://127.0.0.1/phpinfo.php

Разумеется, файл надо положить в корень локалхоста, обычно это папка c:\Inetpub\wwwroot . Ответ будет в первой из сгенерированных в браузере таблиц, настройка Configuration File (php.ini) Path.

В файле php.ini правим приведённую ниже секцию (если секции вдруг нет — создайте. но должна быть).

Открываем файл sendmail.ini из папки sendmail , там пишем нужные настройки, например,

— для сервера Mail.ru. Следует указать реально существующие ЛОГИН и ПАРОЛЬ . С исходного файла sendmail.ini лучше предварительно сохранить резервную копию, там много комментариев на английском, раскрывающих назначение всех этих настроек.

Перезапускаем Web-сервер: для этого идём к IIS (надеюсь, путь уже запомнили), правая кнопка на локальном Web-узле, Остановить, затем Пуск.

Пробуем отправить почту и получаем, скорее всего, следующее:

Warning: mail() [function.mail]: Could not execute mail delivery program ‘c:\php\sendmail\sendmail.exe -t’ in ИмяФайла.php и номер строки с вызовом mail

Что ещё может мешать? Конечно, наши любимые права на файлы NTFS 🙂

Для корректной работы sendmail под Windows-сервером нужно дать разрешение на чтение/исполнение пользователю IUSR_*** для папки, в которой лежит sendmail.exe , а также на файл командного процессора cmd.exe . Самое забавное, что уровень безопасности самого сервера IIS никак не влияет на возможность запуска cmd.exe . Если не знаете, как назначать файлам права — в той же статье, что уже была по ссылке выше, пункты 3-5.

Когда работа с почтой на локалхосте станет не нужна, не забудьте запретить пользователю IUSR_*** доступ к cmd.exe , а также остановить SMTP-сервер — зачем Вам лишняя «дырка» в системе и лишний открытый порт?

С правами на папку справились, теперь командный процессор. Правая кнопка на «Мой компьютер», Свойства, вкладка Дополнительно, кнопка Переменные среды, системная переменная Comspec содержит путь к командному процессору (обычно c:\WINDOWS\system32\cmd.exe ). На этот файл для гостевой учётной записи Интернета тоже ставим права на «разрешить чтение и выполнение».

Мы сделали всё и программная отправка почты из PHP на локальном сервере Windows пройдёт успешно — по крайней мере, так скажет функция mail . К сожалению, в этом самом интересном месте вынужден Вас огорчить. Никакого «письма от Билла Гейтса» Ваш сосед, скорее всего, не получит. Об этом и поговорим в следующем разделе.

Почему мир ещё не утонул в спаме

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

Разумеется, меры уже приняты.

Самое главное, «нехорошие» админы большинства почтовых серверов запрещают подставлять в поле From: «левый» адрес, так что отправка, внешне проходящая успешно (функция mail вернёт результат true ), на самом деле не будет означать доставки письма.

На сервере Mail.Ru, к примеру, давно так и сделано, так что не верьте многочисленным советам использовать его для «анонимной отправки писем». Вышеприведённые настройки Mail.Ru сработают, и функция mail никаких проблем не увидит. Увидеть их можете разве что Вы сами — прочитав отчёт об ошибках в файле crash.txt , который будет создан в папке программы sendmail .

Дело в том, что в системе разрешения доменных имён DNS существуют так называемые обратные зоны, и если для узла, с которого мы отправляем сообщение, нет соответствующей записи (или есть, но она попадает под ранее наложенные фильтры), то сообщения от такого узла не будут приниматься большинством почтовых серверов. Также есть ещё «чёрные» списки, «серые», «белые» и т.д. + всякие схемы проверки подлинности и легитимности, с соответствующими коэффициентами и весами.

Иными словами, для отправки письма нужно произвести авторизацию через POP3-сервер, то есть сначала забрать письма с сервера, затем отправить написанные письма.

При отправке писем через SMTP-сервер содержимое поля From: в этом случае должно совпадать с именем почтового ящика, в котором была осуществлена SMTP-авторизация. Т.е., если в настройках почтовой программы указан почтовый ящик mailinboxbklist@mail.ru, то именно это имя почтового ящика должно указываться в поле From: . Вы же, понятное дело, не знаете пароля от того ящика, «с которого» отправляете письма.

И что же, получается, всё так плохо и отправить спам никак не получится?

Да нет, возможно отправить. Откуда бы он тогда брался-то? 🙂

1. На платных и корпоративных хостингах отправка письма от чужого имени может быть и не запрещена, на моих точно не запрещена, так что вот секретная ссылка , которая даже не индексируется поисковиками, но реально (пока что, потому уберу) позволяет отправить письмо от другого адреса. Только я там поставил в config.php приличные интервалы между отправкой, так что спамить скриптом не получится. Да и надо понимать, что, во-первых, «отправка с другого адреса» не запрещена только для диапазона адресов, непосредственно относящегося к хостеру, во-вторых, что если я или кто-то другой начнут с помощью такого скрипта спамить, то провайдер может отследить и принять меры. Не посмотрев на то, что пользователь платный.

2. Существуют так называемые «relay SMTP-серверы», позволяющие отправлять через себя письма без авторизации и указывать любые обратные адреса. Поищите по этому запросу в Google (Яндексе) и обрящете. А потом укажите такой сервер в настойках нашего выше установленного sendmail . Увы, многие из этих серверов уже не существуют (много устаревших данных в перечнях таких серваков) или стабильно находятся в чёрных списках. Но вот посмотрев детальные свойства свеженького письма от спамера, обошедшего все антиспамовые фильтры, порой нетрудно разжиться нужным SMTP.

3. Для программной отправки почты необязательно пользоваться услугами сервисов SMTP. Можно всё реализовать программно. Для этого изучайте спецификацию протокола SMTP/POP3 и пишите на сокетах (sockets), хоть в том же Delphi (простейший пример, правда, для POP-, а не SMTP-сервиса — в этой статье).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *