免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章阅读。 #陇羽sec#
练习一:
使用windows的命令生成一个计算器,用于加减乘除的简单运算
要求:输入格式为“1 + 1”,10行内写出,不允许叠加
在桌面上新建一个文本文档,将其重命名为1.bat (确保显示文件扩展名)。
使用以下代码编辑1.bat 文件:
@echo off
set /p expression=请输入表达式(例如1 + 1):
set /a result=%expression%
echo 结果是: %result%
pause
双击运行1.bat 文件,按照提示输入表达式即可进行简单的加减乘除运算。在这个批处理脚本中,set /p用于获取用户输入的表达式,set /a用于计算表达式的结果并将结果存储在result变量中,最后显示结果并暂停以便查看。
代码解释:
这是一个Windows批处理脚本。
@echo off:这一行的作用是关闭命令回显。这样在脚本运行时,不会显示每一条正在执行的命令,只会显示脚本的输出结果,使输出更加简洁。
set /p expression=请输入表达式(例如1 + 1)::这一行用于提示用户输入一个表达式(例如数学运算表达式),并将用户输入的值存储到名为expression的环境变量中。
set /a result=%expression%:这里使用/a参数的set命令来对用户输入的表达式进行算术运算。它将用户输入的表达式(存储在%expression%中)进行计算,并将结果存储到名为result的环境变量中。
echo 结果是: %result%:这一行用于输出计算结果。它会在屏幕上显示“结果是: ”以及计算得到的结果(存储在%result%环境变量中)。
pause:这一行的作用是暂停脚本的执行,直到用户按下任意键。这样用户就有机会查看计算结果。
练习二:
分析windows课程中资源耗尽病毒的原理
要求:发给管理员截图的静态分析,截图标注bat文件运行步骤
资源耗尽病毒
以下是一个简单的BAT脚本示例,它会通过不断地打开记事本(notepad.exe )来消耗系统资源(内存和进程资源等)
@echo off
:loop
start notepad.exe
goto loop
这个脚本会在一个无限循环中不断地启动记事本程序。随着记事本程序不断地被打开,会逐渐消耗系统的内存和处理器资源来处理这些进程。不过请注意,这种操作可能会使系统变得非常不稳定,并且可能需要通过任务管理器强制终止脚本和相关进程来恢复系统正常状态
病毒原理分析
无限循环启动进程
这段批处理代码(.bat文件)的核心是一个无限循环。首先,@echo off是关闭命令回显,这样在命令行运行批处理文件时,不会显示每条命令的执行过程。
然后进入:loop标签定义的循环体。在循环体中,start notepad.exe 命令用于启动记事本程序(notepad.exe )。start命令的作用是启动一个新的进程来运行指定的程序。
接着,goto loop语句会使程序无条件跳转到:loop标签处,再次执行start notepad.exe ,这样就会不断地启动新的记事本进程。
资源耗尽的原因
由于不断地启动新的进程,每个进程都会占用系统资源,如内存、CPU时间片等。在Windows系统中,内存是有限的资源,如果不断启动新的记事本进程,最终会耗尽系统的内存资源。当内存耗尽时,系统会变得非常缓慢,可能无法响应其他正常的操作,甚至可能导致系统崩溃。
练习三:
1:三个文件代表着什么?
2:每个文件里内容的格式又代表什么意思?
/etc/passwd
/etc/shadow
/etc/group
一、/etc/passwd
(一)/etc/passwd代表的意义
/etc/passwd是系统用户配置文件,存储了系统中所有用户的基本信息,并且所有用户都可以对此文件执行读操作,是系统中最重要的文件之一,系统管理员经常通过修改这个文件来完成对用户的管理工作.
(二)/etc/passwd文件内容格式的意义
其每行采用“name:password:uid:gid:comment:home:shell”格式,各部分含义如下:
name(用户名):唯一地标识了一个用户帐号,用户在登录时使用的就是它.
password(密码):该帐号的口令,这里存放的密码是经过加密处理的(现在实际密码多存于/etc/shadow文件,这里以'x'等占位符形式存在)。Linux的加密算法很严密,其中的口令很难被破解.
uid(用户标识,UserID):是一个整数,系统内部使用UID来标识用户,而不是用户名。0为系统管理员账号(root),1 - 99(或1 - 499等不同范围规定)为系统保留账号,500+即一般账号.
gid(组标识,GroupID):不同的用户可以属于同一个用户组,享有该用户组共有的权限。与UID类似,GID唯一地标识了一个用户组.
comment(注释):这是给用户帐号做的注解,比如可以是用户的全名或关于这个本地账号的一些描述信息.
home(主目录):这个目录属于该帐号,当用户登录后,就会被置于此目录中。一般来说,root帐号的主目录是/root,其他帐号的家目录都在/home目录下,并且和用户名同名.
shell(登录之后使用的终端命令):一般来说,这个命令将启动一个shell程序,例如登录后启动bash shell等。当用户登录成功后,要执行的命令的绝对路径放在这一区域中,它可以是任何命令.
二、/etc/shadow
(一)/etc/shadow代表的意义
/etc/shadow用于存储用户的密码信息以及与密码相关的一些安全设置信息,它与/etc/passwd中的记录行一一对应,由pwconv命令根据/etc/passwd中的数据自动产生,其目的主要是提高系统的安全性,因为它限制了普通用户对密码信息的访问权限,只有超级用户(root)才能读取和操作这个文件.
(二)/etc/shadow文件内容格式的意义
它由若干个字段组成,字段之间用:隔开,这些字段及含义如下:
登录名:与/etc/passwd中的用户名相对应,用于标识用户.
加密口令:存储用户密码的加密形式,采用强加密算法进行加密,提高密码安全性.
最后一次修改时间:记录从某个特定时间点(如1970年1月1日)开始到用户密码最后一次被修改所经过的天数.
最小时间间隔:规定了两次修改密码之间的最短时间间隔(以天为单位),在此期间用户不能修改密码,目的是防止用户频繁修改密码而导致安全风险增加.
最大时间间隔:规定了密码的最长有效期限(以天为单位),到达此期限后,用户会被提示修改密码,以确保密码的安全性.
警告时间:在密码过期前多少天开始提醒用户密码即将过期,提醒用户及时修改密码2.
不活动时间:密码过期后,如果用户在这个时间(以天为单位)内还没有修改密码,系统可以采取锁定账号等安全措施.
三、/etc/group
(一)/etc/group代表的意义
/etc/group文件记录了系统中所有组的信息,包括组名、组密码(一般不使用,多为占位符)、组标识(GID)以及属于该组的用户列表等。它在用户管理和权限设置方面有着重要的作用,通过组的概念,可以方便地对多个用户设置相同的权限,简化权限管理的复杂度.
(二)/etc/group文件内容格式的意义
其每行的格式大致为“group_name:password:gid:user_list”,各部分含义如下:
group_name(组名):用于标识一个用户组,是这个组的名称标识.
password(组密码):通常为占位符(如'x'),实际很少使用组密码这种方式,因为组权限管理更多是通过将用户添加到组来实现.
gid(组标识,GroupID):每个组都有一个唯一的GID,与用户的UID类似,系统通过GID来识别不同的组.
user_list(用户列表):列出了属于这个组的所有用户的用户名,不同用户名之间用逗号分隔。这些用户将享有该组所拥有的权限.