/ README.md
README.md
1 # Crow - Blackbird GUI Frontend 2 3 A PyQt6-based graphical user interface for the Blackbird OSINT tool, providing an intuitive way to conduct username and email investigations across multiple platforms. 4 5 ## Features 6 7 - **User-Friendly Interface**: Easy-to-use GUI for Blackbird OSINT operations 8 - **Multiple Input Methods**: Support for direct username/email input and file-based inputs 9 - **Advanced Search Options**: Permutation, filtering, and AI-powered analysis 10 - **Flexible Output Formats**: CSV, PDF, JSON, verbose logs, and HTML dumps 11 - **Session Management**: Save and load search configurations 12 - **Real-time Output**: Live monitoring of search progress and results 13 - **Instagram Integration**: Enhanced metadata extraction with session ID 14 - **AI Analysis**: Automated profile analysis and risk assessment 15 16 ## Installation 17 18 ### Prerequisites 19 20 1. Python 3 or higher 21 2. Blackbird OSINT tool (must be in the same directory) 22 3. Required Python packages: 23 24 ``` 25 pip install -r requirements_GUI.txt 26 ``` 27 28 ## Python 29 30 ### Arch users 31 32 ### Python 311 33 34 ``` 35 yay -S python311 36 ``` 37 38 ### Python 312 39 40 ``` 41 yay -S python312 42 ``` 43 44 ### Installs: 45 46 In one command: 47 48 git clone https://github.com/p1ngul1n0/blackbird.git && git clone https://github.com/airborne-commando/crow.git && mv crow/*.txt ./blackbird/ && mv crow/*.py ./blackbird/ && cd ./blackbird/ && python3 -m venv venv && source venv/bin/activate && pip3 install -r requirements.txt && pip3 install -r requirements_GUI.txt 49 50 51 ### python311 52 53 git clone https://github.com/p1ngul1n0/blackbird.git && git clone https://github.com/airborne-commando/crow.git && mv crow/*.txt ./blackbird/ && mv crow/*.py ./blackbird/ && cd ./blackbird/ && python3.11 -m venv venv && source venv/bin/activate && pip3 install -r requirements.txt && pip3 install -r requirements_GUI.txt 54 55 ### python312 56 57 git clone https://github.com/p1ngul1n0/blackbird.git && git clone https://github.com/airborne-commando/crow.git && mv crow/*.txt ./blackbird/ && mv crow/*.py ./blackbird/ && cd ./blackbird/ && python3.12 -m venv venv && source venv/bin/activate && pip3 install -r requirements.txt && pip3 install -r requirements_GUI.txt 58 59 60 ### For the dev-tor: 61 62 git clone https://github.com/p1ngul1n0/blackbird.git && git clone --branch dev-tor --single-branch https://github.com/airborne-commando/crow.git && mv crow/*.txt ./blackbird/ && mv crow/*.py ./blackbird/ && cd ./blackbird/ && python3 -m venv venv && source venv/bin/activate && pip3 install -r requirements.txt && pip3 install -r requirements_GUI.txt 63 64 ### File Structure 65 66 Ensure the following files are in your working directory: 67 68 ``` 69 project/ 70 ├── crow.py # Main GUI application 71 ├── build_blackbird_command.py # Command builder utility 72 ├── save_settings.py # Settings save functionality 73 ├── load_settings.py # Settings load functionality 74 ├── requirements_GUI.txt # GUI requirements 75 ├── tor_api_setup.py # Tor functions 76 ├── tor_hook.py 77 ├── tor_spoofing.py 78 └── blackbird.py # Blackbird OSINT tool (required) 79 ``` 80 81 ### Tor Usage: 82 83 Can Bypass daily limits on AI summary, but the password is hard coded, you'll need to edit this value inside tor_spoofing.py: 84 85 ## Edit these values 86 87 class TORSpoofer: 88 def __init__(self, gui_instance=None): 89 self.gui_instance = gui_instance 90 self.tor_enabled = False 91 self.tor_session = None 92 self.tor_port = 9050 # Default TOR port 93 self.control_port = 9051 # Default control port 94 self.tor_password = "hashbrownyummy" # ← SET YOUR PASSWORD HERE 95 96 you'll need to also install tor inside your system and do the following. 97 98 ### Password gen example 99 100 tor --hash-password hashbrownyummy 101 102 New value of hashbrownyummy 103 104 16:173F2CE915F54E88606A84E39D3750633B34E57F384910306004433BE9 105 106 Then edit, uncomment HashedControlPassword and ControlPort: 107 108 **sudo nano /etc/tor/torrc** 109 110 #ControlPort 9051 111 ## If you enable the controlport, be sure to enable one of these 112 ## authentication methods, to prevent attackers from accessing it. 113 #HashedControlPassword 16:173F2CE915F54E88606A84E39D3750633B34E57F384910306004433BE9 114 #CookieAuthentication 1 115 116 Restart the tor service with **sudo systemctl restart tor** 117 118 Be sure to enable and start 119 120 ## Usage 121 122 ### Basic Operation 123 124 1. **Launch the Application**: 125 ``` 126 python crow.py 127 ``` 128 129 2. **Input Targets**: 130 - Enter usernames in the "Username(s)" field (comma-separated for multiple) 131 - Enter emails in the "Email(s)" field (comma-separated for multiple) 132 - Or select files containing lists of usernames/emails 133 134 3. **Configure Options**: 135 - **Permutation**: Generate username variations (requires single username) 136 - **AI Analysis**: Enable AI-powered metadata extraction (requires API key setup) 137 - **Output Formats**: Select desired output formats (CSV, PDF, JSON, etc.) 138 - **Filters**: Apply custom search filters 139 - **Proxy**: Configure proxy settings for requests 140 - **Timeout**: Set request timeout in seconds 141 142 4. **Execute Search**: 143 - Click "Run Blackbird" to start the investigation 144 - Monitor real-time progress in the output area 145 - Use "Stop Blackbird" to cancel ongoing searches 146 147 ### Advanced Features 148 149 #### AI Analysis Setup 150 151 1. Click "Setup API Key" to configure AI analysis 152 2. Follow the automated setup process 153 3. API key is automatically saved and loaded for future sessions 154 155 #### Instagram Enhanced Metadata 156 157 1. Obtain Instagram Session ID: 158 - Log into Instagram in your browser 159 - Open Developer Tools (F12) 160 - Go to Application > Cookies 161 - Copy the "sessionid" cookie value 162 2. Paste the Session ID in the dedicated field 163 3. Enhanced metadata will be extracted during searches 164 165 #### Custom Filters 166 167 Create advanced search filters using properties and operators: 168 169 **Properties**: `name`, `cat`, `uri_check`, `e_code`, `e_string`, `m_string`, `m_code` 170 171 **Operators**: `=`, `~`, `>`, `<`, `>=`, `<=`, `!=` 172 173 **Examples**: 174 - `name~Mastodon` - Sites containing "Mastodon" in name 175 - `e_code>200` - Sites with error codes greater than 200 176 - `cat=social and uri_check~101010` - Social sites with specific URI patterns 177 178 #### Permutation Options 179 180 - **Permute Username**: Generates common variations of a single username 181 - **Permute All**: Creates broader permutations including sub-components 182 183 ## Configuration 184 185 ### Settings Management 186 187 - **Save Settings**: Store current configuration to JSON file 188 - **Load Settings**: Restore previous configuration from JSON file 189 190 Saved settings include: 191 - Input fields (usernames, emails, filters) 192 - Checkbox states (options, output formats) 193 - API keys and session IDs 194 - Proxy and timeout configurations 195 196 ### Environment Variables 197 198 The application automatically manages: 199 - `INSTAGRAM_SESSION_ID`: For enhanced Instagram metadata 200 - `BLACKBIRD_AI_API_KEY`: For AI analysis functionality 201 202 ## Output Handling 203 204 ### Real-time Monitoring 205 206 - Live output display with formatted AI results 207 - Automatic scrolling to latest content 208 - Color-coded and emoji-enhanced status messages 209 210 ### Auto-save Features 211 212 - AI analysis results automatically saved to timestamped files 213 - Files named: `blackbird_ai_{target}_{timestamp}.txt` 214 - Includes comprehensive analysis reports with timestamps 215 216 ### File Outputs 217 218 Based on selected options, generates: 219 - **CSV**: Structured results data 220 - **PDF**: Formatted reports 221 - **JSON**: Machine-readable results 222 - **HTML Dumps**: Raw page content 223 - **Verbose Logs**: Detailed process information 224 225 ## Troubleshooting 226 227 ### Common Issues 228 229 1. **Blackbird Not Found**: Ensure `blackbird.py` is in the same directory 230 2. **AI Analysis Fails**: Verify API key setup and internet connectivity 231 3. **Instagram Metadata Issues**: Check session ID validity and login status 232 4. **Permission Errors**: Ensure write permissions for output files 233 234 ### Help System 235 236 Comprehensive help buttons (`?`) provide detailed information about: 237 - AI analysis capabilities and limitations 238 - Permutation examples and patterns 239 - Filter syntax and examples 240 - Instagram session ID acquisition 241 242 ## Word filter gen for blackbird. 243 244 A bare bones GUI for word filtering, should make it easier, comes with an analysis to see which json file (user) is affected by which site and category. 245 246 ## An example: 247 248 > "cat!=health and cat!=video and cat!=political and cat!=shopping and cat!=business and cat!=coding and cat!=blog and cat!=misc and cat!=hobby and cat!=gaming and cat!=tech and cat!=art ..." 249 250 You get the idea.. 251 252 It can also generate, order, exclude and include filters and also include custom filters. 253 254 ## Will not work with sites with spaces that are multiple. Will error out on blackbirds end, sort out manually. 255 256 >"cat!=health and cat!=video and cat!=political and cat!=shopping and name!='Twitter archived tweets' and name!='Parler archived posts'" 257 258 Use the analysis tool to figure out which site is affecting which user, do a few runs; also manually edit the json files if you must. 259 260 ## Procedure: 261 262 What I usually do is do a dry run and filter stuff out that way, it takes time but it's a bit more accurate with results. I also use a username file. 263 264 you can use the CLI version of blackbird or the GUI, whichever works. 265 266 Copy to clipboard WILL not copy the generated filter, you'll need to select the generated filters and do ctrl+c. copy to clipboard simply copies the current filters that are excluded or included. There is no automatic ordering, do so manually. 267 268 ## Dependencies (not for word filter) 269 270 - PyQt6 >= 6.0.0 271 - requests >= 2.25.0 272 - Blackbird OSINT tool 273 274 ## License 275 276 This project is designed as a frontend for the [Blackbird OSINT tool](https://github.com/p1ngul1n0/blackbird/tree/main). Please ensure compliance with Blackbird's license terms and applicable laws when conducting investigations. 277 278 ## Contributing 279 280 This is a GUI wrapper for the Blackbird tool. For issues related to the core OSINT functionality, refer to the main [Blackbird repository](https://github.com/p1ngul1n0/blackbird/tree/main). 281 282 --- 283 284 **Note**: Always use OSINT tools responsibly and in compliance with applicable laws, terms of service, and ethical guidelines.