# 常见端口及其脆弱点

  • FTP (21/TCP)

    • 默认用户名密码 anonymous:anonymous
    • 暴力破解密码
    • VSFTP 某版本后门
  • SSH (22/TCP)

    • 部分版本 SSH 存在漏洞可枚举用户名
    • 暴力破解密码
  • Telent (23/TCP)

    • 暴力破解密码
    • 嗅探抓取明文密码
  • SMTP (25/TCP)

    • 无认证时可伪造发件人
  • DNS (53/UDP & 53/TCP)

    • 域传送漏洞

    • DNS 劫持

    • DNS 缓存投毒

    • DNS 欺骗

    • SPF / DMARC Check

    • DDoS

      • DNS Query Flood

      • DNS 反弹

    • DNS 隧道

  • DHCP 67/68

    • 劫持 / 欺骗
  • TFTP (69/TCP)

  • HTTP (80/TCP)

  • Kerberos (88/TCP)

    • 主要用于监听 KDC 的票据请求
    • 用于进行黄金票据和白银票据的伪造
  • POP3 (110/TCP & 995/TCP)

    • 爆破
  • RPC (135/TCP)

    • wmic 服务利用
  • NetBIOS (137/UDP & 138/UDP)

    • 未授权访问
    • 弱口令
  • NetBIOS / Samba (139/TCP)

    • 未授权访问
    • 弱口令
  • IMAP (143/TCP & 993/TCP)

  • SNMP (161/TCP & 161/UDP)

    • Public 弱口令
  • LDAP (389/TCP)

    • 用于域上的权限验证服务
    • 匿名访问
    • 注入
  • HTTPS (443/TCP)

  • SMB (445/TCP)

    • Windows 协议簇,主要功能为文件共享服务
    • net use \\192.168.1.1 /user:xxx\username password
  • Linux Rexec (512/TCP & 513/TCP & 514/TCP)

    • 弱口令
  • Rsync (873/TCP)

    • 未授权访问
  • RPC (1025/TCP)

    • NFS 匿名访问
  • Java RMI (1090/TCP & 1099/TCP)

    • 反序列化远程命令执行漏洞
  • MSSQL (1433/TCP)

    • 弱密码
    • 差异备份 GetShell
    • SA 提权
  • Oracle (1521/TCP)

    • 弱密码
  • NFS (2049/TCP)

    • 权限设置不当
    • showmount <host>
  • ZooKeeper (2171/TCP & 2375/TCP)

    • 无身份认证
  • Docker Remote API (2375/TCP)

    • 未限制 IP / 未启用 TLS 身份认证
    • http://docker.addr:2375/version
  • MySQL (3306/TCP)

    • 弱密码
    • 日志写 WebShell
    • UDF 提权
    • MOF 提权
  • RDP / Terminal Services (3389/TCP)

    • 弱密码
  • Postgres (5432/TCP)

    • 弱密码
    • 执行系统命令
  • VNC (5900/TCP)

    • 弱密码
  • CouchDB (5984/TCP)

    • 未授权访问
  • WinRM (5985/TCP)

    • Windows 对 WS-Management 的实现
    • 在 Vista 上需要手动启动,在 Windows Server 2008 中服务是默认开启的
  • Redis (6379/TCP)

    • 无密码或弱密码
    • 绝对路径写 WebShell
    • 计划任务反弹 Shell
    • 写 SSH 公钥
    • 主从复制 RCE
    • Windows 写启动项
  • Kubernetes API Server (6443/TCP && 10250/TCP)

    • https://Kubernetes:10250/pods
  • JDWP (8000/TCP)

    • 远程命令执行
  • ActiveMQ (8061/TCP)

  • Jenkin (8080/TCP)

    • 未授权访问
  • Elasticsearch (9200/TCP)

    • 代码执行
    • http://es.addr:9200/_plugin/head/
    • http://es.addr:9200/_nodes
  • Memcached (11211/TCP & 11211/UDP)

    • 未授权访问
  • RabbitMQ (15672/TCP & 15692/TCP & 25672/TCP)

  • MongoDB (27017/TCP)

    • 无密码或弱密码
  • Hadoop (50070/TCP & 50075/TCP)

    • 未授权访问

除了以上列出的可能出现的问题,暴露在公网上的服务若不是最新版,都可能存在已经公开的漏洞

# 常见端口扫描技术

# 全扫描

扫描主机尝试使用三次握手与目标主机的某个端口建立正规的连接,若成功建立连接,则端口处于开放状态,反之处于关闭状态。

全扫描实现简单,且以较低的权限就可以进行该操作。但是在流量日志中会有大量明显的记录。

# 半扫描

半扫描也称 SYN 扫描,在半扫描中,仅发送 SYN 数据段,如果应答为 RST,则端口处于关闭状态,若应答为 SYN/ACK,则端口处于监听状态。不过这种方式需要较高的权限,而且现在的大部分防火墙已经开始对这种扫描方式做处理。

# FIN 扫描

FIN 扫描是向目标发送一个 FIN 数据包,如果是开放的端口,会返回 RST 数据包,关闭的端口则不会返回数据包,可以通过这种方式来判断端口是否打开。

这种方式并不在 TCP 三次握手的状态中,所以不会被记录,相对 SYN 扫描要更隐蔽一些。

# Web 服务

  • Jenkins

    • 未授权访问
  • Gitlab

    • 对应版本 CVE
  • Zabbix

    • 权限设置不当

# 批量搜索

  • Censys
  • Shodan
  • ZoomEye