题目描述
难度:middle 描述: 尝试获取两个标志!扎根机器并证明您对基础知识的理解!这是一个面向初学者的虚拟机。获取这两个标志需要一些 Linux 和权限提升方法的基本知识。
基本信息
| 🚀 | 本地机器信息 | 目标机器信息 |
|---|---|---|
| IP | 10.17.5.121 | 10.10.226.88 |
| OS | kali | linux |
信息搜集
端口扫描
┌──(leo㉿HACK)-[~]
└─$ naabu -host 10.10.226.88
__
___ ___ ___ _/ / __ __
/ _ \/ _ \/ _ \/ _ \/ // /
/_//_/\_,_/\_,_/_.__/\_,_/
projectdiscovery.io
[INF] Current naabu version 2.3.1 (outdated)
[INF] Running CONNECT scan with non root privileges
10.10.226.88:445
10.10.226.88:21
10.10.226.88:139
10.10.226.88:22
[INF] Found 4 ports on host 10.10.226.88 (10.10.226.88)
指纹扫描
nmap -sCV -p 21,22,139,445 10.10.226.88 --min-rate 10000
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 2.0.8 or later
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_drwxrwxrwx 2 111 113 4096 Jun 04 2020 scripts [NSE: writeable]
| ftp-syst:
| STAT:
| FTP server status:
| Connected to ::ffff:10.17.5.121
| Logged in as ftp
| TYPE: ASCII
| No session bandwidth limit
| Session timeout in seconds is 300
| Control connection is plain text
| Data connections will be plain text
| At session startup, client count was 3
| vsFTPd 3.0.3 - secure, fast, stable
|_End of status
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 8b:ca:21:62:1c:2b:23:fa:6b:c6:1f:a8:13:fe:1c:68 (RSA)
| 256 95:89:a4:12:e2:e6:ab:90:5d:45:19:ff:41:5f:74:ce (ECDSA)
|_ 256 e1:2a:96:a4:ea:8f:68:8f:cc:74:b8:f0:28:72:70:cd (ED25519)
139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open netbios-ssn Samba smbd 4.7.6-Ubuntu (workgroup: WORKGROUP)
Service Info: Host: ANONYMOUS; OS: Linux; CPE: cpe:/o:linux:linux_kernel
Host script results:
|_nbstat: NetBIOS name: ANONYMOUS, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown)
| smb-os-discovery:
| OS: Windows 6.1 (Samba 4.7.6-Ubuntu)
| Computer name: anonymous
| NetBIOS computer name: ANONYMOUS\x00
| Domain name: \x00
| FQDN: anonymous
|_ System time: 2024-11-20T14:30:58+00:00
| smb-security-mode:
| account_used: guest
| authentication_level: user
| challenge_response: supported
|_ message_signing: disabled (dangerous, but default)
| smb2-security-mode:
| 2.02:
|_ Message signing enabled but not required
| smb2-time:
| date: 2024-11-20T14:30:58
|_ start_date: N/A
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 22.17 seconds
扫描总结:
- 目标主机:
- IP 地址:
10.10.226.88 - 主机状态:在线,延迟 0.27s
- 操作系统:Linux,使用 Samba 服务模拟 Windows 信息(版本 Samba 4.7.6)
- IP 地址:
- 端口信息:
-
21/tcp (FTP):
- 服务:vsftpd 3.0.3
- 特性:
- 支持匿名登录(Anonymous FTP)
- 存在一个可写目录:
/scripts - 没有会话带宽限制
- 安全性:匿名登录与可写目录可能存在敏感信息或恶意文件上传的风险。
-
22/tcp (SSH):
- 服务:OpenSSH 7.6p1 (Ubuntu)
- 支持协议:SSH 2.0
- Hostkey 类型:RSA、ECDSA、ED25519
- 安全性:未显示明显漏洞,但可尝试弱口令或暴力破解测试。
-
139/tcp 和 445/tcp (SMB):
- 服务:Samba 文件共享服务
- 版本:Samba 4.7.6-Ubuntu
- 特性:
- NetBIOS 名称:
ANONYMOUS - 工作组:
WORKGROUP - 认证模式:用户级别认证,但消息签名被禁用(不安全)
- 系统时间:
2024-11-20T14:30:58
- NetBIOS 名称:
-
- 潜在风险:
- FTP 匿名登录和可写目录可能被用于上传恶意文件。
- SMB 消息签名被禁用,可能受到中间人攻击。
- 可以进一步枚举 SMB 服务,查看是否存在敏感共享目录。
- 端口 22 可以尝试基于暴力破解或默认凭据的测试。
下一步建议:
-
针对 FTP:
- 登录匿名 FTP,检查可用文件或上传测试文件验证是否支持写入。
- 检查
/scripts目录下是否存在敏感文件。
-
针对 SMB:
- 使用
smbclient或其他工具进一步枚举共享资源。 - 确认是否有未授权访问的目录或敏感数据。
- 使用
-
针对 SSH:
- 尝试弱口令暴力破解或利用已知漏洞进行测试。
-
综合测试:
- 针对 SMB 和 FTP 的未授权访问,重点检查是否泄露敏感信息或配置文件。
┌──(leo㉿HACK)-[~]
└─$ cat clean.sh
#!/bin/bash
tmp_files=0
echo $tmp_files
if [ $tmp_files=0 ]
then
echo "Running cleanup script: nothing to delete" >> /var/ftp/scripts/removed_files.log
else
for LINE in $tmp_files; do
rm -rf /tmp/$LINE && echo "$(date) | Removed file /tmp/$LINE" >> /var/ftp/scripts/removed_files.log;done
fi
思路: 上传恶意的clean.sh 替换这个 导致反弹shell
路径枚举
漏洞发现
漏洞利用
webshell
usershell

rootshell
env具有suid 权限可以进行提权
/usr/bin/env /bin/sh -p
知识点回顾
使用 find 查找所有系统 SUID 程序
可以更精确地查看系统中常见的目录中具有 SUID 权限的程序,例如:
find /bin /sbin /usr/bin /usr/sbin -type f -perm -4000 2>/dev/null
这些目录通常包含系统的可执行文件,通过此命令你可以检查这些目录中是否存在具有 SUID 权限的文件。
使用 which 或 whereis 确定程序的位置
如果你怀疑某个程序具有 SUID 权限,可以使用 which 或 whereis 命令来查找该程序的路径,然后使用 ls -l 查看其权限:
which <program_name>
which passwd
然后查看 passwd 程序的权限:
ls -l $(which passwd)
示例输出
如果一个文件具有 SUID 权限,你将看到类似以下的输出:
-rwsr-xr-x 1 root root 12345 Apr 1 2024 /usr/bin/passwd
在这个例子中,/usr/bin/passwd 是一个 SUID 程序,意味着即使普通用户执行它,它也会以 root 权限运行。
总结
通过使用 find 命令查找具有 SUID 权限的程序,或者直接查看文件的权限,你可以识别出可能带来安全风险的程序。确保定期检查系统中具有 SUID 权限的程序,并限制它们的使用权限,尤其是对于不再需要的 SUID 程序。