Меню Рубрики

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

Помогите написать троян на pascal

как сделать троян на pascal
как сделать лёгкий троянчик ? и как сделать что бы через планировщик заданий запускалась.

Троян маячок 1,помогите(((
Помогите,пожалуйста.Вирус троян маячок 1.Доктор веб видит но не удаляет.

Не работают браузеры. Троян Маячок 1. Помогите!
Не работают браузеры, CureIt постоянно видит троян маячок1.

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

)
сполз под стол.

да логин я придумал просто так для прикола

Добавлено через 36 секунд
оффтопить не надо

Новый вирус заражает аудиофайлы WMA MP3

«Лаборатория Касперского» сообщила сегодня об обнаружении вредоносной программы, заражающей аудиофайлы формата WMA. Целью заражения является загрузка троянской программы, позволяющей злоумышленнику установить контроль над компьютером пользователя.

Червь, получивший название Worm.Win32.GetCodec.a, конвертирует mp3-файлы в формат WMA (при этом сохраняя расширение mp3) и добавляет в них маркер, содержащий в себе ссылку на зараженную web-страницу. Активация маркера осуществляется автоматически во время прослушивания файла и приводит к запуску браузера Internet Explorer, который переходит на инфицированную страницу, где пользователю предлагается скачать и установить некий файл, выдаваемый за кодек. Если пользователь соглашается на установку, то на его компьютер загружается троянская программа Trojan-Proxy.Win32.Agent.arp, с помощью которой злоумышленник может получить контроль над атакованным ПК.

До этого формат WMA использовался троянскими программами только в качестве маскировки, то есть зараженный объект не являлся музыкальным файлом. Особенностью же данного червя является заражение чистых аудиофайлов, что, по словам вирусных аналитиков «Лаборатории Касперского», является первым случаем подобного рода и повышает вероятность успешной атаки, так как пользователи обычно с большим доверием относятся с собственным медиафайлам и не связывают их с опасностью заражения.

Источник статьи: http://www.cyberforum.ru/pascal/thread10215-page2.html

Пишем свое вредоносное ПО. Часть 1: Учимся писать полностью «не обнаружимый» кейлогер

Хакерский мир можно условно разделить на три группы атакующих:

1) «Skids» (script kiddies) – малыши, начинающие хакеры, которые собирают известные куски кода и утилиты и используя их создают какое-то простое вредоносное ПО.

2) «Byuers» — не чистые на руку предприниматели, тинэйджеры и прочие любители острых ощущений. Покупают услуги по написанию такого ПО в интернете, собирают с ее помощью различную приватную информацию, и, возможно, перепродают ее.

3) «Black Hat Сoders» — гуру программирования и знатоки архитектур. Пишут код в блокноте и разрабатывают новые эксплоиты с нуля.

Может ли кто-то с хорошими навыками в программировании стать последним? Не думаю, что вы начнете создавать что-то, на подобии regin (ссылка) после посещения нескольких сессий DEFCON. С другой стороны, я считаю, что сотрудник ИБ должен освоить некоторые концепты, на которых строится вредоносное ПО.

Зачем ИБ-персоналу эти сомнительные навыки?

Знай своего врага. Как мы уже обсуждали в блоге Inside Out, нужно думать как нарушитель, чтобы его остановить. Я – специалист по информационной безопасности в Varonis и по моему опыту – вы будете сильнее в этом ремесле если будете понимать, какие ходы будет делать нарушитель. Поэтому я решил начать серию постов о деталях, которые лежат в основе вредоносного ПО и различных семействах хакерских утилит. После того, как вы поймете насколько просто создать не детектируемое ПО, вы, возможно, захотите пересмотреть политики безопасности на вашем предприятии. Теперь более подробно.

Для этого неформального класса «hacking 101» вам необходимы небольшие знания в программировании (С# и java) и базовое понимание архитектуры Windows. Имейте ввиду, что в реальности вредоносное ПО пишется на C/C++/Delphi, чтобы не зависеть от фреймфорков.

Кейлогер – это ПО или некое физическое устройство, которое может перехватывать и запоминать нажатия клавиш на скомпрометированной машине. Это можно представить как цифровую ловушку для каждого нажатия на клавиши клавиатуры.
Зачастую эту функцию внедряют в другое, более сложное ПО, например, троянов (Remote Access Trojans RATS), которые обеспечивают доставку перехваченных данных обратно, к атакующему. Также существуют аппаратные кейлогеры, но они менее распространены, т.к. требуют непосредственного физического доступа к машине.

Тем не менее создать базовые функции кейлогера достаточно легко запрограммировать. ПРЕДУПРЕЖДЕНИЕ. Если вы хотите попробовать что-то из ниже следующего, убедитесь, что у вас есть разрешения, и вы не несёте вреда существующей среде, а лучше всего делать это все на изолированной ВМ. Далее, данный код не будет оптимизирован, я всего лишь покажу вам строки кода, которые могут выполнить поставленную задачу, это не самый элегантный или оптимальный путь. Ну и наконец, я не буду рассказывать как сделать кейлогер стойким к перезагрузкам или пытаться сделать его абсолютно не обнаружимым благодаря особым техникам программирования, так же как и о защите от удаления, даже если его обнаружили.

Для подключения к клавиатуре вам всего лишь нужно использовать 2 строки на C#:

Вы можете изучить больше про фунцию GetAsyncKeyState на MSDN:

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

Что здесь происходит? Этот цикл будет опрашивать каждые 100 мс каждую из клавиш для определения ее состояния. Если одна из них нажата (или была нажата), сообщение об этом будет выведено на консоль. В реальной жизни эти данные буферизируются и отправляются злоумышленнику.

Умный кейлогер

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

Давайте предположим, что я хочу заполучить учетные данные Facebook или Gmail для последующей продажи лайков. Тогда новая идея – активировать кейлоггинг только тогда, когда активно окно браузера и в заголовке страницы есть слово Gmail или facebook. Используя такой метод я увеличиваю шансы получения учетных данных.

Этот фрагмент будет выявлять активное окно каждые 100мс. Делается это с помощью функции GetForegroundWindow (больше информации на MSDN). Заголовок страницы хранится в переменной buff, если в ней содержится gmail или facebook, то вызывается фрагмент сканирования клавиатуры.

Этим мы обеспечили сканирование клавиатуры только когда открыто окно браузера на сайтах facebook и gmail.

Давайте предположим, что злоумышленник смог получить данные кодом, на подобии нашего. Так же предположим, что он достаточно амбициозен и смог заразить десятки или сотни тысяч машин. Результат: огромный файл с гигабайтами текста, в которых нужную информацию еще нужно найти. Самое время познакомиться с регулярными выражениями или regex. Это что-то на подобии мини языка для составления неких шаблонов и сканирования текста на соответствие заданным шаблонам. Вы можете узнать больше здесь.

Для упрощения, я сразу приведу готовые выражения, которые соответствуют именам логина и паролям:

Эти выражения здесь как подсказка тому, что можно сделать используя их. С помощью регулярных выражений можно искать (т найти!) любые конструкции, которые имеют определенный и неизменный формат, например, номера паспортов, кредитных карт, учетные записи и даже пароли.
Действительно, регулярные выражения не самый читаемый вид кода, но они одни из лучших друзей программиста, если есть задачи парсинга текста. В языках Java, C#, JavaScript и других популярных уже есть готовые функции, в которые вы можете передать обычные регулярные выражения.

Где первое выражение (re) будет соответствовать любой электронной почте, а второе (re2) любой цифро буквенной конструкции больше 6 символов.

Бесплатно и полностью не обнаружим

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

Остался один вопрос: действительно такое ПО будет не обнаруживаемым для защитных программ?

Я скомпилировал мой код и проверил exe файл на сайте Virustotal. Это веб-инструмент, который вычисляет хеш файла, который вы загрузили и ищет его в базе данных известных вирусов. Сюрприз! Естественно ничего не нашлось.

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

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

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

Источник статьи: http://habr.com/ru/company/varonis/blog/302458/

Как написать Троян (Пример)

Для проги нам понадобится Visual C++ версии выше пятой, а лучше C++,
входящий в комплект Visual Studio .NET. Создаем blank workspace или solution (в VS
.NET) и добавляем в него два новых пустых проекта Win32
Application, сервер и клиент. Тотчас же меняем активную конфигурацию
обоих проектов на Release. Для этого выбери соответствующий пункт в
меню Build. Создал? Отлично, теперь залезем в настройку проектов
(кликни правой кнопкой мышки на имени проекта и выбери Setting), в
Linker и добавим там к строке Object/library modules библиотеку
винсока wsock32.lib. Без нее наша программа не будет работать. Заметь, эти
действия нужно провести с обоими проектами — и с сервером, и с
клиентом, так как они оба будут использовать сетевые функции и
соответственно нуждаться в сетевой библиотеке. Теперь добавляй в
проект-сервер новый срр файл, и начнем.

НАЧНЕМ КОДИТЬ
В самом начале программы мы должны включить заголовочные файлы
(хидеры), в которых описаны функции используемые нами. Без хидеров
программа выдаст тебе тучу ошибок и никогда не заработает. В данном
случае у нас только один хидер — описывающий сетевые функции, из
библиотеки, которую мы добавили чуть раньше.
#lolzteam

С помощью следующих, крайне важных для размера программы строк, мы
вырежем все лишнее из РЕ-заголовка нашего ехешника, а также сообщим
компилятору, что у нас уже есть EntryPoint, точка входа. Если этого не
сделать, то компилятор вместо того, чтобы вписать нашу функцию в точку
входа, напишет свою, огромную, и размер программы вырастет из 2 до 28
кило. Заметная разница? smile Но если ты теперь попытаешься запустить
прогу в режиме отладки, она, скорее всего, не заработает.

#pragma comment(linker,/MERGE:.rdata=.text)
#ргадта comment(linker,/FILEALIGN:512 /SECTION:.text, EWRX
/IGNORE:4078)
# pragma comment(linker,/ENTRY:WinMain)

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

int WINAPI WinMain(HINSTANCE,HINSTANCE.LPSTFUnt)<

Первым делом мы должны скопировать себя в системную директорию.
Создаем два строковых буфера по 256 символов каждый. Первый для
хранения полного пути с именем запущенного трояна (не будешь же
распространять trojan.exe), a второй для нового пути в системной
директории. Полный путь с именем файла нам придется получить с помощью
функции ядра GetModuleRleName. Передавая в первом параметре
GetModuleHandle(O), мы сообщаем фунщии описатель модуля запущенного
файла, во втором и третьем параметре буфер, в который писать путь и ее
размер соответственно. Путь, куда будем копировать, мы получим с
помощью функции GetSystemDirectory, сообщив ей в параметрах второй
буфер и склеив ее с новым именем файла в формате \\trojan.exe.
Вызываем CopyFile c нашими, уже заполненными буферами в первых двух
параметрах и true в третьем, если мы не хотим перезаписывать
существующий файл, или false, если хотим.

Дальше с помощью функций работы с реестром мы запишем в
SOFTWARE\Microsoft\Windows\CurrentVersion\Run свой свежескопированный
файл, чтобы он грузился при каждом запуске системы. Троян загружен и
готов к круговой обороне (атаке smile).

Наконец мы добрались до самого важного участка кода, без которого
троян — это не троян. Участка, отвечающего за обмен данными жертвы с
тобой smile. Как ты уже, наверное, знаешь из статей Horrific’a, для
использования функций winsoc^a его сначала требуется инициализировать.
В сях это делается следующим кодом:

После инициализации можно приступать к работе с сокетами. Для начала
мы создадим сокет listet_Sock c помощью функции socket. Bo втором
параметре этой функции мы передадим ей defined значение SOCK STREAM,
что означает, что мы будем использовать для связи потоковый протокол
TCP. Если бы мы хотели юзать UDP, то передали бы SOCKJDGRAM.
SOCKET listet_Sock = socket(AF_INET,SOCK_STREAM,0);
Теперь мы должны задать свойства этого сокета, то есть номер
открываемого нами порта, возможные для соединения ip-адреса и
семейство сокетов, параметр AFJNET, который указывает на то, что мы
работаем с интернетом. Для этих свойств существует структура
sockaddrjn, которую мы и заполним.

//создаем переменную со свойствами
SOCKADDRJN addr_Sock;
addr_Sock.sinJamily = AFJNET;
//сообщаем, что к нам могут коннектиться с любого адреса
addrJ5ock.sin_addr.s_addr = htonl(INADDR_ANY);
//говорим, что будем слушать порт 7766, можешь написать любой
addr_Sock.sin_port = htons(7766);

Если бы мы хотели ограничить возможные коннекты к нашему трояну
каким-то ip, то написали бы inet_addr(127.0.0.1) вместо INADDR_ANY.
inet_addr — очень полезная функция, которая наверняка тебе еще
пригодится для программирования сокетов. Она превращает строку с
адресом в формате a.b.c.d в long число, чтобы его впоследствии можно
было использовать для свойств и т.п. Функция htons превращает целое
число в удобочитаемое машиной, и если присвоить addr Sock.sin_port не
функцию htons, а только ее параметр 7766, то программа откроет любой
порт, но только не тот, что мы хотим smile.

С помощью функции bind мы склеим созданный нами сокет listet_Sock и
его свойства addr_Sock (в умных книжках эти свойства зовутся локальным
адресом). Если функция вернет значение, отличное от нуля, значит,
произошла какая-то ошибка, или порт уже занят другой программой, или
еще что-то. В случае ошибки троян закроется с помощью команды return
0, которая говорит программе, чтобы текущая функция вернула значение 0
и вырубилась, а так как у нас функция одна, то она и вырубается вместе
с нашим бедным сервером.

A этой строкой мы, наконец, начнем СЛУШАТЬ порт , то есть откроем его
для соединений. Если быть точным, для одного соединения. В первом
параметре мы передаем переменную-сокет, который открываем, а во втором
— количество возможных коннектов, нам больше одного не надо. Как и в
случае c bind’OM, при ошибке отключаем троян.
if(listen(listet_Sock, 1)) return 0;

Для того чтобы начинать принимать команды от клиента к серверу,
потребуется сначала разрешить клиенту приконнектиться функцией accept.
Эта функция ждет, пока кто-нибудь не присоединится к созданному нами
сокету, и возвращает новый сокет, из которого мы и будем получать
команды. Чтобы после первого же дисконнекта троян у нас не падал, мы
должны засунуть эту функцию в бесконечный цикл while(true). B этом
цикле мы будем ждать коннекта, затем запускать новый бесконечный цикл
(авторы В02К назвали этот цикл CommandLoop) для обработки получаемых
от клиента команд, из которого выйдем только в случае ошибки при

3) При ошибке закрываем существующие соединения

Команды будут приниматься в виде строки, первый символ которой
-собственно, выбор функции, второй — разделитель, любой, а остальные —
это аргумент, который мы передаем функции нашего трояна. Вот пример
команды, посылаемой клиентом: Привет. Троян сначала примет первые
два символа и проверит, есть ли у нас функция, назначенная на символ m
(y нас это вывод сообщения). Затем примет еще 126 символов и загрузит
нашу функцию. To есть троян в цикле принимает с помощью функции recv из
созданного после коннекта сокета hack Sock данные два раза, в первый
буфер 2 байта, и во второй 126. В случае, если данные получить не
удалось, CommandLoop завершится командой break, сокет закроется и
сервер снова будет ждать коннекта. Распишем функции трояна подробнее:
Если первый символ m, то выполняется функция MessageBox(0,buf,Hacked
smile,0), где buf — это наш второй буфер.

Источник статьи: http://zen.yandex.ru/media/id/5ac38e349e29a28ec9e52696/kak-napisat-troian-primer-5aedfacfd7bf215715282d67


0 0 голоса
Article Rating
Подписаться
Уведомить о
guest

0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии