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 | | |
pkexec | | |
sudo | | |
2️⃣ SGID
表现:-rwxr-sr-x(属组的 x 变成 s)
作用:
查找命令:
bash
find / -perm-2000-type f 2>/dev/null
3️⃣ sudo 权限
bash
# 查看当前用户的 sudo 权限sudo-l
⚠️ 提权重点:
4️⃣ 开机自启机制(权限维持)
| | | |
|---|
| /etc/systemd/system/ | | |
| crontab -e | | |
| /etc/rc.local | | |
| ~/.bashrc | | |
| ~/.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 虚拟机
准备工作
| |
|---|
| |
| VMware Workstation Pro/Player |
| https://www.kali.org/get-kali/ |
网络配置
打开虚拟机设置 → 网络适配器:
配置静态 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 的基本特点
必须掌握的终端基础命令
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
第9步:设置安全级别
六、故障排查汇总
| | |
|---|
| | php -l config.inc.php |
| | |
| | |
| | mv DWVA DVWA |
| | |
| | sudo systemctl start apache2 |
| | |
| | |
七、记忆口诀
SUID 用 s 表示,属主执行提权易sudo -l 查权限,NOPASSWD 是突破口开机自启藏后门,bashrc 里加命令桥接 NAT 仅主机,NAT 上网桥接通DVWA 练漏洞,admin password 进
✅ 今日复盘
学到的核心概念:
明天计划:
📌 这是「安全底稿」的第 6 篇记录一步一步,从零到一。

扫码关注 · 一起从零学渗透每天一篇学习笔记,从入门到实战。
如果这篇对你有帮助,欢迎分享给同样在学安全的朋友。
评论区聊聊:你部署 DVWA 时遇到的最坑的问题是什么?