软件服务 | 传媒服务 | 企业服务 | 科研服务 | 行业新闻集群智慧云安全服务网,数字时代网络安全服务商,推动行业网络安全能力升维,为新基建、数字经济的发展保驾护航。

已阅读

网站上线前渗透测试检测方法(一)

作者:集群智慧云安服      来源:集群智慧云安服      发布时间:2021-11-15
一、渗透流程
 
1、信息收集
2、漏洞验证/漏洞攻击
3、提权,权限维持
4、日志清理
5、信息收集
 
       一般先运行端口扫描和漏洞扫描获取可以利用的漏洞。多利用搜索引擎。端口扫描:有授权的情况下直接使用 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
攻击方法:目录遍历。
 
2.2 常见运维系统
 
 
       渗透测试运维:一般分自动化部署和运维监控相关的的工具。漏洞可以通过搜索引擎搜索,github搜索,ExploitDB搜索,官网上的安全通告获取。内网的通用类应用比较常见的问题是弱口令,如果一个管理员可以登录几个系统,那在这几个系统的账号、密码也基本上是一样的。
 
2.2.1 Gitlab
 
       GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的项目仓库,可通过Web界面进行访问公开的或者私人项目。
 
       可利用漏洞:任意文件读取漏洞、意用户 token 泄露漏洞、命令执行漏洞。
 
2.2.2 Jenkins
 
       Jenkins是一种跨平台的持续集成和交付的应用软件,它便于不断稳定地交付新的软件版本,并提高你的工作效率。这款开发运维工具还让开发人员更容易把项目的变化整合起来,并使用大量的测试和部署技术。
 
       可利用漏洞:远程代码执行漏洞、反序列化漏洞、未授权访问漏洞、登录入口爆破。
 
2.2.3 Puppet
 
       Puppet Enterprise专门管理基础设施即代码(IAC),在这种类型的IT基础设施配置过程中,系统用代码而不是脚本流程来自动构建、管理和配置。由于它是代码,整个过程易于重复。Puppet有助于更容易控制版本、自动化测试和持续交付,可以更快速地响应问题或错误。
 
       可利用漏洞,很少公开的POC,反序列化、远程命令执行。
 
2.2.4 Ansible
 
       Ansible是一种配置和管理工具,面向客户端的软件部署和配置,支持Unix、Linux和Windows。它使 用JSON和YAML,而不是IAC,根本不需要节点代理就可以安装。它可以通过OpenStack在内部系统上使用,也可以在亚马逊EC2上使用。
 
       可利用漏洞:远程代码执行
2.2.5 Nagios
 
       Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。
 
       可利用漏洞:代码执行、SQLi。
 
2.2.6 Zabbix
 
       Zabbix 是一款强大的开源分布式监控系统, 能够将SNMP、JMX、Zabbix Agent提供的数据通过WEB GUI的方式进行展示.
 
       可利用漏洞(具体参考 ExploitDB):远程代码执行、SQLi、shell 命令注入、认证绕过、默认账户与密码,默认口令 admin/zabbix,或者是guest/空。