简介:获取标志(难度: 中等)
1、下载靶场
靶机名称:GROTESQUE: 1.0.1
下载地址:
2、安装靶场
以DC-1为例,将文件解压(一压缩包形式进行下载)。
打开虚拟机,选择解压好的文件导入虚拟机( vof 版本高于4.0,点击重试即可导入)
| |
导入成功,开启此虚拟机( 当页面出现 grotesque login 时表示安装成功)。
3、获取靶机的flag(两个flag)
前提:
1、已知kali的IP地址(ifconfig) —— kali IP地址:192.168.108.129/24 | 2、grotesque和kali在同一网段 | 已知grotesque所在的网段 —— grotesque IP地址:192.168.108.149/24 |
信息收集
获取grotesque的IP地址
命令:netdiscover -r 192.168.108.129/24
由图可知grotesque的IP地址是:192.168.108.148/24(重启之后变成 192.168.108.149/24)
端口扫描
命令:nmap -sV -p- -O 192.168.108.148
//-sV:扫描系统版本和程序版本号检测,-p-:全端口扫描
显示结果:
目标主机 192.168.108.148 上所有扫描的 65535 端口都处于忽略状态。
未显示:65535 个已关闭的 tcp 端口(重置)
与此主机匹配的指纹太多,无法提供特定的操作系统详细信息
网络距离:1 跳
这里不知道怎么回事,将靶机重启之后就ok了
获取信息如下:
端口号 | 服务 | 版本 |
66 | http | WEBrick httpd 1.4.2 (Ruby 2.5.5 (2019-03-15)) |
80 | http | Apache httpd 2.4.38 |
操作系统:OS details: Linux 4.15 - 5.6
访问这两个端口 | |
端口:66( http://192.168.108.149:66/ ) | 端口:80( http://192.168.108.149/ ) |
进行目录扫描和CMS识别
CMS识别:
目录识别:
1、http://g
http://G/javascript/jquery/jquery
http://G/javascript/jquery/jquery
可以直接看到代码
2、http://g:66
http://g:66/functions/index.html
查看了两个文本文件( http://g:66/changelog.txt 、 http://g:66/license.txt )
http://g:66/functions/index.html
在这里面看到了很多工具的名字( 提示:二进制文件可能支持以下一个或多个函数 )
在这里翻译了一下66端口( http://192.168.108.149:66/ )的页面,发现可以下载源码
下载解压之后在 _vvmlist/ 目录下按照文件大小的顺序排列,打开最大的文件有了发现:
所以在 80 上应该是有一个 wordpress 系统的,这个 wordpress 系统所在目录在 /lyricsblog
http://192.168.108.149/lyricsblog/
源码中有有一个图片地址,并且标题有重复
打开翻译之后也就是一些歌词
使用wpscan工具扫描一下wordpress的用户名(获取到:erdalkomurcu)
wpscan --url http://192.168.108.149/lyricsblog/ -e u
但是没有密码,也不是弱口令
最后也是看了别人的 wp,发现要计算上面发现的 Hakan Taşıyan – Doktor 的歌词的 md5 值,也没看到别的地方有其他提示,感觉很牵强。把歌词复制到文本( g.txt 文件)中,并且计算 g.txt 文件的 md5 值(md5sun)
md5sun g.txt (这里注意一下务必使用 vi 编辑写入歌词,直接用echo写入的文件在md5计算的时候会不一样)
获取到了密码:BC78C6AB38E114D6135409E44F7CDDA2
使用账号密码( erdalkomurcu、BC78C6AB38E114D6135409E44F7CDDA2)登录wordpress
webshell
在 php 文件中插入php的反弹语句
思路:appearance > edit theme> index.php>粘贴phpreverseshell.php>获取反向shell
php-reverse-shell.php 文件: php-reverse-shell | pentestmonkey
提权:
首先改善一下交互页面:python -c 'import pty;pty.spawn("/bin/bash")';
因为在sudo和suid提权方面都没有找到好的办法,所以继续查看其他的敏感信息
在wp-config.php的配置文件中发现了一组用户名密码(raphael、_double_trouble_)
又在用户的家目录中发现存在该用户,所以尝试直接切换用户
在家目录下查看到文件:user.txt(文件内容:F6ACB21652E095630BB1BEBD1E587FE7,成功拿到flag1)
查看隐藏文件还发现了一个 chadroot.kdbx 文件,应该是root的备份密码
补充(Keepass 文件扩展名为kdbx):
- KeePass 是一款免费的开源密码管理器,可帮助您以安全的方式管理您的密码。您可以将所有密码存储在一个数据库中,该数据库由主密钥锁定。因此,您只需记住一个主密钥即可解锁整个数据库。数据库文件使用目前已知的最佳和最安全的加密算法(AES-256、ChaCha20 和 Twofish)进行加密。有关更多信息,请参阅功能页面。
先将文件下载到kali
使用 keepass2john 工具输出 .chadroot.kdbx 文件的hash值
keepass2john .chadroot.kdbx > g_root
然后使用 john 破解 g_root 文件中的密码,得到 .chadroot.kdbx文件密码是 chatter
john --wordlist=/usr/share/wordlists/rockyou.txt g_root
接着使用 KeeWeb 这个网站查看 kdbx 中的信息(密码使用破解出来的:chatter)
打开文件之后发现存在四个root的密码,手动尝试之后发现root的密码是.:.subjective.:.
在成功切换到root用户之后在当前目录下拿到了第二个flag
总结:
1、wpscan 的使用
2、md5sum的使用
3、WordPress常用反弹shell姿势
4、Keepass文件的解密