前言
近日闲的无聊就找了个靶机玩玩,技术太菜,第一次写这个渗透测试,写的不好还请多多指教。
靶机搭建与下载
Moonraker靶机下载地址:https://pan.baidu.com/s/1Hb8NgDjJiFuygeDrAaWVOA提取码: 22ja
Monraker靶机ip: 192.168.56.150
kali攻击者ip : 192.168.56.1
说明: 获取目标主机的root权限并读取目录中的flag.txt文件
知识点
nmap
dirb
Burp修改Cookies
CouchDB登录凭证
Fauxton web页面的登录
apache2日志的访问
Node.js反序列化漏洞利用
shell的交互
john hash破解
开始测试
首先第一步对目标靶机网络端口扫描的信息收集
nmap -sV -p- -A 192.168.56.150
扫描之后发现目标开放了22(ssh),80(http),3000(http),4369(epmd),5984(couchDb)等端口。目标开放了http端口,用web浏览器打开查看
打开页面是一个视频文件,放完之后跳到另一个页面。
然后查看了页面的源代码没有什么发现可用信息,于是使用dirb去枚举目标主机的访问目录
dirb http://192.168.56.150
看见一个robots.txt觉得会有些重要信息,结果一访问什么都没有。在访问services目录中看见了一个链接,其实这个也可以在上面那个页面进去也行,主要dirb没扫出更多敏感词。
打开访问,如图所示,一个基于网络服务的查询
试了一下用带图片标记去查询表单
点击提交后显示了查询的信息
这个点在这我卡了很久,然后是要查看apache2服务的访问日志
使用命令查看日志
tail -f /var/log/apache2/access.log
在日志中发现了新的页面,在浏览器打开,但是有一个back的链接,点击看看会带我们去什么页面
引导进入新的页面
在新的页面里有两个链接里发现了一些重要信息
打开CouchDB Notes在这个页面得到了关于用户的账号密码提示,这个对我们来说是很重要的。
账号密码提示
username: jaws
password: 女朋友名字+x99的组合
我哪知道他女朋友是谁呀,只有百度或者谷歌jaws的女朋友是谁咯。
然后根据提示信息,接下来就应该要查看couchdb这个了,这个怎么打开呢,我们在扫描端口时是开放了一个5984端口就是用来访问这个的,于是打开浏览器访问
发现不对劲,加端口不能直接访问,于是在请求一下度娘
再次访问
http://192.168.56.150:5984/_utils
使用jaws账号密码登录
username: jaws
password: dollyx99
登录成功,发现3个数据库中的文档,其他两个打开说不是admin
在links里发现写信息,访问提示的目录
其中在HR这个目录发现了重要的信息
访问这个5界面可以得到4个账号和密码
我也尝试了这些账号密码去ssh爆破,都无果,难道这些账号是用来混淆的?
其中hugo这个账号正是我们想要的,因为我们在这个页面发现是有node.js反序列化漏洞的
接下来就访问Node.js这个框架.
http://192.168.56.150:3000
username: hugo
password: TempleLasersL2K
登录成功后,显示一条信息。
然后就想着访问这个目录,发现访问不了,还以为要get,post请求然而都不是。最后F12看了下,发现了Cookies中的秘密(为什么会一开始不会看这个呢,就是因为node.js反序列化这个漏洞还不知道.手动滑稽)
接下来使用burp抓包,注意要抓登录的包,然后先发送到repeater,g根据右边setCookies提示设置
开始利用,因为这个应用程序中的漏洞是它从HTTP请求中读取名为profile的cookie,对cookie值执行base64解码,并将其传递给unserialize()函数.由于cookie是不受信任的输入,攻击者可以制作恶意Cookie值从而来以利用此漏洞.
使用nodejsshell.py 用来生成反向shell的payload
再次生成反序列化的 payload
进行 Base64 编码后,然后在 Cookie 头中加入 Payload,向服务器发送请求.
在向服务器发送之前首先启动监听端口,与生成的payload端口一致,然后就会成功反弹.
nc -lvp 1337
为了方便shell,使用python进行shell交互
python -c 'import pty; pty.spawn("/bin/bash")'
找了许会,没发现有什么重要目录,最后再/var/mail中找到了四个邮箱,但是访问说提示没有权限,看来是找对了,接下来就得找找信息了或者怎么提权了。
在了解CouchDB的配置后,会发现默认的安装目录为/opt/couchdb目录下,所以读取他的配置文件看看成功得到密码.
tail /opt/couchdb/etc/local.ini
username: hugo
password: 321Blast0ff!!
切换用户已hugo身份登录,并读取hugo文件
信息中提到包括root的密码,又告诉我们在root密码后面+VR00M,和一段hash值,复制到文件进行hash破解
利用john工具爆破
username: root
password: cyber
然后再次以root身份登录在后面加VR00M,找到flag.txt并读取
看到最后提示一个目录访问
看来是结束了,作为单身狗的我又被成功的虐了一次.
jaws和dolly最后幸福的在一起了.
总结
一开始做这个靶机时经常掉坑,还是花了几天时间才做出来的,太菜了,留下了没技术的眼泪,最大的坑就是在node.js修改cookies迟迟搞不定。不过收获还是挺大的,学到了很多的知识,以后还得多多训练训练,还请大佬们多多指教.