网络安全 --- 基于网络安全的 Linux 最敏感目录及文件利用指南

目录

[基于网络安全的 Linux 最敏感目录及文件利用指南](#基于网络安全的 Linux 最敏感目录及文件利用指南)

[Linux 中最敏感的目录及文件](#Linux 中最敏感的目录及文件)

[1. /etc](#1. /etc)

[2. /root](#2. /root)

[3. /var/log](#3. /var/log)

[4. /proc](#4. /proc)

[5. /tmp](#5. /tmp)

[6. /home](#6. /home)

[7. /boot](#7. /boot)

[8. /dev](#8. /dev)

如何利用这些敏感文件

你可能没想到的知识点

总结



Linux 中最敏感的目录及文件
1. /etc
  • 存放内容:系统配置文件,包括用户账户、密码哈希、服务配置等。

  • 敏感文件

    • /etc/passwd:存储所有用户账户信息,包括用户名、UID、GID、家目录等。

    • /etc/shadow:存储用户密码的哈希值,仅 root 可读。

    • /etc/sudoers:定义哪些用户可以使用 sudo 执行特权命令。

    • /etc/hosts:本地主机名与 IP 地址的映射,用于解析域名。

    • /etc/ssh/sshd_config:SSH 服务的配置文件。

  • 利用方式

    • 读取 /etc/passwd:获取用户列表,结合弱密码尝试爆破。

    • 读取 /etc/shadow(若有权限):使用工具(如 John the Ripper 或 Hashcat)破解密码哈希。

    • 修改 /etc/sudoers:为普通用户添加 sudo 权限,实现权限提升。

    • 修改 /etc/hosts:添加虚假域名映射,实施 DNS 欺骗或流量重定向。

    • 修改 /etc/ssh/sshd_config:启用 root 登录或更改端口,绕过安全策略。

2. /root
  • 存放内容:root 用户的家目录,包含 root 的个人文件和配置。

  • 敏感文件

    • /root/.bash_history:root 用户的历史命令记录。

    • /root/.ssh/ :包含 SSH 密钥(如 authorized_keys 和私钥)。

  • 利用方式

    • 读取 /root/.bash_history:查找 root 执行过的敏感命令,获取关键信息。

    • 读取 /root/.ssh/authorized_keys:获取公钥,尝试匹配私钥登录。

    • 写入 /root/.ssh/authorized_keys:添加攻击者公钥,实现无密码远程登录。

3. /var/log
  • 存放内容:系统和应用的日志文件,记录系统事件和用户活动。

  • 敏感文件

    • /var/log/auth.log:记录认证事件,如登录尝试。

    • /var/log/syslog:记录系统运行的详细信息。

    • /var/log/apache2/access.log:Web 服务器访问日志(若安装 Apache)。

  • 利用方式

    • 读取 /var/log/auth.log:分析登录失败记录,猜测弱密码。

    • 读取 /var/log/syslog:查找系统漏洞或异常事件。

    • 修改或删除日志:清除攻击痕迹,规避检测。

4. /proc
  • 存放内容:虚拟文件系统,提供运行时进程和硬件信息。

  • 敏感文件

    • /proc/[pid]/cmdline:进程的命令行参数。

    • /proc/[pid]/environ:进程的环境变量。

    • /proc/[pid]/fd/:进程打开的文件描述符。

  • 利用方式

    • 读取 /proc/[pid]/cmdline:查看进程启动参数,寻找敏感数据。

    • 读取 /proc/[pid]/environ:提取环境变量中的敏感信息(如 API 密钥)。

    • 读取 /proc/[pid]/fd/:访问进程打开的文件,可能包含敏感内容。

5. /tmp
  • 存放内容:临时文件目录,所有用户通常可写。

  • 敏感文件:用户或系统生成的临时文件。

  • 利用方式

    • 写入恶意脚本 :在 /tmp 创建脚本,诱导其他用户或服务执行。

    • 利用不安全临时文件:通过竞争条件攻击,覆盖或篡改文件。

6. /home
  • 存放内容:普通用户的家目录,包含个人文件和配置。

  • 敏感文件

    • /home/[user]/.bash_history:用户的历史命令。

    • /home/[user]/.ssh/:用户的 SSH 密钥和配置文件。

  • 利用方式

    • 读取 .bash_history:获取用户执行过的命令,寻找敏感信息。

    • 读取 .ssh/authorized_keys:尝试使用私钥登录。

    • 写入 .ssh/authorized_keys:添加攻击者公钥,实现无密码登录。

7. /boot
  • 存放内容:系统启动相关文件,包括内核和引导配置。

  • 敏感文件

    • /boot/grub/grub.cfg:GRUB 引导加载程序的配置文件。
  • 利用方式

    • 修改 /boot/grub/grub.cfg:更改启动参数,加载恶意内核或 initrd。
8. /dev
  • 存放内容:设备文件,表示硬件和虚拟设备。

  • 敏感文件

    • /dev/mem:物理内存的设备文件。

    • /dev/kmem:内核虚拟内存的设备文件。

  • 利用方式

    • 读取 /dev/mem:直接访问物理内存,绕过权限限制。

    • 写入 /dev/mem:修改内存数据,执行任意代码。


如何利用这些敏感文件
  1. 密码破解

    • 获取 /etc/shadow 后,使用 John the Ripper 或 Hashcat 破解密码。

    • 分析 /var/log/auth.log 中的登录失败记录,尝试爆破弱密码。

  2. 权限提升

    • 修改 /etc/sudoers,为普通用户赋予特权。

    • 利用 SUID/SGID 文件,以文件所有者权限执行命令。

  3. 后门植入

    • /root/.ssh/authorized_keys 或用户家目录的 .ssh/authorized_keys 添加攻击者公钥。

    • 修改服务配置文件(如 /etc/ssh/sshd_config),启动时执行恶意代码。

  4. 信息收集

    • 读取 .bash_history,获取用户操作历史。

    • /proc/[pid]/environ 提取环境变量中的敏感数据。

  5. 日志篡改

    • 修改或删除 /var/log 中的日志,隐藏攻击行为。
  6. 竞争条件攻击

    • /tmp 创建符号链接,指向敏感文件,诱导其他进程写入。

你可能没想到的知识点
  1. /proc/self

    • 一个符号链接,指向当前进程的 /proc/[pid] 目录。

    • 可通过 /proc/self/fd/ 访问当前进程打开的文件句柄。

  2. /etc/passwd 和 /etc/shadow 的权限差异

    • /etc/passwd 是世界可读的,任何用户都能看到用户列表。

    • /etc/shadow 仅 root 可读,攻击者需提升权限才能访问。

  3. /dev/shm

    • 基于内存的文件系统,用于进程间通信。

    • 攻击者可在此创建恶意文件,诱导其他进程加载。

  4. /sys

    • 包含硬件和内核模块信息。

    • 可用于收集硬件细节或修改内核参数。

  5. 环境变量中的敏感信息

    • 环境变量可能包含 API 密钥或数据库密码。

    • 通过 /proc/[pid]/environ 可提取这些信息。

  6. SUID/SGID 位

    • 允许普通用户以文件所有者权限执行程序。

    • 攻击者可利用误配置的 SUID 文件提升权限。

  7. 符号链接攻击

    • 创建指向敏感文件的符号链接,诱导其他进程误操作。
  8. 内核模块利用

    • 加载恶意内核模块,直接在内核态执行代码。

总结

Linux 系统中的敏感目录(如 /etc/root/var/log 等)和文件是网络安全攻防的焦点。攻击者可能利用这些资源进行密码破解、权限提升、后门植入等操作,而防御者则需通过权限控制、日志监控和定期审计来保护系统。掌握这些目录和文件的利用方式,不仅能提升渗透测试能力,也能增强系统防护水平。

相关推荐
AORO_BEIDOU31 分钟前
遨游科普:三防平板是哪三防?有哪些应用场景?
5g·安全·智能手机·电脑·信息与通信
年轮不改33 分钟前
Ubuntu 配置 ffmpeg 开发环境
linux·ubuntu·ffmpeg
无名之逆34 分钟前
Hyperlane:轻量、高效、安全的 Rust Web 框架新选择
开发语言·前端·后端·安全·rust·github·ssl
编程小小白白1 小时前
Jetson Orin NX jupyter lab的安装和使用
linux·ubuntu·jupyter
乙龙1 小时前
在麒麟系统(基于Ubuntu或Debuntu)的离线环境中创建本地APT仓库
linux·运维·ubuntu·kylin
舰长1151 小时前
Ubuntu docker安装milvusdb
linux·运维·服务器
niuTaylor2 小时前
Linux驱动开发实战之PCIE驱动(一)
linux·运维·驱动开发
s_little_monster2 小时前
【Linux】深入理解进程和文件及内存管理
linux·运维·服务器·经验分享·笔记·学习·学习方法
PM简读馆2 小时前
Linux C++ 编程死锁详解
linux·开发语言·c++
我们的五年2 小时前
【Json—RPC框架】:宏定义不受命名空间限制,续行符的错误使用造成的bug
linux·c++