渗透测试

1. 定义:是实施安全评估(即审计)的具体手段。

2.方法论

是制定、实施信心安全审计方案时,需要遵循的规则、惯例和过程。

目前没有官方组织规定渗透测试的流程

3.渗透测试种类

*网络基础设施:网络、应用、系统和三者中的任意组合

(1)黑盒测试:在进行黑盒测试时,安全审计员在不清楚被测单位的内部技术构造的情况下,从外部评估网络基础设施的安全性。在渗透测试的各个阶段,黑盒测试借助真实世界的黑客技术,暴露出目标的安全问题,甚至可以揭露尚未被他人利用的安全弱点。

*安全风险等级排序:高危、中危、低危和信息泄露。

(2)白盒测试:

4.脆弱性评估与渗透测试

(1) 脆弱性评估:脆弱性评估通过分析企业资产面临安全威胁的情况和程度,评估内部和外部的安全控制的安全性。这种技上的信息系统评估,不仅揭露现有防范措施里存在的风险,而且要提出多重备选的补救策略,并将这些策略进行比较。内部的脆弱性评估可以保证内部系统的安全性,而外部的脆弱性评估则是验证边界防护的有效性。无论进行内部还是外部脆弱性评估,评估人员都会采用各种攻击模式还严格测试网络资产的安全性,从而验证信息系统处理安全威胁的能力,进而确定应对措施的有效性。

不同类型的脆弱性评估需要的测试流程、测试工具和自动化测试技术也不相同,这可以通过一体化平台来实现。现在的安全若点管理平台带有可自动更新的漏洞数据库,能够测试不同类型的网络设备,而且不会影响配置管理和变更管理的完整性。

(2)脆弱性评估与渗透测试的区别

安全测试方法论

1. 开放式web应用程序安全项目(OWASP)

官网:https://www.owasp.org.cn/

(1)测试指南

(2)开发人员指南

(3)代码审查指南

owasp top10(中文版),熟记

其中,a7,a8在Java中使用的较多

2.通用缺陷列表(Commen Weakness Enumeration,CWE)

CWE-79:XSS漏洞

CWE-89:SQL注入

3.通用漏洞与披露(Common Vulnerabilities and Exposures,CVE)

CVE2019-0708:远程桌面

CWE:某一类漏洞编号

CVE:某一个漏洞编号

MS17-010:微软发布的第十个安全公告

S2-053(struts2):apache开源开发java的框架,S2

*一般一个安全公告就是一个漏洞,但是MS17-010对应多个漏洞

*通过打补丁来修补漏洞    ,微软的补丁以KB开头

4.其他方法论

(1)开源安全测试方法论(OSSTMM)

(2)信息系统安全评估框架(ISSAF)

(3)web应用安全联合威胁分类(WASC-TC)

OpenVAS的安装(开放漏洞评估扫描仪)

OpenVAS是开源的望楼漏洞扫描器。自从Nessus收费之后分支出来的项目

官网 http://www.openvas.org

web端管理接口,4.9之后支持中文

三种类型:livedemo,virtual appliance,source edition

virtual appliance一个虚拟机

安装时需要用到虚拟机[gsm-ce=5.0.10.iso]

新建虚拟机(附下图:虚拟机要求)

除了virtualbox,也可以用VMware安装

继续后,打开自定义设置,设置完成后启动虚拟机

选择第一个

设置用户名和密码

完成后重启,重启前的“是否弹出CD”,选择yes

重启后进入到登陆界面,输入账号密码

选择yes

选择yes,创建web用户,一直往后走

渗透测试流程

1.渗透测试执行标准(PTES):这个标准有渗透测试7个阶段的标准组成,可以再任意环境中进行富有成果的渗透测试

(1) 官网左上角PTES technical guideline(技术指南):包括我们做某件事需要用到的环境和工具

(2)PTES主要特性和优势

*它是非常全面的渗透测试框架,涵盖了渗透测试的技术方面和其他重要方面,如范围蔓延(scope creep)、报告,以及渗透测试人员保护自身的方法。

*它介绍了多数测试任务的具体方法,可指导我们准确测试目标系统的安全状态。

*它汇聚了多名日行一“渗”的渗透测试专家的丰富经验。

*它包含了最常用以及很罕见的相关技术。

*浅显易懂。

2.通用测试框架

相关阶段:

(1)范围界定

需要考虑的因素

*测试对象是什么?

*应当采取哪种测试方法?

*有哪些在测试过程中需要满足的条件?

*哪些因素可能会限制测试执行的过程?
                *完成测试所需的时间?

*本次测试应达成什么样的任务目标?

(2)信息搜集

在本阶段,渗透人员需要使用各种公开资源尽可能地获取测试目标地相关信息。

互联网上搜集信息地渠道主要有:

收集的信息越多,渗透测试成功的概率越高。

(3)目标识别

本阶段的主要任务是识别目标的网络状态、操作系统和网络架构。该阶段工作旨在完整地展现目标网络里各种联网设备或技术的完整关系,以帮助测试人员在接下来的工作中枚举目标网络的各种服务。(即知道目标网络里的联网设备以及这些设备如何进行通信)

(4)服务枚举

会根据前面各个阶段的成果,进一步找出目标系统中所有开放的端口。一旦找到了所有开放的端口,就可以通过这些端口来列出目标系统上运行的服务。主机上开放的端口都有相应的服务程序,对这些信息进行深度分析之后,可进一步发掘目标网络基础设施中可能存在的漏洞。

(5)漏洞映射(即漏洞扫描)

目的:查找已知和未知的漏洞

(6)社会工程学

(7)漏洞利用:是在发现漏洞后进行深度利用。这个流程可以分为三步:攻击前、攻击、攻击后的相关行动。

(8)权限提升:获取目标系统的控制权。

(9)访问维护:即埋藏后门。

(10)文档报告

无论是进行黑盒还是白盒测试,选择和使用测试步骤都是测试人员的责任。在测试开始前,测试人员需要根据目标系统的实际环境和已掌握的相关目标系统的情况,在指定最佳的测试策略。

3.简化渗透测试流程

(1)明确目标    确定范围 | 确定规则 | 确定需求

(2)信息收集    基础信息 | 系统信息 | 应用信息 | 人员信息 |防护信息

(3)漏洞探测    系统漏洞 | web服务漏洞 | web应用漏洞 | 其他端口 | 通信安全

(4)漏洞验证     手工验证 | 工具验证 | 实验验证

(5)漏洞利用     定制EXP(完整的漏洞利用程序) | 防御绕过 | 进一步渗透 | 清理痕迹

(6)形成报告      整理结果 | 补充介绍 | 修复建议

4.黑客攻击的一般过程

5.渗透测试指南

需要我们在实践中不断总结,形成自己的渗透测试指南

web架构安全分析

1.web工作机制

输入网址,先查找本地缓存,没有再查找host文件,通过ARP协议得到对方MAC地址,找到网关获取DNS、IP地址,通过网关、路由,到达对方主机,访问80 443,三次握手,清理连接,发送http数据包,http响应(如访问.html文件,直接发过去;如访问.php,对php进行解析再发;如.php文件连接了数据库,访问数据库,php得到运行结果,返回到客户端 )

2.网页、网站

我们可以通过浏览器上网看到的精美画面一般都是经过浏览器渲染过的html页面,其中包含了css等前端技术。

多个网页的集合就是网站。

3.web容器

(1)web容器也叫web服务器,主要提供web服务,也就是常说的http服务。

(2)常见的web容器有:Apache / IIS / Nginx等。

Apache(自带)支持.php

IIS(自带)支持.net。能支持.php

Nginx支持.php。且Nginx作为web容器有反向代理功能

Nginx被用到较多的地方:负载运航( Nginx性能高)

反代的目的:

4.静态网页

静态的网页都是一些.html文件,是纯文本文件。这些文件中包含html代码。

HTML(hypertext markup language,超文本标记语言),在浏览器中解释运行。

5.中间件服务器

weblogic(原本是Java的一个中间件,既能作为web容器,又能作为中间件,还能做负载运航)

Jboss(Java的中间件,也可以作为web容器)

6.数据库的出现

7.http协议概述

(1)http(hypertext transfer protocol,超文本传输协议)是浏览器与web服务器之间的通信协议,是传递消息的规范和要求。

(2)概述

*1990年提出,当前版本1.1

*http是用来将html文档从web服务器传输到web浏览器

*是一个请求与相应的协议。客户端发出请求,服务器端对请求给出回应。

*http使用可靠的TCP连接,默认端口80。

(3)特点

*支持浏览器/服务器模式

*简单快速:浏览器向服务器突出请求时,只需要传送请求方法和请求路径(资源的名字、路径和方法)。

*灵活:http运行传输任意类型的数据对象

.html   纯文本

.jpg     图片

.mp3   音频

以数据流的方式传递数据

*http协议是无状态的协议。

浏览器不能断点续传

8.URL

(1)统一资源定位符(网址),用来告诉web容器,浏览器所请求资源(文件)的路径。

fragment    锚点    实现页面内定位

(2)URL编码

*在进行编程时,会用[+]代替空格。

*URL编码原理:%+ASCII十六进制形式

*URL编码时,一般不要用中文

9.HTTP报文分析

(1)web应用的所有通信的消息都要遵守http协议的规范和要求。

(2)http请求的组成部分:请求行、请求头、请求正文三个部分

*请求行:方法,资源路径,协议/版本

*请求头:从请求报文第二行开始到第一个空行为止之间的内容。其中包含很多字段。

*请求正文:

get 是最常用的方法,通常用于请求服务器发送的某个资源

二者的区别post可以想服务器提交参数以及表单,包括文件流等

head 与get方法类似,但在服务器响应中只返回首部

put 与get从服务器读取文档相反,put方法会向服务器写入文档

trace 回显浏览器的请求

options 请求web服务器告知其支持的各种功能

delete 请求服务器删除请求URL所指定的资源

如果我们的服务器开启了put,options,delete中的任意一个,我们就认为该服务器很危险

(3)主要字段

10.REPONSE(响应报文)

响应报文有状态行、响应头、响应正文三部分组成

(1)状态行:协议/版本,状态代码,描述短语

(2)响应报头:第二行开始到第一个空行为止的所有内容,其中包含了关于http响应的重要字段

(3) 响应正文:服务器返回资源的内容,即前段HTML代码

*状态代码

*主要字段

11.同源策略

(1)同源策略的条件

*URL的主机一致

*schema(即协议)一致

*端口号一致

信息收集

1.DNS信息

主要收集域名注册商,管理员联系方式,电话和邮箱,子域名等信息。

*whois查询

也可以通过站长之家进行whois查询

whois也可用于反查(邮箱,注册人,电话)

例如,邮箱反查:我们通过一个域名查到一个邮箱,我们可以通过反查知道这个邮箱曾注册过哪些域名

*子域名查询

// 可以查询子域名的网站[https://searchdns.netcraft.com/]

// 证书

2.域传送漏洞

(1)DNS区域传送

通过域传送漏洞可以得到子域名信息,子域名对应的IP地址

工具:dnsrecon

(2)DNS2IP:通过DNS解析找到IP地址

testfire.net

baidu.com

www.baidu.com

-ping(得到的是非权威解答)

-nslookup(非权威解答)

-dig       dig  +域名       (指定dns服务器)

dig   +trace  +域名    (获取域名的详细解析过程)

-dnsenum      dnsenum  +域名

该工具在解析域名的时候,会自动检测域传送漏洞

-站长工具

-CDN加速的问题

CDN是内容分发网络,本意是进行节点缓存,使网站访问速度加快

3.IP查询

推荐工具:站长之家

(1)同IP网站查询:同一个IP上的网站

同一服务器上的两个网站叫做旁站

(2)IP2location

查询IP地址经纬度

https://www.maxmind.com/zh/home

通过GPS查询物理位置

http://www.gpsspg.com/maps.htm

4.利用搜索引擎搜集信息

(1)google hacking

*site    指定网站

*" "       包含关键字

*inurl     在URL中出现的关键字

*filetype   指定文件类型  不太好用

*探索网站目录结构

"parent directory" site:testfire.net     搜索某网站的某关键字

*搜索容易存在sql注入的页面

*搜索指定的文件类型

*搜索phpinfo()

*搜索phpstudy

(2)钟馗之眼:支持公网设备指纹搜索和web指纹检索。

https://www.zoomeye.org/help

*搜索IIS6.0组件

*搜索开启3389端口的Windows主机

5.web网站信息搜集

收集指纹信息

web服务器信息(netcraft)

4.利用搜索引擎搜集信息


千锋网络安全学习笔记部分3相关推荐

  1. 千锋网络安全学习笔记部分2

    -IP包头分析与静态路由 IP数据包格式 基础知识 1.整张图表示上三层结构 2.最下面的"数据"指四层加五层的数据 3.从版本到可选项即为三层包头 4.括号中的值单位是比特,每行 ...

  2. 千锋Django学习笔记

    千锋Django学习笔记 文章目录 千锋Django学习笔记 写在前面 1. MVC和MTV 2. Django简介 3. MTV简单流程 4. 和Model的简单对接 5. Model 6. Tem ...

  3. 千锋Flask学习笔记

    千锋Flask学习笔记 文章目录 千锋Flask学习笔记 写在前面 1. Flask介绍 2. Views 3. Request 4. Response 5. 会话技术 6. 模型和模板 7. 数据传 ...

  4. 千锋JavaScript学习笔记

    千锋JavaScript学习笔记 文章目录 千锋JavaScript学习笔记 写在前面 1. JS基础 1.1 变量 1.2 数据类型 1.3 数据类型转换 1.4 运算符 1.5 条件 1.6 循环 ...

  5. 千锋Unity学习笔记

    学习笔记:[千锋合集]史上最全Unity3D全套入门教程|匠心之作 文章目录 初级 1.0数学 1.0点乘叉乘 1.点乘: 2.叉乘: 2.0Mathf 3.0Vector 4.0旋转 2.0组件 3 ...

  6. 网络安全学习(千锋网络安全笔记)1--搭建虚拟机

    网络安全学习(千锋网络安全视频笔记)1–搭建虚拟机 虚拟机(winxp,win7,win2003,win2008)的安装 虚拟机使用VM 配置虚拟机的一般步骤: 一.虚拟机的硬件配置及系统安装 二.优 ...

  7. 网络安全学习(千锋网络安全笔记)2--IP与基本DOS命令

    网络安全学习(千锋网络安全笔记)2–IP与基本DOS命令 文章目录 1.IP地址详解 **局域网(内网)** **IP地址** **子网掩码** **IP地址** **网关** **DNS** **测 ...

  8. [网络安全学习篇10]:扫描技术、暴力破解工具(千峰网络安全视频笔记 10 day)

    引言:我的系列博客[网络安全学习篇]上线了,小编也是初次创作博客,经验不足:对千峰网络信息安全开源的视频公开课程的学习整理的笔记整理的也比较粗糙,其实看到目录有300多集的时候,讲道理,有点怂了,所以 ...

  9. [网络安全学习篇2]:IP详解及简单的DOS命令(千峰网络安全视频笔记 2 day)

    引言:我的系列博客[网络安全学习篇]上线了,小编也是初次创作博客,经验不足:对千峰网络信息安全开源的视频公开课程的学习整理的笔记整理的也比较粗糙,其实看到目录有300多集的时候,讲道理,有点怂了,所以 ...

最新文章

  1. CCNET+MSBuild+SVN实时构建的优化总结
  2. 热血致敬!曾影响几代科学巨匠的传奇经典,至今仍无人能超越!
  3. CXF WebService 开发文档-目录索引
  4. jquery ajax返回html乱码解决
  5. java笔试题2015_去哪儿2015笔试题JAVA实现
  6. web开发 java如何连接数据库并取得数据,实现 增,删,改,查
  7. SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题(一)
  8. 怎样用计算机演示声音的波形,趣味物理实验 用计算机观察声音的波形
  9. ScaleAnimation缩放动画Demo
  10. 三菱fx2n做从站的modbus通讯_三菱PLC的通讯与编程,附实际案例
  11. 红外激光测距模块功能简述
  12. 基于jsp的新闻发布系统
  13. 鸿蒙系统底部任务栏无响应,win10底部任务栏无响应两种修复方法
  14. 八爪鱼采集ajax表格,如何快速统计简书数据——八爪鱼采集器(二)
  15. 快速给PDF批量添加目录
  16. 面试|详细分析ScheduledThreadPoolExecutor(周期性线程池)的原理
  17. 学测绘和计算机,测绘工程就业方向与前景 女生学测绘好找工作吗
  18. FOne MOOC在线课程平台
  19. 无偏性、有效性、一致性
  20. php开发人工智能,php可以开发人工智能吗

热门文章

  1. ppt转换器免费下载
  2. android常用工具类之铃声、音量的设置
  3. 超详细shell脚本编程快速入门
  4. 学生信息管理系统(免费)
  5. layer的使用笔记
  6. 计算机二级报名锁定了,职称计算机考试WindowsXP考点:锁定计算机
  7. 如何让图片流动?手把手教你制作
  8. python scrapy框架爬虫_Python Scrapy爬虫框架学习
  9. java熔断机制 breaker_hystrix熔断机制修改配置
  10. android 模拟apk安装广播,安装APK文件到Android模拟器 及shell