Как написать троян
Перейти к содержимому

Как написать троян

Как написать троян

Completing the CAPTCHA proves you are a human and gives you temporary access to the web property.

What can I do to prevent this in the future?

If you are on a personal connection, like at home, you can run an anti-virus scan on your device to make sure it is not infected with malware.

If you are at an office or shared network, you can ask the network administrator to run a scan across the network looking for misconfigured or infected devices.

Another way to prevent getting this page in the future is to use Privacy Pass. You may need to download version 2.0 now from the Chrome Web Store.

Cloudflare Ray ID: 71ae9117ce419bec • Your IP : 82.102.23.104 • Performance & security by Cloudflare

Сервер – Клиент Изнутри. На примере и разработка программы!

Если Вам интересно посмотреть, как пишутся «Программы сервер – клиент» и как они работают на реальном примере, предлагаю прочитать пост до конца. Будет интересно!

Пример программы я решил писать на Delphi! Так как, это проще и хорошо подходит для маленького, но реального примера. Что касается грозного слова «Троян» которое я упомянул выше, то тут, получается действительно, самый настоящий троян, но с малым и безобидным функционалом.

Вы узнаете, по какому принципу пишутся «Трояны» и как они работают изнутри! Но, есть одно «НО» Трояны не пишут, так как – это будет описано ниже. Поскольку в нашем примере, «Серверная» часть программы будет много весить (Это не приемлемо для реального трояна), и мы не будет её скрывать в системе. В реальном, «Вредоносном ПО» дела обстоят немного по другому.

Серверную часть программы стараются разработать с малым размером, ну примерно «100 КБ» Плюс — минус сколько-то КБ. И скрывают её в системе, так, что искать её придется долго!…

Но все ровно, принцип разработки один! И данный пример идеально подойдёт для понимания, как работаю программы по принципу «Сервер — Клиент» Просто у нас не правильный тон разработки трояна, а оно нам надо? Правильно. НЕТ. Мы же хорошие ребята и хулиганить не собираемся!

Как работают программы по принципу «Сервер – Клиент»

Просто и в двух словах картина выглядит вот так: Вы на своём компьютере запускаете «Клиентскую» часть программы, как правило, она имеет «GUI» то есть интерфейс пользователя (Если клиент не консольный)

На компьютере, к которому вы желаете получить доступ, запускается «Серверная» часть программы, она же открывает определённый порт на чужом компьютере и не видна в системе.

Через этот порт происходит соединения, Вы в клиенте указываете порт и IPадрес компьютера, на котором запущен сервер, подключаетесь к серверу и можете спокойно выполнять какие-то действия на чужом ПК со своего компьютера! Ещё можно прочитать мой прошлый пост и узнать:

Надеюсь, что здесь объяснил, вроде как понятно и простым человеческим языком! Если что-то не ясно, дальше, на примере все станет ясно! Далее давайте определимся, какие действия буду выполняться на удалённом ПК вследствие работы нашего маленького трояна!

Какой функционал в данном примере программы Сервер – Клиент.

Честно сказать, на этом этапе, когда размышлял, что бы показать я как-то замешкался и не как не мог придумать, что-то интересное! В общем пусть будет функционал из одной возможности и до жути простой:

— Пользователь будет получать Ваше сообщение.

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

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

Ну, а у нас будет такой прикол! Человек, сидя за компьютером, неожиданно получит сообщение, например

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

Разработка программы по принципу «Сервер – Клиент»

Приступаем к самому интересному! И начнём мы с разработки самого «Сервера» после чего напишем под него клиент! Я не буду объяснять код программы, просто, буду приводить примеры, все же у меня не блог по программированию, да и цель поста показать поэтапно процесс разработки подобных программ по типу «Сервер – Клиент»

Разработка Сервера!

Изначально, нужно научить «Сервер» открывать какой-то порт на компьютере, дабы в дальнейшем иметь возможность подключиться к нему из «Клиента» а уже после научим принимать команды и выполнять какие-то действия на ПК.

Откроем порт следующим кодом, который до боли прост:

Теперь если запустить программу появится просто, пустое окно без всяких кнопок и прочих элементов. И самое главное, на компьютере будет открыт порт с номером «666» Именно на этот порт в дальнейшем будем отправлять команды на сервер, и он в свою очередь будет их обрабатывать.

А пока убедимся, что сервер работает и порт открыт, вспоминаем команду «netstat» и смотрим результат.

Сервер – Клиент

Как видим на компьютере, вследствие запуска нашей программы действительно был открыт порт с номером «666» Это говорит только ободном, программа работает, и пришла пора научить «Сервер» принимать сообщение.

Тут дела обстоят следующие образом! Если серверу придёт команда с названием «MESSAGE_TEXT» (Название может быть любое) то сработает процедура «ShowMessage» и покажет сообщение, которое пришло вмести с командой и хранится в строковой переменной «komm»

Соответственно текст сообщение будем набирать в «Клиенте» и он может быть любого содержание!

В прочем, на этом разработка «Серверной» части закончена. В итоге у нас получился файлик «Server.exe» и пока отложим его в сторону до того момента пока не напишем «Клиент»

Разработка Клиента!

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

Пример трояна Сервер – Клиент

Определимся со всеми элементами! Хотя и так понят но, как говорится, на всякий случай поясню.

IP: Поля для ввода IPкомпьютера, где запущен сервер.
Port: Указываем номер порта на котором висит сервер.
— Подключится: Кнопка для подключения к серверу.
— Текст сообщение: Поле для ввода сообщение, которое нужно отправить.
— Отправить сообщение…: Соответственно кнопка для отправки сообщение.
— Статус соединение: Тут мы узнаем, подключились или нет!

Дальше пробуем научить «Клиент» подключаться к серверу и проверим, как это работает. В данном варианте, код для кнопки «Подключится» выглядит так:

Крадущийся питон. Создаем простейший троян на Python

Ко­неч­но, при­веден­ные в статье скрип­ты никак не годят­ся для исполь­зования в боевых усло­виях: обфуска­ции в них нет, прин­ципы работы прос­ты как пал­ка, а вре­донос­ные фун­кции отсутс­тву­ют нап­рочь. Тем не менее при некото­рой сме­кал­ке их воз­можно исполь­зовать для нес­ложных пакос­тей — нап­ример, вырубить чей‑нибудь компь­ютер в клас­се (или в офи­се, если в клас­се ты не наиг­рался).

Теория

Итак, что вооб­ще такое тро­ян? Вирус — это прог­рамма, глав­ная задача которой — самоко­пиро­вание. Червь активно рас­простра­няет­ся по сети (типич­ный при­мер — «Петя» и WannaCry), а тро­ян — скры­тая вре­донос­ная прог­рамма, которая мас­киру­ется под «хороший» софт.

Ло­гика подоб­ного зараже­ния в том, что поль­зователь сам ска­чает себе вре­донос на компь­ютер (нап­ример, под видом кряк­нутой прог­раммы), сам отклю­чит защит­ные механиз­мы (ведь прог­рамма выг­лядит хорошей) и захочет оста­вить надол­го. Хакеры и тут не дрем­лют, так что в новос­тях то и дело мель­кают сооб­щения о новых жер­твах пират­ско­го ПО и о шиф­роваль­щиках, поража­ющих любите­лей халявы. Но мы‑то зна­ем, что бес­плат­ный сыр быва­ет толь­ко в мусор­ке, и сегод­ня научим­ся очень прос­то начинять тот самый сыр чем‑то не впол­не ожи­даемым.

warning

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

Определяем IP

Сна­чала нам (то есть нашему тро­яну) нуж­но опре­делить­ся, где он ока­зал­ся. Важ­ная часть тво­ей информа­ции — IP-адрес, по которо­му с заражен­ной машиной мож­но будет соеди­нить­ся в даль­нейшем.

Нач­нем писать код. Сра­зу импорти­руем биб­лиоте­ки:

Обе биб­лиоте­ки не пос­тавля­ются с Python, поэто­му, если они у тебя отсутс­тву­ют, их нуж­но уста­новить коман­дой pip .

Ес­ли ты видишь ошиб­ку, что у тебя отсутс­тву­ет pip, сна­чала нуж­но уста­новить его с сай­та pypi.org. Любопыт­но, что рекомен­дуемый спо­соб уста­нов­ки pip — через pip, что, конеч­но, очень полез­но, ког­да его нет.

Код получе­ния внеш­него и внут­ренне­го адре­сов будет таким. Обра­ти вни­мание, что, если у жер­твы нес­коль­ко сетевых интерфей­сов (нап­ример, Wi-Fi и Ethernet одновре­мен­но), этот код может вес­ти себя неп­равиль­но.

Ес­ли с локаль­ным адре­сом все более‑менее прос­то — находим имя устрой­ства в сети и смот­рим IP по име­ни устрой­ства, — то вот с пуб­личным IP все нем­ного слож­нее.

Я выб­рал сайт api. ipify. org , так как на выходе нам выда­ется толь­ко одна стро­ка — наш внеш­ний IP. Из связ­ки пуб­личный + локаль­ный IP мы получим поч­ти точ­ный адрес устрой­ства.

Вы­вес­ти информа­цию еще про­ще:

Ни­ког­да не встре­чал конс­трук­ции типа print( f’<> ‘) ? Бук­ва f озна­чает фор­матиро­ван­ные стро­ковые литера­лы. Прос­тыми сло­вами — прог­рам­мные встав­ки пря­мо в стро­ку.

Стро­ковые литера­лы не толь­ко хорошо смот­рятся в коде, но и помога­ют избе­гать оши­бок типа сло­жения строк и чисел (Python — это тебе на JavaScript!).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *