渗透测试具体详细检测方法
越来越多的网站及 APP 客户端注重安全,上线前需进行全面预渗透测试以找出安全漏洞。以下详细介绍渗透测试的具体流程与方法。
一、渗透流程
- 信息收集:获取目标资产信息。
- 漏洞验证/攻击:利用已知漏洞进行验证。
- 提权与权限维持:提升权限并建立持久化访问。
- 日志清理:清除入侵痕迹(注:实际工作中应遵循授权范围,仅用于安全加固参考)。
二、信息收集
1. 端口扫描
在授权情况下,使用工具获取开放端口及服务 Banner 信息。
- 工具:Nmap, Masscan, 自定义 Python 脚本。
- 命令示例:
nmap -sV -p- <target_ip>
2. 漏洞扫描
使用漏扫工具直接扫描目标,查看存活主机及漏洞情况。
- 工具:Nessus, AWVS, 北极熊扫描器。
- 注意:生产环境扫描需谨慎,避免造成服务中断。
三、漏洞攻击
1. Web 应用
常见漏洞包括注入、上传、代码执行、文件包含、XSS 等。
- 检测:使用 AWVS 扫描常见漏洞。
- 验证:查找对应 CVE 编号的 POC/EXP(如 ExploitDB, Seebug)。只关注高危远程代码执行和敏感信息泄露漏洞。
2. Web 中间件
(1) Tomcat
- 端口:8080
- 风险:默认口令爆破(tomcat/tomcat),管理后台部署 WAR 后门,反序列化漏洞。
- 防护:修改默认密码,关闭管理后台,升级版本。
(2) JBoss
- 端口:8080
- 风险:弱口令,WAR 包上传,反序列化,远程代码执行。
- 防护:限制访问 IP,禁用 JMX 接口。
(3) WebLogic
- 端口:7001, 7002
- 风险:弱口令(weblogic/Oracle),WAR 包上传,SSRF,反序列化漏洞(如 weblogic_uac)。
- 防护:打补丁,隐藏版本号,配置 WAF。
(4) WebSphere
- 端口:9080, 9090
- 风险:控制台弱口令(admin/admin),WAR 包上传,反序列化,任意文件读取。
- 防护:强密码策略,最小权限原则。
(5) Glassfish
- 风险:类似 WebLogic,存在反序列化和未授权访问风险。
3. Web 框架
(1) Struts2
- 高危漏洞:S2-046, S2-045, S2-037, S2-032 等。
- 防护:及时更新框架版本,过滤特殊字符。
(2) Spring 框架
- 高危漏洞:CVE-2018-1270, CVE-2018-1271, 反序列化漏洞。
- 防护:升级 Spring Boot/Cloud 版本,禁用不安全反序列化。
4. Web 服务器
- IIS:WebDAV PUT 方法漏洞,短文件名枚举,解析漏洞。
- Apache/Nginx:解析漏洞,目录遍历,CVE-2016-1247(软链接提权)。
- Lighttpd:目录遍历漏洞。
- 防护:关闭多余模块,配置正确的 MIME 类型,限制目录访问。
5. 常见运维系统
- GitLab:任意文件读取,Token 泄露,命令执行。
- Jenkins:远程代码执行,反序列化,未授权访问。
- Puppet/Ansible:反序列化,远程命令执行。
- Nagios/Zabbix/Cacti/Splunk:SQL 注入,命令注入,默认口令。
- 防护:定期审计插件,修改默认凭证,开启双因素认证。
6. 数据库/缓存/消息服务
- MySQL:弱口令,身份认证漏洞(CVE-2012-2122),PhpMyAdmin 万能密码绕过。
- MSSQL:弱口令,注入,xp_cmdshell 执行。
- Oracle:弱口令,TNS 监听漏洞。
- PostgreSQL:弱口令,缓冲区溢出(CVE-2014-2669)。
- MongoDB/Redis:未授权访问,配合 SSH Key 提权。
- 防护:禁止公网暴露,设置复杂密码,启用网络白名单。
7. 常见服务/协议
- FTP:匿名访问,嗅探明文传输,vsftpd 后门。
- NFS:未授权访问导出文件夹。
- Samba:远程代码执行,弱口令,Public 共享。
- SSH:暴力破解,OpenSSL 漏洞,粘滞键后门。
- Telnet:明文传输,易被嗅探。
- RDP (3389):暴力破解,MS12-020 漏洞。
- VNC:弱口令,DoS 攻击。
- SMTP/POP3/IMAP:钓鱼邮件,未授权访问。
- DNS:区域传输漏洞。
- SNMP:弱口令,信息泄露。
- DHCP:劫持攻击。
- 防护:禁用不必要服务,使用加密协议(SFTP, HTTPS),配置防火墙规则。
8. 云环境
- VMware/OpenStack:主机逃逸,权限绕过,信息泄露。
- Docker:容器逃逸,内核漏洞,资源耗尽 DoS,有毒镜像。
- 防护:最小权限运行容器,更新内核,扫描镜像漏洞。
9. 大数据
- Elasticsearch:未授权访问,远程命令执行,低版本 WebShell 植入。
- Hadoop/Hive/Sqoop/HBase/Spark:配置不当导致数据泄露,YARN 权限绕过。
- 防护:开启 Kerberos 认证,配置 X-Pack 安全功能,隔离集群网络。
四、提权与权限维持
1. 提权
- Windows:利用内核漏洞(如 PrintSpooler),配置错误(Unquoted Service Path)。
- Linux:SUID 文件,内核漏洞(Dirty Cow 等),Cron 任务。
2. 端口转发与代理
- 工具:LCX, Proxifier, Proxychains, SSH Tunnel, Metasploit。
- 用途:内网穿透,流量中转。
3. 文件传输
- 打包:RAR/7z 加密压缩,分卷处理。
- 命令示例:
rar.exe a -r -v100m new.rar d:\data\
7z.exe a -pPass -mhe d:\data\xx.7z
- 方式:端口转发直传,搭建 FTP/HTTP,云端中转。
4. 后门制作
- 工具:MSFVenom, SET。
- 形式:Office/PDF 漏洞利用,WebShell,反弹 Shell。
五、日志清理
1. Windows 日志
- 类型:Web 日志,操作日志(3389, IE),系统安全日志。
- 清理:使用 Event Viewer 或 LogonTracer 分析后删除,还原状态保持一致。
2. Linux 日志
- 历史命令:
unset HISTFILE,export HISTFILE=/dev/null。 - SSH 记录:删除
~/.ssh/known_hosts。 - 时间戳:
touch -r修改文件时间。 - 临时文件:清理
/tmp目录。 - 工具:Logtamper。
六、工具与其他
1. 内网渗透原则
- 使用适合的工具,不盲目收集。
- 确保工具安全,避免在真实环境运行未知工具。
- 优先使用 GitHub 开源工具。
2. 注意事项
- 检查内网监控,谨慎使用 ARP 欺骗。
- 避开用户工作时间,控制传输流量。<100M。
- 清除所有操作日志,登录前确认管理员状态。
3. 防御建议
- 定期进行漏洞扫描与渗透测试。
- 修复已知高危漏洞,更新系统补丁。
- 实施最小权限原则,加强身份认证。
- 部署 WAF、IDS/IPS 等安全设备。
- 建立应急响应机制,定期备份数据。
七、总结
渗透测试是保障网络安全的重要手段。通过系统化的信息收集、漏洞利用、权限维持及痕迹清理,可以全面评估系统安全性。但所有操作必须在合法授权范围内进行。企业应重视安全建设,结合自动化扫描与人工审计,将安全风险降至最低。

