玩转靶机:symfonos1 + symfonos2 + matrix_v3

 

0x00 前言

对几个靶机的渗透过程全纪录,分享出来,共同学习,不足之处敬请指正。

 

0x01 symfonos1

探测靶机IP地址:

netdiscover.png

192.168.88.148

nmap扫描靶机端口信息:

nmap.png

发现开放了139和445端口的smb,因此尝试枚举smb相关信息:

enum4linux.png

发现了user:helios和部分共享目录信息,尝试访问:

smb_connect.png

其中,在anonymous目录下发现了attention.txt文件:

attention_txt.png

根据提示,猜测helios的口令为三者之一,经过尝试,确定口令为qwerty

helios.png

利用上述口令信息,访问helios目录,发现两个txt文件,内容分别为:

research.txt:
Helios (also Helius) was the god of the Sun in Greek mythology. He was thought to ride a golden chariot which brought the Sun across the skies each day from the east (Ethiopia) to the west (Hesperides) while at night he did the return journey in leisurely fashion lounging in a golden cup. The god was famously the subject of the Colossus of Rhodes, the giant bronze statue considered one of the Seven Wonders of the Ancient World.

todo.txt:
1. Binge watch Dexter
2. Dance
3. Work on /h3l105

简单分析,猜测有价值的信息可能与todo.txt的最后一句话有关:3. Work on /h3l105,猜测/h3l105可能为目录名称,但当前smb共享目录下并未发现相关信息。

回看端口扫描的信息 ,还开放了80web端口,猜测可能在此处进行利用,首先访问80端口web页面:

default_page.png

恩,一幅还蛮好看的画。。。。

根据猜测,尝试访问/h3l105子目录看是否成功:

h3l105.png

果然有东西~

页面上存在这样一句提示语句:just another wordpress site,暗示该站点为wordpress架构。

显然,我们可以利用工具对wordpress进行脆弱点扫描,包括其相关插件的漏洞

首先修改本地Hosts文件:

hsots.png

wpscan扫描结果如下:

wpscanpng.png

结果显示,相关插件的漏洞包括:本地文件包含、SQL注入。

尝试分析Mail Masta 1.0的本地文件包含漏洞:

LFI.png

漏洞说明提示,典型的poc可以泄露passwd文件,尝试利用:

poc.png

如图所示,我们通过访问http://192.168.88.148/h3l105/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=/etc/passwd,成功泄露passwd文件。

这也证明了LFI漏洞的可用性

下一步,如何实现由LFI到RCE?网上的参考资料也很多,例如From Local File Inclusion to Code Execution

结合本靶机的具体情况,由于靶机开启了25端口SMTP服务,因此这里通过发送恶意邮件的途径,实现RCE,具体步骤如下:

首先参考协议格式利用telnet发送邮件:

EHLO test.example.com
MAIL FROM:<SENDERADDRESS>
RCPT TO:<RECIPIENTADDRESS>
DATA
Subject: Testmessage
(Blank line, press Enter again)
This is a test.
(Blank line, press Enter again)
.
QUIT

telnet_smtp.png

成功发送邮件后,访问链接http://192.168.88.148/h3l105/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=/var/mail/helios&cmd=ls,成功执行恶意php:

ls_success.png

下一步,利用该恶意php获取reverse shell:

reverse_shell.png

显然当前用户权限较低,尝试提权操作,从本地拉取脚本文件,搜集可利用的提权相关信息:

wget_linenum.png

发现一可疑文件/opt/statuscheck,该文件为64位ELF程序:

file_info.png

拉回本地,扔到IDA分析,发现该程序执行了curl -I http://localhost

ida.png

尝试执行该程序,结果如下:

execute_statuscheck.png

查看环境变量信息,当前的$PATH存储的curl可执行程序路径为/usr/bin/curl

这里容易想到的利用思路是,自行创建一个curl程序,将其路径添加到$PATH环境变量中,则statuscheck程序执行时,就劫持了curl程序为我们自己的恶意程序

因此在tmp目录下创建curl文件/bin/sh,此处注意需要修改curl的权限可执行。

tmp路径添加到环境变量,此时再执行curl命令,实际上执行的是tmp目录下的文件

modify_curl.png

执行/opt/statuscheck,成功拿到root权限以及flag:

get_flag.png

 

0x02 symfonos2

该靶机的前半部分与symfonos1有相似之处

探测靶机IP:

netdiscover.png

照例扫描靶机开放的端口信息:

nmap.png

依然存在139和445端口,enum4linux查看开放的共享文件信息:

enum4linux.png

发现存在anonymous目录,进一步利用smbclient进行验证

/anonymous/backups/log.txt文件拉回本地,查看文件内容发现一用户名信息:aeolus

smbclient.png

到这一步,卡住了一段时间

smb的扫描结果显示并不存在其他共享目录了,猜测该用户名aeolus可能不是在此处进行利用

回看端口扫描的结果,其开放了22端口ssh服务,hydra尝试爆破,果然有新发现:

hydra.png

获得ssh的登录凭证:aeolus:seagioteamo

成功ssh登录到靶机:

ssh_login.png

ssh连接状态下,命令的执行受到一定约束:

restrict_shell.png

restrict_shell2.png

转而利用msfconsole的ssh相关模块登录靶机:

meterpreter_ssh1.png

meterpreter_ssh2.png

在检查网络相关信息时,发现可疑之处,靶机一直监听其本机的8080端口,且只允许来自靶机自身的连接

netstat.png

这里自然想到利用端口转发,此处利用portfwd端口转发/重定向工具,其集成到metasploit内,

portfwd.png

将对本机9001端口的访问映射到靶机的8080端口,web访问本机9001端口如下:

librenms.png

而利用之前的ssh登录凭证aeolus:seagioteamo也可登录此web页面:

libre_login.png

这里直接利用metasploit查找该librenms是否存在可利用漏洞:

searchsploit.png

果然存在脆弱点,直接利用该模块尝试漏洞利用

注意,由于利用portfwd设置了端口转发,这里RHOSTS和RPORT的参数,需要设置为本机的IP和端口

libre_exploit.png

漏洞利用成功,拿到shell:

get_shell.png

下一步需要进行提权操作

查看当前用户的命令和权限相关信息,发现存在可利用的mysql,将权限提升至root:

root_shell.png

提权成功,拿到flag如下:

flag.png

 

0x03 matrix_v3

探测靶机的ip信息:

netdiscover.png

IP为:192.168.88.146

nmap扫描靶机端口,找寻可利用信息:

nmap.png

发现开发的端口信息:80(http)、6464(ssh)、7331(caldav)

首先访问80端口的web页面如下:

default_page.png

没有可利用信息。尝试对站点进行子目录爆破:

gobuster1.png

发现了assetsMatrix子目录

先访问assets页面如下:

assets_page.png

发现一名为Matrix_can-show-you-the-door.png的图片:

assets_image.png

然而这只阔爱的兔兔好像并没有什么价值

文件的名称给了暗示,信息可能蕴含在名为Matrix的目录下

访问页面如下:

Matrix_dir.png

简单浏览了一下目录,发现各目录下又包含众多空目录

猜测:有价值的信息应该包含在某一目录下

利用上述目录构建字典,尝试爆破:

dirbuster_neo.png

根据上述结果,发现其/n/e/o的目录较为可疑

最终在/n/e/o/6/4的目录下,发现了信息:

net64_secret.png

把文件拉回本地,查看信息:

wget_secret.png

猜测为某登录凭证,口令经过了hash运算,尝试破解口令如下:

crack_md5.png

得到密码为passwd

下一步,注意力转向7331端口,访问该端口,要求输入身份验证信息:

7331_default.png

输入之前得到的身份凭证信息admin:passwd,进入如下页面:

7331_page.png

没有发现重要线索信息,依然尝试子目录爆破:

gobuster_7331.png

发现data目录,访问页面如下:

data_binfile.png

发现一个二进制文件,拉回本地进行分析:

wget_data.png

扔到ida里,发现如下字符串信息:

ida_data.png

猜测仍然为身份凭证信息

至此,只剩下6464端口的ssh没有进行分析利用,因此尝试利用上述得到的身份凭证登录ssh:

ssh_rbash.png

上图所示,我们得到了一个受限制的bash,即rbash(restriced bash)

在这种情况下,命令的执行将受到多种约束。

因此,利用-t "bash --noprofile"来禁止相关的启动脚本,获得一个完整的guest的shell:

ssh_noprofile.png

get it!

查看一下当前用户下相关命令的权限情况:

sudo_l.png

发现,当前guest用户可以以trinity用户的权限来执行/bin/cp命令

由此想到以下利用思路:可以生成ssh登录凭证,然后利用cp命令将其公钥拷贝至trinity用户目录下,这样guest用户就可以用生成的私钥ssh登录至trinity用户

流程如下:

ssh_kengen.png

(注:这里需保证公钥文件有足够的权限)

chmod_cp_sshlogin.png

成功登录到trinity用户下,照旧,查看一下当前用户用户下命令的权限情况

trinity_oracle.png

发现可以以root权限执行/home/trinity/oracle程序,在oracle文件内写入/bin/bash命令,然后赋予执行权限,执行~成功拿到root权限。

拿到flag如下:

get_flag.png

(完)