参考视频:https://www.bilibili.com/video/BV1itwgeHEEk/?spm_id_from=333.1387.upload.video_card.click&vd_source=e948147c25027ef3216b5c376b31fc96

扫描

dirb:

发现.ssh

有一个id_rsa文件,即ssh连接私钥,右键下载到本地

ssh私钥:

SSH:用于安全的连接到远程服务器

1、私钥(Private Key):保存在你的本地设备上,必须严格保密(相当于你的数字身份证)。

2、公钥(Public Key):可自由分享,需上传到你要连接的远程服务器上(相当于公开展示的“锁”)。

在连接的过程中,还需要指定用户名

这里补充ssh的基本用法:

远程登录服务器

ssh 用户名@远程主机

例如:ssh root@192.168.1.100

默认情况下,ssh运行在22端口,如果要指定端口,可以用-p

例如:ssh -p 2222 用户名@远程主机

使用私钥登录

如果服务器启用了公钥认证,需要使用 SSH 私钥:

ssh -i ~/.ssh/id_rsa 用户名@远程主机

1、-i:指定私钥文件(默认是 ~/.ssh/id_rsa)。这样不使用密码也可以使用了

回到这道题本身,我们需要知道目标服务器的用户名,这里是在网页ctrl+u中得到的信息的

可以猜测得出用户名

显示私钥文件的权限有问题,我们一般要设置成600,400才能使用

原因:

我们可以看到图中警告私钥文件的权限为644,too open

如果权限太开放,如644或者777,ssh连接时会报错

600:文件所有者可读可写

400:文件所有者可读,也就是说即使你是文件的所有者也不能修改它

644:所有人可读。 那么所有人都可以读取私钥,攻击者可能会窃取私钥并伪装成你登录服务器。

所以这里我们修改文件权限

这里的用户名居然只能是小写,这是大佬的经验试出的吗

那我们就连接到服务器了

查看flag可以用find命令,昨天提到过

find / -name *flag.txt 2>/dev/null

命令解释:

/:从根目录开始查找 ,意味着搜索范围覆盖整个文件系统。

*flag.txt:指名字以flag.txt为结尾的文件

2:标准错误流文件描述符

2>/dev/null:这里把标准错误的输出重定向到虚空,就是不显示错误信息的意思

提权

拿到普通用户flag,接下来开始提权

开始枚举

还是先来一个sudo -l大佬介绍一个项目可以利用这个命令

GTFOBins

go awayBins 是一个精选的 Unix 二进制文件列表,可用于绕过配置错误的系统中的本地安全限制。

这不是一个漏洞利用的列表它本身依赖于管理员做的错误配置

可以通过系统上本身有的工具,来实现我们需要的一些目的,比比如find提权和nmap 提权

这里查询wget

利用文件上传只拿flag

我们现在的目的是拿到root的flag,根据普通用户的flag可以猜测,root的flag文件名大概叫root_flag.txt

攻击机:

这样就拿到了root的flag

利用文件上传和文件下载真正提权

现在再试试真正的提权

这里我们的思路是:

1、利用文件上传发送敏感文件到攻击机

敏感文件比如说sudoers,etc/passwd,etc/shadow

2、攻击机接受敏感文件后修改文件

3、目标机使用文件下载功能接受修改后的文件并覆盖

-O(注意是大写字母 O)后面跟随你希望保存下载内容的目标文件名。例如:

wget http://example.com/sample.txt -O myfile.txt

这条命令会把 http://example.com/sample.txt 下载下来的内容保存到当前目录下的 myfile.txt 文件中。

4、目的机的权限成功被修改

具体操作

攻击机:

在本地创建sudoers,把内容粘贴进去

修改权限

python -m SimpleHTTPServer 是一个命令,用于利用 Python 内置的模块启动一个简单的 HTTP 服务器,将当前目录的文件通过 HTTP 协议共享出去。下面详细解释一下:

1、**python -m**

使用 -m 选项表示以模块方式运行 Python 的标准库模块,而不是直接执行某个脚本文件。这允许你直接调用内置模块作为独立程序。

2、**SimpleHTTPServer**

这是 Python 2.x 中内置的模块,提供了一个简单的 HTTP 服务器。它可以将当前目录(即你运行命令时所在的目录)作为根目录,通过 HTTP 协议将目录中的文件提供给远程访问者。

细节:为什么在目标机接收时的命令的url中sudoers放在的ip目录的下面?

答:使用简易http服务器时,比如这里的python -m SimpleHTTPServer, 如果你在某个目录下启动服务器,该目录就成为了 HTTP 的根路径,里面的文件直接对应 URL 路径。

所以这里root就成了根路径

使用 Python 简易服务器

如果你在 /home/user/myfiles 目录下执行:

python -m SimpleHTTPServer

那么 Web 服务器的“文档根目录”就是 /home/user/myfiles

如果这个目录下有一个文件 example.txt,则访问 http://IP:8000/example.txt 就能下载或查看该文件。

提权成功

WgelCTF打靶笔记(2)的更多相关文章

  1. 打靶笔记-03-vulhub-Moriarty Corp

    打靶笔记-03-vulhub-BoredHackerBlog 一.靶机信息 Name: BoredHackerBlog: Moriarty Corp(中-高级难度) Date release: 29 ...

  2. 打靶笔记-02-vulhub-Hackademic.RTB1

    打靶笔记-02-vulhub-Hackademic.RTB1 一.靶机信息 Name: Hackademic: RTB1(中等难度) Date release: 6 Sep 2011 Author: ...

  3. 打靶笔记-01-vulnhub-moneybox

    打靶笔记-01-vulnhub-moneybox 本篇笔记根据苑老师视频进行学习记录 https://www.bilibili.com/video/BV1Lv411n7Lq/?spm_id_from= ...

  4. webug4.0 打靶笔记-02【完结】

    webug4.0打靶笔记-02 3. 延时注入(时间盲注) 3.1 访问靶场 3.2 寻找注入点 貌似一样的注入点: ?id=1' --+ 3.3 判断输出位置 同前两关一样的位置,时间盲注应该不是这 ...

  5. webug 4.0 打靶笔记-01

    webug 4.0 打靶笔记 1. 显错注入 1.1 访问靶场 1.2 判断注入点 查找一切有参数传入的地方进行测试,注意到有get传参?id=1 猜测后台php中sql语句模板可能为如下几种情况 $ ...

  6. 打靶笔记-04-vulnhub-Jangow

    打靶笔记-04-vulnhub-Jangow 前面两篇名称写成了vulhub,已经更改为vulnhub;vulhub的之后再找个时间集中打一遍. 一.靶机信息 Name: Jangow: 1.0.1 ...

  7. BP神经网络算法推导及代码实现笔记zz

    一. 前言: 作为AI入门小白,参考了一些文章,想记点笔记加深印象,发出来是给有需求的童鞋学习共勉,大神轻拍! [毒鸡汤]:算法这东西,读完之后的状态多半是 --> “我是谁,我在哪?” 没事的 ...

  8. 读吴恩达算-EM算法笔记

    最近感觉对EM算法有一点遗忘,在表述的时候,还是有一点说不清,于是重新去看了这篇<CS229 Lecture notes>笔记. 于是有了这篇小札. 关于Jensen's inequali ...

  9. git-简单流程(学习笔记)

    这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file ...

  10. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

随机推荐

  1. [megatron代码阅读] 1. 初始化和组网

    以pretrain_gpt.py为例, 看megatron的整体逻辑. 本章主要包括megatron初始化相关逻辑, 核心函数为initialize_megatron, setup_model_and ...

  2. 分布式全局唯一ID解决方案详解

    --------------------- ID是数据的唯一标识,传统的做法是利用UUID和数据库的自增ID,在互联网企业中,大部分公司使用的都是Mysql,并且因为需要事务支持,所以通常会使用Inn ...

  3. 第一个shell脚本(bash脚本)

    首先它是一个脚本,并不能作为正式的编程语言.因为是跑在linux的shell中,所以叫shell脚本.说白了,shell脚本就是一些命令的集合.运维工作中把常用的一系列的操作都记录到一个文档中,然后去 ...

  4. CV高手是怎么炼成的?

    你平时都怎么复制粘贴的?是否每次都是复制一段粘贴一段?是否厌倦了每次只能复制粘贴一次的限制?那这篇文章就是为你量身订做的. CopyQ简介 CopyQ is clipboard manager – a ...

  5. 4. 使用sql查询excel内容

    1. 简介 我们在前面的文章中提到了calcite支持csv和json文件的数据源适配, 其实就是将文件解析成表然后以文件夹为schema, 然后将生成的schema注册到RootSehema(Roo ...

  6. h5使用vue-photo-preview 做全屏预览

    h5页面使用全屏预览 最近需要在微信小程序中跳转到h5页面 在h5页面中需要进行图片预览展示 由于没有使用第三方的组件库. 只能手写,但是时间很紧张. 所以只能够寻找第三方的插件 vue-photo- ...

  7. react声明周期详解

    react的生命周期,分为3三个阶段, 挂载阶段 constructor(){} UNSAFE_componentWillMount(){} == componentWillMount(在17版本中将 ...

  8. 数据库中的WITH temp_a 类似临时表的使用-CTE表达式

    个人随笔记录 当一个表的数据量过大时,在字段没有索引的情况下,查询的效率通常都会比较慢,如何能在不改变当前表结构的情况下让查询效率提升呢? 在一次偶然的巧合中看见同事使用了一个未见过语句,后面通过百度 ...

  9. 第9章 LINQ 运算符

    第9章 LINQ 运算符 本章所有例子所使用的 names 数组都是一致的: string[] names = {"Tom", "Dick", "Ha ...

  10. have my hair cut

    标题致敬传奇抗压王裤子. 今天去剪了头发.体验很好,老师帅. 但是还是一直很不安 我们 i 人剪了头发是这样的 剪头发不是换发型 但大概率得换 而且很快会剪短 乌龟的壳换了形状 或是变薄 肯定不安 一 ...