• Exp6 信息搜集与漏洞扫描


    信息搜集与漏洞扫描

    0x1 被动信息搜集

    被动信息搜集是指,使用一些公开的、间接的信息搜索技巧,在不接触到目标系统的情况下,挖掘目标信息。

    如果掌握一定的技巧,甚至可以确定目标网络中使用的操作系统和网站服务器类型。

    whois 查询

    我曾经就读的小学是江苏省常州市延陵小学,目前官网域名为czylxx.net

    我们可以对它进行whois查询

    1-1

    我们还可以获得注册人的部分信息(姓名,邮箱)

    1-2

    Netcraft查询

    Netcraft这个网站可以查询到特定网站的IP地址,依然以czylxx.net为例

    1-3

    我们甚至可以看到主机信息——win server 2012操作系统,IIS/8.5的web服务器

    针对这个IP——61.160.213.115进行一次whois查询

    1-4

    可以看到网站的服务器提供商。

    IP2Loaction

    如果目标在国内的话,我们更推荐纯真IP库(http://www.cz88.net)对目标的地理位置进行查询

    1-5

    nslookup

    我们再使用nslookup获取czylxx.net的更多信息

    1-6

    我们同样可以看到邮件服务器的DNS记录指向hostmaster.xinnetdns.com

    Google Hacking

    google搜索引擎的功能非常强大,掌握高超的搜索技巧,通过它就能找到相当多的信息

    使用VPN或代理服务器进入google,在czylxx.net域名下,搜索一些excel表格

    1-7

    google的搜索技巧非常多,但限于篇幅和个人兴趣,这里就不展开了

    黑客的搜索引擎——fofa.so

    FOFA是白帽汇推出的一款网络空间资产搜索引擎。它能够帮助用户迅速进行网络资产匹配、加快后续工作进程。例如进行漏洞影响范围分析、应用分布统计、应用流行度排名统计等。

    我们通过它来看一下我们学校的服务器中间件版本信息

    1-0-1

    研究生部的网站用的是IIS/7.0

    1-0-2

    我们还发现了一个从未见过的域名 xgc.besti.edu.cn

    1-0-3

    但是在浏览器中打不开,应该是现在已经访问不了。

    0x2 主动信息搜集

    主动信息搜集需要与目标系统进行直接的交互,从而进行更深入的了解。

    在我的实验环境中

    • 攻击机Kali,IP: 10.0.2.6
    • 靶机OWASP BWA,IP: 10.0.2.10

    限于篇幅与个人兴趣,这部分我只介绍nmap的使用。

    nmap基础

    nmap的参数虽然很多,但常用的只有那么几个。

    下面是nmap支持的部分扫描类型:

    • -sT TCP connect扫描,即“全连接扫描”,该扫描建立完整的三次握手过程
    • -sS TCP SYN扫描,即“半连接扫描”
    • -sP ping扫描,通过ICMP echo请求探测主机(原理同ping)
    • -sU UDP扫描

    还有TCP FIN扫描,ACK扫描, 圣诞树扫描之类的,看帮助文档就行了。

    nmap还提供了如下的扫描选项:

    • -A 完全扫描,提供所有能提供的信息
    • -O 操作系统探测
    • -sV 服务版本探测
    • -p 指定需要扫描的端口范围

    nmap还可以和metasploit的数据库进行绑定,在MSF中使用db_nmap,它的参数和nmap完全一致,而且结果会保存到MSF的数据库中。

    实战nmap端口扫描

    先进行一次主机发现,使用-sn选项对探索子网内活跃的主机。

    2-0

    我们发现10.0.2.10这个IP地址的主机是活跃的

    接着使用基本的端口扫描功能对OWASP靶机进行扫描,这里使用TCP SYN扫描

    2-1

    TCP SYN扫描比较隐秘,同时也是nmap的默认扫描方式。

    接下来看看OWASP靶机的服务版本信息,直接使用-A选项

    2-2

    -A选项相当于同时使用 -sV选项-O选项

    使用nmap脚本

    nmap的扩展性也非常强,可以编写脚本来完成一些工作。

    nmap本身自带了一些脚本,在Kali中,/usr/share/nmap/scripts目录下就是nmap所有的自带脚本。

    2-3

    使用--script=<script-name> 选项就可以使用这些脚本了。

    这里使用ssh-brute脚本尝试暴力破解ssh口令

    2-4

    nmap自带了口令字典,可以进行扫描(但是默认的字典成功率并不高)

    2-5

    非常幸运,我们破解成功了!存在用户名user口令user的ssh登录账号,以及用户名root口令ubuntu的ssh用户。

    这是nmap给出的username.lst,里面是用户名

    2-7

    nmap默认的password.lst口令字典

    2-6

    0x3 针对性扫描

    接下来,我们使用metasploit对目标进行针对性扫描,获取特定操作系统、服务、软件以及配置缺陷等信息。

    我们看一下linux metasploit目标提供的服务有那些:

    3-0

    然后我们对这些信息进行针对性扫描

    数据库口令猜测

    我们发现linux metasploit靶机中存在mysql数据库,postgresql数据库。

    现在就使用metasploit对数据库进行口令猜测

    mysql数据库口令破解——使用mysql_login模块

    我偷了个懒,直接复制了nmap的口令字典和用户名字典,然后设置如下参数

    set RHOSTS 10.0.2.11
    set STOP_ON_SUCCESS true
    set PASS_FILE passwords
    set USER_FILE usernames
    set USER_AS_PASS true
    set THREADS 50
    

    3-1

    输入run,运行该辅助模块,得到如下结果

    3-2

    postgresql数据库的弱口令破解也是如此,这里就不演示了。

    大家可以在weakpass.com网站上下载一些口令字典(虽然我还不知道好不好用)

    FTP扫描

    metasploit可以针对特定服务,对一个网段中的主机进行扫描,这里我们以FTP服务为例子。

    设置参数如下:

    use auxiliary/scanner/ftp/ftp_version
    set RHOSTS 10.0.2.0/24
    set THREAD 50
    

    我们可以发现在10.0.2.0/24这个网段中,有两台主机开启了FTP服务

    3-3

    然后我们看一下这些FTP是否允许匿名用户登录,使用scanner/ftp/anonymous模块

    3-4

    很可惜,没有支持匿名登录的FTP服务器

    3-5

    我们也可以继续尝试弱口令破解,这里就不演示了。

    对于其他服务器,比如SSH、Telnet、SMB等等,这里的思路都是类似的,先扫描发现这些服务,然后尝试弱口令破解。

    0x4 漏洞扫描

    接下来,我们使用漏洞扫描器进行漏洞扫描。使用漏洞扫描器会产生比较大的流量,如果要干坏事,就别用漏洞扫描器了,很容易被别人发现。

    但如果是自己利用漏洞扫描器发现自己系统的漏洞和未打的补丁,漏洞扫描器就非常方便了。

    依然以靶机linux metasploit(IP: 10.0.2.11)为目标,对它进行漏洞扫描

    使用OpenVAS进行漏洞扫描

    Kali上安装Openvas非常简单

    root@kali:~# apt-get update
    root@kali:~# apt-get dist-upgrade
    
    root@kali:~# apt-get install openvas
    root@kali:~# openvas-setup
    

    安装完成后,会显示admin账号的口令,用它登录web应用后,改一个简单一点的口令就行。

    记得执行openvas-check-setup命令判断是否安装成功

    4-1

    直接通过Task Wizard创建任务,输入要扫描的主机的IP即可

    4-2

    openvas扫描完毕后,我们来看一看生成的报告

    4-3

    有9个漏洞被openvas标记为“高危”的漏洞,我们来看一下

    4-4

    SSH的弱口令可以被暴力破解,mysql和postgresql都使用了默认的用户名口令

    openvas甚至给出了SSH的一些用户名和口令(还差root:ubuntu这一个账户)

    4-5

    再看另一个标记为“high”的漏洞:

    4-6

    这应该是一个关于Apache的漏洞(CVE-2011-3192),容易通过这个漏洞来引发“拒绝服务”(DOS)攻击

    在exploit-db中甚至有攻击代码

    4-7

    其实nmap中就有检测这个漏洞的脚本存在,我们看一下:

    4-8

    接着用nmap扫描一下:

    4-9

    我觉得OpenVAS就是用nmap发现了这个漏洞的。

    至于解决办法吗……更新apache版本吧(笑)

    也可以看一看https://wiki.apache.org/httpd/CVE-2011-3192给出的迁移办法吧,很详细。

    基础问题解答

    (1) 哪些组织负责DNS,IP的管理?

    答:

    顶级的管理者是ICANN,ICANN理事会是ICANN的核心权利机构,它设立三个支持组织,分别是:

    • 地址支持组织(ASO)负责IP地址系统的管理。
    • 域名支持组织(DNSO)负责互联网上的域名系统(DNS)的管理。
    • 协议支持组织(PSO)负责涉及Internet协议的唯一参数的分配。

    5个地区性注册机构:

    • ARIN主要负责北美地区业务
    • RIPE主要负责欧洲地区业务
    • APNIC主要负责亚太地区业务
    • LACNIC主要负责拉丁美洲美洲业务
    • AfriNIC主要负责非洲地区业务。

    (2) 什么是3R信息

    答:

    • Registrant:注册人
    • Registrar:注册商
    • Registry:官方注册局

    (3) 评价一下扫描结果的准确性

    答:还是挺不错的,linux metasploit的漏洞信息在《Metasploit魔鬼训练营》里面都列出来了,OpenVAS给出的扫描结果虽然没有具体到CVE编号,但都给出存在漏洞的服务器信息,也就是都沾边了。

    实验新得与体会

    从这篇报告中,我希望大家可以看出我对nmap工具情有独钟

    我第一次接触nmap是在冯雁老师的课上,当时用的是nmap的图形工具zenmap

    说来也奇怪,我在冯雁老师的课上用的最多的工具其实是wireshark,但我到现在看到wireshark的数据包都一头雾水。

    对nmap的使用我已经有自己的“三板斧”了,如果我能熟悉Lua语言的话,就可以编写自己的nmap脚本了。

    不过我以后也没时间玩nmap了吧。

    番外——Web应用的漏洞扫描

    Web应用的攻防技术比较热门,和系统攻防相比,Web应用的攻防技术门槛比较低。

    诸如pwn、逆向、二进制、内存攻防技术等等这些方向,对初学者来说不太友好,学习曲线很陡峭。

    我感觉自己在一学期的学习中掌握基础的Web应用的攻防技术还是有一点点希望的。

    在走出校园之前,我想尽可能的多体会一些攻防技术之美,就稍微探索一下Web方向吧。

    这部分内容参考《Metasploit魔鬼训练营》

    目标靶机OWASP BWA,IP地址:10.0.2.10

    使用W3AF扫描XSS漏洞

    W3AF是一款开源的Web应用攻击和统计平台,《Metasploit魔鬼训练营》对它的评价较高。

    W3AF的安装相当麻烦,使用过程中的参数的配置也比较繁琐,GUI界面操作一般。

    不过,《Metasploit魔鬼训练营》没有介绍“广为流传”的Burp Suite,而是选择了W3AF,应该是有原因的。

    让我们尝试使用一下W3AF吧。

    ww-0

    扫描目标

    我们的扫描的对象是OWASP中的一个Web应用——Mutillidae。

    ww-0-1

    主要的探测目标是找到该web应用的XSS漏洞。

    因此,这次扫描用到插件有audit(审计模块)中的xss,crawl(爬虫)中的web_spider

    配置扫描参数

    使用w3af_console打开W3AF的命令行,进行如下的配置

    plugins
    audit xss   				// 审计XSS漏洞
    crawl web_spider			// 配置网页爬虫
    crawl config web_spider		
    set only_forwad True
    back
    output html_file			//配置输出格式,选择了html和cvs两种输出方式
    output cvs_file
    back
    target						//设置扫描目标
    set target http://www.dvssc.com/mutillidae
    back
    start
    

    ww-1

    扫描结果

    W3AF发现了这个Web应用存在的XSS漏洞,并给出了报告

    下面是HTML格式的报告,报告比较长,不好截图

    ww-2

    我们在看一下CVS格式的报告,直接用Excel打开就可以了

    ww-3

    我们先把这个报告放在这里,等到后面做Web攻防实验的时候,在对它进行实际操作。

    使用sqlmap探测SQL注入点

    mutilliade有专门的SQL注入练习区。W3AF虽然也可以扫描SQL注入漏洞,但它毕竟过于臃肿,而且难用,我们需要更专门的工具。

    我们使用sqlmap这个注入神器对这里进行探测。

    s-1

    扫描登录表单

    首先输入sqlmap -u http://www.dvssc.com/mutilliade/index.php?page=login.php --forms,开始扫描

    s-2

    等待片刻,并与sqlmap进行一些交互后,得到如下信息

    s-3

    也就是说这个注入点存在基于错误的盲注基于时间的盲注UNION查询的SQL注入点

    我们甚至知道了后台数据库版本,Web应用的平台信息

    s-4

    数据库用的是MySQL,服务器操作系统是Ubuntu 10.04,Web应用平台为Apache 2.2.14/PHP 5.3.2

    我非常惊讶,sqlmap仅仅从一个表单中就能获取这么多信息,真是神器!

    更近一步——获取数据库名

    我们接着尝试用sqlmap获取数据库名,添加--dbs参数即可

    很快,我们就得到了sqlmap的扫描结果

    s-5

    用sqlmap获取表名

    到底哪个数据库才是存放用户名和口令的呢?我还得想办法获取这个信息。

    我准备直接上手和Web应用交互,获取线索。

    用户名和口令都输入test',看看会发生什么

    s-6

    我们得到了后台错误信息,从SQL语句中看到了表名

    s-7

    用户名和口令在表accounts中,这个表会在哪个数据库里呢?

    我觉得是mutillidae数据库,用sqlmap看看这个数据库中的有哪些表吧

    sqlmap -u http://www.dvssc.com/mutilliade/index.php?page=login.php --forms -D mutillidae --tables

    s-8

    我们的猜测应该没有错,在mutillidae数据库里存在accounts表

    接下来,我们获取accounts表的列名!

    用sqlmap获取列名

    直接输入

    sqlmap -u http://www.dvssc.com/mutilliade/index.php?page=login.php --forms -D mutillidae --tables -T accounts --columns

    我们得到如下结果

    s-9

    非常醒目的username和password字段。那么,我们一口气干到底吧!

    成功“拖库”

    使用sqlmap,在之前的基础上增加--dump选项,直接拖库

    s-10

    没想到口令居然都是用明文存储的,对于攻击者来说非常方便。

    这是用sqlmap导出的cvs格式的数据

    s-11

    小结

    这个番外本来只是展示一下专门针对Web应用的漏洞扫描的,

    只不过sqlmap过于强大,一下子就变成脚本小子玩“拖库”了

    但是,我们目前对Web攻防的技术和原理并没有深入的了解,暂时只是使用工具而已。

    等到了Web攻防基础实验的时候,咱们不用现成的工具,完成一次手工的SQL注入

  • 相关阅读:
    Flex从页面(*.swf)url获取参数
    Flex 国际化
    Flex自定义事件二
    Flex中为各种控件绑定远程XML数据
    arp spoofing on linux
    java定位内存泄漏点
    Drools 简单应用实例2
    制作back track linux usb启动盘
    xss漏洞学习
    nmap在实战中的高级应用
  • 原文地址:https://www.cnblogs.com/wyf12138/p/8973406.html
Copyright © 2020-2023  润新知