Linux隐藏登录和清除历史命令以及其他相关安全操作示例

隐藏登录

ssh -T root@xxx.xxx.xxx.xxx /bin/bash -i 

命令拆解
-T :告诉ssh客户端,不要分配一个TTY(伪终端)
root :连接用户xxx.xxx.xxx.xxx :连接的服务器ip地址
/bin/bash :在远程服务器上启动一个交互式的Bash shell。
效果如下,默认登录一个终端的时候,会有一个pts/0,但是这里已经成功隐藏了登录

清楚当前的history记录

清楚当前会话的命令历史记录
history -r

history -r将历史命令文件中的命令(/.bash_history) 读入当前历史命令缓冲区.
history -r 把历史文件(/.bash_history)附加到内存数据中了

或者 不给当前的shell留时间去处理,内存的命令也没时间写入到文件
kill -9 $$

隐藏Vim操作记录

使用 vim时候,会在 ~/.viminfo留下操作记录,建议使用 vi 。或者在vim中使用命令关闭记录。
:set history=0 :!command 

隐藏文件修改时间

touch -r A B ,将 B 文件的日期改为 A 文件的日期
touch -r appsetting.json hehe.txt

虽然如此,但还是能用stat命令看到修改时间。

stat中的三个属性意思是

  • 最近访问(access time):表示我们最后一次访问(仅仅是访问,没有改动)文件的时间
  • 最近更改(modify time):表示我们最后一次修改文件的时间
  • 最近改动(change time):表示我们最后一次对文件属性改变的时间,包括权限,大小,属性等等

使用find命令,查找24小时内被修改过的文件
find ./ -ctime 0 -name 'hehe.txt'

锁定文件

root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了。此权限用ls -l是查看不出来的,从而达到隐藏权限的目的。chattr命令不能保护/、/dev、/tmp、/var目录。lsattr命令是显示chattr命令设置的文件属性。

chattr +i shell.php  #锁定文件
rm -rf shell.php     #提示禁止删除

lsattr  shell.php    #属性查看
chattr -i shell.php  #解除锁定
rm -rf shell.php     #删除文件

让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件
chattr +a /var/log/messages

清除系统日志痕迹

/var/log/btmp   记录所有登录失败信息,使用lastb命令查看
/var/log/lastlog 记录所有用户最后一次登录时间的日志,使用lastlog命令查看
/var/log/wtmp    记录所有用户的登录、注销信息,使用last命令查看
/var/log/utmp    记录当前已经登录的用户信息,使用w,who,users等命令查看
/var/log/secure   记录与安全相关的日志信息
/var/log/message  记录系统启动后的信息和错误日志

直接覆盖日志文件
echo > /var/log/btmp 
cat /dev/null >  /var/log/secure

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

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

清除web日志入侵痕迹

直接替换日志ip地址
sed -i 's/192.168.166.85/192.168.1.1/g' access.log

清除部分相关日志
cat /var/log/nginx/access.log | grep -v evil.php > tmp.log

把修改过的日志覆盖到原日志文件
cat tmp.log > /var/log/nginx/access.log/

文件安全删除工具

# shred 命令 安全的从硬盘上擦除数据,默认覆盖3次,通过 -n指定数据覆盖次数
shred -f -u -z -v -n 8 hrhe.txt 

# wipe 使用特殊的模式来重复地写文件,从磁性介质中安全擦除文件
wipe filename

posted @ 2024-11-17 21:48  皇帽讲绿帽带法技巧  阅读(39)  评论(0编辑  收藏  举报