1.复现上课的提权案例
2.总结Linux内核提权利用步骤(从内网信息收集到提权成功的思路)
在攻击 Linux 系统时,提权(privilege escalation)是一个关键的步骤,它允许攻击者从普通用户权限提升到更高的权限(如 root)。以下是一个从内网信息收集到提权成功的思路总结:
1. 内网信息收集
1.1 探测和扫描
- 网络扫描:使用工具如
nmap
扫描网络,识别活动的主机、开放的端口和服务。 - 服务识别:识别运行的服务和版本。可以使用
nmap
的服务扫描功能,或工具如banner grabbing
获取详细的服务信息。
1.2 收集系统信息
- 操作系统版本:获取操作系统和内核版本信息。这可以通过
uname -a
、cat /etc/os-release
等命令完成。 - 系统配置:检查系统配置文件和环境变量,获取有关系统设置的信息。
- 用户和组:识别系统中的用户和组。使用
cat /etc/passwd
和cat /etc/group
等命令获取用户和组信息。
1.3 识别潜在的漏洞
- 已知漏洞:检查系统和服务是否有已知的漏洞。可以使用工具如
searchsploit
、exploit-db
查找相关漏洞。 - 不安全配置:查找不安全的配置和开放的服务。例如,检查是否有不安全的
sudo
配置、可写的系统文件和目录等。
2. 查找提权漏洞
2.1 系统配置漏洞
sudo
权限:检查是否有不安全的sudo
配置。使用sudo -l
查看当前用户的sudo
权限。- 可写文件和目录:识别系统中的可写文件和目录。使用
find / -writable
查找所有可写的文件和目录。
2.2 利用已知漏洞
- 内核漏洞:查找和利用内核漏洞。如果系统运行的是有漏洞的内核版本,可以使用相应的漏洞利用代码。
- SUID/SGID 程序:检查系统中具有 SUID 或 SGID 标志的程序。这些程序以 root 权限运行,可能被利用进行提权。使用
find / -perm -4000
和find / -perm -2000
查找。
2.3 漏洞利用
- 利用漏洞:使用已知的漏洞利用工具或脚本来进行提权。例如,使用 Metasploit 或其他攻击工具中的内核漏洞利用模块。
- 自定义利用:编写自定义的利用代码,针对特定的系统或软件漏洞进行提权。
3. 提权操作
3.1 执行提权操作
- 利用漏洞执行提权:成功利用漏洞后,执行提权操作,获得 root 权限或更高权限。
- 验证权限:使用
whoami
、id
等命令验证当前权限是否已成功提升到 root。
3.2 提权后的操作
- 持久化:设置持久化机制,确保攻击者可以在系统重启后继续保持访问权限。例如,配置 cron 任务、添加用户或修改启动脚本。
- 清理痕迹:清理系统日志和其他痕迹,以隐藏攻击活动。注意不要清理所有日志,否则可能引起怀疑。
4. 预防和防御
4.1 系统更新
- 补丁管理:定期更新系统和应用程序,及时修补已知的安全漏洞。
4.2 配置管理
- 最小权限:遵循最小权限原则,只赋予用户必要的权限,避免不必要的 SUID/SGID 程序。
- 安全配置:加强系统和服务的安全配置,限制对敏感文件和目录的访问。
4.3 监控和审计
- 日志监控:实施日志记录和监控,及时检测异常活动和潜在的安全威胁。
- 安全审计:定期进行安全审计和渗透测试,发现并修复潜在的安全问题。
3.总结Linux常用命令
以下是一些常用的 Linux 命令,涵盖了文件和目录操作、系统监控、权限管理等方面:
文件和目录操作
-
ls
:列出目录内容。- 示例:
ls -l
(以长格式显示文件信息)。
- 示例:
-
cd
:更改当前目录。- 示例:
cd /home/user
(切换到/home/user
目录)。
- 示例:
-
pwd
:显示当前工作目录的完整路径。- 示例:
pwd
(输出当前目录的绝对路径)。
- 示例:
-
cp
:复制文件或目录。- 示例:
cp file1.txt /backup/
(将file1.txt
复制到/backup
目录)。
- 示例:
-
mv
:移动或重命名文件或目录。- 示例:
mv oldname.txt newname.txt
(重命名文件)。
- 示例:
-
rm
:删除文件或目录。- 示例:
rm file.txt
(删除文件)。
- 示例:
-
mkdir
:创建新目录。- 示例:
mkdir newdir
(创建名为newdir
的目录)。
- 示例:
-
rmdir
:删除空目录。- 示例:
rmdir olddir
(删除名为olddir
的空目录)。
- 示例:
-
find
:在目录树中查找文件。- 示例:
find /home -name "*.txt"
(查找/home
目录下所有.txt
文件)。
- 示例:
-
grep
:搜索文本文件中的内容。- 示例:
grep "search_term" file.txt
(在file.txt
中查找包含search_term
的行)。
- 示例:
-
cat
:查看文件内容或将多个文件连接在一起。- 示例:
cat file.txt
(显示file.txt
的内容)。
- 示例:
-
less
:逐页查看文件内容,支持向前和向后翻页。- 示例:
less file.txt
(分页查看file.txt
的内容)。
- 示例:
系统监控和管理
-
top
:实时显示系统进程和资源使用情况。- 示例:
top
(显示当前系统的进程信息和资源使用情况)。
- 示例:
-
ps
:显示当前运行的进程。- 示例:
ps aux
(显示所有用户的进程信息)。
- 示例:
-
df
:显示文件系统的磁盘空间使用情况。- 示例:
df -h
(以人类可读的格式显示磁盘空间使用情况)。
- 示例:
-
du
:显示目录或文件的磁盘使用情况。- 示例:
du -sh /home/user
(显示/home/user
目录的总大小)。
- 示例:
-
free
:显示系统的内存使用情况。- 示例:
free -m
(以 MB 为单位显示内存使用情况)。
- 示例:
-
uptime
:显示系统的运行时间和负载。- 示例:
uptime
(显示系统的启动时间、运行时间和负载)。
- 示例:
-
top
:实时监控系统资源和进程。- 示例:
top
(显示系统的实时进程和资源使用情况)。
- 示例:
权限管理
-
chmod
:更改文件或目录的权限。- 示例:
chmod 755 file.sh
(设置file.sh
的权限为 755)。
- 示例:
-
chown
:更改文件或目录的所有者。- 示例:
chown user:group file.txt
(将file.txt
的所有者更改为user
,组更改为group
)。
- 示例:
-
sudo
:以超级用户权限执行命令。- 示例:
sudo apt update
(以超级用户权限更新软件包列表)。
- 示例:
-
passwd
:更改用户密码。- 示例:
passwd user
(更改user
的密码)。
- 示例: