HTTP Proxy. Анонимность в сети

HTTP Proxy. Анонимность в сети
просмотров: 9116231 июля 2011 года

Сейчас большинство веб-интерфейсов отображают IP-адрес, с которого Вы заходили в прошлый раз. Система WebMoney при авторизации в системе, в случае если Ваш текущий IP-адрес отличается от того, что был зарегистрирован в прошлый раз – начинает Вам трезвонить об этом.

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

Сегодня я публикую руководство по анонимности в сети для начинающих хакеров.

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

Итак. Начать стоит с того, что функции и поведение HTTP proxy похожи на сокс-прокси (спецы – не комментируйте! Эта статья – не пособие для писателей серверов, а для их читателей). Конечно, в реальности процессы, протекающие в недрах выбранного вами сервера, абсолютно отличны от того, что будет с сокс-сервером. Но вас это волновать должно только в случае необходимости использования небраузерных приложений. Но ведь большую часть времени вы шляетесь по Сети именно браузером (блин, противное слово). По тому самому протоколу HTTP.
Если говорить совсем обобщенно, то функция любого прокси (proxy – полномочие, доверенность) – принять пакет от клиента и отдать его дальше. И в обратную сторону тоже, конечно. Если сокс-серверы полностью подменяют заголовки пакета, то ХТТП просто форвардит пришедший пакет на основании дополнительной информации, включенной в хидер. И дописывает(изменяет) собственные
поля. Но... некоторые прокси (к счастью, таких много), добавляя свое, оригинальные значения затирают. И тем двигают вас к анонимности.

Все, что можно определить о том, что пришло к конечному сайту в пакете, хранится в заголовке пакета. Пример дешифровки:

HTTP_REFERER =
HTTP_CONNECTION = Keep-Alive
HTTP_USER_AGENT = Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
HTTP_ACCEPT = image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, */*
HTTP_ACCEPT_ENCODING = gzip, deflate
HTTP_ACCEPT_LANGUAGE = en-us
HTTP_ACCEPT_CHARSET =
REMOTE_HOST = xxx.xxx.xxx.xxx
REMOTE_ADDR = xxx.xxx.xxx.xxx
SERVER_NAME = yyy.yyy.yyy.yyy
REMOTE_PORT =
REQUEST_METHOD = GET
QUERY_STRING =
CONTENT_LENGTH = 0
HTTP_FROM =
HTTP_FORWARDED =
HTTP_X_FORWARDED_FOR =
HTTP_VIA =
HTTP_PROXY_CONNECTION =
HTTP_CACHE_CONTROL =
HTTP_PRAGMA =

(Здесь xxx – мой адрес, yyy – адрес сервера-получателя)

Это случай для похода к серверу без прокси вообще. Некоторые заголовки для анонимности не важны, потому ниже я их указывать
не буду. Главными являются HTTP_CONNECTION, HTTP_ACCEPT_LANGUAGE, REMOTE_HOST/REMOTE_ADDR, HTTP_FROM, HTTP_FORWARDED, HTTP_X_FORWARDED_FOR, HTTP_VIA, HTTP_PROXY_CONNECTION, HTTP_CACHE_CONTROL, HTTP_PRAGMA
(HTTP_ACCEPT_LANGUAGE не влияет на анонимность, но подумайте сами – нормально ли "стопроцентному американцу", зашедшему со
"стопроцентного американского адреса", иметь в этом поле короткое, но многозначительное "ru")

Сначала посмотрим, что получится в пакете после неанонимного (т.н. прозрачного) прокси:

HTTP_CONNECTION = keep-alive
REMOTE_HOST = 62.42.63.21
REMOTE_ADDR = 62.42.63.21
SERVER_NAME = yyy.yyy.yyy.yyy
HTTP_FROM =
HTTP_FORWARDED =
HTTP_X_FORWARDED_FOR = xxx.xxx.xxx.xxx
HTTP_VIA = 1.1 VA-C760-B (NetCache NetApp/5.2.1R1D2)
HTTP_PROXY_CONNECTION =
HTTP_CACHE_CONTROL =
HTTP_PRAGMA = no-cache

Виден главный жук. HTTP_VIA, и в кучу еще HTTP_X_FORWARDED_FOR
Первый доказывает, что вы не просто так пришли, а второй – откуда пришли.
Вариантами могут быть заполненные поля HTTP_FROM, HTTP_FORWARDED, HTTP_PROXY_CONNECTION ( в любой комбинации, разные сервера
заполняют разные поля).

А вот это – почти анонимный пакет, который, однако, внимательному взгляду скажет, что что-то нечисто (кстати, этот сервер любимым многими all-nettools.com не определяется, как прокси)

HTTP_CONNECTION =
Уже странно – для непрокси соединения сдесь должно быть Keep Alive

REMOTE_HOST = 208.30.222.143
REMOTE_ADDR = 208.30.222.143
SERVER_NAME = yyy.yyy.yyy.yyy
HTTP_FROM =
HTTP_FORWARDED =
HTTP_X_FORWARDED_FOR =
HTTP_VIA =
HTTP_PROXY_CONNECTION =
HTTP_CACHE_CONTROL = max-stale=0
Тоже характерный "отпечаток" прокси
HTTP_PRAGMA = no-cache

И еще один
Остальные поля, как видите, девственно чисты. Вы анонимны для большинства админов.

А это настоящий "анонимный" прокси.

HTTP_CONNECTION = Keep-Alive
REMOTE_HOST = 212.74.zzz.zzz
REMOTE_ADDR = 212.74.zzz.zzz
SERVER_NAME = yyy.yyy.yyy.yyy
HTTP_FROM =
HTTP_FORWARDED =
HTTP_X_FORWARDED_FOR =
HTTP_VIA =
HTTP_PROXY_CONNECTION =
HTTP_CACHE_CONTROL =
HTTP_PRAGMA = no-cache

Единственный намек на прокси – это ПРАГМА. Мне еще не встречались сервера (кроме специально заточенных под это дело, которые
известные участники продают на форуме, и поверьте, это стоит тех денег, что они просят). Но это не очень страшно, поскольку
многие официальные программы, стоящие на вашем компьютере (большинство "ускорителей Инета", в реальности – локальных проксей,
кэширующих ваш траффик) тоже это поле добавляют.

Итак, вы нашли подходящий прокси-сервер, а способов для этого много, от поисков в Инете публичных списков (самое ненадежный
вариант – вы не первый, кто этот адрес увидел и использует, потому и у биллинга он может быть уже занесен в черный список, да и админа наверняка уже достали ходящие через него гости. Возможно, что ваши логи уже напрямую идут в компетентные органы), искать самому, используя один из специально заточенных сканнеров портов, к примеру самый известный – Proxy Hunter (минус – массированный поиск по последовательным адресам на предмет ответа и проверки поведения просто убьет ваш канал, и на долго, если вы решили просканировать половину всего Инета. Да и админы сканируемых вами сетей могут пожаловаться вашему провайдеру), или покупать. Покупать проверенные прокси, не жалея денег. Как сказано у Evidence Eliminator – "лучше 10 секунд смотреть на баннер,чем 10 лет сидеть в тюрьме"

И немного информации вдогонку (но я думаю, что уж это вы точно знаете):
обычно прокси-сервера (не думайте, что они существуют для вашей радости, это просто кривые ручки админов) висят на портах 80, 8080, 3128, 8000. Это не значит, что на других портах их быть не может, у меня самого под сотню записей экзотики, типа
спараллеленного с ФТП на 21-м, всяких 9999 и 666

Об именах проски-серверов.
Не забывайте, найдя прокси-сервер, и не получив на его айпишник ресолва имени (дп и получив тоже), сделать whois и посмотреть, кому принадлежит сеть. Ведь, хоть домен vasyapupkin.net и принадлежит к американской (как большинство считают) зоне, но реально он зарегистрирован где-нибудь в Москве. Это будет странно выглядеть для админа, решившего поподробнее узнать о клиенте, только что купившем по карточке Каддиллак
Кстати, в случае, если имя домена успешно определилось (к примеру – 193.85.233.106 – www.mageo.com), стоит также посмотреть на то, чем оно начинается. Если вы видите в левой части имени слова Proxy, dns, ns, bess, mail, web, pop, smtp и прочие, явно указывающие на то, что сервер это совсем не для того запущен, для чего вы его хотите использовать , то и не стоит его использовать. На конечном сервере тоже может умный админ попасться. А вот 200.34.247.181 – 200-34-247-181.caarem.org.mx – явный диалап. В таком случае никто на вас не подумает.

Собственно, все. Наверняка что-то забыл рассказать, но всегда можно попросить дописать статью. Читайте и комментируйте.

P.S. Вспомнил еще про одно поле – HTTP_CACHE_INFO. Если есть в нем значение – тоже явный прокси.

 

Сайт, где есть рабочие прокси-листы: www.proxy-list.org

Самый полный список прокси что я нашел в формате TXT (ежедневно обновляемый): www.nagon.net/proxygen.php?proxy=txt

Сайты для открытия сайта с другой страны: http://proxify.net и http://anonymouse.org

Комментарии (1)

Олег (10 августа 2011 года, 11:08:51)

HTTP_CACHE_INFO - любое значение?

Что скажем?