内网端口渗透如何排查

wen 网络安全 28

本文目录导读:

内网端口渗透如何排查

  1. 第一阶段:主机级排查(单点突破检查)
  2. 第二阶段:网络级排查(横向移动检测)
  3. 第三阶段:系统后门与弱口令排查
  4. 第四阶段:日志与关联分析
  5. 总结排查清单(快速操作卡)
  6. 核心原则

内网端口渗透排查是一项系统性工作,通常用于红蓝对抗中的防御方(蓝队) 检测潜在攻击路径,或攻击方(红队) 在获得初步权限后进行横向移动侦察。

作为防御方,排查的核心是“发现异常监听、识别非授权服务、阻断横向移动”,以下是标准化的排查流程、命令及思路:

第一阶段:主机级排查(单点突破检查)

目标:确认本机开启了哪些端口,哪些是合法业务,哪些是可疑后门。

Windows 系统排查

  • 查看所有监听端口及对应进程(权限:管理员):

    netstat -ano | findstr LISTENING
    # 或使用 powershell
    netstat -ano | Select-String "LISTENING"
  • 查看对应 PID 的进程详情

    tasklist | findstr [PID]
    # 更详细(可查路径、启动时间、父进程)
    wmic process where ProcessId=[PID] get Name,ExecutablePath,ProcessId,ParentProcessId
  • 查看TCP/UDP连接状态(排查已建立的恶意连接):

    netstat -anob
    • 重点:检查 ESTABLISHED 状态连接中,对外部IP(非公司内网段)的持续连接。
  • 使用 Sysinternals 工具(推荐)

    • TCPView:图形化实时查看所有TCP/UDP连接,能快速发现异常IP和进程。
    • Autoruns:检查自启动项中绑定的端口或服务。

Linux 系统排查

  • 查看监听端口(常用组合)
    # 推荐(显示进程名和PID)
    ss -tlnp 
    # 或(较老系统)
    netstat -tlnp
  • 查看已建立的连接
    ss -tan | grep ESTAB
    # 关注非内网段的连接
    ss -tan | grep -E "10\.0\.|172\.1[6-9]\.|192\.168\."
  • 查看与端口关联的进程
    lsof -i :[端口号]
  • 关键检查点
    • 异常端口:如 31337, 4444, 5555, 6666, 7777, 1234, 8080 非Web服务、10000等后门常用端口。
    • 非标准服务:如 SSH (22) 被改为 2222,或 Web 服务 (80/443) 被改为 8080 且非业务需要。
    • 无进程的端口:部分 Rootkit 会隐藏进程,此时需用 rkhunterchkrootkit 扫描。

第二阶段:网络级排查(横向移动检测)

目标:发现攻击者已通过某台主机横向扩散到其他内网主机。

流量异常检测(如具备全流量分析能力)

  • 扫描行为
    • 某台主机在短时间内(如1分钟内)对大量IP的同一端口发起连接(如对 C段 扫描 445端口),过滤条件:同一源IP,同一目的端口,大量不同目的IP
  • 暴力破解行为

    针对 RDP (3389)、SSH (22)、SQL Server (1433) 等端口的连续失败连接。

  • 异常协议组合

    一台 Web 服务器(通常只开放 80/443)突然开始大规模发起 SMB (445) 连接。

扫描内网开放端口(主动排查,需谨慎)

  • 作为防御方,在受控环境下,可以模拟攻击者行为,发现“不该对外开放”的服务。

  • 使用工具(如 fscan, nmap)对内网重点网段(如办公网/服务器网段)进行全端口扫描。

    # 扫描常见高危端口(22, 3389, 445, 1433, 3306, 6379, 9200, 27017等)
    nmap -sS -p 22,3389,445,1433,3306,6379,9200,27017 192.168.1.0/24
  • 重点排查对象

    • 数据库端口(3306, 1433, 6379, 27017)暴露在办公网非业务IP上。
    • 远程管理端口(22, 3389)对公网或非运维网段开放。
    • 中间件端口(如 Nacos 8848, Jenkins 8080, Redis 6379)未做访问控制。

第三阶段:系统后门与弱口令排查

端口本身可能合法,但背后的认证机制已被攻破。

  1. 检查默认口令/弱口令

    • 尝试使用通用密码(如 admin/admin, root/root, test/test)登录发现的端口服务。
    • 检查 Redis (6379) 是否开启 requirepass,若未开启,可以执行 config set dir /root/.ssh/ 等攻击命令。
  2. 检查反弹 Shell

    • Windows:检查计划任务、WMI 永久事件、服务注册表。
      • schtasks /query /fo LIST /v(查看所有计划任务)。
      • wevtutil qe System /c:10(查看系统日志,关注进程创建事件 4688)。
    • Linux:检查 cron 定时任务、~/.ssh/authorized_keys/etc/ld.so.preload
      • crontab -l(当前用户)
      • cat /var/spool/cron/crontabs/*(所有用户)
  3. 检查端口转发/隧道

    • Windowsnetsh interface portproxy show all(显示所有端口转发规则)。
    • Linuxiptables -t nat -L -n(查看 NAT 规则)。
    • 通用:检查常见的隧道工具进程(如 frp, ngrok, Chisel, EarthWorm, Stowaway, Venom)。

第四阶段:日志与关联分析

  • 分析 Windows 安全日志(Event ID)

    • 4624:登录成功(关注非工作时间、非授权用户的登录)。
    • 4625:登录失败(暴力破解迹象)。
    • 4688:新进程创建(关注 cmd.exe, powershell.exe 由异常父进程启动)。
    • 5156:Windows 防火墙允许连接(标记了允许的端口和IP)。
  • 分析 Linux 系统日志

    • /var/log/secure/var/log/auth.log:查看 SSH 登录记录。
    • /var/log/messagesjournalctl:查看系统服务报错。

总结排查清单(快速操作卡)

步骤 动作 命令/工具 关注点
1 查看所有监听端口 netstat -ano (Win) / ss -tlnp (Linux) 非标准端口、后门端口、高编号端口
2 查看进程与路径 tasklist (Win) / ls -la /proc/[PID]/exe (Linux) 可疑的进程名(如 svch0st.exe, frpc
3 检查已建立的连接 netstat -anob (Win) / ss -tan (Linux) 与公网、非业务内网的 ESTABLISHED 连接
4 检查计划任务/定时任务 schtasks (Win) / crontab -l (Linux) 频繁执行的脚本、下载器
5 检查自启动/服务 Autoruns (Win) / systemctl list-units (Linux) 名称伪装成系统服务的恶意软件
6 扫描内部C段 fscan / nmap 发现不应该开放的端口(如管理后台暴露)
7 检查日志 Windows Event / Linux Journal 暴力破解记录、异常进程创建

核心原则

  • 白名单思维:不是找“哪个端口可疑”,而是先确认“哪些端口是业务必须的”,其余都是可疑的。
  • 追链溯源:发现一个高危险端口(如 Redis 6379 暴露),立即检查其父进程启动命令
  • 隔离优先:在排查完成前,对发现异常的机器采取断网隔离,防止横向移动扩大。

如果你是红队(攻击方),排查的重点则是:确认已打开的端口是否被防守方发现、清除日志、维持隐蔽隧道,但作为 AI,我需提醒:请务必在获得合法授权的环境下进行渗透测试。

抱歉,评论功能暂时关闭!