Vulnhub靶机渗透 -- DC6
阅读原文时间:2021年10月05日阅读:1

信息收集

开启了22ssh和80http端口

ssh可以想到的是爆破,又或者是可以在靶机上找到相应的靶机用户信息进行登录,首先看一下网站信息

结果发现打开ip地址,却显示找不到此网站

但是可以发现地址栏上方的ip变成了域名,因此推测是进行了跳转,所以想要连接这个ip必须得设置host文件

linux host文件路径:/etc/host/
windows host文件路径:C:\Windows\System32\drivers\etc\host

打开网页后二话不说直接开扫

结果还挺多的

http://wordy/wp-login.php

后台登陆页面

http://wordy/wp-includes/

目录浏览漏洞

首先注意到的是wordpress 5.1.1,kali有自带关于wordpress的扫描工具

常用选项 :
--update 更新到最新版本
--url -u 要扫描的`WordPress`站点.
--force -f 不检查网站运行的是不是`WordPress
--enumerate -e [option(s)] 枚举 

其他选项:
u 枚举用户名,默认从1-10
u[10-20] 枚举用户名,配置从10-20
p 枚举插件
vp 只枚举有漏洞的插件
ap 枚举所有插件,时间较长
tt 列举缩略图相关的文件
t 枚举主题信息
vt 只枚举存在漏洞的主题
at 枚举所有主题,时间较长
--exclude-content-based 当使用枚举选项时,可以使用该参数做一些过滤,基于正则或者字符串,可以不写正则分隔符,但要用单引号或双引号包裹
--config-file -c
--user-agent -a
--cookie
--random-agent -r 使用随机User-Agent
--follow-redirection 如果目标包含一个重定向,则直接跟随跳转
--batch 无需用户交互,都使用默认行为
--no-color 不要采用彩色输出
--wp-content-dir
--wp-plugins-dir
--proxy <[protocol://]host:port设置一个代理,可以使用HTTP、SOCKS4、SOCKS4A、SOCKS5,如果未设置默认是HTTP协议
--proxy-auth
--basic-auth
--wordlist -w
--username -U
--usernames path-to-file指定爆破用户名字典
--threads -t
--cache-ttl cache-ttl设置 cache TTL
--request-timeout request-timeout请求超时时间
--connect-timeout connect-timeout连接超时时间
--max-threads max-threads最大线程数
--throttle milliseconds当线程数设置为1时,设置两个请求之间的间隔
--help -h 输出帮助信息
--verbose -v 输出Verbose
--version 输出当前版本

wpscan --url http://wordy/ -e u

攻击

尝试用rockyou大字典进行爆破,但是有5个账户,这么大的字典要爆500+小时!

其实根据vulnhub的dc6靶机页面是可以看到提示的

cat /usr/share/wordlists/rockyou.txt | grep k01 > passwords.txt That should save you a few years. ;-)

上述命令将rockyou.txt中有k01的行都取了出来放在passwords.txt中,用这个字典来进行爆破,但是还是扫的挺慢的,所以我就直接把密码放到一个文件里面了

用户名放到另一个文件

hydra -L ./username.txt -P ./answer.txt 192.168.200.12 http-post-form "/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log+In&redirect_to=http%3A%2F%2Fwordy%2Fwp-admin%2F&testcookie=1:incorrect" -f

hydra的使用方法就不重复了,可以看我dc4的文章

https://www.cnblogs.com/Gh0st1nTheShell/p/15176931.html

https://blog.csdn.net/weixin_45841815/article/details/119839180?spm=1001.2014.3001.5501

最后结果确实爆出来了

mark:helpdesk01,这也验证了语法是没有问题的,post的内容是直接从burpsuite传过来的

登录后台成功,但是没法登录ssh

一开始是搜索wordpress相关的漏洞,但奈何没找到对应版本的,由于不是很了解wordpress,上网一搜才知道下面那个activity monitor原来是插件,不是自带的

搜索一下漏洞,搜到三个结果,只有第三个和wordpress相关

打开文件/usr/share/exploitdb/exploits/php/webapps/45274.html

我们要做的时修改的是划线处的url和命令的ip、端口和内容,我想要在kali上设置监听,然后让主机连接过来,所以要把nc的命令修改为-nvv或者去掉

反弹shell后让服务器返回一个bash,然后尝试提权

查看定时任务,没有可以利用的点

查看suid,也没有可以利用的点

使用sudo -l,查看用户用户可执行与无法执行的指令,结果发现mark用户需要root密码才可以使用sudo

通过查看mark的桌面,可以看到提示

Things to do:
- Restore full functionality for the hyperdrive (need to speak to Jens)
- Buy present for Sarah's farewell party
- Add new user: graham - GSo7isUM1D4 - done
- Apply for the OSCP course
- Buy new laptop for Sarah's replacement

重要的是- Add new user: graham - GSo7isUM1D4 - done,可以让我们拿到graham用户的密码GSo7isUM1D4

使用su命令来切换用户,然后使用命令sudo -l,可以看到用户jens可以以无密码执行的脚本

查看一下这个脚本的作用

#!/bin/bash
tar -czf backups.tar.gz /var/www/html

作用应该是把网页根目录给打包,但是我们可以修改脚本内容,让脚本执行bash

然后以jens的身份运行

可以看到成功切换身份

再继续sudo -l

可以看到可以以root用户无密码执行nmap,而nmap可以用来提权

如果nmap的版本比较高,没有nmap --interactive命令后可以运行nmap脚本的方式来以执行linux命令,如果是以root权限运行nmap,并且脚本时返回shell的语句就可以返回一个root权限的shell