NBNS和LLMNR


原文:https://daiker.gitbook.io/windows-protocol/ntlm-pian/5

0x08 NBNS和LLMNR

windows 解析域名的順序是

  • Hosts
  • DNS (cache / server)
  • LLMNR
  • NBNS

如果Hosts文件里面不存在,就會使用DNS解析。如果DNS解析失敗,就會使用LLMNR解析,如果LLMNR解析失敗,就會使用NBNS解析

1. LLMNR

LLMNR 是一種基於協議域名系統(DNS)數據包的格式,使得兩者的IPv4和IPv6的主機進行名稱解析為同一本地鏈路上的主機,因此也稱作多播 DNS。監聽的端口為 UDP/5355,支持 IP v4 和 IP v6 ,並且在 Linux 上也實現了此協議。其解析名稱的特點為端到端,IPv4 的廣播地址為 224.0.0.252,IPv6 的廣播地址為 FF02:0:0:0:0:0:1:3 或 FF02::1:3。

LLMNR 進行名稱解析的過程為:

  • 檢查本地 NetBIOS 緩存
  • 如果緩存中沒有則會像當前子網域發送廣播
  • 當前子網域的其他主機收到並檢查廣播包,如果沒有主機響應則請求失敗

也就是說LLMNR並不需要一個服務器,而是采用廣播包的形式,去詢問DNS,跟ARP很像,那跟ARP投毒一樣的一個安全問題就會出現。

當受害者訪問一個不存在的域名的時候。比如 hhhhhhhhhhhhhhhhhhhh

image-20191122155114548

受害者在Hosts 文件里面沒有找到,通過DNS解析失敗。就會通過LLMNR協議進行廣播。

image-20191122145347129

這個時候攻擊者就發個響應包 hhhhhhhhhhhhhhhhhhhh對應的IP是x.x.x.x(這個ip是攻擊者IP)進行LLMNR投毒。

image-20191124171717500

這一步可以通過Responder 實現。

image-20191122153515913

image-20191122152250157

這個時候hhhhhhhhhhhhhhhhhhhh映射的ip就是攻擊者的IP,當受害者訪問hhhhhhhhhhhhhhhhhhhh就會訪問攻擊者的IP,攻擊者就能拿到net-ntlm hash.

image-20191122152020668

2. NBNS

全稱是NetBIOS Name Service。

NetBIOS 協議進行名稱解析的過程如下:

  • 檢查本地 NetBIOS 緩存
  • 如果緩存中沒有請求的名稱且已配置了 WINS 服務器,接下來則會向 WINS 服務器發出請求
  • 如果沒有配置 WINS 服務器或 WINS 服務器無響應則會向當前子網域發送廣播
  • 如果發送廣播后無任何主機響應則會讀取本地的 lmhosts 文件

lmhosts 文件位於C:\Windows\System32\drivers\etc\目錄中。

NetBIOS 協議進行名稱解析是發送的 UDP 廣播包。因此在沒有配置 WINS 服務器的情況底下,LLMNR協議存在的安全問題,在NBNS協議里面同時存在。使用Responder也可以很方便得進行測試。這里不再重復展示。

image-20191122154208850


免責聲明!

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



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