当前位置:首页>Linux>Day6:Linux 权限深化 + Kali 环境部署,我把“提权与靶场”搭好了

Day6:Linux 权限深化 + Kali 环境部署,我把“提权与靶场”搭好了

  • 2026-10-11 07:45:44
Day6:Linux 权限深化 + Kali 环境部署,我把“提权与靶场”搭好了

📖 今日学习目录

  • SUID/SGID/sudo 权限机制与提权

  • Linux 开机自启方式(权限维持)

  • Kali 虚拟机部署与网络配置

  • DVWA 靶机环境安装

  • Kali 基础操作 + 故障排查

    ✅ 最终目标:Kali 正常联网、DVWA 靶机可用、环境配置完毕


    一、SUID、SGID、sudo、开机自启机制

    1️⃣ SUID(Set User ID)

    表现:-rws--x--x(属主的 x 变成 s)

    作用:执行时以文件所有者身份运行

    查找命令:

    bash

    find / -perm-4000-type f 2>/dev/null

    风险:如果 SUID 文件属主是 root,可能被利用提权


    🔥 常见问题:哪些 SUID 文件是危险的?

    程序
    风险
    利用方式
    find
    高
    find / -exec /bin/sh \;
    vim
    高
    在 vim 中执行 :!/bin/bash
    pkexec
    高
    CVE-2021-4034(PwnKit)
    sudo
    中
    配置不当可提权

    2️⃣ SGID

    表现:-rwxr-sr-x(属组的 x 变成 s)

    作用:

    查找命令:

    bash

    find / -perm-2000-type f 2>/dev/null

    3️⃣ sudo 权限

    bash

    # 查看当前用户的 sudo 权限sudo-l

    ⚠️ 提权重点:


    4️⃣ 开机自启机制(权限维持)

    方式
    路径/命令
    权限要求
    渗透价值
    systemd 服务
    /etc/systemd/system/
    root
    🔥 高
    crontab 计划任务
    crontab -e
    (用户级)/etc/crontab(系统级)
    普通用户/root
    🔥 高
    rc.local
    /etc/rc.local
    root
    中
    Shell 配置文件
    ~/.bashrc
    、~/.zshrc
    普通用户
    🔥 高
    Desktop Entry
    ~/.config/autostart/
    普通用户
    中

    创建测试自启(普通用户权限):

    bash

    # 在 .zshrc 中添加测试命令echo"echo '开机自启测试' >> /tmp/startup_test.log">> ~/.zshrc# 新开终端后验证cat /tmp/startup_test.log

    检测命令:

    bash

    # 检查 systemd 服务systemctl list-units --type=service --state=running# 检查计划任务crontab-lcat /etc/crontab# 检查 Shell 配置文件grep-E"curl|wget|nc|bash|sh|/tmp" ~/.bashrc ~/.zshrc

    三、部署 Kali 虚拟机

    准备工作

    项目
    要求
    宿主机
    Windows 10/11
    虚拟化软件
    VMware Workstation Pro/Player
    Kali 镜像
    https://www.kali.org/get-kali/

    网络配置

    打开虚拟机设置 → 网络适配器:

    模式
    适用场景
    NAT
    虚拟机共享主机 IP,上网最简单(入门推荐)
    桥接
    虚拟机和主机在同一局域网,有独立 IP
    仅主机
    只能和主机通信,不能上网

    配置静态 IP(可选)

    bash

    # 编辑网络配置sudonano /etc/network/interfaces

    添加(假设网卡是 eth0):

    text

    auto eth0iface eth0 inet staticaddress 192.168.31.100    # 改成你物理机同网段的 IPnetmask 255.255.255.0gateway 192.168.31.1dns-nameservers 8.8.8.8

    重启网络:

    bash

    sudo systemctl restart networking

    验证网络

    bash

    ping-c48.8.8.8ping-c4 baidu.com

    四、熟悉 Kali 基础操作

    Kali 的基本特点

    项目
    说明
    基础系统
    Debian Linux
    默认 Shell
    zsh
    桌面环境
    Xfce(轻量级)
    预装工具
    超过 600 个安全工具

    必须掌握的终端基础命令

    bash

    ls-la# 列出当前目录cd /etc         # 切换目录pwd# 显示当前路径cat /etc/passwd # 查看文件chmod755file# 修改权限sudo-l# 查看 sudo 权限ps aux          # 查看进程netstat-anp# 查看端口(需 root)ss -tuln# 查看监听端口sudoapt update # 更新软件源sudoaptinstall 软件名 -y# 安装软件

    五、部署 DVWA 靶机环境

    DVWA(Damn Vulnerable Web Application)是用于练习 Web 漏洞测试的靶场。


    完整安装步骤

    第1步:清理旧环境(全新安装)

    bash

    sudo systemctl stop apache2sudo systemctl stop mariadbsudorm-rf /var/www/html/DVWAsudo mysql -u root -e"DROP DATABASE IF EXISTS dvwa;"2>/dev/nullsudo mysql -u root -e"DROP USER IF EXISTS 'dvwa'@'localhost';"2>/dev/null

    第2步:下载 DVWA

    bash

    cd /var/www/htmlsudogit clone https://github.com/digininja/DVWA.git# 或使用 Gitee 镜像:sudo git clone https://gitee.com/mirrors/DVWA.git

    第3步:设置目录权限

    bash

    sudochown-R www-data:www-data /var/www/html/DVWAsudochmod-R755 /var/www/html/DVWAsudochmod777 /var/www/html/DVWA/hackable/uploads/

    第4步:创建配置文件

    bash

    sudocp /var/www/html/DVWA/config/config.inc.php.dist /var/www/html/DVWA/config/config.inc.phpsudonano /var/www/html/DVWA/config/config.inc.php

    将文件内容修改为(使用环境变量):

    php

    <?php# 如果使用环境变量,则优先取环境变量,否则使用默认值$_DVWA=array();$_DVWA['db_server']=getenv('DVWA_DB_HOST')?:'127.0.0.1';$_DVWA['db_database']=getenv('DVWA_DB_NAME')?:'dvwa';$_DVWA['db_user']=getenv('DVWA_DB_USER')?:'dvwa';$_DVWA['db_password']=getenv('DVWA_DB_PASS')?:'p@ssw0rd';$_DVWA['db_port']='3306';$_DVWA['default_security_level']='low';# 允许远程访问(可选,默认 false)$_DVWA['disable_remote_access']=false;?>

    设置环境变量(可选):

    bash

    # 临时设置(当前会话生效)exportDVWA_DB_HOST="127.0.0.1"exportDVWA_DB_NAME="dvwa"exportDVWA_DB_USER="dvwa"exportDVWA_DB_PASS="p@ssw0rd"# 永久设置(写入 /etc/environment 或 /etc/profile)echo'export DVWA_DB_PASS="p@ssw0rd"'|sudotee-a /etc/environment

    第5步:启动并配置数据库

    bash

    sudo systemctl start mariadbsudo systemctl enable mariadb

    登录 MySQL:

    bash

    sudo mysql -u root

    执行:

    sql

    CREATEDATABASEIFNOTEXISTS dvwa;CREATEUSERIFNOTEXISTS'dvwa'@'localhost' IDENTIFIED BY'p@ssw0rd';GRANTALLPRIVILEGESON dvwa.*TO'dvwa'@'localhost';FLUSH PRIVILEGES;EXIT;

    第6步:修改 PHP 配置(可选)

    bash

    php_ini=$(php -i|grep"Loaded Configuration File"|awk'{print $4}')sudosed-i's/allow_url_include = Off/allow_url_include = On/g'$php_inisudo systemctl restart apache2

    第7步:初始化 DVWA

    第8步:登录 DVWA

    项目
    值
    用户名
    admin
    密码
    password

    第9步:设置安全级别


    六、故障排查汇总

    问题
    原因
    解决方法
    500 错误
    PHP 语法错误
    php -l config.inc.php
    ,重写配置文件
    Access denied
    环境变量干扰
    检查环境变量是否正确设置
    表不存在
    SQL 未导入
    手动创建表或重跑 dvwa.sql
    404 错误
    目录名拼错
    mv DWVA DVWA
    配置文件缺失
    config.inc.php 不存在
    从 .dist 复制并修改
    Apache 无法访问
    服务未启动
    sudo systemctl start apache2
    Firefox 无法连接
    代理配置错误
    设置 No proxy
    git clone 失败
    网络问题
    用 Gitee 镜像或 HTTP 协议

    七、记忆口诀

    SUID 用 s 表示,属主执行提权易sudo -l 查权限,NOPASSWD 是突破口开机自启藏后门,bashrc 里加命令桥接 NAT 仅主机,NAT 上网桥接通DVWA 练漏洞,admin password 进


    ✅ 今日复盘

    学到的核心概念:

    明天计划:


    📌 这是「安全底稿」的第 6 篇记录一步一步,从零到一。


    扫码关注 · 一起从零学渗透每天一篇学习笔记,从入门到实战。


    如果这篇对你有帮助,欢迎分享给同样在学安全的朋友。

    评论区聊聊:你部署 DVWA 时遇到的最坑的问题是什么?

    • DVWA 漏洞实战(SQL注入、XSS等)

    • Burp Suite 抓包配置

    • 第一次手动漏洞测试

    • SUID/SGID 权限机制与提权风险

    • sudo 权限查看与利用思路

    • Linux 开机自启的多种方式(权限维持)

    • Kali 虚拟机网络配置(NAT/桥接)

    • DVWA 靶场完整安装流程(环境变量配置)

    • 登录后,左侧菜单 → DVWA Security → 选择 low → Submit

    • 访问 http://localhost/DVWA/login.php

    • 浏览器访问 http://localhost/DVWA/setup.php

    • 点击 Create/Reset Database

    • NOPASSWD:不需要密码,直接提权

    • (ALL) ALL:可以切换到任何用户执行任何命令

    • 如果看到 (root) /usr/bin/vim,可以在 vim 中提权

    • 文件上:执行时以文件所属组身份运行

    • 目录上:新建文件继承目录的组

最新文章

随机文章