mirror of
https://github.com/MattKeeley/Spoofy.git
synced 2026-02-16 10:52:12 +00:00
135 lines
3.9 KiB
Python
Executable File
135 lines
3.9 KiB
Python
Executable File
import unittest
|
|
from modules.spoofing import Spoofing
|
|
|
|
|
|
class TestSpoofy(unittest.TestCase):
|
|
def test_spoofing_is_possible(self):
|
|
spoofing = Spoofing(
|
|
domain="test_0.com",
|
|
dmarc_record="v=DMARC1; p=none;",
|
|
p="none",
|
|
aspf="r",
|
|
spf_record="v=spf1 include:fake.gov",
|
|
spf_all="~all",
|
|
spf_dns_queries=3,
|
|
sp=None,
|
|
pct=100,
|
|
)
|
|
self.assertEqual(spoofing.spoofable, 0)
|
|
|
|
def test_subdomain_spoofing(self):
|
|
spoofing = Spoofing(
|
|
domain="test_1.com",
|
|
dmarc_record="v=DMARC1; p=reject;",
|
|
p="none",
|
|
aspf=None,
|
|
spf_record="v=spf1 include:fakest.domain.com",
|
|
spf_all="-all",
|
|
spf_dns_queries=3,
|
|
sp="none",
|
|
pct=100,
|
|
)
|
|
self.assertEqual(spoofing.spoofable, 1)
|
|
|
|
def test_organizational_domain_spoofing(self):
|
|
spoofing = Spoofing(
|
|
domain="test_2.com",
|
|
dmarc_record="v=DMARC1; p=none;",
|
|
p="none",
|
|
aspf="r",
|
|
spf_record="v=spf1 include:fakest.domain.com include:faker.domain.com",
|
|
spf_all="-all",
|
|
spf_dns_queries=2,
|
|
sp="reject",
|
|
pct=100,
|
|
)
|
|
self.assertEqual(spoofing.spoofable, 2)
|
|
|
|
def test_spoofing_might_be_possible(self):
|
|
spoofing = Spoofing(
|
|
domain="test_3.com",
|
|
dmarc_record="v=DMARC1; p=none;",
|
|
p="none",
|
|
aspf=None,
|
|
spf_record="v=spf1 include:fakest.domain.com",
|
|
spf_all="~all",
|
|
spf_dns_queries=1,
|
|
sp="quarantine",
|
|
pct=90,
|
|
)
|
|
self.assertEqual(spoofing.spoofable, 3)
|
|
|
|
def test_spoofing_might_be_possible_mbd(self):
|
|
spoofing = Spoofing(
|
|
domain="test_4.com",
|
|
dmarc_record="v=DMARC1; p=none;",
|
|
p="none",
|
|
aspf=None,
|
|
spf_record="v=spf1 include:fakest.domain.com",
|
|
spf_all="-all",
|
|
spf_dns_queries=1,
|
|
sp=None,
|
|
pct=100,
|
|
)
|
|
self.assertEqual(spoofing.spoofable, 4)
|
|
|
|
def test_org_domain_spoofing_might_be_possible(self):
|
|
spoofing = Spoofing(
|
|
domain="test_5.com",
|
|
dmarc_record="v=DMARC1; p=none;",
|
|
p="none",
|
|
aspf=None,
|
|
spf_record="v=spf1 include:fakest.domain.com",
|
|
spf_all="-all",
|
|
spf_dns_queries=1,
|
|
sp="reject",
|
|
pct=100,
|
|
)
|
|
self.assertEqual(spoofing.spoofable, 5)
|
|
|
|
def test_subdomain_spoofing_might_be_possible_mbd(self):
|
|
spoofing = Spoofing(
|
|
domain="test_6.com",
|
|
dmarc_record="v=DMARC1; p=reject;",
|
|
p="reject",
|
|
aspf="r",
|
|
spf_record="v=spf1 include:fakest.domain.com",
|
|
spf_all="?all",
|
|
spf_dns_queries=1,
|
|
sp="none",
|
|
pct=100,
|
|
)
|
|
self.assertEqual(spoofing.spoofable, 6)
|
|
|
|
def test_subdomain_spoofing_and_org_spoofing_might_be_possible(self):
|
|
spoofing = Spoofing(
|
|
domain="test_7.com",
|
|
dmarc_record="v=DMARC1; p=none;",
|
|
p="none",
|
|
aspf=None,
|
|
spf_record="v=spf1 include:fakest.domain.com",
|
|
spf_all="~all",
|
|
spf_dns_queries=3,
|
|
sp="none",
|
|
pct=100,
|
|
)
|
|
self.assertEqual(spoofing.spoofable, 7)
|
|
|
|
def test_spoofing_not_possible(self):
|
|
spoofing = Spoofing(
|
|
domain="test_8.com",
|
|
dmarc_record="v=DMARC1; p=none;",
|
|
p="none",
|
|
aspf="s",
|
|
spf_record="v=spf1 include:domain.com",
|
|
spf_all="-all",
|
|
spf_dns_queries=1,
|
|
sp="reject",
|
|
pct=100,
|
|
)
|
|
self.assertEqual(spoofing.spoofable, 8)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|