网络安全之一个渗透测试小案例
几天前,收到一个国外目标(公司)的渗透测试任务,时间为两周;
大概看了一下目标是类似于国内阿里云那样提供云服务的平台;
常规信息收集过后,尝试渗透三天无果... 于是下班前只能祭出我的"大杀器"---缝合怪.py。缝合了一些好用的扫描器,一键 XRAY多线程批量扫 + 自动添加任务到AWVS + 自动添加任务到arl + ...加入资产后就下班回家了。
到了第二天一看扫描结果,心里暗道不妙,md坏起来了啊。。。
扫描器里一个洞都没,goby里所有资产显示只开放两个端口80、443。
不慌,问题不大,时间还长,接下来要做的,就是整理思路,重新来过。
在重新整理之前收集到的资产中,发现测试目标的旁站有一个有趣的404页面:
NoSuchBucket + BucketaName
想到了 阿里云 的bucket劫持漏洞,幸福来得太突然了。
使用测试账号登录自己的云平台尝试进行劫持:
1.点击对象存储服务:
2.点击创建桶:
3.桶的名字为BucketName字段:
4.将访问控制权限更改为公共读写:
5.点击对象,创建hack.txt:
6.完成后刷新 为如下 :
发现BucketName字段消失了,原来的NoSuchBucket也变成了NoSuchCustomDomain,说明我们的修改对它造成了影响!
7.NoSuchCustomDomain?那我们就来给他设置一个,点击域名管理尝试绑定域名:
8.访问
9.访问: (hack.txt为我们刚才上传的)
(后期尝试上传图片,html等文件均可)
[图片上传中...(-8136f3-1631536782821-0)]
劫持成功!拿来吧你!
漏洞危害:劫持Bucket,并开放匿名读取功能。可以挂黑页或引用js文件,攻击者可以上传恶意js文件,去盗取用户信息。。。
2021最新整理网络安全\渗透测试/安全学习(全套视频、大厂面经、精品手册、必备工具包)一点我一
如何进行Web渗透测试
什么是渗透测试?
渗透测试,是渗透测试工程师完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标网络、主机、应用的安全作深入的探测,发现系统最脆弱的环节。
如何进行Web渗透测试?
完整web渗透测试框架当需要测试的web应用数以千计,就有必要建立一套完整的安全测试框架,流程的最高目标是要保证交付给客户的安全测试服务质量。
1、立项:项目建立,时间安排,人力分配,目标制定,厂商接口人确定;
系统分析威胁分析:针对具体的web应用,分析系统架构、使用的组件、对外提供的接口等,以STRIDE为威胁模型进行对应的安全威胁分析,输出安全威胁分析表,重点关注top3威胁;
制定测试用例:根据威胁分析的结果制定对应的测试用例,测试用例按照模板输出,具备可执行性;
测试执行漏洞挖掘:测试用例执行发散测试,挖掘对应的安全问题or漏洞;
问题修复回归测试:指导客户应用开发方修复安全问题or漏洞,并进行回归测试,确保安全问题or漏洞得到修复,并且没有引入新的安全问题;
项目总结评审:项目过程总结,输出文档评审,相关文档归档。
2、Web应用的渗透测试流程
主要分为3个阶段,分别是:信息收集→漏洞发现→漏洞利用,下面仔细分析一下各个阶段流程:
一、信息收集
在信息收集阶段,我们需要尽量多的收集关于目标web应用的各种信息,比如:脚本语言的类型、服务器的类型、目录的结构、使用的开源软件、数据库类型、所有链接页面,用到的框架等
脚本语言的类型:常见的脚本语言的类型包括:php、asp、aspx、jsp等
测试方法:
1 爬取网站所有链接,查看后缀
2 直接访问一个不存在页面后面加不同的后缀测试
3 查看robots.txt,查看后缀
服务器的类型:常见的web服务器包括:apache、tomcat、IIS、ngnix等
测试方法:
1 查看header,判断服务器类型
2 根据报错信息判断
3 根据默认页面判断
目录的结构:了解更多的目录,可能发现更多的弱点,如:目录浏览、代码泄漏等。
测试方法
1 使用字典枚举目录
2 使用爬虫爬取整个网站,或者使用google等搜索引擎获取
3 查看robots.txt是否泄漏
使用的开源软件:我们如果知道了目标使用的开源软件,我们可以查找相关的软件的漏洞直接对网站进行测试。
测试方法
指纹识别(网络上有很多开源的指纹识别工具)
数据库类型:对于不同的数据库有不同的测试方法。
测试方法
1 使应用程序报错,查看报错信息
2 扫描服务器的数据库端口(没做NAT且防火墙不过滤时有效)
所有链接页面:这个跟前面的获取目录结构类似,但是这个不只是获取网站的所有功能页面,有时候还可以获取到管理员备份的源码。
测试方法
1 使用字典枚举页面
2 使用爬虫爬取整个网站,或者使用google等搜索引擎获取
3 查看robots.txt是否泄漏
用到的框架:很多网站都利用开源的框架来快速开发网站,所以收集网站的框架信息也是非常关键的。
测试方法
指纹识别(网络上有很多开源的指纹识别工具)
二、漏洞发现
在这个阶段我们在做测试的时候要对症下药,不能盲目的去扫描,首先要确定目标应用是否使用的是公开的开源软件,开源框架等、然后在做深一度的漏洞扫描。
关于开源软件的漏洞发现
开源的软件:常见的开源软件有wordpress、phpbb、dedecms等
开源的框架:常见的开源框架有Struts2、 Spring MVC、ThinkPHP等
中间件服务器:常见的中间件服务器有jboss、tomcat、Weblogic等
数据库服务:常见的数据库服务mssql、mysql、oracle、redis、sybase、MongoDB、DB2等
对于开源软件的测试方法
1 通过指纹识别软件判断开源软件的版本信息,针对不同的版本信息去开放的漏洞数据库查找相应版本的漏洞进行测试
2 对于默认的后台登录页、数据库服务端口认证等入口可以进行简单的暴力破解、默认口令尝试等操作
3 使用开源的漏洞发现工具对其进行漏洞扫描,如:WPScan
关于自主开发的应用
手动测试:这个阶段,我们需要手工测试所有与用户交互的功能,比如:留言、登入、下单、退出、退货、付款等操作
软件扫描:使用免费的软件扫描,如:appscan、wvs、netsparker,burp等
可能存在的漏洞
Owasp关键点
代码安全之上传文件
代码安全之文件包含
代码安全之SSRF
逻辑漏洞之密码重置
逻辑漏洞之支付漏洞
逻辑漏洞之越权访问
平台安全之中间件安全
三、漏洞利用
针对不同的弱点有不同的漏洞利用方式,需要的知识点也比较多。一般这个阶段包括两种方式,一种是手工测试,一种是工具测试
手工测试
手工测试是通过客户端或服务器访问目标服务,手工向目标程序发送特殊的数据,包括有效的和无效的输入,观察目标的状态、对各种输入的反应,根据结果来发现问题的漏洞检测技术。手工测试不需要额外的辅助工具,可由测试者独立完成,实现起来比较简单。但这种方法高度依赖于测试者,需要测试者对目标比较了解。手工测试可用于Web应用程序、浏览器及其他需要用户交互的程序。
这种方式对于有特殊过滤等操作,或者网络上没有成型的利用工具的时候可以使用。
工具测试
网络上有很多好用的免费利用工具,比如针对sql注入的sqlmap、针对软件漏洞的matesploit等。
新手小白想学习渗透和网络安全,从哪里入手?
基础到入门的学习路线
一、网络安全
网络基础
网络概述
(行业背景+就业方向+课程体系结构)
Vmware
IP地址的概述与应用
DOS命令与批处理
Windows服务安全
用户管理
破解系统用户密码
NTFS权限
文件服务器
DNS服务
DHCP服务
IIS服务
活动目录
域控管理
组策略(一)
组策略(二)
安全策略
PKI与证书服务
windows安全基线
Windows server 2003安全配置基线
阶段综合项目一
以太网交换与路由技术
回顾windows服务
OSI协议簇
交换机的基本原理与配置
IP包头分析与静态路由
分析ARP攻击与欺骗
虚拟局域网VLAN
VTP
单臂路由与DHCP
子网划分VLSM
高级网络技术
回顾
三层交换
ACL-1
ACL-2
网络地址转换
动态路由协议RIP
ipsec VPN
VPN远程访问
网络安全基线
Cisco基础网络设备安全配置基线
安全设备防护
防火墙原理及部署方式
防火墙高级配置
IDS
WAF
阶段综合项目二
二、服务安全
Linux安全运维
Linux操作系统介绍与安装与目录结构分析
Linux系统的基本操作与软件安装
Linux系统下用户以及权限管理
网络配置与日志服务器建立应急思路
建立php主页解析以及主页的访问控制
Nginx服务都建立以及tomcat负载均衡
iptables包过滤与网络地址转换
实用型脚本案例
阶段综合项目三
三、代码安全
前端代码安全
HTML语言
CSS盒子模型
JS概述与变量
JS数据类型
JS函数
程序的流程控制
条件判断与等值判断结构
循环结构
JS数组
数据库安全
sqlserver
access
oracle
mysql
后台代码安全
PHP基础
PHP语法
PHP流程控制与数组
PHP代码审计中常用函数
PHP操作mysql数据库
PHP代码审计(一)
PHP代码审计(二)
Python安全应用
初识python上篇
初识python下篇
基础进阶与对象和数字
字符串列表和元祖
字典条件循环和标准输入输出
错误异常函数基础
函数的高级应用和模块
面向对象编程与组合及派生
正则表达式和爬虫
socket套接字
四、渗透测试
渗透测试导论
渗透测试方法论
法律法规与道德
Web 工作机制
HTTP 协议
Cookie 与session
同源策略
情报收集
DNS
DNS 解析
IP 查询
主机测探与端口扫描
网络漏洞扫描
Web 漏洞扫描
其他工具
口令破解
口令安全威胁
破解方式
windows 口令破解
Linux 口令破解
网络服务口令破解
在线密码查询网站
常见的漏洞攻防
SQL 注入基础
四大基本手法
其他注入手法
SQLmap 的使用
XSS 漏洞概述
XSS 的分类
XSS的构造
XSS 的变形
Shellcode 的调用
XSS 通关挑战
实战:Session 劫持
PHP 代码执行
OS 命令执行
文件上传漏洞原理概述
WebShell 概述
文件上传漏洞的危害
常见的漏洞攻防
PUT 方法上传文件
.htaccess 攻击
图片木马的制作
upload-labs 上传挑战
Web容器解析漏洞
开源编辑器上传漏洞
开源CMS 上传漏洞
PHP 中的文件包含语句
文件包含示例
漏洞原理及特点
Null 字符问题
文件包含漏洞的利用
业务安全概述
业务安全测试流程
业务数据安全
密码找回安全
CSRF
SSRF
提权与后渗透
服务器提权技术
隧道技术
缓冲区溢出原理
Metasploit Framework
前言
urllib2
SQL 注入POC 到EXP
定制EXP
案例:Oracle Weblogic CVE2017-10271 RCE
案例:JBoss AS 6.X 反序列化
五、项目实战
漏洞复现
内网靶机实战
内网攻防对抗
安全服务规范
安全众测项目实战
外网渗透测试实战
六、安全素养
网络安全行业导论
网络安全岗位职责分析
网络安全法认知
网络安全认证
职业人素质
一个完整挖洞/src漏洞实战流程【渗透测试】
只要搞渗透,不就会听到很多行业内人前辈一直在重复:“信息搜集” 信息搜集有多重要,你搜集的到的多少资产信息,决定了你后续进行的一系列实战到什么程度!
要说SQL注入的漏洞咋找,逻辑漏洞咋找,支付漏洞咋找,越权漏洞咋找,等等
实这都一个道理,用谷歌语法,找通杀用fofa,这里演示几个类型的漏洞,其它的也是一个道理。
第一个: SQL注入漏洞
AS:首先是SQL注入的,这个漏洞说实话,基本就是谷歌语法找的快,
语法: inurl:asp?id=23公司,这时候你会问:不是inurl:asp?id= 就行了吗,当然!
这可以!如果你想找到一些奇奇怪怪的站可以用这个,比如:
这时候明白接公司的重要性了吧,这里找的是asp的站,为啥找asp的站?
其中一一个最重要的原因就是因为他,好挖!
当然这里只是找了一小部分站点的, 如果突然发现重复了咋办?
这个简单,换个id就行了同学!
inurl:asp?id-34公司,这里的id 值不断的变变变就行了,你们也可以对比一下
这是不是就不一样了,当然如果有兴趣的话,也可以搜搜inurl :php?id=12公司
这也是可以找到很多站的,不过加WAF的几率很大
我找了10个9个都加过,所以说要想上分上的快,asp 的站绝对不能落下!
这里我就不多叙述,因为这站好找,真的特别好找,但是要想能弱密码进去的却很少
直接上镜像站一放inurl:什么牛鬼蛇神都出来了,这后台管理的站可以说是非常多了
当然如果不想找到国外其它奇奇怪怪的站点的话,建议加个关键词公司
可以看到这里一堆后台,当然要渗透这些后台弱密码很少能进去了
你看到我打inur1: 它自动给我补齐关键词了吗,说明这玩意很多人挖
一般搞后台,先信息收集,这个等会说,反正我是没搞到过几个
这种漏洞咋找?商城,积分商城。
试试谷歌语法: info:商城AND积分商城
这不全是商城吗,当然对于一些大厂, 建议不要去搞
因为防护也会比一般的站点比较严格,况且现在做在线网上商城的站点也很少了
其实可以在漏洞挖掘的时候注意一下站点是否有paypal这个功能,有的话,可以搞一搞的,这还是有搞头的
再来就是逻辑漏洞,比如说平行,垂直越权,任意密码重置啊什么的。这类漏洞还是很多的,大家也可以去慢慢测的!
最后一个,通杀的漏洞咋找?
这时候就是要靠我们万能的fofaQ了,首先我们要知道有哪些cms有漏洞
这里大家可以去找网上的漏洞库,里面- -般都会有漏洞合集和这里我稍后会给大家推荐一两个
看到没有,就是这么多cms,杀一个准,上分必备漏洞
不过有些重复提交了,可以给你们看看学员们的战果!
当然,重复了几个,但还是相当不错了。
看完开头,相信你已经知道怎么找漏洞了,那我们就说说漏洞如何挖掘,这里分事件型和通用型漏洞
首先来的,肯定是我们的sq1注入了,首先使用我们的通用语法inurl:asp?id=xx 公司
直接点进去,不要害怕,只要不违法,咱不干坏事就行
看到报错了,说明啥,说明可能存在注入啊朋友,直接and 1=1 |and 1=2插进去
经过一番寻找,我们来到了这个网站:
看到网站直接插单引号,看他报不报错
看到效果十分明显,这种情况直接丢sqlmap9 ,反正我是丢的sqlmap , 大家如果时间充足的话可以上手
下一个站,这个站存在的漏洞是任意密码重置和CSRF漏洞
首先是CSRF漏洞,相信不用我说你们也应该会了,这里就是这点出现漏洞
你们可以自己去测测,这里说我主要说的是任意密码重置漏洞
(这个漏洞现在也已经被修复了)
在这一步的时候, 抓个包
这里再改成自己的邮箱,这样自己的邮箱就能接收到验证链接,直接点击就好
看到这里,支付漏洞 和验证码绕过之类的逻辑漏洞是不是感觉+分的好挖,有没有这种感觉!
这里类型比较多,篇幅太长不好阅读。举例这两种做参考~
三、提交报告
例如baidu.com发现了SQL注入
第一步:“标题”和“厂商信息”和“所属域名”
站长工具icp.chinaz.com/baidu.co...
查询域名备案信息,看到这个公司名了吗
这样写
漏洞类别啥的,如果不是0day的话,像图中一样就行了
所属域名要写该公司的“网站首页”或者“官网”
看到这个了吗
漏洞类型: -般都是Web漏洞,然后漏洞是什么写什么,这里是一个SQL注入。
漏洞等级: SQL注入-般都是高危,但如果厂商比较小的话,会降级,降成中危。
漏洞简述:描述一下SQL注入是什么、 有什么危害之类的。
漏洞url:出现漏洞的URL。
影响参数:哪个参数可以注入就写哪个
漏洞POC请求包: Burp抓个包复制粘贴。
如果你嫌每次打字麻烦,可以新建一个记事本, 把框架写好,提交的时候替换一些内容就可以了。
把标题、漏洞简述、复现步骤、修复方案,把标题、漏洞简述、复现步骤、修复方案,可以省不少时间!
今天的内容虽然偏长,但是都是干货呀!从找漏洞到提交直接一步到位! 安排的明明白白!
注:任何未经授权的渗透都是违法行为,咱们挖SRC,担心会违法,记住一点, 点到为止,不要动里面的数据,发现漏洞之后,尽快提交漏洞,联系厂商进行修复。
渗透测试学习些啥呀?
渗透测试需要的基础技能必须有网络基础、编程基础、数据库基础、操作系统等基本技能。学习的话可以从html、css、js、编程语言、协议包分析、网络互联原理、数据库语法等进入,学习了这些基础技能之后,就可以进行渗透测试的深入学习了,如web方面的学习OWASP TOP 10漏洞挖掘、主机系统服务漏洞检测、App漏洞检测、内网渗透等方面,最后当然是能够编写渗透测试报告啦。
渗透测试是做什么的
渗透测试并没有一个标准的定义,国外一些安全组织达成共识的通用说法是:渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析,这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞。
换句话来说,渗透测试是指渗透人员在不同的位置(比如从内网、从外网等位置)利用各种手段对某个特定网络进行测试,以期发现和挖掘系统中存在的漏洞,然后输出渗透测试报告,并提交给网络所有者。网络所有者根据渗透人员提供的渗透测试报告,可以清晰知晓系统中存在的安全隐患和问题。
渗透测试培训班如何选择?
1、课程讲师:教学好坏对于一个培训机构来说是最重要的核心,同时也是决定教学的成果关键,只有好的老师才有好徒弟。找渗透测试培训机构一定要挑选老师具有多年从业项目经验或者是具有多年教学经验的。讲师能力足够,自然学习成果会更好的。推荐大家选择老男孩教育,老男孩教育网络安全授课讲师不仅具备真实项目从业经验,且具有多年授课经验。
2、学习课程:从学员角度来说,课程体系的安排是决定机构好坏的关键,关乎到以后的发展,一定要找贴合企业用人需求的渗透测试培训机构进行学习。
3、培训实战:真金不怕火炼,最好的学习方法就是基础搭配实战进行教学,合二为一的效果更好,学习起来更有用,还要小心项目实战是否会进行定期更新,这样才可以跟得上社会的发展和潮流。
4、就业方面:无论出于什么目的,学习渗透测试大家都为了能够找到一个高薪工作,所以就业方面也是需要考虑的问题。需要关注企业的就业率,同时还需要关注企业是否有指导服务,看看是否存在合作的大公司,是否可以给学员搭建好的学习平台。
0条大神的评论