写在前边
免责申明:
文章内容来源于本人日常学习和打靶记录,请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与本账号和本人无关!!!
本文不仅仅是vulnhub靶场的wp,而是对打靶的一个总结归纳,本文有以下特点:
- 系统的梳理渗透的流程
- 系统性归纳打靶遇到的问题,包括常见提权方式的整理等
- 对常见工具/脚本的使用,和对使用到的每个参数的解释
- 详细解释每个步骤的作用,帮助进行打靶知识的梳理
- 文中的命令行是手打的,不是复制粘贴,可能存在错误,各位师傅根据实际情况进行调整
题目简述
题目:EMPIRE:LUPINONE
传送门
难度:中等
【备注】
kali和靶机同属于一个网段,同属于192.168.195.0网段
kali:192.168.195.101
target:192.168.195.138
官方描述:
Difficulty: Medium
This box was created to be medium, but it canbe hard if you get lost. CTF like box. You have to enumerate as much as you can.
翻译一下:
大概意思就是箱子被创建为中等难度,但如果你迷失方向的话,可能会变得很难。这是一个类似CTF的箱子。你需要尽可能多地进行枚举和信息搜集。
信息收集
确定ip
使用nmap对整个c段进行扫描,确定ip
nmap -sP 192.168.195.0/24
参数解释:
-sP 检测目标主机是否在线,而不执行端口扫描或版本识别
端口探测
nmap -A 192.168.195.138
参数解释:
-A:可以进行操作系统检测、版本检测、脚本扫描、路由追踪
探测到开放了22和80端口,访问80端口,先收集一波信息
没发现有用信息,进行下一步操作–目录扫描
目录扫描
使用gobuster进行目录扫描,kali默认不安装,需要自己安全,安装命令
apt install gobuster
列举了一部分gobuster的帮助文档
gobuster的帮助文档
这里我们主要是使用目录扫描功能,使用dir参数,然后查看帮助文档
gobuster dir -u http://192.168.195.138 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x .php,.txt,.html,.zip
参数解释
dir:目录扫描
-u:url
-w:字典
-x:后缀名
robots.txt文件
~myfiles
manual
没有扫出来也可能是我们的字典太小,读者师傅可自行使用较大字典进行尝试
发现还是没有什么信息可用,进行下一步目录爆破
目录爆破
ffuf -u http://192.168.195.138/~FUZZ -c -w /usr/share/wordlists/dirb/common.txt
-mc 为响应码
-c 高亮显示
-e 过滤文件扩展名
在主路径下发现~secret文件
~secret路径
翻译一下
继续爆破~secret文件
ffuf -u http://192.168.195.138/~secret/.FUZZ -c -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -e .txt,.pub,.html,.bak -mc 200
渗透
密钥解密
得到一串密文,查看密文有什么特征,
没有数字”0“,
没有字母大写”O“、和大小写的”I“
没有字符”+“、”/“
猜测为BASE58加密方式
解密完成发现是ssh的私钥
将密钥写入kali的.ssh文件夹内
john简述:
是一个大受欢迎的、免费的开源软件、基于字典的密码破解工具。用于在已知密文的情况下尝试破解出明文的破解密码软件,支持目前大多数的加密算法
命令解释:
vi ssh.key :编辑一个文件,文件内容为解密后的内容
ssh2john.py ssh.key > hash: 将 SSH 私钥文件转换成 John the Ripper 可以理解的格式,以便进行密码破解
得到一个hash
对生成的hash进行再次解密
john --wordlist=/usr/share/wordlists/fasttrack.txt hash
给密钥ssh.key授权,权限为600或400
渗透
查找flag,flag位于当前目录下
提权
linux常见提权方式
- 内核提权
> uname -a
> 脏牛提权
- sudo提权
> sudo -l # 查看无需命令就能执行的特权文件
- suid提权
> 寻找具有suid权限的可执行文件
> find / -user root -perm -4000 -print 2>/dev/null
> find / -perm -u=s -type f 2>/dev/null
> find / -user root -perm -4000 -exec ls -ldb {} \;
- 定时任务
> cat /etc/crontab #查看定时任务
> 1 通配符提权
> 2 文件重写提权
- 环境变量提权
> echo $PATH
推荐2个脚本
-
linpeas.sh
传送门: https://github.com/carlospolop/PEASS-ng -
linux-smart-enumeration
传送门:https://github.com/diego-treitos/linux-smart-enumeration
【备注】这里并没有使用
提权信息收集
find / -perm -u=s -type f 2>/dev/null
发现sudo 可以使用
sudo -l # 查看特权命令
查看note.txt文件
原文是英文,翻译一下
查看刚刚的特权文件,发现引入一个webbrowser文件
查找webbrowser相关文件
查看webbrowser权限
写入shell
为什么要使用/bin/bash解释器
- 强大的 Shell:Bash 是一个功能强大的命令行 shell,它提供了广泛的命令和功能,允许用户以交互方式执行各种操作。
- 广泛的部署:bin/bash 在大多数 Linux 系统上都存在,并且是默认的命令行 shell
- Root 权限:如果攻击者能够以 root 用户的身份运行 /bin/bash,他们将拥有系统上最高级别的权限,可以执行几乎任何操作
在webbrowser中写入shell
执行shell
执行程序,切换到shell
查看root能运行的命令
发现pip二进制文件
二进制文件提权(pip)
linux二进制利用网站
传送门:https://gtfobins.github.io/
将代码复制粘贴过去就行
第二个flag
最后
由于水平所限,文中可能存在错误,若有师傅发现错误,欢迎留言或者私信交流讨论