当前位置: 首页 > news >正文

Authpf(OpenBSD)认证防火墙到ssh连接到SSH端口转发技术栈 与渗透网络安全的关联 (RED Team Technique )

目录

🔍 1. Authpf概述与Shell设置的作用

什么是Authpf?

Shell设置为/usr/sbin/authpf的作用与含义

🛠️ 2. Authpf工作原理与防火墙绕过机制

技术栈

工作原理

防火墙绕过机制

Shell关联

🌐 3. Authpf与SSH认证及服务探测的关联

关联机制

渗透测试与红队流程

为何进行Nmap认证后扫描

🚀 4. 案例分析:SSH认证后端口开放原理

案例背景

为何SSH认证后可访问8081端口

多端口探测原理

🧩 5. 补充知识点

Authpf配置细节

渗透测试中的其他利用

Nmap扫描技术

📊 6. 完整案例:利用Authpf绕过防火墙

案例背景

完整步骤(补充原文不足)

🧠 7. Authpf与渗透测试/红队的技术水平

技术水平要求

红队应用

🛡️ 8. 防御措施

🔚 9. 总结


创作不易 点个赞吧! 哈哈哈 


🔍 1. Authpf概述与Shell设置的作用

什么是Authpf?

authpf是OpenBSD提供的一种认证防火墙工具,通过SSH认证动态修改pf(Packet Filter)防火墙规则,控制用户网络访问权限。其核心功能是:

  • 用户通过SSH登录,触发authpf加载特定pf规则,允许用户IP访问特定服务或端口。

  • 用户断开SSH会话后,规则自动移除,确保访问权限临时性。

Shell设置为/usr/sbin/authpf的作用与含义

  • 作用

    • 将用户的登录Shell设置为/usr/sbin/authpf(如案例中的nfsuser),意味着用户通过SSH登录时,不会获得传统交互式Shell(如/bin/sh),而是由authpf接管,执行防火墙规则修改。

    • 登录成功后,authpf根据用户身份加载预定义的pf规则(如/etc/authpf/users/nfsuser/authpf.rules),允许用户IP访问特定服务(如NFS、HTTP)。

    • 断开SSH后,authpf移除规则,关闭访问权限。

  • 含义

    • 提供细粒度的访问控制,基于用户身份而非固定IP,适合动态IP环境(如无线网络)。

    • 实现类似Captive Portal或VPN的认证机制,限制未认证用户访问网络资源。

  • 案例关联

    • /etc/passwd中,nfsuser:x:1002:1002::/home/nfsuser:/usr/sbin/authpf表明nfsuser使用authpf作为Shell,SSH登录将触发防火墙规则修改,开放特定端口(如8081)。


🛠️ 2. Authpf工作原理与防火墙绕过机制

技术栈

  • 工具authpf(认证Shell)、pf(OpenBSD防火墙)、OpenSSH(认证协议)、Nmap(端口扫描)。

  • 配置文件

    • /etc/authpf/authpf.conf:全局配置(可为空但必须存在)。

    • /etc/authpf/authpf.rules:默认规则,适用于无用户特定规则的情况。

    • /etc/authpf/users/<username>/authpf.rules:用户特定规则。

    • /etc/pf.conf:主防火墙规则,包含authpf锚点。

  • 协议:SSH(认证)、PF(规则管理)、TCP/UDP(网络流量)。

工作原理

  1. SSH认证

    1. 用户以authpf作为Shell(如nfsuser)通过SSH登录,系统调用/usr/sbin/authpf

    2. authpf验证用户身份,获取登录IP(如10.10.16.22)。

  2. 规则加载

    1. authpf读取用户特定规则(如/etc/authpf/users/nfsuser/authpf.rules)或默认规则(/etc/authpf/authpf.rules)。

    2. 规则通过pfctl加载到pf锚点(如authpf/nfsuser(PID)),允许用户IP访问特定服务(如8081端口)。

  3. 规则移除

    1. 用户断开SSH后,authpf移除锚点规则,恢复默认防火墙限制。

防火墙绕过机制

  • 默认限制pf默认阻止非必要流量(如案例中的block all策略)。

  • 动态开放:SSH认证后,authpf添加规则(如pass in quick on $wifi_if proto tcp from $user_ip to any port 8081),允许用户IP访问受限服务。

  • 渗透测试中的利用

    • 攻击者通过获取SSH凭据(如案例中的nfs.key)登录,触发authpf开放端口。

    • 使用Nmap扫描发现新开放端口(如8081),进一步利用服务漏洞。

Shell关联

  • authpf作为Shell接管用户登录,不提供交互式终端,而是执行防火墙规则管理。

  • SSH认证成功后,authpf基于用户身份和IP动态调整pf规则,控制网络访问。


🌐 3. Authpf与SSH认证及服务探测的关联

关联机制

  • SSH认证

    • 用户通过SSH登录(如ssh -i nfs.key nfsuser@10.129.2.232),authpf验证成功后加载规则,允许用户IP访问特定服务。

  • 服务探测

    • 认证前,Nmap扫描可能仅发现少量开放端口(如22/SSH)。

    • 认证后,authpf开放新端口(如8081),Nmap扫描可检测这些变化,揭示隐藏服务。

  • 案例中的关联

    • 登录nfsuser后,authpf加载规则,开放8081端口。

    • Nmap扫描(nmap -T4 -p- 10.129.2.232 -Pn)发现新端口,表明防火墙规则已动态修改。

渗透测试与红队流程

  1. 信息收集

    1. 使用Nmap进行初始扫描(nmap -T4 10.129.2.232),识别开放端口(如22)。

    2. 发现authpf用户(如nfsuser)通过/etc/passwd

  2. 凭据获取

    1. 通过命令注入(如db=;cat /home/bob/ca/intermediate/certs/nfs.key)获取SSH私钥。

  3. SSH登录

    1. 使用私钥登录(ssh -i nfs.key nfsuser@10.129.2.232),触发authpf规则加载。

  4. 端口扫描

    1. 再次运行Nmap(nmap -T4 -p- 10.129.2.232 -Pn),发现新端口(如8081、NFS、RPC)。

  5. 服务利用

    1. 访问8081端口(如http://10.129.2.232:8081),分析服务功能。

    2. 利用NFS服务(如mount -t nfs 10.129.2.232:/home/nfsuser /mnt)获取文件系统访问。

为何进行Nmap认证后扫描

  • 目的:验证authpf是否开放新端口,识别隐藏服务。

  • 原因

    • authpf基于认证动态修改防火墙规则,初始扫描可能无法发现受限服务。

    • 认证后扫描可揭示新开放端口(如8081、2049/NFS),为后续利用提供目标。

  • 红队意义

    • 发现隐藏服务(如管理接口、NFS共享)。

    • 结合漏洞(如NFS未启用root_squash),实现权限提升或横向移动。


🚀 4. 案例分析:SSH认证后端口开放原理

案例背景

  • 漏洞:命令注入(POST /select)获取CA文件和SSH私钥(nfs.key)。

  • 目标:通过authpf认证,开放端口(如8081),访问受限服务。

为何SSH认证后可访问8081端口

  • 原理

    • 默认状态下,pf防火墙阻止8081端口访问。

    • nfsuser的Shell为/usr/sbin/authpf,登录后触发规则加载(如pass in quick on $wifi_if proto tcp from $user_ip to any port 8081)。

    • 规则基于用户IP(10.10.16.22)开放8081端口。

  • 技术栈

    • OpenSSH:处理认证,验证nfs.key

    • authpf:加载用户特定规则(/etc/authpf/users/nfsuser/authpf.rules)。

    • pf:动态修改防火墙规则,允许TCP流量到8081。

  • 前后关联

    • 前置:通过命令注入获取nfs.keydb=;cat /home/bob/ca/intermediate/certs/nfs.key)。

    • 认证:SSH登录触发authpf规则加载。

    • 后置:Nmap扫描发现8081端口开放,浏览器访问http://10.129.2.232:8081确认服务。

多端口探测原理

  • Nmap扫描nmap -T4 -p- 10.129.2.232 -Pn):

    • -T4:加速扫描。

    • -p-:扫描全端口(1-65535)。

    • -Pn:跳过主机发现,直接扫描。

  • 结果:发现8081、2049(NFS)、111(RPC)等端口,表明authpf规则放通多个服务。

  • 原因authpf规则可能包含多端口放行(如pass in quick on $wifi_if proto tcp from $user_ip to any port { ssh, http, https, 8081, 2049 })。


🧩 5. 补充知识点

Authpf配置细节

  • /etc/authpf/authpf.allow:指定允许认证的用户(如nfsuser),*表示允许所有用户。

  • /etc/authpf/authpf.banned:禁止用户名单,优先级高于authpf.allow

  • /etc/authpf/authpf.message:自定义登录消息(如案例中的Hello nfsuser. You are authenticated from host "10.10.16.22")。

  • 锚点机制

    • 规则加载到authpf/<username>(PID)锚点,确保用户隔离。

    • 示例:nat-anchor "authpf/*", rdr-anchor "authpf/*", anchor "authpf/*"

渗透测试中的其他利用

  • SSH会话劫持

    • 攻击者可尝试劫持SSH会话,维持authpf规则有效。

    • 防御:配置/etc/ssh/sshd_config启用ClientAliveInterval 15ClientAliveCountMax 3,60秒内断开劫持会话。

  • NFS服务利用

    
    showmount -e 10.129.2.232 mount -t nfs 10.129.2.232:/home/nfsuser /mnt
    • 如果authpf开放2049端口,可挂载NFS共享:

    • 检查root_squash配置,若未启用,可提权。

  • RPC服务利用

    • 端口111(RPC)可能暴露rpcbind服务,使用rpcinfo -p 10.129.2.232枚举服务。

Nmap扫描技术

  • SYN扫描nmap -sS):快速,检测开放/关闭端口。

  • ACK扫描nmap -sA):识别防火墙过滤端口。

  • FIN/NULL/Xmas扫描nmap -sF/-sN/-sX):绕过简单防火墙,检测开放端口。

  • 案例关联:认证后使用全端口扫描(-p-)发现authpf开放的服务。


📊 6. 完整案例:利用Authpf绕过防火墙

案例背景

  • 目标:Web服务器(10.129.2.232)运行OpenBSD,存在命令注入漏洞(/select)和authpf认证机制。

  • 目标服务:8081端口(HTTP)、2049(NFS)、111(RPC)。

  • 前提:通过命令注入获取nfs.key和CA文件。

完整步骤(补充原文不足)

  1. 初始扫描

nmap -T4 10.129.2.232
  1. 命令注入获取凭据

 

db=;cat /home/bob/ca/intermediate/certs/nfs.key

  1. SSH登录

 

ssh -i nfs.key nfsuser@10.129.2.232

  1. 二次扫描

nmap -T4 -p- 10.129.2.232 -Pn
  1. 访问8081端口

    1. 浏览器访问http://10.129.2.232:8081,确认服务功能。

  2. NFS利用

showmount -e 10.129.2.232 mount -t nfs 10.129.2.232:/home/nfsuser /mnt

  1. 伪造客户端证书(结合原文):

    
    db=;cat /home/bob/ca/intermediate/certs/intermediate.cert.pem db=;cat /home/bob/ca/intermediate/private/intermediate.key.pemopenssl genrsa -out client.key 2048 openssl req -new -key client.key -out client.csr openssl x509 -req -in client.csr -CA intermediate.cert.pem -CAkey intermediate.key.pem -CAcreateserial -out client.pem -days 1024 -sha256 openssl pkcs12 -export -out client.pfx -inkey client.key -in client.pem -certfile intermediate.cert.pem
    1. 获取CA文件:

    2. 生成证书:

    3. 导入Firefox,访问https://fortune.htb/admin

  2. AD域利用

    impacket-getTGT -dc-ip 10.129.2.232 -cert-pfx client.pfx -pfx-pass password123 fortune.htb/client1
    1. 使用证书进行PKINIT攻击:


🧠 7. Authpf与渗透测试/红队的技术水平

技术水平要求

  • 初级

    • 理解SSH认证和Nmap扫描基础。

    • 执行命令注入,获取nfs.key

  • 中级

    • 熟悉authpf机制,分析防火墙规则。

    • 使用Nmap高级扫描(如FIN/NULL)绕过过滤。

  • 高级

    • 结合客户端证书伪造,访问mTLS服务。

    • 利用NFS或PKINIT进行权限提升和横向移动。

红队应用

  • 认证绕过:通过authpf开放端口,访问隐藏服务。

  • 持久化:维持SSH会话或伪造证书,确保长期访问。

  • 横向移动:利用NFS共享或AD域接口,扩展攻击面。


🛡️ 8. 防御措施

  • 限制SSH访问

    • 配置/etc/ssh/sshd_config限制AllowUsers nfsuser

    • 启用ClientAliveInterval防止会话劫持。

  • 保护CA文件

    • 限制/home/bob/ca/目录权限,防止命令注入泄露。

  • authpf配置

    • 使用authpf.banned禁止高危用户。

    • 限制规则放行端口,仅允许必要服务。

  • Nmap防御

    • 配置pf检测异常扫描(如block in quick proto tcp flags F/F)。

  • AD域防护

    • 禁用PKINIT或限制信任CA。

    • 监控异常TGT请求。


🔚 9. 总结

  • authpf是OpenBSD的强大认证防火墙工具,通过SSH认证动态修改pf规则,实现细粒度访问控制。在渗透测试中,攻击者可利用命令注入获取SSH凭据,触发authpf开放端口(如8081、NFS),结合Nmap扫描发现隐藏服务,进一步利用客户端证书伪造访问mTLS保护的AD域资源。
  • 本文章展示了从漏洞发现到权限提升的完整流程,强调了技术栈的深度和逻辑关联。防御需从SSH配置、CA保护和防火墙规则优化入手。
http://www.xdnf.cn/news/884467.html

相关文章:

  • 机器学习的数学基础:决策树
  • 今日学习:ES8语法 | Spring整合ES | ES场景八股
  • Python html 库用法详解
  • Selenium 和playwright 使用场景优缺点对比
  • 使用Python提取照片元数据:方法与实战指南
  • 【定昌linux开发板】关闭ssh 端口 22
  • Java详解LeetCode 热题 100(27):LeetCode 21. 合并两个有序链表(Merge Two Sorted Lists)详解
  • 短视频矩阵系统技术saas源头6年开发构架
  • 深入理解JavaScript设计模式之闭包与高阶函数
  • 【JVM】三色标记法原理
  • VisDrone无人机视觉挑战赛观察解析2025.6.5
  • 无人机避障与视觉跟踪技术分析!
  • 装备制造项目管理具备什么特征?如何选择适配的项目管理软件系统进行项目管控?
  • Spring Boot + Elasticsearch + HBase 构建海量数据搜索系统
  • 【数据分析】基于adonis2与pairwise.adonis2的群组差异分析教程
  • vue-router路由问题:可以通过$router.push()跳转,但刷新后又变成空白页面
  • Uniapp 二维码生成与解析完整教程
  • Spring IoC 详解:原理、实现与实战
  • 【Go语言基础【3】】变量、常量、值类型与引用类型
  • Excel处理控件Aspose.Cells教程:使用 C# 从 Excel 进行邮件合并
  • [Git] 文件删除
  • 五、查询处理和查询优化
  • 自动驾驶TPM技术杂谈 ———— 车辆安全设计思考维度
  • 中阳视角下的资产配置趋势分析与算法支持
  • 使用ArcPy进行栅格数据分析(2)
  • MPLAB X IDE ​软件安装与卸载
  • ocrapi服务docker镜像使用
  • 嵌入式学习笔记DAY33(网络编程——TCP)
  • 三格电子SG-UHF-80系列:工业自动化的超高频RFID革新力量
  • 软考 系统架构设计师系列知识点之杂项集萃(82)