靶机介绍
下载地址:http://www.vulnhub.com/entry/doubletrouble-1,743/
难度:简单
描述:get flags
渗透过程
获取ip
靶机IP为192.168.1.113。
arp-scan -l
端口扫描
nmap -A -T4 -p 1-65535 192.168.1.113
靶机开放了22和80端口。
网站目录扫描
首先对网站的特殊文件进行扫描。
dirb http://192.168.1.113 -X .txt,.jpg,.html,.php,.bak,.php.bak,.bac
然后对网站目录进行扫描。
dirb http://192.168.1.113 -r
图片隐写数据提取
依次点击扫描出来的文件,这个网站的主页是一个登录界面,但是我们没有用户名和密码的信息。翻了所有的网站,只在这个网站http://192.168.1.113/secret/找到了一张奇怪的图片。
尝试了exiftool没有信息,那就可能是隐写。使用stegseek来破解图片。stegseek的github网址:https://github.com/RickdeJager/stegseek。然后kali自带了rockyou.txt,不过可能是rockyou.txt.gz形式,需要解压一下。
stegseek ./doubletrouble.jpg /usr/share/wordlists/rockyou.txt
登录网站
输入我们从图片中破解出来的账号和密码,登录主页。
qdPM漏洞利用
搜索qdPM 9.1的漏洞,我们找到一个远程代码执行漏洞。https://www.exploit-db.com/exploits/50175, 把脚本下载下来。这个脚本的回车有点问题,需要自己调一下。不过,这个漏洞也挺简单的,其实就是用户的myAccount界面的图片那一栏是可以上传文件的,那我们就可以上传一个php反弹shell的脚本。
这里比较搞笑的是,无论是跑脚本还是自己手动上传,网页和代码的反馈都会让你觉得自己是不是没有上传成功。
但其实都上传成功了,我以为没上传成功,尝试了好几遍,以至于我一打开http://192.168.1.113/uploads/users/,看到一堆自己上传的文件…
监听端口1234(你脚本中写的端口),然后点击上传的脚本,获得了shell。
nc -lnvp 1234
提权
我们看一下当前用户能够使用的sudo权限,这里显示当前用户可以免密执行awk命令。
搜索一下awk提权,我们可以这样:
em,没找到flags,未解之谜。
感谢评论区大佬给的提示,这里root目录下有一个同名靶机(上次被我直接忽略了),不愧是doubletrouble。
靶机2渗透过程
把这个靶机下载下来,并且在自己的环境中打开。
python3 -m http.server 9000
wget http://靶机ip:9000/doubletrouble.ova
ip地址获取
靶机IP为192.168.1.103
端口扫描
信息收集
打开靶机的http,这里让我们填账户名和密码。
然而我们并不知道账户名也不知道密码。尝试扫描网站目录发现没有额外的信息,就只有这么一个网站。
sqlmap获取账号密码
一筹莫展,我们现在的情况是连账号都没有。搜索网站后台账号密码获取,可以看到一个很棒的工具sqlmap。sqlmap使用教程
- 首先可以获取当前数据库的名称:
sqlmap -u http://192.168.1.103/index.php?id=1 --forms --current-db
一路选择y即可,可以看到当前数据库的名称是doubletrouble。
2. 获取当前数据库下表的名称:
sqlmap -u http://192.168.1.103/index.php?id=1 --forms -D doubletrouble --tables
可以看到doubletrouble数据库中有一个表users。
3. 获取表中的列信息。
sqlmap -u http://192.168.1.103/index.php?id=1 --forms -D doubletrouble -T users --columns
可以看到表中有两项司昂:密码,账号。
4. 获取表的内容。
sqlmap -u http://192.168.1.103/index.php?id=1 --form -D doubletrouble -T users --dump
然后账号和密码我们就获得了。
登录ssh,提权
用这两个账号密码登录网站发现没有什么反映,我们直接登录一下ssh好了。这两个账号中只有clapton这个能成功登录。
我们看一下系统版本:
这里有个脏牛漏洞,漏洞编号CVE-2016-5195漏洞类型内核竞态条件漏洞漏洞危害本地提权影响范围Linux kernel>2.6.22。该漏洞是Linux内核的内存子系统在处理写时拷贝(Copy-on-Write)时存在条件竞争漏洞,导致可以破坏私有只读内存映射。黑客可以获取低权限的本地用户后,利用此漏洞获取其他只读内存映射的写权限,进一步获取root权限。
他有很多个poc,其中这个poc可以生成一个账号名为firefart的root用户,https://github.com/FireFart/dirtycow
我们把poc下载到靶机的/tmp目录下,然后编译,执行。
然后,根据提示,我们用firefart登录ssh,密码是root。
这下结束了。