校验Linux程序是否被黑客修改

一个黑客突破你的层层防御后,修改你的程序或者覆盖了你的工具时。确定一个已安装程序的所有文件,有没有被修改过的途径之一就是使用RPM包校验功能
如果图片排版有任何错误,欢迎访问我的简书www.jianshu.com/p/906e39353e09
RPM包校验功能
此功能可以将你现在的程序所有文件,与当初安装时记录到数据库中的信息进行比对。从而查出哪些文件目录的权限、内容等等是否被修改过。
1.安装一个zsh软件用来进行实验
[root@centos6 app]# rpm -ivh zsh-4.3.11-4.el6.centos.2.x86_64.rpm
2.查看数据库文件
在/var/lib/rpm中都是是安装软件时留下的数据库文件,其中以__db开头的是缓存文件并非正真的数据文件,这个文件会保留程序包名称及版本、依赖关系、功能说明、包安装后生成的各文件路径及校验码信息

3.查看zsh软件所有的文件以及目录
使用rpm -ql zsh 可以查看出这个软件安装时的所有目录以及文件,待会我随机挑选一个模拟被黑客所修改。

4.挑选出一个文件
随机挑选出一个文件,使用file查看文件类型为文本。
然后往文本中随机添加一些字符,来模拟被黑客修改。

5.向vcs_info这个文件中随机添加一些字符。

6.使用RPM包校验功能,发现已经有3个地方被修改过
S代表文件大小
5代表MD5
T代表mtime
使用 rpm -v csh 即可查看哪些文件与当初安装时有所不同。如果全是.....没有任何字母代表软件没有被修改过。

7.包校验各项参数的含义

在日常运维中就可以利用RPM自带的包校验功能即可查验出哪些软件,被认为的修改过、破坏过。使自己的系统更加安全
校验Linux程序是否被黑客修改的更多相关文章
- Linux内网环境DNS修改域名指向,JAVA应用程序能否实时切换的问题总结
公司内网环境中许多调用资源(数据库.web接口等)都是通过内网DNS服务来进行域名-IP的映射. 但经常出现DNS映射修改完毕后,应用中连接的资源迟迟没有变更. 以前一直笼统的认为是linux的dns ...
- cygwin,在win中开发linux程序
cygwin,在win中开发linux程序 http://www.cygwin.cn/site/info/show.php?IID=1001 很多用windows的朋友不习惯于用linux的开发环境 ...
- Linux程序包管理rpm与yum
Linux程序包管理 Linux中软件的安装主要有两种形式:一种是直接下载源代码包自行编译后安装,另一种直接获取rpm软件包进行安装. 程序的组成部分: 二进制程序:程序的主体文件,比如我们运行一个l ...
- 用VC6开发嵌入式LINUX程序
黄山松 (Tom Huang) 发表于博客园http://www.cnblogs.com/tomview/ 首先说明一下,VC6自然不能直接开发LINUX程序,主要使用的是它的编辑环境而已,但是作为一 ...
- 编写出色的GNU/Linux程序
http://advancedlinuxprogramming.com提供了本书电子版的免费下载. 1 与执行环境交互 关于参数 C语言程序的main()函数使用两个参数和执行环境交互--(int)a ...
- linux程序自启动和新建linux服务的方法
1 linux创建自启动程序 自启动的两种方法,都经过自己测试.1.1 自启动程序方法1: 在etc/rc.local在里面加入/home/robin/code/autoruntest & ...
- 应用 Valgrind 发现 Linux 程序的内存问题
如何定位应用程序开发中的内存问题,一直是 inux 应用程序开发中的瓶颈所在.有一款非常优秀的 linux 下开源的内存问题检测工具:valgrind,能够极大的帮助你解决上述问题.掌握 valgri ...
- 应用 Valgrind 发现 Linux 程序的内存问题(转)
Valgrind 概述 体系结构 Valgrind 是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合.Valgrind由内核(core)以及基于内核的其他调试工具组成.内核类似于一个 ...
- Linux程序写入oralce数据库中文显示为问号??? 代码实现设置环境变量!
Linux程序写入oralce数据库中文显示为问号??? 1.问题介绍 根本原因是字符集的问题,是数据库的字符集和写入程序的linux系统的字符集不一致导致: 但是用export NLS_LANG=& ...
随机推荐
- spring 声明式事务管理详解
前言:spring框架对于事务管理提供了两种方案.一,编程式事务.二,声明式事务.本例主要剖析 声明式事务. 何为声明式事务: 通过spring的配置文件配置事务规则,或使用spring @Trans ...
- Ajax发送数据
- Javascript的异步和回调
介绍JavaScript的一些同步.异步.单线程多线程,回调基本概念:https://segmentfault.com/a/1190000002999668
- python selenium+phantomjs alert()弹窗报错
问题:用selenium+phantomjs 模拟登陆,网页用JavaScript的alert("登陆成功")弹出框,但是用switch_to_alert().accept()报错 ...
- img标签实现和背景图一样的显示效果——object-fit和object-positon
不知大家在做前端页面的时候,有没有遇到类似这样的问题:有一个不是正方形的图片,可能是宽度大于高度的,也可能是高度大于宽度的,而你又并不想用背景图的方式来做,要实现用img标签来让此图片显示出一个正方形 ...
- VSFTPD 源码安装升级
/usr/local/sbin/vsd -v cp /usr/local/sbin/vsd /usr/sbin/vsd 制作启动脚本 vim /etc/xinetd.d/vsd disable = y ...
- mkdir与mkdirs的区别
mkdir与mkdirs的区别 项目中需要在代码中读取或创建文件保存路径,用到了mkdir,查看还有个mkdirs方法,这里记录一下两者的区别. 1.关于两者的说明如下: boolean mkdir( ...
- HDU [P1704] Rank
传递闭包裸题 但是本题的Floyd一定要优化,不然会T cpp #include <iostream> #include <cstdio> #include <cstri ...
- 一步一步从原理跟我学邮件收取及发送 12.telnet命令行收一封信pop3
本系列上一篇文章中我们就说到了,这一次我们要说 pop3 收信了.虽然我觉得应该先说完 mime 格式,不过估计大家已经不耐烦了 -- 怎么老在说发送啊?我们要看收取! 好吧,来啦,来啦!收取邮 ...
- mysql 修改默认字符集为utf8
MySQL 5.5, all you need is: [mysqld] character_set_client=utf8 character_set_server=utf8 collation_s ...