Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi @MattKeeley, I'm really happy to use your tool and wanted to add another interesting record if you agree.
The subject : BIMI
The BIMI record enable the possibility to put logo onto email head (like people logo on outlook/gmail) , that's not something common but it's interesting for phishing awareness campaign.
The BIMI is interesting because really easy to spoof, all you'r need to do is to create a domain, add a logo on HTTPS server and create a TXT record on it. And the image could be basically whatever you want... That's not the best design for protecting email imho. For the defense of BIMI model, it's not trivial to detect logo impersonation...
You can read more here : https://datatracker.ietf.org/doc/html/draft-brand-indicators-for-message-identification
the feature : gather BIMI record
So I've added a BIMI record libs (bimi.py) containing only the model proposed on RFC and just that basically. I've also adapted spoofy.py, report.py for using it and export it on report. ;)
Some though on developing
I've struggling a long time with debugging because of that :
Spoofy/spoofy.py
Lines 39 to 42 in d723ffa
You catch basically every error and consider it as a malformed domain, I think it could help to catch only DNS error like that.
On test.py, to be honest, I don't understand how I've passed it, just added
None
everywhere at the beginning, roll back and that mysteriously working.Finally I would add new feature regarding BIMI because the image can be check with a PEM key (take amazon.fr as an example), and it could be parsed, but imho, the simple existence of BIMI record enable impersonation on company brand.