技术开发 频道

Web安全渗透测试之信息搜集篇

  下面介绍解决这些问题的方法:

  解决问题1的方法

  实际上,我们没有办法彻底地找出所有采用非标准命名的Web应用程序。因为是非标准的,所以没有固定的标准来指导命名,不过有若干技术可供渗透测试人员用来获得一些额外的洞察力。首先,如果Web服务器的配置出错,允许浏览目录,就有可能找出这些应用程序。安全漏洞扫描器也可以帮我们完成此任务。其次,这些应用程序可以通过其他web页面来引用;所以,它们可以已经被网络蜘蛛爬到,或者已经被搜索引擎索引。如果我们怀疑在www.example.com上存在这样的隐身应用程序,我们就可以使用站点操作符用google搜索,然后使用“site: www.example.com检查搜索结果。 返回的URL中可能有指向这些非显式的应用程序的。另一种方法是考察那些看起来很像是非公开应用程序的URL。 比如,一个Web邮件前端可以通过诸如https://www.example.com/webmail、https://webmail.example.com/或https://mail.example.com/之类的URL访问。 对于管理接口(比如,一个Tomcat管理接口),也许可通过隐藏URL中,但是却没有被任何其他地方引用。所以,进行字典式搜索也许会有所收获。 安全漏洞扫描器在这方面也很有用。

  解决问题2的方法

  检查非标准的端口上的Web应用程序相对来说较为容易。例如,可以使用端口扫描程序,如nmap,加上-sV选项来识别任意端口上的服务,包括http[s]服务。对于64k的TCP 端口地址空间进行全面的扫描是很有必要的。比如,以下命令将查寻IP地址为192.168.1.100的所有开放端口,并设法确定出其上捆绑了哪些服务:

  nmap –PN –sT –sV –p0-65535 192.168.1.100

  通过检查输出并找出http或者SSL封装的服务标志即可。比如,前面的命令的输出结果如下所示:

  Interesting ports on 192.168.1.100:

  (The 65527 ports scanned but not shown below are in state: closed)

  PORT STATE SERVICE VERSION

  22/tcp open ssh OpenSSH 3.5p1 (protocol 1.99)

  80/tcp open http Apache httpd 2.0.40 ((Red Hat Linux))

  443/tcp open ssl OpenSSL

  901/tcp open http Samba SWAT administration server

  1241/tcp open ssl Nessus security scanner

  3690/tcp open unknown

  8000/tcp open http-alt

  8080/tcp open http Apache Tomcat/Coyote JSP engine 1.1

  从这个例子我们看到:

  ◆端口80上有一个Apache HTTP服务器

  ◆在端口443上好像有一个https服务器,我们还需进一步确认,例如利用一个浏览器访问https://192.168.1.100即可揭晓。

  ◆在端口901上有一个Samba SWAT Web接口。

  ◆在端口1241上的服务并非https,而是用SSL封装过的Nessus守护进程。

  ◆端口3690运行了一个未详细说明的服务。

  ◆另外一种未详细说明的服务位于端口8000上,可能是http,在这个端口上找到http服务器也并不稀奇。让我们看一下:

  $ telnet 192.168.10.100 8000

  Trying 192.168.1.100...

  Connected to 192.168.1.100.

  Escape character is '^]'.

  GET / HTTP/1.0

  HTTP/1.0 200 OK

  pragma: no-cache

  Content-Type: text/html

  Server: MX4J-HTTPD/1.0

  expires: now

  Cache-Control: no-cache

  ...

  这就表明,它实际上是一个HTTP服务器。此外,我们还可以利用一个Web浏览器访问这个URL,或者使用Perl的GET或者HEAD命令来加以验证。

  端口8080上运行了Apache Tomcat。

  当然了,这个任务也可以通过安全漏洞扫描器完成,但前提是你的扫描器能识别运行于非标准的端口上的http[s]服务。比如,Nessus能够识别任意端口上的http[s]服务,并能对已知的Web服务器漏洞进行测试,同时还能对https服务的SSL 配置进行测试。就像之前暗示的一样,Nessus还能认出流行的应用程序/Web接口,比如,Tomcat的管理接口。

0
相关文章