主机发现
sudo arp-scan -l
以sudo管理员权限扫描本地活动ip地址
Interface: eth0, type: EN10MB, MAC: 08:00:27:22:46:4f, IPv4: 192.168.252.230
Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan)
192.168.252.6 4c:5f:70:74:3c:3b (Unknown)
192.168.252.42 9a:ef:fa:8e:d2:86 (Unknown: locally administered)
192.168.252.71 08:00:27:62:ff:b7 PCS Systemtechnik GmbH
主机IP:192.168.252.230
靶机IP:192.168.252.71
如何判断那个ip是自己靶机的ip,最简单的方法,如果后面带有PCS Systemtechnik GmbH,那么就是是你的靶机。
信息收集
nmap扫描
介绍:nmap是用来探测和扫描计算机网络上的主机和服务的一种扫描器,通常nmap会发送特制的数据包到目标主机,然后对返回数据包进行分析,主要功能就是主机探测,端口扫描,版本检测。
sudo nmap 192.168.252.71
发现只开放了80端口web服务,但是却打不开页面
访问不了web页面的原因可能是:
1:web服务配置了基于域名的虚拟主机,直接访问http://<IP>:80打开不开,web服务器(Nginx/Apache)配置了ServerName或者Host头部检查,只能响应特定的域名的请求。
2:本地DNS解析问题
某些网络环境(如企业内网)可能对直接IP访问做限制,但是允许通过域名访问。
3:浏览器或客户端缓存
浏览器可能缓存了旧的DNS记录,导致直接访问ip失败,而域名能绕过缓存。
问题原因:
根据以上的描述信息,尝试发现具体原因
Wappalyzer:用于检测网站使用的框架,语言,数据库等等的工具
发现该网站使用的是Apache服务,那么可以判断该问题大致就是Apache服务会默认启用基于域名的虚拟主机,还有一个地方我没有标注,url输入框返回了一个域名dc-2,更加确定了这是Apache的虚拟主机或者.htaccess文件配置了强制域名访问,当检测到用户通过ip访问时,会重定向到http://dc-2/,为了严谨性,在对该网站进行请求......
Curl工具(用于请求web服务器)
curl -v http://192.168.252.71
请求并显示信息
服务器返回了HTTP 301永久重定向,将http://192.168.252.71重定向到http://dc-2/
问题解决:
根据以上原因结合信息,得出了最终结果,最后在/etc/hosts文件中添加ip到本地的DNS
sudo vi /etc/hosts
命令界面输入i进行插入,输入ip以及域名
在主页面的导航栏中有个flag连接,点击查看拿到flag1
Flag1:
Your usual wordlists probably won’t work, so instead, maybe you just need to be cewl.
你的常用字典可能不起作用,所以,也许你只需要cewl。
More passwords is always better, but sometimes you just can’t win them all.
密码越多越好,但有时您可能根本无法全部搞定。
Log in as one to see the next flag.
以单人模式登录,即可查看下一个标志。
If you can’t find it, log in as another.
如果找不到,请以另一个人的身份登录。
Gobuster目录爆破
介绍:用户目录和文件枚举,主要用户在web服务上查找隐藏的目录和文件,从而进行信息收集和渗透测试。
尝试进行爆破,查看是否由其他目录文件存在,使用gobuster工具指定dir目录爆破
-u:指定url
-w: 指定对应的字典
-x: 指定寻找什么类型的文件
(对了这里的ip变了是因为我不是在同一时间段做的,所以靶机ip刷新了)
根据爆破的信息看到有几个目录存在,挨个打开发现除了一个配置文件目录之外,还有一个空目录,以及登录页面,为了验证那目录是否真为空,用curl请求一下,没有任何信息。
查看登录页面
既然给了我们一个登录页面,就需要用户名和密码,尝试使用弱密码登录,并不行,也没有给我们其他有用的信息,那么我们尝试从网站上获取用户名。
cewl字典生成工具
介绍:爬取网站信息生成字典文件的。
sudo cewl http://dc-2 -w dc2.txt
现在我们有了密码字典,话需要获取用户名。
wpsan
介绍:wpscan是针对wordpress漏洞的扫描器,功能多样且强大,能扫描出wordpress网站中各种漏洞,包括主题漏洞,插件漏洞等
用户枚举
sudo wpscan --url http://dc-2 --enumerate u
--url :指定目标路径
--username:指定测试用户名
枚举出三个用户名
amdin,jerry,tom
现在我们用户名和密码字典都有了,只要爆破出匹配用户的密码。
--url :指定目标路径
--passwords:指定密码字典文件路径
Username: jerry Password: adipiscing
Username: tom Password: parturient
登录jerry用户
Flag 2:
If you can't exploit WordPress and take a shortcut, there is another way.
Hope you found another entry point.
如果您无法利用WordPress并走捷径,还有另外一种方法。希望您找到另外一个切入点。
切换tom用户
什么也没有
登录ssh
由于开头只是进行了简单的扫描,并没有显示ssh端口服务,现在来详细扫描一下
-sT:扫描TCP端口 -A:识别各个服务的版本
-O:探测操作系统 -p-:扫描全部端口
sudo nmap -sT -A -O -p- 192.168.94.71
根据扫描出来的结果,开放的80端口运行的是Apache 2.4.10(Debian系统),使用的wordpress 4.7.4版本,该版本存在已知的漏洞,如未认证的注入漏洞,插件漏洞,还可以进行用户枚举,使用wpscan扫描器扫描,其实这个详细信息扫描我本应该放到最前面,如果你是一个有经验的人,肯定会根据提示信息找到解法,但是我为什么放在这里,是因为为什么前面要使用wpscan,你怎么知道要使用它,如果你看到这里,就会有一种豁然开朗的感觉,这就体现了信息收集的重要性。
根据信息,因为低版本的问题,wordpress和openssh与Apache都有潜在的攻击面,所以你如果你有时间和兴趣,可以研究一下。
登录tom用户
-p:指定ssh端口7744
Cat查看内容发现没有装这个命令,作者给卸载了,提示rbash,代表着这是一个受限制的,可能只有几个命令使用,只能一个一个尝试,使用less和vi编辑器都可以查看到里面的内容
flag3
Poor old Tom is always running after Jerry. Perhaps he should su for all the stress he causes.
可怜的老汤姆总是追着杰瑞跑,也许他应该为自己惹来的一连串麻烦负责一下。
现在的情况是cd也使用不了,切换不了目录,限制了很多命令,那么我们就需要根据rbash查阅相关文档。
rbash绕过
BASH_CMDS[a]=/bin/sh;a #将/bin/sh赋值给关联数组变量BASH_CMDS[a]用于绕过受限制环境
export PATH=$PATH:/bin/ #将/bin/添加到PATH环境变量,使系统能直接调用/bin/下的程序
export PATH=$PATH:/usr/bin #将/usr/bin添加到环境变量,进一步扩展可执行命令的范围
echo /* #打印根目录下的所有文件和目录,用于快速探测系统结构。
flag4
Sudo -l 发现tom用户没有权限,那么我们切换到jerry用户
Git提权
原理:利用sudo权限执行git命令时,通过特定的操作进入更高权限的shell环境。
输入:sudo git help status 执行后输入以下命令!/bin/sh提权
Congratulatons!!!
祝贺大家!!!
A special thanks to all those who sent me tweets
特别感谢所有给我法推特的人
and provided me with feedback - it's all greatly
并给我提供了反馈--这一切都很棒
appreciated
感激
If you enjoyed this CTF, send me a tweet via @DCAU7.
如果你喜欢这个CTF,请通过@DCAU7给我发一条推文。