1.渗透测试流程和工具?
渗透测试流程概述 前期交互阶段、情报搜集阶段、威胁建模阶段、漏洞分析阶段、 渗透攻击阶段(Exploitation)、后渗透攻击阶段(怎么一直控制,维持访问)、报告阶段。 攻击前:网络踩点、网络扫描、网络查点 攻击中:利用漏洞信息进行渗透攻击、获取权限 攻击后:后渗透维持攻击、文件拷贝、木马植入、痕迹擦除
第一阶段:明确渗透目标 和风险分析获得授权
(1)确定范围
如:IP、域名、内外网、整站、部分模块等
(2)确定规则
能渗透到什么程度,是发现漏洞即可还是需要利用该漏洞、时间限制、能否修改上传、能否提权等
目标系统介绍、重点保护对象及特性。
是否允许破坏数据?
是否允许阻断业务正常运行?
测试之前是否应当知会甲方安全部门,IP是否需要加白接入方式?外网和内网?
测试是发现问题即可,还是尽可能发现更多问题。
测试过程是否需要考虑社会工程手段。
测试过程中要求完全仿真,除破坏操作需要报备,其余手段不受限制还是如何。
(3)确定需求
上线前的web应用测试、业务逻辑漏洞测试、人员权限管理漏洞测试。
需分析渗透过程可能产生的风险:测试是否对系统产生影响、带宽占用、系统资源消耗、爆测试行为或其他可能触发动态感知系统或其他告警机制、影响正常业务开展、服务器发生异常应急、数据备份和恢复、测试人力物力成本等。
由乙方书写实施方案初稿提交给甲方或公司内部审核,审核通过后,测试人必须拿到正规的乙方书面委托授权书才能开工,代理商第三方授权不具备法律效力,若是第三方授权,必须拿到甲方给中间商的授权,且注明中间商有转让授权的权限,这样中间商下发的授权测试才是合法的。需要提前跟甲方确认是否能提供测试账号,测试账号最好覆盖各个权限级别,金融行业或者交易类的测试账号需要账户中有一定的余额。
第二阶段:信息搜集 【maltego、nmap、reco-ng、waf00f 】
信息搜集的方法很多,不详细阐述,大概列举如下:
方 式: 主动扫描+被动收集
基础信息:IP、网段、域名、端口、DNS……
系统信息:操作系统版本[nmap 、ttl、]……
应用信息:各端口应用、例如web应用、邮件应用、脚本语言类型、目录结构、数据库类型、web框架……
版本信息:所有探测到的版本
服务信息: 服务器类型、版本
人员信息: 域名注册人信息,web应用中网站发帖人的id,管理员姓名等
防护信息:尝试探测防护设备
被动:【maltego、reco-ng】DNS【nslookup 、dig 】
主动: 二层发现【nmap arping 、netdiscover、scapy】
三层发现ip、icmp【ping 、fping、nmap、hping】可路由容易被发现
四层发现 tcp、udp [nmap 、hping]
端口扫描[nmap 、scapy]
服务扫描[amap、 ]
防火墙识别[查看回包] waf识别【wafw00f】
第三阶段:漏洞探测和验证
汇总信息搜集到的信息,使用与之匹配的漏洞检测策略
方法:
漏扫:【AWVS、AppScan、Nessus、……】
漏扫结果去exploit-db等位置找利用
在网上寻找验证POC
内容:
系统漏洞:系统没能及时更新补丁
Webserver漏洞: webserver配置问题……
Web应用漏洞: Web应用开发问题、错误页面未定义、后台暴露……
其他端口服务器漏洞: 诸如21/8080(st2)/7001/22/3389……
通信安全: 明文传输、token在cookie中传送……
web漏扫描【burpsuite 、skipfish[速度快]、w3af、owasp_zap】
将四阶段发现的洞,通过自己经验分析可能成功利用的全部漏洞都验证一遍,结合实施环境,搭建模拟环境进行试验,利用成功后再实施在目标系统中 :
自动化验证: 结合自动化扫描工具发现的结果
手工验证: 利用公开资源进行验证
试验验证: 自己搭建模拟环境进行验证
登录猜测: 尝试猜测登录、万能密码、注入
业务漏洞验证: 发现后该漏洞,进行验证
公开资源利用: exploit-db/wooyun/、渗透代码网站、通用、缺省口令、厂商的漏洞告警……
第五阶段:渗透准备和实施攻击
实施渗透的准备环节 :
精准攻击: 利用4>探测到的EXP,进行精准攻击
绕过防御机制: 检测是否有WAF等,绕过策略筹划
定制攻击路径: 最佳攻击路径、主要根据薄弱入口,高内网权限位置,最终目标等
绕过检测机制: 是否有检测机制,流量监控,杀毒软件,恶意代码(免杀)检测
攻击代码: 试验得来的代码,包括不限于xss代码,sql注入语句……
实施攻击:根据前几步的结果,实施精准攻击 :
获取内部信息: 基础设施(网络连接、vpn、路由、网络拓扑、内网IT资产……)
横向渗透: 内网入侵、敏感信息
持续性存在: 一般情况,甲方不需要,rookit、后门、添加管理员账号、驻扎手法等
清除痕迹: 清理渗透相关日志(访问、操作),漏扫,上传文件等
第六阶段:形成报告
整理渗透工具:整理渗透中使用的代码、POC、EXP等。
整理收集信息:整个渗透过程中收集的一切信息。
整理漏洞信息:整个渗透过程中利用成功的所有漏洞,各种脆弱位置信息,为书写渗透报告做准备
按需整理:按照之前第一步跟甲方确认的范围、需求来整理资料,技术细节尽可能的详细,形成报告进行交付。
补充介绍:需对漏洞成因,验证过程中带来的危害进行分析。
修补建议:给开发或运维人员提出合理高效安全的解决方案。
msf模块:
Exploits:利用系统漏洞进行攻击的动作,此模块对应每一个具体漏洞的攻击方法(主动、被动)
Payload:成功 exploit 之后,真正在目标系统执行的代码或指令,/usr/share/metasploit-framework/modules/payloads/
shellcode 或系统命令
Single:all-in-one
Stager:目标计算机内存有限时,先传输一个较小的 payload 用于建立连接
stages:利用 stager 建立的连接下载的后续payload
stager、stages 都有多种类型,适用于不同场景
shellcode 是 payload 的一种,由于期建立正向/反向 shell 而得名
Auxiliary:执行信息收集、枚举、指纹探测、扫描等功能的辅助模块(没有 payload 的 exploit 模块)
Encoders:对 payload 进行加密,躲避 AV 检查的模块
Nops:提高 paylaod 稳定性及维持大小
计算机取证工具:
procdump 、dumpit [内存镜像]、volatility[内存分析]
DNS查询方式?
社工库?
社工库就是一个黑客们将泄漏的用户数据整合分析,然后集中归档的一个地方。这些用户数据大部分来自以前黑客们拖库撞库获得的数据包,包含的数据类型除了账号密码外,还包含被攻击网站所属不同行业所带来的附加数据。社会工程学,可能是因为,操作起来需要超高的情商,洞察人与人之间层级差别,利害关系,以及潜伏者一样胆大心细的伪装能力吧?
拖库和撞库的区别
为何一个MYSQL数据库的站,只有一个80端口开放?
一个成熟并且相对安全的CMS,渗透时扫目录的意义?
在某后台新闻编辑界面看到编辑器,应该先做什么?
审查上传点的元素有什么意义?
CSRF、XSS及XXE有什么区别,以及修复方式?
3389无法连接的几种情况
列举出owasp top10 2017
说出至少三种业务逻辑漏洞,以及修复方式?
目标站无防护,上传图片可以正常访问,上传脚本格式访问则403,什么原因?
目标站禁止注册用户,找回密码处随便输入用户名提示:“此用户不存在”,你觉得这里怎样利用?
参考答案
1
更改了端口,没有扫描出来;
站库分离;
3306端口不对外开放。
2
敏感文件、二级目录扫描;
站长的误操作比如:网站备份的压缩文件、说明.txt、二级目录可能存放着其他站点。
3
查看编辑器的名称版本,然后搜索公开的漏洞。
4
有些站点的上传文件类型限制是在前端实现的,这时只要增加上传类型就能突破限制了。
5
XSS是跨站脚本攻击,用户提交的数据中可以构造代码来执行,从而实现窃取用户信息等攻击。修复方式:对字符实体进行转义、使用HTTP Only来禁止JavaScript读取Cookie值、输入时校验、浏览器与Web应用端采用相同的字符编码。
CSRF是跨站请求伪造攻击,XSS是实现CSRF的诸多手段中的一种,是由于没有在关键操作执行时进行是否由用户自愿发起的确认。修复方式:筛选出需要防范CSRF的页面然后嵌入Token、再次输入密码、检验Referer。
XXE是XML外部实体注入攻击,XML中可以通过调用实体来请求本地或者远程内容,和远程文件保护类似,会引发相关安全问题,例如敏感文件读取。修复方式:XML解析库在调用时严格禁止对外部实体的解析。
6
没开放3389 端口
端口被修改
防护拦截
处于内网(需进行端口转发)
7
1)注入;
2)失效的身份认证;
3)敏感信息泄露;
4)XML外部实体(XXE);
5)失效的访问控制;
6)安全配置错误;
7)跨站脚本(XSS);
8)不安全的反序列化;
9)使用含有已知漏洞的组件;
10)不足的日志记录和监控。
8
密码找回漏洞中存在密码允许暴力破解、存在通用型找回凭证、可以跳过验证步骤、找回凭证可以拦包获取等方式来通过厂商提供的密码找回功能来得到密码;
身份认证漏洞中最常见的是会话固定攻击和Cookie仿冒,只要得到Session或Cookie即可伪造用户身份;
验证码漏洞中存在验证码允许暴力破解、验证码可以通过Javascript或者改包的方法来进行绕过。
9
原因很多,有可能Web服务器配置把上传目录写死了不执行相应脚本,尝试改后缀名绕过。
10
先爆破用户名,再利用被爆破出来的用户名爆破密码;
其实有些站点,在登陆处也会这样提示;
所有和数据库有交互的地方都有可能有注入
11.SQL注入waf 绕过方式
12.文件上传漏洞绕过方式和防御方法?
绕过方法?
1.修改文件后缀
2.修改content-type 类型
3.%00截断 链接后面加入%00字段伪造合法的文件头
4.加入某种文件格式的前10个字节的幻数头绕过检查,通常判断文件格式只是判断文件前10个字节的二进制代码,绕过检查
防护方法?
1.前端js代码过滤
2.后端对上传文件的后缀做严格的检查
3.限制上传文件大小
4.采用随机数修改文件名【让攻击者无法获取上传脚本的文件名,无法访问上传的恶意代码】
5.将文件上传目录设置为不可执行,让web容器无法解析目录下的文件
13.什么是XSS,原理是什么?
跨站脚本攻击原理:
存储型:攻击者在存在xss漏洞的web页面存放一段有恶意攻击的代码【存储型】,普通用户访问到web页面时,就会自动执行攻击者留下的这串攻击代码。可能在用户不知情的情况下将用户的cookie 信息发送给攻击者。
反射型xss漏洞,用户访问这个页面有弹窗警告。
XSS存在的原因和防御方法:
根本原因url参数和用户输入提交给web server的内容没有做充分的过滤,但是完全的过滤是不太好实现的,攻击者有各种脑洞很大的方法来绕过服务器检查,最典型的就是编码 16进制 来绕过xss过滤。
防御:
1.在不需要html输入的地方,对html标签和特殊字符 <> & 过滤,将它转换为不能被浏览器执行的字符,对用户输入的html标签及标签属性做白名单过滤。
2.设置白名单 规定客户端哪些可以加载和执行的 CSP策略
14.SQL注入
什么是SQL注入?
在参数中或者是页面请求链接中,构造恶意的sql查询代码,能提交到服务器进行解析和查询得到数据库的其他信息。【总结不好】
SQL注入方式:
1.盲注:时间盲注 布尔盲注 DNSlog盲注
2.报错注入
3.宽字节
4.二次注入
5.布尔注入
SQL语句单引号被过滤了怎么办?
1.进行编码 16进制数 或者其他编码方式绕过
SQL注入waf 绕过方法?
白盒:代码审计的方式找到绕过方法
黑盒:1.架构层绕过 寻找源站点地址适用适用了云waf 场景
2.利用同网段主机内网注入绕过waf
3.资源限制角度 post 一个大的body,在线waf 考虑运行速度,一般不会对大的文件过率、
4.协议层面 协议未覆盖绕过 比如页面只对get 方式过滤没对post过滤或者对某一种格式的文件类型过滤 ;参数污染携带 多个参数
5.规则层面:注释符 空白符 函数分割符 浮点数 染过 利用error-base sql 注入 mysql特殊语法绕过
SQL注入防御方式?
1.参数化查询接口
2.特殊字符转义、过滤
3. 避免打印sql错误消息
4. 正则表达式匹配
5. 尽量不要用拼装的sql语句进行查询数据库内容 大概我了解到的这些
SQL注入的写入webshell的方式?
通过 select into outfile 的一种方式写入webshell
sqlmap --os-cmd 来写入 --os-shell
SQL注入工具?
为什么参数化查询能够防止SQL 注入
参数化方式原理:因为参数化的一个查询接口,可以参数 的过滤和执行重用保证sql语句的语义不变,保持一个原始的查询意思。原理是数据库服务器不会将参数的一些内容作为sql的指令的一部分来进行处理,是在数据库完成编译以后才套用这个参数,就算参数中写入=了恶意的指定,sql服务器也不会执行。所以就是能防止sql注入的
5.0以上和5.0一下的区别:
5.0以下没有 information_schema 这个表,数据库表列信息只能通过暴力的方式来区猜测的。5.0以下是多用户单操作
15.给一个测试站点要做什么事?
1.首先要得到站点ip地址、物理信息、位置
2.ip地址得到后,扫描服务器什么系统、版本号,服务器开了什么服务 、端口号 、版本 。在线工具去探测,然后猜测是用的什么中间件 apache ,nginx?
3.得到这个基础信息之后去看目标站点一个web 相关问题 有没有 csrf 、xss 或者sql 注入漏洞 工具 扫描awvs、brupsuite
4. 扫描问题后、探测漏洞利用价值和方式:sql注入注入点 如果没有得到就看它有没有一些防御的东西,防火墙 waf。这时候就需要绕过waf 或防火墙的检测
5. 主战渗透不了看有没有二级域名 工具[???]
16。判断站点的cms 有啥作用?
主要看已经曝光的程序漏洞,开源就审计
17 ECB 和 CBC 的分组模式区别?
18 https建立过程:
客户端如何验证证书
作者:Bulldozer Coder
原文链接:https://blog.csdn.net/Bulldozer_GD/article/details/108515961#comments_14604370