Как стать автором
Обновить

Как стать хакером для «самых маленьких»

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров22K

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

ПРИМЕЧАНИЕ! Данная статья не будет интересная для тех кто реально хочет стать хакером (ничего нового вы в ней не услышите), но будет очень полезна (для понимания подхода) системным администраторам, всевозможным скриптерам, джунам, лидам, стек овнерам, манагерам и тд (людям косвенно связанным с IT индустрией, и б***о-кодерам разумеется).

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

Итак, кто бы что не говорил (и как бы не относился к этому), но хакерство это высшая и конечная стадия становления "настоящего программиста" (те кто говорят иначе просто врут сами себе, потому что не понимаю как стать хакером).

Какие бывают направления и уровни читерства:

Уровень №0 - "Я у мамки хацкер"
Цели - Бессмысленны и беспощадны (Или показать себе какой я классный программист)
Риски - Нет (Ой да кому ты нужен)
Потенциальная сатисфакция - Нет
Примеры - DDOS-атаки, читерство в играх (или создание читов, включая попытки взлома донаторских приблуд), создание вирусов из 2 команд (через shell api) в духе "удалить все из папки System32 и перезагрузить компьютер".
Противодействие - Контрится антивирусом

Уровень №1 - "Мелкий пакостник"
Цели - Троллинг, унижение и доминирование (В редких случаях что то хорошее)
Риски - Почти нет
Потенциальная сатисфакция - Нет?
Примеры - Взлом игр, взлом пользователей, взлом админок сайтов, почтовые рассылки, и тд
Противодействие - Не требуется

Уровень №2 - "Кибер-шантажист" (Самый массовый и основной, если такие термины применимы, поскольку таких людей очень мало, из за порога входа)
Цели - Доход
Риски - Минимальны, административное преследование
Потенциальная сатисфакция - Может быть, если повезет
Примеры - Взлом блогеров, инста-моделей, правительственных деятелей, банкиров и тд (в общем людей при деньгах) с целью шантажа (тайны есть у всех, а те у кого нет - легко байтятся).
Противодействие - Контрится наличием логики

Уровень №3 - "Тыжпрограммист или тру хакер"
Цели - Любые, зависят от настроения, но зачастую благие (пусть и не выглядят таковыми), так как особенности деятельности предполагают глубокое понимание философии, и важности общечеловеческих принципов
Риски - Уголовное преследование, смерть
Потенциальная сатисфакция - Любая, хакерская романтика
Примеры - Аутсорс, корпоративный шпионаж (в основном), аутсорс по отмыванию денег, аутсорс для инсайдерской торговли на бирже, или спекуляции индексами, любые проекты на благо человечества (к примеру крипта), либо "обворовывание богатых"
Противодействие - Невозможно (этот человек в любом случае получит то что хочет, так как процесс становления "ТЫЖПРОГРАММИСТОМ" подразумевает приобретения абсолютно разных навыков (помимо программирования), в абсолютно разных сферах, будь то нейрохирургия, сантехника, атомная энергетика, ремонт обуви, квантовая физика, и тд, все что угодно)

Собирательный образ типичных "тыжпрограммистов"
Собирательный образ типичных "тыжпрограммистов"

Уровень №4 - "крысапрограммист", он же "белый хакер" (не путать с маркетинговым термином, хотя формальные "белые хакеры" по сути ничем не отличаются)
Цели - Любые, очень, очень плохие, так как этот человек не имеет морали, чести, человечности, мелочен действует из корыстных целей, ЧСВшен, беспринципен
Риски - По началу "видимость" тотальной безнаказанности, на деле смерть (в любом случае)
Потенциальная сатисфакция - Нет, скорее всего наоборот
Примеры - Работа на государство, создание настоящих вирусов с целю прямого причинения ущерба большому количеству людей, включая доведение до самоубийства, и провокации к терроризму (например вирус взломавший атомные объекты в Иране, созданный по крылом Массада)
Противодействие - Контрится очень талантливым "тыжпрограммистом"

Собирательный образ типичного "белого хакера"
Собирательный образ типичного "белого хакера"

Примечание касательно "белых хакеров"

За частую большинство самых вредительских, и опасных вирусов созданы "белыми хакерами", белыми хакерами становятся профессионально, то есть изначально занимаясь IT-деятельностью связанной с правительством, но бывают случаи когда Тыжпрограммист может стать белым хакером (при охоте белого хакера на конкретного хакера, либо по собственной невнимательности, или глупости).

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

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

С чего начинается хакер

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

Не обязательно в совершенстве владеть тысячей навыков и одним "все познанием", достаточно поверхностно пройтись по всему, проанализировать, и найти лучший инструмент для решения любых задач в цифровом пространстве (ну и конечно мастерски овладеть им).

Яркий пример из моего опыта:

Это блокнот, с автодополнением и картинками (и видео) вместо фона, написан на С#, казалось бы для реализации нужно ковыряться в канвас, и чуть ли не описывать с нуля объект на подобие TextBox, но на деле это просто три формы (плюс заготовки с палитры компонентов) без рамки (одно для иконки меню, второе для фона, третье для текста), у которых выставлено вложенное свойство формы с частичной отрисовкой в true, а автодополнение просто берет текущую выбранную строку, вставляет в скрытый StaticText, и оттуда берет размер отступа за вычетом границ, все проще чем кажется.
Это блокнот, с автодополнением и картинками (и видео) вместо фона, написан на С#, казалось бы для реализации нужно ковыряться в канвас, и чуть ли не описывать с нуля объект на подобие TextBox, но на деле это просто три формы (плюс заготовки с палитры компонентов) без рамки (одно для иконки меню, второе для фона, третье для текста), у которых выставлено вложенное свойство формы с частичной отрисовкой в true, а автодополнение просто берет текущую выбранную строку, вставляет в скрытый StaticText, и оттуда берет размер отступа за вычетом границ, все проще чем кажется.

Как видно из примера, даже не зная функций для получения размера текста и не имея опыта работы с универсальным объектом Canvas можно реализовывать самые странные решения (было бы желание). Поэтому не нужно боятся испытаний, так как изобретательность и немного упорства могут компенсировать любые другие недостатки.

Хакер начинается с анонимности

В первую очередь любому хакеру нужно обеспечить анонимность, и "руку в сети", для этого можно завести домашний сервер. В роли сервера пойдет любой ноутбук, ультрабук, или даже нетбук (4гб оперативки, 4 ядра хватит с головой).

Представим что в моем случае в роли руки в интернете выступал простой нетбук Dexp на Intel Atom (2 ядра, 2 гига), под Windows 7, в качестве сервера Open Server, в качестве сайта имейждбоард с названием http://www.funhub.lol/, пара порносайтов, и видеохостингов (довольно популярный вариант, ибо не пустовать же серверу, пусть приносит доход).

Представим что анонимность обеспечена связкой из домена, купленного на одноразовую банковскую карту (анонимную, или краденную, для примера paygoo gift), и маршрутизацией этого домена с сервером через сервис https://www.noip.com, а именно выставления домена No ip в качестве CNAME-записи у домена, ну и разумеется ловушки на самом сервере и ноутбуке.

И да хакерство требует вложений.

Рабочий инструмент хакера

В качестве рабочего инструмента хакера должен выступать "изолированный компьютер" (то есть компьютер не должен иметь какой либо связи с сетью, или выделенными устройствами, на подобие мобилки), основной рабочий компьютер НЕПОДХОДИТ для этой роли! От того насколько хорошо реализован инструмент хакера зависит его анонимность и возможности.

На этот основной инструмент хакер может устанавливать любые антивирусы, компиляторы, вирусы и тд (кароч делать с ним что хочет). Этот инструмент должен находится в таких условиях, что при нажатии условной кнопки на него проливается бензин (и внутри и снаружи), и уничтожает его в течении 1 минуты.

Для связи какого либо вируса с интернетом (а следственно его порождением "абстрактной сетью", а не тобой) следует зависти какую ни будь флешку (к примеру с битыми секторами, или вторичными секторами, скрытыми, тут уже простор для фантазии), в некоторых случаях можно описать и специальную утилу для ее стирания (флешка должна форматироваться каждый раз почле контакта с сервером, и на стороне сервера), а кто то может и описать свой синтаксис для кодирования флешки на чтение и запись.

Сервер в свою очередь должен быть заражен мелопакастными вирусами, иметь много рекламы, и редиректов (чем больше - тем лучше). Для какого ни будь отдела "К" МФД РФ этого хватит с головой, для ЦРУ - нет.

Ближе к делу

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

Уровень №0

Утила для DDOS - открываем MS Visual Studio, и с политры компонентов кидаем на форму TextBox, Button и WebBrowser, двумя тыками по кнопке создаем метод (для этой кнопки), после чего пишем код:

    if (String.IsNullOrEmpty(TextBox1.Text)) return;
    webBrowser1.Navigate(new Uri(TextBox1.Text));

После чего прописываем в TextBox адрес сайта для ддоса и запускаем программу. Теперь, когда у нас есть скомпилированный файл просто запускаем кучу экземпляров этой программы.

Либо еще можно модифицировать программу, добавив таймер и перезагрузку по срабатыванию таймера (или можно попробовать прикрутить мульти треддинг, и насоздавать кучю экземпляров внутри программы). В общем пример DDOS атаки даже нет смысла описывать, гораздо проще просто скачать кучу разных браузеров и заставить их "работать так как тебе надо".

Или еще проще создать ярлык с адресом сайта в папке, браузеру по умолчанию запретить кеширование, и просто накопипастить эти ярлыки в эту же папку, выделить все и запустить (как видите все зависит от изобретательности).

Разберем еще один пример:

Для этого создадим папку на рабочем столе с произвольным названием (к примеру "aimp_5.30.2530_w64"), далее в этой папке создадим текстовый файл, который сразу переименуем в "aimp_5.30.2530_w64.exe .cmd" (в редакторе этого не отобразить, но задача сделать так, чтобы настоящие расширение скрылось за пределами рабочей области экрана, к примеру за пределами 1980 пикселей)

Вот так это будет выглядеть в папке
Вот так это будет выглядеть в папке

После чего откроем любым текстовым редактором и пишем внутри:

ECHO "LOH PIDR"
DEL *.*

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

В итоге мы получаем первый мелкопакастный вирус, который может испортить нервы невнимательному пользователю.

Можно пойти дальше и создать батник, который перезапишет содержимое файла hosts в C:\WINDOWS\system32\drivers\etc\, и скроет его, после чего создаст пустой файл hоsts в этой же папке, но вместо английской О в название поместит русскую (одинаковые буквы имеют разные коды), но по понятным причинам код описывать я не буду.

Сойдемся на том что первые два примера показывают как быть читером 0 уровня, а третий пример показывает читерство 1 уровня, теперь давайте рассмотри уже более интересные подходы к читерству.

Уровень №2

Уровень 2 уже предполагает подготовки, а также обхода потенциальных ловушек в лице антивирусов, брандмауэров, всяких утил, и тд. Поэтому следует придерживается некоторых правил в разработке, к примеру:

Использовать малопопулярный язык программирования, для которого нет большой базы сигнатур для поиска вирусов антивирусом.

Использовать компилятор, которые НЕ шифрует исходный код (это также поможет обойти антивирус).

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

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

Что это все значит? Давайте разберем на примере:

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

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

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

В общем есть простор для фантазии.

вот так выглядит оригинал рандумной программы для загрузки видосиков с ютюба
вот так выглядит оригинал рандумной программы для загрузки видосиков с ютюба
а вот так выглядит мой косплей этой программы, который я накидал за две минуты в конструкторе
а вот так выглядит мой косплей этой программы, который я накидал за две минуты в конструкторе

По понятным причинам подробностей я объяснять не буду. Так как материал уже получился довольно объемным, давайте перейдём к следующему уровню. Этот готовый "продукт" мы уже можем запаковать в установщик и раскидать по всяким "софт-порталам", после чего "ждать улова", не забывая отпускать "мелкую рыбешку".

Уровень №3

Для это уровня уже нету четких правил (разве что провокация уязвимостей), но требуется внимание к деталям, и серьезная аналитика, так как задачи всегда уникальны (пусть и выглядят типовыми).

Также очень важным является терпение, с момента постановки задачи до достижения результата может пройти и 6 месяцев, и 2 года.

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

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

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

Большинство офисных машин не обладают даже антивирусом, а большинство антивирусов (в свою очередь) не обладают необходимым функционалом для того чтобы "грамотно" защитится, поэтому "незаметное" нахождение в системе не является проблемой, во многих системах есть встроенные "компиляторы" для каких либо базовых языков программирования (к примеру Visual Basic, VB Scripts, или Python).

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

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

Продвинутые читеры могут "имитировать" ошибку смарт (или через оперативную память), с целью просто вызвать переустановку системы, после чего сразу зарезервировать себе "кусочек" постоянного накопителя компьютера, и "сделать вид что так и было", 10мб хватит с головой, там будет вирус "навсегда" (важно чтобы этот фрагмент диска был (к примеру) описан как "битый сектор" для системы, но был читаемым (иначе говоря подразумевает написание своего синтаксиса хранения файлов, к примеру что ни будь похожее на ExFAT, можно начать с Apple File System или Ext4, вообще маководские машины гораздо проще и уязвимее (да и линуксовые тоже), а пользователи обычно сами готовы отдать тебе все, поэтому для начинающего "читера" это будет хорошим опытом).

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

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

Куда более большая проблема это "грамотный мост", или процедура, при помощи которой происходит "извлечение" данных, на самом деле адекватное "строительство" сети, настройки коммутаторов, подавителей адресов, и тд "отрезает" мост в 90% случаев, но так как у большинства компаний (особенно крупных) провайдер (это ростелеком) аффилирован с государством, и поэтому сам может грешить "колхозным читерством" и (к примеру) созданием своих браузеров через "третьи компании", и сайтов с готовыми сборками ОС, и (к примеру) "установщиков с расширенным функционалом", которые дают то что тебе надо, и еще немного сверху "заботы о твоей безопасности рабскости", достать нужную информацию у провайдера гораздо проще чем у потенциальной цели (особенности именно ростелекома).

В других случаях необходимо строить "аналоговый мост" (иначе говоря последовательность потенциальных устройств, которые будут представлять из себя пролеты этого моста), к примеру мост в локальную сеть системы цели через смежные компании обслуживания, и их деятельность (устройства, носители, и тд) в компании цели, или (к примеру) в обход большинства проблем "логический мост", через внедрение в телефон цели "полезной утилы", которая будет делать скриншот фронтальной камерой раз в 30 минут, сохранять в кеше, а при подключении к теоретической домашней сети отправлять фотку "руке в интернете", где уже внаглую с фото читер сам будет "в ручную" разбирать "данные".

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

Что можно сказать по итогу?

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

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

Я по сути не привел ни одного релевантного примера (более того я столько написал, по сути ни о чем не рассказав), реальные вирусы могут работать иначе, но в схожем паттерне поведения (то есть в крупной компании трудно скрыть присутствие попытки взлома, несмотря на то что большинство вирусов ведут себя как "спящие").

Искусству тыжпрограммирования нельзя научиться из чужого опыта (более того описанные в этой статье методы также "малоэффективны").

Касательно уровня №4 (я его не описал так как не могу представить род задач), я думаю что работать на уровне 4 проще чем на 3 так как у тебя всегда есть доступ к полной документации по конкретной технологии, отличные аналитические данные и другие бафы от государства, но связываться с ними не стоит не в коем случае.

Надеюсь было интересно и полезно, спасибо за внимание:)

Теги:
Хабы:
Всего голосов 33: ↑3 и ↓30-26
Комментарии68

Публикации