p1ngul1n0 / blackbird Goto Github PK
View Code? Open in Web Editor NEWAn OSINT tool to search for accounts by username in social networks.
Home Page: https://p1ngul1n0.gitbook.io/blackbird/
An OSINT tool to search for accounts by username in social networks.
Home Page: https://p1ngul1n0.gitbook.io/blackbird/
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)
Best
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.
teste
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
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'
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
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)
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,
The port on doc and interface is wrong its 9797 now.
Best regard
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.
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'
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.
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
H
FYI. I have proposed changes to the WMN JSON file that may impact your tool. Please visit WebBreacher/WhatsMyName#738 to read and comment.
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
And will the http proxy (http://127.0.0.1:8080) be used when the search is initiated?
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
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"
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
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
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')]
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 !!!!!
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.