Привет! Иногда для целей тестирования или обхода блокировок необходимо зайти на сайт под ip адресом определённой страны используя прокси-сервер. Сегодня расскажу об одном из самых распространённых способов поиска открытых для использования прокси-серверов. Раньше на сайте выкладывал списки http/socks серверов, но честно говоря совсем нет времени заниматься и поддерживать актуальность этих разделов. Можно конечно не заморачиваться, а спарсить с тематических сайтов уже готовые кем-то выложенные списки, но лёгких путей не ищем, а немного повеселимся поставив другую задачу: нужен открытый прокси сервер находящийся в определённым городе. Допустим Бостон (Boston).

Ip адреса геолокации по городам и странам можно например взять с этого сайта. Для удобства всё буду деать в ОС семейства пингвиньих (Kali Linux). Качаем бесплатную базу ip городов в формате CSV.Распаковываем. Открываем в терминале.

Теперь поищем есть ли в этой базе интересующие диапазоны ip адресов города Boston. Для этого выполним запрос:

CITY=Boston; cat dbip-city.csv | grep -E -i "$CITY"

Терминал начнёт выдачу:

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

CITY=Boston;cat dbip-city.csv | grep -E -i "$CITY" | sed 's/,/-/' | cut -d ',' -f 1 | sed 's/"//' | sed 's/"//' > RangeIp_$CITY.txt

Внимательный читатель заметит что помимо запуливания данных в txt так же произвёл форматирование и редактирование данных (убрал всё лишнее, вместо ‘,’ между ip поставил ‘-‘) для дальнейшей работы в masscan.

Если все описанные выше действия по добыче нужного диапазона ip адресов определённого города кажутся вам сложными, то есть другой путь. Заходите на сайт и там по запросу города идёт выдача диапазонов ip. Данным сервисом не пользуюсь и не разбирался откуда берутся данные в поисковой выдаче.

Ок, так или иначе диапазон ip адресов у нас есть. Доступ к прокси-серверу осуществляется по определённому порту. Искомый открытый порт может лежать в диапазоне от 0 до 65535. Нас не интересует промышленная добыча проксей и для того чтобы шерстить весь диапазон ip по всему диапазону портов нужен хороший дед. Один из самых популярных портов где живёт http прокси (про socks не говорю) это 3128. Для того чтобы улов был жирнее добавим до кучи к нему ещё 8080.

Masscan в Kali Linux уже предустановлен. Вроде бы есть для Win, не знаю. Есть KPortScan 3.0, но он работает по одному порту. Дальнейший шаг — это сканирование портов. На свой страх и риск. Так такового запрета в законодательстве на сканирование портов нет, но его могут расценивать как разведку при дальнейшей попытке взлома. По мне форензика и противодействие гораздо интересней деструктивных действий по взлому. Порты сканируют не только для того чтобы узнать какие службы на них запущены чтобы натравить на них сканеры, а потом фреймворки аля metasploit с аналогами ) Отвлёкся.

В терминале:

masscan -p3128,8080 -iL /home/kali/Downloads/RangeIp_Boston.txt --rate=1000 -oX myscan.xml

Указываем программе какие порты интересуют, откуда брать данные, колличество отправляемых пакетов в секунду, данные сохранять в xml файл. По завершению в файле myscan.xml появится информация на каких ip открыты порты. Не брал полный диапазон ip по городу, а взял выборочно, пальцем в небо диапазоны из 159.* до 160.*.  81063 хостов. Колличество не большое, шанс найти работающий прокси невелик. 420 запись по которым дальше будем работать.

Необходимо привести (к примеру в excel) информацию к виду: ip:port. Формат для чека проксей. Чекеров на самом деле очень много. Из класики — ProxyFire Master Suite Professional. Инструмент заслуживает отдельной статьи. Вполне устраивает μProxy Tool. Загружаем список в программу, проверяем.  В итоге нашли два работающих прокси сервера, не анонимных и не элитки конечно, но тем не менее.

Заряжаем проксю в лису и проверяем. Для удобства чтобы каждый раз не лазить в настройки пользуюсь плагином FoxyProxy.

Цель достигнута. Если есть вопросы пишите в телегу.