test_SMBLoris.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import unittest
  2. import unittest.mock as mock
  3. import ID2TLib.TestLibrary as Lib
  4. from Test.GenericTest import GenericTest
  5. sha_default = 'cbfb154a80546ebcf0a0d5128bcc42e4d69228c1d97ea4dda49ba156703b78c2'
  6. sha_one_attacker = 'a316ba1a667318ef4b8d1bf5ffee3f58dfcd0221b0cc3ab62dd967379217eb27'
  7. sha_sixteen_attackers = '08b17b360ee9be1657e7c437e5aef354dac374ceca3b4ee437c45c0d9d03a2ef'
  8. sha_ips_in_pcap = 'f299e4139780869d9f02c25ba00f1cad483a4f215d6aef4079b93f7f7e1de22a'
  9. """
  10. CURRENT COVERAGE
  11. Name Stmts Miss Cover Missing (lines)
  12. ---------------------------------------------------------------------------
  13. Attack/SMBLorisAttack.py 128 4 97% 67, 72, 149, 182
  14. """
  15. # TODO: get 100% coverage
  16. class UnitTestSMBLoris(GenericTest):
  17. def test_smbloris_default(self):
  18. self.generic_test([['SMBLorisAttack']], sha_default)
  19. def test_smbloris_one_attacker(self):
  20. self.generic_test([['SMBLorisAttack', 'ip.src=192.168.1.240', 'ip.dst=192.168.1.210']], sha_one_attacker)
  21. def test_smbloris_ips_in_pcap(self):
  22. ip_src = 'ip.src='+Lib.test_pcap_ips[0]
  23. ip_dst = 'ip.dst='+Lib.test_pcap_ips[1]
  24. self.generic_test([['SMBLorisAttack', ip_src, ip_dst]], sha_ips_in_pcap)
  25. def test_smbloris_sixteen_attackers(self):
  26. self.generic_test([['SMBLorisAttack', 'ip.dst=192.168.1.210', 'attackers.count=16']], sha_sixteen_attackers)
  27. @mock.patch('ID2TLib.Statistics.Statistics.get_most_used_ip_address')
  28. def test_smbloris_two_most_used_ips(self, mock_most_used_ip_address):
  29. mock_most_used_ip_address.return_value = Lib.test_pcap_ips
  30. self.generic_test([['SMBLorisAttack']], sha_default)
  31. def test_smbloris_same_ip_src_dst(self):
  32. with self.assertRaises(SystemExit):
  33. self.generic_test([['SMBLorisAttack', 'ip.src=192.168.1.240', 'ip.dst=192.168.1.240']], sha_default)
  34. if __name__ == '__main__':
  35. unittest.main()