超详细渗透测试流程

 越来越多的网站以及app手机端客户注重安全渗透测试服务,上线前必须要对平台进行全面的预渗透测试找出安全漏洞以及BUG,很多客户找我们,做渗透测试服务的时候对具体的流程可能不太了解,下面我们把具体的渗透测试方法流程大体写的全面一点给大家呈现。

这是今天找app渗透测试的时候发现一个大佬写的,他把这个文章归类在app渗透测试了,其实下面的内容主要是web渗透测试的,这里他总结了中间件的漏洞和一些框架的漏洞。是我一直想学习的内容。

渗透测试

一、渗透流程

  1. 信息收集
  2. 漏洞验证/漏洞攻击
  3. 提权,权限维持
  4. 日志清理

信息收集

一般先运行端口扫描和漏洞扫描获取可以利用的漏洞。多利用搜索引擎

端口扫描

有授权的情况下直接使用 nmap 、masscan 、自己写py脚本等端口扫描工具直接获取开放的端口和获取服务端的 banner 信息。

漏洞扫描

使用北极熊扫描器、Nessus、awvs等漏扫工具直接扫描目标,可以直接看到存活主机和主机的漏洞情况。

二、漏洞攻击

如果只是使用端口扫描,只是发现开放的端口,在获取 banner 信息后需要在漏洞库(seebug,ExploitDB )上查找对应 CVE,后面就是验证漏洞是否存在。安全检查一般是尽可能的发现所有漏洞,对漏洞的风险进行评估和修复。入侵的话只关注高危远程代码执行和敏感信息泄露漏洞等可以直接利用的漏洞。漏洞验证可以找对应的 CVE 编号的 POC、EXP,利用代码在 ExploitDB 、seebug上查看或者在 github 上搜索是否有相关的漏洞验证或利用的工具。

2.1 Web应用

可以直接寻找注入、上传、代码执行、文件包含、跨站脚本、等漏洞,来进行攻击。一般可以使用 AWVS 直接扫描常见漏洞。

2.1.2 Web 中间件

(1)Tomcat

Tomcat是Apache Jakarta软件组织的一个子项目,Tomcat是一个JSP/Servlet容器,它是在SUN公司的JSWDK(Java Server Web Development Kit)基础上发展起来的一个JSP和Servlet规范的标准实现,使用Tomcat可以体验JSP和Servlet的最新规范。

  • 端口号:8080
  • 攻击方法:
  • 默认口令、弱口令,tomcat5 默认有两个角色:tomcat和role1。其中账号both、tomcat、role1的默认密码都是tomcat。弱口令一般存在5以下的版本中。
  • 在管理后台部署 war 后门文件
  • 远程代码执行漏洞

(2) Jboss

是一个运行EJB的J2EE应用服务器。它是开放源代码的项目,遵循最新的J2EE规范。从JBoss项目开始至今,它已经从一个EJB容器发展成为一个基于的 J2EE 的一个Web 操作系统(operating system for web),它体现了 J2EE 规范中最新的技术。

  • 端口:8080
  • 攻击方法:
  • 弱口令
  • 管理后台部署 war 后门
  • 反序列化
  • 远程代码执行
  • 参考:

(3)WebLogic

WebLogic是美国Oracle公司出品的一个Application Server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。

  • 端口:7001,7002
  • 攻击方法:
  • 弱口令,弱密码一般为weblogic/Oracle@123 or weblogic
  • 管理后台部署 war 后门
  • SSRF
  • 反序列化漏洞
  • weblogic_uac

(4) WebSphere

IBM公司一套典型的电子商务应用开发工具及运行环境。

  • 端口:默认端口:908*;第一个应用就是9080,第二个就是9081;控制台9090
  • 攻击方法:
  • 控制台登录
  • 很多内网 websphere 的控制台存在弱口令 / 默认口令,可以使用 admin/admin 以及 webshpere/webshpere 这种口令登录。通过该口令登录控制台后,可以部署 war 包,从而获取到 WEBSHELL 。
  • 反序列化
  • 任意文件泄露

(5) Glassfish

2.1.3 Web 框架

(1) Struts2

Struts2是一个优雅的,可扩展的框架,用于创建企业准备的Java Web应用程序。出现的漏洞也着实的多每爆一个各大漏洞平台上就会被刷屏。

  • 可利用漏洞
  • S2-046 CVE-2017-5638 Struts 2.3.5-2.3.31,Struts 2.5-2.5.10
  • S2-045 CVE-2017-5638 Struts 2.3.5-2.3.31,Struts 2.5-2.5.10
  • S2-037 CVE-2016-4438 Struts 2.3.20-2.3.28.1
  • S2-032 CVE-2016-3081 Struts 2.3.18-2.3.28
  • S2-020 CVE-2014-0094 Struts 2.0.0-2.3.16
  • S2-019 CVE-2013-4316 Struts 2.0.0-2.3.15.1
  • S2-016 CVE-2013-2251 Struts 2.0.0-2.3.15
  • S2-013 CVE-2013-1966 Struts 2.0.0-2.3.14
  • S2-009 CVE-2011-3923 Struts 2.0.0-2.3.1.1
  • S2-005 CVE-2010-1870 Struts 2.0.0-2.1.8.1

(2)Spring 框架

Spring Framework 是一个开源的Java/Java EE全功能栈(full-stack)的应用程序框架,以Apache License 2.0开源许可协议的形式发布,也有.NET平台上的移植版本。Spring Framework提供了一个简易的开发方式,这种开发方式,将避免那些可能致使底层代码变得繁杂混乱的大量的属性文件和帮助类。

  • 可利用漏洞
  • CVE-2010-1622
  • CVE-2018-1274
  • CVE-2018-1270
  • CVE-2018-1273
  • 反序列化
  • 目录穿越

2.1.4 Web 服务器

  • IIS:Windows 的 WWW 服务器
  • 端口:80
  • 攻击方法:
  • IIS,开启了 WebDAV,可以直接详服务器 PUT 文件
  • 短文件名枚举漏洞
  • 远程代码执行
  • 提权漏洞
  • 解析漏洞
  • Apache
  • 端口:80
  • 攻击方法:
  • 解析漏洞
  • 目录遍历
  • Nginx
  • 端口:80
  • 攻击方法:
  • 解析漏洞
  • 目录遍历
  • CVE-2016-1247:需要获取主机操作权限,攻击者可通过软链接任意文件来替换日志文件,从而实现提权以获取服务器的root权限。
  • lighttpd
  • 端口:80
  • 攻击方法:
  • 目录遍历

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31542418/viewspace-2658203/

你可能感兴趣的:(web安全,安全,java)