最全的渗透测试具体详细检测⽅法
越来越多的⽹站以及app⼿机端客户注重安全渗透测试服务,上线前必须要对平台进⾏全⾯的预渗透测试出安全漏洞以及BUG,很多客户我们SINE安全,做渗透测试服务的时候对具体的流程可能不太了解,下⾯我们把具体的渗透测试⽅法流程⼤体写的全⾯⼀点给⼤家呈现。
渗透测试
⼀、渗透流程
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
root的初始密码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 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/空
2.2.7 Cacit
Cacti是⼀套基于PHP,MySQL,SNMP及RRDTool开发的⽹络流量监测图形分析⼯具。
可利⽤漏洞
任意代码执⾏
SQLi
登录爆破
默认密码admin/admin

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。