渗透测试流程

渗透测试(学习笔记)_IP

一、目标信息搜集

 目标信息搜集主要分为一下几个模块:

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。

渗透测试(学习笔记)_IP_02

渗透测试(学习笔记)_MySQL_03

判断目标网站服务器的具体的版本的话,可以采用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

某些端口对应的服务已经爆出漏洞,但由于业务原因,端口不得修改,这样的情况也在影响着企业网络的安全,可供黑客利用的端口很多,下面举例说明几个最常被利用的端口。

  1. 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,嗅探等……

  1. tcp 3306 MySQL(数据库)         注入,提权,爆破

 4.tcp 7001,7002  WebLogic (WEB应用系统 ) Java反序列化,弱口令

  1. tcp 3389 Windows rdp(桌面协议)        shift后门[需要03以下的系统],,爆破,ms12-020
  2. 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反序列化

三、域渗透

域渗透一般思路

渗透测试(学习笔记)_数据库_04