信息收集
信息收集
在线的Web靶机:www.testfire.net、http://vulnweb.com/
渗透测试相关认证:https://zhuanlan.zhihu.com/p/146543340、https://www.freebuf.com/news/128826.html
一、渗透测试流程
二、域名注册信息收集
通过whois查询到站长的信息,比如姓名、地址、电话、邮箱,可以组成社工字典进行爆破
1、站长之家IPWhois:域名注册信息、注册商、注册人员(whois反查)、联系方式、邮箱、子域名等。
2、Kali内置工具:Whois。
3、服务器信息查询网站:netcraft.com
4、钟馗之眼:www.zoomeye.org
三、收集子域名信息(一个域名下所有主机的信息)
1、通过Https证书信息中的使用者备用名称查询
2、主流信息查询网站:netcraft.com
3、Layer子域名挖掘机软件:需要字典爆破。(优势是可爆破网站上查询不到的域名)
4、Kali内置子域名爆破工具:dnsrecon
dnsrecon -d 域名 -t brt(强硬暴力的扫描)
按照字典爆破:
dnsrecon -d 域名 -D 字典路径/字典文件名 -t brt
5、Oneforall
四、从DNS服务器中查询IP
1、ping
、nslookup
:但其实两者并不是权威的解答。
2、Kali工具dig
:
1 | `dig @DNS服务器地址 需查询的域名` |
223.5.5.5 阿里DNS服务器、8.8.8.8 google提供的DNS服务器
3、Kali工具 dnsenum
:
1 | `dnsenum 域名` #特点:自动检测域传送漏洞 |
五、CDN技术
1、什么是CDN?
CDN:Content Delivery Network或Content Distribute Network,即内容分发网络。CDN是将源站内容分发至最接近用户的节点,使用户可就近取得所需内容,提高用户访问的响应速度和成功率。解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、直播等场景。最简单的CDN网络由一个DNS服务器和几台缓存服务器组成。
2、CDN的特点
使用了CDN技术的网站,很难查询到目标网站的真实IP网址。
3、如何判断目标网站是否使用CDN技术
1)通过在线的多地ping工具,查看从多地ping目标域名的IP地址是否都相同。相同则无CDN,不相同大概率CDN
2)nslookup,如果返回域名解析对应多个IP多半使用了CDN。http://tool.chinaz.com/nslookup
4、如何获得使用CDN技术的网站服务器IP
1)查看域名的历史DNS解析记录:如果目标网站的域名使用时间比较长,那很可能是后来部署的CDN服务器,查看其域名历史DNS解析记录获取可以获得到有用的信息。https://dnsdb.io/zh-cn/
2)通过内部邮箱来获取真实IP信息:订阅或注册等其他方式让目标网站的邮箱服务器发送邮件,一些邮件服务系统没有经过CDN解析,查看邮件的原始邮件头,其中可能会包含邮件服务器的IP地址。
3)子域名地址查询:CDN服务收费并不便宜,所以目标网站中的一些子域名网站可能并没有部署CDN服务,并且通常这些子域名的网站服务器可能与目标服务器是旁站或者C段的关系,如此查询到子域名网站的IP地址即可猜解出目标服务器的真实IP。
4)通过国外地址访问:国内的CDN服务主要是针对国内的用户访问进行服务,对于国外访问很少有国内CDN参与其中,因此可尝试通过国外的服务器或地址访问目标网站服务,便可得到真实的IP地址。也可通过国外在线代理网站进行检测:https://asm.saas.broadcom.com/en/ping.php
5)主域名查询:去掉www,直接ping,查看IP是否有变化。
6)Nslookup查询。通过查询域名的NS、MX、TXT记录,有可能找到真实的网站IP地址。
NS记录是指域名服务器的记录,用来指定域名由哪台服务器进行解析,查询命令为:nslookup -qt=ns xxx.com
;
MX记录mail服务的权重值,当mail服务器先对域名进行解析时,会查找MX记录,找到权重值较小的服务器进行连通,查询命令为:nslookup -qt=mx xxx.com
TXT记录一般是为某一条记录设置说明,查询命令为:nslookup -qt=txt xxx.com
六、通过IP查询网站信息
1、旁站查询/同IP网站查询(站长之家):通过IP来查询所有使用该IP的网站域名,这些网站都在同一个服务器上。
http://www.114best.com/ip/114.aspx?w=
2、C段查询:就是查询和目标IP处于同一个网段的IP,X.X.X.*,攻破它,再内网攻击目标。一般是服务器集群。
七、Google hacking/dorking搜索引擎语法
什么是GHDB/SHDB? Google Hacking Database/ Search Hacking Database - :https://www.uedbox.com/post/64032/
GHDB/SHDB搜索引擎黑客数据库:https://www.uedbox.com/shdb/
1、基本命令
1 | intitle: 从网页标题中搜索指定的关键字 |
2、通配符
1 | + 强制包含某个字符进行查询 |
搜索phpinfo:
intext:"PHP Version" exit:php intest:"disabled" intext:"BuildDate" ......
;
ext:php intitle:phpinfo "published by the PHP Group"
php探针:
intitle:"php 中文网探针2014"
八、钟馗之眼zoomeye
ZoomEye 是一个跟shodan一样面向网络空间的搜索引擎。
ZoomEye 支持公网设备指纹检索和 Web 指纹检索。网站指纹包括应用名、版本、前端框架、后端框架、服务端语言、服务器操作系统、网站容器、内容管理系统和数据库等。设备指纹包括应用名、版本、开放端口、操作系统、服务名、地理位置等直接输入关键词即可开始检索。
搜索IIS7.0组件aap:"Microsoft IIS httpd" ver:"7.0"
、port:””、os:””、city:””、country:””…
九、Shodan
可以搜索JAWS/1.1
获得所有相关摄像头的地址信息,JAWS/1.0(1.1)的js源码有漏洞:
1 | $(document).ready(function(){ |
只要cookie的dvr_camcnt和dvr_usr和dvr_pwd不为空,就可以成功登录,dvr_camcnt是自动填写的。所以,只要使用js添加上cookie,就可成功绕过身份验证,成功登录。
1 | document.cookie="dvr_usr=admin"; |
十、浏览器实用插件推荐
网站信息查询插件:netcraft extension
,依托于Netcraft自己的数据库
查询网站架构插件:wappalyzer
十一、信息收集的其它方式
1、邮件/RSS邮件订阅
目标服务器的公司有可能会自己搭建一个邮件服务器,在邮件源码中会有邮件服务器的IP,可以扫描邮件服务器的网段,来找到对外提供服务的服务器。
2、网站漏洞的查找
1)目标敏感文件泄露,例如phpinfo之类的探针、Github源码信息泄露等。
2)XSS盲打,命令执行反弹shell,SSRF等
3)社工或者其它手段,拿到目标网站管理员在CDN的账号从CDN配置中找到网站的真实IP
3、APP
如果目标网站有自己的APP,可以通过fiddler或BurpSuite抓取APP数据包,找到真实IP
4、网络空间搜索引擎
常见的shodan,fofa搜索。以fofa为例,title:网站title关键字、body:网站的body特征,就可以找到fofa收录的有这些关键字的IP域名,有时可以获得真实IP
5、查找目标IP的地理位置
十二、常见端口
21、22、3389、5632端口(Pcanywhere)、5900端口(VNC)、
WEB中间件服务端口1090/1099端口(RMI):JAVA RMI 反序列化远程命令漏洞
WEB中间件服务端口7001端口(Weblogic):弱口令、SSRF、反序列化
WEB中间件服务端口8000端口(jdwp):JDWP远程命令执行漏洞
WEB中间件服务端口8080端口(Tomcat):弱口令、示例目录、CVE漏洞(Tomcat任意文件上传、远程代码执行&信息泄露、Tomcat幽灵猫)
WEB中间件服务端口8080端口(Jboss):未授权访问、反序列化
数据库服务端口1433端口(Mssql):弱口令、暴力破解(差异备份getshell、SA账户提权等)
数据库服务端口1521端口(Oracle):弱口令、暴力破解
数据库服务端口3306端口(MySQL):弱口令、暴力破解(利用日志写入webshell、udf提权、mof提权等)
数据库服务端口5432 端口(PostgreSQL):弱口令、高权限命令执行(攻击者通过弱口令获取账号信息,连入postgres中,可执行系统命令)
数据库服务端口6379端口(Redis):未授权访问(绝对路径写webshell 、利用计划任务执行命令反弹shell、公私钥认证获取root权限、主从复制RCE等)
数据库服务端口27017端口(Mongodb):未授权访问、弱口令(未授权访问/弱口令,远程连入数据库,导致敏感信息泄露)
常见协议端口21 端口(FTP):配置不当、明文传输、第三方软件提权(1、匿名登录或弱口令2、嗅探ftp用户名和密码3、Serv-U权限较大的账号可导致系统命令执行)
常见协议端口25 端口(SMTP):匿名发送邮件、弱口令、SMTP用户枚举(1、SMTP服务器配置不当,攻击者可以使用任意用户发送邮件。2、SMTP弱口令扫描,获取用户账号密码,发送邮件钓鱼。3、通过SMTP用户枚举获取用户名)
常见协议端口53端口(DNS):DNS域传送漏洞、DNS欺骗、DNS缓存投毒(1、DNS域传送漏洞,Windows下检测使用nslookup命令,Linux下检测使用dig命令,通过执行命令可以清楚的看到域名解析情况。2、DNS欺骗就是攻击者冒充域名服务器的一种欺骗行为。3、DNS缓存投毒是攻击者欺骗DNS服务器相信伪造的DNS响应的真实性。)
常见协议端口443端口(SSL):OpenSSL 心脏出血(攻击者可以远程读取存在漏洞版本的openssl服务器内存中长大64K的数据)
常见协议端口445端口(SMB):信息泄露、远程代码执行(可利用共享获取敏感信息、缓冲区溢出导致远程代码执行)
常见协议端口873端口(Rsync):匿名访问、弱口令(攻击者可以执行下载/上传等操作,也可以尝试上传webshell)
常见协议端口2375端口(Docker):未授权方式、容器逃逸(检测方式:通过docker daemon api 执行docker命令)
十三、判断目标服务器的操作系统
1、可以通过url分辨,Linux的URL严格区分大小写
2、Ping值
十四、判断目标服务器架构、CMS
Kali:whatweb XXX
常见CMS:phpcms、eshop、wordpress、Dedecms(织梦)、Discuz、phpweb、dvbbs、thikphp、ECShopWordPress等。
查询CMS指纹的网站:http://whatweb.bugscaner.com/look/、http://www.yunsee.cn/finger.html
十五、渗透测试相关的POC开源项目
www.github.com/Mr-xn/Penetration_Testing_POC
十六、内网信息搜集
Kali工具:netdiscover
十七、目标网站目录搜集
1、dirsearch脚本:python3 dirsearch -u http:/XX -e .txt,php,html,json
十八、攻击溯源
在对WEB日志进行安全分析时,可以按照下面两种思路展开,逐步深入,还原整个攻击过程。
首先确定受到攻击的时间范围,以此为线索,查找这个时间范围内可疑的日志,根据可疑ip、攻击特征等进一步排查(WEB日志会记录客户端对WEB应用的访问请求,这其中包括正常用户的访问请求和攻击者的恶意行为。通过大量的分析,我们发现攻击者在对网站入侵时,向网站发起的请求中会带有特定的攻击特征,如利用WEB扫描器在对网站进行漏洞扫描时往往会产生大量的404错误日志,当有攻击者对网站进行SQL注入漏洞探测时,WEB访问日志中通常会出现and 1=1等字样),最终锁定攻击者,确认攻击的手段,还原攻击过程。批阅时参考下图,言之成理即可。