使用Nikto漏洞扫描工具检测网站安全

2008年10月21日 | 10:15分类:linux | 标签: | 85 views

随着信息技术的发展,网络应用越来越广泛,很多企业单位都依靠网站来运营,正因为业务的不断提升和应用,致使网站的安全性显得越来越重要。另一方面,网络 上的黑客也越来越多,而且在利益驱使下,很多黑客对网站发起攻击,并以此谋利。作为网站的管理人员,应该在黑客入侵之前发现网站的安全问题,使网站能更好 的发挥作用。那么究竟如何检查网站的安全隐患和漏洞呢?

下面我们介绍一款开放源代码的Web漏洞扫描软件,网站管理员可以用它对WEB站点进行安全审计,尽早发现网站中存在的安全漏洞。

Nikto是一款开放源代码的、功能强大的WEB扫描评估软件,能对web服务器多种安全项目进行测试的扫描软件,能在230多种服务器上扫描出2600 多种有潜在危险的文件、CGI及其他问题,它可以扫描指定主机的WEB类型、主机名、特定目录、COOKIE、特定CGI漏洞、返回主机允许的http模式等等。它也使用LibWhiske库,但通常比Whisker更新的更为频繁。Nikto是网管安全人员必备的WEB审计工具之一。

Nikto最新版本为2.0版,官方下载网站:http://www.cirt.net/

Nikto是基于PERL开发的程序,所以需要PERL环境。Nikto支持Windows(使用ActiveState Perl环境)、MacOSX、多种Linux 或Unix系统。Nikto使用SSL需要Net::SSLeayPERL模式,则必须在Unix平台上安装OpenSSL。具体的可以参考nikto的 帮助文档。

从官方网站上下载nikto-current.tar.gz文件,在Linux系统解压操作:

tar -xvf nikto-current.tar.gz
gzip -d nikto-current.tar

解压后的结果如下所示:
Config.txt、docs、kbase、nikto.pl、plugins、 templates

Nikto的使用说明:

Nikto扫描需要主机目标IP、主机端口。默认扫描的是80端口。扫描主机目标IP地址可以使用选项-h(host)。下面将扫描IP为192.168.0.1的TCP 80端口,如下所示:

perl nkito.pl –h 192.168.0.1

也可以自定义扫描的端口,可以使用选项-p(port),下面将扫描IP为192.168.0.1的TCP 443端口,如下所示:

perl nikto.pl –h 192.168.0.1 –p 443

Nikto也可以同时扫描多个端口,使用选项-p(port),可以扫描一段范围(比如:80-90),也可以扫描多个端口(比如:80,88,90)。下面扫描主机的80/88/443端口,如下所示:

Perl nikto.pl –h 192.168.0.1 –p 80,88,443

如果运行Nikto的主机是通过HTTP proxy来访问互联网的,也可以使用代理来扫描,使用选项-u(useproxy)。下面将通过HTTP proxy来扫描,如下所示:

Perl nikto.ph –h 192.168.0.1 –p 80 –u

Nikto的更新:

Nikto的升级可以通过-update的命令来更新插件和数据库,如下所示:

Perl nikto.ph –update

也可以通过从网站下载来更新插件和数据库:http://updates.cirt.net/

Nikto的选项说明:

-Cgidirs
扫描CGI目录。

-config
使用指定的config文件来替代安装在本地的config.txt文件

-dbcheck
选择语法错误的扫描数据库。

-evasion
使用LibWhisker中对IDS的躲避技术,可使用以下几种类型:
1.随机URL编码(非UTF-8方式)
2.自选择路径(/./)
3.虚假的请求结束
4.长的URL请求
5.参数隐藏
6.使用TAB作为命令的分隔符
7.大小写敏感
8.使用Windows路径分隔符\替换/
9.会话重组

-findonly
仅用来发现HTTP和HTTPS端口,而不执行检测规则

-Format
指定检测报告输出文件的格式,默认是txt文件格式(csv/txt/htm)

-host
目标主机,主机名、IP地址、主机列表文件。

-id
ID和密码对于授权的HTTP认证。格式:id:password

-mutate
变化猜测技术
1.使用所有的root目录测试所有文件
2.猜测密码文件名字
3.列举Apache的用户名字(/~user)
4.列举cgiwrap的用户名字(/cgi-bin/cgiwrap/~user)

-nolookup
不执行主机名查找

-output
报告输出指定地点

-port
扫描端口指定,默认为80端口。

-Pause
每次操作之间的延迟时间

- Display
控制Nikto输出的显示
1.直接显示信息
2.显示的cookies信息
3.显示所有200/OK的反应
4.显示认证请求的URLs
5.Debug输出

-ssl
强制在端口上使用SSL模式

-Single
执行单个对目标服务的请求操作。

-timeout
每个请求的超时时间,默认为10秒

-Tuning
Tuning 选项控制Nikto使用不同的方式来扫描目标。
0.文件上传
1.日志文件
2.默认的文件
3.信息泄漏
4.注射(XSS/Script/HTML)
5.远程文件检索(Web 目录中)
6.拒绝服务
7.远程文件检索(服务器)
8.代码执行-远程shell
9.SQL注入
a.认证绕过
b.软件关联
g.属性(不要依懒banner的信息)
x.反向连接选项

-useproxy
使用指定代理扫描

-update
更新插件和数据库

例子:使用Nikto扫描目标主机192.168.1.100的主机。

Perl nikto.pl –h 192.168.1.100 –o test.txt

查看test.txt文件,如下所示:

[root@localhost nikto]# perl nikto.pl -h 192.168.1.100
- Nikto v2.03/2.04
---------------------------------------------------------------------------
+ Target IP:          192.168.1.100
+ Target Hostname:    192.168.1.100
+ Target Port:        80
+ Start Time:         2008-10-22 10:02:59
---------------------------------------------------------------------------
+ Server: Apache/2.2.3 (CentOS)
- Allowed HTTP Methods: GET, HEAD, POST, OPTIONS, TRACE
+ OSVDB-877: HTTP method ('Allow' Header): 'TRACE' is typically only used for debugging
 and should be disabled. This message does not mean it is vulnerable to XST.
+ Apache/2.2.3 appears to be outdated (current is at least Apache/2.2.9).
Apache 1.3.39 and 2.0.61 are also current.
+ OSVDB-3233: GET /phpinfo.php : Contains PHP configuration information
+ OSVDB-877: TRACE / : TRACE option appears to allow XSS or credential theft. See http://www.cgisecurity.com/whitehat-mirror/WhitePaper_screen.pdf for details
+ OSVDB-3092: GET /phpmyadmin/ : phpMyAdmin is for managing MySQL databases,
and should be protected or limited to authorized hosts.
+ OSVDB-3268: GET /icons/ : Directory indexing is enabled: /icons
+ OSVDB-3233: GET /icons/README : Apache default file found.
+ 3577 items checked: 8 item(s) reported on remote host
+ End Time:        2008-10-22 10:03:15 (16 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested

Test Options: -h 192.168.1.100
---------------------------------------------------------------------------

通过上面的扫描结果,我们可以发现这个Phpwind论坛网站,是在windows操作系统上,使用Apache/2.2.4版本,Php/5.2.0版本,以及系统默认的配置文件和路径等。

综上所述,Nikto工具可以帮助我们对Web的安全进行审计,及时发现网站存在的安全漏洞,对网站的安全做进一步的扫描评估。

centos linux 安全设置指南

2008年10月21日 | 09:36分类:linux | 标签: | 68 views

1,最小化安全系统,删除不必要的软件,关闭不必要的服务.
# ntsysv
以下仅列出需要启动的服务,未列出的服务一律推荐关闭,必要运行的服务再逐个打开.
atd
crond
irqbalance
microcode_ctl
network
sshd
syslog

2,删除finger程序,具体方法如下
#rpm –e finger

3,BOIS安全设置

4,帐号安全设置
修改/etc/login.def文件
PASS_MAX_DAYS   120 设置密码过期日期
PASS_MIN_DAYS   0   设置密码最少更改日期
PASS_MIN_LEN    10    设置密码最小长度
PASS_WARN_AGE   7  设置过期提前警告天数
确保/etc/shadow为root只读
确保/etc/passwd为root读写

定期用密码工具检测用户密码强度

5, /etc/exports
如果通过NFS把文件共享出来,那么一定要配置”/etc/exports”文件,使得访问限制尽可能的严格.这就是说,不要使用通配符,不允许对根目录有写权限,而且尽可能的只给读权限.在/etc/exports文件加入:
/dir/to/export host1.mydomain.com(ro,root_squash)
/dir/to/export host2.mydomain.com(ro,root_squash)
建议最好不要使用NFS.

6,inetd.conf或xinetd.conf
如果是inetd.conf建议注释掉所有的r开头的程序,exec等
7,TCP_Wrappers
在/etc/hosts.allow中加入允许的服务,在/etc/hosts.deny里加入这么一行ALL:ALL

8,/etc/aliases文件
Aliases文件如果管理错误或管理粗心就会造成安全隐患.把定义”decode”这个别名的行从aliases文件中删除.
编辑aliases,删除或注释下面这些行:
#games: root
#ingres: root
#system: root
#toor: root
#uucp: root
#manager: root
#dumper: root
#operator: root
#decode: root
运行/usr/bin/nesaliases重新加载.

9,防止sendmail被没有授权的用户滥用
编辑sendmail.cf
把PrivacyOptions=authwarnings
改为PrivacyOptions=authwarnings,noexpn,novrfy

10,不响应ping
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

11,使TCP SYN Cookie保护生效
Echo 1 > /proc/sys/net/ipv4/tcp_syncookies

12,删除不必要的用户和组用户
删除的用户,如adm,lp,sync,shutdown,halt,news,uucp,operator,games,gopher等
删除的组,如adm,lp,news,uucp,games,dip,pppusers,popusers,slipusers等
可以设置不可更改位
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshadow

13,防止任何人都可以用su命令成为root
编辑su文件(vi /etc/pam.d/su),加入如下两行
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=wheel
把能su为root的用户加入wheel组
usermod  -G10 username

14,使Control+Alt+Delete关机键无效
编辑inittab文件,注释掉
Ca:ctrlaltdel:/sbin/shutdown –t3 –r now
运行/sbin/init q 使设置生效

15,创建所有重要的日志文件的硬拷贝
如果服务器比较重要,可以考虑把ssh,mail,引导信息等打印出来.在/etc/syslog.conf文件中加入一行.:
Authpriv.*;mail.*;local7.*;auth.*;daemon.info /dev/lp0
执行/etc/rc.d/init.d/syslog restart
或者把日志发送到其它服务器保存

authpriv.*                 /var/log/secure
要把它发送到192.168.0.2,就可以这样修改
authpriv.* @192.168.0.2                /var/log/secure

16,改变/etc/rc.d/init.d目录下的脚本文件的访问许可
chmod –R 700 /etc/rc.d/init.d/*
注意:慎重修改此安全设置

17,/etc/rc.d/rc.local
把此文件中无关的信息全部注释,不让任何人看到任何有关主机的信息.
删除/etc下的issue和issue.net

18,带S位的程序
可以清除s位的程序包括但不限于:
        从来不用的程序;
        不希望非root用户运行的程序;
        偶尔用用,但是不介意先用su命令变为root后再运行.
find / -type f \( -perm 04000 –o –perm -02000 \)  -print
chmod a-s 程序名

19,查看系统隐藏文件
find / -name “.*” –print

20,查找任何人都有写权限的文件和目录
find / -type f  \( -perm -2  -o perm -20 \) ls
find / -type f  \( -perm -2 –o –perm -20 \) ls

21,查找系统中没有主人的文件
find / -nouser –o –nogroup

22,查找.rhosts文件
find /home -name “.rhosts”
如果有,请删除它.

23,收回系统编译器的权限或删除
如: chmod 700 /usr/bin/gcc

CentOS5系统管理书阅读笔记(1716400)

2008年10月18日 | 12:33分类:linux | 标签: | 87 views

昨天报道了第一部完全针对centos系统的中文书籍出版,

第一本关于centos的中文书籍出版了

仔细看了一下,比较通俗易懂,此帖记录一下阅读发现的明显错误和不太明白的地方

  1. 基础篇-》linux与开源软件章-》服务器安装必备知识-》SC SI/SAS/SATA/USB 接口硬盘的名称均以 /dev/sd 开头,此句有误,SATA接口的硬盘盒IDE接口的硬盘都是使用/dev/ha开头,R e ise rFS磁盘格式未用过,。在同一个卷组中,LE 的大小和 PE 是相同的,并且一一对应,是错误的,应该LE的大小应该是PE的大小整数倍
  2. 基础篇-》linux与开源软件章-》服务器方式安装 CentOS,此章有点简单
  3. 基础篇-》安装后的基本设置中更新yum配置文件
    [contrib]
    name=CentOS-$releasever - Contrib
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
    #baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
    baseurl=http://centos.candishosting.com.cn/$releasever/contrib/$basearch/
    http://mirrors.ta139.com/centos/$releasever/contrib/$basearch/
    http://mirror.be10.com/centos/$releasever/contrib/$basearch/
    http://ftp.sjtu.edu.cn/centos/$releasever/contrib/$basearch/
    http://ftp.hostrino.com/pub/centos/$releasever/contrib/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

    没必要在默认配置上添加
    安装必要的软件工具
    # yum install wget bzip2 unzip zip nmap tree lynx fileutils ncftp lftp 按上一节的安装系统,这些基本的工具应该都有安装好了

  4. 基础篇-》Linux 字符界面操作基础-》字符操作界面简介中最后一段
    # # 立即重新启动系统,并在重新启动后强制用fsck检查磁盘
    # shutdown –h -F now

    此处错误,应该是shutdown -r -F now

微软宣布20号起黑屏警解决办法!

2008年10月17日 | 22:23分类:windows | 标签: | 134 views

微软宣布20号起黑屏警告XP专业版盗版用户

试用解决办法:

xp自动更新关闭:我的电脑-属性-自动更新 关闭就可以了

office自动更新关闭方法:
开始-运行-services.msc,找到security center,禁用它就行了

另外一种办法:

可参考此文:http://www.cnbeta.com/articles/67102.htm

Pages: Prev 1 2 3 ...12 13 14 15 16 ...89 90 91 Next