信息收集-主机服务器&端口扫描
本文最后更新于122 天前,其中的信息可能已经过时,如有错误请发送邮件到184874483@qq.com

🔍 端口扫描与服务识别深度补充

一、网络端口服务分类详解

1. Web服务端口

端口号协议服务/应用用途说明安全关注点
80TCPHTTP标准Web服务SQL注入、XSS、目录遍历
443TCPHTTPS加密Web服务SSL/TLS配置、证书验证
8080TCPHTTP代理/备用替代Web端口常被用于管理后台
8443TCPHTTPS备用加密备用端口内部管理接口
8000-8010TCP开发服务器Flask/Django/Node.js开发端口调试模式信息泄露
9000TCPPHP-FPMPHP进程管理器未授权访问、RCE
9200/9300TCPElasticsearch搜索服务未授权访问、数据泄露

2. 数据库端口

端口号协议数据库类型默认配置常见漏洞
3306TCPMySQL/MariaDB根用户认证弱口令、UDF提权
5432TCPPostgreSQL信任认证CVE-2019-9193
1433TCPMS SQL ServerWindows认证xp_cmdshell滥用
1521TCPOracleTNS监听TNS Poison攻击
27017TCPMongoDB无认证默认未授权访问
6379TCPRedis无密码默认未授权访问、主从复制RCE
5000TCPHBaseREST API信息泄露
7001-7002TCPOracle WebLogic控制台反序列化漏洞

3. 中间件/应用服务器端口

端口号协议中间件功能风险点
8080TCPTomcatJava Web容器管理后台弱口令
7001TCPWebLogicJava EE服务器反序列化漏洞
8161TCPActiveMQ消息队列弱口令、文件上传
5672TCPRabbitMQ消息代理默认凭据
15672TCPRabbitMQ管理Web管理界面未授权访问
8161TCPActiveMQ消息队列弱口令
61616TCPActiveMQOpenWire协议反序列化
2375/2376TCPDocker API容器引擎未授权访问
9000TCPPortainer容器管理弱口令

4. 文件与存储服务端口

端口号协议服务用途安全风险
21TCPFTP文件传输明文传输、暴力破解
22TCPSFTPSSH文件传输密钥泄露
445TCPSMB/CIFSWindows文件共享永恒之蓝
2049TCP/UDPNFS网络文件系统未授权挂载
873TCPRsync文件同步未授权访问
139TCPNetBIOS网络基本输入输出信息枚举

5. 邮件服务端口

端口号协议服务功能安全问题
25TCPSMTP邮件发送开放中继、垃圾邮件
110TCPPOP3邮件接收明文认证
143TCPIMAP邮件访问明文传输
465TCPSMTPS加密SMTP证书配置错误
993TCPIMAPS加密IMAP中间人攻击
995TCPPOP3S加密POP3配置错误

6. 远程管理与监控端口

端口号协议服务用途攻击向量
22TCPSSH安全外壳暴力破解、密钥泄露
23TCPTelnet远程登录明文传输
3389TCPRDP远程桌面BlueKeep、暴力破解
5900+TCPVNC虚拟网络计算弱口令
5985/5986TCPWinRMWindows远程管理凭证窃取

7. 特殊服务与协议端口

端口号协议服务作用安全隐患
53TCP/UDPDNS域名解析DNS劫持、DDoS
161/162UDPSNMP简单网络管理协议默认社区字符串
389TCPLDAP轻量目录访问信息泄露
636TCPLDAPS加密LDAP证书问题
514UDPSyslog系统日志日志伪造

二、端口扫描技术进阶

1. 扫描方法对比

扫描类型命令示例特点隐蔽性
TCP全连接nc -zv 目标 端口易被日志记录
SYN半开nmap -sS 目标不建立完整连接
FIN扫描nmap -sF 目标绕过简单防火墙中高
NULL扫描nmap -sN 目标所有标志位为0中高
XMAS扫描nmap -sX 目标FIN/URG/PSH置位中高
UDP扫描nmap -sU 目标扫描UDP服务耗时较长

2. 服务指纹识别命令

# Nmap服务版本探测
nmap -sV -p 1-65535 目标IP

# 深度服务识别
nmap -sV --version-intensity 9 -p 目标端口 目标IP

# 脚本扫描(特定服务)
nmap --script=banner 目标IP
nmap --script=mysql-info 目标IP -p 3306

# 操作系统识别
nmap -O 目标IP

3. 协议探针技巧

# HTTP/HTTPS服务识别
curl -I http://目标:端口
openssl s_client -connect 目标:443 -tls1_2

# 数据库服务探针
mysql -h 目标IP -P 3306 -u root
redis-cli -h 目标IP -p 6379 info

# 自定义协议探针
echo "INFO" | nc 目标IP 6379  # Redis
echo "HELP" | nc 目标IP 21    # FTP

三、角色定性分析框架

1. 服务器角色判断矩阵

开放端口组合可能角色验证方法
80/443 + 3306Web+数据库服务器检查是否在同一主机
22 + 80/443 + 9000开发/测试服务器查看目录结构、版本信息
3389 + 445 + 135Windows域控制器检查AD相关服务
53 + 25 + 110邮件/DNS服务器检查邮件队列、DNS解析
9200 + 5601 + 9300ELK日志服务器检查Kibana界面

2. 服务关联性分析

Web服务器集群:
  - 80/443 (负载均衡器)
  - 8080/8443 (应用服务器)
  - 3306/5432 (数据库,通常不在同一主机)

微服务架构:
  - 9000-9010 (多个微服务)
  - 8761 (服务注册中心)
  - 15672 (消息队列管理)

容器化环境:
  - 2375/2376 (Docker API)
  - 8080 (Kubernetes Dashboard)
  - 10250 (Kubelet API)

四、实战脚本示例

1. Python端口扫描器

import socket
import concurrent.futures

def scan_port(ip, port):
    try:
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sock.settimeout(1)
        result = sock.connect_ex((ip, port))
        sock.close()
        if result == 0:
            return port
    except:
        pass
    return None

def banner_grab(ip, port):
    try:
        sock = socket.socket()
        sock.settimeout(2)
        sock.connect((ip, port))
        sock.send(b'HEAD / HTTP/1.0\r\n\r\n')
        banner = sock.recv(1024).decode('utf-8', errors='ignore')
        sock.close()
        return banner[:100] if banner else ""
    except:
        return ""

# 多线程扫描常用端口
common_ports = [21,22,23,25,53,80,110,111,135,139,143,443,445,993,995,1723,3306,3389,5900,8080]

with concurrent.futures.ThreadPoolExecutor(max_workers=100) as executor:
    futures = {executor.submit(scan_port, "目标IP", port): port for port in common_ports}
    for future in concurrent.futures.as_completed(futures):
        port = futures[future]
        result = future.result()
        if result:
            banner = banner_grab("目标IP", port)
            print(f"[+] 端口 {port} 开放 - {banner}")

2. Nmap自动化脚本

#!/bin/bash
# 自动化信息收集脚本

TARGET=$1
OUTPUT_DIR="scan_results_$(date +%Y%m%d_%H%M%S)"

mkdir -p $OUTPUT_DIR

echo "[*] 开始对 $TARGET 进行综合扫描"

# 1. 快速端口扫描
echo "[1/6] 快速端口扫描..."
nmap -T4 -F $TARGET -oN $OUTPUT_DIR/quick_scan.txt

# 2. 全端口扫描
echo "[2/6] 全端口扫描..."
nmap -T4 -p- $TARGET -oN $OUTPUT_DIR/full_ports.txt

# 3. 服务版本探测
echo "[3/6] 服务版本探测..."
open_ports=$(grep -oP '\d+/open' $OUTPUT_DIR/full_ports.txt | cut -d'/' -f1 | tr '\n' ',')
nmap -T4 -sV -p $open_ports $TARGET -oN $OUTPUT_DIR/service_versions.txt

# 4. 漏洞脚本扫描
echo "[4/6] 漏洞脚本扫描..."
nmap -T4 --script=vuln -p $open_ports $TARGET -oN $OUTPUT_DIR/vuln_scan.txt

# 5. 操作系统识别
echo "[5/6] 操作系统识别..."
nmap -T4 -O $TARGET -oN $OUTPUT_DIR/os_detection.txt

# 6. 输出总结报告
echo "[6/6] 生成报告..."
cat $OUTPUT_DIR/*.txt > $OUTPUT_DIR/full_report.txt
echo "扫描完成!结果保存在 $OUTPUT_DIR/"

五、防御与对抗策略

1. 端口隐藏技术

  • 端口敲门 (Port Knocking):只有特定序列才开放端口
  • 单包授权 (SPA):类似端口敲门的加密版本
  • 非标准端口:将服务部署在非常规端口

2. 服务伪装技术

# Nginx 伪装示例
server {
    listen 80;
    server_name _;

    # 对扫描器返回假页面
    if ($http_user_agent ~* (nmap|nikto|sqlmap)) {
        return 444;
    }

    # 默认返回假服务信息
    location / {
        add_header Server "Microsoft-IIS/8.5";
        return 200 "Service Unavailable";
    }
}

3. 监控与告警

IDS规则示例:
  - 规则: 检测端口扫描
  - 条件: 同一源IP在10秒内访问超过20个不同端口
  - 动作: 触发告警并临时封禁

SIEM配置:
  - 日志源: 防火墙、系统日志、Web服务器
  - 告警阈值: 非常规时间段的端口访问
  - 响应流程: 自动分析->人工确认->处置

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇