0x00 靶场环境搭建
链接:https://pan.baidu.com/s/17TzjBjPrftwKUlddoJ13Ag
提取码:1f9p
下载完成之后导入vmware或者virtualBox,网卡改为nat模式或仅主机模式(方便信息收集)
0x01 信息收集
通过扫描本地仅主机号段发现靶机IP地址
Kali Linux地址为192.168.220.136
靶机地址为192.168.220.135
使用nmap工具对靶机端口进行全方面探测,发现靶机开放22端口与8180端口且为nginx服务
尝试ssh 弱口令发现失败,并且8180端口上面无其他可利用信息
尝试爆破web目录发现一个可疑目录 /vhosts
访问之后发现有一段英文提示,通过翻译得知我们需要把域名加入到hosts中
翻译:ServerName 指令设置服务器用来标识自己的请求方案、主机名和端口。当创建重定向 URL 时,这将被使用。在虚拟主机的上下文中,ServerName 指定了请求中 Host: 头部必须出现的主机名才能匹配该虚拟主机。对于默认的虚拟主机(即本文件),该值并不决定性,因为它作为最后一道防线主机使用。但是,对于任何进一步的虚拟主机,你必须明确设置它。
找到hosts文件,将域名加入到hosts中,我这里是在主机中加入
kali中加入则vim /etc/hosts
再次访问http://mario.supermariohost.local:8180/ 发现存在一个超级玛丽的游戏,但是也没有什么关键的信息
直接上御剑扫描发现几个存在的目录
访问http://mario.supermariohost.local:8180/luigi.php目录发现有一段信息存在
Hey!! It'sa Luiiiggiii!!
My short brother doesn't know that I'm wandering around his host and messing around, he's new with computers!
Since I'm here I want to tell you more about myself...my brother is a nice person but we are in love for the same person: Princess Peach! I hope she will find out about this.
I Love Peach
Forever yours,
Luigi
访问command.php发现是一个查询的网站 http://mario.supermariohost.local:8180/command.php
通过查询前面的luigi与mario发现存在这两个角色
因此推测22端口的用户名与密码即存在http://mario.supermariohost.local:8180/luigi.php的提示信息中
0x02 端口爆破
使用cewl爬取http://mario.supermariohost.local:8180/luigi.php站点下的可疑用户名作为用户名字典
cewl 是一个用于生成自定义字典的工具,通常用于渗透测试和密码破解。它可以从指定的网页或文本文件中提取单词,并生成可能用于破解密码的字典列表。以下是 cewl 工具的一些基本用法:
基本用法示例:
从指定 URL 中提取单词并生成字典:
bashCopy Codecewl http://www.example.com -w custom_dict.txt
从本地文件中提取单词并生成字典:
bashCopy Codecewl /path/to/file.txt -w custom_dict.txt
选项和参数:
- -m, --min_word_length: 指定提取的单词最小长度。
- -d, --depth: 指定爬取深度(仅在提取网页时有效)。
- -r, --offsite: 允许提取外部链接的单词。
- -e, --email: 提取电子邮件地址。
- -n, --no-words: 不提取普通单词。
cewl 工具可以帮助安全专家生成基于目标特征的自定义字典,用于密码破解、社会工程学攻击等场景。请注意,在使用 cewl 或任何类似工具时,请确保你已经获得了合法授权,并遵守适用的法律和道德规范。
cewl http://mario.supermariohost.local:8180/luigi.php -w user.txt
接着使用john在该user的基础上生成相应社工密码进行爆破
john --wordlist=user.txt --stdout --rules > passwords
这个命令的作用是使用 john 工具从名为 user.txt 的字典文件中应用密码破解规则,并将结果输出到文件 passwords 中。
具体而言,这个命令的各部分含义如下:
- john: 运行密码破解工具 john。
- --wordlist=user.txt: 指定要用作字典的文件为 user.txt。
- --stdout: 将结果输出到标准输出(通常是命令行窗口)。
- --rules: 应用密码破解规则,以尝试各种变体和组合。
- > passwords: 将标准输出重定向到名为 passwords 的文件中,保存密码破解的结果。
这个命令的目的是使用指定的字典和密码破解规则来尝试破解密码,并将结果保存到名为 passwords 的文件中。
有了密码字典之后,我们可以开始尝试爆破,由前面可以知道存在两个用户luigi与mario,我们可以制定第一个用户名,然后使用生成的字典进行爆破。
hydra -l luigi -P passwords ssh://192.168.220.135 -V
这个命令使用 hydra 工具进行 SSH 协议的暴力破解攻击。其中:
- hydra 是密码暴力破解工具。
- -l luigi 指定要尝试登录的用户名为 "luigi"。
- -P passwords 指定要用作密码列表的文件为 "passwords"(根据之前的命令推测)。
- ssh://192.168.220.135 指定要攻击的目标地址为 192.168.220.135 的 SSH 服务。
- -V 表示以详细模式运行,显示更多信息。
- 注明:密码暴力破解是非法的,我这里是在本次电脑中运行!非授权下,禁止密码爆破,如导致严重的法律后果则自己承担!
经过少许时间之后,也是爆破除了密码luigi1
但是通过ssh连接之后发现没有什么执行命令的权限,是一个需要提权的状态。
0x03 后渗透之提权
这里试过了多种sudo、python、php、等等提权方式之后,在一次无意中的输入help发现了新大陆
我们这里就可以使用awk提权,参考文章:https://www.freebuf.com/articles/system/188989.html
awk 'BEGIN {system("/bin/bash")}'
提权之后查看系统内核版本,发现是一个3.13.0的内核,所以我们可以searchsploit中查找到了一个37292.c的c文件
将他上传至靶机当中,kali可以使用python开启一个简单的http服务,让靶机直接下载文件
回到靶机中使用wget命令下载37292.c至靶机中
将提权文件下载到靶机之中,然后gcc编译文件并执行,成功提权至root用户!
0x04 查找FLAG文件
在root目录下面找到一个flag.zip,也就没看到其他带有flag的文件了
接着把flag.zip给传送出来,还是老手法,在靶机这里使用python开启http服务,不过靶机里面的python环境是2的版本,命令少许不同
下载至kali里面之后进行解压,发现还带有密码存在
直接上fcrackzip!
fcrackzip 是一个用于暴力破解 ZIP 文件密码的工具。它可以尝试各种密码组合来解密加密的 ZIP 文件。fcrackzip 使用基于字典的攻击和暴力破解方法来破解密码保护的 ZIP 文件。
- -v 表示详细模式,显示更多信息。
- -D 表示使用字典文件进行密码破解。
- -p /path/to/dictionary.txt 指定要用作字典的文件。
- -c 'aA1!' 指定要使用的字符集。
- -l 1-6 指定密码长度范围。
- encrypted.zip 是要破解的加密 ZIP 文件。
以下是 fcrackzip 工具的基本用法示例:
- 使用字典文件暴力破解 ZIP 文件密码:
bashCopy Codefcrackzip -v -D -p /path/to/dictionary.txt encrypted.zip
- 使用指定字符集进行暴力破解 ZIP 文件密码:
bashCopy Codefcrackzip -v -c 'aA1!' -l 1-6 encrypted.zip
fcrackzip -D -p /usr/share/wordlists/rockyou.txt -u flag.zip
爆破得出密码 ilovepeach
解压密码得到FLAG值: