Вход для пользователя      Регистрация пользователя


 
ОтветитьСоздать новую темуСоздать новое голосование

Каскадный · [ Стандартный ] · Линейный

> Массовое сканирование и абузы

Kaimi Ответить!
post 9.11.2017, 16:29
Отправлено #1


гигабайт
****

Группа: Специалист
Сообщений: 110
Регистрация: 05.10.2014
Пользователь №: 57 827
Деятельность: другое

Репутация: 76
( 8% - хорошо )


В контексте работы с доступами, да и с точки зрения массового сканирования сети Интернет в исследовательских целях, часто возникает проблема получения "абуз" в виду нарушения ToS (Terms of Service) хостингов. Предлагаю разобрать, почему приходят "абузы", какие бывают, как с ними бороться и как минимизировать потери.

Итак, типичный пользователь заказывает VDS/VPS/Dedicated Server/... с какой-либо ОС, устанавливает туда masscan, zmap или какое-нибудь старье вроде scanrand, unicornscan. После запуска сканирования в скором времени (от нескольких часов до нескольких дней) приходит письмо от тех. поддержки, либо учетная запись/арендованный сервер блокируются.

Начнем с причин. Большинство жалоб являются следствием быстрого сканирования подсетей какого-либо крупного владельца. Чаще всего, как показывает практика, Hetzner и некоторых .edu-учреждений. Скорость сканирования действительно может сильно влиять на полезное время функционирования сканирующей машины, но чудес ждать не стоит, да и обычно стоит цель просканировать как можно быстрее. Приходящие жалобы являются автоматизированными, т.е. в исключительно редких случаях жалобу составляет реальный человек, обычно сетевое оборудование просто видит аномальную с его точки зрения активность, получает информацию об IP-адресе из WHOIS, оттуда же берется адрес, куда слать "абузы", далее формируется e-mail и отправляется по указанному адресу.

user posted image

Ниже приведены примеры "абуз" от Hetzner, .edu-учреждений, Российской Netis-Telecom и нескольких других сетей:
user posted image

user posted image

user posted image

user posted image

user posted image


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

Что можно сделать, если вам пришло письмо от тех. поддержки, а продлить срок работы необходимо? Естественно, вступить в диалог. В большинстве случаев подойдут шаблонные ответы, например:
Спойлер

Спойлер

Это позволит выиграть немного времени, чтобы забрать данные или завершить сканирование в некоторых случаях. Можно растягивать и отвечать с большими интервалами, но так или иначе хост будет заблокирован. Похожие ответы можно также использовать, чтобы добиться разблокировки на время и забрать результаты сканирования.

Что можно сделать чтобы избежать блокировок или максимально растянуть их во времени? Во-первых, выбор хостера. Ниже приведена небольшая сводная таблица по стоимости и блокировкам:
Код

Aruba Cloud       - www.arubacloud.com   - 1€/мес   - 2-7 дней    - блокировка аккаунта без писем от саппорта
Digital Ocean     - www.digitalocean.com  - 5$/мес   - 1-2 дня      - приходят письма от саппорта, можно выиграть немного времени диалогами
Servers.com      - www.servers.com         - 5€/мес   - 7+ дней     - письма не приходили, блокировки не было
Microsoft Azure  - azure.microsoft.com     - free       - 1-30+ дней -  письма приходят, но есть нюансы
EstNOC             - www.estnoc.ee             - 5$/мес  - 2-5 дней     - приходят письма от саппорта

Для сканирования использовались самые дешевые VPS, на них запускался masscan со следующими параметрами:
Код

masscan 0.0.0.0/0 -p3389 --max-rate 100000 -oL scan.txt --exclude 255.255.255.255

Уточню детали по поводу бесплатности Microsoft Azure. Многие знают, что существует программа Microsoft BizSpark (https://www.microsoft.com/ru-ru/ms-start), в рамках нее предоставляется доступ к куче лицензионного ПО и 150$ в месяц на Microsoft Azure в течение года. Податься на нее довольно легко, достаточно сделать лендинг, описывающий ваш стартап (можно скопировать чей-нибудь) и отправить заявку. Также есть вариант взять тестовый месяц https://azure.microsoft.com/ru-ru/free/, но я не пробовал.

Вернемся к избеганию блокировок. Также могут влиять настройки сканирования, точнее они однозначно влияют, но зависимость хитрая. Разберу на примере того же Azure: в качестве теста было сделано 5 аккаунтов, на каждом по 2 виртуальные машины. При неагрессивном сканировании (--max-rate 4000, на один порт, плюс перерывы в сканировании в районе суток, т.е. непрерывное сканирование велось буквально несколько дней, потом делался перерыв) виртуальные машины прожили в районе месяца, никаких претензий не приходило. Далее была увеличена скорость (--max-rate 8000, 4-6 портов, без перерывов) и в пределах нескольких дней пришло письмо:

user posted image

Но это отвалился один аккаунт, виртуальные машины на других продолжают без проблем сканировать, никаких писем не приходит. Вообще скорость незначительная на фоне тестовой скорости, которая упоминалась выше, но такая вот ситуация. Возможно стоит модифицировать логику работы masscan с диапазонами или просто аккуратно их делить перед выгрузкой на сканирующие хосты, чтобы с одной машины проходились как можно меньшие диапазоны в рамках одной сети. Ниже приведу скрипт на Python, который разбивает диапазоны в CIDR нотации (это когда 10.11.12.13/24):
Код

def get_ip_ranges(ip_list, N):
   import ipaddress
   get_ip_range_size = lambda ip: 2 ** (32 - int(ip.strip().split('/')[1]))

   dic = {}
   total_size = 0
   for line in ip_list.strip().split('\n'):
       dic[line] = get_ip_range_size(line)
       total_size += dic[line]

   n_size, r = divmod(total_size, N)
   n_sizes = []
   for i in range(N):
       app = 0
       if r > 0:
           app = 1
           r -= 1
       n_sizes.append(n_size + app)

   targets = {}
   parts = []

   for i,sz in enumerate(n_sizes):
       loc_size = sz
       targets[i] = []
       while loc_size > 0:
           if dic.keys():
               key = list(dic.keys())[0]
               range_size = dic[key]
               if range_size <= loc_size:
                   loc_size -= range_size
                   targets[i].append((key,0,range_size))
                   del dic[key]
               else:
                   targets[i].append((key,0,loc_size))
                   del dic[key]
                   parts.append( (key,loc_size, range_size-loc_size) )
                   loc_size = 0
           else:
               key, start, end = parts.pop(0)
               if end <= loc_size:
                   loc_size -= end
                   targets[i].append((key,start,end))
               else:
                   targets[i].append((key,start,loc_size))
                   parts.append( (key,start+loc_size, end - loc_size) )
                   loc_size = 0
   result = []
   for k,v in targets.items():
       result.append([])
       for range_ip in v:
           ip_init = range_ip[0].split('/')[0]
           start = int(ipaddress.IPv4Address(ip_init)) + range_ip[1]
           end = start + range_ip[2] - 1
           result[-1].append('%s-%s'%(str(ipaddress.IPv4Address(start)),str(ipaddress.IPv4Address(end))))
   return result



ip_list = ''

with open('all.txt', 'r') as ifh:
   ip_list = ifh.read()

N = 5

ranges = get_ip_ranges(ip_list, N)

# print(ranges)
for proc in ranges:
   with open('include_' + str(N) + '.txt', 'w') as ofh:
       for ip in proc:
           ofh.write(ip + "\n")
       N = N - 1

Необходимо использовать Python3, N = 5 - количество частей, на которые делятся все диапазоны из файлы. В результате получаем N файлов с именами вида include_*.txt, которые можно загружать на хосты для сканирования.
Подведем итог по способам предотвращения жалоб и увеличения продолжительности жизни хостов: грамотный выбор хостера, не слишком высокие скорости сканирования, распределение сканирования больших подсетей одного владельца на несколько хостов.

Не забываем, что в идеале стоит выгружать результаты сканирования, например, каждый час на отдельный сервер, чтобы в случае потери не пришлось заново проводить сканирование всего диапазона, который сканировала машина. На уровне костылей это тривиально автоматизируется Bash-скриптом на десяток строк, менее тривиально - написать нормальный скрипт на каком-либо языке, а данные хранить в MongoDB, хотя можно и в MySQL или PostgreSQL, зависит от ваших амбиций по сканированию.

Вот и все? Не совсем, есть еще один вариант, который редко рассматривается и является затратным, но может для кого-нибудь окажется целесообразным. Итак, можно еще попробовать для быстрого сканирования и возможности 100% не потерять результат, поступить следующим образом: приобретается свое оборудование, ставится в стойку, приобретается пул IP-адресов, приобретается доступ к какой-либо точке обмена трафиком (IX), далее вам потребуется у кого-то взять "доступ" в остальной интернет (внешний канал). Ваша подсеть является "тупиковой AS", вы начинаете сканировать "весь интернет". Что произойдет дальше? Для начала вам, как владельцу начнут приходить жалобы, вы их можете игнорировать или формировать шаблонные ответы, что меры приняты. Это поможет вам на условный месяц, к этому времени уже могут появиться запросы от людей, которым можно некоторое время объяснять, что решаете проблему, приняты меры и т.п.
Далее возможны несколько вариантов:
1. Ваша подсеть молча блокируется тем же Hetzner и все;
2. Абузы начинают приходить вашему аплинку (тому, кто вам предоставляет доступ, например, с MSX-IX в глобальную сеть).

Любой аплинк не заинтересован, чтобы его диапазоны попали в черный список крупных сетей, поэтому уже с его стороны будет обращение в ваш адрес, где можно будет потянуть время, но в конечном счете вам откажут в обслуживании (при условии, что за вас кто-то серьезно взялся). Можно повертеться, внести изменения в так называемый routing object, взять другой аплинк, но выбор не велик, точнее велик, но не настолько. Также происходит обмен информацией и вы запросто можете попасть в черный список и трафик с вашего диапазона порежут с помощью ACL, что даже в пределах IX никуда пойти не удастся. Сроки? Сроки могут быть разные, зависит от того, насколько серьезно кто-то возьмется за ваши сканирования.
Кто-то спросит, а зачем это все, ведь есть "абузоустойчивые" хостеры. Да, есть, но в некоторых ситуациях удобнее и дешевле опираться на собственное железо, чем платить кому-то крупную сумму за аренду и не иметь контроля над оборудованием.

Подводя итог, можно сказать, что достаточное быстрое и продуктивное сканирование возможно организовать:
1. С использованием множества дешевых VPS, которые потребуют автоматизации создания инстансов, выгрузки/загрузки информации и агрегации всего на стороннем сервере.
2. Одиночным сервером с действительно широким каналом и собственной IP-подсетью, что даст возможность точно знать, приходят ли "абузы", от кого, и позволит гибко на них реагировать, а также всегда будет возможность забрать результат работы.
3. По смыслу второй пункт, но обратиться к "абузоустойчивым" хостерам, вместо того, чтобы самостоятельно все организовывать.

Что выбрать? Решать вам.

© Kaimi, 2017, https://kaimi.io/


--------------------
https://kaimi.io/
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
Alexbur Ответить!
post 9.11.2017, 17:26
Отправлено #2


mail,mail;pass
*****

Группа: Пользователь
Сообщений: 259
Регистрация: 30.06.2016
Пользователь №: 70 283
Деятельность: seo

Репутация: 22
( 2% - хорошо )


интересно!
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
0men666 Ответить!
post 10.11.2017, 02:34
Отправлено #3


байт
*

Группа: Пользователь
Сообщений: 23
Регистрация: 09.09.2017
Из: Коршун
Пользователь №: 82 856
Деятельность: хакинг

Репутация: -7
( 9% - плохо )


Очень интересно, жаль что + не могу поставить( !
Спасибо за линк на прикольный ресурс! biggrin.gif
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
Ameth Ответить!
post 10.11.2017, 15:26
Отправлено #4


мегабайт
***

Группа: Пользователь
Сообщений: 67
Регистрация: 25.11.2016
Пользователь №: 74 274
Деятельность: другое

Репутация: 5
( 1% - хорошо )


Замечательная статья!
Если возможно дополнение, с использованием VPN и прокси, было бы вообще супер.
Благодарю.
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
alkotrash Ответить!
post 10.11.2017, 16:37
Отправлено #5


мегабайт
***

Группа: Пользователь
Сообщений: 63
Регистрация: 11.08.2012
Пользователь №: 45 332
Деятельность: другое

Репутация: 12
( 1% - хорошо )


Masscan при сканировании http оставляет свои headers, которые парсятся ханипотами и абуза летит автоматически, т.к в тех headers явно прописано "masscan/1.0 (https://github.com/robertdavidgraham/masscan)" . Достаточно при запуске указать --http-user-agent Mozilla/5.0 и количество абуз уменьшится в разы. Работа с vps в основном чревата банами не столько из-за абуз, сколько из-за вопросов хостера, что творится на серваке клиента, который шлет 100 к пакетов в секунду. Впринципе если у них не прописано в условиях договора, что сканирование запрещено, и оно не запрещено законодательно в стране хостера, можно прямо им объяснить, что вы не ддосите, а сканируете порты в научных целях, причем сканируете рандомизировано с включенной опцией --randomize-hosts и никому подсеть не повалите. Если адекватный хостер, должен прекратить иметь мозг. А если сверху накинете денег, чтобы мозг не колотил, вообще все прекрасно будет rofl.gif

Сообщение отредактировал alkotrash - 10.11.2017, 17:00


--------------------
Я с гильдии костыль-велосипеда,
И чтоб не видеть errors каждый раз,
Чтобы казалось, что одержана победа,
Я напишу..
except Exception:
pass
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
ddoserr Ответить!
post 10.11.2017, 17:49
Отправлено #6


эксабайт
*******

Группа: Seller
Сообщений: 637
Регистрация: 30.03.2009
Пользователь №: 19 578
Деятельность: кодинг

Репутация: 46
( 5% - хорошо )


Цитата(Ameth @ 10.11.2017, 15:26)
Замечательная статья!
Если возможно дополнение, с использованием VPN и прокси, было бы вообще супер.
Благодарю.

Masscan на windows работает через драйвер WinPcap. Он шлет пакеты в обход впн. Крайне проблематично завернуть трафик на впн, да и смысла особого нет. Какой смысл цедить пиво в поллитровую кружку через дырочку, размером с игольное ушко?
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
Kaimi Ответить!
post 10.11.2017, 18:08
Отправлено #7


гигабайт
****

Группа: Специалист
Сообщений: 110
Регистрация: 05.10.2014
Пользователь №: 57 827
Деятельность: другое

Репутация: 76
( 8% - хорошо )


Цитата
Работа с vps в основном чревата банами не столько из-за абуз, сколько из-за вопросов хостера, что творится на серваке клиента, который шлет 100 к пакетов в секунду. Впринципе если у них не прописано в условиях договора, что сканирование запрещено, и оно не запрещено законодательно в стране хостера, можно прямо им объяснить, что вы не ддосите, а сканируете порты в научных целях, причем сканируете рандомизировано с включенной опцией --randomize-hosts и никому подсеть не повалите. Если адекватный хостер, должен прекратить иметь мозг. А если сверху накинете денег, чтобы мозг не колотил, вообще все прекрасно буде

Не всех удается убедить по такой стратегии. Многие любят ссылаться на свой личный ToS, типа сканирование с наших мощностей запрещено, если им прямо такой ответ дать. С некоторыми действительно удается договориться.


--------------------
https://kaimi.io/
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
fnz Ответить!
post 10.11.2017, 18:19
Отправлено #8


RIPPER
****

Группа: КИДАЛА
Сообщений: 120
Регистрация: 06.10.2017
Пользователь №: 83 721
Деятельность: другое

Репутация: 10
( 1% - хорошо )


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


--------------------
Блек: https://forum.exploit.in/index.php?showtopic=137072

// С уважением,
// администрация
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
wolfus Ответить!
post 12.11.2017, 19:46
Отправлено #9


байт
*

Группа: Пользователь
Сообщений: 8
Регистрация: 29.03.2017
Пользователь №: 77 997
Деятельность: другое

Репутация: нет
( 0% )


Этот сервис
https://cheapwindowsvps.com
и
этот
https://www.bacloud.com/
Последний сразу саспендит с причиной SYN flood
тоже шлет довольно быстро абузы

Сообщение отредактировал wolfus - 12.11.2017, 19:52
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
SSDebit Ответить!
post 20.11.2017, 16:30
Отправлено #10


мегабайт
***

Группа: Пользователь
Сообщений: 54
Регистрация: 29.05.2017
Пользователь №: 79 736
Деятельность: кардинг

Репутация: нет
( 0% )


Отличная статья, развернутый анализ живучести хостов дешевеньких радует. to_become_senile.gif
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
ambrosi Ответить!
post 5.12.2017, 22:12
Отправлено #11


байт
*

Группа: Пользователь
Сообщений: 6
Регистрация: 13.11.2014
Пользователь №: 58 521
Деятельность: другое

Репутация: нет
( 0% )


Отличная работа проделана ,как раз нужна была информация по абузам , собирался там ставить масс-скан
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
world-as Ответить!
post 15.12.2017, 09:38
Отправлено #12


байт
*

Группа: Пользователь
Сообщений: 23
Регистрация: 15.06.2017
Пользователь №: 80 267
Деятельность: другое

Репутация: -7
( 9% - плохо )


Отличная статья!
ТСу спасибо!
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
iriya2015 Ответить!
post 18.12.2017, 11:11
Отправлено #13


килобайт
**

Группа: Пользователь
Сообщений: 29
Регистрация: 30.06.2016
Пользователь №: 70 258
Деятельность: кардинг

Репутация: нет
( 0% )


Свой голос я отдам за данный материал, отлично все расписал!
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
cookiechief Ответить!
post 18.12.2017, 17:34
Отправлено #14


гигабайт
****

Группа: Пользователь
Сообщений: 113
Регистрация: 19.06.2016
Пользователь №: 69 911
Деятельность: хакинг

Репутация: 7
( 1% - хорошо )


Тут про headers софта написали, ага есть такой тоже момент. Еще момент, можно составить свой список bad ip, bad hosts.
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
BQHOST Ответить!
post 3.01.2018, 18:15
Отправлено #15


петабайт
******

Группа: Seller
Сообщений: 596
Регистрация: 15.06.2015
Пользователь №: 62 038
Деятельность: хостинг

Репутация: 27
( 3% - хорошо )


Что касается включения своего собственного узла тут не все так прекрасно как кажется. Включишься ты например в AMS-IX либо крупнейший DE-CIX при этом включение ты автоматически вступаешь в организацию по борьбе с киберугрозами. Включение в узлы такого рода дает большое количество возможностей т.к. большое количество узлов для тебя являются локальными. Но тем не менее остальная часть интернета недоступна и для ее покрытия прийдется пользоваться транзитом и вот как раз на этом узле очень сложно найти оператора который будет закрывать глаза. С точки зрения финансовых затрат эта схема не дешевая да и ее рентабельность в последний год вызывает ряд вопросов.

А так в остальном все конкретно. За исключением того что сейчас очень активно пишут письма частные аналитики.


--------------------
https://forum.exploit.in/index.php?showtopic=90763 >> Абузные сервера/брут Jabber bqhost@exploit.im Icq 686686362
https://forum.exploit.in/index.php?showtopic=122940 >> ВПС И СЕРВЕРА ПОД РАССЫЛКИ | ВПС ПОД БРУТ
https://forum.exploit.in/index.php?showtopic=122160 >> Администрирование серверов и разработка ПО
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
wizd0t Ответить!
post 23.04.2018, 18:43
Отправлено #16


мегабайт
***

Группа: Пользователь
Сообщений: 74
Регистрация: 16.03.2018
Пользователь №: 86 240
Деятельность: кодинг

Репутация: 2
( 0% - хорошо )


Как они палят если --randomize-hosts по дефолту включен. Тс в натуре с юзер агентом лохонулся.
Разве что сам хостер палит нестандартную активность как у хецнера.
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
xAtticus Ответить!
post 26.04.2018, 14:43
Отправлено #17


байт
*

Группа: Пользователь
Сообщений: 9
Регистрация: 18.01.2018
Пользователь №: 84 906
Деятельность: другое

Репутация: нет
( 0% )


Может кто то пояснить - при сканировании портов отправляются http запросы? Я так понял что --http-user-agent меняет хедер только для http запросов. И в случае сканирования портов меняй хедер не меняй все равно БАН!
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
ddoserr Ответить!
post 27.04.2018, 14:51
Отправлено #18


эксабайт
*******

Группа: Seller
Сообщений: 637
Регистрация: 30.03.2009
Пользователь №: 19 578
Деятельность: кодинг

Репутация: 46
( 5% - хорошо )


Цитата(xAtticus @ 26.04.2018, 14:43)
Может кто то пояснить - при сканировании портов отправляются http запросы? Я так понял что --http-user-agent меняет хедер только для http запросов. И в случае сканирования портов меняй хедер не меняй все равно БАН!

При SYN сканировании портов - идет начальная негоциация TCP. Т.е. сканер отправляет SYN пакет, если порт на целевом хосте открыт, с него придёт пакет SYN-ACK. Там нету никакого HTTP, там часть TCP протокола.
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение

ОтветитьОпции темыСоздать новую тему
1 чел. читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
 

RSS-версия форума PDA-версия форума Сейчас: 21.05.2018 - 06:04
Invision Power Board v2.5 © 2018  IPS, Inc.