Не получается подсоединиться к rambler'у по Socks5 TOR к SMTP-порту!!!

Тема в разделе "WASM.NETWORKS", создана пользователем Meatcoins, 28 окт 2008.

  1. Meatcoins

    Meatcoins New Member

    Публикаций:
    0
    Регистрация:
    19 сен 2007
    Сообщения:
    178
    Вот собственно простенькая функция вообще без всяких "наворотов", которая пытается подсоединиться к rambler'у по Socks5 TOR к SMTP-порту и послать hello www.rambler.ru!

    Код (Text):
    1. CrLf equ 0Dh,0Ah
    2.  
    3. PROXY_PORT equ 9050
    4. PROXY_ADDR equ "127.0.0.1"
    5.  
    6. SITE equ "www.rambler.ru"
    7.  
    8. CONNECT_TO_PORT equ 25
    9.  
    10. url db SITE,0h
    11.  
    12. BUFFER_SIZE equ 50000h
    13. RECV_SIZE equ 100h
    14. DELAY equ 500h
    15. myconnect PROTO :DWORD,:DWORD
    16.  
    17. DNS_ERROR equ 465h
    18.  
    19.  
    20.  
    21.  
    22.  
    23.  
    24.  
    25.  
    26.  
    27. myconnect proc hWnd,hMemo
    28. LOCAL s:SOCKET
    29. LOCAL memheap:DWORD
    30. LOCAL procheap:DWORD
    31. LOCAL sin:SOCKADDR_IN
    32. LOCAL handle:DWORD
    33. LOCAL bytes:DWORD
    34. LOCAL membuffer:DWORD
    35. LOCAL result:DWORD
    36. LOCAL str_len:DWORD
    37.  
    38.  
    39. invoke GetProcessHeap
    40. mov procheap,eax
    41. ;invoke HeapAlloc,eax,HEAP_ZERO_MEMORY,BUFFER_SIZE
    42. invoke VirtualAlloc,0h,BUFFER_SIZE,MEM_COMMIT,PAGE_READWRITE   
    43. mov memheap,eax
    44. invoke HeapAlloc,procheap,HEAP_ZERO_MEMORY,4000h
    45. mov membuffer,eax
    46.  
    47.  
    48.  
    49.  
    50. invoke WSAStartup,101h,offset wsadata
    51. invoke socket,AF_INET,SOCK_STREAM,0h
    52. mov s,eax
    53.  
    54. mov eax,memheap
    55.  
    56. comment @
    57. invoke gethostbyname,offset url
    58. .if eax==0h
    59. mov result,DNS_ERROR
    60. .data
    61. dns_error db "DNS Error!!!",0h
    62. .code
    63. invoke SendMessage,hMemo,WM_SETTEXT,sizeof dns_error,offset dns_error
    64. jmp endy
    65. .endif
    66. assume eax:ptr HOSTENT
    67. mov eax,[eax].h_addr
    68. assume eax:nothing
    69. mov eax,[eax]
    70. mov eax,[eax]
    71. @
    72.  
    73. .data
    74. proxy_addr db PROXY_ADDR,0h
    75. .code
    76. invoke inet_addr,offset proxy_addr
    77.  
    78. mov sin.sin_addr.s_addr,eax
    79. invoke htons,PROXY_PORT
    80. mov sin.sin_port,ax
    81. mov sin.sin_family,AF_INET
    82.  
    83.  
    84.  
    85. invoke connect,s,addr sin,sizeof(sockaddr_in)
    86. ;xor eax,eax
    87. .if eax==0h
    88.  
    89.  
    90.  
    91.  
    92. .data
    93. proxy_connect db 5h,1h,0h,0h
    94. .code
    95. invoke send,s,offset proxy_connect,3h,0h
    96. invoke recv,s,memheap,2h,0h
    97.  
    98. .data
    99. site db SITE,0h
    100. proxy_command db 5h,1h,0h,3h,sizeof site-1h,SITE,0h,CONNECT_TO_PORT
    101. .code
    102. invoke send,s,offset proxy_command,sizeof proxy_command,0h
    103. invoke recv,s,memheap,10,0h
    104.  
    105.  
    106.  
    107.  
    108. .data
    109. helo_mes db "HELO ",SITE,CrLf,0h
    110. .code
    111.  
    112.  
    113.  
    114.  
    115.  
    116. invoke send,s,offset helo_mes,sizeof helo_mes-1h,0h
    117. invoke recv,s,memheap,100h,0h
    118.  
    119.  
    120.  
    121.  
    122.  
    123.  
    124. toto:
    125. invoke closesocket,s
    126. invoke WSACleanup
    127.  
    128.  
    129. ;invoke lstrlen,memheap
    130. mov eax,str_len
    131. invoke SendMessage,hMemo,WM_SETTEXT,eax,memheap
    132.  
    133.  
    134.  
    135.  
    136. .endif
    137. invoke HeapFree,procheap,0h,membuffer
    138. ;invoke HeapFree,procheap,0h,memheap
    139. invoke VirtualFree,memheap,BUFFER_SIZE,MEM_DECOMMIT
    140.  
    141.  
    142.  
    143.  
    144. endy:
    145.  
    146. mov eax,result
    147. ret
    148. myconnect endp
    Команда для TOR - открыть соединение:
    Код (Text):
    1. .data
    2. proxy_connect db 5h,1h,0h,0h
    3. .code
    4. invoke send,s,offset proxy_connect,3h,0h
    5. invoke recv,s,memheap,2h,0h
    Команда для TOR - соединиться с SITE (www.rambler.ru) и установить соединение с CONNECT_TO_PORT (25 - SMTP):
    Код (Text):
    1. .data
    2. site db SITE,0h
    3. proxy_command db 5h,1h,0h,3h,sizeof site-1h,SITE,0h,CONNECT_TO_PORT
    4. .code
    5. invoke send,s,offset proxy_command,sizeof proxy_command,0h
    6. invoke recv,s,memheap,10,0h
    Вот тут-то и происходит ошибка recv возвращает в memheap 5h,1h,0h,1h, а должно быть 5h,0h,0h,1h.
    А почему непонятно! Почему, например, из Англии не удаётся подключиться к 25-му порту rambler'а?

    Кстати, Socks5 для HTTP (80) работает:
    Код (Text):
    1. CrLf equ 0Dh,0Ah
    2.  
    3. PROXY_PORT equ 9050
    4. PROXY_ADDR equ "127.0.0.1"
    5.  
    6. ;SITE equ "www.rambler.ru"
    7. SITE equ "www.cmyip.com"
    8. CONNECT_TO_PORT equ 80
    9.  
    10. url db SITE,0h
    11.  
    12. BUFFER_SIZE equ 50000h
    13. RECV_SIZE equ 100h
    14. DELAY equ 500h
    15. myconnect PROTO :DWORD,:DWORD
    16.  
    17. DNS_ERROR equ 465h
    18.  
    19.  
    20.  
    21.  
    22.  
    23. myconnect proc hWnd,hMemo
    24. LOCAL s:SOCKET
    25. LOCAL memheap:DWORD
    26. LOCAL procheap:DWORD
    27. LOCAL sin:SOCKADDR_IN
    28. LOCAL handle:DWORD
    29. LOCAL bytes:DWORD
    30. LOCAL membuffer:DWORD
    31. LOCAL result:DWORD
    32. LOCAL str_len:DWORD
    33.  
    34.  
    35. invoke GetProcessHeap
    36. mov procheap,eax
    37. ;invoke HeapAlloc,eax,HEAP_ZERO_MEMORY,BUFFER_SIZE
    38. invoke VirtualAlloc,0h,BUFFER_SIZE,MEM_COMMIT,PAGE_READWRITE   
    39. mov memheap,eax
    40. invoke HeapAlloc,procheap,HEAP_ZERO_MEMORY,4000h
    41. mov membuffer,eax
    42.  
    43.  
    44.  
    45.  
    46. invoke WSAStartup,101h,offset wsadata
    47. invoke socket,AF_INET,SOCK_STREAM,0h
    48. mov s,eax
    49.  
    50. mov eax,memheap
    51.  
    52. comment @
    53. invoke gethostbyname,offset url
    54. .if eax==0h
    55. mov result,DNS_ERROR
    56. .data
    57. dns_error db "DNS Error!!!",0h
    58. .code
    59. invoke SendMessage,hMemo,WM_SETTEXT,sizeof dns_error,offset dns_error
    60. jmp endy
    61. .endif
    62. assume eax:ptr HOSTENT
    63. mov eax,[eax].h_addr
    64. assume eax:nothing
    65. mov eax,[eax]
    66. mov eax,[eax]
    67. @
    68.  
    69. .data
    70. proxy_addr db PROXY_ADDR,0h
    71. .code
    72. invoke inet_addr,offset proxy_addr
    73.  
    74. mov sin.sin_addr.s_addr,eax
    75. invoke htons,PROXY_PORT
    76. mov sin.sin_port,ax
    77. mov sin.sin_family,AF_INET
    78.  
    79.  
    80.  
    81. invoke connect,s,addr sin,sizeof(sockaddr_in)
    82. ;xor eax,eax
    83. .if eax==0h
    84.  
    85.  
    86.  
    87.  
    88. .data
    89. proxy_connect db 5h,1h,0h,0h
    90. .code
    91. invoke send,s,offset proxy_connect,3h,0h
    92. invoke recv,s,memheap,2h,0h
    93.  
    94. .data
    95. site db SITE,0h
    96. proxy_command db 5h,1h,0h,3h,sizeof site-1h,SITE,0h,CONNECT_TO_PORT
    97. .code
    98. invoke send,s,offset proxy_command,sizeof proxy_command,0h
    99. invoke recv,s,memheap,10,0h
    100.  
    101. ;jmp toto
    102.  
    103.  
    104.  
    105. .data
    106. send_data db "GET / HTTP/1.1",CrLf
    107. db "Host: ",SITE,CrLf
    108. db "Accept: */*",CrLf
    109. db "Accept-Language: ru",CrLf
    110. db "Accept-Encoding: deflate",CrLf
    111. db "User-Agent: Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 8.1; SV1; .NET CLR 2.4.98777)",CrLf
    112. db "Connection: keep-alive",CrLf,CrLf
    113.  
    114. db 0h
    115.  
    116. .code
    117.  
    118.  
    119.  
    120.  
    121.  
    122.  
    123.  
    124. invoke lstrlen,offset send_data
    125. invoke send,s,offset send_data,eax,0h
    126. ;invoke Sleep,DELAY
    127.  
    128. mov edx,memheap
    129. mov eax,1h
    130. .while eax!=0h
    131. push edx
    132. invoke recv,s,edx,RECV_SIZE,0h
    133. pop edx
    134. add edx,eax
    135. .endw
    136. sub edx,memheap
    137. mov str_len,edx
    138. jmp toto
    139.  
    140. invoke CreateFile,$CTA0("log.txt"),GENERIC_READ  or GENERIC_WRITE,0h,0h,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0h
    141. mov handle,eax
    142. invoke WriteFile,handle,memheap,str_len,addr bytes,0h
    143. invoke CloseHandle,handle
    144.  
    145. toto:
    146. invoke closesocket,s
    147. invoke WSACleanup
    148.  
    149.  
    150. ;invoke lstrlen,memheap
    151. mov eax,str_len
    152. invoke SendMessage,hMemo,WM_SETTEXT,eax,memheap
    153.  
    154.  
    155.  
    156.  
    157. .endif
    158. invoke HeapFree,procheap,0h,membuffer
    159. ;invoke HeapFree,procheap,0h,memheap
    160. invoke VirtualFree,memheap,BUFFER_SIZE,MEM_DECOMMIT
    161.  
    162.  
    163.  
    164.  
    165. endy:
    166.  
    167. mov eax,result
    168. ret
    169. myconnect endp
     
  2. Meatcoins

    Meatcoins New Member

    Публикаций:
    0
    Регистрация:
    19 сен 2007
    Сообщения:
    178
    Что-то очень странное происходит!
    Сканирую порты www.rambler.ru, www.yandex.ru и www.google.com - везде 25-й порт открыт! Но через TOR Socks5 не соединяется!!!
    Случайно попробывал соединиться с www.mail.rambler.ru - получил ответ:
    220 mail.rambler.ru ESMTP ready
    Что за фигня? Получается, что не все SMTP-сервера отвечают? Или они как-то анализируют IP из какой страны и тем, кто не из России не отвечают?
     
  3. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    На всех exit нодах ТОРа блокируются соединения на 25 порт. Чтобы не спамили.
     
  4. Meatcoins

    Meatcoins New Member

    Публикаций:
    0
    Регистрация:
    19 сен 2007
    Сообщения:
    178
    Блин! Это что сам TOR блокирует такие соединения?
    А у меня ведь только что получалось соединиться с www.mail.rambler.ru по SMTP!
    220 mail.rambler.ru ESMTP ready
    А на сколько это достоверно?
     
  5. Meatcoins

    Meatcoins New Member

    Публикаций:
    0
    Регистрация:
    19 сен 2007
    Сообщения:
    178
    K10
    А ты откуда это знаешь? Уже пытался?

    Что-то пока у меня не прёт...
    Вот что отвечает www.mail.rambler.ru:
    Код (Text):
    1. 250 mail.rambler.ru
    2. SMTP ready
    3. 530 5.7.1 Authentication required
    4. 500 5.5.1 Invalid command
    5. 500 5.5.1 Invalid command
    6. 500 5.5.1 Invalid command
    7. 221 2.0.0 Bye
    Может быть это действительно так?
    А что тогда делать?
    Искать Socks5 proxy-сервера в Google и пытаться через них соединиться с 25-м портом SMTP-сервера?


    Хотя не... не может быть, чтоб это было так! Я скачивал почтовую программку которая шлёт через Socks5 письма в частности через TOR, но правда с аутентификацией, и действительно шлёт, а я хочу через TOR Socks5, но без аутентификации!
    С www.mail.rambler.ru что-то не получается - видимо, он аутентификацию просит, может быть удасться другой SMTP-сервер найти...
     
  6. Selah

    Selah New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2007
    Сообщения:
    258
  7. Meatcoins

    Meatcoins New Member

    Публикаций:
    0
    Регистрация:
    19 сен 2007
    Сообщения:
    178
    Блин!
    Даже без Proxy не работает!!!
    Шлю SYN на www.rambler.ru - молчит!
    Шлю SYN на www.yandex.ru - молчит!
    Шлю SYN на www.mail.ru - молчит!
    Шлю SYN на www.mail.yandex.ru - молчит!
    Шлю SYN на www.mail.rambler.ru - просит аутентификацию!
    Код (Text):
    1. 250 mail.rambler.ru
    2. SMTP ready
    3. 530 5.7.1 Authentication required
    4. 500 5.5.1 Invalid command
    5. 500 5.5.1 Invalid command
    6. 500 5.5.1 Invalid command
    7. 500 5.5.1 Invalid command
    Короче, пока вывод такой:
    Раньше я спокойно слал почти анонимки (произвольный отправитель, но мой IP) через все вышеперечисленные...
    А теперь решил сделать полную анонимность (произвольный отправитель и случайный IP), но:
    TOR этому не препятствует никак! Дело всё в rambler, в yandex и mail - они позакрывали свои SMTP-порты!
    Вот пока такой вывод!
    Может быть удасться найти другие SMTP-сервера...
     
  8. satrau

    satrau Александр

    Публикаций:
    0
    Регистрация:
    5 янв 2008
    Сообщения:
    229
    они просто поменяли номера портов.
     
  9. Meatcoins

    Meatcoins New Member

    Публикаций:
    0
    Регистрация:
    19 сен 2007
    Сообщения:
    178
    Номера портов поменяли?
    То есть можно попробывать посканить порты своими SYN пакетами на предмет ответа в соответствии с протоколом SMTP?
    Ну, тоже идея...
    Попробую как-нибудь...
     
  10. satrau

    satrau Александр

    Публикаций:
    0
    Регистрация:
    5 янв 2008
    Сообщения:
    229
    зачем сканить. можно просто зайти в раздел про настройку почты, на самом рамблере.