vulnhub靶机练习——DC2
vulnhub靶机练习——DC2
hihopkc0x00 准备工作
在vulnhub官网下载DC:2靶机https://www.vulnhub.com/entry/dc-2,311/
导入到vmware
注意:保障靶机和渗透主机在同一网段即可,这里我们网络模式选择 NAT 模式,即共享IP地址
打开kali准备进行渗透(ip:192.168.247.135)
根据提示 需要把靶机的IP和 域名绑定 修改hosts文件
0x01 信息收集
跟上题一样(arp-scan,masscan,nmap)
1 | 1、arp-scan -l |
1 | nmap -sS 192.168.247.135/24 |
得知
渗透机kali IP :192.168.247.135
靶机IP :192.168.247.137
对靶机进行深度扫描
或者
发现 ip,直接 nmap 一顿梭:nmap -A -p- -T4 192.168.247.137
接着他的网站目录,dirb 一顿梭:dirb http://192.168.247.137
0x02 网站探测
看到熟悉的 “wp-admin”,基本可以确定是个 wordpress 的网站了 直接浏览器访问一下试试:
emmmm 靶机做了重定向,直接跳转到了http://dc-2,而且还没做域名解析……
状态码301,永久重定向
curl 基于文本的浏览
-I 返回http头部信息
我们整理一下信息:
- 靶机开放了80端口
- 80端口重定向到了 http://dc-2
- 靶机CMS框架为 wordpress
- 靶机开放了ssh端口
修改域名解析
既然靶机没有做域名解析,那就做一次域名解析嘛
主机的hosts文件
作用:主机名到ip地址的映射
且优先级比DNS高
解决:
Windows主机:notepad c:\windows\system32\drivers\etc\hosts
kali主机: /etc/hosts
添加主机名到ip地址的映射
192.168.247.137 dc-2
DNS解析顺序:
DNS缓存>hosts>DNS服务器
ipconfig /displaydns 查询DNS缓存
ipconfig /flushdns 清楚、刷新DNS缓存
1 | sudo chmod 777 /etc/hosts |
手动添加 dc-2 的解析,保存并退出:
修改hosts文件
然后再次浏览器访问 http://dc-2:
方法一:
1 | nikto -host http://dc-2 |
方法二:
1 | dirb http://dc-2 |
dirb是一个web内容扫描器,他查找现有或隐藏的web对象。他基本上通过对web服务器发起基于字典的攻击并分析响应来工作的。
0x03 登录CMS后台,发现flag2
cewl是一个ruby应用程序,给定url,可以生成用于密码破解的口令字典
根据flag1的提示
1 | cewl http://dc-2 -w dc-2.txt |
在得到这些信息之后我们初步判断这是一些密码。有了密码当然就需要账户。根据网站搜集的信息,我们使用wpscan扫描靶机
wpscan 是专门用于扫描WordPress的
1 | wpscan --url http://dc-2/ -e u |
1 | wpscan --url http://dc-2 -U dc2-user.txt -P dc-2.txt |
可以爆出
登录
只有jerry用户有信息
提示wordpress没啥可利用的
直接用刚刚爆出来的两个账号 ssh 登录一下试试
1 | ssh tom@192.168.80.131 -p 7744 |
成功连上,看到了flag3.txt
tom 登陆成功 然后四处逛逛,发现他有 flag3,但是你看不了,因为你是 rbash……
tips:
什么是rbash?
受限shell是Linux Shell限制一些bash shell中的功能,并且是从名字上很清楚。该限制很好地实现了命令以及脚本在受限shell中运行。它为Linux中的bash shell提供了一个额外的安全层。
不能使用cd命令(意味着不能更改目录)
不能设置或取消环境变量:SHELL,PATH,ENV,BASH ENV
导入功能受限
指定包含参数’/‘或’-‘的文件名(即命名中不能包含’/‘或’-‘)
不能使用使用>,>|,<>,>&,&<,>>等重定向操作符
不能使用set+r或者set + o 关闭
那先查看一下环境变量:echo $PATH$
方法:利用系统常见应用逃逸
ftp
more
less
man
vi
vim
以上在输入的地方输入 !/bin/sh 或者 ! /bin/bash
1 | step1: vi |
然后设置环境变量:
1 | export PATH=/bin:/usr/bin:$PATH |
此时路径变了
可以直接cat了
poor old Tom is always running after Jerry. Perhaps he should su for all the stress he causes.
可怜的老汤姆总是在追杰瑞。也许他应该为自己造成的压力负责。
提示使用su,tom和jerry都是用户,应该是要切换到jerry
1 | su jerry |
先sudo -l
一下,看看 jerry 有哪些权限:
emmm jerry居然能以root身份去git,那没事了,开始提权 (而且flag4也暗示我们通过git提权,我们就上网找一个poc)
1 | sudo git help config |
多页分隔,绝佳的 hack 位点
回车,然后发现我们已经有了root 的shell:
此时已是root
然后直接去老家看flag啦:
1 | cd /root |
总结:
1.熟悉渗透的流程
2.信息收集对整个渗透过程来说尤其重要,端口扫描和网站指纹的收集
3.熟悉wpscan使用
4.了解rbash逃逸的方法
5.了解suid提权的git提权的使用