加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

使用 Shell 脚本掩盖 Linux 服务器上的操作痕迹

发布时间:2018-08-16 06:13:16 所属栏目:业界 来源:FreeBuf
导读:技术沙龙 | 邀您于8月25日与国美/AWS/转转三位专家共同探讨小程序电商实战 使用Shell脚本在Linux服务器上能够控制、毁坏或者获取任何东西,通过一些巧妙的攻击方法黑客可能会获取巨大的价值,但大多数攻击也留下踪迹。当然,这些踪迹也可通过Shell脚本等方
副标题[/!--empirenews.page--] 技术沙龙 | 邀您于8月25日与国美/AWS/转转三位专家共同探讨小程序电商实战

使用Shell脚本在Linux服务器上能够控制、毁坏或者获取任何东西,通过一些巧妙的攻击方法黑客可能会获取巨大的价值,但大多数攻击也留下踪迹。当然,这些踪迹也可通过Shell脚本等方法来隐藏。

寻找攻击证据就从攻击者留下的这些痕迹开始,如文件的修改日期。每一个Linux文件系统中的每个文件都保存着修改日期。系统管理员发现文件的最近修改时间,便提示他们系统受到攻击,采取行动锁定系统。然而幸运的是,修改时间不是绝对可靠的记录,修改时间本身可以被欺骗或修改,通过编写 Shell脚本,攻击者可将备份和恢复修改时间的过程自动化。

使用 Shell 脚本掩盖 Linux 服务器上的操作痕迹

操作步骤

第一步:查看和操作时间戳

多数Linux系统中包含一些允许我们快速查看和修改时间戳的工具,其中最具影响的当数“Touch”,它允许我们创建新文件、更新文件 /文件组最后一次被“touched”的时间。

  1. touch file 

若该文件不存在,运行上面的命令将创建一个名为“file”的新文件;若它已经存在,该命令将会更新修改日期为当前系统时间。我们也可以使用一个通配符,如下面的字符串。

  1. touch * 

这个命令将更新它运行的文件夹中的每个文件的时间戳。在创建和修改文件之后,有几种方法可以查看它的详细信息,第一个使用的为“stat”命令。

  1. stat file 

使用 Shell 脚本掩盖 Linux 服务器上的操作痕迹

运行stat会返回一些关于文件的信息,包含访问、修改或更新时间戳。针对一批文件可使用ls参数查看各文件的时间戳,使用“ -l”或者“long”,该命令会列出文件详细信息,包含输出时间戳。

  1. ls –l 

使用 Shell 脚本掩盖 Linux 服务器上的操作痕迹

现在就可以设置当前时间戳并查看已经设置的时间戳,也可使用touch来定义一个自定义时间戳,可使用“d”标志,用yyyy-mm-dd格式定义日期,紧随其后设置时间的小时、分钟及秒,如下:

  1. touch -d"2001-01-01 20:00:00" file 

通过ls命令来确认修改信息:

  1. ls -l file 

使用 Shell 脚本掩盖 Linux 服务器上的操作痕迹

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

步骤二:组织Shell脚本

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

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

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

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

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

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

步骤三:开始脚本

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

  1. nano timestamps.sh 

然后进行下列命令:

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

使用 Shell 脚本掩盖 Linux 服务器上的操作痕迹

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

  1. chmod +x timestamps.sh 

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

  1. ./timestamps.sh 

使用 Shell 脚本掩盖 Linux 服务器上的操作痕迹

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

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读