如何清除服务器痕迹,怎么删除服务器的内容

首页 > 实用技巧 > 作者:YD1662023-04-25 04:31:43

这种方法适用于修改个别时间戳,对于隐藏服务器上的操作痕迹,这个方法不太奏效,可以使用 shell 脚本将该过程自动化。

步骤二:组织 Shell 脚本

在开始编写脚本之前需要考虑清楚需要执行哪些过程。为了在服务器上隐藏痕迹,攻击者需要将文件夹的原始时间戳写入一个文件,同时能够在我们进行任何修改设置之后还能回到原始文件。

这两个不同的功能会根据用户的输入或者参数的不同而触发,脚本会根据这些参数执行相应的功能,同时我们需要有一种方法来处理错误。根据用户的输入将会进行三种可能的操作:

没有参数——返回错误消息;

保存时间戳标记——将时间戳保存到文件中;

恢复时间戳标记——根据保存列表恢复文件的时间戳。

我们可以使用嵌套语句 if/or 语句来创建脚本,也可以根据条件将每个函数分配给自己的 “if” 语句,可选择在文本编辑器或者 nano 中开始编写脚本。

步骤三:开始脚本

从命令行启动 nano 并创建一个名为 “timestamps.sh” 的脚本,命令如下:

nano timestamps.sh

然后进行下列命令:

#!/bin/bash if [$# -eq 0];then echo “Use asave (-s) or restore (-r) parameter.” exit 1 i

如何清除服务器痕迹,怎么删除服务器的内容(5)

在 nano 中按下 Ctrl O 保存这个文件,通过 chmod 命令将它标记为可运行的脚本。

chmod x timestamps.sh

然后运行脚本,测试无参数时返回错误信息的功能。如果脚本返回我们的 echo 语句,我们就可以继续下一个条件了。

./timestamps.sh

如何清除服务器痕迹,怎么删除服务器的内容(6)

步骤四:将时间戳写入文件

定义 if 语句的条件,“-s” 表示执行保存功能:

if [$1 ="-s"] ; then fi

当然,需要检查计划保存的时间戳文件是否存在,如果存在,我们可以删除它(名为 timestamps 的文件),避免重复或错误的输入,使用下面的命令:

rm -f timestamps;

然后使用 “ls” 命令列出所有文件和它的修改时间,可将其输出到另一个程序,如 sed,以帮助我们稍后清理这个输入。

ls –l

通常会出现下面的显示结果:

-rw-r--r-- 1 user user 0 Jan 1 2017 file

为了保存时间戳,我们只需要年、月、日及文件名,下面命令可以清除 “Jan” 之前的信息:

ls -l file | sed 's/^.*Jan/Jan/p'

这样显示的就是我们程序需要的信息,只是需要修改月份格式为数字格式:

ls -l file | sed 's/^.*Jan/01/p'

将所有月份都替换为数字:

ls -l | sed -n 's/^.*Jan/01/p;s/^.*Feb/02/p;s/^.*Mar/03/p;s/^.*Apr/04/p;s/^.*May/05/p;s/^.*Jun/06/p;s/^.*Jul/07/p;s/^.*Aug/08/p;s/^.*Sep/09/p;s/^.*Oct/10/p;s/^.*Nov/11/p;s/^.*Dec/12/p;'

在一个文件夹中运行我们会看到如下图所示的结果:

如何清除服务器痕迹,怎么删除服务器的内容(7)

然后将输出结果通过 “>>” 发送到名为 “timestamps” 的文件中:

do echo $x | ls -l | sed -n 's/^.*Jan/01/p;s/^.*Feb/02/p;s/^.*Mar/03/p;s/^.*Apr/04/p;s/^.*May/05/p;s/^.*Jun/06/p;s/^.*Jul/07/p;s/^.*Aug/08/p;s/^.*Sep/09/p;s/^.*Oct/10/p;s/^.*Nov/11/p;s/^.*Dec/12/p;' >> timestamps

至此,脚本的前两个操作就完成了,显示结果如下图:

如何清除服务器痕迹,怎么删除服务器的内容(8)

上一页1234下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.