dhcp.rb 736 B

1234567891011121314151617181920
  1. Then /^the hostname should not have been leaked on the network$/ do
  2. hostname = $vm.execute("hostname").stdout.chomp
  3. packets = PacketFu::PcapFile.new.file_to_array(:filename => @sniffer.pcap_file)
  4. packets.each do |p|
  5. # if PacketFu::TCPPacket.can_parse?(p)
  6. # ipv4_tcp_packets << PacketFu::TCPPacket.parse(p)
  7. if PacketFu::IPPacket.can_parse?(p)
  8. payload = PacketFu::IPPacket.parse(p).payload
  9. elsif PacketFu::IPv6Packet.can_parse?(p)
  10. payload = PacketFu::IPv6Packet.parse(p).payload
  11. else
  12. @sniffer.save_pcap_file
  13. raise "Found something in the pcap file that either is non-IP, or cannot be parsed"
  14. end
  15. if payload.match(hostname)
  16. raise "Hostname leak detected"
  17. end
  18. end
  19. end