微慑信息网

Linux隐藏history历史记录

Linux隐藏history历史记录

 

介绍

 

在目标机执行一些命令,不希望被History记录,则可以通过下面几种方法来隐藏命令记录。
下面设置都是基于bash环境的,通过echo $0查看当前命令行的环境。

 

命令前添加空格

 

命令行输入命令前加一个空格,history不会记录该命令,前提是histcontrol环境变量为ignorespace或ignoreboth才管用,这个基本都是默认值,我这里测试该变量为空,环境是zsh,也一样有效。

 

Linux隐藏history历史记录

 

whoami前添加了空格,pwd没有添加,history查看内容如下:

 

Linux隐藏history历史记录

 

如果histcontrol不允许添加空格,那么已提权或是root权限的话,则可以从新设置该变量:

注意:1,export的等号两边不能有空格,否则会报错。2,环境变量名称区分大小写。

 

Linux隐藏history历史记录

 

禁用当前会话的所有历史记录

 

HISTSIZE环境变量用来设置history记录的命令条数,打开命令行,首先设置HISTSIZE为0,默认为1000条,注意只适用于当前打开的会话:

 

Linux隐藏history历史记录

 

清除缓存记录

 

也可以在操作结束后,选择把缓存清除,history的c参数用来清除历史命令,这里测试zsh下回提示not found,可以删除.zsh_history文件,效果一样,从新开个会话或终端,发现历史记录已经被清除了:

 

Linux隐藏history历史记录

 

只针对当前工作记录进行隐藏

 

前面几种都是相当于清除了所有记录,容易被发现,这时就有需求,针对我们操作段来隐藏,即之前的记录不动,从现在开始隐藏,可以通过set +o history命令来实现:

该命令作用将设置历史记录不进行存储,为了更好的隐藏,该命令前可以添加空格,这样该命令本身也会被隐藏:

 

Linux隐藏history历史记录

 

此时通过history命令查看结果:

 

Linux隐藏history历史记录

 

删除指定命令

 

如果想删除history中的指定命令,则可以先grep筛选,然后根据序号进行删除,history命令通过d参数指定要删除命令的序号:

 

Linux隐藏history历史记录

 

需要注意的是,测试时发现不能一次性删除多条,如果删除后,序号会实时改变,再按原来序号删除就错位了。

 

内联命令

 

之前Linux应急文章也记录过关于历史命令的内容,通过内联命令去间接执行其它命令,这里再贴一下,就不从新写了。

通过history查看用户的历史命令,查找蛛丝马迹。有的公司可能会经常ssh远程登录,导致history记录了相关的密码,所以对history有限制,可能只能查看几条,这种情况不方便排查,但也方便了攻击者。

这里顺便测试下如何不被history记录,如果执行以下命令unset命令,则后续命令不会被记录,包括.bash_history和history,上下键也不行。

 

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

 

Linux隐藏history历史记录

 

还有一种是通过类似于vim带内联命令行的,执行命令history不会记录,但工具可能会有日志,例如vim的日志中就记录了内联命令行运行的命令,所以如果使用这种方法,则要记得清理工具日志。

 

Linux隐藏history历史记录

 

总结

 

至于哪个合适,需要看下自己需求,如果想保留原来的记录,不想被太容易发现,则设置set +o history合适,如果不在乎,想清空所有记录,并且不记录,简单粗暴,那么上面那一串unset命令更合适。

原文始发于微信公众号(aFa攻防实验室):Linux隐藏history历史记录

本文标题:Linux隐藏history历史记录
本文链接:
(转载请附上本文链接)
http://vulsee.com/archives/vulsee_2021/0719_14713.html
转载请附本站链接,未经允许不得转载,,谢谢:微慑信息网-VulSee.com » Linux隐藏history历史记录
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

微慑信息网 专注工匠精神

访问我们联系我们