粤嵌科技毕业实习Day7
信息收集
-
Whois查询
-
Whois是用来查询域名的IP以及所有者等信息的传输协议。简单说,Whois就是一个用来查询域名是否已经被注册,以及注册域名信息的数据库(如域名所有人、域名注册商、注册商邮箱等)。
-
不同域名后缀的Whois信息需要到不同的Whois数据库查询,如.com的Whois数据库和.edu的不同。每个域名或IP的Whois信息由对应的管理机构保存,例如以.com和.net结尾的域名的Whois信息由.com运营商威瑞信(VeriSign)管理,中国国家*域名.cn由CNNIC(中国互联网信息中心)管理。
-
Whois协议基本内容是:先向服务器的TCP端口43建立一个连接,发送查询关键字并加上回车换行,然后接收服务器的查询结果。一般来说,Server端可以接收三种类型的信息查询:联系人、主机和域名。
-
在线生成字典:https://www.bugku.com/mima/
-
Whois查询方法
-
Web接口查询
常见的信息收集网站包括: Whois站长之家:https://whois.chinaz.com/ 站长工具爱站查询:https://whois.aizhan.com/ 微步在线:https://x.threatbook.cn/ (需要登录) 阿里云中国万网:https://whois.aliyun.com/ Whois Lookup查找目标网站所有者信息:http://whois.domaintools.com/ Netcraft Site Report显示目标网站使用的技术:http://toolbar.netcraft.com/site_report?url= 新网whois查询 http://whois.xinnet.com/ 腾讯云 https://whois.cloud.tencent.com/domain?domain=
-
-
-
备案信息查询
- ICP备案是指网络内容提供商(Internet Content Provider),《互联网信息服务管理办法》指出需要对网站进行备案,未取得许可不得从事互联网信息服务。国内网站注册需要向国家有关部门申请备案,防止网站从事非法活动,而国外网站不需要备案。
IPC备案查询方法包括: ◾https://www.beian88.com/ ◾http://beian.miit.gov.cn/publish/query/indexFirst.action ◾https://www.tianyancha.com/ ◾http://www.beianbeian.com/
-
子域名信息收集
-
子域名,凡*域名前加前缀的都是该*域名的子域名,子域名根据技术的多少分为二级子域名,三级子域名,多级子域名。
-
子域名是某个主域的二级域名或多级域名,在防御措施严密情况下无法直接拿下主域,那么就可以采用迂回战术拿下子域名,然后无限靠街主域。
-
工具:OneForAll、小米范子域名爆破、Layer、subDomainsBrute、Sublist3r、dnsmaper。
-
OneForAll
- OneForAll是一款功能强大的子域收集工具,拥有多个模块和接口扫描,收集子域信息很全,包括子域、子域IP、子域常用端口、子域Title、子域Banner、子域状态等。
项目地址:https://github.com/shmilylty/OneForAll 子域名收集:python3 oneforall.py --target=target.com run 扫描结果存在result文件夹中
-
subDomainsBrute
- subDomainsBrute的特点是可以用小字典递归地发现三级域名、四级域名,甚至五级域名等不容易被探测到的域名。
项目地址:https://github.com/lijiejie/subDomainsBrute 子域名收集:python subDomainsbrute.py target.com
-
Layer
- Layer子域名挖掘机的使用方法比较简单,在域名对话框中直接输入域名就可以进行扫描,它的显示界面比较细致,有域名、解析IP、开放端口、Web服务器和网站状态等。
-
Sublist3r
- Sublist3r也是一个比较常用的工具, 它能列举多种资源,如在Google、Yahoo、 Bing、 Baidu和Ask等搜索引擎中可查到的子域名,还可以列出Netcraft、VirusTotal、ThreatCrowd、 DNSdumpster、SSL Certificates、和Reverse DNS查到的子域名。
项目地址:https://github.com/aboul3la/Sublist3r 子域名收集:python sublist3r.py -d target.com -b -t 50 -p 80,443
-
-
敏感目录
-
针对目标Web目录结构和敏感隐藏文件探测是非常重要的,在探测过程中很可能会探测到后台页面、上传页面、数据库文件,甚至是网站源代码文件等。扫描网站目录结构可以看看是否可以遍历目录,或者敏感文件泄漏,包括:
-
后台目录:弱口令,万能密码,爆破
-
安装包:获取数据库信息,甚至是网站源码
-
上传目录:截断、上传图片马(jpg,png)等
-
mysql管理接口:弱口令、爆破,万能密码,然后脱裤,甚至是拿到shell
-
安装页面 :可以二次安装进而绕过
-
phpinfo:会把你配置的各种信息暴露出来
-
编辑器:fck、ewebeditor(admin/admin888)、ueditor等
-
常见的探测工具包括:御剑后台扫描工具、7kbstorm、dirsearch,dirbuster、dirb
-
御剑后台扫描工具
-
DirBuster是Owasp(Open Web Application Security Project )开发的一款专门用于探测网站目录和文件(包括隐藏文件)的工具。支持全部的Web目录扫描方式。它既支持网页爬虫方式扫描,也支持基于字典暴力扫描,还支持纯暴力扫描。该工具使用Java语言编写,提供命令行(Headless)和图形界面(GUI)两种模式。用户不仅可以指定纯暴力扫描的字符规则,还可以设置以URL模糊方式构建网页路径。同时,用户还对网页解析方式进行各种定制,提高网址解析效率。
-
-
-
robots.txt
-
robots.txt基本上每个网站都用,而且放到了网站的根目录下,任何人都可以直接输入路径打开并查看里面的内容,如http://127.0.0.1/robots.txt ,该文件用于告诉搜索引擎,哪些页面可以去抓取,哪些页面不要抓取。
-
为了让搜索引擎不要收录admin页面而在robots.txt里面做了限制规则。但是这个robots.txt页面未对用户访问进行限制,可任意访问,导致可通过该文件了解网站的结构,比如admin目录、user目录等等。
-
即使用robots.txt的屏蔽搜索引擎访问的功能,又不泄露后台地址和隐私目录
-
使用星号(/*)作为通配符:
User-agent:* Disallow:a*/ 假设不是常规后台,原来是admin/、现在改成其他的adminxdf/
-
-
-
网站备份压缩文件
- 管理员在对网站进行修改、升级等操作前,可能会将网站或某些页面进行备份,由于各种原因将该备份文件存放到网站目录下,该文件未做任何访问控制,导致可直接访问并下载。可能为.rar、zip、.7z、.tar.gz、.bak、.txt、.swp等等,以及和网站信息有关的文件名www.rar、web.rar等等
-
Git导致文件泄露
-
由于目前的web项目的开发采用前后端完全分离的架构:前端全部使用静态文件,和后端代码完全分离,隶属两个不同的项目。表态文件使用 git 来进行同步发布到服务器,然后使用nginx 指向到指定目录,以达到被公网访问的目的。
-
在运行git init初始化代码库的时候,会在当前目录下面产生一个.git的隐藏文件,用来记录代码的变更记录等等。在发布代码的时候,把.git这个目录没有删除,直接发布了。使用这个文件,可以用来恢复源代码
使用工具:githack 下载地址:https://github.com/lijiejie/GitHack
-
GitHack是一个.git泄露利用脚本,通过泄露的.git文件夹下的文件,还原重建工程源代码。
- 脚本的工作原理:
- 解析.git/index文件,找到工程中所有的:( 文件名,文件sha1 )
- 去.git/objects/ 文件夹下下载对应的文件
- zlib解压文件,按原始的目录结构写入源代码
使用方法:GitHack.py http://www.openssl.org/.git/
- 脚本的工作原理:
-
-
DS_store导致文件泄露
- .DS_Store是Mac下Finder用来保存如何展示文件/文件夹的数据文件,每个文件夹下对应一个。
- 如果开发/设计人员将.DS_Store上传部署到线上环境,可能造成文件目录结构泄漏,特别是备份文件、源代码文件。
- ds_store_exp 是一个.DS_Store 文件泄漏利用脚本,它解析.DS_Store文件并递归地下载文件到本地:https://github.com/lijiejie/ds_store_exp
-
SVN导致文件泄露
-
Subversion,简称SVN,是一个开放源代码的版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上越来越多的控制服务从CVS转移到Subversion。
-
SVN漏洞在实际渗透测试过程中,利用到也比较多,由于一些开发管理员疏忽造成,原理类似DS_Store漏洞。我们这里不再进行搭建环境,给大家推荐工具,利用方法如下:
- 漏洞利用工具:Seay SVN漏洞利用工具
- 添加网站url:在被利用的网址后面加 /.svn/entries,列出网站目录,甚至下载整站。
-
-
WEB-INF/web.xml泄露
- WEB-INF是Java的WEB应用的安全目录。如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。
- WEB-INF主要包含一下文件或目录:
- /WEB-INF/web.xml:Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。
- /WEB-INF/classes/:含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中。
- /WEB-INF/lib/:存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件。
- /WEB-INF/src/:源码目录,按照包名结构放置各个java文件。
- /WEB-INF/database.properties:数据库配置文件。
-
hg源码泄漏
- Mercurial 是一种轻量级分布式版本控制系统,使用 hg init的时候会生成.hg。
- 漏洞利用工具:dvcs-ripper
github项目地址:https://github.com/kost/dvcs-ripper 用法示例: rip-hg.pl -v -u http://www.example.com/.hg/
-
CVS泄露
- CVS是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。主要是针对 CVS/Root以及CVS/Entries目录,直接就可以看到泄露的信息。
- 漏洞利用工具:dvcs-ripper
http://url/CVS/Root 返回根信息 http://url/CVS/Entries 返回所有文件的结构 github项目地址:https://github.com/kost/dvcs-ripper.git 运行示例: rip-cvs.pl -v -u http://www.example.com/CVS/
-
SWP 文件泄露
- swp即swap文件,在编辑文件时产生的临时文件,它是隐藏文件,如果程序正常退出,临时文件自动删除,如果意外退出就会保留,文件名为 .filename.swp。
- 漏洞利用:直接访问.swp文件,下载回来后删掉末尾的.swp,获得源码文件。
Web站点信息收集
-
CMS指纹识别
-
在渗透测试中,对目标服务器进行指纹识别是相当有必要的,因为只有识别出相应的Web容器或者CMS(内容管理系统),才能查找与其相关的漏洞,然后才能进行相应的渗透操作。
-
CMS又称为整站系统或文章系统,用于网站内容管理。用户只需要下载对应的CMS软件包,就能部署搭建,并直接利用CMS。但是各种CMS都具有其独特的结构命名规则和特定的文件内容,因此可以利用这些内容来获取CMS站点的具体软件CMS与版本。
-
常见的CMS有:WordPress、Dedecms(织梦)、Discuz、PhpWeb、PhpWind、Dvbbs、PhpCMS、ECShop、、SiteWeaver、AspCMS、帝国、Z-Blog等。
-
常见识别工具:
-
在线工具
Wapplayzer浏览器插件 BugScaner:http://whatweb.bugscaner.com/look/ 云悉指纹:http://www.yunsee.cn/finger.html WhatWeb:https://whatweb.net/ 潮汐指纹:http://finger.tidesec.net/
-
本地工具
CMSeeK(https://github.com/Tuhinshubhra/CMSeeK) Cmsmap(https://github.com/Dionach/CMSmap) 御剑Web指纹识别程序 大禹CMS识别程序(https://github.com/Ms0x0/Dayu)
-
-
-
真实IP地址识别
-
CDN(Content Delivery Network,即内容分发网络)
-
基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。
-
原理如下:某些大型网站在全国都会有很多用户,这些用户常常会向网站发送不同的请求,那么不同地域会具有不同的缓冲服务器来接收用户发送的流量。如果用户发送流量没有任何交互的数据,只是请求首页的话,此时根据用户所在地区来确定访问的高速缓存服务器,高速缓存服务器会返回对应的响应到用户的浏览器当中,比如广东。
当用户填写数据,需要交互时才会将请求发送到真实的服务器;此时通过广东省的缓存服务器来连接真实服务器。
-
CDN通常存在用户很多的大型流量网站,通过它来解决我们服务器的瓶颈。
-
判断CDN存在
-
可以通过Ping来判断网站是否存在CDN,比如 http://www.xxxx.com/ 。
-
超级ping(利用在线Ping网站来使用不同地区的Ping服务器来测试目标)
-
- https://tools.ipip.net/newping.php
-
绕过CDN
-
如果目标没有使用CDN: 可以直接利用ping获取IP地址,或者利用在线网站获取(如 http://www.ip138.com)。
-
如果目标使用CDN: 需要绕过CDN后去真实IP地址,方法如下:
-
内部邮箱源:收集到内部邮箱服务器IP地址
- 邮件查看信头,必须是目标自己的邮件服务器,第三方或公共邮件服务器是没有用的。
-
网站phpinfo文件:phpinfo.php
-
分站IP地址,查询子域名:CDN很贵,很有可能分站就不再使用CDN
- 子域名解析ip
- 很多网站主站的访问量会比较大,所以主站都是挂CDN的,但是分站可能没有挂CDN,可以通过ping二级域名获取分站IP, 可能会出现分站和主站不是同一个IP但在同一个C段下面的情况,从而能判断出目标的真实IP段。
- 子域名解析ip
-
国外访问:https://asm.ca.com/en/ping.php
- 很多时候国内的CDN对国外得覆盖面并不是很广,故此可以利用此特点进行探测。通过国外代理访问就能查看真实IP了,或者通过国外的DNS解析,可能就能得到真实的IP。
国际ping测试站点 https://tools.ipip.net/newping.php https://asm.ca.com/en/ping.php
-
查询域名解析记录:https://viewdns.info/
- 一般网站从部署开始到使用cdn都有一个过程,周期如果较长的话 则可以通过这类历史解析记录查询等方式获取源站ip,查看IP与域名绑定的历史记录,可能会存在使用CDN前的记录。
-
-
验证IP地址
- 通过上面的方法获取了很多的IP地址,此时我们需要确定哪一个才是真正的IP地址,具体方法如下:利用IP地址对Web站点进行访问,如果正常表明是真实IP地址,否则是假的。例如,输入 view-source:123.xxx.xxx.39,表示真实的IP地址。
- 绕过:修改hosts配置文件
-
-
-
端口扫描
- 对于收集目标及其端口状况可以使用工具来进行,其工作原理都是使用TCP或UDP等协议向目标端口发送指定标志位等数据包,等待目标返回数据包,以此来判断端口状态。
在线工具:http://tool.chinaz.com/port/
ThreatScan在线网站:https://scan.top15.cn/web/portscan
本地工具:Nmap、masscan、masnmapscan、御剑高速端口扫描工具
查看本地端口开放情况,命令为netstat –ano
-
Nmap
扫描多个IP 扫描整个子网 nmap 192.168.6.1/24 nmap 192.168.1.1/16 nmap 192.168.1-30.1-254 nmap 192.168.1-254.6 扫描多个主机 namp 192.168.6.2 192.168.6.6 扫描一个小范围 nmap 192.168.6.2-10 扫描txt内的ip列表 nmap -iL text.txt 扫描除某个目标外 nmap 192.168.6.1/24 -exclude 192.168.6.25
-
Masscan
-
主要是针对全网进行端口扫描
-
相比nmap快很多,masscan采用了异步传输方式,无状态的扫描方式。nmap需要记录tcp/ip的状态,os能够处理的TCP/IP连接最多为1500左右。
-
为了尽可能快地扫描整个互联网而创建的,根据其作者robert graham,这可以在不到6分钟内完成,每秒大约1000万个数据包。
-
基本用法:
-
使用方法类似于nmap,扫描指定网段范围的指定端口
masscan -p80 192.168.1.0/24 --rate 1000
-
Banner获取
- masscan不仅仅只是测试端口是否开放,它还能在完成TCP连接的同时获取目标应用程序的Banner信息。
masscan -p80 192.168.1.0/24 --banners #这条命令的意思是扫描192.168.1.0网段80端口的开放信息,并且获取banner信息。
-
-
-
masnmapscan
- 项目地址:https://github.com/hellogoldsnakeman/masnmapscan-V1.0
- masnmapscan整合了masscan和nmap两款扫描器,masscan扫描端口,nmap扫描端口对应服务,二者结合起来实现了又快又好地扫描。并且加入了针对目标资产有防火墙的应对措施。
-
御剑端口扫描
旁站和C段扫描
- 旁站指的是同一服务器上的其他网站,很多时候,有些网站可能不是那么容易入侵。那么,可以查看该网站所在的服务器上是否还有其他网站。如果有其他网站的话,可以先拿下其他网站的webshell,然后再提权拿到服务器的权限,最后就自然可以拿下该网站。
- 对于红蓝对抗和护网,C段扫描比较有意义。对于单独网站的渗透测试,C段扫描意义不大。C段指的是同一内网段内的其他服务器,每个IP有ABCD四个段,举个例子,192.168.0.1,A段就是192,B段是168,C段是0,D段是1,而C段嗅探的意思就是拿下它同一C段中的其中一台服务器,也就是说是D段1-255中的一台服务器,然后利用工具嗅探拿下该服务器。
旁站和C段在线查询地址:
http://www.webscan.cc/
https://scan.top15.cn/web/webside
WAF识别
-
WAF(Web Application Firewall,即Web应用防护系统,又称网站应用级入侵防御系统)
-
Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。
-
Web应用防护系统代表了一类新兴的信息安全技术,用以解决诸如防火墙一类传统设备束手无策的Web应用安全问题。与传统防火墙不同,WAF工作在应用层,因此对Web应用防护具有先天的技术优势。基于对Web应用业务和逻辑的深刻理解,WAF对来自Web应用程序客户端的各类请求进行内容检测和验证,确保其安全性与合法性,对非法的请求予以实时阻断,从而对各类网站站点进行有效防护。
常用waf指纹工具检测
使用nmap指纹检测
nmap --script==http-waf-fingerprint
nmap --script=http-waf-detect
Wafw00f (https://github.com/EnableSecurity/wafw00f)
wafw00f http://www.baidu.com
Sqlmap
sqlmap -u “http://www.baidu.com” --identify-waf
identYwaf地址:https://github.com/stamparm/identywaf
python identYwaf.py [options] <host|url>