punk-security / dnsReaper

dnsReaper - subdomain takeover tool for attackers, bug bounty hunters and the blue team!
GNU Affero General Public License v3.0
2k stars 166 forks source link

Refactor and reduce burden for testing #26

Closed SimonGurney closed 2 years ago

SimonGurney commented 2 years ago

The naming of some folders was confusing and is hopefully now less confusing.

We now use classes for our signatures, so almost all signatures derive from a standard template.

This means we can perform ACTIVE checks on these signatures with a standardized approach, reducing the need to write tests for each one. I looked into pytest and we can have it parametrize tests, creating multiple tests for just one definition.

We now feed one test all the signatures that derive from a class!

An example of this is the new checks for signature conformance,

tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.agilecrm] PASSED                                                                                                                                                         [ 16%] 
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.airee_ru] PASSED                                                                                                                                                         [ 17%] 
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.anima] PASSED                                                                                                                                                            [ 17%] 
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.aws_ns] PASSED                                                                                                                                                           [ 18%] 
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.bigcartel] PASSED                                                                                                                                                        [ 19%]
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.brandpad] PASSED                                                                                                                                                         [ 19%] 
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.brightcove] PASSED                                                                                                                                                       [ 20%] 
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.cargo_collective] PASSED                                                                                                                                                 [ 21%] 
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.github_pages] PASSED                                                                                                                                                     [ 21%] 
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.helpscout] PASSED                                                                                                                                                        [ 22%] 
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.jetbrains] PASSED                                                                                                                                                        [ 23%] 
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.launchrock_cname] PASSED                                                                                                                                                 [ 23%] 
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.microsoft_azure] PASSED                                                                                                                                                  [ 24%]
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.mysmartjobboard] PASSED                                                                                                                                                  [ 25%] 
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.mystrikingly] PASSED                                                                                                                                                     [ 25%] 
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.ngrok] PASSED                                                                                                                                                            [ 26%] 
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.shopify] PASSED                                                                                                                                                          [ 26%] 
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.smartjobboard] PASSED                                                                                                                                                    [ 27%] 
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.surge] PASSED                                                                                                                                                            [ 28%] 
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.wordpress_com_cname] PASSED                                                                                                                                              [ 28%] 
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.wordpress_com_ns] PASSED                                                                                                                                                 [ 29%] 
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures._generic_cname_found_but_404_http] PASSED                                                                                                                                [ 30%] 
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures._generic_cname_found_but_404_https] PASSED                                                                                                                               [ 30%] 
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures._generic_cname_found_doesnt_resolve] PASSED                                                                                                                              [ 31%] 
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures._generic_zone_missing_on_ns] PASSED 
SimonGurney commented 2 years ago

Tests from the github action

You can see 1 is skipped. This is because we have Active tests defined for cname_found_but_status_code but we dont have any tests yet using that template

collecting ... collected 180 items
tests/test_signatures.py::test_signatures_have_a_test_defined[signatures.aws_ns] PASSED [  0%]
tests/test_signatures.py::test_signatures_have_a_test_defined[signatures._generic_zone_missing_on_ns] PASSED [  1%]
tests/test_signatures.py::test_signatures_have_a_test_defined[signatures.jetbrains] PASSED [  1%]
tests/test_signatures.py::test_signatures_have_a_test_defined[signatures.surge] PASSED [  2%]
tests/test_signatures.py::test_signatures_have_a_test_defined[signatures.mysmartjobboard] PASSED [  2%]
tests/test_signatures.py::test_signatures_have_a_test_defined[signatures.ngrok] PASSED [  3%]
tests/test_signatures.py::test_signatures_have_a_test_defined[signatures._generic_cname_found_doesnt_resolve] PASSED [  3%]
tests/test_signatures.py::test_signatures_have_a_test_defined[signatures.bigcartel] PASSED [  4%]
tests/test_signatures.py::test_signatures_have_a_test_defined[signatures.mystrikingly] PASSED [  5%]
tests/test_signatures.py::test_signatures_have_a_test_defined[signatures.github_pages] PASSED [  5%]
tests/test_signatures.py::test_signatures_have_a_test_defined[signatures.wordpress_com_cname] PASSED [  6%]
tests/test_signatures.py::test_signatures_have_a_test_defined[signatures.anima] PASSED [  6%]
tests/test_signatures.py::test_signatures_have_a_test_defined[signatures.shopify] PASSED [  7%]
tests/test_signatures.py::test_signatures_have_a_test_defined[signatures.agilecrm] PASSED [  7%]
tests/test_signatures.py::test_signatures_have_a_test_defined[signatures.launchrock_cname] PASSED [  8%]
tests/test_signatures.py::test_signatures_have_a_test_defined[signatures.airee_ru] PASSED [  8%]
tests/test_signatures.py::test_signatures_have_a_test_defined[signatures.brightcove] PASSED [  [9](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:10)%]
tests/test_signatures.py::test_signatures_have_a_test_defined[signatures.wordpress_com_ns] PASSED [ [10](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:11)%]
tests/test_signatures.py::test_signatures_have_a_test_defined[signatures.cargo_collective] PASSED [ 10%]
tests/test_signatures.py::test_signatures_have_a_test_defined[signatures._generic_cname_found_but_404_https] PASSED [ [11](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:12)%]
tests/test_signatures.py::test_signatures_have_a_test_defined[signatures.microsoft_azure] PASSED [ 11%]
tests/test_signatures.py::test_signatures_have_a_test_defined[signatures.smartjobboard] PASSED [ [12](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:13)%]
tests/test_signatures.py::test_signatures_have_a_test_defined[signatures.helpscout] PASSED [ 12%]
tests/test_signatures.py::test_signatures_have_a_test_defined[signatures.brandpad] PASSED [ [13](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:14)%]
tests/test_signatures.py::test_signatures_have_a_test_defined[signatures._generic_cname_found_but_404_http] PASSED [ 13%]
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.aws_ns] PASSED [ [14](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:15)%]
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures._generic_zone_missing_on_ns] PASSED [ [15](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:16)%]
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.jetbrains] PASSED [ 15%]
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.surge] PASSED [ [16](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:17)%]
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.mysmartjobboard] PASSED [ 16%]
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.ngrok] PASSED [ [17](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:18)%]
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures._generic_cname_found_doesnt_resolve] PASSED [ 17%]
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.bigcartel] PASSED [ [18](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:19)%]
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.mystrikingly] PASSED [ 18%]
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.github_pages] PASSED [ [19](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:20)%]
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.wordpress_com_cname] PASSED [ [20](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:21)%]
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.anima] PASSED [ 20%]
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.shopify] PASSED [ [21](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:22)%]
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.agilecrm] PASSED [ 21%]
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.launchrock_cname] PASSED [ [22](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:23)%]
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.airee_ru] PASSED [ 22%]
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.brightcove] PASSED [ [23](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:24)%]
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.wordpress_com_ns] PASSED [ 23%]
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.cargo_collective] PASSED [ [24](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:25)%]
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures._generic_cname_found_but_404_https] PASSED [ [25](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:26)%]
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.microsoft_azure] PASSED [ 25%]
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.smartjobboard] PASSED [ [26](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:27)%]
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.helpscout] PASSED [ 26%]
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures.brandpad] PASSED [ [27](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:28)%]
tests/test_signatures.py::test_signatures_inherit_from_Base[signatures._generic_cname_found_but_404_http] PASSED [ 27%]
tests/test_signatures.py::test_signatures_INFO_strings_are_unique PASSED [ [28](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:29)%]
tests/signatures_tests/test_generic_cname_found_but_404_http.py::test_potential_success_with_a_cname PASSED [ 28%]
tests/signatures_tests/test_generic_cname_found_but_404_http.py::test_potential_failure PASSED [ [29](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:30)%]
tests/signatures_tests/test_generic_cname_found_but_404_http.py::test_check_success PASSED [ [30](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:31)%]
tests/signatures_tests/test_generic_cname_found_but_404_http.py::test_check_failure PASSED [ 30%]
tests/signatures_tests/test_generic_cname_found_but_404_https.py::test_potential_success_with_a_cname PASSED [ [31](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:32)%]
tests/signatures_tests/test_generic_cname_found_but_404_https.py::test_potential_failure PASSED [ 31%]
tests/signatures_tests/test_generic_cname_found_but_404_https.py::test_check_success PASSED [ [32](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:33)%]
tests/signatures_tests/test_generic_cname_found_but_404_https.py::test_check_failure PASSED [ 32%]
tests/signatures_tests/test_generic_cname_found_doesnt_resolve.py::test_potential_success_with_a_cname PASSED [ [33](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:34)%]
tests/signatures_tests/test_generic_cname_found_doesnt_resolve.py::test_potential_failure PASSED [ 33%]
tests/signatures_tests/test_generic_cname_found_doesnt_resolve.py::test_check_success PASSED [ [34](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:35)%]
tests/signatures_tests/test_generic_cname_found_doesnt_resolve.py::test_check_failure PASSED [ [35](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:36)%]
tests/signatures_tests/test_generic_cname_found_doesnt_resolve.py::test_check_success_ACTIVE PASSED [ 35%]
tests/signatures_tests/test_generic_zone_missing_on_ns.py::test_potential_success_with_a_nameserver PASSED [ [36](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:37)%]
tests/signatures_tests/test_generic_zone_missing_on_ns.py::test_potential_success_with_multiple_nameservers PASSED [ 36%]
tests/signatures_tests/test_generic_zone_missing_on_ns.py::test_potential_failure PASSED [ [37](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:38)%]
tests/signatures_tests/test_shopify.py::test_potential_success_match_ipv4 PASSED [ 37%]
tests/signatures_tests/test_shopify.py::test_potential_success_match_cname PASSED [ [38](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:39)%]
tests/signatures_tests/test_shopify.py::test_potential_failure PASSED    [ 38%]
tests/signatures_tests/test_shopify.py::test_check_success PASSED        [ [39](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:40)%]
tests/signatures_tests/test_shopify.py::test_check_failure PASSED        [ [40](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:41)%]
tests/signatures_tests/test_shopify.py::test_check_message_for_ipv4_ACTIVE PASSED [ 40%]
tests/signatures_tests/test_shopify.py::test_check_message_for_cname_ACTIVE PASSED [ [41](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:42)%]
tests/signatures_tests/checks/test_A.py::test_match_for_single_ip PASSED [ 41%]
tests/signatures_tests/checks/test_A.py::test_match_for_multiple_ip PASSED [ [42](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:43)%]
tests/signatures_tests/checks/test_A.py::test_match_for_one_of_multiple_ip PASSED [ 42%]
tests/signatures_tests/checks/test_A.py::test_match_for_none_of_multiple_ip PASSED [ [43](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:44)%]
tests/signatures_tests/checks/test_A.py::test_match_for_none_matching_ip PASSED [ 43%]
tests/signatures_tests/checks/test_A.py::test_match_with_no_A_records PASSED [ [44](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:45)%]
tests/signatures_tests/checks/test_A.py::test_match_multiple_with_no_A_records PASSED [ [45](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:46)%]
tests/signatures_tests/checks/test_AAAA.py::test_ipv6_in_AAAA_for_single_ip PASSED [ 45%]
tests/signatures_tests/checks/test_AAAA.py::test_ipv6_in_AAAA_for_multiple_ip PASSED [ [46](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:47)%]
tests/signatures_tests/checks/test_AAAA.py::test_ipv6_in_AAAA_for_one_of_multiple_ip PASSED [ 46%]
tests/signatures_tests/checks/test_AAAA.py::test_ipv6_in_AAAA_for_none_of_multiple_ip PASSED [ [47](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:48)%]
tests/signatures_tests/checks/test_AAAA.py::test_ipv6_in_AAAA_for_none_matching_ip PASSED [ 47%]
tests/signatures_tests/checks/test_AAAA.py::test_ipv6_in_AAAA_with_no_AAAA_records PASSED [ [48](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:49)%]
tests/signatures_tests/checks/test_AAAA.py::test_ipv6_in_AAAA_multiple_with_no_AAAA_records PASSED [ 48%]
tests/signatures_tests/checks/test_CNAME.py::test_match_for_single_string PASSED [ [49](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:50)%]
tests/signatures_tests/checks/test_CNAME.py::test_match_for_single_substring PASSED [ [50](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:51)%]
tests/signatures_tests/checks/test_CNAME.py::test_match_where_cname_is_subtring_of_string PASSED [ 50%]
tests/signatures_tests/checks/test_CNAME.py::test_match_for_multiple_string PASSED [ [51](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:52)%]
tests/signatures_tests/checks/test_CNAME.py::test_match_for_one_of_multiple_string PASSED [ 51%]
tests/signatures_tests/checks/test_CNAME.py::test_match_for_one_of_multiple_substring PASSED [ [52](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:53)%]
tests/signatures_tests/checks/test_CNAME.py::test_match_for_none_of_multiple_string PASSED [ 52%]
tests/signatures_tests/checks/test_CNAME.py::test_match_for_none_matching_string PASSED [ [53](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:54)%]
tests/signatures_tests/checks/test_CNAME.py::test_match_with_no_CNAME_records PASSED [ 53%]
tests/signatures_tests/checks/test_CNAME.py::test_match_multiple_with_no_CNAME_records PASSED [ [54](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:55)%]
tests/signatures_tests/checks/test_CNAME.py::test_NX_DOMAIN_on_resolve_success PASSED [ [55](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:56)%]
tests/signatures_tests/checks/test_CNAME.py::test_NX_DOMAIN_on_resolve_failure_A_record_found PASSED [ 55%]
tests/signatures_tests/checks/test_CNAME.py::test_NX_DOMAIN_on_resolve_failure_AAAA_record_found PASSED [ [56](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:57)%]
tests/signatures_tests/checks/test_CNAME.py::test_NX_DOMAIN_on_resolve_failure_CNAME_record_found PASSED [ 56%]
tests/signatures_tests/checks/test_CNAME.py::test_NX_DOMAIN_on_resolve_failure_NS_record_found PASSED [ [57](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:58)%]
tests/signatures_tests/checks/test_CNAME.py::test_NX_DOMAIN_on_resolve_failure_no_cname PASSED [ 57%]
tests/signatures_tests/checks/test_COMBINED.py::test_matching_ipv4_or_ipv6_ipv4_match PASSED [ [58](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:59)%]
tests/signatures_tests/checks/test_COMBINED.py::test_matching_ipv4_or_ipv6_ipv6_match PASSED [ 58%]
tests/signatures_tests/checks/test_COMBINED.py::test_matching_ipv4_or_ipv6_no_match PASSED [ [59](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:60)%]
tests/signatures_tests/checks/test_COMBINED.py::test_matching_ipv4_or_cname_ipv4_match PASSED [ [60](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:61)%]
tests/signatures_tests/checks/test_COMBINED.py::test_matching_ipv4_or_cname_cname_match PASSED [ 60%]
tests/signatures_tests/checks/test_COMBINED.py::test_matching_ipv4_or_cname_no_match PASSED [ [61](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:62)%]
tests/signatures_tests/checks/test_NS.py::test_match_for_single_string PASSED [ 61%]
tests/signatures_tests/checks/test_NS.py::test_match_for_single_substring PASSED [ [62](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:63)%]
tests/signatures_tests/checks/test_NS.py::test_match_where_ns_is_subtring_of_string PASSED [ 62%]
tests/signatures_tests/checks/test_NS.py::test_match_for_multiple_string PASSED [ [63](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:64)%]
tests/signatures_tests/checks/test_NS.py::test_match_for_one_of_multiple_string PASSED [ 63%]
tests/signatures_tests/checks/test_NS.py::test_match_for_one_of_multiple_substring PASSED [ [64](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:65)%]
tests/signatures_tests/checks/test_NS.py::test_match_for_none_of_multiple_string PASSED [ [65](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:66)%]
tests/signatures_tests/checks/test_NS.py::test_match_for_none_matching_string PASSED [ 65%]
tests/signatures_tests/checks/test_NS.py::test_match_with_no_ns_records PASSED [ [66](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:67)%]
tests/signatures_tests/checks/test_NS.py::test_match_multiple_with_no_ns_records PASSED [ 66%]
tests/signatures_tests/checks/test_NS.py::test_no_SOA_detected_on_NS_with_matching_nameservers PASSED [ [67](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:68)%]
tests/signatures_tests/checks/test_NS.py::test_no_SOA_detected_on_NS_with_no_matching_nameservers PASSED [ 67%]
tests/signatures_tests/checks/test_NS.py::test_no_SOA_detected_on_NS_with_no_nameservers PASSED [ [68](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:69)%]
tests/signatures_tests/checks/test_WEB.py::test_string_in_body_success_on_full_match PASSED [ 68%]
tests/signatures_tests/checks/test_WEB.py::test_string_in_body_success_on_partial_match PASSED [ [69](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:70)%]
tests/signatures_tests/checks/test_WEB.py::test_string_in_body_failure_on_no_match PASSED [ [70](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:71)%]
tests/signatures_tests/checks/test_WEB.py::test_string_in_body_failure_on_no_body PASSED [ 70%]
tests/signatures_tests/checks/test_WEB.py::test_status_code_match_success_specific PASSED [ [71](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:72)%]
tests/signatures_tests/checks/test_WEB.py::test_status_code_match_success_partial PASSED [ 71%]
tests/signatures_tests/checks/test_WEB.py::test_status_code_match_fail_specific PASSED [ [72](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:73)%]
tests/signatures_tests/checks/test_WEB.py::test_status_code_match_fail_partial PASSED [ 72%]
tests/signatures_tests/checks/test_WEB.py::test_status_code_404_success PASSED [ [73](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:74)%]
tests/signatures_tests/checks/test_WEB.py::test_status_code_404_failure PASSED [ 73%]
tests/signatures_tests/checks/test_helpers.py::test_substrings_in_strings_for_single_string PASSED [ [74](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:75)%]
tests/signatures_tests/checks/test_helpers.py::test_substrings_in_strings_for_single_substring PASSED [ [75](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:76)%]
tests/signatures_tests/checks/test_helpers.py::test_substrings_in_strings_for_multiple_substring PASSED [ 75%]
tests/signatures_tests/checks/test_helpers.py::test_substrings_in_strings_returns_first_for_multiple_strings PASSED [ [76](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:77)%]
tests/signatures_tests/checks/test_helpers.py::test_substrings_in_strings_no_subtrings PASSED [ 76%]
tests/signatures_tests/checks/test_helpers.py::test_substrings_in_strings_no_strings PASSED [ [77](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:78)%]
tests/signatures_tests/checks/test_helpers.py::test_substrings_in_strings_nothing PASSED [ 77%]
tests/signatures_tests/templates/test_cname_found_but_NX_DOMAIN.py::test_potential_success_with_matching_CNAME PASSED [ [78](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:79)%]
tests/signatures_tests/templates/test_cname_found_but_NX_DOMAIN.py::test_potential_failure_no_matching_CNAME PASSED [ 78%]
tests/signatures_tests/templates/test_cname_found_but_NX_DOMAIN.py::test_check_success PASSED [ [79](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:80)%]
tests/signatures_tests/templates/test_cname_found_but_NX_DOMAIN.py::test_check_failure PASSED [ [80](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:81)%]
tests/signatures_tests/templates/test_cname_found_but_NX_DOMAIN.py::test_check_success_ACTIVE[signatures.microsoft_azure] PASSED [ 80%]
tests/signatures_tests/templates/test_cname_found_but_status_code.py::test_potential_success_with_matching_CNAME PASSED [ [81](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:82)%]
tests/signatures_tests/templates/test_cname_found_but_status_code.py::test_potential_failure_no_matching_CNAME PASSED [ 81%]
tests/signatures_tests/templates/test_cname_found_but_status_code.py::test_check_success PASSED [ [82](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:83)%]
tests/signatures_tests/templates/test_cname_found_but_status_code.py::test_check_failure PASSED [ 82%]
tests/signatures_tests/templates/test_cname_found_but_status_code.py::test_check_success_ACTIVE[signature0] SKIPPED [ [83](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:84)%]
tests/signatures_tests/templates/test_cname_found_but_string_in_body.py::test_potential_success_with_matching_CNAME PASSED [ 83%]
tests/signatures_tests/templates/test_cname_found_but_string_in_body.py::test_potential_failure_no_matching_CNAME PASSED [ [84](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:85)%]
tests/signatures_tests/templates/test_cname_found_but_string_in_body.py::test_check_success PASSED [ [85](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:86)%]
tests/signatures_tests/templates/test_cname_found_but_string_in_body.py::test_check_failure PASSED [ 85%]
tests/signatures_tests/templates/test_cname_found_but_string_in_body.py::test_check_success_ACTIVE[signatures.jetbrains] PASSED [ [86](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:87)%]
tests/signatures_tests/templates/test_cname_found_but_string_in_body.py::test_check_success_ACTIVE[signatures.surge] PASSED [ 86%]
tests/signatures_tests/templates/test_cname_found_but_string_in_body.py::test_check_success_ACTIVE[signatures.mysmartjobboard] PASSED [ [87](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:88)%]
tests/signatures_tests/templates/test_cname_found_but_string_in_body.py::test_check_success_ACTIVE[signatures.ngrok] PASSED [ 87%]
tests/signatures_tests/templates/test_cname_found_but_string_in_body.py::test_check_success_ACTIVE[signatures.bigcartel] PASSED [ [88](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:89)%]
tests/signatures_tests/templates/test_cname_found_but_string_in_body.py::test_check_success_ACTIVE[signatures.mystrikingly] PASSED [ 88%]
tests/signatures_tests/templates/test_cname_found_but_string_in_body.py::test_check_success_ACTIVE[signatures.wordpress_com_cname] PASSED [ [89](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:90)%]
tests/signatures_tests/templates/test_cname_found_but_string_in_body.py::test_check_success_ACTIVE[signatures.agilecrm] PASSED [ [90](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:91)%]
tests/signatures_tests/templates/test_cname_found_but_string_in_body.py::test_check_success_ACTIVE[signatures.launchrock_cname] PASSED [ 90%]
tests/signatures_tests/templates/test_cname_found_but_string_in_body.py::test_check_success_ACTIVE[signatures.airee_ru] PASSED [ [91](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:92)%]
tests/signatures_tests/templates/test_cname_found_but_string_in_body.py::test_check_success_ACTIVE[signatures.brightcove] PASSED [ 91%]
tests/signatures_tests/templates/test_cname_found_but_string_in_body.py::test_check_success_ACTIVE[signatures.cargo_collective] PASSED [ [92](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:93)%]
tests/signatures_tests/templates/test_cname_found_but_string_in_body.py::test_check_success_ACTIVE[signatures.smartjobboard] PASSED [ 92%]
tests/signatures_tests/templates/test_cname_found_but_string_in_body.py::test_check_success_ACTIVE[signatures.helpscout] PASSED [ [93](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:94)%]
tests/signatures_tests/templates/test_cname_found_but_string_in_body.py::test_check_success_ACTIVE[signatures.brandpad] PASSED [ 93%]
tests/signatures_tests/templates/test_ip_found_but_string_in_body.py::test_potential_success_with_matching_ipv4 PASSED [ [94](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:95)%]
tests/signatures_tests/templates/test_ip_found_but_string_in_body.py::test_potential_success_with_matching_ipv6 PASSED [ [95](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:96)%]
tests/signatures_tests/templates/test_ip_found_but_string_in_body.py::test_potential_failure_no_matching_CNAME PASSED [ 95%]
tests/signatures_tests/templates/test_ip_found_but_string_in_body.py::test_check_success PASSED [ [96](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:97)%]
tests/signatures_tests/templates/test_ip_found_but_string_in_body.py::test_check_failure PASSED [ 96%]
tests/signatures_tests/templates/test_ip_found_but_string_in_body.py::test_check_success_ACTIVE[signatures.github_pages] PASSED [ [97](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:98)%]
tests/signatures_tests/templates/test_ip_found_but_string_in_body.py::test_check_success_ACTIVE[signatures.anima] PASSED [ 97%]
tests/signatures_tests/templates/test_ns_found_but_no_SOA.py::test_potential_success_with_matching_nameserver PASSED [ [98](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:99)%]
tests/signatures_tests/templates/test_ns_found_but_no_SOA.py::test_potential_failure PASSED [ 98%]
tests/signatures_tests/templates/test_ns_found_but_no_SOA.py::test_check_success_ACTIVE[signatures.aws_ns] PASSED [ [99](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:100)%]
tests/signatures_tests/templates/test_ns_found_but_no_SOA.py::test_check_success_ACTIVE[signatures.wordpress_com_ns] PASSED [[100](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:101)%]
======================= [179](https://github.com/punk-security/dnsReaper/runs/7488968070?check_suite_focus=true#step:4:180) passed, 1 skipped in 10.44s ========================