ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Socket SMTP
  #1  
Старый 23.11.2009, 13:35
s0l_ir0n
Участник форума
Регистрация: 14.03.2009
Сообщений: 237
Провел на форуме:
813785

Репутация: 314
Отправить сообщение для s0l_ir0n с помощью ICQ
Question Socket SMTP

Пол дня курил RFC по SMTP, так и не смог правильно составить тело.
Покажите, где ошибка:
Код:
procedure Sends(str : String);
var
i: integer;
begin
for i:=1 to Length(str) do if send(sock,str[i],1,0)=SOCKET_ERROR then exit;
end;
//---------------------
var
 MailFrom ='from@a.b';
 MailTo = 'to@a.b';
 CRLF = #13+#10;
 Body = 'My-Mail-Body';
 MySmtp = '127.0.0.1';
 subject = 'My-Mail-Subj';

procedure SendMail;
begin
WSAStartUp($0101, wsadata);
sock:=socket(AF_INET,SOCK_STREAM,IPPROTO_IP);

Addr.sin_family:=PF_Inet;
Addr.sin_port:=HtoNS(25);
Addr.sin_addr.S_addr:=Inet_Addr(PChar(MySmtp));
FillChar(Addr.sin_zero,SizeOf(Addr.sin_zero),0);

Connect(sock,Addr,sizeof(Addr));
Sends('EHLO s0l.name'+CRLF);
Sends('AUTH LOGIN'+CRLF);
Sends('bG9naW4='+CRLF);
Sends('cGFzc3dvcmQ='+CRLF);
Sends('MAIL FROM:'+MailFrom+CRLF);
Sends('RCPT TO:'+MailTo+CRLF);
Sends('DATA'+CRLF);
Sends('To:'+MailTo+CRLF);
Sends('Subject:'+Title+CRLF);
Sends('From:'+'<'+MailFrom+'>'+CRLF
Sends(Body+CRLF);

Shutdown(sock, SD_Both);
CloseSocket(sock);
WSACleanup;
-
Такс. Теперь работает, но я непонимаю, почему письма идут без авторизации, т.е. можно убрать
Код:
Sends('AUTH LOGIN'+CRLF);
Sends('bG9naW4='+CRLF);
Sends('cGFzc3dvcmQ='+CRLF
и все-равно доходит

Последний раз редактировалось s0l_ir0n; 23.11.2009 в 13:52..
 
Ответить с цитированием

  #2  
Старый 23.11.2009, 14:00
altblitz
Постоянный
Регистрация: 05.06.2009
Сообщений: 706
Провел на форуме:
2764047

Репутация: 759


Отправить сообщение для altblitz с помощью ICQ
По умолчанию

технически - сделано грамотно и без ошибок.

только зачем цикл - vari: integer; begin for i:=1 to Length(str) do ...
можно и напрямую мессагу запилить.

ладно, не столь и важно.

а вот:
Sends('bG9naW4='+CRLF);
Sends('cGFzc3dvcmQ='+CRLF);

уже другое.
имхо, это генерируется random и для каждой пост-мессаги должны быть уникальными.
 
Ответить с цитированием

  #3  
Старый 23.11.2009, 14:10
s0l_ir0n
Участник форума
Регистрация: 14.03.2009
Сообщений: 237
Провел на форуме:
813785

Репутация: 314
Отправить сообщение для s0l_ir0n с помощью ICQ
По умолчанию

Цитата:
Сообщение от altblitz  
Sends('bG9naW4='+CRLF);
Sends('cGFzc3dvcmQ='+CRLF);
имхо, это генерируется random и для каждой пост-мессаги должны быть уникальными.
Ты ошибаешься, это всего-навсего данные для авторизации в BASE64, которые нужно передавать после AUTH LOGIN

Я не понимаю почему письма уходят без авторизации. Эти 2 строки можно не передавать и все-равно все доставляется...
 
Ответить с цитированием

  #4  
Старый 23.11.2009, 14:33
altblitz
Постоянный
Регистрация: 05.06.2009
Сообщений: 706
Провел на форуме:
2764047

Репутация: 759


Отправить сообщение для altblitz с помощью ICQ
Smile

Цитата:
Сообщение от s0l_ir0n  
Ты ошибаешься, это всего-навсего данные для авторизации в BASE64, которые нужно передавать после AUTH LOGIN

Я не понимаю почему письма уходят без авторизации. Эти 2 строки можно не передавать и все-равно все доставляется...
OK, это диалог ассемблитца с дельфистом ))

для проверки отправленных/полученных пакетов
используется GPGrelay - sites.inka.de/tesla/gpgrelay.html

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

  #5  
Старый 23.11.2009, 14:54
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

2 altblitz >>>технически - сделано грамотно и без ошибок<<<<<<<

Извеняюсь за выражение, но тут пздц как криво и через жопу написано )
Ни единой проверки. (ни сокет не проверен на валидность, ни коннект)
Оформление кода - ужас. HtoNS - просто порадовало (Delphi дает свободу, но зачем на столько ей пользоваться)

Но главное: Кто будет считывать ответ сервака и анализировать ответ на предмет кодов ошибок.?

Вообще возьми любой снифер (тотже CommView ) и посмотри что передается по сети и что отвечает сервак(если лень делать считывание)

Также после посылки тела письма ставится CRLF[точка]CRLF
и потом желательно послать команда прощания с серваком.

Цитата:
а вот:
Sends('bG9naW4='+CRLF);
Sends('cGFzc3dvcmQ='+CRLF);

уже другое.
имхо, это генерируется random и для каждой пост-мессаги должны быть уникальными.
Если ты не уверен в чем то, то лучше не пиши этого вообще и не сбивай людей с толку. Потому что выдумывать у тебя получается плоховато. Или пиши это в болталке, там модер по строже и быстрее потрёт это.

P.S.
Письма без авторизации уходят - это всеголишь настройки smtp сервака. Ты для теста делай через яндекс или mail.ru или любой другой нормальный сервис и там ты сразу увидиш что без авторизации ничто никуда не уйдет.
Если юзаеш small http server для smtp то там есть галочка - разрешить/запретить анонимную отправку почты.
Также и в других может быть подобная опция

Последний раз редактировалось slesh; 23.11.2009 в 15:11..
 
Ответить с цитированием

  #6  
Старый 23.11.2009, 15:13
s0l_ir0n
Участник форума
Регистрация: 14.03.2009
Сообщений: 237
Провел на форуме:
813785

Репутация: 314
Отправить сообщение для s0l_ir0n с помощью ICQ
По умолчанию

Цитата:
Сообщение от slesh  
2 altblitz >>>технически - сделано Извеняюсь за выражение, но тут пздц как криво и через жопу написано )
Ни единой проверки. (ни сокет не проверен на валидность, ни коннект)
Оформление кода - ужас.

Но главное: Кто будет считывать ответ сервака и анализировать ответ на предмет кодов ошибок.?

Вообще возьми любой снифер (тотже CommView ) и посмотри что передается по сети и что отвечает сервак(если лень делать считывание)

Также после посылки тела письма ставится CRLF[точка]CRLF
и потом желательно послать команда прощания с серваком.
Проверки я специально вырезал, т.к. это лишний код в моем вопросе. В исходнике все проверки ответов и статусов на месте.
О снифере я как-то не думал...

Цитата:
Если ты не уверен в чем то, то лучше не пиши этого вообще и не сбивай людей с толку. Потому что выдумывать у тебя получается плоховато. Или пиши это в болталке, там модер по строже и быстрее потрёт это.
Значит я неправильно понял данную команду.

Цитата:
Письма без авторизации уходят - это всеголишь настройки smtp сервака. Ты для теста делай через яндекс или mail.ru или любой другой нормальный сервис и там ты сразу увидиш что без авторизации ничто никуда не уйдет.
Если юзаеш small http server для smtp то там есть галочка - разрешить/запретить анонимную отправку почти.
Также и в других может быть подобная опция
А вот за это спасибо огромное!
 
Ответить с цитированием

  #7  
Старый 23.11.2009, 15:44
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

2 s0l_ir0n
Цитата:
Цитата:
Если ты не уверен в чем то, то лучше не пиши этого вообще и не сбивай людей с толку. Потому что выдумывать у тебя получается плоховато. Или пиши это в болталке, там модер по строже и быстрее потрёт это.
Значит я неправильно понял данную команду.
Ты правильно понял для чего этот код, а вот он незнал для чего он и решил придумать
 
Ответить с цитированием

  #8  
Старый 23.11.2009, 15:59
МongBa†
Познающий
Регистрация: 12.05.2009
Сообщений: 45
Провел на форуме:
255342

Репутация: 28
Отправить сообщение для МongBa† с помощью ICQ
По умолчанию

Вот кстати проверки необходимы, писал многопоточный СМТП брут, зачастую когда сервер чехлил и не успевал выдать подтверждение 334 на то что принял логин - брут сразу пихал пароль и после этого либо чехлеж до таймаута, либо неверные логин и пароль..

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

  #9  
Старый 23.11.2009, 16:05
altblitz
Постоянный
Регистрация: 05.06.2009
Сообщений: 706
Провел на форуме:
2764047

Репутация: 759


Отправить сообщение для altblitz с помощью ICQ
По умолчанию

Цитата:
Сообщение от slesh  
Извеняюсь за выражение, но тут пздц как криво и через жопу написано )
Ни единой проверки. (ни сокет не проверен на валидность, ни коннект)
еще раз повторю - технически ТС написал прогу без ошибок, прав абсолютно на 100%.

дело тут в другом, в принимающей стороне - pop3 севреры гугл, майл.ру откидывают мейл с приватных SMTP серверов.
давно известная шняга ;//
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
письмо по SMTP из консоли. Delphi. ErrorNeo С/С++, C#, Delphi, .NET, Asm 9 05.08.2009 21:10
Процессоры в исполнении Socket AM3 без кэша третьего уровня выйдут к сентябрю KentPol Новости мира "железа" 1 02.04.2009 15:11
С RD890 чипы под Socket AM3 будут разгоняться ещё лучше! Shisha Новости мира "железа" 1 30.12.2008 19:06
Забанили smtp. debil Болталка 1 21.05.2006 19:42
SMTP fingerprint с использованием ID тэгов k00p3r Чужие Статьи 0 08.06.2005 15:10



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


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




ANTICHAT.XYZ