渗透测试的灵魂--信息收集
为什么要进行信息收集?
进行渗透测试之前,最重要的一步就是信息收集。在这个阶段,我们要尽可能地收集目标的信息。所谓“知己知彼,百战不殆”,我们越了解测试目标,测试的工作就越容易。
什么是信息收集?
信息收集又叫做资产收集。信息收集是渗透测试的前期主要工作,是非常重要的环节,收集足够多的信息才能方便接下来的测试,信息收集主要是收集网站的域名信息、子域名信息、目标网站信息、目标网站真实IP、敏感/目录文件、开放端口和中间件信息等等。通过各种渠道和手段尽可能收集到多的关于这个站点的信息,有助于我们更多的去找到渗透点,突破口。
信息收集方式
信息收集的方式可以分为两种:主动和被动。
- 主动信息收集:通过直接访问、扫描网站,这种流量将流经网站。
- 被动信息收集:利用第三方的服务对目标进行访问了解,比例:Google搜索、Shodan搜索等。
信息收集收集哪些信息?
Whois查询
什么是whois?
Whois是一个标准的互联网协议,可以用收集网络注册信息,注册的域名,IP地址等信息。简单的说,Whois就是一个用于查询域名是否已被注册以及域名的详细信息的数据库(如域名所有人、域名注册商)。在Whois查询中,得到注册人的姓名和邮箱通常对测试个人站点非常有用,因为我们可以通过搜素引擎和社交网络挖掘出域名所有人的很多信息。对中小站点而言,域名所有人往往就是管理员。
查询网站:
子域名收集
什么是子域名?
子域名也就是二级域名,是指顶级域名的域名。假设我们的目标网络规模比较大,直接从主域入手显然不明智,因为对于这种规模的目标,一般其主域都是重点防护的区域,所以不如选择进入目标的某个子域,然后再想办法迂回接近正真的目标,这无疑是一个比较好的选择。
子域名查询工具
Layer子域名挖掘机
子域名查询网站
- 鹰图平台 (qianxin.com)
- 网络空间测绘,网络空间安全搜索引擎,网络空间搜索引擎,安全态势感知 - FOFA网络空间测绘系统
- 首页 - 网络空间测绘,网络安全,漏洞分析,动态测绘,钟馗之眼,时空测绘,赛博测绘 - ZoomEye("钟馗之眼")网络空间搜索引擎
指纹识别
指纹由于其终身不变性、唯一性和方便性,几乎成为生物特征的代名词。这里所指的是网站CMS指纹识别、计算机操作系统及Web容器的指纹识别等。
在渗透测试中,对目标服务器进行指纹识别是相当有必要的,因为只有识别出相应的Web容器或者CMS,才能查找与其相关的漏洞,然后才能进行相应的渗透操作。
cms是什么?
CMS(Content Management System)又称整站系统或文章系统。在2004年以前,如果想要进行网站内容管理,基本上都靠手工维护,但在信息爆炸的时代,完全靠人维护相当困难。所以就出现了CMS,开发者只要给客户一个软件包,客户自己安装配置好,就可以定期更新数据来维护网站,节省了大量的人力和物力。
常见的cms
Dedecms (织梦),Discuz,PHPWEB,PHPWind,PHPCMS,ECShop,Dvbbs,SiteWeaver,ASPCMS,帝国,Z-Blog,WordPress等
指纹识别工具
tide指纹识别工具
在线网站:
- https://www.yunsee.cn/
- http://finger.tidesec.net/
- http://whatweb.bugscaner.com/look/
- https://s.threatbook.cn/
目录扫描
在渗透测试中,探测Web目录结构和隐藏的敏感文件是一个必不可少的环节,从中可以获取网站的后台管理页面、文件上传页面、甚至可以扫描出网站的源代码。
有些网站可能某个目录下是一个新的网站,有的时候目录扫描直接下载了压缩包源码、编辑器目录、一些废弃的页面(会报错)
收集方向
后台目录:弱口令,万能密码,爆破
安装包:获取数据库信息,甚至是网站源码
上传目录:截断、上传图片马等
mysql管理接口:弱口令、爆破,万能密码,然后拖裤,甚至是拿到shell
安装页面 :可以二次安装进而绕过
phpinfo:会把你配置的各种信息暴露出来
编辑器:fck、ke、等
iis短文件利用:条件比较苛刻 windows、apache等
robots.txt文件
robots.txt 文件是专门针对搜索引擎机器人robot 编写的一个纯文本文件。我们可以在这个文件中指定网站中不想被robot访问的目录。这样,我们网站的部分或全部内容就可以不被搜索引擎收录了,或者让搜索引擎只收录指定的内容。因此我们可 以利用robots.txt让Google的机器人访问不了我们网站上的重要文件,GoogleHack的威胁也就不存在了。 假如编写的robots.txt文件内容如下:
User-agent: *
Disallow: /data/
Allow:/images/
其中“Disallow”参数后面的是禁止robot收录部分的路径,例如我们要让robot禁止收录网站目录下的“data”文件夹,只需要在Disallow参数后面加上 /data/ 即可。如果想增加其他目录,只需按此格式继续添加。文件编写完成后将其上传到网站的根目录,就可以让网站远离Google Hack了。
虽然robots文件目的是让搜索蜘蛛不爬取想要保护的页面,但是如果我们知道了robots文件的内容的话,我们就可以知道目标网站哪些文件夹不让访问,从侧面说明这些文件夹是很重要的了。
目录扫描工具
御剑目录扫描工具
dirseacrch目录扫描工具
敏感信息查询
尝试Google语法,找到某些敏感内容,比如包含身份证号码的表格、包含服务器账号密码的文件、某些敏感文件、备份数据库
格式 | 描述 |
site | 指定域名 |
filetype | 指定文件类型 |
inurl | 指定url |
link | 指定网页链接 |
intitle | 标题中存在关键字的网页 |
intext | 正文中存在关键字的网页 |
真实IP查询
在渗透测试过程中,目标服务器可能只有一个域名,那么如何通过这个域名来确定目标服务器的真实IP对渗透测试来说就很重要。如果目标服务器不存在CDN可以通过以下地址进行查询,也可以通过nslookup等获取IP及域名信息。
http://www.ip138.com/
假如目标存在CDN服务器呢?那我们需要找到目标真实的服务器的IP。
什么是CDN?
CDN就是内容分发网络,主要解决因传输距离和不同运营商节点造成的网络速度性能低下的问题。说的简单点,就是一组在不同运营商之间的对接节点上的高速缓存服务器,把用户经常访问的静态数据资源(html、css、js图片、视频、声音等文件)直接缓存到节点服务器上,当用户再次请求时,会直接分发到离用户近的节点服务器响应给用户,当用户有新数据交互时才会从远程Web服务器上响应,这样可以大大提高网站的响应速度及用户体验。
如果目标网站有CDN服务器,ping域名不一定获取到目标真正的Web服务器IP地址,只是离我们最近的节点上的CDN,这样导致我们无法得到目标的真实IP段范围。http://baidu.com GET测试结果 网站速度测试 17CE
如何绕过cdn?
这里推荐CDN绕过技巧(全面)-CSDN博客这篇博客
旁站和C段扫描
旁站指的是同一服务器上的其他网站,很多时候,有些网站可能不是那么容易入侵。
那么,可以查看该网站所在的服务器上是否还有其他网站。如果有其他网站的话,可以先拿下其他网站的webshell,然后再提权拿到服务器的权限,最后就自然可以拿下该网站了!
C段指的是同一内网段内的其他服务器,每个IP有ABCD四个段,举个例子,192.168.0.1,A段就是192,B段是168,C段是0,D段是1,而C段嗅探的意思就是拿下它同一C段中的其中一台服务器,也就是说是D段1-255中的一台服务器,然后利用工具嗅探拿下该服务器。
在线工具
同IP网站查询,C段查询,IP反查域名,在线C段,旁站工具 - WebScan
主机扫描及端口信息
在渗透测试中,对端口信息的收集是一个很重要的过程,通过扫描服务器开放的端口以及从该端口判断服务器上存在的服务,就可以对症下药,便于我们渗透目标服务器。
所以在端口渗透信息的收集过程中,我们需要关注常见应用的默认端口和在端口上运行的服务。最常见的扫描工具就是NMAP,FSCAN等等
常见的端口以及服务
端口 | 服务 |
20/21 | ftp文件传输协议 |
22 | ssh远程连接 |
23 | telnet远程连接 |
25 | SMTP邮件服务 |
53 | dns协议 |
80 | http协议 |
110 | pop3服务 |
143 | IMAP协议 |
161 | SNMP服务 |
443 | https协议 |
2181 | zookeeper服务 |
8069 | zabbix服务 |
3389 | rdp远程桌面连接 |
8080 | TCP协议 |
8888 | nginx服务端口 |
3306 | mysql数据库 |
1433 | mssql数据库 |
1521 | Oracle数据库 |
5432 | postgresql数据库 |
27017/27018 | MongoDB数据库 |
6379 | redis数据库 |
社会工程学
什么是社会工程学
在信息安全这个链条中,人的因素是最薄弱的一环节。社会工程就是利用人的薄弱点,通过欺骗手段而入侵计算机系统的一种攻击方法。组织可能采取了很周全的技术安全控制措施,例如:身份鉴别系统、防火墙、入侵检测、加密系统等,但由于员工无意当中通过电话或电子邮件泄露机密信息(如系统口令、IP地址),或被非法人员欺骗而泄露了组织的机密信息,就可能对组织的信息安全造成严重损害。
社会工程学通常以交谈、欺骗、假冒或口语等方式,从合法用户中套取用户系统的秘密。熟练的社会工程师都是擅长进行信息收集的身体力行者。很多表面上看起来一点用都没有的信息都会被这些人利用起来进行渗透。比如说一个电话号码,一个人的名字,或者工作的ID号码,都可能会被社会工程师所利用。
这意味着没有把“人”这个因素放进企业安全管理策略中去的话将会构成一个很大的安全“裂缝”。
简单来说,社会工程学就是利用一个人的缺点(贪婪,狂妄)、优点(自信,怜悯),来从中套取我们想要的信息。
可以说行骗艺术的分类有两种,一种是通过诈骗、欺骗来获得钱财,这就是通常的骗子。另一种则通过蒙蔽、影响、劝导来达到获取信息的目的,这就是社会工程师
通过操纵人来实施某些行为或泄露机密信息的攻击方法,实际是对人的欺骗
- 信息来源
- 行业专家可以提供有关一个领域的具体情报信息
- 与目标网络的员工接近、寒暄和对话
- 垃圾收集:目标可能会丢弃一些文件、信件或报废设备
- Maltego
- 高度自动化的信息收集工具
- 收集域名服务器、IP地址、子域或个人信息
- 跨平台
- 信息可视化
关于这个可以看社会工程学-CSDN博客这篇博客