DC-2靶机笔记
DC-2
DESCRIPTION
Much like DC-1, DC-2 is another purposely built vulnerable lab for the purpose of gaining experience in the world of penetration testing.
As with the original DC-1, it’s designed with beginners in mind.
Linux skills and familiarity with the Linux command line are a must, as is some experience with basic penetration testing tools.
Just like with DC-1, there are five flags including the final flag.
And again, just like with DC-1, the flags are important for beginners, but not so important for those who have experience.
In short, the only flag that really counts, is the final flag.
For beginners, Google is your friend. Well, apart from all the privacy concerns etc etc.
I haven’t explored all the ways to achieve root, as I scrapped the previous version I had been working on, and started completely fresh apart from the base OS install.
信息搜集
网段扫描
nmap 192.168.253.0/24
发现了靶机ip
因为默认只扫描前1000个端口,所以这里扫描靶机的全端口,看看都开启了什么服务
nmap -sS -sV -p 1-65535 192.168.253.129
-sS 利用SYN扫描方式,这种半扫描方式更快
-sV 发现端口服务
发现开启了web服务,且服务器为apache 2.4.10
而且开启了ssh服务,可尝试爆破
靶机渗透
先来看看web服务
发现第一个flag
他意思让我用cwel生成一个密码字典
cewl工具
CeWL是一款以爬虫模式在指定URL上收集单词的工具,可以将它收集到的单词纳入密码字典,以提高密码破解工具的成功率。
1
2
3
4
5
6
7 cewl http://www.ignitetechnologies.in/ //默认方法
cewl http://www.ignitetechnologies.in/ -w dict.txt //-w,输出为dict.txt保存
cewl http://www.ignitetechnologies.in/ -m 9 //生成长度至少为9的密码 -m
cewl http://www.ignitetechnologies.in/ -n -e //从网站中获取Email -e
cewl http://www.ignitetechnologies.in/ -c //计算网站字典中重复的单词数量 -c
cewl http://www.ignitetechnologies.in/ -d 3 //增加爬虫的爬取深度以生成更大的字典文件 -d
cewl http://www.ignitetechnologies.in/ --debug //提取调试信息 -debug
cewl http://dc-2/ -w dc-2.txt
成功制作了一个密码字典dc-2.txt
密码字典有了,接下来获取用户字典
因为站点使用wordpress制作的
用wpscan可以获取该站点的漏洞以及用户账号名
先对目标站点做个全方位扫描
wpscan –url http://dc-2
它会扫描给定的WordPress站点的一些信息,并且列出可能是漏洞的地方。注意,这里wpscan判断是否有漏洞,是根据wordpress的版本判定的,只要你的版本低于存在漏洞的版本,那么,它就认为存在漏洞,所以,这个没有太多的参考性。
用wpscan获取该站点的用户名
wpscan –url http://dc-2 –enumerate u
可以看到有三个admin,jerry,tom
现在账户名有了,密码字典也有了接下来就是找到登录地址,开始暴力破解
目录扫描
kali用dirbuster
目录扫描结果
进入wp-content发现一片空白没东西
进入wp-includes发现可以目录遍历,但是也没数据库配置文件啥的重要文件
进入wp-admin发现是后台登陆窗口
爆破
抓包先尝试admin用户
发送到intruder,设置payload为dc-2.txt
开始爆破
没有找到,那就继续同样尝试tom和jerry,密码字典还是dc-2.txt
最终爆出
tom parturient
jerry adipiscing
登陆jerry后台发现flag2,后台没有文件上传点,也尝试了sql注入和xss均没发现,还是自己太菜了
意思你如果没发现wordpress有利用点,可以尝试其他路子
查找wordpress漏洞
用searchspoilt搜索wordpress漏洞exp
试了试好像都不行,还是自己太菜了
那就试试msf的exp
也搜出来一大堆,尝试了几个感觉还是不行
over QwQ
还是从ssh入手吧
ssh
刚才拿到了两个账号密码,尝试ssh登录
尝试tom
ssh tom@192.168.253.129 -p 7744 登陆成功
尝试jerry,登陆失败
有三种可能的原因:
- 没有jerry账户
- jerry账户密码不是后台登录那个密码
- jerry被禁止登录ssh
那就用tom账户登录ssh
查看目录
发现了flag3.txt
查看,发现好多命令找不到
此处给了我们两个信息:
- 查看环境变量,应该是没有/usr/bin和/bin
- shell解释器为rbash,会限制很多命令,比如不能用source,命令中不能有/等
先查看以下环境变量
果然没有/usr/bin和/bin
添加环境变量要用到source但是又被rabsh限制
所以首要先逃逸rbash
逃逸rbash可以执行更多的命令,也为后面提权做了准备
rbash限制效果:
逃逸rbash的方法
https://www.cnblogs.com/zaqzzz/p/12075132.html#2rbash%E7%BB%95%E8%BF%87
https://blog.csdn.net/weixin_43705814/article/details/111879362
可以看到我们能执行vi命令,那就用vi来逃逸
1 | vi flag3.txt |
可以看到此时用的是bash解释器,但还没有增加环境变量,所以whoami找不到
现在不受rbash限制了,可以添加环境变量了
通过修改.bashrc文件:
vi ~/.bashrc
添加如下内容
source使生效,可以看到cat可以执行了
提权
执行sudo -l看看有没有可以以root运行的命令,发现没有
看看suid提权能不能行,发现没有啥可以利用的命令
https://blog.csdn.net/qq_36119192/article/details/84872644
suid行不通,我们还有jerry账号
切换到jerry看看能执行什么root命令
可以以root执行git
那就git提权
1 | sudo git help config |
发现提权成功
登录到root家目录,拿到flag5
查看flag5
拿到root权限后,看看ssh的配置文件,找找为啥jerry不能登录ssh
发现只有tom可以使用ssh,root用户都被禁用ssh了
总结思路
1.端口扫描
nmap -sV -p 1-65535 192.168.253.133
- web漏洞
- ssh爆破
2.web漏洞
拿到flag1
提示用cewl生成密码字典,所以提示爆破
dirbuster目录扫描,用middle
找到后台地址
其次看到是wordpress
用wpscan扫描得到用户名
bp暴力破解
得到tom以及jerry密码
进入后台拿到flag2
尝试用searchsploit和msf搜索wp的exp,试了exp都失败
看flag2内容说用别的方法
尝试ssh
3.ssh
用刚才获得的tom和jerry密码尝试登陆ssh
ssh -p 7744 tom@192.168.253.133
登陆后尝试运行各种命令发现没有找到命令
echo $PATH
发现$PATH不对以及用的rbash命令解释器
看看可以执行什么命令
ls /home/tom/flag2.txt
看到可以用less
查看flag3
提示用git提权
原理:如果以root用户执行git help config那么在配置文件的末位命令行处输入!/bin/bash即可提权
而对于以root方式运行git有两种方式
- sudo -l
- suid
首先先绕过rbash
- 转换为bash
- 添加环境变量/usr/bin和/bin/
绕过后
先看suid没有git,也没有suid提权的那些命令
然后sudo -l发现要输入root密码,所以还是不行
想到我们还有jerry账号
su jerry
sudo -l
发现可以以root执行git
git提权
拿到shell后:
尝试可以输入的命令
查看环境变量
查看shell解释器
查看/etc/passwd
查看能以root权限执行的命令有哪些
sudo -l查看该用户可以用root身份执行哪些命令
suid查找
如果是rbash需要先绕过
查看数据库配置文件,获取密码
https://www.cnblogs.com/zaqzzz/p/12075132.html
https://www.cnblogs.com/HelloCTF/p/12803808.html
https://www.freebuf.com/articles/system/188989.html
https://blog.csdn.net/weixin_43705814/article/details/111879362
https://blog.csdn.net/qq_38677814/article/details/80003851
https://blog.csdn.net/rpsate/article/details/119641205?spm=1001.2014.3001.5501