
Un outil OSINT pour rechercher des comptes par nom d'utilisateur dans les réseaux sociaux.
Le Lockheed SR-71 « Blackbird » est un avion de reconnaissance stratégique à longue portée, haute altitude et Mach 3+, développé et fabriqué par la société aérospatiale américaine Lockheed Corporation.
Ce programme ou le précédent est uniquement à des fins éducatives. Ne l'utilisez pas sans autorisation.
La clause de non-responsabilité habituelle s'applique, notamment le fait que moi (P1ngul1n0) ne suis pas responsable des
dommages causés par l'utilisation directe ou indirecte des informations ou fonctionnalités fournies par ces
programmes. L'auteur ou tout fournisseur d'accès Internet ne porte AUCUNE responsabilité quant au contenu ou à la mauvaise
utilisation de ces programmes ou de leurs dérivés. En utilisant ces programmes, vous acceptez le fait
que tout dommage (perte de données, crash système, compromission système, etc.) causé par l'utilisation de ces
programmes n'est pas la responsabilité de P1ngul1n0.
git clone https://github.com/p1ngul1n0/blackbird
cd blackbird
pip install -r requirements.txt
python blackbird.py -u username
python blackbird.py --web
Accédez à http://127.0.0.1:9797 dans le navigateur
python blackbird.py -f username.json
python blackbird.py --list-sites
python blackbird.py -u crash --proxy http://127.0.0.1:8080
Par défaut, seuls les comptes trouvés seront affichés, mais vous pouvez utiliser l'argument ci-dessous pour tous les voir.
python blackbird.py -u crash --show-all
Blackbird peut également être utilisé avec Docker.
docker pull p1ngul1n0/blackbird:v2
docker run -p 9797:9797 p1ngul1n0/blackbird:v2 "--web"
Les résultats peuvent être exportés sous forme de rapport PDF.
blackbird-pdf-cover
Lorsque c'est possible, Blackbird extrait les métadonnées de l'utilisateur, récupérant des données telles que le nom, la bio, la localisation et la photo de profil.
Blackbird utilise un UserAgent aléatoire provenant d'une liste de 1000 UserAgents pour chaque requête afin d'éviter le blocage.
Blackbird envoie des requêtes HTTP asynchrones, ce qui permet d'être beaucoup plus rapide lors de la découverte de comptes utilisateurs.
Le fichier data.json stocke tous les sites que Blackbird vérifie.
GET
{
"app": "ExampleAPP1",
"url": "https://www.example.com/{username}",
"valid": "response.status == 200",
"id": 1,
"method": "GET"
}
POST JSON
{
"app": "ExampleAPP2",
"url": "https://www.example.com/user",
"valid": "jsonData['message']['found'] == True",
"json": "{{\"type\": \"username\",\"input\": \"{username}\"}}",
"id": 2,
"method": "POST"
}
GET avec extraction de métadonnées
{
"app": "Twitter",
"id": 3,
"method": "GET",
"url": "https://nitter.net/{username}",
"valid": "response.status == 200",
"metadata": [
{
"type": "generic-data",
"key": "Name",
"value": "soup.find('a', class_='profile-card-fullname')['title']"
},
{
"type": "generic-data",
"key": "Bio",
"value": "soup.find('div',class_='profile-bio').string"
},
{
"type": "generic-data",
"key": "Site",
"value": "soup.find('div',class_='profile-website').text.strip('\\t\\r\\n')"
},
{
"type": "generic-data",
"key": "Member since",
"value": "soup.find('div',class_='profile-joindate').find('span')['title']"
},
{
"type": "image",
"key": "picture",
"value": "'https://nitter.net'+soup.find('a', class_='profile-card-avatar')['href']"
},
{
"type": "location",
"key": "location",
"value": "soup.select_one('.profile-location:nth-of-type(2)').text.strip('\\t\\r\\n')"
}
]
}
Je suis reconnaissant à tous les contributeurs qui ont amélioré et corrigé le projet.
enumerate et la division du code en fonctions.N'hésitez pas à me contacter sur Twitter
Si vous avez une suggestion de site à inclure dans la recherche, faites une pull request en suivant le modèle.