• XSS.stack #1 – первый литературный журнал от юзеров форума

Modlishka

Пожалуйста, обратите внимание, что пользователь заблокирован
Это не то что нужно ТС, сбилдить он сам смог, проблема с сертификатами

ТС вапще ничего нужно не было, это обзор ;) Писал не для него.
 
ТС вапще ничего нужно не было, это обзор ;) Писал не для него.

Ну суть то ты понял если читал тему
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Ну суть то ты понял если читал тему

Не читал. Суть насадить меня по понятиям "хекеров"
 
Внятное и без пафосно-снобисткое (хотя с хуя тут у некоторых столько снобизма) обьяснение работы сего продукта


1. Предпосылки
Для запуска хорошей кампании вам понадобится:

зарегистрированное доменное имя
подстановочный SSL-сертификат

Примечание. Это на самом деле необязательно, если вы не хотите запускать свою кампанию по протоколу TLS или проводить локальные тесты без регистрации собственного домена (вместо этого вы можете использовать: loopback.modlishka.io).

Зарегистрировать домен:
Перед началом любой фишинг-кампании вам потребуется надежное доменное имя. Очевидно, что для минимизации риска быть легко обнаруженным целевым пользователем выбранный домен должен быть максимально похожим на исходный.

Зарегистрированный домен должен указывать на IP-адрес хоста, на котором в данный момент работает Modlishka.

Добавьте запись « A » с правильным IP-адресом и запись « CNAME » «*» с подстановочными знаками.

Все субдомены должны разрешаться на один и тот же IP-адрес.

Если вам нужен временный домен для тестирования на вашем локальном компьютере, вы можете использовать: « loopback.modlishka.io domain » (разрешает 127.0.0.1 для всех запросов * .loopback.modlishka.io)

Модлишка в настоящее время поддерживает следующие доменные схемы:

а. Перевод доменов «один в один»

Пример :tims.cc или victin.com для целевого доменаtims.com. Совет. Попробуйте найти идентичные доменные имена с разными tlds или опечатками.

б. «Вложенный» перевод домена

Пример: 'жертва.com.α.host' Совет. Попробуйте найти максимально короткое имя домена и включить целевой домен в качестве субдомена.

Выбор правильного подхода остается за вами. Существует множество различных регистраторов, которые вы можете использовать для поиска идеального домена.

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

Модлишке требуется сертификат подстановки для вашего фишингового домена, который можно получить вручную через одного из ваших регистраторов или вы можете использовать сценарии LetsEncrypt и acme.sh для автоматизации этой части. Вам понадобится сертификат PEM и ключ, чтобы использовать его с Modlishka.

Самый простой способ получить доверенный сертификат для вашего домена - использовать скрипт acme.sh. После создания вы можете использовать следующую команду для преобразования их в JSON-совместимый формат для файла конфигурации:

awk '{printf "%s\\n", $0}' file
Вы также можете использовать плагин 'autocert':

$ openssl genrsa -out MyRootCA.key 2048 $ openssl req -x509 -new -nodes -key MyRootCA.key -sha256 -days 1024 -out MyRootCA.pem
Замените переменную const CA_CERT содержимым файла MyRootCA.pem, а const CA_CERT_KEY содержимым MyRootCA.key в файле plugin / autocert.go.

Установите и доверяйте MyRootCA.pem в хранилище сертификатов вашего браузера, и все готово. Плагин 'autocert' автоматически генерирует сертификат для вашего фишингового домена при каждом запуске инструмента.

2. Использование инструмента
Вы можете использовать и настраивать Модлишку через параметры командной строки.

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

$ sudo ./dist/proxy -target https://target-domain.com -phishingDomain loopback.modlishka.io -listeningPort 80
где целевой параметр указывает на домен, который должен быть проксирован (должна быть включена схема URL), а phishingDomain определяет фишинговый домен.

Лучшим и более удобным подходом является использование файлов конфигурации JSON. Вы можете найти примеры файлов здесь .

$ sudo ./dist/proxy -config your.config.json
Примечание. Обязательно добавьте сертификат в файл конфигурации, если хотите обслуживать страницы по протоколу TLS.

Пример файла конфигурации:

{ "phishingDomain": "loopback.modlishka.io", "listeningPort": "443", "listeningAddress": "127.0.0.1", "target": "https://target-victim-domain.com", "targetResources": "", "targetRules": "PC9oZWFkPg==:", "terminateTriggers": "", "terminateRedirectUrl": "", "trackingCookie": "id", "trackingParam": "id", "useTls": true, "jsRules":"", "debug": true, "logPostOnly": false, "disableSecurity": false, "log": "requests.log", "plugins": "all", "cert": "", "certKey": "", "certPool": "" }

Модлишка поддерживает следующие параметры командной строки:

cert В случае, если по какой-то причине вы хотите предоставить содержимое сертификата PEM через параметр командной строки. Base64 кодирует его, чтобы создать единственную строку (bash очень требователен к дополнительным символам.)
Примечание. Для файла JSON сертификат не обязательно должен быть закодирован в base64. Просто не забудьте заменить все новые строки на \ n.

certKey

Как и в случае с сертификатом, base64 кодирует ключ сертификата SSL. Примечание. Для файла JSON ключ сертификата не обязательно должен быть закодирован в base64. Просто не забудьте заменить все новые строки на \ n.

certPool

Сертификат центра сертификации в кодировке Base64 Примечание. Для файла JSON пул сертификатов не обязательно должен быть закодирован в формате base64. Просто не забудьте заменить все новые строки на \ n.

конфиг

Путь к файлу конфигурации JSON. Примечание. Рекомендуется использовать параметры строки cmd или файлы конфигурации.

credParams

Этот параметр зарегистрирован плагином control_panel. Это разделенный запятыми список шаблонов сопоставления имени пользователя и пароля с использованием групп (регулярное выражение). Эти значения также кодируются в base64.

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

Тело HTTP Post содержит: " param1 = test & param2 = test2 & password = secret & username = test ", тогда регулярное выражение для пароля должно быть: " password = ([^ \ W] :) & " and for username " username = ([^ \ W ] :) ".

отлаживать

Вывести подробную отладочную информацию из процесса перевода и проксирования.

disableSecurity

Нет особой причины отключать эту опцию. «Здесь будут драконы».

jsRules

Разделенный запятыми список шаблонов URL и полезных нагрузок, закодированных в JS base64, которые будут внедрены. Например, если вы хотите добавить на страницу www.loopback.modlishka.io предупреждение (1), вам следует использовать следующее значение параметра: "jsRules": "www.loopback.modlishka.io:YWxlcnQoIlBoaXNoZWQiKTs=", base64decode ("YWxlcnQoIlBoaXNoZWQiKTs =") => 'alert ("Phished");'

listeningAddress

Адрес интерфейса, на котором должна слушать Модлишка (по умолчанию "127.0.0.1")

listeningPort

Номер порта, который должен прослушивать Модлишка (по умолчанию "443")

журнал

Локальный файл, в который будут записаны извлеченные запросы (добавлены). Это основной источник, из которого должны быть собраны учетные данные.

phishingDomain

Фишинговый домен, который мы будем использовать для создания - например: loopback.modlishka.io

плагины

Разделенный запятыми список включенных имен плагинов (по умолчанию «все»)

postOnly

Включите, если хотите регистрировать только HTTP-запросы POST

правила

Разделенный запятыми список статических строк и их замен всех закодированных в base64. Например:

Если вы хотите удалить атрибут «целостности» из ответа html-тега, добавьте следующий параметр: -rules "aW50ZXJncml0eT0ic2hh, aW50ZXJncmlhdHk9InNoYQ =="

цель

URL целевого сайта - пример: https://target-victim-website-example.com

targetRes

Разделенный запятыми список целевых поддоменов, которые необходимо передать, дополнительно обрабатывается прокси. Иногда прокси-сервер не может получить и преобразовать некоторые из полных доменных имен. В этом случае вы должны указать эти домены. Примечание. Слишком много доменов могут иметь нежелательные последствия. Убедитесь, что этот список сведен к минимуму.

terminateTriggers

Разделенный запятыми список URL-адресов от источника цели, который вызовет завершение сеанса. Пример:

account.loopback.modlishka.io - URL, который будет загружен после успешного входа пользователя. В таких случаях мы обычно не хотим оставлять его в нашем домене. Обратите внимание: эта опция не позволит пользователю вернуться после завершения сеанса. Он всегда будет получать HTTP 302 (перенаправление) в целевой домен или значение параметра terminateUrl.

terminateUrl

URL-адрес для перенаправления клиента после завершения сеанса.

TLS

Включить TLS (по умолчанию false)

trackingCookie

Имя HTTP-файла cookie, используемого для отслеживания жертвы (по умолчанию «id»)

trackingParam

Имя параметра HTTP, используемого для отслеживания жертвы (по умолчанию «id»). Этот параметр будет использоваться для создания ваших URL-адресов для фишинг-кампании:

https://loopback.modlishka.io/?id=[UUID_identifier] .

Примечание. Этот параметр будет удален при первом запросе (чтобы скрыть параметр id, который может показаться немного подозрительным).
1. Что значит "Модлишка"?
Это английское произношение польского слова "modliszka". Что означает богомол.

2. 2FA сломан? Как я могу правильно защитить себя?
2FA не сломан. В конце концов, это все о «социальной инженерии», о которой вы должны быть начеку. Который может быть на основе электронной почты, телефона, почты или face2face.

Если вы не хотите всегда проверять, не является ли доменное имя в адресной строке URL вашего браузера каким-либо образом вредоносным, или беспокоитесь, если есть еще одна ошибка, связанная с подделкой URL, подумайте о переходе на протокол U2F.

3. Некоторые веб-сайты не работают должным образом. Что я должен делать?
Вам нужно будет указать прокси-серверу, как обрабатывать ответы, содержащие нетривиальные полные доменные имена, запутанный код JavaScript, динамически добавляемые атрибуты безопасности html (например, «целостность») и т. Д. Это требует некоторой ручной настройки вашего файла конфигурации.

Следующие параметры будут полезны для этого:

-rules string Comma separated list of 'string' patterns and their replacements. -targetRes string Comma separated list of target subdomains that need to pass through the proxy

Обратитесь к разделу «Как использовать» для получения дополнительной страницы объяснения.

Примечание. В случае предупреждений SSL-сертификатов для вложенных поддоменов это может быть связано с проблемой «расширения».

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

# ulimit -n 102400 # sysctl -w net.ipv4.tcp_tw_reuse=1 # sysctl -w net.ipv4.tcp_tw_recycle=1 # sysctl -w net.ipv4.ip_local_port_range=50000 # echo 300000 > /proc/sys/fs/nr_open # echo 300000 > /proc/sys/fs/file-max
go get -u github.com/drk1wi/Modlishka
cd $GOPATH/src/github.com/drk1wi/Modlishka/
make
Скрипт для автоматической установки go, можно найти в гугле
./proxy -target google.com -phishingDomain test.ru -listeningPort 80
 
Очередной "не сноб". До вас догадались как ставить, как запускать. Вопрос за сертификат. Покупать надо. Какого хера вы с одним и тем же лезете? facepalm.
 
С сертификатами на локалке разобрался, сегодня если в больничку не закроют, всё распишу если кому интересно.
В который раз убеждаюсь, что не хер всё под копирку штамповать, надо самому индексировать - потом палить из этой пушки. (бля сам говорю, а один хер потом черенок от граблей меж глаз ощющаю)

а почем сертификат?

Имхо на первых парах самоподписной или от LetsEncrypt норм затащит, а так dv ssl от 2к до 3.5к /год, если под серьёзную шарагу копать то ev ssl от 20к
 
Попробовал завести на Cloudflare, создал сертификаты, получил в итоге после awk две строки - Origin Certificate засунул в cert Private key в certKey, не завелось:
Screenshot_1.jpg

Screenshot_2.jpg
В правилах на cloudflare и dns'ax все настроил, до этого все работало (смотрел на nginx).
Потом нашел certPool cloudflare, запихнул и его. Все равно не завелось. Что я делаю не так?)
 
Попробовал завести на Cloudflare, создал сертификаты, получил в итоге после awk две строки - Origin Certificate засунул в cert Private key в certKey, не завелось:
В правилах на cloudflare и dns'ax все настроил, до этого все работало (смотрел на nginx).
Потом нашел certPool cloudflare, запихнул и его. Все равно не завелось. Что я делаю не так?)


Я не успел на домене проверить (как выпишут тоже буду ипаться), но для запуска на локалке я генерировал серт и ключ, серт.pem добавлял в систему и данные из файлов *key и *pem прописывал в autocert.go, а из файла *json удалял строки:
"useTls": true,
"cert": "",
"certKey": "",
"certPool": ""
Так как они работают только с доменами, а не с локалхостом

Если сертификат успешно добавлен в систему, то при каждом запуске modlishk'и за ssl/tsl отвечать будет файл autocert.go
 
Итак, забил на Cloudflare, делаю через acme.sh как то предлагает автор.
Сертификаты успешно получены, ключи вписаны в cert и certKey, useTls - true, слушаем все ip на 433 порту, стартуем на чистом хроме в черной вкладке.
start ./dist/proxy -config json.cfg
Screenshot_1.jpg

use example.com <==> http://example.com <==> www.example.com => ERR_CONNECTION_REFUSED
use https://example.com => https://www.example.com

Screenshot_2.jpg

Жмем кнопку входа, начинает проксироваться поддомен и гудбай https
Screenshot_3.jpg


При переходе на страницу кнопка далее уже не работает, запускал на cfg автора и на чистом.

Собственно, меня уже подклинивает.
Записи околоднсные:
@example.com A 0.0.0.0
* CNAME example.com
www CNAME example.com
 
Последнее редактирование:
Я хз, не могу проверить, но у тебя подгружается плагин autocert.go, который только для localhost
Попробуй в *json'е выставить параметр plugins": "all", не в в положение "все", а перечислить только нужные
Скрытый контент для пользователей: dsdd9.
 
Серты побеждены через acme LE
Код:
acme.sh --issue --alpn -d example.com
далее по инструкции через awk.
Попробуй в *json'е выставить параметр plugins": "all", не в в положение "все", а перечислить только нужные
Не помогло. запускал на старых сертах, с конкретными параметрами и с пустыми параметрами. Результат один - кнопка вход - гудбай ssl.
Сейчас наклюнулась другая проблема.
Жмем вход, переходим на страницу account.example.com (она под ssl, все гуд), вводим логин - а кнопка далее не работает. Кнопка создать аккаунт так же инактив. Код страниц идентичен.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
на ней можно подменить форму оплаты, скажем поставить на сефору палку ?)

мне надо мануал по которому я смогу сделать сам, без изысков скажем 1) ставим серт 2) ставим форму палки 3) ставим снифак - если нужна будет поддержка, за доп плату ) кто может стучите )

есть еще другой вариант, вы делаете я лью трафф и налю, в зависимости что выгоднее ..
 
Потратил вчера часа 4 на этот фрэймворк.
Итог так себе. Например я подсунул ему сертификат let`s encrypt. А браузер один хрен ругается. Проверил этот же сертификат на апаче - воркает отлично. Не понимаю что за бред. Притом самое поганое - что содержимое сертификата нифига не совпадает при модлишке и при апаче. Бред какой-то. Так и не понял в чем фишка.
Второй косяк - тестил на авторизации гугла - страница открывается а кнопки не воркают. Полагаю что проблема растет либо из сертификата либо из недр гугла. Так что если победить проблему сертификата - то юзать можно, но далеко не везде. И опять же. Ему нужно указывать что грабить. Брал какой-то левый сайт. Ввел логин/пароль. В логах пусто. Хотя авторизация прошла. Стал копаться - нашел параметр credParams. Курил и так и этак но не понял оно или нет.
 
В коммитах кстати автор пишет что сделает нормальную подгрузку сертификата из файла.
И сильно напрягает что после указания сертификата нужно перекомпилить бинарник. Ну неужели так сложно было динамическую подгрузку сделать.
В общем сильно разочаровался.
 
Итог так себе. Например я подсунул ему сертификат let`s encrypt. А браузер один хрен ругается. Проверил этот же сертификат на апаче - воркает отлично. Не понимаю что за бред. Притом самое поганое - что содержимое сертификата нифига не совпадает при модлишке и при апаче. Бред какой-то. Так и не понял в чем фишка.
Не знаю, многие об этом пишут мне стоило две минуты что бы сертификат заработал
Код:
сертификат SSL делать так с letscrypt: 
certbot certonly --webroot -w /usr/share/nginx/html  -d fake-domain.de -d www.fake-domain.de 

конвертация сгенеренного серта в формат для вставки в конфиг (по аналогии с https://github.com/drk1wi/Modlishka/blob/master/templates/google.com_gsuite.json) 
sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/\\n/g' /etc/letsencrypt/live/fake-domain.de/cert.pem 
sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/\\n/g' /etc/letsencrypt/live/fake-domain.de/privkey.pem 
sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/\\n/g' /etc/letsencrypt/live/fake-domain.de/chain.pem 
получился конфиг 

пример запускa:
слушает на порту 443 с SSL, рев-проксирует на https url (с SSL) 
/root/go/src/github.com/drk1wi/Modlishka/dist/proxy   -config /root/google.com_gsuite.json 

слушает на порту 8080 (через нжинкс) без SSL, рев-проксирует на https url (с SSL) 
/root/go/src/github.com/drk1wi/Modlishka/dist/proxy   -config /root/4speed.nossl-ssl.json 

слушает на порту 8080 (через нжинкс) без SSL, рев-проксирует на http url (без SSL) 
/root/go/src/github.com/drk1wi/Modlishka/dist/proxy   -config /root/4speed.nossl.json

Второй косяк - тестил на авторизации гугла - страница открывается а кнопки не воркают. Полагаю что проблема растет либо из сертификата либо из недр гугла. Так что если победить проблему сертификата - то юзать можно, но далеко не везде. И опять же. Ему нужно указывать что грабить. Брал какой-то левый сайт. Ввел логин/пароль. В логах пусто. Хотя авторизация прошла. Стал копаться - нашел параметр credParams. Курил и так и этак но не понял оно или нет.
Тут проблема, что сертификат надо делать wildcard для субдоменов тоже у letscrypt есть plugin для этого и кнопки заработают.

В общем сильно разочаровался.
Тут я не понял, за 4 часа не заработало и ты сразу опустил руки? Шучу))

В общем Богомол (Модлишка по польски) отличный иснтрумент в умелых руках на уровень лучше evilnginx(2). Я уже стал замечать что некоторые конторы пытаются защишаться от него свой веб. С таким софтом можно сделать многое и уже делают во всю...

ПС: Кому интересно за лайк можно скинуть видос в ПМ как оно все работает с моими дороботками.
 
kerberos
Ну вот вы привели пример.
certbot certonly --webroot -w /usr/share/nginx/html -d fake-domain.de -d www.fake-domain.de
Это стандартный сертификат. Не wildcard
И соответственно "следующие за нами" споткнутся ровно о то, что стало моим препятствием.
Тут проблема, что сертификат надо делать wildcard для субдоменов тоже у letscrypt есть plugin для этого и кнопки заработают.
А вот это ключевой момент который и нужно было сделать вам/мне. Чутка разгребусь и займусь вопросом.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх