Linux隐藏history历史记录

admin 2021年7月20日09:20:41评论246 views字数 1387阅读4分37秒阅读模式

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历史记录

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年7月20日09:20:41
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Linux隐藏history历史记录https://cn-sec.com/archives/428494.html

发表评论

匿名网友 填写信息