Привет!
Сразу попрошу админов перенести статью, если не угадал с разлелом.
Но ИМХО аналогичная диванная аналиика в пентестах ой как бывает нужна.
Что-то мне сегодня вечером захотелось позабавить свою голову в уютном свете настольной лампы со стаканчиком ароматного вечернего черного кофе.
Наверняка многие из вас слышали про мошеннические сайты "Опросы" и "Выигрыши".
Схема стара и прилично уже надоела. Но, судя по упоротой активности жулья, приносит доход.
Суть проста:
Приходит вам на почту письмо с просьбой пройти опрос от имени банка из топ-10. Или даже еще более топорно: почти "нигерийское" о том, какое счастье выпало на вашусчастливую добрую, но глупенькую голову.
Несчастная жертва переходит на сайт и не верит своим глазам: ХАЛЯВА прилетела!!!! Язь пойман, новая машина уже почти во дворе, кредиты погашены.....
Чтобы получить ваш "приз", вы должны что-то заплатить: налог/комиссию/неведомуюфигню (выбрать нужное). Это же просто "мелочь" по сравнению с погашенным кредитом!!!!!!!!
Как ни странно, но доверчивые люди с отсутствием критического мышления попадаются с завидной регулярностью.
Логично, что долго такой сайт не проживет, особенно если спамить с него же. А рассылка тут нужна серьезная, чтобы "улов" оправдал вложения.
Поэтому "мамкины жулики" каждый божий день как негры на плантации регистрируют пачками доменные имена, прописывают ресурсные DNS-записи (A, AAAA, MX, SPF,,,,), настраивают почтаки и вперед, на рассылку.
За те несколько дней (часов), что будет жить такой домен, хоть кто-то переведет деньги.
С этой истории есть получатели профита: жулики, обузоустойчивые хостеры, регистраторы...
Но есть и страдающие. Помимо реальных потерпевших, потерявших деньги, есть еще нагруженная инфраструктура почтовых сервисов, недовольство широких масс по поводу спама, головняки у админов.
Так вот пришла в голову мысль как можно оперативно выявлять такие сети, даже не имея вообще никакой исходной фактической информации: ни писем, ни ссылок на лэндинг-сраницу, ни жалоб обманутых...
Если в доменном имени мошеннического ресурса явно встречаются ключевые слова или их вариации, то все относительно просто. А что если нет?
Есть разные способы обнаружения и один из них сегодня придумал и проверил.
Этап 1. Датамайнинг доменов
Не секрет, что в сети есть ресурсы, где можно получить зарегистрированные за сутки домены. Они разной ценовой категории и, соответственно, разной степени кривости и полноты данных. Поскольку мы просто проверяем одну гипотезу, я взял только один источник, хотя для серьезной работы это не серьезно
Итак, имеем доменные имена, зарегистрированные за последние сутки в Интернете - больше 230 тысяч доменов второго уровня.
Для начала ограничимся зоной .ru - получил 1500 доменов. Это именно новореги, а не продленные.
Одним из признаков мошеннического характера домена часто является его нелогичность. Маловероятно что веб-мастер, не находящийся под наркотой, зарегистрирует для проекта адрес вида akdfgnskfdbg.ru. А спамеры регистрируют с удовольствием. Почему - это "расходник" и жертва в почте все равно увидит текст ссылки, а не саму ссылку. Да и она, скорее всего, пройдет через шортенер bit.ly, а кликнувший по адресу будет переброшен на конечный сайт, даже не поняв какими путями куда и зачем он прошел.
Так вот. Осталось дело за малым: отфильтровать домены.
1,5 тысячи - это немного для глаз. Но справиться с объемом 230 тысяч глазами нереально. А если речь про каждый день - ну его на...
Посему посмотрим автоматизацию.
Поскольку чашка великолепного паганини была уже далеко не полной и чуть подостывшей, пришлось ускоряться и искать подходящее решение.
В итоге наткнулся на проект nostril на любимом питоне.
Изначально он разрабатывался для анализа исходного кода и позволяет выискивать осмысленные паттертны в тексте и наоборот, искать абракадабру.
Так вот именно это и нужно: найти абракадабру хотя бы по английскому словарю.
Бегло посмотрел код, и разработчиков - доверие еще больше увеличилось. Такое за 1 вечер не напишешь.
Установил по инструкции на Ubuntu:
Проверил работу на тестовом датасете - работает недурно.
Минус один - не работает с файлом. Во всяком случае, у меня не получилось.
Зато может в терминале принять на вход длинную строку: в моем случае все 1,5 тысячи имен пролетели "на ура".
Короткие слова не проверяются - это очень правильно для нашей задачи, т.к. найти посчитать вероятность осмысленности домена вида VK.com невозможно. Это может быть аббревиатура, сокращение, а может быть и программный брут.
По длинным фразам софт дает вероятностную оценку: является ли фраза случайной, или осмысленно написанной.
На первый взгляд очень достойно, хоть и не без ошибок. На данной картинке самой вероятности нет, но ее можно выводить, указав параметры.
В итоге получаем список из 53 подозрительных доменов:
31lnqiywk3.ru, skazki-zdes.ru, ravepopopometo.ru, 1bgcxsyqpv0.ru, wdkg0vvvfthn.ru, pvkgym.ru, v0jmy5yk3hq.ru, novoetvmsk.ru, mfvbasfbgwa2.ru, fmadjwyoeq.ru, yblxoqjpmt.ru, 0u3ycfsxe0.ru, vlfuatiqml.ru, vckwu5k1q1m.ru, prdaydcquspjlydeqylemjnnzrc.ru, vmaldtjmhe.ru, rbgkazan.ru, poznajsebya.ru, ivffgfublv.ru, breughyayq.ru, ihmsrpvqnw.ru, e0upuzsbk1jp.ru, fr6gbpsiczvhw.ru, 4sgctiksaajd.ru, hiqfmtspyq.ru, eiujuellqyvi.ru, csbksbmryt.ru, hudxnfeuqd.ru, 4vl2lukg1uf.ru, wgydubuwfo.ru, g3j1dkdj1brh.ru, makkzxa.ru, dc-bejaeva.ru, obedik-bufetik.ru, ehffekt-zemfiry-morozovoj.ru, 2gzobvm2qwoz.ru, becbnjmxab.ru, askpu3wwmih.ru, ryazhskkhleb.ru, iosyuapiudo.ru, cs-vozmezdie.ru, rozhkovlg.ru, svobodnybiz.ru, bffyzxrvt0v.ru, duhovnyjpoisk.ru, mamamaiviet.ru, omsk-zaym.ru, kwfyggygew.ru, vsekohudozhnik.ru, denygiwruki.ru, 3vrxvliqvrf.ru, obedikbufetik.ru, lkeidvotyuya.ru
Напомню, у nostril англоязычный словарь и hudozhnik для англичан - абракадабра ;-)
Но это уже не важно. 53 домена это не 1500 и не 230 тысяч. Обогощать большие объемы данными из DNS дело не самое быстрое по сравнению с остывающим кофе.
Теперь поищем закономерности.
Этап 2. Технический анализ
Как видно, "напрягающих" доменов в списке немало. Дальше простая логика: давайте посмотрим DNS-записи.
Вдруг мы найдем что-то интересное.
Воспользуемся утилитой dig
Получаем все ресурсные записи для нашего списка.
Далее посморим пересечения. Есть очень много способов это делать, начиная с Excel, но я предпочитаю i2 Analyst's Notebook. В качетсве бесплатной альтернативы можно пользоваться Gephi, Maltego CE и иже с ними.
При выводе информации в виде графа сразу видно одно крайне интересное совпадение.
У 16 доменов в качестве хоста (A-запись) указан один и тот же IP-адрес, все они припаркованы на таймвебе.
Вот список из 16 кандидатов на изучение:
0u3ycfsxe0.ru, 1bgcxsyqpv0.ru, 2gzobvm2qwoz.ru, 31lnqiywk3.ru, 3vrxvliqvrf.ru, 4sgctiksaajd.ru, 4vl2lukg1uf.ru, askpu3wwmih.ru, bffyzxrvt0v.ru, e0upuzsbk1jp.ru, eiujuellqyvi.ru, g3j1dkdj1brh.ru, mfvbasfbgwa2.ru, v0jmy5yk3hq.ru, vckwu5k1q1m.ru, wdkg0vvvfthn.ru
Этап 3. Проверка
Вводим доменные имена в браузер. Я искренне надеюсь, вы не будете использовать основной браузер на основной тачке для этого. Хотябы торбраузер или режим инкогнито. А по-хорошему чистая виртуалка с чистым браузером поднятыми TOR/VPN - кому что любо и по карману.
Так вот проверили домены. Бинго! Мы выиграли.
На чистом свеженьком браузере в "инкогнито" мы, оказывается, когда-то слелали лайк ГОДА!!! и теперь должны получить приз ОТ 100 баксов.
Ну вот, на пачку паганини точно хватит. А если еще учесть, что так 16 раз можно, то мы почти миллионеры.
Этап 4. Перепроверка
Результат просто отличный, особенно если учесть что мы шли к нему слепо, не зная что получим в конце.
А теперь подумаем, где у нас были "узкие" места?
Точно! Nostril.
Теперь перепроверим его работу, получитв все A-записи для 1,5 тысячи доменов в зоне .ru и выберем из них те домены, которые ссылаются на наш ip 95.53.96.232
И получаем 31 домен
c4vhtyi0sc.ru, 31lnqiywk3.ru, ym0hina4kp.ru, j2oz2v1dd3.ru, 1bgcxsyqpv0.ru, our0livngw.ru, wdkg0vvvfthn.ru, v0jmy5yk3hq.ru, mfvbasfbgwa2.ru, chinesevl.ru, 0u3ycfsxe0.ru, vckwu5k1q1m.ru, n2vwbsa3skl.ru, aypsv53y0w.ru, e0upuzsbk1jp.ru, 4sgctiksaajd.ru, eiujuellqyvi.ru, 4vl2lukg1uf.ru, gllxshrosm.ru, g3j1dkdj1brh.ru, 3aceinioei.ru, 2gzobvm2qwoz.ru, askpu3wwmih.ru, n20o21q3rpy.ru, g03tqla3y1.ru, ryerordurd.ru, bffyzxrvt0v.ru, 3etenhgamkj.ru, 0e04wchekfyp.ru, rdssyxe1gt.ru, 3vrxvliqvrf.ru
Так что "Нюхач" крутой инструмент, но не всесильный
Вот таким не самым хитрым способом мы выявли сеточку из 31 домена, который можно добалять в спам-лист.
На этом часть 1 заканчиваю, т.к. написание статьи заняло в 10 раз больше времени чем получение этой информации.
Сразу попрошу админов перенести статью, если не угадал с разлелом.
Но ИМХО аналогичная диванная аналиика в пентестах ой как бывает нужна.
Что-то мне сегодня вечером захотелось позабавить свою голову в уютном свете настольной лампы со стаканчиком ароматного вечернего черного кофе.
Наверняка многие из вас слышали про мошеннические сайты "Опросы" и "Выигрыши".
Схема стара и прилично уже надоела. Но, судя по упоротой активности жулья, приносит доход.
Суть проста:
Приходит вам на почту письмо с просьбой пройти опрос от имени банка из топ-10. Или даже еще более топорно: почти "нигерийское" о том, какое счастье выпало на вашу
Несчастная жертва переходит на сайт и не верит своим глазам: ХАЛЯВА прилетела!!!! Язь пойман, новая машина уже почти во дворе, кредиты погашены.....
Чтобы получить ваш "приз", вы должны что-то заплатить: налог/комиссию/неведомуюфигню (выбрать нужное). Это же просто "мелочь" по сравнению с погашенным кредитом!!!!!!!!
Как ни странно, но доверчивые люди с отсутствием критического мышления попадаются с завидной регулярностью.
Логично, что долго такой сайт не проживет, особенно если спамить с него же. А рассылка тут нужна серьезная, чтобы "улов" оправдал вложения.
Поэтому "мамкины жулики" каждый божий день как негры на плантации регистрируют пачками доменные имена, прописывают ресурсные DNS-записи (A, AAAA, MX, SPF,,,,), настраивают почтаки и вперед, на рассылку.
За те несколько дней (часов), что будет жить такой домен, хоть кто-то переведет деньги.
С этой истории есть получатели профита: жулики, обузоустойчивые хостеры, регистраторы...
Но есть и страдающие. Помимо реальных потерпевших, потерявших деньги, есть еще нагруженная инфраструктура почтовых сервисов, недовольство широких масс по поводу спама, головняки у админов.
Так вот пришла в голову мысль как можно оперативно выявлять такие сети, даже не имея вообще никакой исходной фактической информации: ни писем, ни ссылок на лэндинг-сраницу, ни жалоб обманутых...
Если в доменном имени мошеннического ресурса явно встречаются ключевые слова или их вариации, то все относительно просто. А что если нет?
Есть разные способы обнаружения и один из них сегодня придумал и проверил.
Этап 1. Датамайнинг доменов
Не секрет, что в сети есть ресурсы, где можно получить зарегистрированные за сутки домены. Они разной ценовой категории и, соответственно, разной степени кривости и полноты данных. Поскольку мы просто проверяем одну гипотезу, я взял только один источник, хотя для серьезной работы это не серьезно
Итак, имеем доменные имена, зарегистрированные за последние сутки в Интернете - больше 230 тысяч доменов второго уровня.
Для начала ограничимся зоной .ru - получил 1500 доменов. Это именно новореги, а не продленные.
Одним из признаков мошеннического характера домена часто является его нелогичность. Маловероятно что веб-мастер, не находящийся под наркотой, зарегистрирует для проекта адрес вида akdfgnskfdbg.ru. А спамеры регистрируют с удовольствием. Почему - это "расходник" и жертва в почте все равно увидит текст ссылки, а не саму ссылку. Да и она, скорее всего, пройдет через шортенер bit.ly, а кликнувший по адресу будет переброшен на конечный сайт, даже не поняв какими путями куда и зачем он прошел.
Так вот. Осталось дело за малым: отфильтровать домены.
1,5 тысячи - это немного для глаз. Но справиться с объемом 230 тысяч глазами нереально. А если речь про каждый день - ну его на...
Посему посмотрим автоматизацию.
Поскольку чашка великолепного паганини была уже далеко не полной и чуть подостывшей, пришлось ускоряться и искать подходящее решение.
В итоге наткнулся на проект nostril на любимом питоне.
Изначально он разрабатывался для анализа исходного кода и позволяет выискивать осмысленные паттертны в тексте и наоборот, искать абракадабру.
Так вот именно это и нужно: найти абракадабру хотя бы по английскому словарю.
Бегло посмотрел код, и разработчиков - доверие еще больше увеличилось. Такое за 1 вечер не напишешь.
Установил по инструкции на Ubuntu:
Код:
git clone https://github.com/casics/nostril.git
cd nostril
sudo python3 -m pip install .
Проверил работу на тестовом датасете - работает недурно.
Минус один - не работает с файлом. Во всяком случае, у меня не получилось.
Зато может в терминале принять на вход длинную строку: в моем случае все 1,5 тысячи имен пролетели "на ура".
Короткие слова не проверяются - это очень правильно для нашей задачи, т.к. найти посчитать вероятность осмысленности домена вида VK.com невозможно. Это может быть аббревиатура, сокращение, а может быть и программный брут.
По длинным фразам софт дает вероятностную оценку: является ли фраза случайной, или осмысленно написанной.
На первый взгляд очень достойно, хоть и не без ошибок. На данной картинке самой вероятности нет, но ее можно выводить, указав параметры.
В итоге получаем список из 53 подозрительных доменов:
31lnqiywk3.ru, skazki-zdes.ru, ravepopopometo.ru, 1bgcxsyqpv0.ru, wdkg0vvvfthn.ru, pvkgym.ru, v0jmy5yk3hq.ru, novoetvmsk.ru, mfvbasfbgwa2.ru, fmadjwyoeq.ru, yblxoqjpmt.ru, 0u3ycfsxe0.ru, vlfuatiqml.ru, vckwu5k1q1m.ru, prdaydcquspjlydeqylemjnnzrc.ru, vmaldtjmhe.ru, rbgkazan.ru, poznajsebya.ru, ivffgfublv.ru, breughyayq.ru, ihmsrpvqnw.ru, e0upuzsbk1jp.ru, fr6gbpsiczvhw.ru, 4sgctiksaajd.ru, hiqfmtspyq.ru, eiujuellqyvi.ru, csbksbmryt.ru, hudxnfeuqd.ru, 4vl2lukg1uf.ru, wgydubuwfo.ru, g3j1dkdj1brh.ru, makkzxa.ru, dc-bejaeva.ru, obedik-bufetik.ru, ehffekt-zemfiry-morozovoj.ru, 2gzobvm2qwoz.ru, becbnjmxab.ru, askpu3wwmih.ru, ryazhskkhleb.ru, iosyuapiudo.ru, cs-vozmezdie.ru, rozhkovlg.ru, svobodnybiz.ru, bffyzxrvt0v.ru, duhovnyjpoisk.ru, mamamaiviet.ru, omsk-zaym.ru, kwfyggygew.ru, vsekohudozhnik.ru, denygiwruki.ru, 3vrxvliqvrf.ru, obedikbufetik.ru, lkeidvotyuya.ru
Напомню, у nostril англоязычный словарь и hudozhnik для англичан - абракадабра ;-)
Но это уже не важно. 53 домена это не 1500 и не 230 тысяч. Обогощать большие объемы данными из DNS дело не самое быстрое по сравнению с остывающим кофе.
Теперь поищем закономерности.
Этап 2. Технический анализ
Как видно, "напрягающих" доменов в списке немало. Дальше простая логика: давайте посмотрим DNS-записи.
Вдруг мы найдем что-то интересное.
Воспользуемся утилитой dig
dig +nocmd -f ru_domains.txt any +noall +answer
Получаем все ресурсные записи для нашего списка.
Код:
alpesto.ru. 14399 IN AAAA 2a00:f940:2:2:1:4:0:65
31lnqiywk3.ru. 599 IN TXT "v=spf1 ip4:176.57.223.0/24 ip4:92.53.116.0/22 ip4:92.53.96.0/22 ip4:92.53.112.0/22 ip4:92.53.104.0/22 ip6:2a03:6f00::/32 ~all"
31lnqiywk3.ru. 599 IN MX 10 mx1.timeweb.ru.
31lnqiywk3.ru. 599 IN MX 20 mx2.timeweb.ru.
31lnqiywk3.ru. 599 IN SOA ns1.timeweb.ru. dns.timeweb.ru. 0 28800 7200 604800 600
31lnqiywk3.ru. 599 IN NS ns4.timeweb.org.
31lnqiywk3.ru. 599 IN NS ns3.timeweb.org.
31lnqiywk3.ru. 599 IN NS ns2.timeweb.ru.
31lnqiywk3.ru. 599 IN NS ns1.timeweb.ru.
31lnqiywk3.ru. 599 IN A 92.53.96.232
skazki-zdes.ru. 599 IN A 92.53.96.196
skazki-zdes.ru. 599 IN NS ns1.timeweb.ru.
skazki-zdes.ru. 599 IN NS ns2.timeweb.ru.
skazki-zdes.ru. 599 IN NS ns3.timeweb.org.
skazki-zdes.ru. 599 IN NS ns4.timeweb.org.
skazki-zdes.ru. 599 IN SOA ns1.timeweb.ru. dns.timeweb.ru. 0 28800 7200 604800 600
skazki-zdes.ru. 599 IN MX 10 mx1.timeweb.ru.
skazki-zdes.ru. 599 IN MX 20 mx2.timeweb.ru.
skazki-zdes.ru. 599 IN TXT "v=spf1 ip4:176.57.223.0/24 ip4:92.53.116.0/22 ip4:92.53.96.0/22 ip4:92.53.112.0/22 ip4:92.53.104.0/22 ip6:2a03:6f00::/32 ~all"
skazki-zdes.ru. 599 IN AAAA 2a03:6f00:1::5c35:60c4
и так далее
Далее посморим пересечения. Есть очень много способов это делать, начиная с Excel, но я предпочитаю i2 Analyst's Notebook. В качетсве бесплатной альтернативы можно пользоваться Gephi, Maltego CE и иже с ними.
При выводе информации в виде графа сразу видно одно крайне интересное совпадение.
У 16 доменов в качестве хоста (A-запись) указан один и тот же IP-адрес, все они припаркованы на таймвебе.
Вот список из 16 кандидатов на изучение:
0u3ycfsxe0.ru, 1bgcxsyqpv0.ru, 2gzobvm2qwoz.ru, 31lnqiywk3.ru, 3vrxvliqvrf.ru, 4sgctiksaajd.ru, 4vl2lukg1uf.ru, askpu3wwmih.ru, bffyzxrvt0v.ru, e0upuzsbk1jp.ru, eiujuellqyvi.ru, g3j1dkdj1brh.ru, mfvbasfbgwa2.ru, v0jmy5yk3hq.ru, vckwu5k1q1m.ru, wdkg0vvvfthn.ru
Этап 3. Проверка
Вводим доменные имена в браузер. Я искренне надеюсь, вы не будете использовать основной браузер на основной тачке для этого. Хотябы торбраузер или режим инкогнито. А по-хорошему чистая виртуалка с чистым браузером поднятыми TOR/VPN - кому что любо и по карману.
Так вот проверили домены. Бинго! Мы выиграли.
На чистом свеженьком браузере в "инкогнито" мы, оказывается, когда-то слелали лайк ГОДА!!! и теперь должны получить приз ОТ 100 баксов.
Ну вот, на пачку паганини точно хватит. А если еще учесть, что так 16 раз можно, то мы почти миллионеры.
Этап 4. Перепроверка
Результат просто отличный, особенно если учесть что мы шли к нему слепо, не зная что получим в конце.
А теперь подумаем, где у нас были "узкие" места?
Точно! Nostril.
Теперь перепроверим его работу, получитв все A-записи для 1,5 тысячи доменов в зоне .ru и выберем из них те домены, которые ссылаются на наш ip 95.53.96.232
Код:
dig +nocmd -f ru_domains.txt A +noall +answer > ru_domains_dig.txt
grep 92.53.96.232 ru_domains_dig.txt
И получаем 31 домен
c4vhtyi0sc.ru, 31lnqiywk3.ru, ym0hina4kp.ru, j2oz2v1dd3.ru, 1bgcxsyqpv0.ru, our0livngw.ru, wdkg0vvvfthn.ru, v0jmy5yk3hq.ru, mfvbasfbgwa2.ru, chinesevl.ru, 0u3ycfsxe0.ru, vckwu5k1q1m.ru, n2vwbsa3skl.ru, aypsv53y0w.ru, e0upuzsbk1jp.ru, 4sgctiksaajd.ru, eiujuellqyvi.ru, 4vl2lukg1uf.ru, gllxshrosm.ru, g3j1dkdj1brh.ru, 3aceinioei.ru, 2gzobvm2qwoz.ru, askpu3wwmih.ru, n20o21q3rpy.ru, g03tqla3y1.ru, ryerordurd.ru, bffyzxrvt0v.ru, 3etenhgamkj.ru, 0e04wchekfyp.ru, rdssyxe1gt.ru, 3vrxvliqvrf.ru
Так что "Нюхач" крутой инструмент, но не всесильный
Вот таким не самым хитрым способом мы выявли сеточку из 31 домена, который можно добалять в спам-лист.
На этом часть 1 заканчиваю, т.к. написание статьи заняло в 10 раз больше времени чем получение этой информации.
Вложения
Последнее редактирование: