前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GlasgowSmile-v2通关笔记

GlasgowSmile-v2通关笔记

作者头像
刘銮奕
发布2020-08-25 11:41:37
9370
发布2020-08-25 11:41:37
举报
文章被收录于专栏:奕知伴解

GlasgowSmile-v2描述:

获取主机DHCP地址

使用到工具

  • nmap
  • disearch
  • wfuzz
  • wireshark
  • BurpsSuit
  • Python

扫描主机开放服务

从上图可知:80,22端口对外开放,8080端口含有过滤规则。

浏览器访问80端口

http://192.168.33.136

很无奈打开发现只有一张图片,并没有多余的东西。到这里只能Fuzzing目录文件。

首先使用Kali自带的dirb进行目录扫描:

正如上图看到的扫描结果并没有得到有用的东西,这个工具不行,显然要更换工具继续干。常用的WEB目录扫描工具有:Dirsearch、DirBuster 、御剑等。

这里我使用dirsearch工具,具体用法请自行百度。

代码语言:javascript
复制
root@kali:~/dirsearch# python3 dirsearch.py-e php,txt,zip -u http://192.168.33.136

很幸运,扫描得到了一些文件。浏览器访问http://192.168.33.136/todo.txt

根据提示,该站点可能存在自动化脚本,继续爆破扫描。工具我使用wfuzz,字典使用kali自带目录/usr/share/wordlists/下的rockyou.txt.gz,并解压出来。

代码语言:javascript
复制
root@kali:~/dirsearch# ls/usr/share/wordlists/
代码语言:javascript
复制
root@kali:~# wfuzz -w rockyou.txthttp://192.168.33.136/FUZZ.sh

经过一段时间的等待,得到一个joke.sh的自动化脚本文件。

浏览器访问

http://192.168.33.136/joke.sh

下载后打开后得到内容如下图:

浏览器访问如上地址:

http://192.168.33.136/Glasgow---Smile2/

从访问后可以获取该站点CMS系统是 Drupal8,含有登录和注册页面。

尝试了一番并没有成功登陆进入,只好返回看看已有的信息。

把自动化脚本仔细阅读,猜测该站点可能存在pcap数据包文件,进一步扫描。

代码语言:javascript
复制
root@kali:~# wfuzz -w rockyou.txt --hc404,400 http://192.168.33.136/FUZZ.pcap

很快得到一个smileyface.pcap文件。

浏览器访问

http://192.168.33.136/smileyface.pcap

下载后得到如下文件

跟踪数据流

看到包含Authorization: Basic内容,很明显需要进行base64解密。

尝试登陆网站

值得庆祝的是成功登陆进入后台。既然到了这里,我们肯定想进一步拿到shell权限。

仔细想想我们还有一个CMS的指纹信息没有利用。先搜索查看Drupal 8有没有已知漏洞利用。最终检索到一个集成好的RCE。

把该project克隆到本地并利用

代码语言:javascript
复制
root@kali:~/Drupalgeddon2#./drupalgeddon2.rbhttp://192.168.33.136/Glasgow---Smile2/

当然也可以POST含有漏洞的URI并自己构造pyload,并使用nc反弹

如果做过靶场环境的小伙伴们,应该都比较清楚所谓的flag都在相应的家目录下。因此进一步进入/home目录。

从上图可知,获取信息的顺序是riddler -> bane ->carnage -> venom -> root

为了搞明白nmap扫描出的结果8080为什么被过滤,查看运行的端口服务:

使用常用的socat工具实现tcp端口转发,进一步在外部机器可以访问,方便寻找信息。

代码语言:javascript
复制
socat -d TCP4-LISTEN:12345,reuseaddr,fork TCP4:127.0.0.1:8080

确认12345端口已被打开:

浏览器访问:

http://192.168.33.136:12345/

查看网页源代码:

分析可能存在文件包含(LFI)漏洞,从而查看nginx相关配置文件。

根据上图路径推测,可能需要至少向上4层:

浏览器访问如下链接:

代码语言:javascript
复制
http://192.168.33.136:12345/?page=../../../../../../etc/passwd

从passwd文件得到的用户都是不可以进行远程登陆,从而进一步查看nginx的配置文件,获取可能用价值的信息。

浏览器访问如下链接:

代码语言:javascript
复制
http://192.168.33.136:12345/?page=../../../../../../etc/nginx/nginx.conf

从上图得知nginx站点配置目录在/etc/nginx/sites-enabled/下。进一步去查看站点配置文件:

浏览器访问如下链接:

代码语言:javascript
复制
http://192.168.33.136:12345/?page=../../../../../../etc/nginx/sites-enabled/default.conf

从上图得知站点默认首页index.php文件访问路径

得到一个谜语,填写正确的谜底将会得到riddler用户密码。(通过搜索可知谜底)

使用 su riddler用户切换

文件查看得到theworldmustbeburned的提示,数据被处理过。

把burn文件内容重新代码格式化,以便阅读。

代码语言:javascript
复制
<? php
function grdl($q0) {
    $b1 = fopen($q0, 'r') or die();
    $a2 = 0;
    while (!feof($b1)) {
        $t3 = fgets($b1);
        $a2++;
    }
    rewind($b1);
    $s4 = 0;
    $n5 = rand(0, $a2);
    while ((!feof($b1)) && ($s4 <= $n5)) {
        if ($x6 = fgets($b1, 1048576)) {
            $s4++;
        }
    }
    fclose($b1) or die();
    return $x6;
}

function gws($n7) {
    $j8 = str_split($n7);
    $a9 = 0;
    foreach($j8 as $m10) {
        $a9 += ord($m10);
    }
    return $a9;
}

function encrypt($c11, $j12, $e13) {
    $f14 = true;
    $l15 = gws($c11);
    $q16 = gws($j12);
    $f17 = str_split($e13);
    $a18 = "";
    foreach($f17 as $m10) {
        $f14 = !$f14;
        $p19 = $l15;
        if ($f14) {
            $p19 = $q16;
        }
        $a18. = ord($m10) + $p19;
        if ($f14) {
            $a18. = "A";
        } else {
            $a18. = "F";
        }
    }
    return $a18;
}
$q0 = "jokerinthepack";
$e13 = readline("Enter the string to encrypt: ");
$c11 = trim(grdl($q0));
$j12 = trim(grdl($q0));
print "\n";
print "Your keys:";
print "\n";
print "Key 1: ".$c11;
print "\n";
print "Key 2: ".$j12;
print "\n";
$a18 = trim(encrypt($c11, $j12, $e13));
print "Encrypted string:".$a18.
"\n\n\n"; ? >

代码解读:

PHP代码转化为Python代码

代码审计逆向解密脚本:

运行Python脚本,输入message.txt文件中的Encrypted string进行解密。

解密得到后bane的密码,从而使用bane进行登录。使用sudo -l 查看当前用户权限。

得知有一个make可以提权到carnage用户。使用GTFOBins搜索提权方法。

不断搜寻可以查看的文件

没有看出什么头绪,想使用sudo -l但是不知道用户密码。从而想到使用pspy查看运行的进程。使用bane用户进行sftp登陆,上传pspy文件查看进程。

转到/opt/get_out/相应目录,查询到一个help.txt文件。其文大概意思是:zip文件被删除后会被恢复。

删除devil.zip文件,发现devil.zip真的被恢复了。然而我删除我自己建立的压缩文件却没有被恢复。思考了一段时间进行解压查看,提示告警:没有zipfile文件。

进行了一段时间的搜索得知可能是Python调用zip库实现此压缩包恢复功能。

因为这是会自动调用的python脚本,从而嵌入反弹程序。

此时再次删除devil.zip文件,成功实现反弹效果。并使用python 一句话获取标准shell

搜索查看可以阅读的文件。

搜索查看有没有suid权限

使用cat去逐个查看文件,打开发现有乱码。是二进制文件,使用strings进行打开。

发现gothamwillburn4中有使用cat命令查看batman。因此使用bash进行提权。

再次执行./ gothamwillburn4文件,发现权限更改成root。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 奕知伴解 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
代码审计
代码审计(Code Audit,CA)提供通过自动化分析工具和人工审查的组合审计方式,对程序源代码逐条进行检查、分析,发现其中的错误信息、安全隐患和规范性缺陷问题,以及由这些问题引发的安全漏洞,提供代码修订措施和建议。支持脚本类语言源码以及有内存控制类源码。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档