p1ngul1n0 / blackbird Goto Github PK
View Code? Open in Web Editor NEWAn OSINT tool to search for accounts by username and email in social networks.
Home Page: https://p1ngul1n0.gitbook.io/blackbird/
An OSINT tool to search for accounts by username and email in social networks.
Home Page: https://p1ngul1n0.gitbook.io/blackbird/
teste
py3 blackbird.py --web
2 ⨯
▄▄▄▄ ██▓ ▄▄▄ ▄████▄ ██ ▄█▀ ▄▄▄▄ ██▓ ██▀███ ▓█████▄
▓█████▄ ▓██▒ ▒████▄ ▒██▀ ▀█ ██▄█▒ ▓█████▄ ▓██▒▓██ ▒ ██▒▒██▀ ██▌
▒██▒ ▄██▒██░ ▒██ ▀█▄ ▒▓█ ▄ ▓███▄░ ▒██▒ ▄██▒██▒▓██ ░▄█ ▒░██ █▌
▒██░█▀ ▒██░ ░██▄▄▄▄██ ▒▓▓▄ ▄██▒▓██ █▄ ▒██░█▀ ░██░▒██▀▀█▄ ░▓█▄ ▌
░▓█ ▀█▓░██████▒▓█ ▓██▒▒ ▓███▀ ░▒██▒ █▄░▓█ ▀█▓░██░░██▓ ▒██▒░▒████▓
░▒▓███▀▒░ ▒░▓ ░▒▒ ▓▒█░░ ░▒ ▒ ░▒ ▒▒ ▓▒░▒▓███▀▒░▓ ░ ▒▓ ░▒▓░ ▒▒▓ ▒
▒░▒ ░ ░ ░ ▒ ░ ▒ ▒▒ ░ ░ ▒ ░ ░▒ ▒░▒░▒ ░ ▒ ░ ░▒ ░ ▒░ ░ ▒ ▒
░ ░ ░ ░ ░ ▒ ░ ░ ░░ ░ ░ ░ ▒ ░ ░░ ░ ░ ░ ░
░ ░ ░ ░ ░░ ░ ░ ░ ░ ░ ░ ░
░ ░ ░ ░
Made with ❤️️ by p1ngul1n0
[!] Started WebServer on http://127.0.0.1:9797/
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.10/dist-packages/flask/app.py", line 2077, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python3.10/dist-packages/flask/app.py", line 1525, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.10/dist-packages/flask_cors/extension.py", line 165, in wrapped_function
return cors_after_request(app.make_response(f(*args, **kwargs)))
File "/usr/local/lib/python3.10/dist-packages/flask/app.py", line 1523, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.10/dist-packages/flask/app.py", line 1509, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
File "/root/scripts/_OSINT/blackbird/webserver.py", line 24, in searchUsername
results = loop.run_until_complete(findUsername(username))
File "/usr/lib/python3.10/asyncio/base_events.py", line 646, in run_until_complete
return future.result()
File "/root/scripts/_OSINT/blackbird/blackbird.py", line 38, in findUsername
results = await asyncio.gather(*tasks)
File "/root/scripts/_OSINT/blackbird/blackbird.py", line 91, in makeRequest
if showAll:
NameError: name 'showAll' is not defined
Hey, I noticed the web interface doesn't have a very good UI/UX, do you think a redesign would be a good decision, Also I want to host the website will you choose my Hosting as the official one If i do so? Please note that I'll add google ads in order to make the hosting cost a little cheaper on me
Traceback (most recent call last):
File "G:\000\blackbird\blackbird.py", line 215, in <module>
verifyEmail(config.currentEmail)
File "G:\000\blackbird\src\modules\core\email.py", line 125, in verifyEmail
foundAccounts = list(filter(filterFoundAccounts, results["results"]))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "G:\000\blackbird\src\modules\utils\filter.py", line 7, in filterFoundAccounts
if site["status"] == "FOUND":
~~~~^^^^^^^^^^
TypeError: 'TypeError' object is not subscriptable
this is the main error that i get when trying to use the --email
parameter.
in ./src/modules/utils/filter.py
i added a print(site)
before if site["status"] === "FOUND":
and here is the log:
{'name': 'Gravatar', 'url': 'https://gravatar.com/0925f997eb0d742678f66d2da134d15d842d57722af5f7605c4785cb5358831b.json', 'status': 'NOT-FOUND', 'metadata': []}
{'name': 'Adobe', 'url': 'https://auth.services.adobe.com/signin/v2/users/accounts', 'status': 'FOUND', 'metadata': [[]]}
{'name': 'Duolingo', 'url': 'https://www.duolingo.com/2017-06-30/[email protected]', 'status': 'FOUND', 'metadata': []}
{'name': 'Chess.com', 'url': 'https://www.chess.com/callback/email/[email protected]', 'status': 'FOUND', 'metadata': []}
{'name': 'Notion', 'url': 'https://www.notion.so/api/v3/getLoginOptions', 'status': 'FOUND', 'metadata': []}
{'name': 'Spotify', 'url': 'https://spclient.wg.spotify.com/signup/public/v1/account?validate=1&[email protected]', 'status': 'FOUND', 'metadata': []}
{'name': 'Strava', 'url': 'https://www.strava.com/athletes/[email protected]', 'status': 'NOT-FOUND', 'metadata': []}
{'name': 'Twitter', 'url': 'https://api.twitter.com/i/users/[email protected]', 'status': 'NOT-FOUND', 'metadata': []}
{'name': 'NetShoes', 'url': 'https://www.netshoes.com.br/auth/account/exists/[email protected]', 'status': 'NOT-FOUND', 'metadata': []}
{'name': 'OLX', 'url': 'https://apigw.olx.com.br/v0/user/login/check_email', 'status': 'NOT-FOUND', 'metadata': []}
{'name': 'Milanuncios', 'url': 'https://userprofiles.gw.milanuncios.com/api/v2/users', 'status': 'NOT-FOUND', 'metadata': []}
{'name': 'El Mundo', 'url': 'https://seguro.elmundo.es/ueregistro/v2/usuarios/registro', 'status': 'NOT-FOUND', 'metadata': []}
{'name': 'Xvideos', 'url': 'https://www.xvideos.com/account/[email protected]', 'status': 'FOUND', 'metadata': []}
{'name': 'Picsart', 'url': 'https://api.picsart.com/users/email/existence?email_encoded=0&[email protected]', 'status': 'FOUND', 'metadata': []}
replace() argument 2 must be str, not None
Traceback (most recent call last):
[...]
i'm not too experienced with this kind of stuff, but i'm assuming the fact that there is a replace()
statement which has a second argument that passes as None
, instead of a string could be the issue here.
if you could give some guidance here, that would be incredibly helpful.
thanks.
sys info:
FYI. I have proposed changes to the WMN JSON file that may impact your tool. Please visit WebBreacher/WhatsMyName#738 to read and comment.
And will the http proxy (http://127.0.0.1:8080) be used when the search is initiated?
The following sites will allways return 200 which shows up as status = "FOUND".
You need more refined tests for them.
"Pinterest"
"Vimeo"
"WordPress Site"
"Universocraft"
What can I do if I want to run the tool but I only can do it if I put python3 instead of just put python like the examples? Can someone help me, please?
I usually use Parrot OS.
Traceback (most recent call last):
File "blackbird.py", line 203, in
asyncio.run(findUsername(arguments.username, interfaceType, arguments.csv))
AttributeError: module 'asyncio' has no attribute 'run'
Hi,
The port on doc and interface is wrong its 9797 now.
Best regard
H
Hi, first of all nice work!!! amazing.
my issue is, that the webserver doesnt show any results, just a white screen. the results file (username.json) is fine. kind regards
Hi,
Just got this issue:
└── # python blackbird.py -u testuser 1 ⨯
File "blackbird.py", line 26
async def findUsername(username):
^
SyntaxError: invalid syntax
During installation I've got only one error, maybe that is the problem:
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
jackit 0.1.0 requires click==5.1, but you have click 8.1.3 which is incompatible.
Can you help solving the problem. Thanks
current code:
{
"app": "Gravatar",
"id": 319,
"method": "GET",
"url": "http://en.gravatar.com/profiles/{username}.json",
"valid": "response.status == 200 and 'entry' in responseContent"
},
{
changes in the data.json file with this code:
{
"app": "Gravatar",
"id": 319,
"method": "GET",
"url": "http://en.gravatar.com/{username}",
"valid": "response.status == 200 and 'entry' in responseContent"
},
python3 blackbird.py --web
:
Made with ❤️️ by p1ngul1n0
[!] Started WebServer on http://127.0.0.1:5000/
* Serving Flask app 'webserver'
* Debug mode: off
Access to 127.0.0.1 was denied
You don't have authorization to view this page.
HTTP ERROR 403
Describe the bug
Blackbird doesn't report consistent results over the same call and not finding true positives in some cases. I tried this with myself, and it cannot find my GitHub profile. Also in some cases, it reports 1 site and in others it reports several.
To Reproduce
Steps to reproduce the behavior:
python blackbird.py --username w0rmr1d3r
python blackbird.py --username w0rmr1d3r
Expected behavior
Even after executing with a couple of seconds between the first and second execution, it should (from my perspective) give the same results.
Screenshots
Screenshot of showing my Pypi profile, but not GitHub:
Desktop (please complete the following information):
Additional context
I saw there's the timeout
option to pass, but it did no effect, still displayed inconsistent results. If this is an expected behavior, I haven't seen it described in the README.
PS: Thank you for such a great tool!! 🚀
File "/home/kali/blackbird.py", line 113, in
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
AttributeError: module 'asyncio' has no attribute 'WindowsSelectorEventLoopPolicy'
I get this error !!!!!
Platform | Page | Metric | Min (ms) | Max (ms) | Average (ms) | StandardDeviation (ms) | MarginOfError (ms) |
---|---|---|---|---|---|---|---|
Chrome | Home | firstPaint | 68 | 189 | 121 | 33 | 16 |
domContentLoaded | 9 | 68 | 37 | 21 | 10 | ||
load | 56 | 2366 | 1314 | 923 | 443 | ||
domInteractive | 9 | 68 | 37 | 21 | 10 |
Originally posted by @metamaskbot in MetaMask/metamask-extension#23511 (comment)
Building a fresh Docker image from this Repository code today would lead into the following error:
...
from flask import Flask, Response, render_template, request, jsonify, send_file
File "/usr/local/lib/python3.8/dist-packages/flask/__init__.py", line 7, in <module>
from .app import Flask as Flask
File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 27, in <module>
from . import cli
File "/usr/local/lib/python3.8/dist-packages/flask/cli.py", line 17, in <module>
from .helpers import get_debug_flag
File "/usr/local/lib/python3.8/dist-packages/flask/helpers.py", line 14, in <module>
from werkzeug.urls import url_quote
ImportError: cannot import name 'url_quote' from 'werkzeug.urls' (/usr/local/lib/python3.8/dist-packages/werkzeug/urls.py)
This is not a bug of this code but one of Flask
and Werzeug
. The former does not specifiy the requirements correctly so that Werkzeug 3.0.0
and Flask
s code is not ready for this yet (see SO answer here).
Change this
pip install -r requirements.txt
to this
pip install -r requirements.txt && pip install Werkzeug==2.2.2
I would recommend to add this in the README until this is fixed.
Hi, first of all, great writing and great work! It gives me this error with the json format .... Could you tell me what it depends on?
[X] Error reading file [FileNotFoundError(2, 'No such file or directory')]
Best
Hello,
Using the script on Ubuntu VM.
Installation seems to have worked fine.
But when:
$ python3 blackbird.py --username xxx
I am getting:
Traceback (most recent call last):
File "/home/ws16/blackbird/blackbird.py", line 11, in
from modules.whatsmyname.list_operations import checkUpdates
File "/home/ws16/blackbird/src/modules/whatsmyname/list_operations.py", line 10, in
from utils.http_client import do_sync_request
ModuleNotFoundError: No module named 'utils.http_client'
Did I do something wrong or does this have to do with the fact WhatsMyName is bugging itself?
Thanks a lot,
Hi, here I am again
I'm trying to run blackbird in web mode using the "python blackbird.py --web" directive. The web interface can be opened normally. However, after entering "username" and clicking search, I have been stuck on the "Searching 131 sites for 'username'..." interface and have not returned. As shown below
I can make sure my network is accessible because I do a command-style search ("python blackbird.py -u just") with success. As shown below
I see the web version has this nicely stylised PDF option, and i'd love that as an export option for the CLI, is this something that could be implemented?
Just as an example, export already exists, so could -ej
(export json) and a new -ep
(export pdf) option be implemented.
Is this possible?
Thank You
File "/Users/henkvaness/blackbird/blackbird.py", line 156, in
command = subprocess.run( ("python", "webserver.py"))
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/subprocess.py", line 501, in run
with Popen(*popenargs, **kwargs) as process:
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/subprocess.py", line 969, in init
self._execute_child(args, executable, preexec_fn, close_fds,
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/subprocess.py", line 1845, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
NotADirectoryError: [Errno 20] Not a directory: 'python'
these all seem to return an account is found however no account exists:
Cash APP account found
Wikipedia account found
Xbox Gamertag account found
Minecraft List account found
Pinterest account found
Vimeo account found
Telegram account found
git clone https://github.com/p1ngul1n0/blackbird; cd blackbird; pwd; pip install -r requirements.txt:
0.202 Cloning into 'blackbird'...
1.393 /usr/blackbird
2.447 Collecting aiohttp==3.8.3 (from -r requirements.txt (line 1))
2.502 Downloading aiohttp-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (7.4 kB)
2.536 Collecting beautifulsoup4==4.11.1 (from -r requirements.txt (line 2))
2.545 Downloading beautifulsoup4-4.11.1-py3-none-any.whl.metadata (3.5 kB)
2.580 Collecting colorama==0.4.4 (from -r requirements.txt (line 3))
2.589 Downloading colorama-0.4.4-py2.py3-none-any.whl (16 kB)
2.630 Collecting Flask==2.1.1 (from -r requirements.txt (line 4))
2.639 Downloading Flask-2.1.1-py3-none-any.whl.metadata (3.9 kB)
2.670 Collecting Flask_Cors==3.0.10 (from -r requirements.txt (line 5))
2.678 Downloading Flask_Cors-3.0.10-py2.py3-none-any.whl (14 kB)
2.729 Collecting requests==2.28.1 (from -r requirements.txt (line 6))
2.739 Downloading requests-2.28.1-py3-none-any.whl.metadata (4.6 kB)
2.774 Collecting gunicorn (from -r requirements.txt (line 7))
2.783 Downloading gunicorn-21.2.0-py3-none-any.whl.metadata (4.1 kB)
2.800 Requirement already satisfied: attrs>=17.3.0 in /usr/lib/python3/dist-packages (from aiohttp==3.8.3->-r requirements.txt (line 1)) (23.2.0)
2.891 Collecting charset-normalizer<3.0,>=2.0 (from aiohttp==3.8.3->-r requirements.txt (line 1))
2.900 Downloading charset_normalizer-2.1.1-py3-none-any.whl.metadata (11 kB)
2.906 Requirement already satisfied: multidict<7.0,>=4.5 in /usr/lib/python3/dist-packages (from aiohttp==3.8.3->-r requirements.txt (line 1)) (6.0.4)
2.908 Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /usr/lib/python3/dist-packages (from aiohttp==3.8.3->-r requirements.txt (line 1)) (4.0.3)
2.909 Requirement already satisfied: yarl<2.0,>=1.0 in /usr/lib/python3/dist-packages (from aiohttp==3.8.3->-r requirements.txt (line 1)) (1.8.2)
2.911 Requirement already satisfied: frozenlist>=1.1.1 in /usr/lib/python3/dist-packages (from aiohttp==3.8.3->-r requirements.txt (line 1)) (1.4.0)
2.912 Requirement already satisfied: aiosignal>=1.1.2 in /usr/lib/python3/dist-packages (from aiohttp==3.8.3->-r requirements.txt (line 1)) (1.3.1)
2.918 Requirement already satisfied: soupsieve>1.2 in /usr/lib/python3/dist-packages (from beautifulsoup4==4.11.1->-r requirements.txt (line 2)) (2.5)
2.926 Requirement already satisfied: Werkzeug>=2.0 in /usr/lib/python3/dist-packages (from Flask==2.1.1->-r requirements.txt (line 4)) (2.3.8)
2.928 Requirement already satisfied: Jinja2>=3.0 in /usr/lib/python3/dist-packages (from Flask==2.1.1->-r requirements.txt (line 4)) (3.1.2)
2.929 Requirement already satisfied: itsdangerous>=2.0 in /usr/lib/python3/dist-packages (from Flask==2.1.1->-r requirements.txt (line 4)) (2.1.2)
2.931 Requirement already satisfied: click>=8.0 in /usr/lib/python3/dist-packages (from Flask==2.1.1->-r requirements.txt (line 4)) (8.1.6)
2.939 Requirement already satisfied: Six in /usr/lib/python3/dist-packages (from Flask_Cors==3.0.10->-r requirements.txt (line 5)) (1.16.0)
2.947 Requirement already satisfied: idna<4,>=2.5 in /usr/lib/python3/dist-packages (from requests==2.28.1->-r requirements.txt (line 6)) (3.6)
2.950 Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/lib/python3/dist-packages (from requests==2.28.1->-r requirements.txt (line 6)) (1.26.18)
2.952 Requirement already satisfied: certifi>=2017.4.17 in /usr/lib/python3/dist-packages (from requests==2.28.1->-r requirements.txt (line 6)) (2023.11.17)
2.959 Requirement already satisfied: packaging in /usr/lib/python3/dist-packages (from gunicorn->-r requirements.txt (line 7)) (23.2)
3.054 Requirement already satisfied: MarkupSafe>=2.1.1 in /usr/lib/python3/dist-packages (from Werkzeug>=2.0->Flask==2.1.1->-r requirements.txt (line 4)) (2.1.3)
3.079 Downloading aiohttp-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.0 MB)
3.111 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB 34.9 MB/s eta 0:00:00
3.132 Downloading beautifulsoup4-4.11.1-py3-none-any.whl (128 kB)
3.138 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 128.2/128.2 kB 27.6 MB/s eta 0:00:00
3.148 Downloading Flask-2.1.1-py3-none-any.whl (95 kB)
3.154 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 95.2/95.2 kB 24.8 MB/s eta 0:00:00
3.162 Downloading requests-2.28.1-py3-none-any.whl (62 kB)
3.168 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.8/62.8 kB 14.8 MB/s eta 0:00:00
3.177 Downloading gunicorn-21.2.0-py3-none-any.whl (80 kB)
3.182 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 80.2/80.2 kB 22.9 MB/s eta 0:00:00
3.191 Downloading charset_normalizer-2.1.1-py3-none-any.whl (39 kB)
4.650 Installing collected packages: gunicorn, colorama, charset-normalizer, beautifulsoup4, requests, Flask, aiohttp, Flask_Cors
4.713 Attempting uninstall: colorama
4.733 Found existing installation: colorama 0.4.6
4.735 ERROR: Cannot uninstall colorama 0.4.6, RECORD file not found. Hint: The package was installed by debian.
------
x:y
--------------------
X |
X |
X | >>> RUN git clone https://github.com/p1ngul1n0/blackbird; cd blackbird; pwd; pip install -r requirements.txt
X |
X |
--------------------
ERROR: failed to solve: process "/bin/sh -c git clone https://github.com/p1ngul1n0/blackbird; cd blackbird; pwd; pip install -r requirements.txt" did not complete successfully: exit code: 1
make: *** [Makefile:X X] Error 1
tested on:
pip -V
pip 24.0 from /usr/lib/python3/dist-packages/pip (python 3.11)
python3 blackbird.py --web
:
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
- Debug mode: off
Traceback (most recent call last):
File "/Users/drjacky/Toolz/H-ck/blackbird/webserver.py", line 28, in
app.run('0.0.0.0')
File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 920, in run
run_simple(t.cast(str, host), port, self, **options)
File "/usr/local/lib/python3.9/site-packages/werkzeug/serving.py", line 1010, in run_simple
inner()
File "/usr/local/lib/python3.9/site-packages/werkzeug/serving.py", line 950, in inner
srv = make_server(
File "/usr/local/lib/python3.9/site-packages/werkzeug/serving.py", line 782, in make_server
return ThreadedWSGIServer(
File "/usr/local/lib/python3.9/site-packages/werkzeug/serving.py", line 688, in init
super().init(server_address, handler) # type: ignore
File "/usr/local/Cellar/[email protected]/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/socketserver.py", line 452, in init
self.server_bind()
File "/usr/local/Cellar/[email protected]/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/http/server.py", line 136, in server_bind
socketserver.TCPServer.server_bind(self)
File "/usr/local/Cellar/[email protected]/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/socketserver.py", line 466, in server_bind
self.socket.bind(self.server_address)
OSError: [Errno 48] Address already in use
Traceback (most recent call last):
File "/Users/drjacky/Toolz/H-ck/blackbird/blackbird.py", line 166, in
command.check_returncode()
File "/usr/local/Cellar/[email protected]/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/subprocess.py", line 460, in check_returncode
raise CalledProcessError(self.returncode, self.args, self.stdout,
subprocess.CalledProcessError: Command '('/usr/local/opt/[email protected]/bin/python3.9', 'webserver.py')' returned non-zero exit status 1.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.