Simovits

Enkelt verktyg för subdomän-skanning

Om man i sin verksamhet använder sig av subdomäner för att avskilja olika internetbaserade tjänster så är det viktigt att komma ihåg att inaktivera subdomänen då den inte används längre. Särskilt viktigt är det förstås ifall subdomänen pekar mot en domän som man själv inte har kontroll över. Det finns exempelvis användningsfall där man använder en tredjepartsleverantör för ett specifikt API men vill använda sin egen domän av olika orsaker. Exempel: api2.testitesttest.se hänvisas till molnleverantorenx.se som i sin tur pekar domännamnet mot rätt IP vid en DNS-request. Det vill säga att en cname-pekare konfigureras från api2.testitesttest.se mot molnleverantorenx.se. Ifall man i framtiden slutar använda sin api2.testitesttest.se-adress hos molnleverantorenx.se så kanske molnleverantorenx.se låter någon annan registrera api2.testitesttest.se (eftersom den inte längre används) och därmed möjliggörs en subdomain-takeover. Här finns en fin beskrivning https://0xpatrik.com/subdomain-takeover-basics/ över riskerna med att glömma bort att ta hand om sin DNS.

Vanligen leder en bortglömd subdomän inte till någon allvarlig brist… men det skulle kunna vara en potentiell sårbarhet beroende på hur den bortglömda subdomänen används eller använts historiskt. För att slippa sådana situationer kan det då vara bra att hålla koll på sina egna domänregistreringar. Det finns förstås ett antal verktyg för olika tester kring detta på internet…men det kan vara nyttigt att göra sitt eget verktyg som utgår ifrån domänstrukturen och tjänsterna hos den organisation man testar. Om inte annat för att få kontroll över vad det är man gör. Särskilt som det inte är komplicerat. För detta syfte kan man använda en kod-template som jag publicerat här: https://github.com/jamesrep/subrub3. Eftersom koden är kortfattad kan man således ändra den efter vad man har för behov för den domän som man för tillfället testar.

Programmet använder det gamla programmet dig för DNS-requests (för att slippa implementera DNS-protokoll). Ifall man använder Windows behöver man sannolikt installera Bind för att få tillgång till dig. Det kan laddas ned på följande länk: https://www.isc.org/download/. Nedanstående programargument kan användas.


--threads [antal trådar som ska användas i skanningen]

--domain [domänen som ska skannas]

--domainfile [filsökväg till en lista av domäner som ska skannas]

--domainlist [filsökväg till sub-domäner att testa]

--output [utdata ska ske till denna fil]

--avoid [ip som ska undvikas att rapporteras om]

--full – Ifall denna parameter anges så utförs full skanning med http-tester etc.

Nedan ges två exempel på utdata med fiktiva ip-adresser och domäner:

Exempel 1Subdomänen finns och pekar mot ip 1.2.3.4 som ägs av organisationen men det går inte att ansluta via http eller https.

webmail.example.se|1.2.3.4|http:The operation has timed out|https:The operation has timed out|NOERROR|A:webmail.example.se:1.2.3.4

Exempel 2Subdomänen finns och pekar mot en tredjepartsserver (exampleserver.example.com). Det går inte att ansluta via vare sig http eller https. I detta fall kan det vara nyttigt att kontrollera vad tredjepartsservern är för något. Går det att registrera basdomänen example.com eller är det en molntjänst där det går att registrera egna domännamn?


www99.example.se|5.6.7.8|http:The operation has timed out|https:The operation has timed out|NOERROR|CNAME:www99.example.se:exampleserver.example.com,A:exampleserver.example.com:5.6.7.8