WgelCTF打靶笔记(2)
参考视频:
扫描
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
就能下载或查看该文件。
提权成功
相关文章
- 子母钟系统,安徽京准助力高考精准时间 子母钟系统,安徽京准助力高考精准时间 京准电子科...03-18
- 京准电钟:NTP校时服务器于安防监控系统应用方案 京准电钟:NTP校时服务器于安防监控系统应...03-18
- 参考视频:https://www.bilibili.com/video/BV1itwgeHEEk/?spm_id_from=333.1387.upload.video_card.click&vd_source=e9...03-18
- 京准电钟:NTP精密时钟服务器在自动化系统中的作用 京准电钟:NTP精密时钟服务器在自动化系...03-18
EWM181-Z12S简易型zigbee3.0模块的技术解析与应用指南
一、产品概述:重新定义低功耗无线通信 EWM181-Z12S是简单易用型工业级ZigBee3.0无线模块,支持...03-18- 这里要说的是,用户登录密码属于用户隐私数据。首先,隐私数据属于敏感数据,不能明文传...03-18
- 本文将介绍 TOPIAM 与 Wiki 集成步骤详细指南。 应用简介 Wiki.js 是一款高度可定制...03-18
- 官方下载 夸克网盘 Kali Linux 2021.3具有以下优势: 增强的OpenSSL兼容性 扩大连接范围:重新配置...03-18
- 一.ELF文件结构 0x01什么是ELF文件 1.linux环境中,二进制可持性文件的类型是ELF(Executable and Link...03-18
- 京准电钟:北斗卫星校时器助力智慧电子政务系统 京准电钟:北斗卫星校时器助力智慧电子政...03-18
最新评论