目录
一、Linux常用命令总结
1. 查看当前环境和权限
首先,需要了解当前用户的环境和权限。
- whoami:显示当前用户的用户名。
whoami
- id:显示当前用户的 UID 和 GID 以及所属的用户组。
id
- sudo -l:显示当前用户可以执行的 sudo 命令。
sudo -l
2. 检查系统信息
了解系统信息可以帮助找到潜在的提权机会。
- uname -a:显示系统内核版本和其他信息。
uname -a
- cat /etc/issue:显示系统发行版信息。
cat /etc/issue
- ls -la /etc/sudoers:查看 sudoers 文件权限。
ls -la /etc/sudoers
- find / -perm -4000 -type f 2>/dev/null:查找具有 SUID 权限的文件。
find / -perm -4000 -type f 2>/dev/null
- find / -perm -2000 -type f 2>/dev/null:查找具有 SGID 权限的文件。
find / -perm -2000 -type f 2>/dev/null
- dpkg -l:列出已安装的软件包。
dpkg -l
3. 利用 SUID 和 SGID 文件
SUID 和 SGID 文件允许用户以文件所有者的权限执行命令,这可以成为提权的机会。
-
使用 SUID 文件:
./path/to/suid_file
-
使用 SGID 文件:
./path/to/sgid_file
4. 利用软件漏洞
某些软件可能存在已知的漏洞,可以利用这些漏洞进行提权。
- 检查已知漏洞:
- 使用
searchsploit
查找已知漏洞:searchsploit <package_name>
- 使用
exploitdb
查找漏洞:exploitdb search <package_name>
- 使用
5. sudo 权限
- 查看 sudoers 文件:
cat /etc/sudoers
- 尝试执行命令:
sudo -l sudo /bin/bash
6. 环境变量修改
- 修改 PATH 环境变量:
export PATH=$PATH:/path/to/malicious/bin
7. 利用 cron 作业
- 查看 crontab 文件:
crontab -l
- 编辑 crontab 文件:
crontab -e
8. 修改文件权限和所有权
- 修改文件权限:
chmod 777 /path/to/file
- 修改文件所有权:
chown user:group /path/to/file
9. setcap
setcap
可以给文件设置 CAPABILITY 权限:
- 查看文件的 CAPABILITY 权限:
getcap /path/to/file
- 设置 CAPABILITY 权限:
setcap cap_sys_admin+ep /path/to/file
10. 内核模块
- 查看已加载的内核模块:
lsmod
- 加载内核模块:
insmod /path/to/module.ko
- 卸载内核模块:
rmmod module_name
二、Linux内核提权利用步骤
Linux 内核提权是指通过利用 Linux 内核中的漏洞来获得更高的权限,通常是从普通用户权限提升到 root 权限。这种操作通常涉及对内核模块或驱动程序的利用,以绕过内核的安全限制。以下是在 Linux 系统中进行内核提权的一般步骤:
1. 确定目标系统的内核版本
首先需要确定目标系统的内核版本,因为不同的内核版本可能有不同的漏洞。可以使用以下命令来查看内核版本:
uname -a
2. 搜索已知的内核漏洞
根据所确定的内核版本,搜索相关的已知漏洞。可以使用以下工具来查找漏洞信息:
-
Exploit Database (ExploitDB):一个大型的漏洞数据库,包含许多已知的内核漏洞。
exploitdb search "kernel version"
-
Google 搜索:使用 Google 搜索引擎查找特定内核版本的漏洞报告。
google "linux kernel <version> exploit"
-
CVE 数据库:查找与特定内核版本相关的 CVE(Common Vulnerabilities and Exposures)编号。
cve-search search "kernel version"
3. 分析漏洞细节
仔细阅读漏洞的详细描述,了解漏洞的工作原理和利用条件。
4. 准备利用工具
根据漏洞的特性准备相应的利用工具或脚本。
5. 测试漏洞利用
在安全的测试环境中尝试利用漏洞,确保漏洞利用代码能够成功运行。这可能涉及:
-
加载内核模块:使用
insmod
命令加载内核模块。insmod /path/to/kernel_module.ko
-
执行利用脚本:运行脚本来触发漏洞并尝试提升权限。
./exploit_script.sh
6. 验证提权结果
如果利用成功,可以验证是否已经获得了 root 权限。可以使用以下命令来确认:
id
whoami
如果输出显示当前用户为 root
,则表明提权成功。
7. 清理痕迹
为了不留下明显的攻击痕迹,可以执行一些清理工作,如卸载内核模块、删除临时文件等。
rmmod kernel_module
rm /path/to/temporary_files
三、提权案例的复现
首先,打开Kali虚拟机,用指令“ifconfig”查询IP地址:
根据上述IP,利用nmap对IP进行扫描,用指令“nmap 192.168.117.0/24”进行网段扫描:
发现可疑端口134,进入“192.168.117.134”后的界面如下:
随后,利用指令“nmap -T4 -p 1-65535 192.168.117.134”对可疑IP进行深度扫描:
发现1898端口仍然是打开的,访问1898端口:
随后,用“msfconsole”命令启动msf,并用“search drupal”搜索“drupal”关键字:
然后,用“show options”查看需要配置的参数:
设置好IP和端口后,用指令“run”入侵目标:
最后,运行上传的脚本文件,即可找到漏洞drupal:
根据提示信息,找到:GitHub - nomi-sec/PoC-in-GitHub: 📡 PoC auto collect from GitHub. ⚠️ Be careful Malware.
下载对应的EXP并上传到Kali:
然后,利用代码“upload /root/.../文件名”下载辅助提权工具,并把它上传到靶机中,以增加可执行权限:
执行脚本提权,即可得到密码: