渗透测试是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。
1.2.1 根据方法
1.2.1.1 黑盒测试
渗透者完全对于系统处于一无所知的状态。通常,这种类型的测试,最初的信息获取来自DNS、Web、Email及各种公开对外的服务器。
1.2.1.2 白盒测试
测试者可以通过正常渠道向被测单位取得各种资料,包括网络拓扑、员工资料甚至网站或其他程序的代码片段等。
1.2.2 根据目标
1.2.2.1 主机操作系统
点对Windows、Linux、Solaris、AIX等操作系统本身进行渗透测试
1.2.2.2 数据库系统
对MS-SQL、ORACLE、Mysql、Informix、Sybase、DB2等数据库应用系统进行渗透测试
1.2.2.3 应用系统
对渗透目标提供的各种应用,如ASP、CGI、JSP、PHP等组成的网站应用进行渗透测试
1.2.3 根据目标位置
1.2.2.1 外网渗透
渗透测试人员完全处于外部网络,模拟对内部状态一无所知的外部攻击者的行为。包括对网络设备的远程攻击、口令管理安全性测试、防火墙规则试探、Web及其他开放应用服务的安全性测试
1.2.2.2 内网渗透
渗透测试人员由内部网络发起测试。这类测试能够模拟企业内部违规操作者的行为,绕过了外部防火墙的保护。
2.1.1 Google Hacking
Google hack 常用语法:
使用方法:
查找后台 site:xx.com intitle:”后台”
查找服务器使用程序 site:xx.com filetype:asp/php
查找上传漏洞 site:xx.com inurl:file
等等
2.1.2 Whois查询
Whois信息就是一个用来查询域名是否被注册以及注册域名详细信息的数据库。
通过域名 Whois 信息查询,我们可以了解到该域名的所属注册商、注册时间、过期时间、dns等公共信息。还可以查询到域名的注册所有人、管理联系人、缴费联系人、技术联系人的姓名、注册电子邮件、地址等域名所有者信息。
https://whois.aliyun.com/whois/domain/
2.1.3 Web应用指纹
应用指纹识别主要指的是鉴别出目标网站搭建使用的程序,包括何种CMS系统、Javascript库、web服务器信息(apache、iis、nginx)、框架信息(thinkphp、struts等)、指纹信息(Dedecms 、Discuz、 PHPWEB、 PHPWind、PHPCMS、ECShop等)、内嵌设备等,例如:
谷歌浏览器插件(Chrome wappalyer)
主要是搭配浏览器比较方便,简易小巧。
数据包Server头
通常可以通过查看返回的数据包的Server头,获取Server信息。
(当知道Server信息后,如果这个Server是存在解析漏洞的情况下,目标站点允许上传文件,并存在一个上传漏洞。那么可以组合使用,上传木马获取webshell。)
框架信息
可以通过报错的方式、URL结构以及x-powered-by获取使用的框架信息。例如ThinkPHP、Struts等,当然也可以利用网络空间安全搜索引擎获取。
指纹信息
通过对目标网站进行指纹识别,查看目标网站是否由第三方CMS系统搭建。如果是由第三方CMS系统搭建,那么根据该CMS去寻找历史漏洞,从而快速地进行下一步渗透操作。
常见指纹识别工具或第三方网站工具:御剑web指纹识别、椰树
第三方网站
http://finger.tidesec.net/(潮汐)
2.1.4 子域名及旁站查询
常用旁站查询地址:
Subdomain
2.1.5 网站目录、后台目录信息等
主动扫描:爬虫、暴力破解
常用工具:Dirb、DirBuster、御剑后台扫描器等
被动扫描:使用burp代理,在网站中进行正常的功能
使用,获取网站目录以及隐藏接口。
利用搜索引擎,例如使用Google hack语法查找目标
网站后台
2.1.6 Ip信息
IP信息指的是目标网站的源站IP、同IP的网站(旁站)、目标站点的端口开放情况。
例如常见端口收集扫描工具Nmap、Masscan;
fofa/zoomeye/shadon网络空间安全搜索引擎等等
Nmap查询用法:
Nmap –sT –T4 –p- -A ip
Fofa网络空间安全搜索引擎查询语法:
title="。。。。" && title="系统"
“。。。。”
2.1.7 cdn节点查询
CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
如何判断目标是否存在CDN
第一种,Ping目标主域名
通过对京东和khan主站进行ping测试,观察域名的解析情况,发现京东才用了自家的CDN服务,而khan主站并没有采用CDN
第二种,使用Nslookup
通过对比不同的DNS域名解释,判断是否使用CDN,若结果不一样,则可能使用了CDN.
(下面是对比图)
第三种,多地Ping
利用全国多个地区对目标进行ping操作,然后对比每个地区ping出来的结果,观察ip是否一致,如果一致,则说明目标可能不存在CDN.
常用网址:
(下面是多地ping两个ip地址的对比图,发现一个ping存在多个ip,另一个则都是显示同一个ip)
绕过CDN查找真实IP的方法
第一种,历史解析记录
有些网站是后来才部署CDN,那么我们可以从历史解析记录来查找出该网站之前的IP历史。
常用网站:
微步在线(https://x.threatbook.cn/)
https://sitereport.netcraft.com/
第二种,通过邮件查找出真实IP
一般的邮件系统都会部署在内部,没有通过CDN解析,可以通过利用目标网站的注册、忘记密码功能,让邮件系统给我们发送邮件,查看邮件、查找邮件头部的邮件服务器域名IP,再通过Ping这个域名,可以获得目标网站的真实IP。
第三种,查找二级域名或者多级域名信息
在许多情况下,只有主站会使用CDN,大多数二级域名或者多级域名,不会采用CDN。
常见收集子域名的方法
工具:layer子域名挖掘机
脚本:subDomainsBrute、dnsmaper
在线子域名爆破:
https://phpinfo.me/domain (在线子域名爆破)
http://dns.aizhan.com(ip翻查域名绑定)
Google hack语法查询
2.1.8 敏感信息查询
用户密码、邮箱密码、vpn账号密码等敏感信息可以通过github进行收集,因为安全意识薄弱的运维人员或者开发人员,经常会把开发代码、各种服务的账号密码等敏感信息上传到代码托管平台。
在github上搜索敏感信息到时候,一般会通过查找网站域名、邮箱后缀、网站路径等进行敏感信息查询。
github网站地址:https://github.com/
2.2.1 常见漏洞
ØWeb应用漏洞包括:SQL注入;文件读取、包含、写入;命令执行;Xss等
Ø常见服务漏洞包括:Redis未授权访问;FTP;SMB(永恒之蓝)等
Ø通用漏洞包括:Weblogic反序列化;Apache解析漏洞;IIS PUT上传等
2.2.2 常见工具
ØSQLMAP(SQL注入快速检查工具)
ØBurpsuite(WEB抓包工具)
ØAWVS(WEB漏洞扫描工具)
ØAppscan(WEB漏洞扫描工具)
ØNessus(系统漏洞扫描工具)
ØMetasploit
ØKali https://www.kali.org/
提权方法包括:
Ø 内核漏洞提权:利用操作系统内核级别漏洞提权
Ø 应用提权:利用高权限用户启动的应用漏洞
Ø 计划任务提权:利用系统自启动项提权
例如:
当我们通过各种途径拿到SQL SERVERS数据库的SA用户以后,我们就可以使用XP_CMDSHELL干各种事情了!
Exec master..xp_cmdshell 'ipconfig /all'