Nessuslinux下安全漏洞扫描工具详解分解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Nessus linux下安全漏洞扫描工具详解
Nessus:
1、Nessus的概述
2、Nessus软件使用演示
3、Nessus的部署
AIDE:
1、aide的概述
2、aide部署
3、aide的初级使用
4、使用aide监控系统中的文件
5、使用aide检测rootkit
1、Nessus的概述
Nessus 被认为是目前全世界最多人使用的系统漏洞扫描与分析软件。
总共有超过75,000个机构使用Nessus 作为扫描该机构电脑系统的软件。
* 提供完整的电脑漏洞扫描服务, 并随时更新其漏洞数据库。
* 不同于传统的漏洞扫描软件, Nessus 可同时在本机或远端上摇控, 进行系统的漏洞分析扫描。
* 其运作效能能随着系统的资源而自行调整。
如果将主机加入更多的资源(例如加快CPU 速度或增加内存大小),其效率表现可因为丰富资源而提高。
* 可自行定义插件(Plug-in)
* NASL(Nessus Attack Scripting Language) 是由Tenable 所开发出的语言,用来写入Nessus的安全测试选项.
* 完整支持SSL (Secure Socket Layer)。
* 自从1998年开发至今已谕十年, 故为一架构成熟的软件。
采用客户/服务器体系结构,客户端提供了运行在X window 下的图形界面,接受用户的命令与服务器通信,
传送用户的扫描请求给服务器端,由服务器启动扫描并将扫描结果呈现给用户;扫描代码与漏洞数据相互独立,
Nessus 针对每一个漏洞有一个对应的插件,漏洞插件是用NASL(NESSUS Attack Scripting Language)编写的一小段模拟攻击漏洞的代码,
这种利用漏洞插件的扫描技术极大的方便了漏洞数据的维护、更新;Nessus 具有扫描任意端口任意服务的能力;
以用户指定的格式(ASCII 文本、html 等)产生详细的输出报告,包括目标的脆弱点、怎样修补漏洞以防止黑客入侵及危险级别。
2、Nessus软件使用演示
--观看老师演示
3、Nessus的部署
1)、安装软件
# rpm -ivh Nessus-4.4.1-es5.i386.rpm
# vim ~/.bash_profile
export PA TH=/opt/nessus/sbin:/opt/nessus/bin:$PATH
export MANPATH=/opt/nessus/man:`manpath`
# source ~/.bash_profile
软件的卸载:
rpm -e Nessus
Nessus软件的组成:
# ll /opt/nessus/
drwxr-xr-x 2 root root 4096 Jan 8 00:47 bin --普通用户使用的命令
drwxr-xr-x 3 root root 4096 Jan 8 00:47 com --根证书
drwxr-xr-x 3 root root 4096 Jan 8 00:47 etc --配置文件
drwxr-xr-x 3 root root 4096 Jan 11 14:11 lib --扫描时使用的插件
drwxr-xr-x 4 root root 4096 Jan 8 00:47 man
drwxr-xr-x 2 root root 4096 Jan 8 00:47 sbin
drwxr-xr-x 3 root root 4096 Jan 8 00:47 var --账号/日志/报告/web页面
2)启动nessus,并使用WEB客户端访问
# service nessusd start
# chkconfig nessusd on
# netstat -tnlp|grep nessus
tcp 0 0 0.0.0.0:8834 0.0.0.0:* LISTEN 13908/nessusd --web访问端口
tcp 0 0 0.0.0.0:1241 0.0.0.0:* LISTEN 13908/nessusd --nessus客户端访问的端口
tcp 0 0 :::1241 :::*
LISTEN 13908/nessusd
首先要求可以上网。
配置网络
3)打开浏览器访问https://192.168.1.10:8384,进行初始化配置
申请序列号
/products/nessus/nessus-plugins/obtain-an-activation-code 注册Nessus
等待插件的更新
访问之前需要在客户端上给浏览器安装flash插件:
# rpm -ivh flash-plugin-10.3.183.11-release.i386.rpm --装完后需要重启浏览器
# rpm -ivh flash-plugin-11.2.202.285-release.x86_64.rpm
https://192.168.0.182:8834/flash.html
4)在Nessus WEB界面上的操作(先扫自己,再扫别的主机):
1)新建扫描策略(定义扫描策略/扫描目标主机使用账号密码等等)
2)扫描指定的主机(192.168.0.1 192.168.0.0/24)
3)查看报告,导出报告。
4)修复漏洞
AIDE --(文件系统)高级入侵检测
关注的三洋东西:
二进制
主配置文件
基准数据库
1、aide的概述
AIDE(Adevanced Intrusion Detection Environment,高级入侵检测环境)是个入侵检测工具,主要用途是检查文本的完整性。
AIDE能够构造一个指定文档的数据库,他使用aide.conf作为其配置文档。
AIDE数据库能够保存文档的各种属性,包括:权限(permission)、索引节点序号(inode number)、所属用户(user)、所属用户组(group)、文档大小、最后修改时间(mtime)、创建时间(ctime)、最后访问时间(atime)、增加的大小连同连接数。
AIDE还能够使用下列算法:sha1、md5、rmd160、tiger,以密文形式建立每个文档的校验码或散列号。
常见的入侵检测软件:
1、tripwire --操作比较复杂
2、aide --用以代替tripwire的一款新产品
文件系统入侵检测的原理:
1、当系统处于健康状态时,把系统所有的文件做各种指纹的检验,得出一个检验基准数据库。
2、不是所有的文件都需要保存指纹,临时文件(/var/log | /tmp | /var/tmp | /proc | /sys | /dev/shm...)
3、需要检验文件是否被更改,只需要把基准数据对应指纹值做对比,就可以得知哪些文件被更改过。
4、每天把检验的结果以邮件或者其它方式发送管理员。
2、aide部署
1.从结帽官方获取最新的src rpm包
# wget ftp:///redhat/linux/enterprise/5Server/en/os/SRPMS/aide-0.13.1-6.el5.src.rpm
# rpm -ivh aide-0.13.1-6.el5.src.rpm
# rpmbuild -bb /usr/src/redhat/SPEC/aide.spec
# rpm -ivh /usr/src/redhat/RPMS/i386/aide-0.13.1-6.el5.src.rpm
# yum -y install aide
Installed:
aide.x86_64 0:0.14-3.el6_2.2
Complete!
3、aide的初级使用
1)新建一个目录,里边放一些测试文件
# mkdir /aide_check_test
# cp /etc/hosts* /aide_test_check
# grep -v ^# /etc/aide.conf |grep -v ^$ > /etc/aide2.conf
# mv /etc/aide2.conf /etc/aide.conf
mv: overwrite `/etc/aide.conf'? y
2)定义配置文件,及被临控的目录
# cp /etc/aide.conf /etc/aide.conf.bak
# vim /etc/aide.conf
@@define DBDIR /var/lib/aide --基准数据库目录
@@define LOGDIR /var/log/aide
database=file:@@{DBDIR}/aide.db.gz --基准数据库文件database_out=file:@@{DBDIR}/aide.db.new.gz --更新数据库文件gzip_dbout=yes
verbose=5
report_url=file:@@{LOGDIR}/aide.log
report_url=stdout
R = p+i+n+u+g+s+m+c+acl+xattrs+md5
L = p+i+n+u+g+acl+xattrs
> = p+u+g+i+n+S+acl+xattrs
ALLXTRAHASHES = sha1+rmd160+sha256+sha512+tiger EVERYTHING = R+ALLXTRAHASHES
NORMAL = R+rmd160+sha256
DIR = p+i+n+u+g+acl+xattrs
PERMS = p+i+u+g+acl
LOG = >
LSPP = R+sha256
DA TAONL Y = p+n+u+g+s+acl+xattrs+md5+sha256+rmd160+tiger /aide_check_test EVERYTHING
3)初始化数据库:
rpm -ql aide 可查
# rpm -ql aide
/etc/aide.conf
/etc/logrotate.d/aide
/usr/sbin/aide
# /usr/sbin/aide --help
# /usr/sbin/aide --config=/etc/aide.conf --init
AIDE, version 0.13.1
### AIDE database at /var/lib/aide/aide.db.new.gz initialized.
4)把初始化的数据库当做基准数据库
# cp /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
5)测试AIDE能否发现文件更改
什么都没有改动之前,先check一次:
# /usr/sbin/aide --config=/etc/aide.conf --check
AIDE, version 0.14
### All files match AIDE database. Looks okay!
# cp /etc/passwd /aide_test_check/
# rm -rf /aide_test_check/hosts
# echo hello > /aide_test_check/hosts.allow
# /usr/sbin/aide -c /etc/aide.conf --check
AIDE found differences between database and filesystem!!
Start timestamp: 2012-07-10 15:03:17
Summary:
Total number of files: 6
Added files: 1
Removed files: 1
Changed files: 2
---------------------------------------------------
Added files:
---------------------------------------------------
added: /aide_test_check/passwd
---------------------------------------------------
Removed files:
---------------------------------------------------
removed: /aide_test_check/hosts
---------------------------------------------------
Changed files:
---------------------------------------------------
changed: /aide_test_check
changed: /aide_test_check/hosts.allow
--------------------------------------------------
Detailed information about changes:
---------------------------------------------------
Directory: /aide_test_check
Mtime : 2012-07-10 14:43:18 , 2012-07-10 14:54:40 Ctime : 2012-07-10 14:43:18 , 2012-07-10 14:54:40
File: /aide_test_check/hosts.allow
Size : 161 , 166
Mtime : 2012-07-10 14:43:18 , 2012-07-10 14:54:40
Ctime : 2012-07-10 14:43:18 , 2012-07-10 14:54:40
Inode : 1678982 , 1678985
MD5 : Jf16ip7EeUlg7xmKYPZtIg== , fbZt8P2s5dOjQHh3Wer2UQ==
RMD160 : sZxwc595gS7oA92r3vt/0bf6IvE= , XIEY/gh5Xl+ucwrwLkbk8DFr0Mo= SHA256 : 2xfzPtX0u7LS231etvkgOCGqrDK0ViKj , M5Gh2f/I2GwR4fF6eNhF+5LM3gob226S
6)如果上面的更改合法的操作,需要更新基准数据库:
# /usr/sbin/aide -c /etc/aide.conf --update
# cd /var/lib/aide
# cp aide.db.new.gz aide.db.gz
cp: overwrite `aide.db.gz'? y
7)把报告发往邮箱:
# /usr/sbin/aide -c /etc/aide.conf --check |mail -s "test aide" root@localhost
4、使用aide监控系统中的文件
1)修改配置文件,让aide监控系统中的所有文件
# mv /etc/aide.conf.bak /etc/aide.conf --清空前面操作
# rm -rf /var/lib/aide/aide.db.*
# vim /etc/aide.conf
@@define DBDIR /var/lib/aide
@@define LOGDIR /var/log/aide
database=file:@@{DBDIR}/aide.db.gz --基准数据库
database_out=file:@@{DBDIR}/aide.db.new.gz --每次update时会产生更新
gzip_dbout=yes
verbose=20
report_url=file:@@{LOGDIR}/aide.log
report_url=stdout
R = p+i+n+u+g+s+m+c+acl+xattrs+md5
L = p+i+n+u+g+acl+xattrs
> = p+u+g+i+n+S+acl+xattrs
ALLXTRAHASHES = sha1+rmd160+sha256+sha512+tiger
EVERYTHING = R+ALLXTRAHASHES
NORMAL = R+rmd160+sha256
DIR = p+i+n+u+g+acl+xattrs
PERMS = p+i+u+g+acl
LOG = >
LSPP = R+sha256
DA TAONL Y = p+n+u+g+s+acl+xattrs+md5+sha256+rmd160+tiger /boot NORMAL
/bin NORMAL
/sbin NORMAL
/lib NORMAL
/opt NORMAL
/usr NORMAL
/root NORMAL
!/usr/src
!/usr/tmp
/etc PERMS
!/etc/mtab
!/etc/.*~
/etc/exports NORMAL
/etc/fstab NORMAL
/etc/passwd NORMAL
/etc/group NORMAL
/etc/gshadow NORMAL
/etc/shadow NORMAL
/etc/security/opasswd NORMAL
/etc/hosts.allow NORMAL
/etc/hosts.deny NORMAL
/etc/sudoers NORMAL
/etc/skel NORMAL
/etc/logrotate.d NORMAL
/etc/resolv.conf DA TAONL Y
/etc/nscd.conf NORMAL
/etc/securetty NORMAL
/etc/profile NORMAL
/etc/bashrc NORMAL
/etc/bash_completion.d/ NORMAL
/etc/login.defs NORMAL
/etc/zprofile NORMAL
/etc/zshrc NORMAL
/etc/zlogin NORMAL
/etc/zlogout NORMAL
/etc/profile.d/ NORMAL
/etc/X11/ NORMAL
/etc/yum.conf NORMAL
/etc/yumex.conf NORMAL
/etc/yumex.profiles.conf NORMAL
/etc/yum/ NORMAL
/etc/yum.repos.d/ NORMAL /var/log LOG
/var/run/utmp LOG
!/var/log/sa
!/var/log/aide.log
/etc/audit/ LSPP
/etc/libaudit.conf LSPP
/usr/sbin/stunnel LSPP
/var/spool/at LSPP
/etc/at.allow LSPP
/etc/at.deny LSPP
/etc/cron.allow LSPP
/etc/cron.deny LSPP
/etc/cron.d/ LSPP
/etc/cron.daily/ LSPP
/etc/cron.hourly/ LSPP
/etc/cron.monthly/ LSPP
/etc/cron.weekly/ LSPP
/etc/crontab LSPP
/var/spool/cron/root LSPP /etc/login.defs LSPP
/etc/securetty LSPP
/var/log/faillog LSPP
/var/log/lastlog LSPP
/etc/hosts LSPP
/etc/sysconfig LSPP
/etc/inittab LSPP
/etc/grub/ LSPP
/etc/rc.d LSPP
/etc/ld.so.conf LSPP
/etc/localtime LSPP
/etc/sysctl.conf LSPP
/etc/modprobe.conf LSPP /etc/pam.d LSPP
/etc/security LSPP
/etc/aliases LSPP
/etc/postfix LSPP
/etc/ssh/sshd_config LSPP /etc/ssh/ssh_config LSPP
/etc/stunnel LSPP
/etc/vsftpd.ftpusers LSPP
/etc/vsftpd LSPP
/etc/issue LSPP
/etc/ LSPP
/etc/cups LSPP
!/var/log/and-httpd
/root/.* PERMS
2)初始化aide,并生成基准数据库文件
# aide -c /etc/aide.conf --init --根据当前系统中文件数据的多少,所需要的时间不等,当前我这个系统花了20分钟左右
# ls /var/lib/aide/ --基准数据库的存放位置,在上面的配置文件中也有定义
aide.db.new.gz 这是一个很重要的文件,一般可以把它放在光盘或者加密分区中保存
# cd /var/lib/aide --把基准数据库拷贝一份给当前系统的AIDE使用
# cp aide.db.new.gz aide.db.gz
3)使用AIDE检测系统中的文件是否被修改:
aide --check --检测被监控的文件是否发生变化,结果在屏幕输出
aide --check| mail -s "aide check about `hostname`,data:`date`" root@localhost
--检测被监控的文件是否发生变化,把结果发给管理员,可以结合crontab完成
4)更基准数据库:
注意:
1)更新的前提的系统中文件的改变是合法合理,不是非法篡改的则要更新基准数据库
2)更新完后要备份新的基准数据库到安全的存储介质中
# /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.new.gz`date +%F` --备份旧的基准数据库
# aide --update --又需要20分钟的文件扫描,真是悲具,所以在生产环境需要选择系统不繁忙的时段进行
# cp /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz --把旧的基准数据库替换成最新的
5)把aide程序、配置文件和基准数据库写入只读设备中,防止被恶意操作:
# mkdir /tmp/aide
# cp /etc/aide.conf /var/lib/aide/aide* /usr/sbin/aide /tmp/aide
# yum -y install genisoimage -----打包成iso的工具
# cd /tmp/ && mkisofs -V aide_DBS -J -R -o aide.iso aide/ --把所有的文件制作成光盘
# rpm -e aide
# rm -rf /etc/aide.conf /var/lib/aide/aide* /usr/sbin/aide --把系统中原来的文件删除
把aide.iso 放到其他安全的机子中保存。
5、使用aide检测rootkit
# yum list | grep glibc ----要装这个32位的glibc glibc.i686
被入侵之后怎么恢复:
增加的都删掉
被替换的都换回正常的
被开启的进程都关闭。