渗透测试流程
一、目标信息搜集
目标信息搜集主要分为一下几个模块:
1>基础信息:确定目标资产范围,域名,内外网,IP,域名,端口等
2>目标系统搜集(操作系统版本,系统应用等)
3>应用信息:网站容器,脚本类型,数据库类型等
4>版本信息:所有这些探测到的东西的版本
5>人员信息:域名注册人员信息,web应用中网站发帖人的id,管理员姓名等
6>防护信息:试着看能否探测到防护设备
一、基础信息:确定目标资产范围,域名,内外网,IP,子域名,端口等
1.通过确定目标的真实IP,对IP段进行定位,同一位置IP可确定为该目标系统资产。
2.通过工具对目标主站URL下的子域名进行搜集。有些情况下,对子域名进行访问时可直接暴露出目标的真实IP,或者目标的内网IP。
注:常用工具(subdomain)
3.确定好目标资产范围后,对资产网段进行端口扫描,主要进行高危端口扫描。
注:(21,22,23,25,53,80,99,110,135,139,143,443,445,1433,3306,3389,8080,43958等)
常用工具(nmap,webrobot等)
二、目标系统搜集(操作系统版本,系统应用等)
服务器类型:判断是Linux还是Windows最简单就是通过ping来探测,Windows的TTL值都是一般是128, Linux则是64。所以大于100的肯定是Windows,而几十的肯定是Linux。
判断目标网站服务器的具体的版本的话,可以采用nmap进行扫描,-O和-A参数都能扫描出来。
三、应用信息:网站容器,脚本类型,数据库类型等
还需要知道网站用的web服务器是什么类型的:Apache. Nginx, Tomcat还是IIS。
知道了web服务器是哪种类型后,还要探测web服务器具体的版本。
比如Ngnix版本<0.83会有解析漏润,IIS6.0会有文件名解析漏洞、IIS7.0会有畸形解析漏洞等。不同的web服务器版本,存在着不同漏洞。
网站用的脚本类型:php 、 Jsp . Asp 、 Aspx 。
1:可以根据网站URL来判断
2:site:xxx filetype:php
3:可以根据Firefox的插件来判断
数据库类型判断
需要知道网站用的是哪种类型的数据库:Mysql、Oracle、 SqlServer 还是Access。
虽然这几种数据库的语法大体上相同,但是还是有区别的。所以我们还是要知道目标网站用的是哪种数据库,并且数据库是哪个版本的。
几种数据库的区别:
1.Access全名是Microsoft Office Access,是由微软发布的关联式数据库管理系统。小型数据库,当数据库达到100M左右的时候性能就会下降。
数据库后缀名: .mdb 一般是asp的网页文件用access数据库
2. SQL Server是由Microsoft开发和推广的关系数据库管理系统 (DBMS),是一个比较大型的数据库。端口号为1433。
数据库后缀名.mdf
3. MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle旗下产品。 MySQL是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的应用软件之一,MySQL数据库大部分是php的页面。默认端口是3306
4. Oracle又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。常用于比较大的网站。默认端口是1521
数据库与容器常见搭配
ASP和 ASPX: ACCESS、SQL Server
PHP: MySQL、PostgreSQL
JSP: Oracle、MySQL
四、版本信息
版本信息包括数据库版本,容器版本以及cms版本等。
就容器来说,不同版本的容器存在有不同的漏洞,版本过低的容器甚至可直按拿下服务器权限。
五、人员信息:域名注册人员信息,web应用中网站发帖人的id,管理员姓名等。
人员信息不止简单的包括网站注册人员,针对不同的目标,我们需要搜集不同的信息。
如对学校系统做渗透时,我们需要搜集学生学号,姓名,证件等信息。这些信息一般在学校的教务系统,或学校贴吧中可以进行搜集。
对企业系统进行渗透时,我们需要搜集的不仅仅是网站建站人员信息,更多的是员工信息,以及公司高层的个人信息。其中应着重注意高层个人信息以及信息处员工信息。
六、防护信息:试着看能否探测到防护设备
在对目标进行资产搜集的时候,我们应该着重注意资产范围内的设备信息,如防火墙等布在公网对网站进行防护的设备,大多数情况下,这种设备存在弱口令。这将对进一步渗透提供帮助。
漏洞探索利用阶段
渗透测试中我们常遇到的漏涧类型有以下儿种:1.系统漏洞:系统没有及时打补丁
2.Websever漏洞: Websever配置河题3. Web应用漏洞: Web应用开发问题
4.其它端口服务漏洞:各种21/8080(st2)/7001/22/33895.通信安全:明文传输, token在cookie中传送等。
针对漏洞的验证方式主要有下面几类:
1.自动化验证:结合自动化扫描工具提供的结果2.手工验证,根据公开资源进行验证
3.试验验证:自己搭建模拟环境进行验证
4.登陆猜解:有时可以尝试猜解一下登陆口的账号密码等信息5.业务漏洞验证:如发现业务漏洞,要进行验证
6.公开资源的利用-google hacking-渗透代码网站-通用、缺省口令-厂商的漏洞警告等等。
漏洞探索利用阶段
渗透测试中我们常遇到的漏涧类型有以下几种:
1.系统漏洞:系统没有及时打补丁
2.Websever漏洞: Websever配置河题
3. Web应用漏洞: Web应用开发问题
4.其它端口服务漏洞:各种21/8080(st2)/7001/22/3389
5.通信安全:明文传输, token在cookie中传送等。
针对漏洞的验证方式主要有下面几类:
1.自动化验证:结合自动化扫描工具提供的结果
2.手工验证,根据公开资源进行验证
3.试验验证:自己搭建模拟环境进行验证
4.登陆猜解:有时可以尝试猜解一下登陆口的账号密码等信息
5.业务漏洞验证:如发现业务漏洞,要进行验证
6.公开资源的利用-google hacking-渗透代码网站-通用、缺省口令-厂商的漏洞警告等等。
一、系统漏洞
常见的系统漏洞及利用方式
漏洞:MS-17-010 SMB远程命令执行
漏洞验证及利用:Kali中msf自带ms-17-010验证以及利用模块,可通过msf直接对主机445端口进行渗透,获取主机权限。
漏洞:CVE-2019-0708远程桌面代码执行漏洞
漏洞验证及利用:msf最新版本已经更新了cve-2019-0708的攻击模块,如对cve-2019-070直接进行攻击会造成系统瘫痪,所以像这种高危系统漏洞一般只进行验证,不进行攻击。
二、webserver漏洞
常见的webserver有apache;tomcat; nginx; jetty; jboss等。
针对webserver来说,主要的漏洞存在于对webserver配不当,未及时更新等方面。
Webserver配置不当造成的主要影响有
1.后台页面暴露(可爆破管理账号等操作)
2.一般企业不会对webserver管理账号进行密码强度限制
3.webserver进入后台管理后大部分可进行上传shell等高危操作
4.Webserver的漏洞也在不断更新,若不对其进行升级,老旧版本对安全长度威胁很大
三、web应用漏洞
当前网络环境中存在的主要的web应用漏洞即为owasp十大漏润,这些漏洞是目前出现最多的web应用漏洞。
Owasp top 10 漏洞
注入 安全误配置
失效的身份认证和会话管理 限制URL访问失败
跨站 未验证的重定向和转发
不安全的对象直接引用 应用已知脆弱行的组件
伪造跨站请求 敏感数据暴露
四、其它端口服务漏洞:各种21/8080(st2)/7001/22/3389
某些端口对应的服务已经爆出漏洞,但由于业务原因,端口不得修改,这样的情况也在影响着企业网络的安全,可供黑客利用的端口很多,下面举例说明几个最常被利用的端口。
- tcp 20,21 FTP(文件传输协议) 允许匿名的上传下载,爆破,嗅探,win提权,远程执行(proftpd 1.3.5),各类后门(proftpd,vsftp 2.3.4)
2.tcp 137,139,445 SMB (NETBIOS协议) 可尝试爆破以及smb自身的各种远程执行
类漏涧利用,如,ms08-067,msl7-010,嗅探等……
- tcp 3306 MySQL(数据库) 注入,提权,爆破
4.tcp 7001,7002 WebLogic (WEB应用系统 ) Java反序列化,弱口令
- tcp 3389 Windows rdp(桌面协议) shift后门[需要03以下的系统],,爆破,ms12-020
- tcp 8080-8089Jenkins,JBoss(应用服务器) 反序列化,控制台弱口令
五,通信安全:明文传输, token在cookie中传送等。
五,通信安全:明文传输, token在cookie中传送等。
通信安全漏洞主要体现在数据在网路的传输过程中被截获,改造,利用从而达到攻击者的目的。
主要易被利用的有
1.数据传输中账号密码等敏感信息为加密,明文传输。
2.数据传输过程中被篡改,发出端与接受端未对数据完整性进行校验。
3.根据tcp/ip协议漏涧进行SYN泛洪攻击以及ICMP重定向攻击等
突破隔离,内网控制
进入内网后,我们需要明确自己在内网中要拿到什么东西,因此,在渗透测试过程中,进入内网后一般有如下几个操作。
1.服务器(机器定位)与网络信息资产搜集
2.弱口令检测
3.域渗透
因为我们只是对系统安全进行检测,因此不涉及留后门,种马等操作。
一、服务器(机器定位)与网络信息资产搜集
收集域内域控制器信息
收集域控上域用户登录日志信息
收集域内所有用户名以及全名备注等信息
收集域内工作组信息
收集域管理员帐号信息
收集域内网段划分信息
收集域内组织单位信息
对服务器资产信息进行收集,了解哪些ip是存活的,存活的IP开放了哪些端口,以及端口对应的服务。
二、弱口令检测
在这些服务器开放的端口服务中,主要服务由为系统服务、数据库服务、web服务。对常见的端口服务进行弱口令检测是非常有必要的。
主要的检测内容有:
1.系统弱口令: FTP、 SSH、 TELNET、 SMB
2.数据库弱口令: MSSQLMYSQLPOSTGRE、MONGODB
3.中间件弱口令: TOMCAT、WEBLOGIC、 PHPMYADMIN
常见系统服务弱口令:
1、IPC$ SSH、 Telnet等弱口令,基本上等于拿到了系统权限了
2、MSSQL数据库SA弱口令可直接调用存储过程执行系统命令
3、mysql数据库root明口令,可尝试udf直接提权,mysq5.1以上版本关健的第一步是否能创建plugin目录,默认一般是不存在的.
基本套路:弱口令-提权-读取缓存密码常见Web常见应用端口服务:
1、WebLogic 默认端口:7001弱口令,console后台部署webshell Java反序列化
2、Tomcat默认端口:8080弱口令, manager后台部署war包上传
3、jboss默认端口:8080弱口令,未授权访问,java反序列化
三、域渗透
域渗透一般思路