Worker thread to process items in the queue.
(self, progress, task_id, success_flag)
| 135 | |
| 136 | |
| 137 | def worker(self, progress, task_id, success_flag): |
| 138 | """ |
| 139 | Worker thread to process items in the queue. |
| 140 | """ |
| 141 | while not self.queue.empty(): |
| 142 | if self.shared_data.orchestrator_should_exit: |
| 143 | logger.info("Orchestrator exit signal received, stopping worker thread.") |
| 144 | break |
| 145 | |
| 146 | adresse_ip, user, password, port = self.queue.get() |
| 147 | success, databases = self.sql_connect(adresse_ip, user, password) |
| 148 | |
| 149 | if success: |
| 150 | with self.lock: |
| 151 | # Ajouter une entrée pour chaque base de données trouvée |
| 152 | for db in databases: |
| 153 | self.results.append([adresse_ip, user, password, port, db]) |
| 154 | |
| 155 | logger.success(f"Found credentials for IP: {adresse_ip} | User: {user} | Password: {password}") |
| 156 | logger.success(f"Databases found: {', '.join(databases)}") |
| 157 | self.save_results() |
| 158 | self.remove_duplicates() |
| 159 | success_flag[0] = True |
| 160 | |
| 161 | self.queue.task_done() |
| 162 | progress.update(task_id, advance=1) |
| 163 | |
| 164 | def run_bruteforce(self, adresse_ip, port): |
| 165 | self.load_scan_file() |
nothing calls this directly
no test coverage detected