是否可以检查 dhcp-server 传送的内容?
当我配置我的 dhcp 服务器时,我告诉它从哪个文件启动,例如:pxelinux.0
,以及它应该在哪里找到它,例如:192.168.0.112
。
我能否以某种方式验证这是从 dhcp 服务器传送的,而无需实际启动一台机器?我想我在这里寻找一些命令行技巧,例如:
我读过这个https://serverfault.com/a/875791/243665192.168.0.112
但它并没有告诉我所有信息。显示了启动文件名,但缺少pxeserver ( ) 的位置。例如:
$ sudo nmap --script broadcast-dhcp-discover
Starting Nmap 7.60 ( https://nmap.org ) at 2019-12-02 08:49 CET
Pre-scan script results:
| broadcast-dhcp-discover:
| Response 1 of 1:
| IP Offered: 192.168.0.36
| DHCP Message Type: DHCPOFFER
| Server Identifier: 192.168.0.1
| IP Address Lease Time: 5m00s
| Subnet Mask: 255.255.255.0
| Router: 192.168.0.1
| Domain Name Server: 192.168.100.10, 192.168.100.11
| Domain Name: ulfexample.com
| Renewal Time Value: 2m30s
| Rebinding Time Value: 4m22s
|_ Bootfile Name: /pxelinux.0
答案1
$ sudo nmap --script broadcast-dhcp-discover
使用此处的脚本broadcast-dhcp-discover
:
https://svn.nmap.org/nmap/scripts/broadcast-dhcp-discover.nse
你应该替换:
result_table["IP Offered"] = r.yiaddr_str
和:
result_table["IP Offered"] = r.yiaddr_str
result_table["IP TFTP Server"] = r.siaddr_str
或者你也可以使用
$ sudo nmap --script dhcp-discover
脚本是:
https://svn.nmap.org/nmap-exp/patrik/nmap-brute/scripts/dhcp-discover.nse
你应该替换:
table.insert(response, string.format("IP Offered: %s", result.yiaddr_str))
和:
table.insert(response, string.format("IP Offered: %s", result.yiaddr_str))
table.insert(response, string.format("IP TFTP Server: %s", result.siaddr_str))
file
在这两种情况下,如果 NBP 存储在DHCP 提供的字段中,并且 TFTP 服务器 IP 存储在siaddr
DHCP 提供的字段中,您都应该能够获取 PXE 信息