Kali Linux渗透基础知识整理(一):信息搜集(一)

什么是信息收集:

收集渗透目标的情报是最重要的阶段。如果收集到有用的情报资料的话,可以大大提高对渗透测试的成功性。收集渗透目标的情报一般是对目标系统的分析,扫描探测,服务查点,扫描对方漏洞,查找对方系统IP等,有时候渗透测试者也会用上“社会工程学”。渗透测试者会尽力搜集目标系统的配置与安全防御以及防火墙等等。

内容概要

1. 网站及服务器信息

2. 搜索引擎

3. Google Hacking

网站及服务器信息:

whois

whois是用来查询域名的IP以及所有者等信息的传输协议。简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)。在whois查询中,注册人姓名和邮箱信息,通常对于测试个人站点非常有用,因为我们可以通过搜索引擎,社交网络,挖掘出很多域名所有人的信息。而对于小站点而言,域名所有人往往就是管理员。

例如下面 whois www.sysorem.xyz 查看www.sysorem.xyz这个域名的注册信息

DNS服务器查询

除了whois查询之外,我们还可以通过host命令来查询dns服务器,

格式:

1. host 命令

2. [-aCdlriTwv]

3. [-c class]

4. [-N ndots]

5. [-t type]

6. [-W time]

7. [-R number]

8. [-m flag]

9. hostname [server]

查询域名服务器

从图中可以看到有3个dns服务器,分别为:

1. dns1.hdu.edu.cn

2. dns2.hdu.edu.cn

3. dns2.hdu.edu.cn

DNS记录类型=>在买了域名后IDC的那个后台里,添加解析记录的地方就能看到

例如查询A记录,即查IP,如图

域名枚举

在得到主域名信息之后,如果能通过主域名得到所有子域名信息,再通过子域名查询其对应的主机IP,这样我们能得到一个较为完整的信息。

使用fierse工具,可以进行域名列表查询:fierce -dns domainName

除fierse之外,dnsdict6、dnsenum、dnsmap都可以进行域名枚举。

反向地址解析

我们经常使用到得DNS服务器里面有两个区域,即“正向查找区域”和“反向查找区域”,正向查找区域就是我们通常所说的域名解析,反向查找区域即是这里所说的IP反向解析,它的作用就是通过查询IP地址的PTR记录来得到该IP地址指向的域名.

由于在域名系统中,一个IP地址可以对应多个域名,因此从IP出发去找域名,理论上应该遍历整个域名树,但这在Internet上是不现实的。为了完成逆向域名解析,系统提供一个特别域,该特别域称为逆向解析域in-addr.arpa。这样欲解析的IP地址就会被表达成一种像域名一样的可显示串形式,后缀以逆向解析域域名”in-addr.arpa”结尾。例如一个IP地址:222.211.233.244,其逆向域名表达方式为:244.233.221.222.in-addr.arpa

dig:使用dig进行反向解析的命令格式为:

dig -x ip @dnsserver #用 dig 查看反向解析

在线查询也是一种办法 http://dns.aizhan.com/

想要获得完整的信息,可以多尝试不同的工具,整合结果。很多工具无法做反向查询的原因,在于域名所有者没有添加反向解析记录。

关于DNS区域传送漏洞

区域传送操作指的是一台后备服务器使用来自主服务器的数据刷新自己的zone数据库。一般来说,DNS区域传送操作只在网络里真的有后备域名DNS服务器时才有必要执行,但许多DNS服务器却被错误地配置成只要有人发出请求,就会向对方提供一个zone数据库的拷贝。当一个单位没有使用公用/私用DNS机制来分割外部公用DNS信息和内部私用DNS信息的时候,此时内部主机名和IP地址都暴露给了攻击者。就像是把一个单位的内部网络完整蓝图或导航图奉送给了别人。

详细了解,传送门,感觉这位大神写的蛮清楚的,可以参考下

服务指纹识别

很多站点,可能没有自定义错误信息。因此在url上随便输入一个不存在的地址,可能会返回有用的信息。

通过上图,我们知道该站点的应用程序由PHP编写,Web服务器为Apathe/2.2.22,操作系统为Windows

通过端口判断服务

通过扫描服务器开放的端口判断服务器上存在的服务,nmap具体使用在后面会讲到

从图中可以看出该服务器搭建了http(Web)、msrpc(文件共享)、MSSQL数据库等

操作系统指纹识别

识别目标主机的操作系统,首先,可以帮助我们进一步探测操作系统级别的漏洞从而可以从这一级别进行渗透测试。其次,操作系统和建筑在本系统之上的应用一般是成套出现的,例如LAMP或者LNMP。操作系统的版本也有助于我们准确定位服务程序或者软件的版本,比如一般情况下windows server 2003 搭载的IIS为6.0,windows server 2008 R2 搭载的是IIS7.5。

Banner抓取

banner抓取是应用程序指纹识别而不是操作系统指纹识别。Banner信息并不是操作系统本身的行为,是由应用程序自动返回的,比如apathe、exchange。而且很多时候并不会直接返回操作系统信息,幸运的话,可能会看到服务程序本身的版本信息,并以此进行推断。下图可以看出ftp服务器软件为FileZilla及版本等信息

使用Nmap进行操作系统探测

使用Nmap识别操作系统最简单的方法为使用-O参数

格式 nmap -O URI,从图中可以看到服务器操作系统为Linux

使用p0f进行操作系统探测

p0f是一款被动探测工具,通过分析网络数据包来判断操作系统类型。同时p0f在网络分析方面功能强大,可以用它来分析NAT、负载均衡、应用代理等。下面命令的含义为监听网卡eth0,并开启混杂模式。这样会监听到每一个网络连接,部分结果摘录如下:p0f -i eth0 –p

使用Xprobe2进行操作系统探测

Xprobe2是一款使用ICMP消息进行操作系统探测的软件,探测结果可以和Nmap互为参照。但是该软件目前公开版本为2005年的版本,对老的操作系统探测结果较为准确。简单用法:xprobe2 -v URI (这个平时用用我基本也扫不出什么东西233333)

抓取操作系统指纹的工具还有很多,如miranda等,不过多举例。

WAF检测

WafW00f是Python脚本,用于检测网络服务是否处于网络应用防火墙保护状态,极其有用。使用WafW00f检测网络服务器和网络传输之间是否存在网络应用防火墙,这不仅可以发展测试战略,而且还能开发出绕过网络应用防火墙的高级技术。简单用法 wafw00f URL

从图中可以看到该网站处于Waf保护状态

搜索引擎

Google搜索技术融合了用于执行Google的详细搜索的高级搜索技术。在Google首页右下角可以点击“Settings”->”Advanced search”进行详细设置

在高级设置页面可以设置“所有字”、“精确的字或短语”、“含以下任何字”、“不含以下任何字”、“数字范围”、“语言”、“地区”、“最新更新”、“网站或域名”、“关键字出现位置”、“安全搜索”、“阅读级别”、“文件类型”、“使用权限”等等,更精确的搜索

由于一些众所周知的原因,我们在不能欢快滴科学上网的时候,会用到国内的一些搜索引擎。同样也是可以设置的,不过相对而言没Google强大。

渗透测试中还有一些非常好用的搜索引擎,比如shodan(https://www.shodan.io/)

下面是搜索sogou.com的返回结果

点击第一个结果的Details可以查看详细信息,包括地理位置、服务器开放的端口等等

除了shodan之外,当然还不得不提知道创宇的“钟馗之眼”-> ZoomEye 分分钟吊炸天有木有?

推荐余弦的《ZoomEye高级黑》

Google hacking

对于普通的用户而言,Google是一个强大的搜索引擎;而对于黑客而言,则可能是一款绝佳的黑客工具。正因为google的检索能力强大,黑客可以构造特殊的关键字语法,使用Google搜索互联网上的相关隐私信息。通过Google,黑客甚至可以在几秒种内黑掉一个网站。这种利用Google搜索相关信息并进行入侵的过程就叫做Google Hack。 下面介绍一些常用的所谓“谷歌黑客语法”。

例如批量查找学校网站的后台 输入如下关键字

site:hdu.edu.cn intext:管理|后台|登录|用户名|密码|验证码|系统|账号|后台管理|后台登录

· intext: 把网页中的正文内容中的某个字符做为搜索条件.

· 例如在google里输入:intext:杭电.将返回所有在网页正文部分包含”杭电”的网页

· allintext:使用方法和intext类似.

· intitle: 搜索网页标题中是否有我们所要找的字符.

· 例如搜索:intitle:杭电.将返回所有网页标题中包含”杭电”的网页.同理allintitle:也同intitle类似.

· cache: 搜索google里关于某些内容的缓存,有时候往往能找到一些好东西.

· define: 搜索某个词的定义,例如搜索:define:杭电,将返回关于“杭电”的定义.

· filetype: 搜索制定类型的文件,例如:filetype:doc.将返回所有以doc结尾的文件URL.

· info: 查找指定站点的一些基本信息.

· inurl: 搜索我们指定的字符是否存在于URL中.

· 例如输入:inurl:admin,将返回N个类似于这样的连接:http://xxx/admin,

· 常用于查找通用漏洞、注入点、管理员登录的URL

· allinurl:也同inurl类似,可指定多个字符.

· linkurl: 例如搜索:inurl:hdu.edu.cn可以返回所有和hdu.edu.cn做了链接的URL.

· site: 搜索指定域名,如site:hdu.edu.cn.将返回所有和hdu.edu.cn有关的URL.

还有一些*作符

· + 把google可能忽略的字列如查询范围

· – 把某个字忽略

· ~ 同意词

· . 单一的通配符

· * 通配符,可代表多个字母

· “” 精确查询

实际操作时需根据情况组合使用,下面列举些常用的:

· intext:to parent directory

· inurl:upload.php

· intitle:powered by xxx

· index of/upload

· Filetype:txt

· inurl:robots.txt

· index of /passwd

· site:xxx.com filetype:mdb|ini|php|asp|jsp

这次文章就到这里,下一篇会继续信息收集中的社交网站和未公开数据的文章,喜欢的都话请点赞转发,谢谢大家。

原文发布于微信公众号 - 白安全组(bai-1152770445)

原文发表时间:2018-07-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券