Блог

  • Манипулируя ценой BitCoin дроп на процессинге получал стабильный доход

    Манипулируя ценой BitCoin дроп на процессинге получал стабильный доход

    До монополии центробанков деньгами служили золото и серебро, у которых есть значительная себестоимость добычи, в то время как стоимость печати стодолларовой банкноты, не обеспеченной редким активом, в 800 раз ниже ее номинала. А себестоимость эмиссии цифрового доллара вообще нулевая. У биткоинов же, несмотря на их цифровую сущность, существует значительная себестоимость, аналогично золотым и серебряным монетам. Причем чем больше биткоинов существует, тем эта себестоимость выше, аналогично тому, как золото или серебро со временем все сложнее добывать из-за их ограниченного количества.

    обменные пункты BitCoin по прежнему уязвимы

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

    Именно поэтому в системе Bitcoin, в которой отсутствует какая-либо монополия, нет возможности неограниченной эмиссии. Даже нематериальность биткоинов — их преимущество как платежного средства перед золотом из-за отсутствия массы и объема, а также наличия неограниченной точной делимости (в данный момент делимость до восьмого знака после запятой, однако при необходимости ее можно увеличить), чтобы их точно «хватило на всех».

    Но есть и недостаток. Биткоины уступают золоту в том, что они в данный момент не имеют тотального признания, государства пока еще не хранят в них свои резервы в отличие от золота (хотя Южная Осетия об этом однажды задумывалась). И даже наоборот — ряд центробанков открыто выступил против биткоинов. Но в серебре резервы государства или центробанки тоже не хранят.

  • BitCoin и дропы процессинга — почему валюта утекает из кошельков?

    BitCoin и дропы процессинга — почему валюта утекает из кошельков?

    Bitcoin был задуман своим создателем (или создателями) как деньги будущего — валюта совершенно нового типа. Свободная от государственного контроля, не подверженная обесцениванию из-за неограниченной эмиссии, количество и оборот которой открыты для всех.

    весь 2009 год майнил только Сатоси Накамото

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

    Почему же Bitcoin стал кошмаром наяву для многих государств, банкиров и акционеров ФРС? Для людей, досконально знающих одновременно и что такое Bitcoin, и как устроена современная банковская система, причина очевидна. Давай рассмотрим несколько типичных мифов, связанных с Bitcoin.

    Известный экономист Хазин совсем недавно высказал мнение, что Bitcoin — проект, направленный против золота.

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

    По моему мнению, Bitcoin — это не проект против золота, а наоборот, проект нового «золотого стандарта». А само золото — слишком устаревшее платежное средство для века информационных технологий.

  • Пользователи IPv4 подвержены SLAAC-атаке с применением IPv6

    Пользователи IPv4 подвержены SLAAC-атаке с применением IPv6

    В сетях IPv4 присутствуют угрозы безопасности, даже если использование IPv6 в таких сетях не планировалось. Давайте рассмотрим атаку на рабочие станции, работающие с конфигурацией IPv6 по умолчанию в обычной сети IPv4. Что произойдёт, если любая современная ОС получит пакет RA? Так как любая система сейчас поддерживает IPv6 и ожидает такие пакеты, то она сразу превратится в так называемый дуал стек. 
    Это ситуация, когда в пределах одной ОС используется и IPv4, и IPv6 одновременно. При этом сразу же открывается целый ряд ранее недоступных векторов атаки. Например, можно будет сканировать цель, ведь IPv4 обычно фильтруется, а про IPv6 зачастую не думают вообще.

    SLAAC attack on IPv4 users using IPv6

    Кроме того, в большинстве ОС IPv6 имеет приоритет над IPv4. Если, например, придёт запрос DNS, то большая вероятность, что IPv6 сработает раньше. Это открывает огромный простор для различных MiTM атак. Для проведения одной из самых эффективных потребуется внедрить дополнительный IPv6 маршрутизатор нарушителя. Каждый маршрутизатор IPv6 должен присоединяться к специальной мультикаст-группе. Это FF02::2. Как только маршрутизатор присоединится к такой мультикаст-группе, он сразу же начинает рассылать сообщения RA. По умолчанию маршрутизаторы Cisco рассылают их каждые 200 сек. Ещё один нюанс состоит в том, что клиентам не нужно ждать 200 сек, они отправляют RS-сообщение — Router Solicitation — на этот мультикаст-адрес и таким образом незамедлительно требуют всю информацию. Весь этот механизм называется SLAAC — Stateless Address Autoconfiguration. И соответственно была разработана атака на него с очевидным названием SLAAC attack.

    Атака заключается в том, что нужно установить свой маршрутизатор (не стоит понимать буквально, в роли маршрутизатора может выступать любой линукс или даже виртуальная машина), который будет рассылать сообщения RA, но это только полдела. Также нарушителю потребуется запустить DHCPv6 сервер, DNSv6 и NAT64-транслятор. В качестве службы, способной рассылать сообщения RA, можно использовать Router Advertisment Deamon (radvd), это реализация IPv6 маршрутизатора с открытым кодом. В итоге после правильной конфигурации всех служб цель получит RA и превратится в дуал стек и весь трафик цели будет абсолютно незаметно идти через IPv6.

    На маршрутизаторе нарушителя этот трафик будет транслироваться службой NAT в обычный IPv4 и затем уже уходить на настоящий маршрутизатор. DNSv6-запросы также будут иметь приоритет и также будут обрабатываться на стороне нарушителя.

    MiTM SLAAC проведена успешно

    Таким образом, нарушитель успешно становится посередине и может наблюдать весь трафик своей цели, а цель при этом ничего даже и не будет подозревать. Такая атака несёт максимальную угрозу, работает даже при использовании IPv4-файрволов и статических ARP-записей, когда, казалось бы, воздействовать на цель нет никакой возможности.      

  • Испоьзуем Neighbor Discovery Protocol для захвата сети IPv6

    Испоьзуем Neighbor Discovery Protocol для захвата сети IPv6

    Если рассмотреть внешний периметр, то можно обнаружить, что многие провайдеры или компании, а также банковские учреждения, которые уже начали внедрять IPv6, не спешат закрывать свои административные порты (SSH, RDP, Telnet, VNC и так далее). И если IPv4 уже почти все стараются хоть как-то фильтровать, то про IPv6 или забывают, или не знают, что их нужно защищать так же, как и в случае с IPv4. И если можно отчасти понять используемый IPv4 телнет — например, ограниченная память или процессор не позволяют в полной мере использовать SSH, — то каждое устройство, которое поддерживает сегодня IPv6, просто гарантированно будет поддерживать и протокол SSH. Бывают случаи, когда провайдер оставляет открытыми административные порты IPv6 на своих маршрутизаторах. Получается, что даже операторы связи более уязвимы к IPv6 атакам. Происходит это по различным причинам. Во-первых, хороших IPv6 файрволов ещё не так много, во-вторых, их ещё нужно где-то купить и настроить. Ну и самая главная причина — многие даже и не подозревают об угрозах IPv6. Также бытует мнение, что пока нет IPv6 хакеров, малвари и IPv6 атак, то и защищаться вроде как не от чего.

    Если вспомнить IPv4, то там найдётся три атаки, которые эффективны и по сей день в локальных сетях, — это ARP spoofing, DHCP snooping, а также ICMP-перенаправления.

    В случае же протокола IPv6, когда нарушитель находится в одном локальном сегменте с целью атаки, то есть кто-либо из сотрудников компании или банка, ситуация, как ни странно, остаётся примерно такой же. Вместо ARP появился NDP, на смену DHCP пришла автоконфигурация, а ICMP просто обновился до ICMPv6. Важно то, что концепция атак осталась прежней, но кроме того, добавились новые механизмы вроде DaD, и, соответственно, сразу же появились новые векторы проникновений и новые атаки.

    Протокол обнаружения соседей (Neighbor Discovery Protocol, NDP) — это протокол, с помощью которого IPv6 машины могут обнаружить друг друга, определить адрес канального уровня соседнего хоста (вместо ARP, который использовался в IPv4), обнаружить маршрутизаторы или что-то ещё. Чтобы этот механизм работал с использованием мультикаста каждый раз, когда назначается линк-локал или глобал IPv6 адрес на интерфейс, хост присоединяется к мультикаст-группе. Собственно, используется всего два типа сообщений в процессе neighbor discovery: запрос информации, или NS (neighbor solicitation), и предоставление информации — NA (neighbor advertisment).

    штатная работа Neighbor Discovery IPv6

    В результате нарушителю нужно всего лишь запустить утилиту parasite6, которая будет отвечать на все NS, пролетающие в отдельно взятом сегменте. Перед этим нужно включить маршрутизацию (echo 1 > /proc/sys/net/ipv6/conf/all/forwarding), в противном случае произойдет не MiTM перехват трафика, а Black Hole.

    работа утилиты parasite6

    Минусами такого внедрения является то, что нарушитель будет пытаться отравить ND-кеш всех рабочих станций, что, во-первых, шумно, во-вторых, затруднительно в случае больших объёмов трафика. Поэтому можно взять scapy и провести это внедрение вручную и прицельно. Сначала необходимо заполнить все нужные нам переменные

    scapy - вначале идут адреса канального уровня

    Вначале идут адреса канального уровня, в качестве адреса отправителя выступает MAC адрес нарушителя, в качестве получателя — MAC адрес цели.

    задаются адреса сетевого уровня, где адрес отправителя подменяется

    Далее задаются адреса сетевого уровня, адрес отправителя подменяется (на самом деле это адрес маршрутизатора), адрес получателя — это IPv6 адрес цели.

    ICMPv6ND_NA - это ICMPv6 Neighbor Discovery - Neighbor Advertisment

    Третьей переменной нужно указать правильно собранный пакет NA, где ICMPv6ND_NA — это ICMPv6 Neighbor Discovery — Neighbor Advertisment, а tgt — это собственно адрес маршрутизатора, который анонсируется как адрес нарушителя. Важно правильно установить все флаги: R=1 означает, что отправитель является маршрутизатором, S=1 скажет о том, что анонс отправляется в ответ на NS-сообщение, ну а O=1 — это так называемый override-флаг.

    Link local адрес ICMPv6NDOptDstLLAddr (ICMP Neighbor Discovery Option - Destination Link-Layer)

    Следующая переменная — это Link local адрес ICMPv6NDOptDstLLAddr (ICMP Neighbor Discovery Option — Destination Link-Layer). Это MAC адрес нарушителя.

    >>> packet=ether/ipv6/na/lla

    Осталось собрать пакет в единое целое, и можно отправлять такой пакет в сеть.

    >>> sendp(packet,loop=1,inter=3)

    Значение loop=1 говорит о том, что отправлять нужно бесконечно, через каждые 3 секунды.

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

    Также стоит отметить, что в IPv6 не существует понятия gratuitous NA, как это было во времена ARP (gratuitous ARP — это ARP-ответ, присланный без запроса), но вместе с тем кеш ND живёт недолго и быстро устаревает. Это было разработано, чтобы избежать отправки пакетов на несуществующие MAC адреса. Поэтому в сети IPv6 обмен сообщениями NS — NA происходит очень часто, что сильно играет на руку любому нарушителю.

  • Loki в сетях IPv6 — это проще чем ты думал

    Loki в сетях IPv6 — это проще чем ты думал

    Перед тем как перейти к уязвимостям IPv6 и атакам на них, неплохо бы посмотреть, какие есть инструменты в арсенале пентестера на этот счёт. До недавнего времени существовал только один набор утилит для проведения атак на протоколы IPv6 и ICMPv6. Это THC-IPV6 от незабвенного Марка ван Хаузера, того самого автора брут-форсера THC-hydra и массы других незаменимых инструментов. Именно он в 2005 году серьёзно заинтересовался темой IPv6 и вплотную занялся изучением этого протокола и до недавнего времени оставался первопроходцем, но в последнее время ситуация стала меняться. 
    Всё больше исследователей сетевой безопасности обращают своё внимание на IPv6, и, соответственно, стали появляться и новые утилиты, такие как Loki и новые сканеры сетей, но на сегодня THC-IPV6 по-прежнему остаётся лучшим набором утилит для проникновения в сеть. В комплект его входит уже более 60 инструментов, разделённых на различные категории — от сканирования и MiTM до флудинга и фаззинга, но не будем забывать и реальную утилку scapy, позволяющую вручную создавать пакеты, с любыми заголовками, даже если таковые вариации не предусмотрены ни в одной RFC.

    LOKI - ICMPv6 multicast или как посмотреть соседей по IPv6
    Перед тем, как атаковать цель, нужно её хоть как-то обнаружить, поэтому стандартный пентест обычно начинается с поиска живых хостов, но здесь появляется проблема: мы не можем просканировать весь диапазон. Сканирование всего одной подсети затянется на годы, даже если отправлять миллион пакетов в секунду. Причина в том, что всего лишь одна подсеть /64 (или их ещё называют префиксами) больше, чем весь интернет сегодня, причём значительно больше. Поэтому самая серьёзная проблема с IPv6 — это обнаружение целей.
    К счастью, выход есть. Вначале нужно будет найти подходящую AS (автономную систему), которая принадлежит цели (объекту пентеста). Сервисов, позволяющих искать по AS их владельцев, вполне достаточно, можно это делать прямо на сайтах региональных регистраторов (европейский регистратор — это RIPE NCC). Затем, зная номер AS, принадлежащей конкретной компании, можно уже искать выделенные ей IPv6 префиксы.
    Самый удобный такой поисковый сервис предоставляет Hurricane Electric (bgp.he.net). В итоге можно найти несколько огромных подсетей, которые как мы убедились, нереально просканировать на предмет живых хостов. Поэтому нужно составлять список часто используемых адресов и проводить сканирование уже точно по ним.
    Каким образом можно собрать такой словарь? Если проанализировать, как в компаниях, которые уже внедрили IPv6, назначаются адреса клиентам, то можно выделить три основные группы: автоконфигурация, ручное назначение адресов и DHCPv6.
    Автоконфигурация может осуществляться тремя способами: на основе MAC адреса, с использованием privacy option (то есть в случайном порядке и, например, меняться раз в неделю) и fixed random (полностью случайным образом). В данной ситуации возможно сканировать только те адреса, что строятся на основе MAC адреса. В результате могут выйти подсети, сравнимые по размеру с IPv4 класса А, процесс работы с такими сетями не очень быстрый, но всё равно это уже вполне реально. Например, зная, что в целевой компании массово используются ноутбуки определенного производителя, можно строить сканирование, основываясь на знаниях о том, как будет формироваться адрес.
    Если адреса задаются вручную, то они могут назначаться либо случайным образом, либо по некоему шаблону. Второе, естественно, в жизни встречается гораздо чаще. А шаблон вполне может быть ::1, ::2, ::3 или ::1001, ::1002, ::1003. Также иногда в качестве адреса используются порты служб, в зависимости от сервера: например, работающий Web-сервер может иметь адрес ::2:80.   
    Если же брать DHCPv6, то в этом случае обычно адреса раздаются последовательно из пула (точно такое же поведение можно наблюдать и с обычным DHCPv4 сервером). Зачастую в DHCPv6 можно встретить пул вроде ::1000-2000 или ::100-200. Поэтому в итоге берём утилиту alive6 (она включена в комплект THC-IPV6 и, как и все рассматриваемые сегодня инструменты, по умолчанию входит в Kali Linux) и запускаем в таком виде:
    alive6 - перебор пула DHCPv6
    При таком обнаружении живых машин будет меняться только часть, отвечающая за адрес хоста. Используя такой подход, можно достаточно эффективно и в разумные временные рамки находить живые хосты в обнаруженных ранее подсетях IPv6.
    Но и это ещё не всё — естественно, можно использовать и DNS. С приходом IPv6 никуда не делись трансферы DNS-зоны и брутфорсы DNS по словарю. Применив все эти техники вместе, можно обнаружить до 80% всех включенных в сеть хостов в заданном IPv6 префиксе, что очень даже хорошо. В случае же компрометации одного лишь хоста обнаружитьвсех его соседей не составит никакого труда при помощи мультикаста. Достаточно будет запустить ту же утилиту alive6, только уже с ключом -l или воспользоваться пакетом LOKI как показано на скриншоте.
    Из свежих фич THC-IPV6, и в частности утилиты alive6, можно отметить возможность искать живые хосты, передавая в качестве шаблона для перебора целую IPv4 подсеть:
    alive6 - шаблон IPv4 для перебора IPv6
    Если же брать классическое сканирование, то здесь практически ничего не изменилось. Тот же Nmap, те же самые варианты сканирования портов, единственное отличие в том, что теперь сканировать можно только один хост за раз, но это вполне очевидное решение.    
    Пожалуй, единственная дополнительная техника при сканировании портов — это сканирование IPv4 вначале, а затем получение IPv6 информации по этим хостам. То есть некое расширение поверхности атаки. Для этого можно использовать как вспомогательный модуль метасплоита ipv6_neighbor, так и отдельные сценарии ipv6_surface_analyzer. Работают они по схожему принципу — принимают на входе префикс IPv4, сканируют его, находят живые хосты, проверяют порты на открытость, а затем, определив MAC адрес, высчитывают по нему IPv6 адрес и уже пробуют работать по нему. Иногда это действительно помогает, но в некоторых случаях (privacy option) IPv6 адреса обнаружить не удается, даже несмотря на то, что они есть.