Projects STRLCPY sub3suite Commits 68b48056
🤬
  • ■ ■ ■ ■ ■
    sub3suite/src/Dialogs/ActiveConfigDialog.cpp
    skipped 141 lines
    142 142   ui->lineEditTimeout->setPlaceholderText("e.g. 3");
    143 143   ui->lineEditThreads->setPlaceholderText("e.g. 100");
    144 144   
    145  - /* setting validators... */
    146  - ui->lineEditTimeout->setValidator(new QIntValidator(1, 1000, this));
    147  - ui->lineEditThreads->setValidator(new QIntValidator(1, 200, this));
    148  - 
    149 145   /* custom-nameserver list */
    150 146   ui->customNameservers->setListName("Namerserver");
    151 147   ui->customNameservers->setListModel(m_customNameserverListModel);
    skipped 10 lines
    162 158   ui->checkBoxWildcards->setChecked(CONFIG.value(CFG_VAL_WILDCARD).toBool());
    163 159   ui->checkBoxAutosave->setChecked(CONFIG.value(CFG_VAL_AUTOSAVE).toBool());
    164 160   ui->checkBoxNoDuplicates->setChecked(CONFIG.value(CFG_VAL_DUPLICATES).toBool());
     161 + ui->groupBoxTimeout->setChecked(CONFIG.value(CFG_VAL_SETTIMEOUT).toBool());
    165 162   QString record = CONFIG.value(CFG_VAL_RECORD).toString();
    166 163   QString nsType = CONFIG.value(CFG_VAL_NAMESERVER).toString();
    167 164   CONFIG.endGroup();
    skipped 30 lines
    198 195   ui->lineEditThreads->setText(CONFIG.value(CFG_VAL_THREADS).toString());
    199 196   ui->checkBoxAutosave->setChecked(CONFIG.value(CFG_VAL_AUTOSAVE).toBool());
    200 197   ui->checkBoxNoDuplicates->setChecked(CONFIG.value(CFG_VAL_DUPLICATES).toBool());
     198 + ui->groupBoxTimeout->setChecked(CONFIG.value(CFG_VAL_SETTIMEOUT).toBool());
    201 199   QString record = CONFIG.value(CFG_VAL_RECORD).toString();
    202 200   QString nsType = CONFIG.value(CFG_VAL_NAMESERVER).toString();
    203 201   CONFIG.endGroup();
    skipped 30 lines
    234 232   ui->lineEditTimeout->setText(CONFIG.value(CFG_VAL_TIMEOUT).toString());
    235 233   ui->checkBoxAutosave->setChecked(CONFIG.value(CFG_VAL_AUTOSAVE).toBool());
    236 234   ui->checkBoxNoDuplicates->setChecked(CONFIG.value(CFG_VAL_DUPLICATES).toBool());
     235 + ui->groupBoxTimeout->setChecked(CONFIG.value(CFG_VAL_SETTIMEOUT).toBool());
    237 236   QString nsType = CONFIG.value(CFG_VAL_NAMESERVER).toString();
    238 237   CONFIG.endGroup();
    239 238   
    skipped 22 lines
    262 261   ui->lineEditThreads->setText(CONFIG.value(CFG_VAL_THREADS).toString());
    263 262   ui->checkBoxAutosave->setChecked(CONFIG.value(CFG_VAL_AUTOSAVE).toBool());
    264 263   ui->checkBoxNoDuplicates->setChecked(CONFIG.value(CFG_VAL_DUPLICATES).toBool());
     264 + ui->groupBoxTimeout->setChecked(CONFIG.value(CFG_VAL_SETTIMEOUT).toBool());
    265 265   CONFIG.endGroup();
    266 266  }
    267 267   
    skipped 3 lines
    271 271   ui->lineEditThreads->setText(CONFIG.value(CFG_VAL_THREADS).toString());
    272 272   ui->checkBoxAutosave->setChecked(CONFIG.value(CFG_VAL_AUTOSAVE).toBool());
    273 273   ui->checkBoxNoDuplicates->setChecked(CONFIG.value(CFG_VAL_DUPLICATES).toBool());
     274 + ui->groupBoxTimeout->setChecked(CONFIG.value(CFG_VAL_SETTIMEOUT).toBool());
    274 275   CONFIG.endGroup();
    275 276  }
    276 277   
    skipped 10 lines
    287 288   bool wildcard = ui->checkBoxWildcards->isChecked();
    288 289   bool noDuplicates = ui->checkBoxNoDuplicates->isChecked();
    289 290   bool autosaveToProject = ui->checkBoxAutosave->isChecked();
     291 + bool setTimeout = ui->groupBoxTimeout->isChecked();
    290 292   
    291 293   bool recordA = ui->radioButtonA->isChecked();
    292 294   bool recordAAAA = ui->radioButtonAAAA->isChecked();
    skipped 4 lines
    297 299   bool nsCustom = ui->radioButtonCustomNameservers->isChecked();
    298 300   
    299 301   
     302 + 
    300 303   /* saving values to config file... */
    301 304   
    302 305   CONFIG.beginGroup(CFG_BRUTE);
    skipped 2 lines
    305 308   CONFIG.setValue(CFG_VAL_WILDCARD, wildcard);
    306 309   CONFIG.setValue(CFG_VAL_DUPLICATES, noDuplicates);
    307 310   CONFIG.setValue(CFG_VAL_AUTOSAVE, autosaveToProject);
     311 + CONFIG.setValue(CFG_VAL_SETTIMEOUT, setTimeout);
    308 312   CONFIG.setValue("nameserver", ui->comboBoxSingleNameserver->currentText());
    309 313   
    310 314   if(nsSingle)
    skipped 27 lines
    338 342   m_configBrute->checkWildcard = wildcard;
    339 343   m_configBrute->noDuplicates = noDuplicates;
    340 344   m_configBrute->autoSaveToProject = autosaveToProject;
     345 + m_configBrute->setTimeout = setTimeout;
    341 346   
    342 347   if(recordA)
    343 348   m_configBrute->recordType = QDnsLookup::A;
    skipped 38 lines
    382 387   
    383 388   bool noDuplicates = ui->checkBoxNoDuplicates->isChecked();
    384 389   bool autosaveToProject = ui->checkBoxAutosave->isChecked();
     390 + bool setTimeout = ui->groupBoxTimeout->isChecked();
    385 391   
    386 392   bool recordA = ui->radioButtonA->isChecked();
    387 393   bool recordAAAA = ui->radioButtonAAAA->isChecked();
    skipped 10 lines
    398 404   CONFIG.setValue(CFG_VAL_TIMEOUT, timeout);
    399 405   CONFIG.setValue(CFG_VAL_DUPLICATES, noDuplicates);
    400 406   CONFIG.setValue(CFG_VAL_AUTOSAVE, autosaveToProject);
     407 + CONFIG.setValue(CFG_VAL_SETTIMEOUT, setTimeout);
    401 408   
    402 409   if(nsSingle)
    403 410   CONFIG.setValue(CFG_VAL_NAMESERVER, "single");
    skipped 24 lines
    428 435   m_configActive->threads = thread.toInt();
    429 436   m_configActive->noDuplicates = noDuplicates;
    430 437   m_configActive->autoSaveToProject = autosaveToProject;
     438 + m_configActive->setTimeout = setTimeout;
    431 439   
    432 440   if(recordA)
    433 441   m_configActive->recordType = QDnsLookup::A;
    skipped 38 lines
    472 480   
    473 481   bool noDuplicates = ui->checkBoxNoDuplicates->isChecked();
    474 482   bool autosaveToProject = ui->checkBoxAutosave->isChecked();
     483 + bool setTimeout = ui->groupBoxTimeout->isChecked();
    475 484   
    476 485   bool nsSingle = ui->radioButtonSingleNameserver->isChecked();
    477 486   bool nsRandom = ui->radioButtonRandomNameservers->isChecked();
    skipped 6 lines
    484 493   CONFIG.setValue(CFG_VAL_TIMEOUT, timeout);
    485 494   CONFIG.setValue(CFG_VAL_DUPLICATES, noDuplicates);
    486 495   CONFIG.setValue(CFG_VAL_AUTOSAVE, autosaveToProject);
     496 + CONFIG.setValue(CFG_VAL_SETTIMEOUT, setTimeout);
    487 497   CONFIG.setValue("nameserver", ui->comboBoxSingleNameserver->currentText());
    488 498   
    489 499   if(nsSingle)
    skipped 18 lines
    508 518   m_configDns->timeout = timeout.toInt();
    509 519   m_configDns->noDuplicates = noDuplicates;
    510 520   m_configDns->autoSaveToProject = autosaveToProject;
     521 + m_configDns->setTimeout = setTimeout;
    511 522   
    512 523   m_configDns->nameservers.clear();
    513 524   if(nsSingle){
    skipped 31 lines
    545 556   
    546 557   bool noDuplicates = ui->checkBoxNoDuplicates->isChecked();
    547 558   bool autosaveToProject = ui->checkBoxAutosave->isChecked();
     559 + bool setTimeout = ui->groupBoxTimeout->isChecked();
    548 560   
    549 561   /* saving values to config file... */
    550 562   
    skipped 2 lines
    553 565   CONFIG.setValue(CFG_VAL_TIMEOUT, timeout);
    554 566   CONFIG.setValue(CFG_VAL_DUPLICATES, noDuplicates);
    555 567   CONFIG.setValue(CFG_VAL_AUTOSAVE, autosaveToProject);
     568 + CONFIG.setValue(CFG_VAL_SETTIMEOUT, setTimeout);
    556 569   CONFIG.endGroup();
    557 570   
    558 571   /* saving to ssl::ScanConfig structure... */
    skipped 2 lines
    561 574   m_configSSL->threads = thread.toInt();
    562 575   m_configSSL->noDuplicates = noDuplicates;
    563 576   m_configSSL->autoSaveToProject = autosaveToProject;
     577 + m_configSSL->setTimeout = setTimeout;
    564 578  }
    565 579   
    566 580  void ActiveConfigDialog::m_saveURL(){
    skipped 4 lines
    571 585   
    572 586   bool noDuplicates = ui->checkBoxNoDuplicates->isChecked();
    573 587   bool autosaveToProject = ui->checkBoxAutosave->isChecked();
     588 + bool setTimeout = ui->groupBoxTimeout->isChecked();
    574 589   
    575 590   /* saving values to config file... */
    576 591   
    skipped 2 lines
    579 594   CONFIG.setValue(CFG_VAL_TIMEOUT, timeout);
    580 595   CONFIG.setValue(CFG_VAL_DUPLICATES, noDuplicates);
    581 596   CONFIG.setValue(CFG_VAL_AUTOSAVE, autosaveToProject);
     597 + CONFIG.setValue(CFG_VAL_SETTIMEOUT, setTimeout);
    582 598   CONFIG.endGroup();
    583 599   
    584 600   /* saving to ssl::ScanConfig structure... */
    skipped 2 lines
    587 603   m_configURL->threads = thread.toInt();
    588 604   m_configURL->noDuplicates = noDuplicates;
    589 605   m_configURL->autoSaveToProject = autosaveToProject;
     606 + m_configURL->setTimeout = setTimeout;
    590 607  }
    591 608   
  • ■ ■ ■ ■ ■
    sub3suite/src/Dialogs/ActiveConfigDialog.ui
    skipped 131 lines
    132 132   <string>Timeout</string>
    133 133   </property>
    134 134   <property name="checkable">
    135  - <bool>false</bool>
     135 + <bool>true</bool>
    136 136   </property>
    137 137   <property name="checked">
    138 138   <bool>false</bool>
    skipped 32 lines
    171 171   <widget class="QCheckBox" name="checkBoxNoDuplicates">
    172 172   <property name="text">
    173 173   <string>No Duplicates</string>
    174  - </property>
    175  - </widget>
    176  - </item>
    177  - <item>
    178  - <widget class="QCheckBox" name="checkBoxOverride">
    179  - <property name="text">
    180  - <string>Override Values</string>
    181 174   </property>
    182 175   </widget>
    183 176   </item>
    skipped 170 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/Dialogs/EnumConfigDialog.cpp
    skipped 47 lines
    48 48   ui->lineEditTimeout->setText(CONFIG.value("timeout_asn").toString());
    49 49   ui->checkBoxAutosave->setChecked(CONFIG.value("autosave_to_Project_asn").toBool());
    50 50   ui->checkBoxNoDuplicates->setChecked(CONFIG.value("no_duplicates_asn").toBool());
     51 + ui->groupBoxTimeout->setChecked(CONFIG.value("set_timeout_asn").toBool());
    51 52   CONFIG.endGroup();
    52 53   
    53 54   asn = true;
    skipped 4 lines
    58 59   ui->lineEditTimeout->setText(CONFIG.value("timeout_cidr").toString());
    59 60   ui->checkBoxAutosave->setChecked(CONFIG.value("autosave_to_Project_cidr").toBool());
    60 61   ui->checkBoxNoDuplicates->setChecked(CONFIG.value("no_duplicates_cidr").toBool());
     62 + ui->groupBoxTimeout->setChecked(CONFIG.value("set_timeout_cidr").toBool());
    61 63   CONFIG.endGroup();
    62 64   
    63 65   cidr = true;
    skipped 4 lines
    68 70   ui->lineEditTimeout->setText(CONFIG.value("timeout_ip").toString());
    69 71   ui->checkBoxAutosave->setChecked(CONFIG.value("autosave_to_Project_ip").toBool());
    70 72   ui->checkBoxNoDuplicates->setChecked(CONFIG.value("no_duplicates_ip").toBool());
     73 + ui->groupBoxTimeout->setChecked(CONFIG.value("set_timeout_ip").toBool());
    71 74   CONFIG.endGroup();
    72 75   
    73 76   ip = true;
    skipped 4 lines
    78 81   ui->lineEditTimeout->setText(CONFIG.value("timeout_ns").toString());
    79 82   ui->checkBoxAutosave->setChecked(CONFIG.value("autosave_to_Project_ns").toBool());
    80 83   ui->checkBoxNoDuplicates->setChecked(CONFIG.value("no_duplicates_ns").toBool());
     84 + ui->groupBoxTimeout->setChecked(CONFIG.value("set_timeout_ns").toBool());
    81 85   CONFIG.endGroup();
    82 86   
    83 87   ns = true;
    skipped 4 lines
    88 92   ui->lineEditTimeout->setText(CONFIG.value("timeout_mx").toString());
    89 93   ui->checkBoxAutosave->setChecked(CONFIG.value("autosave_to_Project_mx").toBool());
    90 94   ui->checkBoxNoDuplicates->setChecked(CONFIG.value("no_duplicates_mx").toBool());
     95 + ui->groupBoxTimeout->setChecked(CONFIG.value("set_timeout_mx").toBool());
    91 96   CONFIG.endGroup();
    92 97   
    93 98   mx = true;
    skipped 4 lines
    98 103   ui->lineEditTimeout->setText(CONFIG.value("timeout_ssl").toString());
    99 104   ui->checkBoxAutosave->setChecked(CONFIG.value("autosave_to_Project_ssl").toBool());
    100 105   ui->checkBoxNoDuplicates->setChecked(CONFIG.value("no_duplicates_ssl").toBool());
     106 + ui->groupBoxTimeout->setChecked(CONFIG.value("set_timeout_ssl").toBool());
    101 107   CONFIG.endGroup();
    102 108   
    103 109   ssl = true;
    skipped 4 lines
    108 114   ui->lineEditTimeout->setText(CONFIG.value("timeout_email").toString());
    109 115   ui->checkBoxAutosave->setChecked(CONFIG.value("autosave_to_Project_email").toBool());
    110 116   ui->checkBoxNoDuplicates->setChecked(CONFIG.value("no_duplicates_email").toBool());
     117 + ui->groupBoxTimeout->setChecked(CONFIG.value("set_timeout_email").toBool());
    111 118   CONFIG.endGroup();
    112 119   
    113 120   email = true;
    skipped 7 lines
    121 128   CONFIG.beginGroup(CFG_ENUM);
    122 129   CONFIG.setValue("autosave_to_Project_asn", ui->checkBoxAutosave->isChecked());
    123 130   CONFIG.setValue("no_duplicates_asn", ui->checkBoxNoDuplicates->isChecked());
     131 + CONFIG.setValue("set_timeout_asn", ui->groupBoxTimeout->isChecked());
    124 132   CONFIG.setValue("timeout_asn", ui->lineEditTimeout->text());
    125 133   CONFIG.endGroup();
    126 134   
    127 135   /* save to config structure */
    128 136   m_config->autosaveToProject = ui->checkBoxAutosave->isChecked();
    129 137   m_config->noDuplicates = ui->checkBoxNoDuplicates->isChecked();
     138 + m_config->setTimeout = ui->groupBoxTimeout->isChecked();
    130 139   m_config->timeout = ui->lineEditTimeout->text().toInt();
    131 140  }
    132 141   
    skipped 2 lines
    135 144   CONFIG.beginGroup(CFG_ENUM);
    136 145   CONFIG.setValue("autosave_to_Project_cidr", ui->checkBoxAutosave->isChecked());
    137 146   CONFIG.setValue("no_duplicates_cidr", ui->checkBoxNoDuplicates->isChecked());
     147 + CONFIG.setValue("set_timeout_cidr", ui->groupBoxTimeout->isChecked());
    138 148   CONFIG.setValue("timeout_cidr", ui->lineEditTimeout->text());
    139 149   CONFIG.endGroup();
    140 150   
    141 151   /* save to config structure */
    142 152   m_config->autosaveToProject = ui->checkBoxAutosave->isChecked();
    143 153   m_config->noDuplicates = ui->checkBoxNoDuplicates->isChecked();
     154 + m_config->setTimeout = ui->groupBoxTimeout->isChecked();
    144 155   m_config->timeout = ui->lineEditTimeout->text().toInt();
    145 156  }
    146 157   
    skipped 2 lines
    149 160   CONFIG.beginGroup(CFG_ENUM);
    150 161   CONFIG.setValue("autosave_to_Project_ip", ui->checkBoxAutosave->isChecked());
    151 162   CONFIG.setValue("no_duplicates_ip", ui->checkBoxNoDuplicates->isChecked());
     163 + CONFIG.setValue("set_timeout_ip", ui->groupBoxTimeout->isChecked());
    152 164   CONFIG.setValue("timeout_ip", ui->lineEditTimeout->text());
    153 165   CONFIG.endGroup();
    154 166   
    155 167   /* save to config structure */
    156 168   m_config->autosaveToProject = ui->checkBoxAutosave->isChecked();
    157 169   m_config->noDuplicates = ui->checkBoxNoDuplicates->isChecked();
     170 + m_config->setTimeout = ui->groupBoxTimeout->isChecked();
    158 171   m_config->timeout = ui->lineEditTimeout->text().toInt();
    159 172  }
    160 173   
    skipped 2 lines
    163 176   CONFIG.beginGroup(CFG_ENUM);
    164 177   CONFIG.setValue("autosave_to_Project_ns", ui->checkBoxAutosave->isChecked());
    165 178   CONFIG.setValue("no_duplicates_ns", ui->checkBoxNoDuplicates->isChecked());
     179 + CONFIG.setValue("set_timeout_ns", ui->groupBoxTimeout->isChecked());
    166 180   CONFIG.setValue("timeout_ns", ui->lineEditTimeout->text());
    167 181   CONFIG.endGroup();
    168 182   
    169 183   /* save to config structure */
    170 184   m_config->autosaveToProject = ui->checkBoxAutosave->isChecked();
    171 185   m_config->noDuplicates = ui->checkBoxNoDuplicates->isChecked();
     186 + m_config->setTimeout = ui->groupBoxTimeout->isChecked();
    172 187   m_config->timeout = ui->lineEditTimeout->text().toInt();
    173 188  }
    174 189   
    skipped 2 lines
    177 192   CONFIG.beginGroup(CFG_ENUM);
    178 193   CONFIG.setValue("autosave_to_Project_mx", ui->checkBoxAutosave->isChecked());
    179 194   CONFIG.setValue("no_duplicates_mx", ui->checkBoxNoDuplicates->isChecked());
     195 + CONFIG.setValue("set_timeout_mx", ui->groupBoxTimeout->isChecked());
    180 196   CONFIG.setValue("timeout_mx", ui->lineEditTimeout->text());
    181 197   CONFIG.endGroup();
    182 198   
    183 199   /* save to config structure */
    184 200   m_config->autosaveToProject = ui->checkBoxAutosave->isChecked();
    185 201   m_config->noDuplicates = ui->checkBoxNoDuplicates->isChecked();
     202 + m_config->setTimeout = ui->groupBoxTimeout->isChecked();
    186 203   m_config->timeout = ui->lineEditTimeout->text().toInt();
    187 204  }
    188 205   
    skipped 2 lines
    191 208   CONFIG.beginGroup(CFG_ENUM);
    192 209   CONFIG.setValue("autosave_to_Project_ssl", ui->checkBoxAutosave->isChecked());
    193 210   CONFIG.setValue("no_duplicates_ssl", ui->checkBoxNoDuplicates->isChecked());
     211 + CONFIG.setValue("set_timeout_ssl", ui->groupBoxTimeout->isChecked());
    194 212   CONFIG.setValue("timeout_ssl", ui->lineEditTimeout->text());
    195 213   CONFIG.endGroup();
    196 214   
    197 215   /* save to config structure */
    198 216   m_config->autosaveToProject = ui->checkBoxAutosave->isChecked();
    199 217   m_config->noDuplicates = ui->checkBoxNoDuplicates->isChecked();
     218 + m_config->setTimeout = ui->groupBoxTimeout->isChecked();
    200 219   m_config->timeout = ui->lineEditTimeout->text().toInt();
    201 220  }
    202 221   
    skipped 2 lines
    205 224   CONFIG.beginGroup(CFG_ENUM);
    206 225   CONFIG.setValue("autosave_to_Project_email", ui->checkBoxAutosave->isChecked());
    207 226   CONFIG.setValue("no_duplicates_email", ui->checkBoxNoDuplicates->isChecked());
     227 + CONFIG.setValue("set_timeout_email", ui->groupBoxTimeout->isChecked());
    208 228   CONFIG.setValue("timeout_email", ui->lineEditTimeout->text());
    209 229   CONFIG.endGroup();
    210 230   
    211 231   /* save to config structure */
    212 232   m_config->autosaveToProject = ui->checkBoxAutosave->isChecked();
    213 233   m_config->noDuplicates = ui->checkBoxNoDuplicates->isChecked();
     234 + m_config->setTimeout = ui->groupBoxTimeout->isChecked();
    214 235   m_config->timeout = ui->lineEditTimeout->text().toInt();
    215 236  }
    216 237   
  • ■ ■ ■ ■ ■
    sub3suite/src/Dialogs/EnumConfigDialog.ui
    skipped 29 lines
    30 30   <string>Timeout</string>
    31 31   </property>
    32 32   <property name="checkable">
    33  - <bool>false</bool>
     33 + <bool>true</bool>
    34 34   </property>
    35 35   <property name="checked">
    36 36   <bool>false</bool>
    skipped 32 lines
    69 69   <widget class="QCheckBox" name="checkBoxNoDuplicates">
    70 70   <property name="text">
    71 71   <string>No Duplicates</string>
    72  - </property>
    73  - </widget>
    74  - </item>
    75  - <item>
    76  - <widget class="QCheckBox" name="checkBoxOverride">
    77  - <property name="text">
    78  - <string>Override Values</string>
    79 72   </property>
    80 73   </widget>
    81 74   </item>
    skipped 72 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/Dialogs/PassiveConfigDialog.cpp
    skipped 40 lines
    41 41   ui->lineEditMaxPages->setText(CONFIG.value(CFG_VAL_MAXPAGES).toString());
    42 42   ui->checkBoxAutosave->setChecked(CONFIG.value(CFG_VAL_AUTOSAVE).toBool());
    43 43   ui->checkBoxNoDuplicates->setChecked(CONFIG.value(CFG_VAL_DUPLICATES).toBool());
     44 + ui->groupBoxTimeout->setChecked(CONFIG.value(CFG_VAL_SETTIMEOUT).toBool());
    44 45   CONFIG.endGroup();
    45 46   osint = true;
    46 47  }
    skipped 4 lines
    51 52   ui->lineEditTimeout->setText(CONFIG.value(CFG_VAL_TIMEOUT).toString());
    52 53   ui->checkBoxAutosave->setChecked(CONFIG.value(CFG_VAL_AUTOSAVE).toBool());
    53 54   ui->checkBoxNoDuplicates->setChecked(CONFIG.value(CFG_VAL_DUPLICATES).toBool());
     55 + ui->groupBoxTimeout->setChecked(CONFIG.value(CFG_VAL_SETTIMEOUT).toBool());
    54 56   CONFIG.endGroup();
    55 57   raw = true;
    56 58  }
    skipped 20 lines
    77 79   m_config->maxPage = ui->lineEditMaxPages->text().toInt();
    78 80   m_config->autosaveToProject = ui->checkBoxAutosave->isChecked();
    79 81   m_config->noDuplicates = ui->checkBoxNoDuplicates->isChecked();
     82 + m_config->setTimeout = ui->groupBoxTimeout->isChecked();
    80 83   
    81 84   CONFIG.beginGroup(CFG_OSINT);
    82 85   CONFIG.setValue(CFG_VAL_TIMEOUT, ui->lineEditTimeout->text());
    83 86   CONFIG.setValue(CFG_VAL_MAXPAGES, ui->lineEditMaxPages->text());
    84 87   CONFIG.setValue(CFG_VAL_AUTOSAVE, ui->checkBoxAutosave->isChecked());
    85 88   CONFIG.setValue(CFG_VAL_DUPLICATES, ui->checkBoxNoDuplicates->isChecked());
     89 + CONFIG.setValue(CFG_VAL_SETTIMEOUT, ui->groupBoxTimeout->isChecked());
    86 90   CONFIG.endGroup();
    87 91  }
    88 92   
    skipped 1 lines
    90 94   m_config->timeout = ui->lineEditTimeout->text().toInt();
    91 95   m_config->autosaveToProject = ui->checkBoxAutosave->isChecked();
    92 96   m_config->noDuplicates = ui->checkBoxNoDuplicates->isChecked();
     97 + m_config->setTimeout = ui->groupBoxTimeout->isChecked();
    93 98   
    94 99   CONFIG.beginGroup(CFG_RAW);
    95 100   CONFIG.setValue(CFG_VAL_TIMEOUT, ui->lineEditTimeout->text());
    96 101   CONFIG.setValue(CFG_VAL_AUTOSAVE, ui->checkBoxAutosave->isChecked());
    97 102   CONFIG.setValue(CFG_VAL_DUPLICATES, ui->checkBoxNoDuplicates->isChecked());
     103 + CONFIG.setValue(CFG_VAL_SETTIMEOUT, ui->groupBoxTimeout->isChecked());
    98 104   CONFIG.endGroup();
    99 105  }
    100 106   
  • ■ ■ ■ ■
    sub3suite/src/Dialogs/PassiveConfigDialog.ui
    skipped 41 lines
    42 42   <string>Timeout</string>
    43 43   </property>
    44 44   <property name="checkable">
    45  - <bool>false</bool>
     45 + <bool>true</bool>
    46 46   </property>
    47 47   <property name="checked">
    48 48   <bool>false</bool>
    skipped 157 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/engines/active/Active.cpp
    skipped 181 lines
    182 182   m_scanArgs->config->threads = CONFIG.value(CFG_VAL_THREADS).toInt();
    183 183   m_scanArgs->config->noDuplicates = CONFIG.value(CFG_VAL_DUPLICATES).toBool();
    184 184   m_scanArgs->config->autoSaveToProject = CONFIG.value(CFG_VAL_AUTOSAVE).toBool();
     185 + m_scanArgs->config->setTimeout = CONFIG.value(CFG_VAL_SETTIMEOUT).toBool();
    185 186   QString record = CONFIG.value(CFG_VAL_RECORD).toString();
    186 187   CONFIG.endGroup();
    187 188   
    skipped 43 lines
  • ■ ■ ■ ■
    sub3suite/src/engines/active/Active_scan.cpp
    skipped 26 lines
    27 27   /* ressetting and setting new values */
    28 28   ui->progressBar->show();
    29 29   ui->progressBar->reset();
     30 + m_failedScans.clear();
    30 31   
    31 32   /*
    32 33   if the numner of threads is greater than the number of wordlists, set the
    skipped 88 lines
    121 122   return;
    122 123   
    123 124   /* clear */
    124  - m_failedScans.clear();
    125 125   m_scanArgs->targets.clear();
    126 126   
    127 127   /* get targets */
    skipped 65 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/engines/brute/Brute.cpp
    skipped 284 lines
    285 285   m_scanArgs->config->checkWildcard = CONFIG.value(CFG_VAL_WILDCARD).toBool();
    286 286   m_scanArgs->config->noDuplicates = CONFIG.value(CFG_VAL_DUPLICATES).toBool();
    287 287   m_scanArgs->config->autoSaveToProject = CONFIG.value(CFG_VAL_AUTOSAVE).toBool();
     288 + m_scanArgs->config->setTimeout = CONFIG.value(CFG_VAL_SETTIMEOUT).toBool();
    288 289   QString record = CONFIG.value(CFG_VAL_RECORD).toString();
    289 290   CONFIG.endGroup();
    290 291   
    skipped 15 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/engines/brute/Brute_scan.cpp
    skipped 37 lines
    38 38   ui->buttonStop->setEnabled(true);
    39 39   ui->buttonStart->setText(tr("Pause"));
    40 40   
     41 + /* clear */
     42 + m_failedScans.clear();
     43 + 
    41 44   /* status */
    42 45   status->isRunning = true;
    43 46   status->isNotActive = false;
    skipped 46 lines
    90 93   return;
    91 94   
    92 95   /* clear */
    93  - m_failedScans.clear();
    94 96   m_scanArgs->targets.clear();
    95 97   
    96 98   /* get output type */
    skipped 99 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/engines/dns/Dns.cpp
    skipped 197 lines
    198 198   m_scanArgs->config->timeout = CONFIG.value(CFG_VAL_TIMEOUT).toInt();
    199 199   m_scanArgs->config->noDuplicates = CONFIG.value(CFG_VAL_DUPLICATES).toBool();
    200 200   m_scanArgs->config->autoSaveToProject = CONFIG.value(CFG_VAL_AUTOSAVE).toBool();
     201 + m_scanArgs->config->setTimeout = CONFIG.value(CFG_VAL_SETTIMEOUT).toBool();
    201 202   CONFIG.endGroup();
    202 203   
    203 204   int size = CONFIG.beginReadArray(CFG_ARR_NAMESERVERS);
    skipped 47 lines
  • ■ ■ ■ ■
    sub3suite/src/engines/dns/Dns_scan.cpp
    skipped 24 lines
    25 25   /* ressetting and setting new values */
    26 26   ui->progressBar->show();
    27 27   ui->progressBar->reset();
     28 + m_failedScans.clear();
    28 29   
    29 30   /* getting srv wordlist if checked &
    30 31   if the numner of threads is greater than the number of wordlists, set the
    skipped 74 lines
    105 106   return;
    106 107   
    107 108   /* clear */
    108  - m_failedScans.clear();
    109 109   m_scanArgs->targets.clear();
    110 110   m_scanArgs->srvWordlist.clear();
    111 111   
    skipped 66 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/engines/osint/Osint.cpp
    skipped 306 lines
    307 307   m_scanConfig->maxPage = CONFIG.value(CFG_VAL_MAXPAGES).toInt();
    308 308   m_scanConfig->autosaveToProject = CONFIG.value(CFG_VAL_AUTOSAVE).toBool();
    309 309   m_scanConfig->noDuplicates = CONFIG.value(CFG_VAL_DUPLICATES).toBool();
     310 + m_scanArgs->config->setTimeout = CONFIG.value(CFG_VAL_SETTIMEOUT).toBool();
    310 311   CONFIG.endGroup();
    311 312  }
    312 313   
  • ■ ■ ■ ■ ■
    sub3suite/src/engines/osint/Osint.ui
    skipped 5 lines
    6 6   <rect>
    7 7   <x>0</x>
    8 8   <y>0</y>
    9  - <width>716</width>
    10  - <height>448</height>
     9 + <width>657</width>
     10 + <height>525</height>
    11 11   </rect>
    12 12   </property>
    13 13   <property name="windowTitle">
    skipped 722 lines
    736 736   <x>0</x>
    737 737   <y>0</y>
    738 738   <width>177</width>
    739  - <height>1057</height>
     739 + <height>1136</height>
    740 740   </rect>
    741 741   </property>
    742 742   <attribute name="label">
    skipped 38 lines
    781 781   </widget>
    782 782   </item>
    783 783   <item>
     784 + <widget class="QGroupBox" name="groupBox_10">
     785 + <property name="title">
     786 + <string>Iana</string>
     787 + </property>
     788 + <layout class="QVBoxLayout" name="verticalLayout_14">
     789 + <item>
     790 + <widget class="QCheckBox" name="moduleRipe">
     791 + <property name="text">
     792 + <string>RipeStat</string>
     793 + </property>
     794 + </widget>
     795 + </item>
     796 + </layout>
     797 + </widget>
     798 + </item>
     799 + <item>
    784 800   <widget class="QGroupBox" name="groupBox_2">
    785 801   <property name="title">
    786 802   <string>API</string>
    skipped 7 lines
    794 810   </widget>
    795 811   </item>
    796 812   <item>
    797  - <widget class="QCheckBox" name="moduleRipe">
     813 + <widget class="QCheckBox" name="moduleASRank">
     814 + <property name="text">
     815 + <string>ASRank</string>
     816 + </property>
     817 + </widget>
     818 + </item>
     819 + <item>
     820 + <widget class="QCheckBox" name="moduleCirclPublic">
    798 821   <property name="text">
    799  - <string>RipeStat</string>
     822 + <string>Circl (public)</string>
    800 823   </property>
    801 824   </widget>
    802 825   </item>
    skipped 299 lines
    1102 1125   <property name="geometry">
    1103 1126   <rect>
    1104 1127   <x>0</x>
    1105  - <y>-152</y>
    1106  - <width>167</width>
     1128 + <y>0</y>
     1129 + <width>158</width>
    1107 1130   <height>932</height>
    1108 1131   </rect>
    1109 1132   </property>
    skipped 320 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/osint/Osint_modules.cpp
    skipped 446 lines
    447 447   else
    448 448   ui->moduleIpfy->hide();
    449 449   
     450 + ModuleInfo::CirclPublic circlpublic;
     451 + if(circlpublic.input_output.contains(INPUT_TYPE) && circlpublic.input_output[INPUT_TYPE].contains(OUTPUT_TYPE))
     452 + ui->moduleCirclPublic->show();
     453 + else
     454 + ui->moduleCirclPublic->hide();
     455 + 
     456 + ModuleInfo::ASRank asrank;
     457 + if(asrank.input_output.contains(INPUT_TYPE) && asrank.input_output[INPUT_TYPE].contains(OUTPUT_TYPE))
     458 + ui->moduleASRank->show();
     459 + else
     460 + ui->moduleASRank->hide();
     461 + 
    450 462   /* uncheck all modules */
    451 463   this->uncheckAllModules();
    452 464  }
    skipped 71 lines
    524 536   ui->modulePassiveTotal->setChecked(false);
    525 537   ui->moduleIpfy->setChecked(false);
    526 538   ui->moduleDnsbufferoverrun->setChecked(false);
     539 + ui->moduleCirclPublic->setChecked(false);
     540 + ui->moduleASRank->setChecked(false);
    527 541  }
    528 542   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/osint/Osint_results.cpp
    skipped 91 lines
    92 92  }
    93 93   
    94 94  void Osint::onResultASN(QString asn, QString name){
     95 + if(asn.startsWith("AS", Qt::CaseInsensitive))
     96 + asn = asn.remove(0, 2);
     97 + 
    95 98   if(set_asn.contains(asn))
    96 99   return;
    97 100   
    skipped 97 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/osint/Osint_scan.cpp
    skipped 126 lines
    127 127   if(ui->moduleAnubis->isChecked())
    128 128   this->startScanThread(new Anubis(*m_scanArgs));
    129 129   
     130 + if(ui->moduleASRank->isChecked())
     131 + this->startScanThread(new ASRank(*m_scanArgs));
     132 + 
    130 133   if(ui->moduleBgpview->isChecked())
    131 134   this->startScanThread(new Bgpview(*m_scanArgs));
    132 135   
    skipped 5 lines
    138 141   
    139 142   if(ui->moduleCircl->isChecked())
    140 143   this->startScanThread(new Circl(*m_scanArgs));
     144 + 
     145 + if(ui->moduleCirclPublic->isChecked())
     146 + this->startScanThread(new CirclPublic(*m_scanArgs));
    141 147   
    142 148   if(ui->moduleDnsbufferoverrun->isChecked())
    143 149   this->startScanThread(new Dnsbufferoverun(*m_scanArgs));
    skipped 280 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/raw/Raw.cpp
    skipped 103 lines
    104 104   m_scanConfig->timeout = CONFIG.value(CFG_VAL_TIMEOUT).toInt();
    105 105   m_scanConfig->autosaveToProject = CONFIG.value(CFG_VAL_AUTOSAVE).toBool();
    106 106   m_scanConfig->noDuplicates = CONFIG.value(CFG_VAL_DUPLICATES).toBool();
     107 + m_scanArgs->config->setTimeout = CONFIG.value(CFG_VAL_SETTIMEOUT).toBool();
    107 108   CONFIG.endGroup();
    108 109  }
    109 110   
    skipped 2 lines
    112 113  }
    113 114   
    114 115  void Raw::on_buttonStart_clicked(){
    115  - if(ui->checkBoxMultipleTargets->isChecked() && ui->targets->getlistModel()->rowCount() == 0){
    116  - QMessageBox::warning(this, tr("Error!"), tr("Please Enter Target For Enumerations!"));
    117  - return;
    118  - }
    119  - if(!ui->checkBoxMultipleTargets->isChecked() && ui->lineEditTarget->text().isEmpty()){
    120  - QMessageBox::warning(this, tr("Error!"), tr("Please Enter Targets For Enumerations!"));
    121  - return;
     116 + if(ui->lineEditTarget->placeholderText() != PLACEHOLDERTEXT_NONE){
     117 + if(ui->checkBoxMultipleTargets->isChecked() && ui->targets->getlistModel()->rowCount() == 0){
     118 + QMessageBox::warning(this, tr("Error!"), tr("Please Enter Target For Enumerations!"));
     119 + return;
     120 + }
     121 + if(!ui->checkBoxMultipleTargets->isChecked() && ui->lineEditTarget->text().isEmpty()){
     122 + QMessageBox::warning(this, tr("Error!"), tr("Please Enter Targets For Enumerations!"));
     123 + return;
     124 + }
    122 125   }
    123 126   
    124 127   /* getting the targets */
    skipped 203 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/raw/Raw.h
    skipped 151 lines
    152 152   
    153 153   void on_moduleIpfy_clicked();
    154 154   
     155 + void on_moduleCirclPublic_clicked();
     156 + 
     157 + void on_moduleASRank_clicked();
     158 + 
    155 159  private:
    156 160   Ui::Raw *ui;
    157 161   QStandardItemModel *m_model;
    skipped 51 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/raw/Raw.ui
    skipped 6 lines
    7 7   <x>0</x>
    8 8   <y>0</y>
    9 9   <width>661</width>
    10  - <height>545</height>
     10 + <height>619</height>
    11 11   </rect>
    12 12   </property>
    13 13   <property name="windowTitle">
    skipped 882 lines
    896 896   <property name="geometry">
    897 897   <rect>
    898 898   <x>0</x>
    899  - <y>-215</y>
     899 + <y>0</y>
    900 900   <width>177</width>
    901  - <height>650</height>
     901 + <height>696</height>
    902 902   </rect>
    903 903   </property>
    904 904   <attribute name="label">
    skipped 11 lines
    916 916   <property name="text">
    917 917   <string>Afrinic</string>
    918 918   </property>
     919 + <attribute name="buttonGroup">
     920 + <string notr="true">buttonGroup</string>
     921 + </attribute>
    919 922   </widget>
    920 923   </item>
    921 924   <item>
    skipped 1 lines
    923 926   <property name="text">
    924 927   <string>Apnic</string>
    925 928   </property>
     929 + <attribute name="buttonGroup">
     930 + <string notr="true">buttonGroup</string>
     931 + </attribute>
    926 932   </widget>
    927 933   </item>
    928 934   <item>
    skipped 1 lines
    930 936   <property name="text">
    931 937   <string>Arin</string>
    932 938   </property>
     939 + <attribute name="buttonGroup">
     940 + <string notr="true">buttonGroup</string>
     941 + </attribute>
    933 942   </widget>
    934 943   </item>
    935 944   <item>
    skipped 1 lines
    937 946   <property name="text">
    938 947   <string>Ripe</string>
    939 948   </property>
     949 + <attribute name="buttonGroup">
     950 + <string notr="true">buttonGroup</string>
     951 + </attribute>
    940 952   </widget>
    941 953   </item>
    942 954   </layout>
    skipped 10 lines
    953 965   <property name="text">
    954 966   <string>ArchiveIt</string>
    955 967   </property>
     968 + <attribute name="buttonGroup">
     969 + <string notr="true">buttonGroup</string>
     970 + </attribute>
    956 971   </widget>
    957 972   </item>
    958 973   <item>
    skipped 1 lines
    960 975   <property name="text">
    961 976   <string>Arquivo</string>
    962 977   </property>
     978 + <attribute name="buttonGroup">
     979 + <string notr="true">buttonGroup</string>
     980 + </attribute>
    963 981   </widget>
    964 982   </item>
    965 983   <item>
    skipped 1 lines
    967 985   <property name="text">
    968 986   <string>UKWebArchive</string>
    969 987   </property>
     988 + <attribute name="buttonGroup">
     989 + <string notr="true">buttonGroup</string>
     990 + </attribute>
    970 991   </widget>
    971 992   </item>
    972 993   <item>
    skipped 1 lines
    974 995   <property name="text">
    975 996   <string>WaybackMachine</string>
    976 997   </property>
     998 + <attribute name="buttonGroup">
     999 + <string notr="true">buttonGroup</string>
     1000 + </attribute>
    977 1001   </widget>
    978 1002   </item>
    979 1003   </layout>
    skipped 10 lines
    990 1014   <property name="text">
    991 1015   <string>TruMail</string>
    992 1016   </property>
     1017 + <attribute name="buttonGroup">
     1018 + <string notr="true">buttonGroup</string>
     1019 + </attribute>
    993 1020   </widget>
    994 1021   </item>
    995 1022   </layout>
    skipped 10 lines
    1006 1033   <property name="text">
    1007 1034   <string>Anubis</string>
    1008 1035   </property>
     1036 + <attribute name="buttonGroup">
     1037 + <string notr="true">buttonGroup</string>
     1038 + </attribute>
     1039 + </widget>
     1040 + </item>
     1041 + <item>
     1042 + <widget class="QRadioButton" name="moduleASRank">
     1043 + <property name="text">
     1044 + <string>ASRank</string>
     1045 + </property>
     1046 + <attribute name="buttonGroup">
     1047 + <string notr="true">buttonGroup</string>
     1048 + </attribute>
    1009 1049   </widget>
    1010 1050   </item>
    1011 1051   <item>
    skipped 1 lines
    1013 1053   <property name="text">
    1014 1054   <string>CertSpotter(Free)</string>
    1015 1055   </property>
     1056 + <attribute name="buttonGroup">
     1057 + <string notr="true">buttonGroup</string>
     1058 + </attribute>
     1059 + </widget>
     1060 + </item>
     1061 + <item>
     1062 + <widget class="QRadioButton" name="moduleCirclPublic">
     1063 + <property name="text">
     1064 + <string>Circl (public)</string>
     1065 + </property>
     1066 + <attribute name="buttonGroup">
     1067 + <string notr="true">buttonGroup</string>
     1068 + </attribute>
    1016 1069   </widget>
    1017 1070   </item>
    1018 1071   <item>
    skipped 1 lines
    1020 1073   <property name="text">
    1021 1074   <string>Maltiverse (Free)</string>
    1022 1075   </property>
     1076 + <attribute name="buttonGroup">
     1077 + <string notr="true">buttonGroup</string>
     1078 + </attribute>
    1023 1079   </widget>
    1024 1080   </item>
    1025 1081   <item>
    skipped 1 lines
    1027 1083   <property name="text">
    1028 1084   <string>N45HT</string>
    1029 1085   </property>
     1086 + <attribute name="buttonGroup">
     1087 + <string notr="true">buttonGroup</string>
     1088 + </attribute>
    1030 1089   </widget>
    1031 1090   </item>
    1032 1091   <item>
    skipped 1 lines
    1034 1093   <property name="text">
    1035 1094   <string>Sublist3r</string>
    1036 1095   </property>
     1096 + <attribute name="buttonGroup">
     1097 + <string notr="true">buttonGroup</string>
     1098 + </attribute>
    1037 1099   </widget>
    1038 1100   </item>
    1039 1101   <item>
    skipped 1 lines
    1041 1103   <property name="text">
    1042 1104   <string>Bgpview</string>
    1043 1105   </property>
     1106 + <attribute name="buttonGroup">
     1107 + <string notr="true">buttonGroup</string>
     1108 + </attribute>
    1044 1109   </widget>
    1045 1110   </item>
    1046 1111   <item>
    skipped 1 lines
    1048 1113   <property name="text">
    1049 1114   <string>ThreatMiner</string>
    1050 1115   </property>
     1116 + <attribute name="buttonGroup">
     1117 + <string notr="true">buttonGroup</string>
     1118 + </attribute>
    1051 1119   </widget>
    1052 1120   </item>
    1053 1121   <item>
    skipped 1 lines
    1055 1123   <property name="text">
    1056 1124   <string>ThreatCrowd</string>
    1057 1125   </property>
     1126 + <attribute name="buttonGroup">
     1127 + <string notr="true">buttonGroup</string>
     1128 + </attribute>
    1058 1129   </widget>
    1059 1130   </item>
    1060 1131   <item>
    skipped 1 lines
    1062 1133   <property name="text">
    1063 1134   <string>HackerTarget (Free)</string>
    1064 1135   </property>
     1136 + <attribute name="buttonGroup">
     1137 + <string notr="true">buttonGroup</string>
     1138 + </attribute>
    1065 1139   </widget>
    1066 1140   </item>
    1067 1141   <item>
    skipped 1 lines
    1069 1143   <property name="text">
    1070 1144   <string>DnsBufferOverRun</string>
    1071 1145   </property>
     1146 + <attribute name="buttonGroup">
     1147 + <string notr="true">buttonGroup</string>
     1148 + </attribute>
    1072 1149   </widget>
    1073 1150   </item>
    1074 1151   <item>
    skipped 1 lines
    1076 1153   <property name="text">
    1077 1154   <string>GoogleCert</string>
    1078 1155   </property>
     1156 + <attribute name="buttonGroup">
     1157 + <string notr="true">buttonGroup</string>
     1158 + </attribute>
    1079 1159   </widget>
    1080 1160   </item>
    1081 1161   <item>
    skipped 1 lines
    1083 1163   <property name="text">
    1084 1164   <string>Omnisint</string>
    1085 1165   </property>
     1166 + <attribute name="buttonGroup">
     1167 + <string notr="true">buttonGroup</string>
     1168 + </attribute>
    1086 1169   </widget>
    1087 1170   </item>
    1088 1171   <item>
    skipped 1 lines
    1090 1173   <property name="text">
    1091 1174   <string>UrlScan</string>
    1092 1175   </property>
     1176 + <attribute name="buttonGroup">
     1177 + <string notr="true">buttonGroup</string>
     1178 + </attribute>
    1093 1179   </widget>
    1094 1180   </item>
    1095 1181   </layout>
    skipped 27 lines
    1123 1209   <property name="geometry">
    1124 1210   <rect>
    1125 1211   <x>0</x>
    1126  - <y>-347</y>
     1212 + <y>0</y>
    1127 1213   <width>176</width>
    1128 1214   <height>1547</height>
    1129 1215   </rect>
    skipped 13 lines
    1143 1229   <property name="text">
    1144 1230   <string>AbuseIPDB</string>
    1145 1231   </property>
     1232 + <attribute name="buttonGroup">
     1233 + <string notr="true">buttonGroup</string>
     1234 + </attribute>
    1146 1235   </widget>
    1147 1236   </item>
    1148 1237   <item>
    skipped 1 lines
    1150 1239   <property name="text">
    1151 1240   <string>BotScout</string>
    1152 1241   </property>
     1242 + <attribute name="buttonGroup">
     1243 + <string notr="true">buttonGroup</string>
     1244 + </attribute>
    1153 1245   </widget>
    1154 1246   </item>
    1155 1247   <item>
    skipped 1 lines
    1157 1249   <property name="text">
    1158 1250   <string>FraudGuard</string>
    1159 1251   </property>
     1252 + <attribute name="buttonGroup">
     1253 + <string notr="true">buttonGroup</string>
     1254 + </attribute>
    1160 1255   </widget>
    1161 1256   </item>
    1162 1257   <item>
    skipped 1 lines
    1164 1259   <property name="text">
    1165 1260   <string>HybridAnalysis</string>
    1166 1261   </property>
     1262 + <attribute name="buttonGroup">
     1263 + <string notr="true">buttonGroup</string>
     1264 + </attribute>
    1167 1265   </widget>
    1168 1266   </item>
    1169 1267   <item>
    skipped 1 lines
    1171 1269   <property name="text">
    1172 1270   <string>IpQualityScore</string>
    1173 1271   </property>
     1272 + <attribute name="buttonGroup">
     1273 + <string notr="true">buttonGroup</string>
     1274 + </attribute>
    1174 1275   </widget>
    1175 1276   </item>
    1176 1277   <item>
    skipped 1 lines
    1178 1279   <property name="text">
    1179 1280   <string>Leak-Lookup</string>
    1180 1281   </property>
     1282 + <attribute name="buttonGroup">
     1283 + <string notr="true">buttonGroup</string>
     1284 + </attribute>
     1285 + </widget>
     1286 + </item>
     1287 + <item>
     1288 + <widget class="QRadioButton" name="moduleVirusTotal">
     1289 + <property name="text">
     1290 + <string>VirusTotal</string>
     1291 + </property>
     1292 + <attribute name="buttonGroup">
     1293 + <string notr="true">buttonGroup</string>
     1294 + </attribute>
    1181 1295   </widget>
    1182 1296   </item>
    1183 1297   </layout>
    skipped 10 lines
    1194 1308   <property name="text">
    1195 1309   <string>Debounce</string>
    1196 1310   </property>
     1311 + <attribute name="buttonGroup">
     1312 + <string notr="true">buttonGroup</string>
     1313 + </attribute>
    1197 1314   </widget>
    1198 1315   </item>
    1199 1316   <item>
    skipped 1 lines
    1201 1318   <property name="text">
    1202 1319   <string>EmailCrawlr</string>
    1203 1320   </property>
     1321 + <attribute name="buttonGroup">
     1322 + <string notr="true">buttonGroup</string>
     1323 + </attribute>
    1204 1324   </widget>
    1205 1325   </item>
    1206 1326   <item>
    skipped 1 lines
    1208 1328   <property name="text">
    1209 1329   <string>EmailFormat</string>
    1210 1330   </property>
     1331 + <attribute name="buttonGroup">
     1332 + <string notr="true">buttonGroup</string>
     1333 + </attribute>
    1211 1334   </widget>
    1212 1335   </item>
    1213 1336   <item>
    skipped 1 lines
    1215 1338   <property name="text">
    1216 1339   <string>EmailRep</string>
    1217 1340   </property>
     1341 + <attribute name="buttonGroup">
     1342 + <string notr="true">buttonGroup</string>
     1343 + </attribute>
    1218 1344   </widget>
    1219 1345   </item>
    1220 1346   <item>
    skipped 1 lines
    1222 1348   <property name="text">
    1223 1349   <string>Hunter</string>
    1224 1350   </property>
     1351 + <attribute name="buttonGroup">
     1352 + <string notr="true">buttonGroup</string>
     1353 + </attribute>
    1225 1354   </widget>
    1226 1355   </item>
    1227 1356   <item>
    skipped 1 lines
    1229 1358   <property name="text">
    1230 1359   <string>Snov</string>
    1231 1360   </property>
     1361 + <attribute name="buttonGroup">
     1362 + <string notr="true">buttonGroup</string>
     1363 + </attribute>
    1232 1364   </widget>
    1233 1365   </item>
    1234 1366   </layout>
    skipped 10 lines
    1245 1377   <property name="text">
    1246 1378   <string>IpApi</string>
    1247 1379   </property>
     1380 + <attribute name="buttonGroup">
     1381 + <string notr="true">buttonGroup</string>
     1382 + </attribute>
    1248 1383   </widget>
    1249 1384   </item>
    1250 1385   <item>
    skipped 1 lines
    1252 1387   <property name="text">
    1253 1388   <string>IpInfo</string>
    1254 1389   </property>
     1390 + <attribute name="buttonGroup">
     1391 + <string notr="true">buttonGroup</string>
     1392 + </attribute>
    1255 1393   </widget>
    1256 1394   </item>
    1257 1395   <item>
    skipped 1 lines
    1259 1397   <property name="text">
    1260 1398   <string>IpData</string>
    1261 1399   </property>
     1400 + <attribute name="buttonGroup">
     1401 + <string notr="true">buttonGroup</string>
     1402 + </attribute>
    1262 1403   </widget>
    1263 1404   </item>
    1264 1405   <item>
    skipped 1 lines
    1266 1407   <property name="text">
    1267 1408   <string>Ipfy</string>
    1268 1409   </property>
     1410 + <attribute name="buttonGroup">
     1411 + <string notr="true">buttonGroup</string>
     1412 + </attribute>
    1269 1413   </widget>
    1270 1414   </item>
    1271 1415   <item>
    skipped 1 lines
    1273 1417   <property name="text">
    1274 1418   <string>IpGeoLocation</string>
    1275 1419   </property>
     1420 + <attribute name="buttonGroup">
     1421 + <string notr="true">buttonGroup</string>
     1422 + </attribute>
    1276 1423   </widget>
    1277 1424   </item>
    1278 1425   <item>
    skipped 1 lines
    1280 1427   <property name="text">
    1281 1428   <string>IpRegistry</string>
    1282 1429   </property>
     1430 + <attribute name="buttonGroup">
     1431 + <string notr="true">buttonGroup</string>
     1432 + </attribute>
    1283 1433   </widget>
    1284 1434   </item>
    1285 1435   <item>
    skipped 1 lines
    1287 1437   <property name="text">
    1288 1438   <string>IpStack</string>
    1289 1439   </property>
     1440 + <attribute name="buttonGroup">
     1441 + <string notr="true">buttonGroup</string>
     1442 + </attribute>
    1290 1443   </widget>
    1291 1444   </item>
    1292 1445   </layout>
    skipped 10 lines
    1303 1456   <property name="text">
    1304 1457   <string>Builtwith</string>
    1305 1458   </property>
     1459 + <attribute name="buttonGroup">
     1460 + <string notr="true">buttonGroup</string>
     1461 + </attribute>
    1306 1462   </widget>
    1307 1463   </item>
    1308 1464   <item>
    skipped 1 lines
    1310 1466   <property name="text">
    1311 1467   <string>Censys</string>
    1312 1468   </property>
     1469 + <attribute name="buttonGroup">
     1470 + <string notr="true">buttonGroup</string>
     1471 + </attribute>
    1313 1472   </widget>
    1314 1473   </item>
    1315 1474   <item>
    skipped 1 lines
    1317 1476   <property name="text">
    1318 1477   <string>Certspotter</string>
    1319 1478   </property>
     1479 + <attribute name="buttonGroup">
     1480 + <string notr="true">buttonGroup</string>
     1481 + </attribute>
    1320 1482   </widget>
    1321 1483   </item>
    1322 1484   <item>
    skipped 1 lines
    1324 1486   <property name="text">
    1325 1487   <string>DNSlytics</string>
    1326 1488   </property>
     1489 + <attribute name="buttonGroup">
     1490 + <string notr="true">buttonGroup</string>
     1491 + </attribute>
    1327 1492   </widget>
    1328 1493   </item>
    1329 1494   <item>
    skipped 1 lines
    1331 1496   <property name="text">
    1332 1497   <string>DomainTools</string>
    1333 1498   </property>
     1499 + <attribute name="buttonGroup">
     1500 + <string notr="true">buttonGroup</string>
     1501 + </attribute>
    1334 1502   </widget>
    1335 1503   </item>
    1336 1504   <item>
    skipped 1 lines
    1338 1506   <property name="text">
    1339 1507   <string>FullHunt</string>
    1340 1508   </property>
     1509 + <attribute name="buttonGroup">
     1510 + <string notr="true">buttonGroup</string>
     1511 + </attribute>
    1341 1512   </widget>
    1342 1513   </item>
    1343 1514   <item>
    skipped 1 lines
    1345 1516   <property name="text">
    1346 1517   <string>HaveIBeenPawned</string>
    1347 1518   </property>
     1519 + <attribute name="buttonGroup">
     1520 + <string notr="true">buttonGroup</string>
     1521 + </attribute>
    1348 1522   </widget>
    1349 1523   </item>
    1350 1524   <item>
    skipped 1 lines
    1352 1526   <property name="text">
    1353 1527   <string>Host</string>
    1354 1528   </property>
     1529 + <attribute name="buttonGroup">
     1530 + <string notr="true">buttonGroup</string>
     1531 + </attribute>
    1355 1532   </widget>
    1356 1533   </item>
    1357 1534   <item>
    skipped 1 lines
    1359 1536   <property name="text">
    1360 1537   <string>JsonWhois</string>
    1361 1538   </property>
     1539 + <attribute name="buttonGroup">
     1540 + <string notr="true">buttonGroup</string>
     1541 + </attribute>
    1362 1542   </widget>
    1363 1543   </item>
    1364 1544   <item>
    skipped 1 lines
    1366 1546   <property name="text">
    1367 1547   <string>LeakIX</string>
    1368 1548   </property>
     1549 + <attribute name="buttonGroup">
     1550 + <string notr="true">buttonGroup</string>
     1551 + </attribute>
    1369 1552   </widget>
    1370 1553   </item>
    1371 1554   <item>
    skipped 1 lines
    1373 1556   <property name="text">
    1374 1557   <string>Networksdb</string>
    1375 1558   </property>
     1559 + <attribute name="buttonGroup">
     1560 + <string notr="true">buttonGroup</string>
     1561 + </attribute>
    1376 1562   </widget>
    1377 1563   </item>
    1378 1564   <item>
    skipped 1 lines
    1380 1566   <property name="text">
    1381 1567   <string>ProjectDiscovery</string>
    1382 1568   </property>
     1569 + <attribute name="buttonGroup">
     1570 + <string notr="true">buttonGroup</string>
     1571 + </attribute>
    1383 1572   </widget>
    1384 1573   </item>
    1385 1574   <item>
    skipped 1 lines
    1387 1576   <property name="text">
    1388 1577   <string>WhoisXmlApi</string>
    1389 1578   </property>
     1579 + <attribute name="buttonGroup">
     1580 + <string notr="true">buttonGroup</string>
     1581 + </attribute>
    1390 1582   </widget>
    1391 1583   </item>
    1392 1584   <item>
    skipped 1 lines
    1394 1586   <property name="text">
    1395 1587   <string>Robtex (Pro)</string>
    1396 1588   </property>
     1589 + <attribute name="buttonGroup">
     1590 + <string notr="true">buttonGroup</string>
     1591 + </attribute>
    1397 1592   </widget>
    1398 1593   </item>
    1399 1594   <item>
    skipped 1 lines
    1401 1596   <property name="text">
    1402 1597   <string>SpamHaus</string>
    1403 1598   </property>
     1599 + <attribute name="buttonGroup">
     1600 + <string notr="true">buttonGroup</string>
     1601 + </attribute>
    1404 1602   </widget>
    1405 1603   </item>
    1406 1604   <item>
    skipped 1 lines
    1408 1606   <property name="text">
    1409 1607   <string>Robtex</string>
    1410 1608   </property>
     1609 + <attribute name="buttonGroup">
     1610 + <string notr="true">buttonGroup</string>
     1611 + </attribute>
    1411 1612   </widget>
    1412 1613   </item>
    1413 1614   <item>
    skipped 1 lines
    1415 1616   <property name="text">
    1416 1617   <string>Spyse</string>
    1417 1618   </property>
     1619 + <attribute name="buttonGroup">
     1620 + <string notr="true">buttonGroup</string>
     1621 + </attribute>
    1418 1622   </widget>
    1419 1623   </item>
    1420 1624   <item>
    skipped 1 lines
    1422 1626   <property name="text">
    1423 1627   <string>ZoomEye</string>
    1424 1628   </property>
     1629 + <attribute name="buttonGroup">
     1630 + <string notr="true">buttonGroup</string>
     1631 + </attribute>
    1425 1632   </widget>
    1426 1633   </item>
    1427 1634   <item>
    skipped 1 lines
    1429 1636   <property name="text">
    1430 1637   <string>Github</string>
    1431 1638   </property>
     1639 + <attribute name="buttonGroup">
     1640 + <string notr="true">buttonGroup</string>
     1641 + </attribute>
    1432 1642   </widget>
    1433 1643   </item>
    1434 1644   <item>
    skipped 1 lines
    1436 1646   <property name="text">
    1437 1647   <string>BinaryEdge</string>
    1438 1648   </property>
     1649 + <attribute name="buttonGroup">
     1650 + <string notr="true">buttonGroup</string>
     1651 + </attribute>
    1439 1652   </widget>
    1440 1653   </item>
    1441 1654   <item>
    skipped 1 lines
    1443 1656   <property name="text">
    1444 1657   <string>RiskIq</string>
    1445 1658   </property>
     1659 + <attribute name="buttonGroup">
     1660 + <string notr="true">buttonGroup</string>
     1661 + </attribute>
    1446 1662   </widget>
    1447 1663   </item>
    1448 1664   <item>
    skipped 1 lines
    1450 1666   <property name="text">
    1451 1667   <string>WhatCMS</string>
    1452 1668   </property>
     1669 + <attribute name="buttonGroup">
     1670 + <string notr="true">buttonGroup</string>
     1671 + </attribute>
    1453 1672   </widget>
    1454 1673   </item>
    1455 1674   <item>
    skipped 1 lines
    1457 1676   <property name="text">
    1458 1677   <string>Shodan</string>
    1459 1678   </property>
     1679 + <attribute name="buttonGroup">
     1680 + <string notr="true">buttonGroup</string>
     1681 + </attribute>
    1460 1682   </widget>
    1461 1683   </item>
    1462 1684   <item>
    skipped 1 lines
    1464 1686   <property name="text">
    1465 1687   <string>Mnemonic (Free)</string>
    1466 1688   </property>
     1689 + <attribute name="buttonGroup">
     1690 + <string notr="true">buttonGroup</string>
     1691 + </attribute>
    1467 1692   </widget>
    1468 1693   </item>
    1469 1694   <item>
    skipped 1 lines
    1471 1696   <property name="text">
    1472 1697   <string>Mnemonic (Paid)</string>
    1473 1698   </property>
     1699 + <attribute name="buttonGroup">
     1700 + <string notr="true">buttonGroup</string>
     1701 + </attribute>
    1474 1702   </widget>
    1475 1703   </item>
    1476 1704   <item>
    skipped 1 lines
    1478 1706   <property name="text">
    1479 1707   <string>SpyOnWeb</string>
    1480 1708   </property>
     1709 + <attribute name="buttonGroup">
     1710 + <string notr="true">buttonGroup</string>
     1711 + </attribute>
    1481 1712   </widget>
    1482 1713   </item>
    1483 1714   <item>
    skipped 1 lines
    1485 1716   <property name="text">
    1486 1717   <string>Whoxy</string>
    1487 1718   </property>
     1719 + <attribute name="buttonGroup">
     1720 + <string notr="true">buttonGroup</string>
     1721 + </attribute>
    1488 1722   </widget>
    1489 1723   </item>
    1490 1724   <item>
    skipped 1 lines
    1492 1726   <property name="text">
    1493 1727   <string>C99</string>
    1494 1728   </property>
     1729 + <attribute name="buttonGroup">
     1730 + <string notr="true">buttonGroup</string>
     1731 + </attribute>
    1495 1732   </widget>
    1496 1733   </item>
    1497 1734   <item>
    skipped 1 lines
    1499 1736   <property name="text">
    1500 1737   <string>Seon</string>
    1501 1738   </property>
    1502  - </widget>
    1503  - </item>
    1504  - <item>
    1505  - <widget class="QRadioButton" name="moduleVirusTotal">
    1506  - <property name="text">
    1507  - <string>VirusTotal</string>
    1508  - </property>
     1739 + <attribute name="buttonGroup">
     1740 + <string notr="true">buttonGroup</string>
     1741 + </attribute>
    1509 1742   </widget>
    1510 1743   </item>
    1511 1744   <item>
    skipped 1 lines
    1513 1746   <property name="text">
    1514 1747   <string>WebResolver</string>
    1515 1748   </property>
     1749 + <attribute name="buttonGroup">
     1750 + <string notr="true">buttonGroup</string>
     1751 + </attribute>
    1516 1752   </widget>
    1517 1753   </item>
    1518 1754   <item>
    skipped 1 lines
    1520 1756   <property name="text">
    1521 1757   <string>HackerTarget (Paid)</string>
    1522 1758   </property>
     1759 + <attribute name="buttonGroup">
     1760 + <string notr="true">buttonGroup</string>
     1761 + </attribute>
    1523 1762   </widget>
    1524 1763   </item>
    1525 1764   <item>
    skipped 1 lines
    1527 1766   <property name="text">
    1528 1767   <string>Wappalyzer</string>
    1529 1768   </property>
     1769 + <attribute name="buttonGroup">
     1770 + <string notr="true">buttonGroup</string>
     1771 + </attribute>
    1530 1772   </widget>
    1531 1773   </item>
    1532 1774   <item>
    skipped 1 lines
    1534 1776   <property name="text">
    1535 1777   <string>ViewDns</string>
    1536 1778   </property>
     1779 + <attribute name="buttonGroup">
     1780 + <string notr="true">buttonGroup</string>
     1781 + </attribute>
    1537 1782   </widget>
    1538 1783   </item>
    1539 1784   <item>
    skipped 1 lines
    1541 1786   <property name="text">
    1542 1787   <string>ThreatBook</string>
    1543 1788   </property>
     1789 + <attribute name="buttonGroup">
     1790 + <string notr="true">buttonGroup</string>
     1791 + </attribute>
    1544 1792   </widget>
    1545 1793   </item>
    1546 1794   <item>
    skipped 1 lines
    1548 1796   <property name="text">
    1549 1797   <string>PassiveTotal</string>
    1550 1798   </property>
     1799 + <attribute name="buttonGroup">
     1800 + <string notr="true">buttonGroup</string>
     1801 + </attribute>
    1551 1802   </widget>
    1552 1803   </item>
    1553 1804   <item>
    skipped 1 lines
    1555 1806   <property name="text">
    1556 1807   <string>SecurityTrails</string>
    1557 1808   </property>
     1809 + <attribute name="buttonGroup">
     1810 + <string notr="true">buttonGroup</string>
     1811 + </attribute>
    1558 1812   </widget>
    1559 1813   </item>
    1560 1814   <item>
    skipped 1 lines
    1562 1816   <property name="text">
    1563 1817   <string>Circl</string>
    1564 1818   </property>
     1819 + <attribute name="buttonGroup">
     1820 + <string notr="true">buttonGroup</string>
     1821 + </attribute>
    1565 1822   </widget>
    1566 1823   </item>
    1567 1824   <item>
    skipped 1 lines
    1569 1826   <property name="text">
    1570 1827   <string>ZETALytics</string>
    1571 1828   </property>
     1829 + <attribute name="buttonGroup">
     1830 + <string notr="true">buttonGroup</string>
     1831 + </attribute>
    1572 1832   </widget>
    1573 1833   </item>
    1574 1834   <item>
    skipped 1 lines
    1576 1836   <property name="text">
    1577 1837   <string>Onyphe</string>
    1578 1838   </property>
     1839 + <attribute name="buttonGroup">
     1840 + <string notr="true">buttonGroup</string>
     1841 + </attribute>
    1579 1842   </widget>
    1580 1843   </item>
    1581 1844   <item>
    skipped 1 lines
    1583 1846   <property name="text">
    1584 1847   <string>NeutrinoApi</string>
    1585 1848   </property>
     1849 + <attribute name="buttonGroup">
     1850 + <string notr="true">buttonGroup</string>
     1851 + </attribute>
    1586 1852   </widget>
    1587 1853   </item>
    1588 1854   <item>
    skipped 1 lines
    1590 1856   <property name="text">
    1591 1857   <string>Otx</string>
    1592 1858   </property>
     1859 + <attribute name="buttonGroup">
     1860 + <string notr="true">buttonGroup</string>
     1861 + </attribute>
    1593 1862   </widget>
    1594 1863   </item>
    1595 1864   </layout>
    skipped 21 lines
    1617 1886   </customwidgets>
    1618 1887   <resources/>
    1619 1888   <connections/>
     1889 + <buttongroups>
     1890 + <buttongroup name="buttonGroup"/>
     1891 + </buttongroups>
    1620 1892  </ui>
    1621 1893   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/raw/Raw_modules.cpp
    skipped 838 lines
    839 839   ui->comboBoxOptions->addItems(meta.flags.keys());
    840 840  }
    841 841   
     842 +void Raw::on_moduleCirclPublic_clicked(){
     843 + ui->comboBoxOptions->clear();
     844 + ModuleInfo::CirclPublic meta;
     845 + m_optionSet = meta.flags;
     846 + ui->labelUrl->setText("<a href=\""+meta.url+"\" style=\"color: green;\">"+meta.name+"</a>");
     847 + ui->labelApiDoc->setText("<a href=\""+meta.url_apiDoc+"\" style=\"color: green;\">"+meta.url_apiDoc+"</a>");
     848 + ui->textEditEngineSummary->setText(meta.summary);
     849 + ui->comboBoxOptions->addItems(meta.flags.keys());
     850 +}
     851 + 
     852 +void Raw::on_moduleASRank_clicked(){
     853 + ui->comboBoxOptions->clear();
     854 + ModuleInfo::ASRank meta;
     855 + m_optionSet = meta.flags;
     856 + ui->labelUrl->setText("<a href=\""+meta.url+"\" style=\"color: green;\">"+meta.name+"</a>");
     857 + ui->labelApiDoc->setText("<a href=\""+meta.url_apiDoc+"\" style=\"color: green;\">"+meta.url_apiDoc+"</a>");
     858 + ui->textEditEngineSummary->setText(meta.summary);
     859 + ui->comboBoxOptions->addItems(meta.flags.keys());
     860 +}
     861 + 
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/raw/Raw_scan.cpp
    skipped 48 lines
    49 49   /* ressetting and setting new values */
    50 50   ui->progressBar->show();
    51 51   ui->progressBar->reset();
     52 + m_failedScans.clear();
    52 53   
    53 54   /* setting status */
    54 55   status->isRunning = true;
    skipped 258 lines
    313 314   
    314 315   if(ui->moduleIpfy->isChecked())
    315 316   this->startScanThread(new Ipfy(*m_scanArgs));
     317 + 
     318 + if(ui->moduleCirclPublic->isChecked())
     319 + this->startScanThread(new CirclPublic(*m_scanArgs));
     320 + 
     321 + if(ui->moduleASRank->isChecked())
     322 + this->startScanThread(new ASRank(*m_scanArgs));
    316 323  }
    317 324   
    318 325  void Raw::startScanThread(AbstractOsintModule *module){
    skipped 38 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/engines/ssl/Ssl.cpp
    skipped 212 lines
    213 213   m_scanArgs->config->threads = CONFIG.value(CFG_VAL_THREADS).toInt();
    214 214   m_scanArgs->config->noDuplicates = CONFIG.value(CFG_VAL_DUPLICATES).toBool();
    215 215   m_scanArgs->config->autoSaveToProject = CONFIG.value(CFG_VAL_AUTOSAVE).toBool();
     216 + m_scanArgs->config->setTimeout = CONFIG.value(CFG_VAL_SETTIMEOUT).toBool();
    216 217   CONFIG.endGroup();
    217 218  }
    218 219   
    skipped 16 lines
  • ■ ■ ■ ■
    sub3suite/src/engines/ssl/Ssl_scan.cpp
    skipped 24 lines
    25 25   /* ressetting and setting new values */
    26 26   ui->progressBar->show();
    27 27   ui->progressBar->reset();
     28 + m_failedScans.clear();
    28 29   
    29 30   /*
    30 31   if the numner of threads is greater than the number of wordlists, set the
    skipped 97 lines
    128 129   return;
    129 130   
    130 131   /* clear */
    131  - m_failedScans.clear();
    132 132   m_scanArgs->targets.clear();
    133 133   
    134 134   /* get targets */
    skipped 64 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/engines/url/Url.cpp
    skipped 178 lines
    179 179   m_scanArgs->config->threads = CONFIG.value(CFG_VAL_THREADS).toInt();
    180 180   m_scanArgs->config->noDuplicates = CONFIG.value(CFG_VAL_DUPLICATES).toBool();
    181 181   m_scanArgs->config->autoSaveToProject = CONFIG.value(CFG_VAL_AUTOSAVE).toBool();
     182 + m_scanArgs->config->setTimeout = CONFIG.value(CFG_VAL_SETTIMEOUT).toBool();
    182 183   CONFIG.endGroup();
    183 184  }
    184 185   
    skipped 17 lines
  • ■ ■ ■ ■
    sub3suite/src/engines/url/Url_scan.cpp
    skipped 25 lines
    26 26   /* ressetting and setting new values */
    27 27   ui->progressBar->show();
    28 28   ui->progressBar->reset();
     29 + m_failedScans.clear();
    29 30   
    30 31   /*
    31 32   if the numner of threads is greater than the number of wordlists, set the
    skipped 46 lines
    78 79   return;
    79 80   
    80 81   /* clear */
    81  - m_failedScans.clear();
    82 82   m_scanArgs->targets.clear();
    83 83   
    84 84   /* get targets */
    skipped 64 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/enums/asn/ASNEnum.cpp
    skipped 116 lines
    117 117   CONFIG.beginGroup(CFG_ENUM);
    118 118   m_scanConfig->autosaveToProject = CONFIG.value("autosave_to_Project_asn").toBool();
    119 119   m_scanConfig->noDuplicates = CONFIG.value("no_duplicates_asn").toBool();
     120 + m_scanConfig->setTimeout = CONFIG.value("set_timeout_asn").toBool();
    120 121   m_scanConfig->timeout = CONFIG.value("timeout_asn").toInt();
    121 122   CONFIG.endGroup();
    122 123  }
    skipped 18 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/enums/asn/ASNEnum_results.cpp
    skipped 56 lines
    57 57   if(log.error){
    58 58   QString message("<font color=\"red\">"+log.message+"</font>");
    59 59   QString module("<font color=\"red\">"+log.moduleName+"</font>");
     60 + QString target("<font color=\"red\">"+log.target+"</font>");
    60 61   QString status("<font color=\"red\">"+QString::number(log.statusCode)+"</font>");
    61 62   ui->plainTextEditLogs->appendHtml("[Module] :"+module);
     63 + ui->plainTextEditLogs->appendHtml("[Target] :"+target);
    62 64   ui->plainTextEditLogs->appendHtml("[Status Code] :"+status);
    63 65   ui->plainTextEditLogs->appendHtml("[Error message] :"+message);
    64  - ui->plainTextEditLogs->appendPlainText("");
    65 66   m_failedScans.insert(log.target, log.message);
    66 67   }
    67 68   else{
    68 69   QString module("<font color=\"green\">"+log.moduleName+"</font>");
     70 + QString target("<font color=\"green\">"+log.target+"</font>");
    69 71   QString status("<font color=\"green\">"+QString::number(log.statusCode)+"</font>");
    70 72   ui->plainTextEditLogs->appendHtml("[Module] :"+module);
     73 + ui->plainTextEditLogs->appendHtml("[Target] :"+target);
    71 74   ui->plainTextEditLogs->appendHtml("[Status Code] :"+status);
    72  - ui->plainTextEditLogs->appendPlainText("");
    73 75   }
     76 + 
     77 + ui->plainTextEditLogs->appendPlainText("");
    74 78  }
    75 79   
    76 80   
  • ■ ■ ■ ■ ■
    sub3suite/src/enums/asn/ASNEnum_scan.cpp
    skipped 48 lines
    49 49   ui->progressBar->show();
    50 50   ui->progressBar->reset();
    51 51   ui->progressBar->clearMask();
     52 + m_failedScans.clear();
    52 53   
    53 54   /* enabling/disabling widgets... */
    54 55   ui->buttonStop->setEnabled(true);
    skipped 80 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/enums/cidr/CidrEnum.cpp
    skipped 116 lines
    117 117   CONFIG.beginGroup(CFG_ENUM);
    118 118   m_scanConfig->autosaveToProject = CONFIG.value("autosave_to_Project_cidr").toBool();
    119 119   m_scanConfig->noDuplicates = CONFIG.value("no_duplicates_cidr").toBool();
     120 + m_scanConfig->setTimeout = CONFIG.value("set_timeout_cidr").toBool();
    120 121   m_scanConfig->timeout = CONFIG.value("timeout_cidr").toInt();
    121 122   CONFIG.endGroup();
    122 123  }
    skipped 18 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/enums/cidr/CidrEnum_results.cpp
    skipped 18 lines
    19 19   if(log.error){
    20 20   QString message("<font color=\"red\">"+log.message+"</font>");
    21 21   QString module("<font color=\"red\">"+log.moduleName+"</font>");
     22 + QString target("<font color=\"red\">"+log.target+"</font>");
    22 23   QString status("<font color=\"red\">"+QString::number(log.statusCode)+"</font>");
    23 24   ui->plainTextEditLogs->appendHtml("[Module] :"+module);
     25 + ui->plainTextEditLogs->appendHtml("[Target] :"+target);
    24 26   ui->plainTextEditLogs->appendHtml("[Status Code] :"+status);
    25 27   ui->plainTextEditLogs->appendHtml("[Error message] :"+message);
    26  - ui->plainTextEditLogs->appendPlainText("");
    27 28   m_failedScans.insert(log.target, log.message);
    28 29   }
    29 30   else{
    30 31   QString module("<font color=\"green\">"+log.moduleName+"</font>");
     32 + QString target("<font color=\"green\">"+log.target+"</font>");
    31 33   QString status("<font color=\"green\">"+QString::number(log.statusCode)+"</font>");
    32 34   ui->plainTextEditLogs->appendHtml("[Module] :"+module);
     35 + ui->plainTextEditLogs->appendHtml("[Target] :"+target);
    33 36   ui->plainTextEditLogs->appendHtml("[Status Code] :"+status);
    34  - ui->plainTextEditLogs->appendPlainText("");
    35 37   }
     38 + 
     39 + ui->plainTextEditLogs->appendPlainText("");
    36 40  }
    37 41   
  • ■ ■ ■ ■ ■
    sub3suite/src/enums/cidr/CidrEnum_scan.cpp
    skipped 48 lines
    49 49   ui->progressBar->show();
    50 50   ui->progressBar->reset();
    51 51   ui->progressBar->clearMask();
     52 + m_failedScans.clear();
    52 53   
    53 54   /* enabling/disabling widgets... */
    54 55   ui->buttonStop->setEnabled(true);
    skipped 53 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/enums/email/EmailEnum.cpp
    skipped 114 lines
    115 115   CONFIG.beginGroup(CFG_ENUM);
    116 116   m_scanConfig->autosaveToProject = CONFIG.value("autosave_to_Project_email").toBool();
    117 117   m_scanConfig->noDuplicates = CONFIG.value("no_duplicates_email").toBool();
     118 + m_scanConfig->setTimeout = CONFIG.value("set_timeout_email").toBool();
    118 119   m_scanConfig->timeout = CONFIG.value("timeout_email").toInt();
    119 120   CONFIG.endGroup();
    120 121  }
    skipped 18 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/enums/email/EmailEnum_results.cpp
    skipped 29 lines
    30 30   if(log.error){
    31 31   QString message("<font color=\"red\">"+log.message+"</font>");
    32 32   QString module("<font color=\"red\">"+log.moduleName+"</font>");
     33 + QString target("<font color=\"red\">"+log.target+"</font>");
    33 34   QString status("<font color=\"red\">"+QString::number(log.statusCode)+"</font>");
    34 35   ui->plainTextEditLogs->appendHtml("[Module] :"+module);
     36 + ui->plainTextEditLogs->appendHtml("[Target] :"+target);
    35 37   ui->plainTextEditLogs->appendHtml("[Status Code] :"+status);
    36 38   ui->plainTextEditLogs->appendHtml("[Error message] :"+message);
    37  - ui->plainTextEditLogs->appendPlainText("");
    38 39   m_failedScans.insert(log.target, log.message);
    39 40   }
    40 41   else{
    41 42   QString module("<font color=\"green\">"+log.moduleName+"</font>");
     43 + QString target("<font color=\"green\">"+log.target+"</font>");
    42 44   QString status("<font color=\"green\">"+QString::number(log.statusCode)+"</font>");
    43 45   ui->plainTextEditLogs->appendHtml("[Module] :"+module);
     46 + ui->plainTextEditLogs->appendHtml("[Target] :"+target);
    44 47   ui->plainTextEditLogs->appendHtml("[Status Code] :"+status);
    45  - ui->plainTextEditLogs->appendPlainText("");
    46 48   }
     49 + 
     50 + ui->plainTextEditLogs->appendPlainText("");
    47 51  }
    48 52   
  • ■ ■ ■ ■ ■
    sub3suite/src/enums/email/EmailEnum_scan.cpp
    skipped 49 lines
    50 50   ui->progressBar->show();
    51 51   ui->progressBar->reset();
    52 52   ui->progressBar->clearMask();
     53 + m_failedScans.clear();
    53 54   
    54 55   /* enabling/disabling widgets... */
    55 56   ui->buttonStop->setEnabled(true);
    skipped 53 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/enums/ip/IpEnum.cpp
    skipped 119 lines
    120 120   CONFIG.beginGroup(CFG_ENUM);
    121 121   m_scanConfig->autosaveToProject = CONFIG.value("autosave_to_Project_ip").toBool();
    122 122   m_scanConfig->noDuplicates = CONFIG.value("no_duplicates_ip").toBool();
     123 + m_scanConfig->setTimeout = CONFIG.value("set_timeout_ip").toBool();
    123 124   m_scanConfig->timeout = CONFIG.value("timeout_ip").toInt();
    124 125   CONFIG.endGroup();
    125 126  }
    skipped 29 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/enums/ip/IpEnum_results.cpp
    skipped 33 lines
    34 34   if(log.error){
    35 35   QString message("<font color=\"red\">"+log.message+"</font>");
    36 36   QString module("<font color=\"red\">"+log.moduleName+"</font>");
     37 + QString target("<font color=\"red\">"+log.target+"</font>");
    37 38   QString status("<font color=\"red\">"+QString::number(log.statusCode)+"</font>");
    38 39   ui->plainTextEditLogs->appendHtml("[Module] :"+module);
     40 + ui->plainTextEditLogs->appendHtml("[Target] :"+target);
    39 41   ui->plainTextEditLogs->appendHtml("[Status Code] :"+status);
    40 42   ui->plainTextEditLogs->appendHtml("[Error message] :"+message);
    41  - ui->plainTextEditLogs->appendPlainText("");
    42 43   m_failedScans.insert(log.target, log.message);
    43 44   }
    44 45   else{
    45 46   QString module("<font color=\"green\">"+log.moduleName+"</font>");
     47 + QString target("<font color=\"green\">"+log.target+"</font>");
    46 48   QString status("<font color=\"green\">"+QString::number(log.statusCode)+"</font>");
    47 49   ui->plainTextEditLogs->appendHtml("[Module] :"+module);
     50 + ui->plainTextEditLogs->appendHtml("[Target] :"+target);
    48 51   ui->plainTextEditLogs->appendHtml("[Status Code] :"+status);
    49  - ui->plainTextEditLogs->appendPlainText("");
    50 52   }
     53 + 
     54 + ui->plainTextEditLogs->appendPlainText("");
    51 55  }
    52 56   
  • ■ ■ ■ ■ ■
    sub3suite/src/enums/ip/IpEnum_scan.cpp
    skipped 48 lines
    49 49   ui->progressBar->show();
    50 50   ui->progressBar->reset();
    51 51   ui->progressBar->clearMask();
     52 + m_failedScans.clear();
    52 53   
    53 54   /* enabling/disabling widgets... */
    54 55   ui->buttonStop->setEnabled(true);
    skipped 84 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/enums/mx/MXEnum.cpp
    skipped 115 lines
    116 116   CONFIG.beginGroup(CFG_ENUM);
    117 117   m_scanConfig->autosaveToProject = CONFIG.value("autosave_to_Project_mx").toBool();
    118 118   m_scanConfig->noDuplicates = CONFIG.value("no_duplicates_mx").toBool();
     119 + m_scanConfig->setTimeout = CONFIG.value("set_timeout_mx").toBool();
    119 120   m_scanConfig->timeout = CONFIG.value("timeout_mx").toInt();
    120 121   CONFIG.endGroup();
    121 122  }
    skipped 18 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/enums/mx/MXEnum_results.cpp
    skipped 29 lines
    30 30   if(log.error){
    31 31   QString message("<font color=\"red\">"+log.message+"</font>");
    32 32   QString module("<font color=\"red\">"+log.moduleName+"</font>");
     33 + QString target("<font color=\"red\">"+log.target+"</font>");
    33 34   QString status("<font color=\"red\">"+QString::number(log.statusCode)+"</font>");
    34 35   ui->plainTextEditLogs->appendHtml("[Module] :"+module);
     36 + ui->plainTextEditLogs->appendHtml("[Target] :"+target);
    35 37   ui->plainTextEditLogs->appendHtml("[Status Code] :"+status);
    36 38   ui->plainTextEditLogs->appendHtml("[Error message] :"+message);
    37  - ui->plainTextEditLogs->appendPlainText("");
    38 39   m_failedScans.insert(log.target, log.message);
    39 40   }
    40 41   else{
    41 42   QString module("<font color=\"green\">"+log.moduleName+"</font>");
     43 + QString target("<font color=\"green\">"+log.target+"</font>");
    42 44   QString status("<font color=\"green\">"+QString::number(log.statusCode)+"</font>");
    43 45   ui->plainTextEditLogs->appendHtml("[Module] :"+module);
     46 + ui->plainTextEditLogs->appendHtml("[Target] :"+target);
    44 47   ui->plainTextEditLogs->appendHtml("[Status Code] :"+status);
    45  - ui->plainTextEditLogs->appendPlainText("");
    46 48   }
     49 + 
     50 + ui->plainTextEditLogs->appendPlainText("");
    47 51  }
    48 52   
  • ■ ■ ■ ■ ■
    sub3suite/src/enums/mx/MXEnum_scan.cpp
    skipped 48 lines
    49 49   ui->progressBar->show();
    50 50   ui->progressBar->reset();
    51 51   ui->progressBar->clearMask();
     52 + m_failedScans.clear();
    52 53   
    53 54   /* enabling/disabling widgets... */
    54 55   ui->buttonStop->setEnabled(true);
    skipped 65 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/enums/ns/NSEnum.cpp
    skipped 115 lines
    116 116   CONFIG.beginGroup(CFG_ENUM);
    117 117   m_scanConfig->autosaveToProject = CONFIG.value("autosave_to_Project_ns").toBool();
    118 118   m_scanConfig->noDuplicates = CONFIG.value("no_duplicates_ns").toBool();
     119 + m_scanConfig->setTimeout = CONFIG.value("set_timeout_ns").toBool();
    119 120   m_scanConfig->timeout = CONFIG.value("timeout_ns").toInt();
    120 121   CONFIG.endGroup();
    121 122  }
    skipped 18 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/enums/ns/NSEnum_results.cpp
    skipped 29 lines
    30 30   if(log.error){
    31 31   QString message("<font color=\"red\">"+log.message+"</font>");
    32 32   QString module("<font color=\"red\">"+log.moduleName+"</font>");
     33 + QString target("<font color=\"red\">"+log.target+"</font>");
    33 34   QString status("<font color=\"red\">"+QString::number(log.statusCode)+"</font>");
    34 35   ui->plainTextEditLogs->appendHtml("[Module] :"+module);
     36 + ui->plainTextEditLogs->appendHtml("[Target] :"+target);
    35 37   ui->plainTextEditLogs->appendHtml("[Status Code] :"+status);
    36 38   ui->plainTextEditLogs->appendHtml("[Error message] :"+message);
    37  - ui->plainTextEditLogs->appendPlainText("");
    38 39   m_failedScans.insert(log.target, log.message);
    39 40   }
    40 41   else{
    41 42   QString module("<font color=\"green\">"+log.moduleName+"</font>");
     43 + QString target("<font color=\"green\">"+log.target+"</font>");
    42 44   QString status("<font color=\"green\">"+QString::number(log.statusCode)+"</font>");
    43 45   ui->plainTextEditLogs->appendHtml("[Module] :"+module);
     46 + ui->plainTextEditLogs->appendHtml("[Target] :"+target);
    44 47   ui->plainTextEditLogs->appendHtml("[Status Code] :"+status);
    45  - ui->plainTextEditLogs->appendPlainText("");
    46 48   }
     49 + 
     50 + ui->plainTextEditLogs->appendPlainText("");
    47 51  }
    48 52   
  • ■ ■ ■ ■ ■
    sub3suite/src/enums/ns/NSEnum_scan.cpp
    skipped 44 lines
    45 45   ui->progressBar->show();
    46 46   ui->progressBar->reset();
    47 47   ui->progressBar->clearMask();
     48 + m_failedScans.clear();
    48 49   
    49 50   /* enabling/disabling widgets... */
    50 51   ui->buttonStop->setEnabled(true);
    skipped 69 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/enums/ssl/SSLEnum.cpp
    skipped 114 lines
    115 115   CONFIG.beginGroup(CFG_ENUM);
    116 116   m_scanConfig->autosaveToProject = CONFIG.value("autosave_to_Project_ssl").toBool();
    117 117   m_scanConfig->noDuplicates = CONFIG.value("no_duplicates_ssl").toBool();
     118 + m_scanConfig->setTimeout = CONFIG.value("set_timeout_ssl").toBool();
    118 119   m_scanConfig->timeout = CONFIG.value("timeout_ssl").toInt();
    119 120   CONFIG.endGroup();
    120 121  }
    skipped 27 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/enums/ssl/SSLEnum_results.cpp
    skipped 24 lines
    25 25   if(log.error){
    26 26   QString message("<font color=\"red\">"+log.message+"</font>");
    27 27   QString module("<font color=\"red\">"+log.moduleName+"</font>");
     28 + QString target("<font color=\"red\">"+log.target+"</font>");
    28 29   QString status("<font color=\"red\">"+QString::number(log.statusCode)+"</font>");
    29 30   ui->plainTextEditLogs->appendHtml("[Module] :"+module);
     31 + ui->plainTextEditLogs->appendHtml("[Target] :"+target);
    30 32   ui->plainTextEditLogs->appendHtml("[Status Code] :"+status);
    31 33   ui->plainTextEditLogs->appendHtml("[Error message] :"+message);
    32  - ui->plainTextEditLogs->appendPlainText("");
    33 34   m_failedScans.insert(log.target, log.message);
    34 35   }
    35 36   else{
    36 37   QString module("<font color=\"green\">"+log.moduleName+"</font>");
     38 + QString target("<font color=\"green\">"+log.target+"</font>");
    37 39   QString status("<font color=\"green\">"+QString::number(log.statusCode)+"</font>");
    38 40   ui->plainTextEditLogs->appendHtml("[Module] :"+module);
     41 + ui->plainTextEditLogs->appendHtml("[Target] :"+target);
    39 42   ui->plainTextEditLogs->appendHtml("[Status Code] :"+status);
    40  - ui->plainTextEditLogs->appendPlainText("");
    41 43   }
     44 + 
     45 + ui->plainTextEditLogs->appendPlainText("");
    42 46  }
    43 47   
  • ■ ■ ■ ■ ■
    sub3suite/src/enums/ssl/SSLEnum_scan.cpp
    skipped 44 lines
    45 45   ui->progressBar->show();
    46 46   ui->progressBar->reset();
    47 47   ui->progressBar->clearMask();
     48 + m_failedScans.clear();
    48 49   
    49 50   /* enabling/disabling widgets... */
    50 51   ui->buttonStop->setEnabled(true);
    skipped 47 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/modules/active/ActiveScanner.cpp
    skipped 95 lines
    96 96   switch (getTarget(m_dns, m_args)) {
    97 97   case RETVAL::LOOKUP:
    98 98   m_dns->lookup();
    99  - s3s_LookupTimeout::set(m_dns, m_args->config->timeout);
     99 + if(m_args->config->setTimeout)
     100 + s3s_LookupTimeout::set(m_dns, m_args->config->timeout);
    100 101   break;
    101 102   default:
    102 103   emit quitThread();
    skipped 15 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/modules/active/ActiveScanner.h
    skipped 30 lines
    31 31   int threads = 50;
    32 32   int timeout = 3000;
    33 33   
     34 + bool setTimeout = false;
    34 35   bool noDuplicates = false;
    35 36   bool autoSaveToProject = false;
    36 37  };
    skipped 38 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/active/BruteScanner.cpp
    skipped 108 lines
    109 109   switch(brute::getTarget_reScan(m_dns, m_args)){
    110 110   case RETVAL::LOOKUP:
    111 111   m_dns->lookup();
    112  - s3s_LookupTimeout::set(m_dns, m_args->config->timeout);
     112 + if(m_args->config->setTimeout)
     113 + s3s_LookupTimeout::set(m_dns, m_args->config->timeout);
    113 114   return;
    114 115   default:
    115 116   emit quitThread();
    skipped 7 lines
    123 124   switch(brute::getTarget_subdomain(this, m_dns, m_args)){
    124 125   case RETVAL::LOOKUP:
    125 126   m_dns->lookup();
    126  - s3s_LookupTimeout::set(m_dns, m_args->config->timeout);
     127 + if(m_args->config->setTimeout)
     128 + s3s_LookupTimeout::set(m_dns, m_args->config->timeout);
    127 129   break;
    128 130   case RETVAL::NEXT:
    129 131   emit next();
    skipped 8 lines
    138 140   switch(brute::getTarget_tld(m_dns, m_args)){
    139 141   case RETVAL::LOOKUP:
    140 142   m_dns->lookup();
    141  - s3s_LookupTimeout::set(m_dns, m_args->config->timeout);
     143 + if(m_args->config->setTimeout)
     144 + s3s_LookupTimeout::set(m_dns, m_args->config->timeout);
    142 145   break;
    143 146   case RETVAL::NEXT:
    144 147   emit next();
    skipped 13 lines
    158 161   m_dns_wildcard->setNameserver(m_dns->nameserver());
    159 162   m_dns_wildcard->setName(m_args->currentTarget);
    160 163   m_dns_wildcard->lookup();
    161  - s3s_LookupTimeout::set(m_dns, m_args->config->timeout);
     164 + if(m_args->config->setTimeout)
     165 + s3s_LookupTimeout::set(m_dns, m_args->config->timeout);
    162 166  }
    163 167   
    164 168  void brute::Scanner::lookupFinished_wildcard(){
    skipped 101 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/modules/active/BruteScanner.h
    skipped 39 lines
    40 40   int threads = 50;
    41 41   int timeout = 1000;
    42 42   
     43 + bool setTimeout = false;
    43 44   bool noDuplicates = false;
    44 45   bool autoSaveToProject = false;
    45 46   bool checkWildcard = false;
    skipped 51 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/active/DNSScanner.cpp
    skipped 371 lines
    372 372   switch(dns::getTarget_srv(m_dns_srv, m_args)){
    373 373   case RETVAL::LOOKUP:
    374 374   m_dns_srv->lookup();
    375  - s3s_LookupTimeout::set(m_dns_srv, m_args->config->timeout);
     375 + if(m_args->config->setTimeout)
     376 + s3s_LookupTimeout::set(m_dns_srv, m_args->config->timeout);
    376 377   break;
    377 378   case RETVAL::NEXT:
    378 379   emit next();
    skipped 27 lines
    406 407   m_activeLookups++;
    407 408   m_dns_a->setName(m_currentTarget);
    408 409   m_dns_a->lookup();
    409  - s3s_LookupTimeout::set(m_dns_a, m_args->config->timeout);
     410 + if(m_args->config->setTimeout)
     411 + s3s_LookupTimeout::set(m_dns_a, m_args->config->timeout);
    410 412   }
    411 413   if(m_args->RecordType_aaaa){
    412 414   m_activeLookups++;
    413 415   m_dns_aaaa->setName(m_currentTarget);
    414 416   m_dns_aaaa->lookup();
    415  - s3s_LookupTimeout::set(m_dns_aaaa, m_args->config->timeout);
     417 + if(m_args->config->setTimeout)
     418 + s3s_LookupTimeout::set(m_dns_aaaa, m_args->config->timeout);
    416 419   }
    417 420   if(m_args->RecordType_ns){
    418 421   m_activeLookups++;
    419 422   m_dns_ns->setName(m_currentTarget);
    420 423   m_dns_ns->lookup();
    421  - s3s_LookupTimeout::set(m_dns_ns, m_args->config->timeout);
     424 + if(m_args->config->setTimeout)
     425 + s3s_LookupTimeout::set(m_dns_ns, m_args->config->timeout);
    422 426   }
    423 427   if(m_args->RecordType_mx){
    424 428   m_activeLookups++;
    425 429   m_dns_mx->setName(m_currentTarget);
    426 430   m_dns_mx->lookup();
    427  - s3s_LookupTimeout::set(m_dns_mx, m_args->config->timeout);
     431 + if(m_args->config->setTimeout)
     432 + s3s_LookupTimeout::set(m_dns_mx, m_args->config->timeout);
    428 433   }
    429 434   if(m_args->RecordType_cname){
    430 435   m_activeLookups++;
    431 436   m_dns_cname->setName(m_currentTarget);
    432 437   m_dns_cname->lookup();
    433  - s3s_LookupTimeout::set(m_dns_cname, m_args->config->timeout);
     438 + if(m_args->config->setTimeout)
     439 + s3s_LookupTimeout::set(m_dns_cname, m_args->config->timeout);
    434 440   }
    435 441   if(m_args->RecordType_txt){
    436 442   m_activeLookups++;
    437 443   m_dns_txt->setName(m_currentTarget);
    438 444   m_dns_txt->lookup();
    439  - s3s_LookupTimeout::set(m_dns_txt, m_args->config->timeout);
     445 + if(m_args->config->setTimeout)
     446 + s3s_LookupTimeout::set(m_dns_txt, m_args->config->timeout);
    440 447   }
    441 448   if(m_args->RecordType_any){
    442 449   m_dns_any->setName(m_currentTarget);
    443 450   m_dns_any->lookup();
    444  - s3s_LookupTimeout::set(m_dns_any, m_args->config->timeout);
     451 + if(m_args->config->setTimeout)
     452 + s3s_LookupTimeout::set(m_dns_any, m_args->config->timeout);
    445 453   }
    446 454   }
    447 455  }
    skipped 36 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/modules/active/DNSScanner.h
    skipped 29 lines
    30 30   int threads = 50;
    31 31   int timeout = 1000;
    32 32   
     33 + bool setTimeout = false;
    33 34   bool noDuplicates = false;
    34 35   bool autoSaveToProject = false;
    35 36  };
    skipped 67 lines
  • ■ ■ ■ ■
    sub3suite/src/modules/active/SSLScanner.cpp
    skipped 60 lines
    61 61   break;
    62 62   }
    63 63   
    64  - if(!socket.waitForEncrypted(m_args->config->timeout*1000))
     64 + if(!socket.waitForEncrypted(m_args->config->timeout))
    65 65   {
    66 66   switch (socket.error())
    67 67   {
    skipped 62 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/modules/active/SSLScanner.h
    skipped 47 lines
    48 48   int threads = 50;
    49 49   int timeout = 3000;
    50 50   
     51 + bool setTimeout = false;
    51 52   bool noDuplicates = false;
    52 53   bool autoSaveToProject = false;
    53 54  };
    skipped 63 lines
  • ■ ■ ■ ■
    sub3suite/src/modules/active/URLScanner.cpp
    skipped 14 lines
    15 15  {
    16 16   m_manager = new NetworkAccessManager(this, m_args->config->timeout);
    17 17   
    18  - connect(m_manager, &QNetworkAccessManager::finished, this, &url::Scanner::lookupFinished);
     18 + connect(m_manager, &NetworkAccessManager::finished, this, &url::Scanner::lookupFinished);
    19 19   connect(this, &url::Scanner::next, this, &url::Scanner::lookup);
    20 20  }
    21 21  url::Scanner::~Scanner(){
    skipped 67 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/active/URLScanner.h
    skipped 29 lines
    30 30   int threads = 50;
    31 31   int timeout = 1000;
    32 32   
     33 + bool setTimeout = false;
    33 34   bool noDuplicates = false;
    34 35   bool autoSaveToProject = false;
    35 36  };
    skipped 7 lines
    43 44   
    44 45  class NetworkAccessManager: public QNetworkAccessManager {
    45 46   public:
    46  - NetworkAccessManager(QObject *parent = nullptr, int timeout = 1000): QNetworkAccessManager(parent),
    47  - m_timeout(timeout)
     47 + NetworkAccessManager(QObject *parent = nullptr, int timeout = 1000, bool use_timer = false): QNetworkAccessManager(parent),
     48 + m_timeout(timeout),
     49 + m_use_timer(use_timer)
    48 50   {
    49 51   }
    50 52   
    skipped 3 lines
    54 56   QNetworkReply *reply = QNetworkAccessManager::createRequest(op, request, data);
    55 57   
    56 58   /* set timeout */
    57  - s3s_ReplyTimeout::set(reply, m_timeout);
     59 + if(m_use_timer)
     60 + s3s_ReplyTimeout::set(reply, m_timeout);
    58 61   
    59 62   return reply;
    60 63   }
    61 64   
    62 65   private:
    63 66   int m_timeout;
     67 + bool m_use_timer;
    64 68  };
    65 69   
    66 70  class Scanner : public AbstractScanner{
    skipped 25 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/AbstractOsintModule.h
    skipped 5 lines
    6 6  #include <QQueue>
    7 7  #include <QNetworkReply>
    8 8  #include <QNetworkRequest>
    9  -#include <QNetworkAccessManager>
    10 9   
    11 10  #include "ParserMethods.h"
    12 11  #include "src/utils/s3s.h"
    skipped 43 lines
    56 55   
    57 56  struct ScanConfig {
    58 57   int maxPage = 50;
     58 + bool setTimeout = false;
    59 59   bool noDuplicates = false;
    60 60   bool autosaveToProject = false;
    61 61   int timeout = 2000;
    skipped 151 lines
    213 213   emit resultRawJSON(raw);
    214 214   }
    215 215   
    216  - end(reply);
     216 + this->end(reply);
    217 217   }
    218 218   
    219 219   virtual void replyFinishedRawJson(QNetworkReply *reply) // returns raw json results
    skipped 9 lines
    229 229   emit resultRawJSON(raw);
    230 230   }
    231 231   
    232  - end(reply);
     232 + this->end(reply);
    233 233   }
    234 234   
    235 235   virtual void replyFinishedRawTxt(QNetworkReply *reply) // returns raw txt results
    skipped 9 lines
    245 245   emit resultRawTXT(raw);
    246 246   }
    247 247   
    248  - end(reply);
     248 + this->end(reply);
    249 249   }
    250 250   
    251 251   protected:
    252 252   ScanLog log;
    253 253   ScanArgs args;
    254 254   QString target;
    255  - int activeRequests = 0;
    256 255   s3sNetworkAccessManager *manager = nullptr;
    257 256   
    258  - void onError(QNetworkReply *reply){
     257 + void onError(QNetworkReply *reply) {
    259 258   switch(reply->error()){
    260 259   case QNetworkReply::OperationCanceledError:
    261 260   log.target = target;
    skipped 11 lines
    273 272   break;
    274 273   }
    275 274   
    276  - /* has its own end */
    277 275   reply->close();
    278 276   reply->deleteLater();
    279  - activeRequests--;
    280  - if(activeRequests == 0)
    281  - emit quitThread();
     277 + this->next();
    282 278   }
    283 279   
    284  - void end(QNetworkReply *reply){
     280 + void end(QNetworkReply *reply) {
    285 281   log.target = target;
    286 282   log.statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
     283 + emit scanLog(log);
     284 + 
    287 285   reply->close();
    288 286   reply->deleteLater();
    289  - activeRequests--;
    290  - if(activeRequests == 0)
    291  - {
    292  - args.config->progress++;
    293  - emit scanProgress(args.config->progress);
    294  - emit scanLog(log);
     287 + this->next();
     288 + }
    295 289   
    296  - /* enumerate next target if there are still targets available */
    297  - if(args.targets.length()){
    298  - target = args.targets.dequeue();
    299  - emit nextTarget();
    300  - }
     290 + void next() {
     291 + args.config->progress++;
     292 + emit scanProgress(args.config->progress);
    301 293   
    302  - /* if no targets available quit the scanThread */
    303  - else
    304  - emit quitThread();
     294 + /*
     295 + * enumerate next target if there are still targets available
     296 + * if no targets available quit the scanThread.
     297 + */
     298 + if(args.targets.length()){
     299 + target = args.targets.dequeue();
     300 + emit nextTarget();
    305 301   }
     302 + else
     303 + emit quitThread();
    306 304   }
    307 305  };
    308 306   
    skipped 2 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/OsintDefinitions.h
    skipped 47 lines
    48 48  #define OSINT_MODULE_WHOXY "Whoxy"
    49 49  #define OSINT_MODULE_ZETALYTICS "ZETAlytics"
    50 50  #define OSINT_MODULE_ZOOMEYE "ZoomEye"
     51 +#define OSINT_MODULE_CIRCLPUBLIC "Circl Public"
     52 +#define OSINT_MODULE_ASRANK "ASRank"
    51 53   
    52 54  /* archives */
    53 55  #define OSINT_MODULE_ARCHIVEIT "ArchiveIt"
    skipped 64 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/OsintModulesHeaders.h
    skipped 34 lines
    35 35  #include "src/modules/passive/api/Omnisint.h"
    36 36  #include "src/modules/passive/api/Urlscan.h"
    37 37  #include "src/modules/passive/api/Circl.h"
     38 +#include "src/modules/passive/api/CirclPublic.h"
    38 39  #include "src/modules/passive/api/WebResolver.h"
    39 40  #include "src/modules/passive/api/BuiltWith.h"
    40 41  #include "src/modules/passive/api/Dnslytics.h"
    skipped 14 lines
    55 56  #include "src/modules/passive/api/Whatcms.h"
    56 57  #include "src/modules/passive/api/Whoxy.h"
    57 58  #include "src/modules/passive/api/PassiveTotal.h"
     59 +#include "src/modules/passive/api/ASRank.h"
    58 60  ///
    59 61  /// iana...
    60 62  ///
    skipped 74 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/ASRank.cpp
     1 +/*
     2 + Copyright 2020-2022 Enock Nicholaus <[email protected]>. All rights reserved.
     3 + Use of this source code is governed by GPL-3.0 LICENSE that can be found in the LICENSE file.
     4 + 
     5 + @brief :
     6 +*/
     7 + 
     8 +#include "ASRank.h"
     9 +#include <QJsonDocument>
     10 +#include <QJsonObject>
     11 +#include <QJsonArray>
     12 + 
     13 +#define ASN 0
     14 +#define ASN_ASN 1
     15 +#define ASN_NAME 2
     16 +#define LINK 3
     17 +#define LINK_LINK 4
     18 +#define ORG 5
     19 +#define ORG_ORG 6
     20 + 
     21 +ASRank::ASRank(ScanArgs args): AbstractOsintModule(args)
     22 +{
     23 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
     24 + log.moduleName = OSINT_MODULE_ASRANK;
     25 + 
     26 + if(args.output_Raw)
     27 + connect(manager, &s3sNetworkAccessManager::finished, this, &ASRank::replyFinishedRawJson);
     28 + if(args.output_ASN)
     29 + connect(manager, &s3sNetworkAccessManager::finished, this, &ASRank::replyFinishedAsn);
     30 +}
     31 +ASRank::~ASRank(){
     32 + delete manager;
     33 +}
     34 + 
     35 +void ASRank::start(){
     36 + QNetworkRequest request;
     37 + QUrl url;
     38 + 
     39 + if(args.output_Raw){
     40 + switch (args.raw_query_id) {
     41 + case ASN:
     42 + url.setUrl("https://api.asrank.caida.org/v2/restful/asns");
     43 + break;
     44 + case ASN_ASN:
     45 + url.setUrl("https://api.asrank.caida.org/v2/restful/asns/"+target);
     46 + break;
     47 + case ASN_NAME:
     48 + url.setUrl("https://api.asrank.caida.org/v2/restful/asns/name/"+target);
     49 + break;
     50 + case LINK:
     51 + url.setUrl("https://api.asrank.caida.org/v2/restful/asnLinks");
     52 + break;
     53 + case LINK_LINK:
     54 + url.setUrl("https://api.asrank.caida.org/v2/restful/asnLinks/"+target);
     55 + break;
     56 + case ORG:
     57 + url.setUrl("https://api.asrank.caida.org/v2/restful/organizations");
     58 + break;
     59 + case ORG_ORG:
     60 + url.setUrl("https://api.asrank.caida.org/v2/restful/organizations/"+target);
     61 + break;
     62 + }
     63 + request.setUrl(url);
     64 + manager->get(request);
     65 + return;
     66 + }
     67 + 
     68 + if(args.input_Search){
     69 + if(args.output_ASN){
     70 + url.setUrl("https://api.asrank.caida.org/v2/restful/asns/name/"+target);
     71 + request.setAttribute(QNetworkRequest::User, ASN_NAME);
     72 + request.setUrl(url);
     73 + manager->get(request);
     74 + return;
     75 + }
     76 + }
     77 +}
     78 + 
     79 +void ASRank::replyFinishedAsn(QNetworkReply *reply){
     80 + if(reply->error()){
     81 + this->onError(reply);
     82 + return;
     83 + }
     84 + 
     85 + QJsonDocument document = QJsonDocument::fromJson(reply->readAll());
     86 + QJsonArray edges = document.object()["data"].toObject()["asns"].toObject()["edges"].toArray();
     87 + 
     88 + switch (reply->property(REQUEST_TYPE).toInt())
     89 + {
     90 + case ASN_NAME:
     91 + foreach(const QJsonValue &value, edges){
     92 + QJsonObject node = value.toObject()["node"].toObject();
     93 + emit resultASN(node["asn"].toString(), node["asnName"].toString());
     94 + log.resultsCount++;
     95 + }
     96 + }
     97 + 
     98 + this->end(reply);
     99 +}
     100 + 
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/ASRank.h
     1 +#ifndef ASRANK_H
     2 +#define ASRANK_H
     3 + 
     4 +#include "../AbstractOsintModule.h"
     5 + 
     6 + 
     7 +namespace ModuleInfo {
     8 +struct ASRank{
     9 + QString name = OSINT_MODULE_ASRANK;
     10 + QString url = "https://asrank.caida.org/";
     11 + QString url_apiDoc = "https://api.asrank.caida.org/v2/docs";
     12 + QString summary = "ASRank is CAIDA's ranking of Autonomous Systems (AS) (which approximately map to Internet Service Providers) and organizations (Orgs) (which are a collection of one or more ASes)."
     13 + "This ranking is derived from topological data collected by CAIDA's Archipelago Measurement Infrastructure and Border Gateway Protocol (BGP) routing data collected by the Route Views Project and RIPE NCC.";
     14 + QMap<QString, QStringList> flags = {{"ASN",
     15 + {PLACEHOLDERTEXT_NONE, "Returns list of ASNs"}},
     16 + {"ASN by asn",
     17 + {PLACEHOLDERTEXT_ASN, "Returns list of ASN by ID"}},
     18 + {"ASN by name",
     19 + {PLACEHOLDERTEXT_QUERY, "Returns ASN by name"}},
     20 + {"ORG",
     21 + {PLACEHOLDERTEXT_NONE, "Returns Organizations"}},
     22 + {"ORG by organization",
     23 + {PLACEHOLDERTEXT_ORG, "Returns Organization by ID"}},
     24 + {"Links",
     25 + {PLACEHOLDERTEXT_NONE, "Returns Links"}},
     26 + {"Links by Link",
     27 + {PLACEHOLDERTEXT_URL, "Returns Links by Link"}}};
     28 + 
     29 + QMap<int, QList<int>> input_output = {{IN_QUERYTERM,
     30 + {OUT_ASN}}};
     31 +};
     32 +}
     33 + 
     34 +class ASRank: public AbstractOsintModule{
     35 + 
     36 + public:
     37 + ASRank(ScanArgs args);
     38 + ~ASRank() override;
     39 + 
     40 + public slots:
     41 + void start() override;
     42 + void replyFinishedAsn(QNetworkReply *reply) override;
     43 +};
     44 + 
     45 +#endif // ASRANK_H
     46 + 
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/Anubis.cpp
    skipped 17 lines
    18 18   */
    19 19  Anubis::Anubis(ScanArgs args): AbstractOsintModule(args)
    20 20  {
    21  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     21 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    22 22   log.moduleName = OSINT_MODULE_ANUBIS;
    23 23   
    24 24   if(args.output_Raw)
    skipped 7 lines
    32 32   
    33 33  void Anubis::start(){
    34 34   QNetworkRequest request;
    35  - 
    36 35   QUrl url;
     36 + 
    37 37   if(args.output_Raw){
    38 38   switch (args.raw_query_id) {
    39 39   case SUBDOMAIN:
    skipped 2 lines
    42 42   }
    43 43   request.setUrl(url);
    44 44   manager->get(request);
    45  - activeRequests++;
    46 45   return;
    47 46   }
    48 47   
    skipped 1 lines
    50 49   url.setUrl("https://jldc.me/anubis/subdomains/"+target);
    51 50   request.setUrl(url);
    52 51   manager->get(request);
    53  - activeRequests++;
    54 52   }
    55 53  }
    56 54   
    skipped 10 lines
    67 65   log.resultsCount++;
    68 66   }
    69 67   
    70  - end(reply);
     68 + this->end(reply);
    71 69  }
    72 70   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/Bgpview.cpp
    skipped 16 lines
    17 17   
    18 18  Bgpview::Bgpview(ScanArgs args): AbstractOsintModule(args)
    19 19  {
    20  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     20 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    21 21   log.moduleName = OSINT_MODULE_BGPVIEW;
    22 22   
    23 23   if(args.output_Raw)
    skipped 24 lines
    48 48  void Bgpview::start(){
    49 49   QNetworkRequest request;
    50 50   request.setRawHeader("Content-Type", "application/json");
     51 + QUrl url;
     52 + 
     53 + ///
     54 + /// for raw...
     55 + ///
    51 56   
    52  - QUrl url;
    53  - /* for raw output */
    54 57   if(args.output_Raw){
    55 58   switch(args.raw_query_id){
    56 59   case ASN_:
    skipped 26 lines
    83 86   }
    84 87   request.setUrl(url);
    85 88   manager->get(request);
    86  - activeRequests++;
    87 89   return;
    88 90   }
    89 91   
    90  - /* for info output */
     92 + ///
     93 + /// for enums...
     94 + ///
    91 95   
    92 96   if(args.output_EnumCIDR){
    93 97   url.setUrl("https://api.bgpview.io/prefix/"+target);
    94 98   request.setAttribute(QNetworkRequest::User, IP_PREFIXES);
    95 99   request.setUrl(url);
    96 100   manager->get(request);
    97  - activeRequests++;
    98 101   return;
    99 102   }
    100 103   
    skipped 2 lines
    103 106   request.setAttribute(QNetworkRequest::User, ASN_);
    104 107   request.setUrl(url);
    105 108   manager->get(request);
    106  - activeRequests++;
    107 109   return;
    108 110   }
    109 111   
    skipped 2 lines
    112 114   request.setAttribute(QNetworkRequest::User, ASN_PEERS);
    113 115   request.setUrl(url);
    114 116   manager->get(request);
    115  - activeRequests++;
    116 117   return;
    117 118   }
    118 119   
    skipped 2 lines
    121 122   request.setAttribute(QNetworkRequest::User, ASN_PREFIXES);
    122 123   request.setUrl(url);
    123 124   manager->get(request);
    124  - activeRequests++;
    125 125   return;
    126 126   }
    127 127   
    128  - /* for normal output */
     128 + ///
     129 + /// for osint..
     130 + ///
     131 + 
    129 132   if(args.input_Search){
    130 133   if(args.output_ASN || args.output_CIDR || args.output_Email){
    131 134   url.setUrl("https://api.bgpview.io/search?query_term="+target);
    132 135   request.setAttribute(QNetworkRequest::User, QUERY);
    133 136   request.setUrl(url);
    134 137   manager->get(request);
    135  - activeRequests++;
    136 138   return;
    137 139   }
    138 140   }
    skipped 4 lines
    143 145   request.setAttribute(QNetworkRequest::User, IP);
    144 146   request.setUrl(url);
    145 147   manager->get(request);
    146  - activeRequests++;
    147 148   return;
    148 149   }
    149 150   }
    skipped 4 lines
    154 155   request.setAttribute(QNetworkRequest::User, ASN_);
    155 156   request.setUrl(url);
    156 157   manager->get(request);
    157  - activeRequests++;
    158 158   return;
    159 159   }
    160 160   if(args.output_Email){
    skipped 1 lines
    162 162   request.setAttribute(QNetworkRequest::User, ASN_);
    163 163   request.setUrl(url);
    164 164   manager->get(request);
    165  - activeRequests++;
    166 165   return;
    167 166   }
    168 167   if(args.output_IP){
    skipped 1 lines
    170 169   request.setAttribute(QNetworkRequest::User, ASN_PREFIXES);
    171 170   request.setUrl(url);
    172 171   manager->get(request);
    173  - activeRequests++;
    174 172   return;
    175 173   }
    176 174   if(args.output_CIDR){
    skipped 1 lines
    178 176   request.setAttribute(QNetworkRequest::User, ASN_PREFIXES);
    179 177   request.setUrl(url);
    180 178   manager->get(request);
    181  - activeRequests++;
    182 179   return;
    183 180   }
    184 181   if(args.output_ASN){
    skipped 1 lines
    186 183   request.setAttribute(QNetworkRequest::User, ASN_PEERS);
    187 184   request.setUrl(url);
    188 185   manager->get(request);
    189  - activeRequests++;
    190 186   return;
    191 187   }
    192 188   }
    skipped 4 lines
    197 193   request.setAttribute(QNetworkRequest::User, IP_PREFIXES);
    198 194   request.setUrl(url);
    199 195   manager->get(request);
    200  - activeRequests++;
    201 196   }
    202 197   }
    203 198  }
    skipped 36 lines
    240 235   break;
    241 236   }
    242 237   
    243  - end(reply);
     238 + this->end(reply);
    244 239  }
    245 240   
    246 241  void Bgpview::replyFinishedAsn(QNetworkReply *reply){
    skipped 32 lines
    279 274   break;
    280 275   }
    281 276   
    282  - end(reply);
     277 + this->end(reply);
    283 278  }
    284 279   
    285 280  void Bgpview::replyFinishedEmail(QNetworkReply *reply){
    skipped 53 lines
    339 334   }
    340 335   }
    341 336   
    342  - end(reply);
     337 + this->end(reply);
    343 338  }
    344 339   
    345 340  void Bgpview::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 15 lines
    361 356   break;
    362 357   }
    363 358   
    364  - end(reply);
     359 + this->end(reply);
    365 360  }
    366 361   
    367 362  void Bgpview::replyFinishedCidr(QNetworkReply *reply){
    skipped 21 lines
    389 384   }
    390 385   
    391 386   
    392  - end(reply);
     387 + this->end(reply);
    393 388  }
    394 389   
    395 390  ///
    skipped 46 lines
    442 437   break;
    443 438   }
    444 439   
    445  - end(reply);
     440 + this->end(reply);
    446 441  }
    447 442   
    448 443  void Bgpview::replyFinishedEnumASNPeers(QNetworkReply *reply){
    skipped 23 lines
    472 467   emit resultEnumASN(asn);
    473 468   }
    474 469   
    475  - end(reply);
     470 + this->end(reply);
    476 471  }
    477 472   
    478 473  void Bgpview::replyFinishedEnumASNPrefixes(QNetworkReply *reply){
    skipped 23 lines
    502 497   emit resultEnumASN(asn);
    503 498   }
    504 499   
    505  - end(reply);
     500 + this->end(reply);
    506 501  }
    507 502   
    508 503  void Bgpview::replyFinishedEnumCIDR(QNetworkReply *reply){
    skipped 50 lines
    559 554   emit resultEnumCIDR(cidr);
    560 555   }
    561 556   
    562  - end(reply);
     557 + this->end(reply);
    563 558  }
    564 559   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/BinaryEdge.cpp
    skipped 19 lines
    20 20   
    21 21  BinaryEdge::BinaryEdge(ScanArgs args): AbstractOsintModule(args)
    22 22  {
    23  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     23 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    24 24   log.moduleName = OSINT_MODULE_BINARYEDGE;
    25 25   
    26 26   if(args.output_Raw)
    skipped 16 lines
    43 43   QNetworkRequest request;
    44 44   request.setRawHeader("X-KEY", m_key.toUtf8());
    45 45   request.setRawHeader("Content-Type", "application/json");
    46  - 
    47 46   QUrl url;
     47 + 
    48 48   if(args.output_Raw){
    49 49   switch (args.raw_query_id) {
    50 50   case DOMAIN_DNS:
    skipped 31 lines
    82 82   }
    83 83   request.setUrl(url);
    84 84   manager->get(request);
    85  - activeRequests++;
    86 85   return;
    87 86   }
    88 87   
    skipped 3 lines
    92 91   request.setAttribute(QNetworkRequest::User, DOMAIN_IP);
    93 92   request.setUrl(url);
    94 93   manager->get(request);
    95  - activeRequests++;
    96 94   return;
    97 95   }
    98 96   }
    skipped 4 lines
    103 101   request.setAttribute(QNetworkRequest::User, DOMAIN_SUBDOMAIN);
    104 102   request.setUrl(url);
    105 103   manager->get(request);
    106  - activeRequests++;
    107 104   }
    108 105   
    109 106   if(args.output_HostnameIP || args.output_IP){
    skipped 1 lines
    111 108   request.setAttribute(QNetworkRequest::User, DOMAIN_DNS);
    112 109   request.setUrl(url);
    113 110   manager->get(request);
    114  - activeRequests++;
    115 111   }
    116 112   }
    117 113  }
    skipped 36 lines
    154 150   break;
    155 151   }
    156 152   
    157  - end(reply);
     153 + this->end(reply);
    158 154  }
    159 155   
    160 156  void BinaryEdge::replyFinishedIp(QNetworkReply *reply){
    skipped 25 lines
    186 182   break;
    187 183   }
    188 184   
    189  - end(reply);
     185 + this->end(reply);
    190 186  }
    191 187   
    192 188  void BinaryEdge::replyFinishedSubdomainIp(QNetworkReply *reply){
    skipped 26 lines
    219 215   break;
    220 216   }
    221 217   
    222  - end(reply);
     218 + this->end(reply);
    223 219  }
    224 220   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/BuiltWith.cpp
    skipped 3 lines
    4 4  #include <QJsonObject>
    5 5  #include <QJsonArray>
    6 6   
    7  - 
    8 7  #define COMPANY_API 0
    9 8  #define DOMAIN_API 1
    10 9  #define FREE_API 2
    skipped 7 lines
    18 17   
    19 18   
    20 19  /*
    21  - * for now only raw results...
     20 + * for now only raw results
    22 21   * for free api, 1 request per second...
    23 22   */
    24 23  BuiltWith::BuiltWith(ScanArgs args): AbstractOsintModule(args)
    25 24  {
    26  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     25 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    27 26   log.moduleName = OSINT_MODULE_BUILTWITH;
    28 27   
    29 28   if(args.output_Raw)
    skipped 8 lines
    38 37   
    39 38  void BuiltWith::start(){
    40 39   QNetworkRequest request;
    41  - 
    42 40   QUrl url;
     41 + 
    43 42   if(args.output_Raw){
    44 43   switch (args.raw_query_id) {
    45 44   case FREE_API:
    skipped 28 lines
    74 73   }
    75 74   request.setUrl(url);
    76 75   manager->get(request);
    77  - activeRequests++;
    78 76   }
    79 77  }
    80 78   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/C99.cpp
    skipped 34 lines
    35 35   
    36 36   
    37 37  /*
    38  - * Others not yet implemented...
     38 + * for now only raw results
    39 39   */
    40 40  C99::C99(ScanArgs args):
    41 41   AbstractOsintModule(args)
    42 42  {
    43  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     43 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    44 44   log.moduleName = OSINT_MODULE_C99;
    45 45   
    46 46   if(args.output_Raw)
    skipped 10 lines
    57 57   
    58 58  void C99::start(){
    59 59   QNetworkRequest request;
    60  - 
    61 60   QUrl url;
     61 + 
    62 62   if(args.output_Raw){
    63 63   switch (args.raw_query_id) {
    64 64   case ALEXA_RANK:
    skipped 80 lines
    145 145   }
    146 146   request.setUrl(url);
    147 147   manager->get(request);
    148  - activeRequests++;
    149 148   }
    150 149   
    151 150   if(args.input_Domain){
    skipped 1 lines
    153 152   request.setUrl(url);
    154 153   request.setAttribute(QNetworkRequest::User, SUBDOMAIN_FINDER);
    155 154   manager->get(request);
    156  - activeRequests++;
    157 155   }
    158 156   }
    159 157  }
    skipped 19 lines
    179 177   break;
    180 178   }
    181 179   
    182  - end(reply);
     180 + this->end(reply);
    183 181  }
    184 182   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/Circl.cpp
    1 1  #include "Circl.h"
     2 +#include "src/utils/Config.h"
     3 + 
    2 4  #include <QJsonDocument>
    3 5  #include <QJsonObject>
    4 6  #include <QJsonArray>
    5 7   
     8 +#define PASSIVE_DNS 0
     9 +#define PASSIVE_SSL 1
     10 +#define PASSIVE_SSL_FETCH 2
     11 +#define PASSIVE_SSL_QUERY 3
    6 12   
    7  -#define IP_2_ASN 0
    8  -#define PASSIVE_DNS 1
    9  -#define PASSIVE_SSL 2
    10  -#define PASSIVE_SSL_FETCH 3
    11  -#define PASSIVE_SSL_QUERY 4
    12 13   
    13  -/*
    14  - * login not yet implemented
    15  - */
    16 14  Circl::Circl(ScanArgs args): AbstractOsintModule(args)
    17 15  {
    18  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     16 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    19 17   log.moduleName = OSINT_MODULE_CIRCL;
    20 18   
    21 19   if(args.output_Raw)
    skipped 4 lines
    26 24   connect(manager, &s3sNetworkAccessManager::finished, this, &Circl::replyFinishedIp);
    27 25   if(args.output_SSL)
    28 26   connect(manager, &s3sNetworkAccessManager::finished, this, &Circl::replyFinishedSSL);
    29  - if(args.output_ASN)
    30  - connect(manager, &s3sNetworkAccessManager::finished, this, &Circl::replyFinishedAsn);
    31 27   
    32  - /* get login credentials... */
     28 + /* get login credentials */
     29 + m_id = APIKEY.value("circlUser").toString();
     30 + m_password = APIKEY.value("circlPwd").toString();
    33 31  }
    34 32  Circl::~Circl(){
    35 33   delete manager;
    skipped 1 lines
    37 35   
    38 36  void Circl::start(){
    39 37   QNetworkRequest request;
    40  - 
    41 38   QUrl url;
     39 + 
    42 40   if(args.output_Raw){
    43 41   switch(args.raw_query_id){
    44  - case IP_2_ASN:
    45  - url.setUrl("https://bgpranking-ng.circl.lu/ipasn_history/asn_meta");
    46  - break;
    47 42   case PASSIVE_DNS:
    48  - url.setUrl("https://www.circl.lu/pdns/query/"+target);
     43 + url.setUrl("https://www.circl.lu/pdns/query/"+target+"?id="+m_id+"&pass="+m_password);
    49 44   break;
    50 45   case PASSIVE_SSL:
    51  - url.setUrl("https://www.circl.lu/v2pssl/query/"+target);
     46 + url.setUrl("https://www.circl.lu/v2pssl/query/"+target+"?id="+m_id+"&pass="+m_password);
    52 47   break;
    53 48   case PASSIVE_SSL_FETCH:
    54  - url.setUrl("https://www.circl.lu/v2pssl/cfetch/"+target);
     49 + url.setUrl("https://www.circl.lu/v2pssl/cfetch/"+target+"?id="+m_id+"&pass="+m_password);
    55 50   break;
    56 51   case PASSIVE_SSL_QUERY:
    57  - url.setUrl("https://www.circl.lu/v2pssl/cquery/"+target);
     52 + url.setUrl("https://www.circl.lu/v2pssl/cquery/"+target+"?id="+m_id+"&pass="+m_password);
    58 53   break;
    59 54   }
    60 55   request.setUrl(url);
    61 56   manager->get(request);
    62  - activeRequests++;
    63 57   return;
    64 58   }
    65 59   
    66 60   if(args.input_Domain){
    67 61   if(args.output_IP || args.output_Hostname){
    68  - url.setUrl("https://www.circl.lu/pdns/query/"+target);
     62 + url.setUrl("https://www.circl.lu/pdns/query/"+target+"?id="+m_id+"&pass="+m_password);
    69 63   request.setAttribute(QNetworkRequest::User, PASSIVE_DNS);
    70 64   request.setUrl(url);
    71 65   manager->get(request);
    72  - activeRequests++;
    73 66   return;
    74 67   }
    75 68   }
    76 69   
    77 70   if(args.input_IP){
    78 71   if(args.output_IP || args.output_Hostname){
    79  - url.setUrl("https://www.circl.lu/pdns/query/"+target);
     72 + url.setUrl("https://www.circl.lu/pdns/query/"+target+"?id="+m_id+"&pass="+m_password);
    80 73   request.setAttribute(QNetworkRequest::User, PASSIVE_DNS);
    81 74   request.setUrl(url);
    82 75   manager->get(request);
    83  - activeRequests++;
    84  - return;
    85  - }
    86  - if(args.output_ASN){
    87  - url.setUrl("https://bgpranking-ng.circl.lu/ipasn_history/asn_meta");
    88  - request.setAttribute(QNetworkRequest::User, IP_2_ASN);
    89  - request.setUrl(url);
    90  - manager->get(request);
    91  - activeRequests++;
    92 76   return;
    93 77   }
    94 78   if(args.output_SSL){
    95  - url.setUrl("https://www.circl.lu/pdns/query/"+target);
     79 + url.setUrl("https://www.circl.lu/pdns/query/"+target+"?id="+m_id+"&pass="+m_password);
    96 80   request.setAttribute(QNetworkRequest::User, PASSIVE_SSL);
    97 81   request.setUrl(url);
    98 82   manager->get(request);
    99  - activeRequests++;
    100 83   return;
    101 84   }
    102 85   }
    103 86   
    104 87   if(args.input_SSL){
    105 88   if(args.output_IP){
    106  - url.setUrl("https://www.circl.lu/v2pssl/cquery/"+target);
     89 + url.setUrl("https://www.circl.lu/v2pssl/cquery/"+target+"?id="+m_id+"&pass="+m_password);
    107 90   request.setAttribute(QNetworkRequest::User, PASSIVE_SSL_QUERY);
    108 91   request.setUrl(url);
    109 92   manager->get(request);
    110  - activeRequests++;
    111 93   }
    112 94   }
    113 95  }
    114 96   
    115  -void Circl::replyFinishedSSL(QNetworkReply *reply){
    116  - if(reply->error()){
    117  - this->onError(reply);
    118  - return;
    119  - }
    120  - 
    121  - QJsonDocument document = QJsonDocument::fromJson(reply->readAll());
    122  - QJsonObject jsonObject = document.object();
    123  - 
    124  - switch (reply->property(REQUEST_TYPE).toInt())
    125  - {
    126  - case PASSIVE_SSL:
    127  - foreach(const QString &key, jsonObject.keys()){
    128  - QJsonArray certificates = jsonObject[key].toObject()["certificates"].toArray();
    129  - foreach(const QJsonValue &value, certificates)
    130  - {
    131  - emit resultSSL(value.toString());
    132  - log.resultsCount++;
    133  - }
    134  - }
    135  - break;
    136  - }
    137  - 
    138  - end(reply);
    139  -}
    140  - 
    141 97  void Circl::replyFinishedSubdomain(QNetworkReply *reply){
    142 98   if(reply->error()){
    143 99   this->onError(reply);
    skipped 25 lines
    169 125   }
    170 126   }
    171 127   
    172  - end(reply);
     128 + this->end(reply);
    173 129  }
    174 130   
    175 131  void Circl::replyFinishedIp(QNetworkReply *reply){
    skipped 24 lines
    200 156   break;
    201 157   }
    202 158   
    203  - end(reply);
     159 + this->end(reply);
    204 160  }
    205 161   
    206  -void Circl::replyFinishedAsn(QNetworkReply *reply){
     162 +void Circl::replyFinishedSSL(QNetworkReply *reply){
    207 163   if(reply->error()){
    208 164   this->onError(reply);
    209 165   return;
    skipped 4 lines
    214 170   
    215 171   switch (reply->property(REQUEST_TYPE).toInt())
    216 172   {
    217  - case IP_2_ASN:
    218  - emit resultASN(QString::number(jsonObject["asn"].toInt()), "");
    219  - log.resultsCount++;
     173 + case PASSIVE_SSL:
     174 + foreach(const QString &key, jsonObject.keys()){
     175 + QJsonArray certificates = jsonObject[key].toObject()["certificates"].toArray();
     176 + foreach(const QJsonValue &value, certificates)
     177 + {
     178 + emit resultSSL(value.toString());
     179 + log.resultsCount++;
     180 + }
     181 + }
    220 182   break;
    221 183   }
    222 184   
    skipped 3 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/Circl.h
    skipped 19 lines
    20 20   {"Passive SSL Fetch",
    21 21   {PLACEHOLDERTEXT_SSLCERT, "CIRCL Passive SSL is a database storing historical X.509 certificates seen per IP address."}},
    22 22   {"Passive SSL query",
    23  - {PLACEHOLDERTEXT_SSLCERT, "CIRCL Passive SSL is a database storing historical X.509 certificates seen per IP address."}},
    24  - {"Ip 2 ASN",
    25  - {PLACEHOLDERTEXT_IP, "IP ASN History to find ASN announcing an IP and the closest prefix announcing it at a specific date"}}};
     23 + {PLACEHOLDERTEXT_SSLCERT, "CIRCL Passive SSL is a database storing historical X.509 certificates seen per IP address."}}};
    26 24   
    27 25   QMap<int, QList<int>> input_output = {{IN_DOMAIN,
    28 26   {OUT_SUBDOMAIN, OUT_IP}},
    29  - {IN_IP,
    30  - {OUT_IP, OUT_ASN, OUT_SUBDOMAIN, OUT_SSLCERT}},
    31 27   {IN_SSLCERT,
    32  - {OUT_IP}}};
     28 + {OUT_IP}},
     29 + {IN_IP,
     30 + {OUT_SSLCERT, OUT_SUBDOMAIN, OUT_IP}}};
    33 31  };
    34 32  }
    35 33   
    skipped 5 lines
    41 39   
    42 40   public slots:
    43 41   void start() override;
    44  - void replyFinishedSSL(QNetworkReply *reply) override;
    45 42   void replyFinishedSubdomain(QNetworkReply *reply) override;
    46 43   void replyFinishedIp(QNetworkReply *reply) override;
    47  - void replyFinishedAsn(QNetworkReply *reply) override;
     44 + void replyFinishedSSL(QNetworkReply *reply) override;
    48 45   
    49 46   private:
    50  - QString m_key;
     47 + QString m_id;
     48 + QString m_password;
    51 49  };
    52 50   
    53 51  #endif // CIRCL_H
    skipped 1 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/CirclPublic.cpp
     1 +#include "CirclPublic.h"
     2 +#include <QJsonDocument>
     3 +#include <QJsonObject>
     4 +#include <QJsonArray>
     5 + 
     6 +#define IP_2_ASN 0
     7 + 
     8 +/*
     9 + * many features not implemented
     10 + */
     11 +CirclPublic::CirclPublic(ScanArgs args): AbstractOsintModule(args)
     12 +{
     13 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
     14 + log.moduleName = OSINT_MODULE_CIRCLPUBLIC;
     15 + 
     16 + if(args.output_Raw)
     17 + connect(manager, &s3sNetworkAccessManager::finished, this, &CirclPublic::replyFinishedRawJson);
     18 + if(args.output_CIDR)
     19 + connect(manager, &s3sNetworkAccessManager::finished, this, &CirclPublic::replyFinishedCidr);
     20 + if(args.output_ASN)
     21 + connect(manager, &s3sNetworkAccessManager::finished, this, &CirclPublic::replyFinishedAsn);
     22 + 
     23 + 
     24 +}
     25 +CirclPublic::~CirclPublic(){
     26 + delete manager;
     27 +}
     28 + 
     29 +void CirclPublic::start(){
     30 + QNetworkRequest request;
     31 + QUrl url;
     32 + 
     33 + if(args.output_Raw){
     34 + switch(args.raw_query_id){
     35 + case IP_2_ASN:
     36 + url.setUrl("https://bgpranking-ng.circl.lu/ipasn_history/?ip="+target);
     37 + break;
     38 + }
     39 + request.setUrl(url);
     40 + manager->get(request);
     41 + return;
     42 + }
     43 + 
     44 + if(args.input_IP){
     45 + if(args.output_ASN || args.output_CIDR){
     46 + url.setUrl("https://bgpranking-ng.circl.lu/ipasn_history/?ip="+target);
     47 + request.setAttribute(QNetworkRequest::User, IP_2_ASN);
     48 + request.setUrl(url);
     49 + manager->get(request);
     50 + return;
     51 + }
     52 + }
     53 +}
     54 + 
     55 +void CirclPublic::replyFinishedCidr(QNetworkReply *reply){
     56 + if(reply->error()){
     57 + this->onError(reply);
     58 + return;
     59 + }
     60 + 
     61 + QJsonDocument document = QJsonDocument::fromJson(reply->readAll());
     62 + QJsonObject response = document.object()["response"].toObject();
     63 + 
     64 + switch (reply->property(REQUEST_TYPE).toInt())
     65 + {
     66 + case IP_2_ASN:
     67 + foreach(const QString &date, response.keys()){
     68 + QJsonObject dateObj = response[date].toObject();
     69 + emit resultCIDR(dateObj["prefix"].toString());
     70 + log.resultsCount++;
     71 + }
     72 + break;
     73 + }
     74 + 
     75 + this->end(reply);
     76 +}
     77 + 
     78 +void CirclPublic::replyFinishedAsn(QNetworkReply *reply){
     79 + if(reply->error()){
     80 + this->onError(reply);
     81 + return;
     82 + }
     83 + 
     84 + QJsonDocument document = QJsonDocument::fromJson(reply->readAll());
     85 + QJsonObject response = document.object()["response"].toObject();
     86 + 
     87 + switch (reply->property(REQUEST_TYPE).toInt())
     88 + {
     89 + case IP_2_ASN:
     90 + foreach(const QString &date, response.keys()){
     91 + QJsonObject dateObj = response[date].toObject();
     92 + emit resultASN(dateObj["asn"].toString(), "");
     93 + log.resultsCount++;
     94 + }
     95 + break;
     96 + }
     97 + 
     98 + this->end(reply);
     99 +}
     100 + 
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/CirclPublic.h
     1 +#ifndef CIRCLPUBLIC_H
     2 +#define CIRCLPUBLIC_H
     3 + 
     4 +#include "../AbstractOsintModule.h"
     5 + 
     6 + 
     7 +namespace ModuleInfo {
     8 +struct CirclPublic{
     9 + QString name = OSINT_MODULE_CIRCLPUBLIC;
     10 + QString url = "https://www.circl.lu/";
     11 + QString url_apiDoc = "https://github.com/D4-project/IPASN-History";
     12 + QString summary = "The Computer Incident Response Center Luxembourg (CIRCL) is a government-driven initiative "
     13 + "designed to provide a systematic response facility to computer security threats and incidents.";
     14 + 
     15 + QMap<QString, QStringList> flags = {{"Ip 2 ASN",
     16 + {PLACEHOLDERTEXT_IP, "IP ASN History to find ASN announcing an IP and the closest prefix announcing it at a specific date"}}};
     17 + 
     18 + QMap<int, QList<int>> input_output = {{IN_IP,
     19 + {OUT_CIDR, OUT_ASN}}};
     20 +};
     21 +}
     22 + 
     23 +class CirclPublic: public AbstractOsintModule{
     24 + 
     25 + public:
     26 + CirclPublic(ScanArgs args);
     27 + ~CirclPublic() override;
     28 + 
     29 + public slots:
     30 + void start() override;
     31 + void replyFinishedCidr(QNetworkReply *reply) override;
     32 + void replyFinishedAsn(QNetworkReply *reply) override;
     33 + 
     34 + private:
     35 + QString m_key;
     36 +};
     37 + 
     38 +#endif // CIRCLPUBLIC_H
     39 + 
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/Dnsbufferoverun.cpp
    skipped 8 lines
    9 9   
    10 10  Dnsbufferoverun::Dnsbufferoverun(ScanArgs args): AbstractOsintModule(args)
    11 11  {
    12  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     12 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    13 13   log.moduleName = OSINT_MODULE_DNSBUFFEROVERRUN;
    14 14   
    15 15   if(args.output_Raw)
    skipped 11 lines
    27 27   
    28 28  void Dnsbufferoverun::start(){
    29 29   QNetworkRequest request;
    30  - 
    31 30   QUrl url;
     31 + 
    32 32   if(args.output_Raw){
    33 33   switch (args.raw_query_id) {
    34 34   case SUBOMAINS:
    skipped 2 lines
    37 37   }
    38 38   request.setUrl(url);
    39 39   manager->get(request);
    40  - activeRequests++;
    41 40   return;
    42 41   }
    43 42   
    skipped 2 lines
    46 45   url.setUrl("https://dns.bufferover.run/dns?q="+target);
    47 46   request.setUrl(url);
    48 47   manager->get(request);
    49  - activeRequests++;
    50 48   }
    51 49   }
    52 50  }
    skipped 18 lines
    71 69   log.resultsCount++;
    72 70   }
    73 71   
    74  - end(reply);
     72 + this->end(reply);
    75 73  }
    76 74   
    77 75  void Dnsbufferoverun::replyFinishedIp(QNetworkReply *reply){
    skipped 16 lines
    94 92   log.resultsCount++;
    95 93   }
    96 94   
    97  - end(reply);
     95 + this->end(reply);
    98 96  }
    99 97   
    100 98  void Dnsbufferoverun::replyFinishedSubdomainIp(QNetworkReply *reply){
    skipped 18 lines
    119 117   log.resultsCount++;
    120 118   }
    121 119   
    122  - end(reply);
     120 + this->end(reply);
    123 121  }
    124 122   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/Dnslytics.cpp
    skipped 21 lines
    22 22   
    23 23  Dnslytics::Dnslytics(ScanArgs args): AbstractOsintModule(args)
    24 24  {
    25  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     25 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    26 26   log.moduleName = OSINT_MODULE_DNSLYTICS;
    27 27   
    28 28   if(args.output_Raw)
    skipped 15 lines
    44 44   if(args.output_EnumNS)
    45 45   connect(manager, &s3sNetworkAccessManager::finished, this, &Dnslytics::replyFinishedEnumNS);
    46 46   
    47  - /* getting api key... */
     47 + /* getting api key */
    48 48   m_key = APIKEY.value(OSINT_MODULE_DNSLYTICS).toString();
    49 49  
    50 50  }
    skipped 3 lines
    54 54   
    55 55  void Dnslytics::start(){
    56 56   QNetworkRequest request;
    57  - 
    58 57   QUrl url;
     58 + 
    59 59   if(args.output_Raw){
    60 60   switch (args.raw_query_id) {
    61 61   case ACCOUNTINFO:
    skipped 37 lines
    99 99   }
    100 100   request.setUrl(url);
    101 101   manager->get(request);
    102  - activeRequests++;
    103 102   return;
    104 103   }
    105 104   
    106 105   ///
    107  - /// for info output...
     106 + /// for Enums...
    108 107   ///
     108 + 
    109 109   if(args.output_EnumIP){
    110 110   url.setUrl("https://api.dnslytics.net/v1/reverseip/"+target+"?apikey="+m_key);
    111 111   request.setUrl(url);
    112 112   manager->get(request);
    113  - activeRequests++;
    114 113   return;
    115 114   }
    116 115   
    skipped 1 lines
    118 117   url.setUrl("https://api.dnslytics.net/v1/reversens/"+target+"?apikey="+m_key);
    119 118   request.setUrl(url);
    120 119   manager->get(request);
    121  - activeRequests++;
    122 120   return;
    123 121   }
    124 122   
    skipped 1 lines
    126 124   url.setUrl("https://api.dnslytics.net/v1/reversemx/"+target+"?apikey="+m_key);
    127 125   request.setUrl(url);
    128 126   manager->get(request);
    129  - activeRequests++;
    130 127   return;
    131 128   }
    132 129   
    133 130   ///
    134 131   /// for osint output...
    135 132   ///
     133 + 
    136 134   if(args.input_Search){
    137 135   if(args.output_Hostname){
    138 136   url.setUrl("https://api.dnslytics.net/v1/domainsearch/"+target+"?apikey="+m_key);
    139 137   request.setAttribute(QNetworkRequest::User, DOMAINSEARCH);
    140 138   request.setUrl(url);
    141 139   manager->get(request);
    142  - activeRequests++;
    143 140   return;
    144 141   }
    145 142   }
    skipped 4 lines
    150 147   request.setAttribute(QNetworkRequest::User, DOMAINSEARCH);
    151 148   request.setUrl(url);
    152 149   manager->get(request);
    153  - activeRequests++;
    154 150   return;
    155 151   }
    156 152   if(args.output_IP){
    skipped 1 lines
    158 154   request.setAttribute(QNetworkRequest::User, HOSTINGHISTORY);
    159 155   request.setUrl(url);
    160 156   manager->get(request);
    161  - activeRequests++;
    162 157   return;
    163 158   }
    164 159   }
    skipped 4 lines
    169 164   request.setAttribute(QNetworkRequest::User, REVERSEIP);
    170 165   request.setUrl(url);
    171 166   manager->get(request);
    172  - activeRequests++;
    173 167   return;
    174 168   }
    175 169   if(args.output_ASN || args.output_CIDR){
    skipped 1 lines
    177 171   request.setAttribute(QNetworkRequest::User, IP2ASN);
    178 172   request.setUrl(url);
    179 173   manager->get(request);
    180  - activeRequests++;
    181 174   return;
    182 175   }
    183 176   }
    skipped 4 lines
    188 181   request.setAttribute(QNetworkRequest::User, ASINFO);
    189 182   request.setUrl(url);
    190 183   manager->get(request);
    191  - activeRequests++;
     184 + return;
    192 185   }
    193 186   }
    194 187   
    skipped 3 lines
    198 191   request.setAttribute(QNetworkRequest::User, SUBNETINFO);
    199 192   request.setUrl(url);
    200 193   manager->get(request);
    201  - activeRequests++;
     194 + return;
    202 195   }
    203 196   }
    204 197  }
    skipped 43 lines
    248 241   }
    249 242   }
    250 243   
    251  - end(reply);
     244 + this->end(reply);
    252 245  }
    253 246   
    254 247  void Dnslytics::replyFinishedSubdomainIp(QNetworkReply *reply){
    skipped 29 lines
    284 277   }
    285 278   }
    286 279   
    287  - end(reply);
     280 + this->end(reply);
    288 281  }
    289 282   
    290 283  void Dnslytics::replyFinishedAsn(QNetworkReply *reply){
    skipped 40 lines
    331 324   log.resultsCount++;
    332 325   }
    333 326   
    334  - end(reply);
     327 + this->end(reply);
    335 328  }
    336 329   
    337 330  void Dnslytics::replyFinishedIp(QNetworkReply *reply){
    skipped 40 lines
    378 371   break;
    379 372   }
    380 373   
    381  - end(reply);
     374 + this->end(reply);
    382 375  }
    383 376   
    384 377  void Dnslytics::replyFinishedCidr(QNetworkReply *reply){
    skipped 37 lines
    422 415   break;
    423 416   }
    424 417   
    425  - end(reply);
     418 + this->end(reply);
    426 419  }
    427 420   
    428 421  ///
    skipped 17 lines
    446 439   
    447 440   emit resultEnumMX(mx);
    448 441   
    449  - end(reply);
     442 + this->end(reply);
    450 443  }
    451 444   
    452 445  void Dnslytics::replyFinishedEnumNS(QNetworkReply *reply){
    skipped 13 lines
    466 459   
    467 460   emit resultEnumNS(ns);
    468 461   
    469  - end(reply);
     462 + this->end(reply);
    470 463  }
    471 464   
    472 465  void Dnslytics::replyFinishedEnumIP(QNetworkReply *reply){
    skipped 13 lines
    486 479   
    487 480   emit resultEnumIP(ip);
    488 481   
    489  - end(reply);
     482 + this->end(reply);
    490 483  }
    491 484   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/DomainTools.cpp
    skipped 35 lines
    36 36   
    37 37  DomainTools::DomainTools(ScanArgs args): AbstractOsintModule(args)
    38 38  {
    39  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     39 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    40 40   log.moduleName = OSINT_MODULE_DOMAINTOOLS;
    41 41   
    42 42   if(args.output_Raw)
    skipped 16 lines
    59 59   
    60 60  void DomainTools::start(){
    61 61   QNetworkRequest request;
    62  - 
    63 62   QUrl url;
     63 + 
    64 64   if(args.output_Raw){
    65 65   switch (args.raw_query_id) {
    66 66   case BRAND_MONITOR:
    skipped 80 lines
    147 147   }
    148 148   request.setUrl(url);
    149 149   manager->get(request);
    150  - activeRequests++;
    151 150   return;
    152 151   }
    153 152   
    skipped 3 lines
    157 156   request.setAttribute(QNetworkRequest::User, REVERSE_IP);
    158 157   request.setUrl(url);
    159 158   manager->get(request);
    160  - activeRequests++;
    161 159   return;
    162 160   }
    163 161   }
    skipped 4 lines
    168 166   request.setAttribute(QNetworkRequest::User, REVERSE_IP);
    169 167   request.setUrl(url);
    170 168   manager->get(request);
    171  - activeRequests++;
    172 169   return;
    173 170   }
    174 171   }
    skipped 4 lines
    179 176   request.setAttribute(QNetworkRequest::User, DOMAIN_SEARCH);
    180 177   request.setUrl(url);
    181 178   manager->get(request);
    182  - activeRequests++;
    183 179   return;
    184 180   }
    185 181   }
    186 182   
    187 183   ///
    188  - /// Info...
     184 + /// For Enums...
    189 185   ///
    190 186   
    191 187   if(args.output_EnumMX){
    skipped 1 lines
    193 189   request.setAttribute(QNetworkRequest::User, REVERSE_MX_MX);
    194 190   request.setUrl(url);
    195 191   manager->get(request);
    196  - activeRequests++;
    197 192   return;
    198 193   }
    199 194   
    skipped 2 lines
    202 197   request.setAttribute(QNetworkRequest::User, REVERSE_NAMESERVER);
    203 198   request.setUrl(url);
    204 199   manager->get(request);
    205  - activeRequests++;
    206 200   return;
    207 201   }
    208 202  }
    skipped 20 lines
    229 223   break;
    230 224   }
    231 225   
    232  - end(reply);
     226 + this->end(reply);
    233 227  }
    234 228   
    235 229  void DomainTools::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 28 lines
    264 258   break;
    265 259   }
    266 260   
    267  - end(reply);
     261 + this->end(reply);
    268 262  }
    269 263   
    270 264  void DomainTools::replyFinishedIp(QNetworkReply *reply){
    skipped 15 lines
    286 280   break;
    287 281   }
    288 282   
    289  - end(reply);
     283 + this->end(reply);
    290 284  }
    291 285   
    292 286  void DomainTools::replyFinishedEnumMX(QNetworkReply *reply){
    skipped 20 lines
    313 307   
    314 308   emit resultEnumMX(mx);
    315 309   
    316  - end(reply);
     310 + this->end(reply);
    317 311  }
    318 312   
    319 313  void DomainTools::replyFinishedEnumNS(QNetworkReply *reply){
    skipped 15 lines
    335 329   
    336 330   emit resultEnumNS(ns);
    337 331   
    338  - end(reply);
     332 + this->end(reply);
    339 333  }
    340 334   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/FullHunt.cpp
    skipped 13 lines
    14 14   */
    15 15  FullHunt::FullHunt(ScanArgs args): AbstractOsintModule(args)
    16 16  {
    17  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     17 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    18 18   log.moduleName = OSINT_MODULE_FULLHUNT;
    19 19   
    20 20   if(args.output_Raw)
    skipped 16 lines
    37 37  void FullHunt::start(){
    38 38   QNetworkRequest request;
    39 39   request.setRawHeader("X-API-KEY", m_key.toUtf8());
    40  - 
    41 40   QUrl url;
     41 + 
    42 42   if(args.output_Raw){
    43 43   switch (args.raw_query_id) {
    44 44   case DOMAIN_DETAILS:
    skipped 8 lines
    53 53   }
    54 54   request.setUrl(url);
    55 55   manager->get(request);
    56  - activeRequests++;
    57 56   return;
    58 57   }
    59 58   
    skipped 3 lines
    63 62   request.setAttribute(QNetworkRequest::User, DOMAIN_SUBDOMAINS);
    64 63   request.setUrl(url);
    65 64   manager->get(request);
    66  - activeRequests++;
     65 + return;
    67 66   }
    68 67   if(args.output_ASN){
    69 68   url.setUrl("https://fullhunt.io/api/v1/domain/"+target+"/details");
    70 69   request.setAttribute(QNetworkRequest::User, DOMAIN_DETAILS);
    71 70   request.setUrl(url);
    72 71   manager->get(request);
    73  - activeRequests++;
     72 + return;
    74 73   }
    75 74   }
    76 75  }
    skipped 15 lines
    92 91   break;
    93 92   }
    94 93   
    95  - end(reply);
     94 + this->end(reply);
    96 95  }
    97 96   
    98 97  void FullHunt::replyFinishedAsn(QNetworkReply *reply){
    skipped 16 lines
    115 114   break;
    116 115   }
    117 116   
    118  - end(reply);
     117 + this->end(reply);
    119 118  }
    120 119   
    121 120  void FullHunt::replyFinishedIp(QNetworkReply *reply){
    skipped 20 lines
    142 141   break;
    143 142   }
    144 143   
    145  - end(reply);
     144 + this->end(reply);
    146 145  }
    147 146   
    148 147   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/Github.cpp
    skipped 5 lines
    6 6   
    7 7  #define CODE 0
    8 8   
     9 +/*
     10 + * for now only raw results
     11 + */
    9 12  Github::Github(ScanArgs args): AbstractOsintModule(args)
    10 13  {
    11  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     14 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    12 15   log.moduleName = OSINT_MODULE_GITHUB;
    13 16   
    14 17   if(args.output_Raw)
    skipped 13 lines
    28 31   QNetworkRequest request;
    29 32   request.setRawHeader("Authorization", "token "+m_key.toUtf8());
    30 33   request.setRawHeader("Content-Type", "application/json");
    31  - 
    32 34   QUrl url;
     35 + 
    33 36   if(args.output_Raw){
    34 37   switch(args.raw_query_id){
    35 38   case CODE:
    skipped 2 lines
    38 41   }
    39 42   request.setUrl(url);
    40 43   manager->get(request);
    41  - activeRequests++;
    42 44   return;
    43 45   }
    44 46   
    skipped 2 lines
    47 49   request.setUrl(url);
    48 50   request.setAttribute(QNetworkRequest::User, CODE);
    49 51   manager->get(request);
    50  - activeRequests++;
     52 + return;
    51 53   }
    52  - 
    53 54  }
    54 55   
    55 56  void Github::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 4 lines
    60 61   /*
    61 62   * Not Yet Implemented...
    62 63   */
    63  - end(reply);
     64 + this->end(reply);
    64 65  }
    65 66   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/HackerTarget.cpp
    skipped 19 lines
    20 20   
    21 21  HackerTarget::HackerTarget(ScanArgs args): AbstractOsintModule(args)
    22 22  {
    23  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     23 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    24 24   log.moduleName = OSINT_MODULE_HACKERTARGET;
    25 25   
    26 26   if(args.output_Raw)
    skipped 19 lines
    46 46   
    47 47  void HackerTarget::start(){
    48 48   QNetworkRequest request;
    49  - 
    50 49   QUrl url;
     50 + 
    51 51   if(args.output_Raw){
    52 52   switch(args.raw_query_id){
    53 53   case ASLOOKUP:
    skipped 46 lines
    100 100   }
    101 101   request.setUrl(url);
    102 102   manager->get(request);
    103  - activeRequests++;
     103 + return;
    104 104   }
    105 105   
    106 106   if(args.input_Domain){
    skipped 2 lines
    109 109   request.setAttribute(QNetworkRequest::User, HOSTSEARCH);
    110 110   request.setUrl(url);
    111 111   manager->get(request);
    112  - activeRequests++;
     112 + return;
    113 113   }
    114 114   }
    115 115   
    skipped 3 lines
    119 119   request.setAttribute(QNetworkRequest::User, ASLOOKUP);
    120 120   request.setUrl(url);
    121 121   manager->get(request);
    122  - activeRequests++;
     122 + return;
    123 123   }
    124 124   if(args.output_Hostname){
    125 125   url.setUrl("https://api.hackertarget.com/reverseiplookup/?q="+target+"&apikey="+m_key);
    126 126   request.setAttribute(QNetworkRequest::User, REVERSE_IPLOOKUP);
    127 127   request.setUrl(url);
    128 128   manager->get(request);
    129  - activeRequests++;
     129 + return;
    130 130   }
    131 131   }
    132 132   
    skipped 5 lines
    138 138   request.setAttribute(QNetworkRequest::User, ASLOOKUP);
    139 139   request.setUrl(url);
    140 140   manager->get(request);
    141  - activeRequests++;
     141 + return;
    142 142   }
    143 143   }
    144 144  }
    skipped 22 lines
    167 167   }
    168 168   }
    169 169   
    170  - end(reply);
     170 + this->end(reply);
    171 171  }
    172 172   
    173 173  void HackerTarget::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 20 lines
    194 194   }
    195 195   }
    196 196   
    197  - end(reply);
     197 + this->end(reply);
    198 198  }
    199 199   
    200 200  void HackerTarget::replyFinishedIp(QNetworkReply *reply){
    skipped 13 lines
    214 214   }
    215 215   }
    216 216   
    217  - end(reply);
     217 + this->end(reply);
    218 218  }
    219 219   
    220 220  void HackerTarget::replyFinishedAsn(QNetworkReply *reply){
    skipped 14 lines
    235 235   log.resultsCount++;
    236 236   }
    237 237   
    238  - end(reply);
     238 + this->end(reply);
    239 239  }
    240 240   
    241 241  void HackerTarget::replyFinishedCidr(QNetworkReply *reply){
    skipped 15 lines
    257 257   }
    258 258   }
    259 259   
    260  - end(reply);
     260 + this->end(reply);
    261 261  }
    262 262   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/HackerTargetFree.cpp
    skipped 15 lines
    16 16   
    17 17  HackerTargetFree::HackerTargetFree(ScanArgs args): AbstractOsintModule(args)
    18 18  {
    19  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     19 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    20 20   log.moduleName = OSINT_MODULE_HACKERTARGET;
    21 21   
    22 22   if(args.output_Raw)
    skipped 15 lines
    38 38   
    39 39  void HackerTargetFree::start(){
    40 40   QNetworkRequest request;
    41  - 
    42 41   QUrl url;
     42 + 
    43 43   if(args.output_Raw){
    44 44   switch(args.raw_query_id){
    45 45   case ASLOOKUP:
    skipped 37 lines
    83 83   }
    84 84   request.setUrl(url);
    85 85   manager->get(request);
    86  - activeRequests++;
     86 + return;
    87 87   }
    88 88   
    89 89   if(args.input_Domain){
    skipped 2 lines
    92 92   request.setAttribute(QNetworkRequest::User, HOSTSEARCH);
    93 93   request.setUrl(url);
    94 94   manager->get(request);
    95  - activeRequests++;
     95 + return;
    96 96   }
    97 97   }
    98 98   
    skipped 3 lines
    102 102   request.setAttribute(QNetworkRequest::User, ASLOOKUP);
    103 103   request.setUrl(url);
    104 104   manager->get(request);
    105  - activeRequests++;
     105 + return;
    106 106   }
    107 107   if(args.output_Hostname){
    108 108   url.setUrl("https://api.hackertarget.com/reverseiplookup/?q="+target);
    109 109   request.setAttribute(QNetworkRequest::User, REVERSE_IPLOOKUP);
    110 110   request.setUrl(url);
    111 111   manager->get(request);
    112  - activeRequests++;
     112 + return;
    113 113   }
    114 114   }
    115 115   
    skipped 5 lines
    121 121   request.setAttribute(QNetworkRequest::User, ASLOOKUP);
    122 122   request.setUrl(url);
    123 123   manager->get(request);
    124  - activeRequests++;
     124 + return;
    125 125   }
    126 126   }
    127 127  }
    skipped 22 lines
    150 150   }
    151 151   }
    152 152   
    153  - end(reply);
     153 + this->end(reply);
    154 154  }
    155 155   
    156 156  void HackerTargetFree::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 20 lines
    177 177   }
    178 178   }
    179 179   
    180  - end(reply);
     180 + this->end(reply);
    181 181  }
    182 182   
    183 183  void HackerTargetFree::replyFinishedIp(QNetworkReply *reply){
    skipped 13 lines
    197 197   }
    198 198   }
    199 199   
    200  - end(reply);
     200 + this->end(reply);
    201 201  }
    202 202   
    203 203  void HackerTargetFree::replyFinishedAsn(QNetworkReply *reply){
    skipped 14 lines
    218 218   log.resultsCount++;
    219 219   }
    220 220   
    221  - end(reply);
     221 + this->end(reply);
    222 222  }
    223 223   
    224 224  void HackerTargetFree::replyFinishedCidr(QNetworkReply *reply){
    skipped 15 lines
    240 240   }
    241 241   }
    242 242   
    243  - end(reply);
     243 + this->end(reply);
    244 244  }
    245 245   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/HaveIBeenPawned.cpp
    skipped 5 lines
    6 6  #define PASTES_ACCOUNT 2
    7 7  #define SINGLE_BREACH 3
    8 8   
    9  - 
     9 +/*
     10 + * for now only raw results
     11 + */
    10 12  HaveIBeenPawned::HaveIBeenPawned(ScanArgs args): AbstractOsintModule(args)
    11 13  {
    12  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     14 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    13 15   log.moduleName = OSINT_MODULE_HAVEIBEENPAWNED;
    14 16   
    15 17   if(args.output_Raw)
    skipped 10 lines
    26 28  void HaveIBeenPawned::start(){
    27 29   QNetworkRequest request;
    28 30   request.setRawHeader("hibp-api-key", m_key.toUtf8());
    29  - 
    30 31   QUrl url;
     32 + 
    31 33   if(args.output_Raw){
    32 34   switch (args.raw_query_id) {
    33 35   case BREACHED_ACCOUNT:
    skipped 11 lines
    45 47   }
    46 48   request.setUrl(url);
    47 49   manager->get(request);
    48  - activeRequests++;
     50 + return;
    49 51   }
    50 52  }
    51 53   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/Host.cpp
    skipped 5 lines
    6 6  #define RELATED 2
    7 7  #define WEB 3
    8 8   
    9  - 
     9 +/*
     10 + * for now only raw results
     11 + */
    10 12  Host::Host(ScanArgs args): AbstractOsintModule(args)
    11 13  {
    12  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     14 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    13 15   log.moduleName = OSINT_MODULE_HOST;
    14 16   
    15 17   if(args.output_Raw)
    skipped 9 lines
    25 27   
    26 28  void Host::start(){
    27 29   QNetworkRequest request;
    28  - 
    29 30   QUrl url;
     31 + 
    30 32   if(args.output_Raw){
    31 33   switch (args.raw_query_id) {
    32 34   case DNS:
    skipped 11 lines
    44 46   }
    45 47   request.setUrl(url);
    46 48   manager->get(request);
    47  - activeRequests++;
     49 + return;
    48 50   }
    49 51  }
    50 52   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/JsonWhois.cpp
    skipped 4 lines
    5 5  #define SOCIAL_DATA 1
    6 6  #define WHOIS 2
    7 7   
    8  - 
     8 +/*
     9 + * for now only raw results
     10 + */
    9 11  JsonWhois::JsonWhois(ScanArgs args): AbstractOsintModule(args)
    10 12  {
    11  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     13 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    12 14   log.moduleName = OSINT_MODULE_JSONWHOIS;
    13 15   
    14 16   if(args.output_Raw)
    skipped 11 lines
    26 28   QNetworkRequest request;
    27 29   request.setRawHeader("Accept", "application/json");
    28 30   request.setRawHeader("Authorization", "Token token="+m_key.toUtf8());
    29  - 
    30 31   QUrl url;
     32 + 
    31 33   if(args.output_Raw){
    32 34   switch (args.raw_query_id) {
    33 35   case SCREENSHOT:
    skipped 8 lines
    42 44   }
    43 45   request.setUrl(url);
    44 46   manager->get(request);
    45  - activeRequests++;
     47 + return;
    46 48   }
    47 49  }
    48 50   
    skipped 1 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/LeakIX.cpp
    skipped 7 lines
    8 8   
    9 9  LeakIX::LeakIX(ScanArgs args): AbstractOsintModule(args)
    10 10  {
    11  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     11 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    12 12   log.moduleName = OSINT_MODULE_LEAKIX;
    13 13   
    14 14   if(args.output_Raw)
    skipped 17 lines
    32 32   QNetworkRequest request;
    33 33   request.setRawHeader("Accept", "application/json");
    34 34   request.setRawHeader("api-key", m_key.toUtf8());
    35  - 
    36 35   QUrl url;
     36 + 
    37 37   if(args.output_Raw){
    38 38   switch (args.raw_query_id) {
    39 39   case HOST:
    skipped 8 lines
    48 48   }
    49 49   request.setUrl(url);
    50 50   manager->get(request);
    51  - activeRequests++;
     51 + return;
    52 52   }
    53 53   
    54 54   if(args.input_IP){
    skipped 1 lines
    56 56   url.setUrl("https://leakix.net/search?q="+target+"&scope=leak");
    57 57   request.setUrl(url);
    58 58   manager->get(request);
    59  - activeRequests++;
     59 + return;
    60 60   }
    61 61   }
    62 62  }
    skipped 18 lines
    81 81   }
    82 82   }
    83 83   
    84  - end(reply);
     84 + this->end(reply);
    85 85  }
    86 86   
    87 87  void LeakIX::replyFinishedSSL(QNetworkReply *reply){
    skipped 10 lines
    98 98   log.resultsCount++;
    99 99   }
    100 100   
    101  - end(reply);
     101 + this->end(reply);
    102 102  }
    103 103   
    104 104  void LeakIX::replyFinishedAsn(QNetworkReply *reply){
    skipped 11 lines
    116 116   emit resultASN(asn, name);
    117 117   log.resultsCount++;
    118 118   }
    119  - end(reply);
     119 + this->end(reply);
    120 120  }
    121 121   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/Maltiverse.cpp
    skipped 8 lines
    9 9  #define URL 2
    10 10   
    11 11  /*
    12  - * 100 requests per day...
    13  - *
    14  - * ratelimit-consumed: 1
    15  - * ratelimit-limit: 20
     12 + * 100 requests per day
    16 13   */
    17 14  Maltiverse::Maltiverse(ScanArgs args): AbstractOsintModule(args)
    18 15  {
    19  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     16 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    20 17   log.moduleName = OSINT_MODULE_MALTIVERSE;
    21 18   
    22 19   if(args.output_Raw)
    skipped 13 lines
    36 33   
    37 34  void Maltiverse::start(){
    38 35   QNetworkRequest request;
    39  - 
    40 36   QUrl url;
     37 + 
    41 38   if(args.output_Raw){
    42 39   switch (args.raw_query_id) {
    43 40   case HOSTNAME:
    skipped 8 lines
    52 49   }
    53 50   request.setUrl(url);
    54 51   manager->get(request);
    55  - activeRequests++;
    56 52   return;
    57 53   }
    58 54   
    skipped 3 lines
    62 58   request.setAttribute(QNetworkRequest::User, HOSTNAME);
    63 59   request.setUrl(url);
    64 60   manager->get(request);
    65  - activeRequests++;
     61 + return;
    66 62   }
    67 63   }
    68 64   
    skipped 3 lines
    72 68   request.setAttribute(QNetworkRequest::User, IPV4);
    73 69   request.setUrl(url);
    74 70   manager->get(request);
    75  - activeRequests++;
     71 + return;
    76 72   }
    77 73   }
    78 74  }
    skipped 21 lines
    100 96   }
    101 97   }
    102 98   
    103  - end(reply);
     99 + this->end(reply);
    104 100  }
    105 101   
    106 102  void Maltiverse::replyFinishedIp(QNetworkReply *reply){
    skipped 15 lines
    122 118   }
    123 119   }
    124 120   
    125  - end(reply);
     121 + this->end(reply);
    126 122  }
    127 123   
    128 124  void Maltiverse::replyFinishedEmail(QNetworkReply *reply){
    skipped 14 lines
    143 139   }
    144 140   }
    145 141   
    146  - end(reply);
     142 + this->end(reply);
    147 143  }
    148 144   
    149 145  void Maltiverse::replyFinishedCidr(QNetworkReply *reply){
    skipped 14 lines
    164 160   }
    165 161   }
    166 162   
    167  - end(reply);
     163 + this->end(reply);
    168 164  }
    169 165   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/Mnemonic.cpp
    skipped 13 lines
    14 14   
    15 15  Mnemonic::Mnemonic(ScanArgs args): AbstractOsintModule(args)
    16 16  {
    17  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     17 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    18 18   log.moduleName = OSINT_MODULE_MNEMONIC;
    19 19   
    20 20   if(args.output_Raw)
    skipped 14 lines
    35 35  void Mnemonic::start(){
    36 36   QNetworkRequest request;
    37 37   request.setRawHeader("Argus-API-Key", m_key.toUtf8());
    38  - 
    39 38   QUrl url;
     39 + 
    40 40   if(args.output_Raw){
    41 41   switch (args.raw_query_id) {
    42 42   case IP_ANY_RECORD:
    skipped 17 lines
    60 60   }
    61 61   request.setUrl(url);
    62 62   manager->get(request);
    63  - activeRequests++;
     63 + return;
    64 64   }
    65 65   
    66 66   if(args.input_IP){
    skipped 2 lines
    69 69   request.setAttribute(QNetworkRequest::User, IP_ANY_RECORD);
    70 70   request.setUrl(url);
    71 71   manager->get(request);
    72  - activeRequests++;
     72 + return;
    73 73   }
    74 74   }
    75 75   
    skipped 3 lines
    79 79   request.setAttribute(QNetworkRequest::User, IP_ANY_RECORD);
    80 80   request.setUrl(url);
    81 81   manager->get(request);
    82  - activeRequests++;
     82 + return;
    83 83   }
    84 84   }
    85 85  }
    skipped 23 lines
    109 109   }
    110 110   }
    111 111   
    112  - end(reply);
     112 + this->end(reply);
    113 113  }
    114 114   
    115 115  void Mnemonic::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 14 lines
    130 130   }
    131 131   }
    132 132   
    133  - end(reply);
     133 + this->end(reply);
    134 134  }
    135 135   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/MnemonicFree.cpp
    skipped 17 lines
    18 18   */
    19 19  MnemonicFree::MnemonicFree(ScanArgs args): AbstractOsintModule(args)
    20 20  {
    21  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     21 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    22 22   log.moduleName = OSINT_MODULE_MNEMONIC;
    23 23   
    24 24   if(args.output_Raw)
    skipped 9 lines
    34 34   
    35 35  void MnemonicFree::start(){
    36 36   QNetworkRequest request;
    37  - 
    38 37   QUrl url;
     38 + 
    39 39   if(args.output_Raw){
    40 40   switch (args.raw_query_id) {
    41 41   case IP_ANY_RECORD:
    skipped 17 lines
    59 59   }
    60 60   request.setUrl(url);
    61 61   manager->get(request);
    62  - activeRequests++;
     62 + return;
    63 63   }
    64 64   
    65 65   if(args.input_IP){
    skipped 2 lines
    68 68   request.setAttribute(QNetworkRequest::User, IP_ANY_RECORD);
    69 69   request.setUrl(url);
    70 70   manager->get(request);
    71  - activeRequests++;
     71 + return;
    72 72   }
    73 73   }
    74 74   
    skipped 3 lines
    78 78   request.setAttribute(QNetworkRequest::User, IP_ANY_RECORD);
    79 79   request.setUrl(url);
    80 80   manager->get(request);
    81  - activeRequests++;
     81 + return;
    82 82   }
    83 83   }
    84 84  }
    skipped 23 lines
    108 108   }
    109 109   }
    110 110   
    111  - end(reply);
     111 + this->end(reply);
    112 112  }
    113 113   
    114 114  void MnemonicFree::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 14 lines
    129 129   }
    130 130   }
    131 131   
    132  - end(reply);
     132 + this->end(reply);
    133 133  }
    134 134   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/N45HT.cpp
    skipped 9 lines
    10 10   */
    11 11  N45HT::N45HT(ScanArgs args): AbstractOsintModule(args)
    12 12  {
    13  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     13 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    14 14   log.moduleName = OSINT_MODULE_N45HT;
    15 15   
    16 16   if(args.output_Raw)
    skipped 7 lines
    24 24   
    25 25  void N45HT::start(){
    26 26   QNetworkRequest request;
    27  - 
    28 27   QUrl url;
     28 + 
    29 29   if(args.output_Raw){
    30 30   switch (args.raw_query_id) {
    31 31   case SUBDOMAIN:
    skipped 2 lines
    34 34   }
    35 35   request.setUrl(url);
    36 36   manager->get(request);
    37  - activeRequests++;
    38 37   return;
    39 38   }
    40 39   
    skipped 1 lines
    42 41   url.setUrl("https://api.n45ht.or.id/v1/subdomain-enumeration?domain="+target);
    43 42   request.setUrl(url);
    44 43   manager->get(request);
    45  - activeRequests++;
     44 + return;
    46 45   }
    47 46  }
    48 47   
    skipped 11 lines
    60 59   log.resultsCount++;
    61 60   }
    62 61   
    63  - end(reply);
     62 + this->end(reply);
    64 63  }
    65 64   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/NetworksDB.cpp
    skipped 19 lines
    20 20   */
    21 21  NetworksDB::NetworksDB(ScanArgs args): AbstractOsintModule(args)
    22 22  {
    23  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     23 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    24 24   log.moduleName = OSINT_MODULE_NETWORKSDB;
    25 25   
    26 26   if(args.output_Raw)
    skipped 19 lines
    46 46  void NetworksDB::start(){
    47 47   QNetworkRequest request;
    48 48   request.setRawHeader("X-Api-Key", m_key.toUtf8());
    49  - 
    50 49   QUrl url;
     50 + 
    51 51   if(args.output_Raw){
    52 52   switch (args.raw_query_id) {
    53 53   case AS_INFO:
    skipped 29 lines
    83 83   }
    84 84   request.setUrl(url);
    85 85   manager->get(request);
    86  - activeRequests++;
    87 86   return;
    88 87   }
    89 88   
    skipped 3 lines
    93 92   request.setAttribute(QNetworkRequest::User, DOMAINS_ON_IP);
    94 93   request.setUrl(url);
    95 94   manager->get(request);
    96  - activeRequests++;
     95 + return;
    97 96   }
    98 97   if(args.output_CIDR){
    99 98   url.setUrl("https://networksdb.io/api/ip-info?ip="+target);
    100 99   request.setAttribute(QNetworkRequest::User, IP_INFO);
    101 100   request.setUrl(url);
    102 101   manager->get(request);
    103  - activeRequests++;
     102 + return;
    104 103   }
    105 104   }
    106 105   
    skipped 3 lines
    110 109   request.setAttribute(QNetworkRequest::User, IPS_FOR_DOMAIN);
    111 110   request.setUrl(url);
    112 111   manager->get(request);
    113  - activeRequests++;
     112 + return;
    114 113   }
    115 114   }
    116 115   
    skipped 3 lines
    120 119   request.setAttribute(QNetworkRequest::User, AS_NETWORKS);
    121 120   request.setUrl(url);
    122 121   manager->get(request);
    123  - activeRequests++;
     122 + return;
    124 123   }
    125 124   }
    126 125   
    skipped 3 lines
    130 129   request.setAttribute(QNetworkRequest::User, DOMAINS_IN_NETWORK);
    131 130   request.setUrl(url);
    132 131   manager->get(request);
    133  - activeRequests++;
     132 + return;
    134 133   }
    135 134   }
    136 135   
    skipped 3 lines
    140 139   request.setAttribute(QNetworkRequest::User, ORG_SEARCH);
    141 140   request.setUrl(url);
    142 141   manager->get(request);
    143  - activeRequests++;
     142 + return;
    144 143   }
    145 144   }
    146 145  }
    skipped 20 lines
    167 166   }
    168 167   }
    169 168   
    170  - end(reply);
     169 + this->end(reply);
    171 170  }
    172 171   
    173 172  void NetworksDB::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 25 lines
    199 198   break;
    200 199   }
    201 200   
    202  - end(reply);
     201 + this->end(reply);
    203 202  }
    204 203   
    205 204  void NetworksDB::replyFinishedIp(QNetworkReply *reply){
    skipped 23 lines
    229 228   break;
    230 229   }
    231 230   
    232  - end(reply);
     231 + this->end(reply);
    233 232  }
    234 233   
    235 234  void NetworksDB::replyFinishedCidr(QNetworkReply *reply){
    skipped 22 lines
    258 257   break;
    259 258   }
    260 259   
    261  - end(reply);
     260 + this->end(reply);
    262 261  }
    263 262   
    264 263  void NetworksDB::replyFinishedAsn(QNetworkReply *reply){
    skipped 18 lines
    283 282   }
    284 283   }
    285 284   
    286  - end(reply);
     285 + this->end(reply);
    287 286  }
    288 287   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/NeutrinoApi.cpp
    skipped 10 lines
    11 11  #define URL_INFO 7
    12 12   
    13 13  /*
    14  - * 50 free request per day...
     14 + * 50 free request per day
     15 + * for now only raw results...
    15 16   */
    16 17  NeutrinoApi::NeutrinoApi(ScanArgs args): AbstractOsintModule(args)
    17 18  {
    18  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     19 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    19 20   log.moduleName = OSINT_MODULE_NEUTRINOAPI;
    20 21   
    21 22   if(args.output_Raw)
    skipped 2 lines
    24 25   /* getting api key */
    25 26   m_key = APIKEY.value("neutrinoapi_key").toString();
    26 27   m_userId = APIKEY.value("neutrinoapi_uid").toString();
    27  -
    28 28  }
    29 29  NeutrinoApi::~NeutrinoApi(){
    30 30   delete manager;
    skipped 1 lines
    32 32   
    33 33  void NeutrinoApi::start(){
    34 34   QNetworkRequest request;
    35  - 
    36 35   QUrl url;
     36 + 
    37 37   if(args.output_Raw){
    38 38   switch (args.raw_query_id) {
    39 39   case EMAIL_VALIDATE:
    skipped 23 lines
    63 63   }
    64 64   request.setUrl(url);
    65 65   manager->get(request);
    66  - activeRequests++;
     66 + return;
    67 67   }
    68 68  }
    69 69   
    skipped 1 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/Omnisint.cpp
    skipped 9 lines
    10 10   
    11 11  Omnisint::Omnisint(ScanArgs args): AbstractOsintModule(args)
    12 12  {
    13  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     13 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    14 14   log.moduleName = OSINT_MODULE_OMNISINT;
    15 15   
    16 16   if(args.output_Raw)
    skipped 9 lines
    26 26   
    27 27  void Omnisint::start(){
    28 28   QNetworkRequest request;
    29  - 
    30 29   QUrl url;
     30 + 
    31 31   if(args.output_Raw){
    32 32   switch(args.raw_query_id){
    33 33   case ALL:
    skipped 12 lines
    46 46   }
    47 47   request.setUrl(url);
    48 48   manager->get(request);
    49  - activeRequests++;
     49 + return;
    50 50   }
    51 51   
    52 52   if(args.input_IP){
    skipped 2 lines
    55 55   request.setAttribute(QNetworkRequest::User, REVERSE_IP);
    56 56   request.setUrl(url);
    57 57   manager->get(request);
    58  - activeRequests++;
     58 + return;
    59 59   }
    60 60   }
    61 61   
    skipped 3 lines
    65 65   request.setAttribute(QNetworkRequest::User, ALL);
    66 66   request.setUrl(url);
    67 67   manager->get(request);
    68  - activeRequests++;
     68 + return;
    69 69   }
    70 70   }
    71 71   
    skipped 3 lines
    75 75   request.setAttribute(QNetworkRequest::User, REVERSE_IPCIDR);
    76 76   request.setUrl(url);
    77 77   manager->get(request);
    78  - activeRequests++;
     78 + return;
    79 79   }
    80 80   }
    81 81   
    skipped 28 lines
    110 110   break;
    111 111   }
    112 112   
    113  - end(reply);
     113 + this->end(reply);
    114 114  }
    115 115   
    116 116  void Omnisint::replyFinishedSubdomainIp(QNetworkReply *reply){
    skipped 16 lines
    133 133   }
    134 134   }
    135 135   
    136  - end(reply);
     136 + this->end(reply);
    137 137  }
    138 138   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/Onyphe.cpp
    skipped 36 lines
    37 37   */
    38 38  Onyphe::Onyphe(ScanArgs args): AbstractOsintModule(args)
    39 39  {
    40  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     40 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    41 41   log.moduleName = OSINT_MODULE_ONYPHE;
    42 42   
    43 43   if(args.output_Raw)
    skipped 7 lines
    51 51   
    52 52   /* getting api key */
    53 53   m_key = APIKEY.value(OSINT_MODULE_ONYPHE).toString();
    54  -
    55 54  }
    56 55  Onyphe::~Onyphe(){
    57 56   delete manager;
    skipped 3 lines
    61 60   QNetworkRequest request;
    62 61   request.setRawHeader("Content-Type", "application/json");
    63 62   request.setRawHeader("Authorization", "apikey "+m_key.toUtf8());
    64  - 
    65 63   QUrl url;
     64 + 
    66 65   if(args.output_Raw){
    67 66   switch (args.raw_query_id) {
    68 67   case USER:
    skipped 77 lines
    146 145   }
    147 146   request.setUrl(url);
    148 147   manager->get(request);
    149  - activeRequests++;
    150 148   return;
    151 149   }
    152 150   
    skipped 3 lines
    156 154   request.setAttribute(QNetworkRequest::User, SUMMARY_DOMAIN);
    157 155   request.setUrl(url);
    158 156   manager->get(request);
    159  - activeRequests++;
     157 + return;
    160 158   }
    161 159   }
    162 160   
    skipped 3 lines
    166 164   request.setAttribute(QNetworkRequest::User, SUMMARY_IP);
    167 165   request.setUrl(url);
    168 166   manager->get(request);
    169  - activeRequests++;
     167 + return;
    170 168   }
    171 169   }
    172 170  }
    skipped 23 lines
    196 194   }
    197 195   }
    198 196   
    199  - end(reply);
     197 + this->end(reply);
    200 198  }
    201 199   
    202 200  void Onyphe::replyFinishedIp(QNetworkReply *reply){
    skipped 16 lines
    219 217   }
    220 218   }
    221 219   
    222  - end(reply);
     220 + this->end(reply);
    223 221  }
    224 222   
    225 223  void Onyphe::replyFinishedSSL(QNetworkReply *reply){
    skipped 16 lines
    242 240   }
    243 241   }
    244 242   
    245  - end(reply);
     243 + this->end(reply);
    246 244  }
    247 245   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/Otx.cpp
    skipped 31 lines
    32 32  #define INDICATOR_URL_GENERAL 25
    33 33  #define INDICATOR_URL_URLLIST 26
    34 34   
    35  - 
    36 35  /*
    37 36   * 1k per hour unauthenticated, and 10k authed
    38 37   */
    39 38  Otx::Otx(ScanArgs args): AbstractOsintModule(args)
    40 39  {
    41  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     40 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    42 41   log.moduleName = OSINT_MODULE_OTX;
    43 42   
    44 43   if(args.output_Raw)
    skipped 17 lines
    62 61  void Otx::start(){
    63 62   QNetworkRequest request;
    64 63   request.setRawHeader("X-OTX-API-KEY", m_key.toUtf8());
    65  - 
    66 64   QUrl url;
     65 + 
    67 66   if(args.output_Raw){
    68 67   switch (args.raw_query_id) {
    69 68   case INDICATOR_DOMAIN_GENERAL:
    skipped 80 lines
    150 149   }
    151 150   request.setUrl(url);
    152 151   manager->get(request);
    153  - activeRequests++;
    154 152   return;
    155 153   }
    156 154   
    skipped 4 lines
    161 159   request.setAttribute(QNetworkRequest::User, INDICATOR_IPV4_PASSIVEDNS);
    162 160   request.setUrl(url);
    163 161   manager->get(request);
    164  - activeRequests++;
     162 + return;
    165 163   }
    166 164   /* if target ip-address doesnt contains ":" then its an ipv4 */
    167 165   else{
    skipped 1 lines
    169 167   request.setAttribute(QNetworkRequest::User, INDICATOR_IPV6_PASSIVEDNS);
    170 168   request.setUrl(url);
    171 169   manager->get(request);
    172  - activeRequests++;
     170 + return;
    173 171   }
    174  - return;
    175 172   }
    176 173   
    177 174   if(args.input_Domain){
    skipped 1 lines
    179 176   request.setAttribute(QNetworkRequest::User, INDICATOR_HOSTNAME_PASSIVEDNS);
    180 177   request.setUrl(url);
    181 178   manager->get(request);
    182  - activeRequests++;
    183 179   }
    184 180  }
    185 181   
    skipped 17 lines
    203 199   }
    204 200   }
    205 201   }
    206  - end(reply);
     202 + this->end(reply);
    207 203  }
    208 204   
    209 205  void Otx::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 30 lines
    240 236   log.resultsCount++;
    241 237   }
    242 238   }
    243  - end(reply);
     239 + this->end(reply);
    244 240  }
    245 241   
    246 242  void Otx::replyFinishedIp(QNetworkReply *reply){
    skipped 22 lines
    269 265   }
    270 266   }
    271 267   }
    272  - end(reply);
     268 + this->end(reply);
    273 269  }
    274 270   
    275 271  void Otx::replyFinishedAsn(QNetworkReply *reply){
    skipped 21 lines
    297 293   log.resultsCount++;
    298 294   }
    299 295   }
    300  - end(reply);
     296 + this->end(reply);
    301 297  }
    302 298   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/OtxFree.cpp
    skipped 36 lines
    37 37   */
    38 38  OtxFree::OtxFree(ScanArgs args): AbstractOsintModule(args)
    39 39  {
    40  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     40 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    41 41   log.moduleName = OSINT_MODULE_OTX;
    42 42   
    43 43   if(args.output_Raw)
    skipped 13 lines
    57 57   
    58 58  void OtxFree::start(){
    59 59   QNetworkRequest request;
    60  - 
    61 60   QUrl url;
     61 + 
    62 62   if(args.output_Raw){
    63 63   switch (args.raw_query_id) {
    64 64   case INDICATOR_DOMAIN_GENERAL:
    skipped 80 lines
    145 145   }
    146 146   request.setUrl(url);
    147 147   manager->get(request);
    148  - activeRequests++;
    149 148   return;
    150 149   }
    151 150   
    skipped 4 lines
    156 155   request.setAttribute(QNetworkRequest::User, INDICATOR_IPV4_PASSIVEDNS);
    157 156   request.setUrl(url);
    158 157   manager->get(request);
    159  - activeRequests++;
     158 + return;
    160 159   }
    161 160   /* if target ip-address doesnt contains ":" then its an ipv4 */
    162 161   else{
    skipped 1 lines
    164 163   request.setAttribute(QNetworkRequest::User, INDICATOR_IPV6_PASSIVEDNS);
    165 164   request.setUrl(url);
    166 165   manager->get(request);
    167  - activeRequests++;
     166 + return;
    168 167   }
    169 168   }
    170 169   
    skipped 2 lines
    173 172   request.setAttribute(QNetworkRequest::User, INDICATOR_HOSTNAME_PASSIVEDNS);
    174 173   request.setUrl(url);
    175 174   manager->get(request);
    176  - activeRequests++;
    177 175   }
    178 176  }
    179 177   
    skipped 17 lines
    197 195   }
    198 196   }
    199 197   }
    200  - end(reply);
     198 + this->end(reply);
    201 199  }
    202 200   
    203 201  void OtxFree::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 30 lines
    234 232   log.resultsCount++;
    235 233   }
    236 234   }
    237  - end(reply);
     235 + this->end(reply);
    238 236  }
    239 237   
    240 238  void OtxFree::replyFinishedIp(QNetworkReply *reply){
    skipped 22 lines
    263 261   }
    264 262   }
    265 263   }
    266  - end(reply);
     264 + this->end(reply);
    267 265  }
    268 266   
    269 267  void OtxFree::replyFinishedAsn(QNetworkReply *reply){
    skipped 21 lines
    291 289   log.resultsCount++;
    292 290   }
    293 291   }
    294  - end(reply);
     292 + this->end(reply);
    295 293  }
    296 294   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/PassiveTotal.cpp
    skipped 23 lines
    24 24   
    25 25  PassiveTotal::PassiveTotal(ScanArgs args): AbstractOsintModule(args)
    26 26  {
    27  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     27 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    28 28   log.moduleName = OSINT_MODULE_RISKIQ;
    29 29   
    30 30   if(args.output_Raw)
    skipped 21 lines
    52 52   QString concatenated = m_key+":"+m_username;
    53 53   QByteArray data = concatenated.toLocal8Bit().toBase64();
    54 54   request.setRawHeader("Authorization", "Basic "+data);
    55  - 
    56 55   QUrl url;
     56 + 
    57 57   if(args.output_Raw){
    58 58   switch (args.raw_query_id) {
    59 59   case ACCOUNT:
    skipped 47 lines
    107 107   }
    108 108   request.setUrl(url);
    109 109   manager->get(request);
    110  - activeRequests++;
    111 110   return;
    112 111   }
    113 112   
    skipped 3 lines
    117 116   request.setAttribute(QNetworkRequest::User, PASSIVE_DNS);
    118 117   request.setUrl(url);
    119 118   manager->get(request);
    120  - activeRequests++;
     119 + return;
    121 120   }
    122 121   }
    123 122   
    skipped 3 lines
    127 126   request.setAttribute(QNetworkRequest::User, CERTIFICATE_HISTORY);
    128 127   request.setUrl(url);
    129 128   manager->get(request);
    130  - activeRequests++;
     129 + return;
    131 130   }
    132 131   }
    133 132   
    skipped 3 lines
    137 136   request.setAttribute(QNetworkRequest::User, CERTIFICATE_HISTORY);
    138 137   request.setUrl(url);
    139 138   manager->get(request);
    140  - activeRequests++;
     139 + return;
    141 140   }
    142 141   }
    143 142   
    skipped 3 lines
    147 146   request.setAttribute(QNetworkRequest::User, PASSIVE_DNS_SEARCH);
    148 147   request.setUrl(url);
    149 148   manager->get(request);
    150  - activeRequests++;
     149 + return;
    151 150   }
    152 151   if(args.output_SSL){
    153 152   url.setUrl("https://api.riskiq.net/pt/v2/ssl-certificate/search/keyword?query="+target);
    154 153   request.setAttribute(QNetworkRequest::User, CERTIFICATE_KEYWORD);
    155 154   request.setUrl(url);
    156 155   manager->get(request);
    157  - activeRequests++;
     156 + return;
    158 157   }
    159 158   }
    160 159  }
    skipped 25 lines
    186 185   }
    187 186   }
    188 187   
    189  - end(reply);
     188 + this->end(reply);
    190 189  }
    191 190   
    192 191  void PassiveTotal::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 14 lines
    207 206   }
    208 207   }
    209 208   
    210  - end(reply);
     209 + this->end(reply);
    211 210  }
    212 211   
    213 212  void PassiveTotal::replyFinishedIp(QNetworkReply *reply){
    skipped 24 lines
    238 237   break;
    239 238   }
    240 239   
    241  - end(reply);
     240 + this->end(reply);
    242 241  }
    243 242   
    244 243  void PassiveTotal::replyFinishedSSL(QNetworkReply *reply){
    skipped 21 lines
    266 265   }
    267 266   }
    268 267   
    269  - end(reply);
     268 + this->end(reply);
    270 269  }
    271 270   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/Projectdiscovery.cpp
    skipped 9 lines
    10 10  Projectdiscovery::Projectdiscovery(ScanArgs args):
    11 11   AbstractOsintModule(args)
    12 12  {
    13  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     13 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    14 14   log.moduleName = OSINT_MODULE_PROJECTDISCOVERY;
    15 15   
    16 16   if(args.output_Raw)
    skipped 11 lines
    28 28  void Projectdiscovery::start(){
    29 29   QNetworkRequest request;
    30 30   request.setRawHeader("Authorization", m_key.toUtf8());
    31  - 
    32 31   QUrl url;
     32 + 
    33 33   if(args.output_Raw){
    34 34   switch(args.raw_query_id){
    35 35   case SUBDOMAIN:
    skipped 2 lines
    38 38   }
    39 39   request.setUrl(url);
    40 40   manager->get(request);
    41  - activeRequests++;
    42 41   return;
    43 42   }
    44 43   
    skipped 3 lines
    48 47   request.setAttribute(QNetworkRequest::User, SUBDOMAIN);
    49 48   request.setUrl(url);
    50 49   manager->get(request);
    51  - activeRequests++;
    52 50   }
    53 51   }
    54 52  }
    skipped 12 lines
    67 65   log.resultsCount++;
    68 66   }
    69 67   
    70  - end(reply);
     68 + this->end(reply);
    71 69  }
    72 70   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/RiskIq.cpp
    skipped 24 lines
    25 25   */
    26 26  RiskIq::RiskIq(ScanArgs args): AbstractOsintModule(args)
    27 27  {
    28  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     28 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    29 29   log.moduleName = OSINT_MODULE_RISKIQ;
    30 30   
    31 31   if(args.output_Raw)
    skipped 21 lines
    53 53   QString concatenated = m_key+":"+m_secret;
    54 54   QByteArray data = concatenated.toLocal8Bit().toBase64();
    55 55   request.setRawHeader("Authorization", "Basic "+data);
    56  - 
    57 56   QUrl url;
     57 + 
    58 58   if(args.output_Raw){
    59 59   switch (args.raw_query_id) {
    60 60   case CERT_HOST:
    skipped 44 lines
    105 105   }
    106 106   request.setUrl(url);
    107 107   manager->get(request);
    108  - activeRequests++;
    109 108   return;
    110 109   }
    111 110   
    skipped 3 lines
    115 114   request.setAttribute(QNetworkRequest::User, PDNS_IP);
    116 115   request.setUrl(url);
    117 116   manager->get(request);
    118  - activeRequests++;
     117 + return;
    119 118   }
    120 119   if(args.output_SSL){
    121 120   url.setUrl("https://api.riskiq.net/v1/ssl/cert/hos?host="+target);
    122 121   request.setAttribute(QNetworkRequest::User, CERT_HOST);
    123 122   request.setUrl(url);
    124 123   manager->get(request);
    125  - activeRequests++;
     124 + return;
    126 125   }
    127 126   }
    128 127   
    skipped 3 lines
    132 131   request.setAttribute(QNetworkRequest::User, PDNS_NAME);
    133 132   request.setUrl(url);
    134 133   manager->get(request);
    135  - activeRequests++;
     134 + return;
    136 135   }
    137 136   if(args.output_SSL){
    138 137   url.setUrl("https://api.riskiq.net/v1/ssl/cert/hos?host="+target);
    139 138   request.setAttribute(QNetworkRequest::User, CERT_HOST);
    140 139   request.setUrl(url);
    141 140   manager->get(request);
    142  - activeRequests++;
     141 + return;
    143 142   }
    144 143   }
    145 144   
    skipped 3 lines
    149 148   request.setAttribute(QNetworkRequest::User, CERT_SHA1);
    150 149   request.setUrl(url);
    151 150   manager->get(request);
    152  - activeRequests++;
     151 + return;
    153 152   }
    154 153   }
    155 154  }
    skipped 24 lines
    180 179   }
    181 180   }
    182 181   
    183  - end(reply);
     182 + this->end(reply);
    184 183  }
    185 184   
    186 185  void RiskIq::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 55 lines
    242 241   break;
    243 242   }
    244 243   
    245  - end(reply);
     244 + this->end(reply);
    246 245  }
    247 246   
    248 247  void RiskIq::replyFinishedIp(QNetworkReply *reply){
    skipped 41 lines
    290 289   break;
    291 290   }
    292 291   
    293  - end(reply);
     292 + this->end(reply);
    294 293  }
    295 294   
    296 295  void RiskIq::replyFinishedSSL(QNetworkReply *reply){
    skipped 17 lines
    314 313   }
    315 314   }
    316 315   
    317  - end(reply);
     316 + this->end(reply);
    318 317  }
    319 318   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/Robtex.cpp
    skipped 11 lines
    12 12   
    13 13  Robtex::Robtex(ScanArgs args): AbstractOsintModule(args)
    14 14  {
    15  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     15 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    16 16   log.moduleName = OSINT_MODULE_ROBTEX;
    17 17   
    18 18   if(args.output_Raw)
    skipped 20 lines
    39 39  void Robtex::start(){
    40 40   QNetworkRequest request;
    41 41   request.setRawHeader("Content-Type", "application/json");
    42  - 
    43 42   QUrl url;
     43 + 
    44 44   if(args.output_Raw){
    45 45   switch (args.raw_query_id) {
    46 46   case ASQUERY:
    skipped 10 lines
    57 57   }
    58 58   request.setUrl(url);
    59 59   manager->get(request);
    60  - activeRequests++;
    61 60   return;
    62 61   }
    63 62   
    skipped 3 lines
    67 66   request.setAttribute(QNetworkRequest::User, IPQUERY);
    68 67   request.setUrl(url);
    69 68   manager->get(request);
    70  - activeRequests++;
     69 + return;
    71 70   }
    72 71   
    73 72   if(args.output_IP || args.output_Hostname || args.output_HostnameIP){
    skipped 1 lines
    75 74   request.setAttribute(QNetworkRequest::User, PDNS_REVERSE);
    76 75   request.setUrl(url);
    77 76   manager->get(request);
    78  - activeRequests++;
     77 + return;
    79 78   }
    80 79   }
    81 80   
    skipped 3 lines
    85 84   request.setAttribute(QNetworkRequest::User, PDNS_FORWARD);
    86 85   request.setUrl(url);
    87 86   manager->get(request);
    88  - activeRequests++;
    89 87   return;
    90 88   }
    91 89   }
    skipped 4 lines
    96 94   request.setAttribute(QNetworkRequest::User, ASQUERY);
    97 95   request.setUrl(url);
    98 96   manager->get(request);
    99  - activeRequests++;
     97 + return;
    100 98   }
    101 99   }
    102 100  }
    skipped 35 lines
    138 136   }
    139 137   }
    140 138   
    141  - end(reply);
     139 + this->end(reply);
    142 140  }
    143 141   
    144 142  void Robtex::replyFinishedIp(QNetworkReply *reply){
    skipped 27 lines
    172 170   }
    173 171   }
    174 172   
    175  - end(reply);
     173 + this->end(reply);
    176 174  }
    177 175   
    178 176  void Robtex::replyFinishedAsn(QNetworkReply *reply){
    skipped 13 lines
    192 190   log.resultsCount++;
    193 191   }
    194 192   
    195  - end(reply);
     193 + this->end(reply);
    196 194  }
    197 195   
    198 196  void Robtex::replyFinishedCidr(QNetworkReply *reply){
    skipped 19 lines
    218 216   }
    219 217   }
    220 218   
    221  - end(reply);
     219 + this->end(reply);
    222 220  }
    223 221   
    224 222  void Robtex::replyFinishedSubdomainIp(QNetworkReply *reply){
    skipped 21 lines
    246 244   }
    247 245   }
    248 246   
    249  - end(reply);
     247 + this->end(reply);
    250 248  }
    251 249   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/RobtexFree.cpp
    skipped 10 lines
    11 11   
    12 12  RobtexFree::RobtexFree(ScanArgs args): AbstractOsintModule(args)
    13 13  {
    14  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     14 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    15 15   log.moduleName = OSINT_MODULE_ROBTEX;
    16 16   
    17 17   if(args.output_Raw)
    skipped 16 lines
    34 34  void RobtexFree::start(){
    35 35   QNetworkRequest request;
    36 36   request.setRawHeader("Content-Type", "application/json");
    37  - 
    38 37   QUrl url;
     38 + 
    39 39   if(args.output_Raw){
    40 40   switch (args.raw_query_id) {
    41 41   case ASQUERY:
    skipped 10 lines
    52 52   }
    53 53   request.setUrl(url);
    54 54   manager->get(request);
    55  - activeRequests++;
    56 55   return;
    57 56   }
    58 57   
    skipped 3 lines
    62 61   request.setAttribute(QNetworkRequest::User, IPQUERY);
    63 62   request.setUrl(url);
    64 63   manager->get(request);
    65  - activeRequests++;
     64 + return;
    66 65   }
    67 66   
    68 67   if(args.output_IP || args.output_Hostname || args.output_HostnameIP){
    skipped 1 lines
    70 69   request.setAttribute(QNetworkRequest::User, PDNS_REVERSE);
    71 70   request.setUrl(url);
    72 71   manager->get(request);
    73  - activeRequests++;
     72 + return;
    74 73   }
    75 74   }
    76 75   
    skipped 3 lines
    80 79   request.setAttribute(QNetworkRequest::User, PDNS_FORWARD);
    81 80   request.setUrl(url);
    82 81   manager->get(request);
    83  - activeRequests++;
     82 + return;
    84 83   }
    85 84   }
    86 85   
    skipped 3 lines
    90 89   request.setAttribute(QNetworkRequest::User, ASQUERY);
    91 90   request.setUrl(url);
    92 91   manager->get(request);
    93  - activeRequests++;
     92 + return;
    94 93   }
    95 94   }
    96 95  }
    skipped 35 lines
    132 131   }
    133 132   }
    134 133   
    135  - end(reply);
     134 + this->end(reply);
    136 135  }
    137 136   
    138 137  void RobtexFree::replyFinishedIp(QNetworkReply *reply){
    skipped 27 lines
    166 165   }
    167 166   }
    168 167   
    169  - end(reply);
     168 + this->end(reply);
    170 169  }
    171 170   
    172 171  void RobtexFree::replyFinishedAsn(QNetworkReply *reply){
    skipped 13 lines
    186 185   log.resultsCount++;
    187 186   }
    188 187   
    189  - end(reply);
     188 + this->end(reply);
    190 189  }
    191 190   
    192 191  void RobtexFree::replyFinishedCidr(QNetworkReply *reply){
    skipped 19 lines
    212 211   }
    213 212   }
    214 213   
    215  - end(reply);
     214 + this->end(reply);
    216 215  }
    217 216   
    218 217  void RobtexFree::replyFinishedSubdomainIp(QNetworkReply *reply){
    skipped 21 lines
    240 239   }
    241 240   }
    242 241   
    243  - end(reply);
     242 + this->end(reply);
    244 243  }
    245 244   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/SecurityTrails.cpp
    skipped 22 lines
    23 23   */
    24 24  SecurityTrails::SecurityTrails(ScanArgs args): AbstractOsintModule(args)
    25 25  {
    26  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     26 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    27 27   log.moduleName = OSINT_MODULE_SECURITYTRAILS;
    28 28   
    29 29   if(args.output_Raw)
    skipped 17 lines
    47 47   QNetworkRequest request;
    48 48   request.setRawHeader("APIKEY", m_key.toUtf8());
    49 49   request.setRawHeader("Accept", "application/json");
    50  - 
    51 50   QUrl url;
     51 + 
    52 52   if(args.output_Raw){
    53 53   switch (args.raw_query_id) {
    54 54   case HISTORY_DNS:
    skipped 37 lines
    92 92   }
    93 93   request.setUrl(url);
    94 94   manager->get(request);
    95  - activeRequests++;
    96 95   return;
    97 96   }
    98 97   
    skipped 3 lines
    102 101   request.setAttribute(QNetworkRequest::User, DOMAIN_SUBDOMAIN);
    103 102   request.setUrl(url);
    104 103   manager->get(request);
    105  - activeRequests++;
     104 + return;
    106 105   }
    107 106   
    108 107   if(args.output_IP){
    skipped 2 lines
    111 110   request.setAttribute(QNetworkRequest::User, DOMAIN_DETAILS);
    112 111   request.setUrl(url);
    113 112   manager->get(request);
    114  - activeRequests++;
     113 + return;
    115 114   }
    116 115   
    117 116   if(args.output_CIDR){
    skipped 1 lines
    119 118   request.setAttribute(QNetworkRequest::User, COMPANY_ASSOCIATED_IP);
    120 119   request.setUrl(url);
    121 120   manager->get(request);
    122  - activeRequests++;
     121 + return;
    123 122   }
    124 123   }
    125 124   
    skipped 3 lines
    129 128   request.setAttribute(QNetworkRequest::User, IP_NEIGHBOURS);
    130 129   request.setUrl(url);
    131 130   manager->get(request);
    132  - activeRequests++;
     131 + return;
    133 132   }
    134 133   }
    135 134  }
    skipped 29 lines
    165 164   }
    166 165   }
    167 166   
    168  - end(reply);
     167 + this->end(reply);
    169 168  }
    170 169   
    171 170  void SecurityTrails::replyFinishedIp(QNetworkReply *reply){
    skipped 24 lines
    196 195   }
    197 196   }
    198 197   
    199  - end(reply);
     198 + this->end(reply);
    200 199  }
    201 200   
    202 201  void SecurityTrails::replyFinishedCidr(QNetworkReply *reply){
    skipped 13 lines
    216 215   }
    217 216   }
    218 217   
    219  - end(reply);
     218 + this->end(reply);
    220 219  }
    221 220   
  • ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/Seon.cpp
    skipped 7 lines
    8 8   
    9 9  Seon::Seon(ScanArgs args): AbstractOsintModule(args)
    10 10  {
    11  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     11 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    12 12   log.moduleName = OSINT_MODULE_SEON;
    13 13   
    14 14   if(args.output_Raw)
    skipped 9 lines
    24 24  void Seon::start(){
    25 25   QNetworkRequest request;
    26 26   request.setRawHeader("X-API-KEY", m_key.toUtf8());
     27 + QUrl url;
    27 28   
    28  - QUrl url;
    29 29   if(args.output_Raw){
    30 30   switch (args.raw_query_id) {
    31 31   case EMAIL:
    skipped 11 lines
    43 43   }
    44 44   request.setUrl(url);
    45 45   manager->get(request);
    46  - activeRequests++;
    47 46   }
    48 47  }
    49 48   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/Shodan.cpp
    skipped 19 lines
    20 20  /* 1 request per second */
    21 21  Shodan::Shodan(ScanArgs args): AbstractOsintModule(args)
    22 22  {
    23  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     23 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    24 24   log.moduleName = OSINT_MODULE_SHODAN;
    25 25   
    26 26   if(args.output_Raw)
    skipped 56 lines
    83 83   }
    84 84   request.setUrl(url);
    85 85   manager->get(request);
    86  - activeRequests++;
    87 86   return;
    88 87   }
    89 88   
    skipped 2 lines
    92 91   url.setUrl("https://api.shodan.io/dns/domain/"+target+"?key="+m_key);
    93 92   request.setAttribute(QNetworkRequest::User, DNS_DOMAIN);
    94 93   request.setUrl(url);
    95  - manager->get(request);
    96  - activeRequests++;
     94 + return;
    97 95   }
    98 96   }
    99 97   
    skipped 3 lines
    103 101   request.setAttribute(QNetworkRequest::User, HOST_IP);
    104 102   request.setUrl(url);
    105 103   manager->get(request);
    106  - activeRequests++;
     104 + return;
    107 105   }
    108 106   }
    109 107  }
    skipped 20 lines
    130 128   }
    131 129   }
    132 130   }
    133  - end(reply);
     131 + this->end(reply);
    134 132  }
    135 133   
    136 134  void Shodan::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 49 lines
    186 184   break;
    187 185   }
    188 186   
    189  - end(reply);
     187 + this->end(reply);
    190 188  }
    191 189   
    192 190  void Shodan::replyFinishedIp(QNetworkReply *reply){
    skipped 23 lines
    216 214   }
    217 215   }
    218 216   
    219  - end(reply);
     217 + this->end(reply);
    220 218  }
    221 219   
    222 220  void Shodan::replyFinishedAsn(QNetworkReply *reply){
    skipped 14 lines
    237 235   }
    238 236   }
    239 237   
    240  - end(reply);
     238 + this->end(reply);
    241 239  }
    242 240   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/SpamHaus.cpp
    skipped 3 lines
    4 4  #define FORWARD_SEARCH 0
    5 5  #define REVERSE_SEARCH 1
    6 6   
     7 +/*
     8 + * for now only raw results
     9 + */
    7 10  SpamHaus::SpamHaus(ScanArgs args): AbstractOsintModule(args)
    8 11  {
    9  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     12 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    10 13   log.moduleName = OSINT_MODULE_SPAMHAUS;
    11 14   
    12 15   if(args.output_Raw)
    skipped 23 lines
    36 39   }
    37 40   request.setUrl(url);
    38 41   manager->get(request);
    39  - activeRequests++;
    40 42   }
    41 43  }
    42 44   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/SpyOnWeb.cpp
    skipped 14 lines
    15 15   
    16 16  SpyOnWeb::SpyOnWeb(ScanArgs args): AbstractOsintModule(args)
    17 17  {
    18  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     18 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    19 19   log.moduleName = OSINT_MODULE_SPYONWEB;
    20 20   
    21 21   if(args.output_Raw)
    skipped 16 lines
    38 38   
    39 39  void SpyOnWeb::start(){
    40 40   QNetworkRequest request;
    41  - 
    42 41   QUrl url;
     42 + 
    43 43   if(args.output_Raw){
    44 44   switch (args.raw_query_id) {
    45 45   case DOMAIN_API:
    skipped 20 lines
    66 66   }
    67 67   request.setUrl(url);
    68 68   manager->get(request);
    69  - activeRequests++;
    70 69   return;
    71 70   }
    72 71   
    skipped 3 lines
    76 75   request.setAttribute(QNetworkRequest::User, IP_API);
    77 76   request.setUrl(url);
    78 77   manager->get(request);
    79  - activeRequests++;
     78 + return;
    80 79   }
    81 80   }
    82 81   
    skipped 3 lines
    86 85   request.setAttribute(QNetworkRequest::User, DOMAIN_API);
    87 86   request.setUrl(url);
    88 87   manager->get(request);
    89  - activeRequests++;
     88 + return;
    90 89   }
    91 90   }
    92 91   
    skipped 6 lines
    99 98   request.setAttribute(QNetworkRequest::User, DOMAINS_ON_NAMESERVER);
    100 99   request.setUrl(url);
    101 100   manager->get(request);
    102  - activeRequests++;
     101 + return;
    103 102   }
    104 103  }
    105 104   
    skipped 20 lines
    126 125   }
    127 126   }
    128 127   
    129  - end(reply);
     128 + this->end(reply);
    130 129  }
    131 130   
    132 131  void SpyOnWeb::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 39 lines
    172 171   }
    173 172   }
    174 173   
    175  - end(reply);
     174 + this->end(reply);
    176 175  }
    177 176   
    178 177  void SpyOnWeb::replyFinishedIp(QNetworkReply *reply){
    skipped 16 lines
    195 194   }
    196 195   }
    197 196   
    198  - end(reply);
     197 + this->end(reply);
    199 198  }
    200 199   
    201 200  void SpyOnWeb::replyFinishedEnumNS(QNetworkReply *reply){
    skipped 15 lines
    217 216   
    218 217   emit resultEnumNS(ns);
    219 218   
    220  - end(reply);
     219 + this->end(reply);
    221 220  }
    222 221   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/Spyse.cpp
    skipped 12 lines
    13 13  #define IPV6 6
    14 14  #define SSL_CERT 7
    15 15   
    16  -/* 100 queries for a free account */
     16 +/*
     17 + * 100 queries for a free account
     18 + */
    17 19  Spyse::Spyse(ScanArgs args): AbstractOsintModule(args)
    18 20  {
    19  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     21 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    20 22   log.moduleName = OSINT_MODULE_SPYSE;
    21 23   
    22 24   if(args.output_Raw)
    skipped 23 lines
    46 48   request.setRawHeader("accept", "application/json");
    47 49   request.setRawHeader("Content-Type", "application/json");
    48 50   request.setRawHeader("Authorization", "Bearer "+m_key.toUtf8());
     51 + QUrl url;
    49 52   
    50  - QUrl url;
    51 53   if(args.output_Raw){
    52 54   switch (args.raw_query_id) {
    53 55   case DOMAINS:
    skipped 20 lines
    74 76   }
    75 77   request.setUrl(url);
    76 78   manager->get(request);
    77  - activeRequests++;
    78 79   return;
    79 80   }
    80 81   
    skipped 2 lines
    83 84   request.setAttribute(QNetworkRequest::User, DOMAINS);
    84 85   request.setUrl(url);
    85 86   manager->get(request);
    86  - activeRequests++;
    87 87   return;
    88 88   }
    89 89   
    skipped 2 lines
    92 92   request.setAttribute(QNetworkRequest::User, IPV4);
    93 93   request.setUrl(url);
    94 94   manager->get(request);
    95  - activeRequests++;
    96 95   return;
    97 96   }
    98 97   
    skipped 2 lines
    101 100   request.setAttribute(QNetworkRequest::User, SSL_CERT);
    102 101   request.setUrl(url);
    103 102   manager->get(request);
    104  - activeRequests++;
    105 103   return;
    106 104   }
    107 105   
    skipped 2 lines
    110 108   request.setAttribute(QNetworkRequest::User, AS);
    111 109   request.setUrl(url);
    112 110   manager->get(request);
    113  - activeRequests++;
    114 111   return;
    115 112   }
    116 113   
    skipped 2 lines
    119 116   request.setAttribute(QNetworkRequest::User, EMAILS);
    120 117   request.setUrl(url);
    121 118   manager->get(request);
    122  - activeRequests++;
    123 119   }
    124 120  }
    125 121   
    skipped 36 lines
    162 158   }
    163 159   }
    164 160   
    165  - end(reply);
     161 + this->end(reply);
    166 162  }
    167 163   
    168 164  void Spyse::replyFinishedIp(QNetworkReply *reply){
    skipped 45 lines
    214 210   }
    215 211   }
    216 212   
    217  - end(reply);
     213 + this->end(reply);
    218 214  }
    219 215   
    220 216  void Spyse::replyFinishedSSL(QNetworkReply *reply){
    skipped 15 lines
    236 232   log.resultsCount++;
    237 233   }
    238 234   }
    239  - end(reply);
     235 + this->end(reply);
    240 236  }
    241 237   
    242 238  void Spyse::replyFinishedAsn(QNetworkReply *reply){
    skipped 41 lines
    284 280   }
    285 281   }
    286 282   
    287  - end(reply);
     283 + this->end(reply);
    288 284  }
    289 285   
    290 286  void Spyse::replyFinishedUrl(QNetworkReply *reply){
    skipped 17 lines
    308 304   }
    309 305   }
    310 306   
    311  - end(reply);
     307 + this->end(reply);
    312 308  }
    313 309   
    314 310  void Spyse::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 38 lines
    353 349   }
    354 350   }
    355 351   
    356  - end(reply);
     352 + this->end(reply);
    357 353  }
    358 354   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/Sublist3r.cpp
    skipped 4 lines
    5 5   
    6 6  Sublist3r::Sublist3r(ScanArgs args): AbstractOsintModule(args)
    7 7  {
    8  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     8 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    9 9   log.moduleName = OSINT_MODULE_SUBLIST3R;
    10 10   
    11 11   if(args.output_Raw)
    skipped 7 lines
    19 19   
    20 20  void Sublist3r::start(){
    21 21   QNetworkRequest request;
    22  - 
    23 22   QUrl url;
     23 + 
    24 24   if(args.output_Raw){
    25 25   url.setUrl("https://api.sublist3r.com/search.php?domain="+target);
    26 26   request.setUrl(url);
    27 27   manager->get(request);
    28  - activeRequests++;
    29 28   return;
    30 29   }
    31 30   
    skipped 1 lines
    33 32   url.setUrl("https://api.sublist3r.com/search.php?domain="+target);
    34 33   request.setUrl(url);
    35 34   manager->get(request);
    36  - activeRequests++;
    37 35   }
    38 36  }
    39 37   
    skipped 9 lines
    49 47   emit resultSubdomain(value.toString());
    50 48   log.resultsCount++;
    51 49   }
    52  - end(reply);
     50 + this->end(reply);
    53 51  }
    54 52   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/ThreatBook.cpp
    skipped 12 lines
    13 13   
    14 14  ThreatBook::ThreatBook(ScanArgs args): AbstractOsintModule(args)
    15 15  {
    16  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     16 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    17 17   log.moduleName = OSINT_MODULE_THREATBOOK;
    18 18   
    19 19   if(args.output_Raw)
    skipped 15 lines
    35 35  void ThreatBook::start(){
    36 36   QNetworkRequest request;
    37 37   request.setRawHeader("Content-Type", "application/json");
     38 + QUrl url;
    38 39   
    39  - QUrl url;
    40 40   if(args.output_Raw){
    41 41   switch (args.raw_query_id) {
    42 42   case SUBDOMAINS:
    skipped 14 lines
    57 57   }
    58 58   request.setUrl(url);
    59 59   manager->get(request);
    60  - activeRequests++;
    61 60   return;
    62 61   }
    63 62   
    skipped 3 lines
    67 66   request.setAttribute(QNetworkRequest::User, SUBDOMAINS);
    68 67   request.setUrl(url);
    69 68   manager->get(request);
    70  - activeRequests++;
     69 + return;
    71 70   }
    72 71   if(args.output_IP){
    73 72   url.setUrl("https://api.threatbook.cn/v3/domain/query?apikey="+m_key+"&resource="+target);
    74 73   request.setAttribute(QNetworkRequest::User, DOMAIN_QUERY);
    75 74   request.setUrl(url);
    76 75   manager->get(request);
    77  - activeRequests++;
     76 + return;
    78 77   
    79 78   /*
    80 79   url.setUrl("https://api.threatbook.cn/v3/domain/adv_query?apikey="+m_key+"&resource="+target);
    skipped 10 lines
    91 90   request.setAttribute(QNetworkRequest::User, IP_QUERY);
    92 91   request.setUrl(url);
    93 92   manager->get(request);
    94  - activeRequests++;
     93 + return;
    95 94   
    96 95   /*
    97 96   url.setUrl("https://api.threatbook.cn/v3/ip/adv_query?apikey="+m_key+"&resource="+target);
    skipped 39 lines
    137 136   }
    138 137   }
    139 138   
    140  - end(reply);
     139 + this->end(reply);
    141 140  }
    142 141   
    143 142  void ThreatBook::replyFinishedAsn(QNetworkReply *reply){
    skipped 14 lines
    158 157   log.resultsCount++;
    159 158   }
    160 159   
    161  - end(reply);
     160 + this->end(reply);
    162 161  }
    163 162   
    164 163  void ThreatBook::replyFinishedIp(QNetworkReply *reply){
    skipped 27 lines
    192 191   }
    193 192   }
    194 193   
    195  - end(reply);
     194 + this->end(reply);
    196 195  }
    197 196   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/Threatcrowd.cpp
    skipped 11 lines
    12 12  /* limit all requests to no more than one request every ten seconds */
    13 13  Threatcrowd::Threatcrowd(ScanArgs args): AbstractOsintModule(args)
    14 14  {
    15  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     15 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    16 16   log.moduleName = OSINT_MODULE_THREATCROWD;
    17 17   
    18 18   if(args.output_Raw)
    skipped 11 lines
    30 30   
    31 31  void Threatcrowd::start(){
    32 32   QNetworkRequest request;
    33  - 
    34 33   QUrl url;
     34 + 
    35 35   if(args.output_Raw){
    36 36   switch (args.raw_query_id) {
    37 37   case EMAIL:
    skipped 14 lines
    52 52   }
    53 53   request.setUrl(url);
    54 54   manager->get(request);
    55  - activeRequests++;
    56 55   return;
    57 56   }
    58 57   
    skipped 2 lines
    61 60   request.setAttribute(QNetworkRequest::User, DOMAINS);
    62 61   request.setUrl(url);
    63 62   manager->get(request);
    64  - activeRequests++;
    65 63   return;
    66 64   }
    67 65   
    skipped 2 lines
    70 68   request.setAttribute(QNetworkRequest::User, EMAIL);
    71 69   request.setUrl(url);
    72 70   manager->get(request);
    73  - activeRequests++;
    74 71   return;
    75 72   }
    76 73   
    skipped 2 lines
    79 76   request.setAttribute(QNetworkRequest::User, IP);
    80 77   request.setUrl(url);
    81 78   manager->get(request);
    82  - activeRequests++;
    83 79   }
    84 80  }
    85 81   
    skipped 36 lines
    122 118   }
    123 119   }
    124 120   
    125  - end(reply);
     121 + this->end(reply);
    126 122  }
    127 123   
    128 124  void Threatcrowd::replyFinishedIp(QNetworkReply *reply){
    skipped 15 lines
    144 140   }
    145 141   }
    146 142   
    147  - end(reply);
     143 + this->end(reply);
    148 144  }
    149 145   
    150 146  void Threatcrowd::replyFinishedEmail(QNetworkReply *reply){
    skipped 16 lines
    167 163   }
    168 164   }
    169 165   
    170  - end(reply);
     166 + this->end(reply);
    171 167  }
    172 168   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/Threatminer.cpp
    skipped 16 lines
    17 17  /* email reverse-whois */
    18 18  Threatminer::Threatminer(ScanArgs args): AbstractOsintModule(args)
    19 19  {
    20  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     20 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    21 21   log.moduleName = OSINT_MODULE_THREATMINER;
    22 22   
    23 23   if(args.output_Raw)
    skipped 17 lines
    41 41   
    42 42  void Threatminer::start(){
    43 43   QNetworkRequest request;
    44  - 
    45 44   QUrl url;
     45 + 
    46 46   if(args.output_Raw){
    47 47   switch (args.raw_query_id){
    48 48   case DOMAIN_WHOIS:
    skipped 26 lines
    75 75   }
    76 76   request.setUrl(url);
    77 77   manager->get(request);
    78  - activeRequests++;
    79 78   return;
    80 79   }
    81 80   
    skipped 4 lines
    86 85   request.setAttribute(QNetworkRequest::User, DOMAIN_SUBDOMAINS);
    87 86   request.setUrl(url);
    88 87   manager->get(request);
    89  - activeRequests++;
     88 + return;
    90 89   }
    91 90   
    92 91   if(args.output_Email){
    skipped 1 lines
    94 93   request.setAttribute(QNetworkRequest::User, DOMAIN_WHOIS);
    95 94   request.setUrl(url);
    96 95   manager->get(request);
    97  - activeRequests++;
     96 + return;
    98 97   }
    99 98   
    100 99   if(args.output_IP){
    skipped 1 lines
    102 101   request.setAttribute(QNetworkRequest::User, DOMAIN_PASSIVE_DNS);
    103 102   request.setUrl(url);
    104 103   manager->get(request);
    105  - activeRequests++;
     104 + return;
    106 105   }
    107 106   
    108 107   if(args.output_URL){
    skipped 1 lines
    110 109   request.setAttribute(QNetworkRequest::User, DOMAIN_QUERY_URI);
    111 110   request.setUrl(url);
    112 111   manager->get(request);
    113  - activeRequests++;
     112 + return;
    114 113   }
    115 114   }
    116 115   
    skipped 4 lines
    121 120   request.setAttribute(QNetworkRequest::User, IP_WHOIS);
    122 121   request.setUrl(url);
    123 122   manager->get(request);
    124  - activeRequests++;
     123 + return;
    125 124   }
    126 125   
    127 126   if(args.output_Hostname){
    skipped 1 lines
    129 128   request.setAttribute(QNetworkRequest::User, IP_PASSIVE_DNS);
    130 129   request.setUrl(url);
    131 130   manager->get(request);
    132  - activeRequests++;
     131 + return;
    133 132   }
    134 133   
    135 134   if(args.output_SSL){
    skipped 1 lines
    137 136   request.setAttribute(QNetworkRequest::User, IP_SSL_CERTS);
    138 137   request.setUrl(url);
    139 138   manager->get(request);
    140  - activeRequests++;
     139 + return;
    141 140   }
    142 141   }
    143 142   
    skipped 4 lines
    148 147   request.setAttribute(QNetworkRequest::User, SSL_HOSTS);
    149 148   request.setUrl(url);
    150 149   manager->get(request);
    151  - activeRequests++;
     150 + return;
    152 151   }
    153 152   }
    154 153  }
    skipped 25 lines
    180 179   }
    181 180   }
    182 181   
    183  - end(reply);
     182 + this->end(reply);
    184 183  }
    185 184   
    186 185  void Threatminer::replyFinishedIp(QNetworkReply *reply){
    skipped 23 lines
    210 209   }
    211 210   }
    212 211   
    213  - end(reply);
     212 + this->end(reply);
    214 213  }
    215 214   
    216 215  void Threatminer::replyFinishedEmail(QNetworkReply *reply){
    skipped 19 lines
    236 235   }
    237 236   }
    238 237   
    239  - end(reply);
     238 + this->end(reply);
    240 239  }
    241 240   
    242 241  void Threatminer::replyFinishedAsn(QNetworkReply *reply){
    skipped 16 lines
    259 258   }
    260 259   }
    261 260   
    262  - end(reply);
     261 + this->end(reply);
    263 262  }
    264 263   
    265 264  void Threatminer::replyFinishedUrl(QNetworkReply *reply){
    skipped 15 lines
    281 280   }
    282 281   }
    283 282   
    284  - end(reply);
     283 + this->end(reply);
    285 284  }
    286 285   
    287 286  void Threatminer::replyFinishedSSL(QNetworkReply *reply){
    skipped 14 lines
    302 301   }
    303 302   }
    304 303   
    305  - end(reply);
     304 + this->end(reply);
    306 305  }
    307 306   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/Urlscan.cpp
    skipped 8 lines
    9 9   */
    10 10  Urlscan::Urlscan(ScanArgs args): AbstractOsintModule(args)
    11 11  {
    12  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     12 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    13 13   log.moduleName = OSINT_MODULE_URLSCAN;
    14 14   
    15 15   if(args.output_Raw)
    skipped 13 lines
    29 29   
    30 30  void Urlscan::start(){
    31 31   QNetworkRequest request;
    32  - 
    33 32   QUrl url;
     33 + 
    34 34   if(args.output_Raw){
    35 35   url.setUrl("https://urlscan.io/api/v1/search/?q=domain:"+target);
    36 36   request.setUrl(url);
    37 37   manager->get(request);
    38  - activeRequests++;
     38 + return;
    39 39   }
    40 40   
    41 41   if(args.input_Domain){
    42 42   url.setUrl("https://urlscan.io/api/v1/search/?q=domain:"+target);
    43 43   request.setUrl(url);
    44 44   manager->get(request);
    45  - activeRequests++;
     45 + return;
    46 46   }
    47 47  }
    48 48   
    skipped 11 lines
    60 60   emit resultSubdomain(page["domain"].toString());
    61 61   log.resultsCount++;
    62 62   }
    63  - end(reply);
     63 + this->end(reply);
    64 64  }
    65 65   
    66 66  void Urlscan::replyFinishedIp(QNetworkReply *reply){
    skipped 10 lines
    77 77   emit resultIP(page["ptr"].toString());
    78 78   log.resultsCount++;
    79 79   }
    80  - end(reply);
     80 + this->end(reply);
    81 81  }
    82 82   
    83 83  void Urlscan::replyFinishedUrl(QNetworkReply *reply){
    skipped 10 lines
    94 94   emit resultURL(page["url"].toString());
    95 95   log.resultsCount++;
    96 96   }
    97  - end(reply);
     97 + this->end(reply);
    98 98  }
    99 99   
    100 100  void Urlscan::replyFinishedAsn(QNetworkReply *reply){
    skipped 10 lines
    111 111   emit resultASN(page["asn"].toString(), "");
    112 112   log.resultsCount++;
    113 113   }
    114  - end(reply);
     114 + this->end(reply);
    115 115  }
    116 116   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/ViewDns.cpp
    skipped 23 lines
    24 24   */
    25 25  ViewDns::ViewDns(ScanArgs args): AbstractOsintModule(args)
    26 26  {
    27  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     27 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    28 28   log.moduleName = OSINT_MODULE_VIEWDNS;
    29 29   
    30 30   if(args.output_Raw)
    skipped 18 lines
    49 49   
    50 50  void ViewDns::start(){
    51 51   QNetworkRequest request;
    52  - 
    53 52   QUrl url;
     53 + 
    54 54   if(args.output_Raw){
    55 55   switch (args.raw_query_id) {
    56 56   case ABUSE_CONTACT_LOOKUP:
    skipped 41 lines
    98 98   }
    99 99   request.setUrl(url);
    100 100   manager->get(request);
    101  - activeRequests++;
    102 101   return;
    103 102   }
    104 103   
    skipped 3 lines
    108 107   request.setAttribute(QNetworkRequest::User, DNS_RECORD_LOOKUP);
    109 108   request.setUrl(url);
    110 109   manager->get(request);
    111  - activeRequests++;
     110 + return;
    112 111   }
    113 112   
    114 113   if(args.output_IP){
    skipped 1 lines
    116 115   request.setAttribute(QNetworkRequest::User, IP_HISTORY);
    117 116   request.setUrl(url);
    118 117   manager->get(request);
    119  - activeRequests++;
     118 + return;
    120 119   }
    121 120   
    122 121   if(args.output_Email){
    skipped 1 lines
    124 123   request.setAttribute(QNetworkRequest::User, ABUSE_CONTACT_LOOKUP);
    125 124   request.setUrl(url);
    126 125   manager->get(request);
    127  - activeRequests++;
     126 + return;
    128 127   }
    129 128   }
    130 129   
    skipped 3 lines
    134 133   request.setAttribute(QNetworkRequest::User, REVERSE_IP_LOOKUP);
    135 134   request.setUrl(url);
    136 135   manager->get(request);
    137  - activeRequests++;
     136 + return;
    138 137   }
    139 138   }
    140 139   
    skipped 3 lines
    144 143   request.setAttribute(QNetworkRequest::User, REVERSE_WHOIS_LOOKUP);
    145 144   request.setUrl(url);
    146 145   manager->get(request);
    147  - activeRequests++;
     146 + return;
    148 147   }
    149 148   }
    150 149   
    skipped 6 lines
    157 156   request.setAttribute(QNetworkRequest::User, REVERSE_MX_LOOKUP);
    158 157   request.setUrl(url);
    159 158   manager->get(request);
    160  - activeRequests++;
     159 + return;
    161 160   }
    162 161   
    163 162   if(args.output_EnumNS){
    skipped 1 lines
    165 164   request.setAttribute(QNetworkRequest::User, REVERSE_NS_LOOKUP);
    166 165   request.setUrl(url);
    167 166   manager->get(request);
    168  - activeRequests++;
     167 + return;
    169 168   }
    170 169  }
    171 170   
    skipped 60 lines
    232 231   }
    233 232   }
    234 233   
    235  - end(reply);
     234 + this->end(reply);
    236 235  }
    237 236   
    238 237  void ViewDns::replyFinishedEmail(QNetworkReply *reply){
    skipped 12 lines
    251 250   log.resultsCount++;
    252 251   }
    253 252   
    254  - end(reply);
     253 + this->end(reply);
    255 254  }
    256 255   
    257 256  void ViewDns::replyFinishedIp(QNetworkReply *reply){
    skipped 33 lines
    291 290   }
    292 291   }
    293 292   
    294  - end(reply);
     293 + this->end(reply);
    295 294  }
    296 295   
    297 296  ///
    skipped 18 lines
    316 315   
    317 316   emit resultEnumNS(ns);
    318 317   
    319  - end(reply);
     318 + this->end(reply);
    320 319  }
    321 320   
    322 321  void ViewDns::replyFinishedEnumMX(QNetworkReply *reply){
    skipped 14 lines
    337 336   
    338 337   emit resultEnumMX(mx);
    339 338   
    340  - end(reply);
     339 + this->end(reply);
    341 340  }
    342 341   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/Wappalyzer.cpp
    skipped 6 lines
    7 7   
    8 8   
    9 9  /*
    10  - * can query multiple urls at a time.
    11  - * for now only query with default options.
     10 + * can query multiple urls at a time
     11 + * for now only raw results with default options
    12 12   */
    13 13  Wappalyzer::Wappalyzer(ScanArgs args): AbstractOsintModule(args)
    14 14  {
    15  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     15 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    16 16   log.moduleName = OSINT_MODULE_WAPPALYZER;
    17 17   
    18 18   if(args.output_Raw)
    skipped 9 lines
    28 28  void Wappalyzer::start(){
    29 29   QNetworkRequest request;
    30 30   request.setRawHeader("x-api-key", m_key.toUtf8());
    31  - 
    32 31   QUrl url;
     32 + 
    33 33   if(args.output_Raw){
    34 34   switch (args.raw_query_id) {
    35 35   case BALANCE:
    skipped 6 lines
    42 42   url.setUrl("https://api.wappalyzer.com/v2/lookup/?urls="+target);
    43 43   break;
    44 44   }
    45  - 
    46 45   request.setUrl(url);
    47 46   manager->get(request);
    48  - activeRequests++;
     47 + return;
    49 48   }
    50 49  }
    51 50   
    skipped 1 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/WebResolver.cpp
    skipped 17 lines
    18 18   
    19 19  WebResolver::WebResolver(ScanArgs args): AbstractOsintModule(args)
    20 20  {
    21  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     21 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    22 22   log.moduleName = OSINT_MODULE_WEBRESOLVER;
    23 23   
    24 24   if(args.output_Raw)
    skipped 14 lines
    39 39   
    40 40  void WebResolver::start(){
    41 41   QNetworkRequest request;
    42  - 
    43 42   QUrl url;
     43 + 
    44 44   if(args.output_Raw){
    45 45   switch (args.raw_query_id) {
    46 46   case GEOIP:
    skipped 29 lines
    76 76   }
    77 77   request.setUrl(url);
    78 78   manager->get(request);
    79  - activeRequests++;
    80 79   return;
    81 80   }
    82 81   
    skipped 2 lines
    85 84   request.setAttribute(QNetworkRequest::User, DNSRESOLVER);
    86 85   request.setUrl(url);
    87 86   manager->get(request);
    88  - activeRequests++;
     87 + return;
    89 88   }
    90 89  }
    91 90   
    skipped 21 lines
    113 112   }
    114 113   }
    115 114   
    116  - end(reply);
     115 + this->end(reply);
    117 116  }
    118 117   
    119 118  void WebResolver::replyFinishedIp(QNetworkReply *reply){
    skipped 15 lines
    135 134   }
    136 135   }
    137 136   
    138  - end(reply);
     137 + this->end(reply);
    139 138  }
    140 139   
    141 140  void WebResolver::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 34 lines
    176 175   }
    177 176   }
    178 177   
    179  - end(reply);
     178 + this->end(reply);
    180 179  }
    181 180   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/Whatcms.cpp
    skipped 7 lines
    8 8  #define TECHNOLOGY_LIST 4
    9 9  #define WP_THEME_DETECTION 5
    10 10   
    11  - 
     11 +/*
     12 + * for onw only raw results
     13 + */
    12 14  Whatcms::Whatcms(ScanArgs args): AbstractOsintModule(args)
    13 15  {
    14  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     16 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    15 17   log.moduleName = OSINT_MODULE_WHATCMS;
    16 18   
    17 19   if(args.output_Raw)
    skipped 8 lines
    26 28   
    27 29  void Whatcms::start(){
    28 30   QNetworkRequest request;
    29  - 
    30 31   QUrl url;
     32 + 
    31 33   if(args.output_Raw){
    32 34   switch (args.raw_query_id) {
    33 35   case TECHNOLOGY_DETECTION:
    skipped 17 lines
    51 53   }
    52 54   request.setUrl(url);
    53 55   manager->get(request);
    54  - activeRequests++;
    55 56   }
    56 57  }
    57 58   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/WhoisXmlApi.cpp
    skipped 26 lines
    27 27   */
    28 28  WhoisXmlApi::WhoisXmlApi(ScanArgs args): AbstractOsintModule(args)
    29 29  {
    30  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     30 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    31 31   log.moduleName = OSINT_MODULE_WHOISXMLAPI;
    32 32   
    33 33   if(args.output_Raw)
    skipped 23 lines
    57 57  void WhoisXmlApi::start(){
    58 58   QNetworkRequest request;
    59 59   request.setRawHeader("Content-Type", "application/json");
    60  - 
    61 60   QUrl url;
     61 + 
    62 62   if(args.output_Raw){
    63 63   switch (args.raw_query_id){
    64 64   case WHOIS:
    skipped 55 lines
    120 120   }
    121 121   request.setUrl(url);
    122 122   manager->get(request);
    123  - activeRequests++;
    124 123   return;
    125 124   }
    126 125   
    skipped 3 lines
    130 129   request.setAttribute(QNetworkRequest::User, SUBDOMAIN_LOOKUP);
    131 130   request.setUrl(url);
    132 131   manager->get(request);
    133  - activeRequests++;
     132 + return;
    134 133   }
    135 134   
    136 135   if(args.output_Email){
    skipped 1 lines
    138 137   request.setAttribute(QNetworkRequest::User, WEBSITE_CONTACTS);
    139 138   request.setUrl(url);
    140 139   manager->get(request);
    141  - activeRequests++;
     140 + return;
    142 141   
    143 142   /*
    144 143   url.setUrl("https://whois-history.whoisxmlapi.com/api/v1?apiKey="+m_key+"&domainName="+target);
    skipped 11 lines
    156 155   request.setAttribute(QNetworkRequest::User, REVERSE_IP);
    157 156   request.setUrl(url);
    158 157   manager->get(request);
    159  - activeRequests++;
     158 + return;
    160 159   }
    161 160   
    162 161   if(args.output_ASN || args.output_CIDR || args.output_Email){
    skipped 1 lines
    164 163   request.setAttribute(QNetworkRequest::User, IP_NETBLOCKS_IP);
    165 164   request.setUrl(url);
    166 165   manager->get(request);
    167  - activeRequests++;
     166 + return;
    168 167   }
    169 168   }
    170 169   
    skipped 3 lines
    174 173   request.setAttribute(QNetworkRequest::User, IP_NETBLOCKS_ASN);
    175 174   request.setUrl(url);
    176 175   manager->get(request);
    177  - activeRequests++;
     176 + return;
    178 177   }
    179 178   }
    180 179   
    skipped 5 lines
    186 185   request.setAttribute(QNetworkRequest::User, IP_NETBLOCKS_ASN);
    187 186   request.setUrl(url);
    188 187   manager->get(request);
    189  - activeRequests++;
     188 + return;
    190 189   }
    191 190   }
    192 191   
    skipped 6 lines
    199 198   request.setAttribute(QNetworkRequest::User, REVERSE_MX);
    200 199   request.setUrl(url);
    201 200   manager->get(request);
    202  - activeRequests++;
     201 + return;
    203 202   }
    204 203   
    205 204   if(args.output_EnumNS){
    skipped 1 lines
    207 206   request.setAttribute(QNetworkRequest::User, REVERSE_NS);
    208 207   request.setUrl(url);
    209 208   manager->get(request);
    210  - activeRequests++;
     209 + return;
    211 210   }
    212 211  }
    213 212   
    skipped 59 lines
    273 272   }
    274 273   }
    275 274   
    276  - end(reply);
     275 + this->end(reply);
    277 276  }
    278 277   
    279 278  void WhoisXmlApi::replyFinishedAsn(QNetworkReply *reply){
    skipped 20 lines
    300 299   }
    301 300   }
    302 301   
    303  - end(reply);
     302 + this->end(reply);
    304 303  }
    305 304   
    306 305  void WhoisXmlApi::replyFinishedCidr(QNetworkReply *reply){
    skipped 19 lines
    326 325   }
    327 326   }
    328 327   
    329  - end(reply);
     328 + this->end(reply);
    330 329  }
    331 330   
    332 331  void WhoisXmlApi::replyFinishedEmail(QNetworkReply *reply){
    skipped 67 lines
    400 399   */
    401 400   }
    402 401   
    403  - end(reply);
     402 + this->end(reply);
    404 403  }
    405 404   
    406 405  ///
    skipped 17 lines
    424 423   
    425 424   emit resultEnumNS(ns);
    426 425   
    427  - end(reply);
     426 + this->end(reply);
    428 427  }
    429 428   
    430 429  void WhoisXmlApi::replyFinishedEnumMX(QNetworkReply *reply){
    skipped 13 lines
    444 443   
    445 444   emit resultEnumMX(mx);
    446 445   
    447  - end(reply);
     446 + this->end(reply);
    448 447  }
    449 448   
  • ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/Whoxy.cpp
    skipped 15 lines
    16 16   */
    17 17  Whoxy::Whoxy(ScanArgs args): AbstractOsintModule(args)
    18 18  {
    19  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     19 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    20 20   log.moduleName = OSINT_MODULE_WHOXY;
    21 21   
    22 22   if(args.output_Raw)
    skipped 8 lines
    31 31   
    32 32  void Whoxy::start(){
    33 33   QNetworkRequest request;
    34  - 
    35 34   QUrl url;
     35 + 
    36 36   if(args.output_Raw){
    37 37   switch (args.raw_query_id) {
    38 38   case ACCOUNT_BALANCE_CHECK:
    skipped 20 lines
    59 59   }
    60 60   request.setUrl(url);
    61 61   manager->get(request);
    62  - activeRequests++;
    63 62   }
    64 63  }
    65 64   
  • ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/ZETAlytics.cpp
    skipped 6 lines
    7 7   
    8 8  ZETAlytics::ZETAlytics(ScanArgs args): AbstractOsintModule(args)
    9 9  {
    10  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     10 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    11 11   log.moduleName = OSINT_MODULE_ZETALYTICS;
    12 12   
    13 13   if(args.output_Raw)
    skipped 9 lines
    23 23  void ZETAlytics::start(){
    24 24   QNetworkRequest request;
    25 25   request.setRawHeader("Content-Type", "application/json");
    26  - 
    27 26   QUrl url;
     27 + 
    28 28   if(args.output_Raw){
    29 29   url.setUrl("https://zonecruncher.com/api/v1/subdomains?q="+target+"&token="+m_key);
    30 30   request.setUrl(url);
    31 31   manager->get(request);
    32  - activeRequests++;
    33 32   return;
    34 33   }
    35 34  }
    skipped 1 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/api/ZoomEye.cpp
    skipped 15 lines
    16 16   */
    17 17  ZoomEye::ZoomEye(ScanArgs args): AbstractOsintModule(args)
    18 18  {
    19  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     19 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    20 20   log.moduleName = OSINT_MODULE_ZOOMEYE;
    21 21   
    22 22   if(args.output_Raw)
    skipped 18 lines
    41 41   QNetworkRequest request;
    42 42   request.setRawHeader("Content-Type", "application/json");
    43 43   request.setRawHeader("API-KEY", m_key.toUtf8());
    44  - 
    45 44   QUrl url;
     45 + 
    46 46   if(args.output_Raw){
    47 47   switch(args.raw_query_id){
    48 48   case HOST_ASN:
    skipped 14 lines
    63 63   }
    64 64   request.setUrl(url);
    65 65   manager->get(request);
    66  - activeRequests++;
    67 66   return;
    68 67   }
    69 68   
    skipped 2 lines
    72 71   request.setAttribute(QNetworkRequest::User, HOST_HOSTNAME);
    73 72   request.setUrl(url);
    74 73   manager->get(request);
    75  - activeRequests++;
     74 + return;
    76 75   }
    77 76   
    78 77   if(args.input_IP){
    skipped 1 lines
    80 79   request.setAttribute(QNetworkRequest::User, HOST_IP);
    81 80   request.setUrl(url);
    82 81   manager->get(request);
    83  - activeRequests++;
     82 + return;
    84 83   }
    85 84   
    86 85   if(args.input_ASN){
    skipped 1 lines
    88 87   request.setAttribute(QNetworkRequest::User, HOST_ASN);
    89 88   request.setUrl(url);
    90 89   manager->get(request);
    91  - activeRequests++;
     90 + return;
    92 91   }
    93 92   
    94 93   if(args.input_CIDR){
    skipped 1 lines
    96 95   request.setAttribute(QNetworkRequest::User, HOST_CIDR);
    97 96   request.setUrl(url);
    98 97   manager->get(request);
    99  - activeRequests++;
     98 + return;
    100 99   }
    101 100  }
    102 101   
    skipped 18 lines
    121 120   }
    122 121   }
    123 122   
    124  - end(reply);
     123 + this->end(reply);
    125 124  }
    126 125   
    127 126  void ZoomEye::replyFinishedIp(QNetworkReply *reply){
    skipped 17 lines
    145 144   }
    146 145   }
    147 146   
    148  - end(reply);
     147 + this->end(reply);
    149 148  }
    150 149   
    151 150  void ZoomEye::replyFinishedAsn(QNetworkReply *reply){
    skipped 19 lines
    171 170   }
    172 171   }
    173 172   
    174  - end(reply);
     173 + this->end(reply);
    175 174  }
    176 175   
    177 176  void ZoomEye::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 15 lines
    193 192   }
    194 193   }
    195 194   
    196  - end(reply);
     195 + this->end(reply);
    197 196  }
    198 197   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/archive/ArchiveIt.cpp
    skipped 4 lines
    5 5   
    6 6  ArchiveIt::ArchiveIt(ScanArgs args): AbstractOsintModule(args)
    7 7  {
    8  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     8 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    9 9   log.moduleName = OSINT_MODULE_ARCHIVEIT;
    10 10   
    11 11   if(args.output_Raw)
    skipped 9 lines
    21 21   
    22 22  void ArchiveIt::start(){
    23 23   QNetworkRequest request;
    24  - 
    25 24   QUrl url;
     25 + 
    26 26   if(args.output_Raw){
    27 27   switch (args.raw_query_id) {
    28 28   case URL:
    skipped 2 lines
    31 31   }
    32 32   request.setUrl(url);
    33 33   manager->get(request);
    34  - activeRequests++;
    35 34   return;
    36 35   }
    37 36   
    skipped 2 lines
    40 39   url.setUrl("https://wayback.archive-it.org/all/timemap/cdx?matchType=domain&fl=original&collapse=urlkey&url="+target);
    41 40   request.setUrl(url);
    42 41   manager->get(request);
    43  - activeRequests++;
     42 + return;
    44 43   }
    45 44   }
    46 45   
    skipped 2 lines
    49 48   url.setUrl("https://wayback.archive-it.org/all/timemap/cdx?matchType=domain&fl=original&collapse=urlkey&url="+target);
    50 49   request.setUrl(url);
    51 50   manager->get(request);
    52  - activeRequests++;
    53 51   }
    54 52   }
    55 53  }
    skipped 12 lines
    68 66   log.resultsCount++;
    69 67   }
    70 68   
    71  - end(reply);
     69 + this->end(reply);
    72 70  }
    73 71   
    74 72  void ArchiveIt::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 19 lines
    94 92   log.resultsCount++;
    95 93   }
    96 94   
    97  - end(reply);
     95 + this->end(reply);
    98 96  }
    99 97   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/archive/ArchiveToday.cpp
    skipped 6 lines
    7 7   */
    8 8  ArchiveToday::ArchiveToday(ScanArgs args): AbstractOsintModule(args)
    9 9  {
    10  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     10 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    11 11   log.moduleName = OSINT_MODULE_ARCHIVETODAY;
    12 12   
    13 13   if(args.output_URL)
    skipped 10 lines
    24 24   request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
    25 25   request.setRawHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36");
    26 26   request.setRawHeader("Connection", "close");
    27  - 
    28 27   QUrl url;
    29 28   
    30 29   if(args.input_Domain){
    skipped 1 lines
    32 31   url.setUrl("https://archive.md/*."+target);
    33 32   request.setUrl(url);
    34 33   manager->get(request);
    35  - activeRequests++;
     34 + return;
    36 35   }
    37 36   if(args.output_URL){
    38 37   url.setUrl("https://archive.md/*."+target+"/*");
    39 38   request.setUrl(url);
    40 39   manager->get(request);
    41  - activeRequests++;
     40 + return;
    42 41   }
    43 42   }
    44 43   
    skipped 2 lines
    47 46   url.setUrl("https://archive.md/"+target);
    48 47   request.setUrl(url);
    49 48   manager->get(request);
    50  - activeRequests++;
     49 + return;
    51 50   }
    52 51   
    53 52   if(args.output_URL){
    54 53   url.setUrl("https://archive.md/"+target+"*");
    55 54   request.setUrl(url);
    56 55   manager->get(request);
    57  - activeRequests++;
     56 + return;
    58 57   }
    59 58   }
    60 59  }
    skipped 39 lines
    100 99   /* finilizing... */
    101 100   gumbo_destroy_output(&kGumboDefaultOptions, output);
    102 101   
    103  - end(reply);
     102 + this->end(reply);
    104 103  }
    105 104   
    106 105  void ArchiveToday::replyFinishedUrl(QNetworkReply *reply){
    skipped 37 lines
    144 143   /* finilizing... */
    145 144   gumbo_destroy_output(&kGumboDefaultOptions, output);
    146 145   
    147  - end(reply);
     146 + this->end(reply);
    148 147  }
    149 148   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/archive/Arquivo.cpp
    skipped 12 lines
    13 13   */
    14 14  Arquivo::Arquivo(ScanArgs args): AbstractOsintModule(args)
    15 15  {
    16  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     16 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    17 17   log.moduleName = OSINT_MODULE_ARQUIVO;
    18 18   
    19 19   if(args.output_Raw)
    skipped 9 lines
    29 29   
    30 30  void Arquivo::start(){
    31 31   QNetworkRequest request;
    32  - 
    33 32   QUrl url;
     33 + 
    34 34   if(args.output_Raw){
    35 35   switch (args.raw_query_id) {
    36 36   case CDX_SERVER:
    skipped 5 lines
    42 42   }
    43 43   request.setUrl(url);
    44 44   manager->get(request);
    45  - activeRequests++;
    46 45   return;
    47 46   }
    48 47   
    skipped 2 lines
    51 50   url.setUrl("https://arquivo.pt/textsearch?q="+target+"/*&prettyPrint=false&maxItems=100");
    52 51   request.setUrl(url);
    53 52   manager->get(request);
    54  - activeRequests++;
     53 + return;
    55 54   }
    56 55   if(args.output_Hostname){
    57 56   url.setUrl("https://arquivo.pt/textsearch?q=*."+target+"&prettyPrint=false&maxItems=100");
    58 57   request.setUrl(url);
    59 58   manager->get(request);
    60  - activeRequests++;
     59 + return;
    61 60   }
    62 61   }
    63 62   
    skipped 2 lines
    66 65   url.setUrl("https://arquivo.pt/textsearch?q="+target+"&prettyPrint=false&maxItems=100");
    67 66   request.setUrl(url);
    68 67   manager->get(request);
    69  - activeRequests++;
     68 + return;
    70 69   }
    71 70   if(args.output_URL){
    72 71   url.setUrl("https://arquivo.pt/textsearch?q="+target+"*&prettyPrint=false&maxItems=100");
    73 72   request.setUrl(url);
    74 73   manager->get(request);
    75  - activeRequests++;
     74 + return;
    76 75   }
    77 76   }
    78 77   
    skipped 2 lines
    81 80   url.setUrl("https://arquivo.pt/textsearch?q="+target+"&prettyPrint=false&maxItems=100");
    82 81   request.setUrl(url);
    83 82   manager->get(request);
    84  - activeRequests++;
     83 + return;
    85 84   }
    86 85   }
    87 86  }
    skipped 13 lines
    101 100   log.resultsCount++;
    102 101   }
    103 102   
    104  - end(reply);
     103 + this->end(reply);
    105 104  }
    106 105   
    107 106  void Arquivo::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 20 lines
    128 127   log.resultsCount++;
    129 128   }
    130 129   
    131  - end(reply);
     130 + this->end(reply);
    132 131  }
    133 132   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/archive/CommonCrawl.cpp
    skipped 7 lines
    8 8   */
    9 9  CommonCrawl::CommonCrawl(ScanArgs args): AbstractOsintModule(args)
    10 10  {
    11  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     11 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    12 12   log.moduleName = OSINT_MODULE_COMMONCRAWL;
    13 13  }
    14 14  CommonCrawl::~CommonCrawl(){
    skipped 9 lines
    24 24   QUrl url("https://index.commoncrawl.org/collinfo.json");
    25 25   request.setUrl(url);
    26 26   manager->get(request);
    27  - activeRequests++;
    28 27  }
    29 28   
    30 29  void CommonCrawl::replyFinishedIndex(QNetworkReply *reply){
    skipped 28 lines
    59 58   url.setUrl(urlList.at(0)+"?url=*."+target+"&output=json&fl=url");
    60 59   request.setUrl(url);
    61 60   manager->get(request);
    62  - activeRequests++;
    63 61   }
    64 62   if(args.output_URL){
    65 63   url.setUrl(urlList.at(0)+"?url="+target+"/*&output=json&fl=url");
    66 64   request.setUrl(url);
    67 65   manager->get(request);
    68  - activeRequests++;
    69 66   }
    70  - 
    71 67   }
    72 68   
    73 69   if(args.input_Domain){
    skipped 1 lines
    75 71   url.setUrl(urlList.at(0)+"?url="+target+"&output=json&fl=url");
    76 72   request.setUrl(url);
    77 73   manager->get(request);
    78  - activeRequests++;
    79 74   }
    80 75   if(args.output_URL){
    81 76   url.setUrl(urlList.at(0)+"?url="+target+"/*&output=json&fl=url");
    82 77   request.setUrl(url);
    83 78   manager->get(request);
    84  - activeRequests++;
    85 79   }
    86  - 
    87 80   }
    88 81   
    89  - end(reply);
     82 + this->end(reply);
    90 83  }
    91 84   
    92 85  void CommonCrawl::replyFinishedUrl(QNetworkReply *reply){
    skipped 13 lines
    106 99   log.resultsCount++;
    107 100   }
    108 101   
    109  - end(reply);
     102 + this->end(reply);
    110 103  }
    111 104   
    112 105  void CommonCrawl::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 23 lines
    136 129   
    137 130   }
    138 131   
    139  - end(reply);
     132 + this->end(reply);
    140 133  }
    141 134   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/archive/UKWebArchive.cpp
    skipped 11 lines
    12 12   */
    13 13  UKWebArchive::UKWebArchive(ScanArgs args): AbstractOsintModule(args)
    14 14  {
    15  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     15 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    16 16   log.moduleName = OSINT_MODULE_UKWEBARCHIVE;
    17 17   
    18 18   if(args.output_Raw)
    skipped 9 lines
    28 28   
    29 29  void UKWebArchive::start(){
    30 30   QNetworkRequest request;
    31  - 
    32 31   QUrl url;
     32 + 
    33 33   if(args.output_Raw){
    34 34   switch (args.raw_query_id) {
    35 35   case URL:
    skipped 2 lines
    38 38   }
    39 39   request.setUrl(url);
    40 40   manager->get(request);
    41  - activeRequests++;
    42 41   return;
    43 42   }
    44 43   
    skipped 2 lines
    47 46   url.setUrl("https://www.webarchive.org.uk/wayback/archive/cdx?matchType=domain&output=json&url="+target);
    48 47   request.setUrl(url);
    49 48   manager->get(request);
    50  - activeRequests++;
     49 + return;
    51 50   }
    52 51   }
    53 52   
    skipped 2 lines
    56 55   url.setUrl("https://www.webarchive.org.uk/wayback/archive/cdx?matchType=domain&output=json&url="+target);
    57 56   request.setUrl(url);
    58 57   manager->get(request);
    59  - activeRequests++;
     58 + return;
    60 59   }
    61 60   }
    62 61  }
    skipped 20 lines
    83 82   log.resultsCount++;
    84 83   }
    85 84   
    86  - end(reply);
     85 + this->end(reply);
    87 86  }
    88 87   
    89 88  void UKWebArchive::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 26 lines
    116 115   log.resultsCount++;
    117 116   }
    118 117   
    119  - end(reply);
     118 + this->end(reply);
    120 119  }
    121 120   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/archive/Waybackmachine.cpp
    skipped 14 lines
    15 15   
    16 16  Waybackmachine::Waybackmachine(ScanArgs args): AbstractOsintModule(args)
    17 17  {
    18  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     18 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    19 19   log.moduleName = OSINT_MODULE_WAYBACKMACHINE;
    20 20   
    21 21   if(args.output_Raw)
    skipped 9 lines
    31 31   
    32 32  void Waybackmachine::start(){
    33 33   QNetworkRequest request;
     34 + QUrl url;
    34 35   
    35  - QUrl url;
    36 36   if(args.output_Raw){
    37 37   switch (args.raw_query_id) {
    38 38   case MATCHTYPE_DOMAIN:
    skipped 11 lines
    50 50   }
    51 51   request.setUrl(url);
    52 52   manager->get(request);
    53  - activeRequests++;
    54 53   return;
    55 54   }
    56 55   
    skipped 2 lines
    59 58   url.setUrl("https://web.archive.org/cdx/search/cdx?matchType=prefix&fl=original&output=json&collapse=urlkey&url="+target);
    60 59   request.setUrl(url);
    61 60   manager->get(request);
    62  - activeRequests++;
     61 + return;
    63 62   }
    64 63   if(args.output_Hostname){
    65 64   url.setUrl("https://web.archive.org/cdx/search/cdx?matchType=domain&fl=original&output=json&collapse=urlkey&url="+target);
    66 65   request.setUrl(url);
    67 66   manager->get(request);
    68  - activeRequests++;
     67 + return;
    69 68   }
    70 69   }
    71 70   
    skipped 2 lines
    74 73   url.setUrl("https://web.archive.org/cdx/search/cdx?matchType=prefix&fl=original&output=json&collapse=urlkey&url="+target);
    75 74   request.setUrl(url);
    76 75   manager->get(request);
    77  - activeRequests++;
     76 + return;
    78 77   }
    79 78   if(args.output_Hostname){
    80 79   url.setUrl("https://web.archive.org/cdx/search/cdx?matchType=domain&fl=original&output=json&collapse=urlkey&url="+target);
    81 80   request.setUrl(url);
    82 81   manager->get(request);
    83  - activeRequests++;
     82 + return;
    84 83   }
    85 84   }
    86 85  }
    skipped 15 lines
    102 101   log.resultsCount++;
    103 102   }
    104 103   
    105  - end(reply);
     104 + this->end(reply);
    106 105  }
    107 106   
    108 107  void Waybackmachine::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 26 lines
    135 134   log.resultsCount++;
    136 135   }
    137 136   
    138  - end(reply);
     137 + this->end(reply);
    139 138  }
    140 139   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/cert/Censys.cpp
    skipped 11 lines
    12 12   
    13 13  Censys::Censys(ScanArgs args): AbstractOsintModule(args)
    14 14  {
    15  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     15 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    16 16   log.moduleName = OSINT_MODULE_CENSYS;
    17 17   
    18 18   if(args.output_Raw)
    skipped 18 lines
    37 37   QByteArray credentialsArray = credentialsString.toLocal8Bit().toBase64();
    38 38   QString headerData = "Basic " + credentialsArray;
    39 39   request.setRawHeader("Authorization", headerData.toLocal8Bit());
    40  - 
    41 40   QUrl url;
     41 + 
    42 42   if(args.output_Raw){
    43 43   switch (args.raw_query_id) {
    44 44   case ACCOUNT:
    skipped 11 lines
    56 56   }
    57 57   request.setUrl(url);
    58 58   manager->get(request);
    59  - activeRequests++;
    60 59   return;
    61 60   }
    62 61   
    skipped 2 lines
    65 64   url.setUrl("https://censys.io/api/v1/view/websites/"+target);
    66 65   request.setUrl(url);
    67 66   manager->get(request);
    68  - activeRequests++;
    69 67   return;
    70 68   }
    71 69   }
    skipped 3 lines
    75 73   url.setUrl("https://censys.io/api/v1/view/ipv4/"+target);
    76 74   request.setUrl(url);
    77 75   manager->get(request);
    78  - activeRequests++;
    79 76   return;
    80 77   }
    81 78   }
    skipped 3 lines
    85 82   url.setUrl("https://censys.io/api/v1/view/certificates/"+target);
    86 83   request.setUrl(url);
    87 84   manager->get(request);
    88  - activeRequests++;
    89 85   }
    90 86   }
    91 87  }
    skipped 9 lines
    101 97   
    102 98   /* not yet implemented */
    103 99   
    104  - end(reply);
     100 + this->end(reply);
    105 101  }
    106 102   
    107 103  void Censys::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 7 lines
    115 111   
    116 112   /* not yet implemented */
    117 113   
    118  - end(reply);
     114 + this->end(reply);
    119 115  }
    120 116   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/cert/CensysFree.cpp
    skipped 5 lines
    6 6   */
    7 7  CensysFree::CensysFree(ScanArgs args): AbstractOsintModule(args)
    8 8  {
    9  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     9 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    10 10   log.moduleName = OSINT_MODULE_CENSYS;
    11 11   
    12 12   if(args.output_Hostname)
    skipped 13 lines
    26 26   url.setUrl("https://censys.io/domain/"+target+"/table");
    27 27   request.setUrl(url);
    28 28   manager->get(request);
    29  - activeRequests++;
     29 + return;
    30 30   }
    31 31   
    32 32   if(args.input_IP){
    33 33   url.setUrl("https://censys.io/ipv4/"+target+"/table");
    34 34   request.setUrl(url);
    35 35   manager->get(request);
    36  - activeRequests++;
     36 + return;
    37 37   }
    38 38   
    39 39   if(args.input_SSL){
    40 40   url.setUrl("https://censys.io/certificates/"+target+"/table");
    41 41   request.setUrl(url);
    42 42   manager->get(request);
    43  - activeRequests++;
    44 43   }
    45 44  }
    46 45   
    skipped 76 lines
    123 122   
    124 123   gumbo_destroy_output(&kGumboDefaultOptions, output);
    125 124   
    126  - end(reply);
     125 + this->end(reply);
    127 126  }
    128 127   
    129 128  void CensysFree::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 86 lines
    216 215   
    217 216   gumbo_destroy_output(&kGumboDefaultOptions, output);
    218 217   
    219  - end(reply);
     218 + this->end(reply);
    220 219  }
    221 220   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/cert/Certspotter.cpp
    skipped 8 lines
    9 9   
    10 10  Certspotter::Certspotter(ScanArgs args) : AbstractOsintModule(args)
    11 11  {
    12  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     12 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    13 13   log.moduleName = OSINT_MODULE_CERTSPOTTER;
    14 14   
    15 15   if(args.output_Raw)
    skipped 13 lines
    29 29  void Certspotter::start(){
    30 30   QNetworkRequest request;
    31 31   request.setRawHeader("Authorization", "Bearer "+m_key.toUtf8());
    32  - 
    33 32   QUrl url;
     33 + 
    34 34   if(args.output_Raw){
    35 35   switch (args.raw_query_id) {
    36 36   case ISSUEANCES:
    skipped 2 lines
    39 39   }
    40 40   request.setUrl(url);
    41 41   manager->get(request);
    42  - activeRequests++;
    43 42   return;
    44 43   }
    45 44   
    skipped 2 lines
    48 47   url.setUrl("https://api.certspotter.com/v1/issuances?domain="+target+"&include_subdomains=true&expand=dns_names&match_wildcards=true");
    49 48   request.setUrl(url);
    50 49   manager->get(request);
    51  - activeRequests++;
     50 + return;
    52 51   }
    53 52   if(args.output_SSL){
    54 53   url.setUrl("https://api.certspotter.com/v1/issuances?domain="+target+"&include_subdomains=true&expand=cert");
    55 54   request.setUrl(url);
    56 55   manager->get(request);
    57  - activeRequests++;
     56 + return;
    58 57   }
    59 58   }
    60 59  }
    skipped 15 lines
    76 75   }
    77 76   }
    78 77   
    79  - end(reply);
     78 + this->end(reply);
    80 79  }
    81 80   
    82 81  void Certspotter::replyFinishedSSL(QNetworkReply *reply){
    skipped 13 lines
    96 95   log.resultsCount++;
    97 96   }
    98 97   
    99  - end(reply);
     98 + this->end(reply);
    100 99  }
    101 100   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/cert/CertspotterFree.cpp
    skipped 9 lines
    10 10   */
    11 11  CertspotterFree::CertspotterFree(ScanArgs args) : AbstractOsintModule(args)
    12 12  {
    13  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     13 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    14 14   log.moduleName = OSINT_MODULE_CERTSPOTTER;
    15 15   
    16 16   if(args.output_Raw)
    skipped 9 lines
    26 26   
    27 27  void CertspotterFree::start(){
    28 28   QNetworkRequest request;
    29  - 
    30 29   QUrl url;
     30 + 
    31 31   if(args.output_Raw){
    32 32   switch (args.raw_query_id) {
    33 33   case ISSUEANCES:
    skipped 2 lines
    36 36   }
    37 37   request.setUrl(url);
    38 38   manager->get(request);
    39  - activeRequests++;
    40 39   return;
    41 40   }
    42 41   
    skipped 2 lines
    45 44   url.setUrl("https://api.certspotter.com/v1/issuances?domain="+target+"&include_subdomains=true&expand=dns_names&match_wildcards=true");
    46 45   request.setUrl(url);
    47 46   manager->get(request);
    48  - activeRequests++;
     47 + return;
    49 48   }
    50 49   if(args.output_SSL){
    51 50   url.setUrl("https://api.certspotter.com/v1/issuances?domain="+target+"&include_subdomains=true&expand=cert");
    52 51   request.setUrl(url);
    53 52   manager->get(request);
    54  - activeRequests++;
     53 + return;
    55 54   }
    56 55   }
    57 56  }
    skipped 15 lines
    73 72   }
    74 73   }
    75 74   
    76  - end(reply);
     75 + this->end(reply);
    77 76  }
    78 77   
    79 78  void CertspotterFree::replyFinishedSSL(QNetworkReply *reply){
    skipped 13 lines
    93 92   log.resultsCount++;
    94 93   }
    95 94   
    96  - end(reply);
     95 + this->end(reply);
    97 96  }
    98 97   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/cert/Crtsh.cpp
    skipped 5 lines
    6 6   */
    7 7  Crtsh::Crtsh(ScanArgs args): AbstractOsintModule(args)
    8 8  {
    9  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     9 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    10 10   log.moduleName = OSINT_MODULE_CRTSH;
    11 11   
    12 12   if(args.output_SSL)
    skipped 12 lines
    25 25   QUrl url("https://crt.sh/?q="+target);
    26 26   request.setUrl(url);
    27 27   manager->get(request);
    28  - activeRequests++;
    29 28  }
    30 29   
    31 30  void Crtsh::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 55 lines
    87 86   }
    88 87   }
    89 88   
    90  - end(reply);
     89 + this->end(reply);
    91 90  }
    92 91   
    93 92  void Crtsh::replyFinishedSSL(QNetworkReply *reply){
    skipped 9 lines
    103 102   
    104 103   }
    105 104   
    106  - end(reply);
     105 + this->end(reply);
    107 106  }
    108 107   
    109 108  void Crtsh::replyFinishedEnumSSL(QNetworkReply *reply){
    skipped 7 lines
    117 116   else
    118 117   emit resultRawSSL(reply->readAll()); // get and send the raw certificate for analysis
    119 118   
    120  - end(reply);
     119 + this->end(reply);
    121 120  }
    122 121   
    123 122  void Crtsh::m_getCertId(QNetworkReply *reply){
    skipped 31 lines
    155 154   QUrl url("https://crt.sh/?d="+certId);
    156 155   request.setUrl(url);
    157 156   manager->get(request);
    158  - activeRequests++;
    159 157   m_queryToGetId = false;
    160 158   break;
    161 159   }
    skipped 12 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/cert/GoogleCert.cpp
    skipped 10 lines
    11 11   */
    12 12  GoogleCert::GoogleCert(ScanArgs args): AbstractOsintModule(args)
    13 13  {
    14  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     14 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    15 15   log.moduleName = OSINT_MODULE_GOOGLECERT;
    16 16   
    17 17   if(args.output_Raw)
    skipped 14 lines
    32 32   request.setRawHeader("Connection", "close");
    33 33   request.setRawHeader("Referer", "https://transparencyreport.google.com/https/certificates");
    34 34   manager->get(request);
    35  - activeRequests++;
    36 35  }
    37 36   
    38 37  void GoogleCert::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 21 lines
    60 59   QJsonArray tokenArray = subArray.toArray()[3].toArray();
    61 60   m_getToken(tokenArray);
    62 61   
    63  - end(reply);
     62 + this->end(reply);
    64 63  }
    65 64   
    66 65  void GoogleCert::replyFinishedSSL(QNetworkReply *reply){
    skipped 22 lines
    89 88   QJsonArray tokenArray = subArray.toArray()[3].toArray();
    90 89   m_getToken(tokenArray);
    91 90   
    92  - end(reply);
     91 + this->end(reply);
    93 92  }
    94 93   
    95 94  void GoogleCert::m_getToken(QJsonArray tokenArray){
    skipped 8 lines
    104 103   request.setUrl(url);
    105 104   request.setRawHeader("Connection", "close");
    106 105   manager->get(request);
    107  - activeRequests++;
    108 106   }
    109 107  }
    110 108   
  • ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/email/Debounce.cpp
    skipped 8 lines
    9 9   
    10 10  Debounce::Debounce(ScanArgs args): AbstractOsintModule(args)
    11 11  {
    12  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     12 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    13 13   log.moduleName = OSINT_MODULE_DEBOUNCE;
    14 14   
    15 15   if(args.output_Raw)
    skipped 8 lines
    24 24   
    25 25  void Debounce::start(){
    26 26   QNetworkRequest request;
     27 + QUrl url;
    27 28   
    28  - QUrl url;
    29 29   if(args.output_Raw){
    30 30   switch(args.raw_query_id){
    31 31   case ACCOUNT_BALANCE:
    skipped 11 lines
    43 43   }
    44 44   request.setUrl(url);
    45 45   manager->get(request);
    46  - activeRequests++;
    47 46   }
    48 47  }
    49 48   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/email/EmailCrawlr.cpp
    skipped 13 lines
    14 14   */
    15 15  EmailCrawlr::EmailCrawlr(ScanArgs args): AbstractOsintModule(args)
    16 16  {
    17  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     17 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    18 18   log.moduleName = OSINT_MODULE_EMAILCRAWLR;
    19 19   
    20 20   if(args.output_Raw)
    skipped 11 lines
    32 32  void EmailCrawlr::start(){
    33 33   QNetworkRequest request;
    34 34   request.setRawHeader("x-api-key", m_key.toUtf8());
    35  - 
    36 35   QUrl url;
     36 + 
    37 37   if(args.output_Raw){
    38 38   switch(args.raw_query_id){
    39 39   case ACCOUNT:
    skipped 11 lines
    51 51   }
    52 52   request.setUrl(url);
    53 53   manager->get(request);
    54  - activeRequests++;
    55 54   return;
    56 55   }
    57 56   
    skipped 2 lines
    60 59   url.setUrl("https://api.emailcrawlr.com/v2/domain?domain="+target);
    61 60   request.setUrl(url);
    62 61   manager->get(request);
    63  - activeRequests++;
    64 62   }
    65 63   }
    66 64  }
    skipped 13 lines
    80 78   log.resultsCount++;
    81 79   }
    82 80   
    83  - end(reply);
     81 + this->end(reply);
    84 82  }
    85 83   
  • ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/email/EmailFormat.cpp
    skipped 7 lines
    8 8   
    9 9  EmailFormat::EmailFormat(ScanArgs args): AbstractOsintModule(args)
    10 10  {
    11  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     11 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    12 12   log.moduleName = OSINT_MODULE_EMAILFORMAT;
    13 13   
    14 14   if(args.output_Raw)
    skipped 10 lines
    25 25   QNetworkRequest request;
    26 26   request.setRawHeader("Content-Type", "application/json");
    27 27   request.setRawHeader("Authorization", m_key.toUtf8());
     28 + QUrl url;
    28 29   
    29  - QUrl url;
    30 30   if(args.output_Raw){
    31 31   switch(args.raw_query_id){
    32 32   case FORMATS:
    skipped 8 lines
    41 41   }
    42 42   request.setUrl(url);
    43 43   manager->get(request);
    44  - activeRequests++;
    45 44   }
    46 45  }
    47 46   
  • ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/email/EmailRep.cpp
    skipped 5 lines
    6 6   
    7 7  EmailRep::EmailRep(ScanArgs args): AbstractOsintModule(args)
    8 8  {
    9  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     9 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    10 10   log.moduleName = OSINT_MODULE_EMAILREP;
    11 11   
    12 12   if(args.output_Raw)
    skipped 10 lines
    23 23   QNetworkRequest request;
    24 24   request.setRawHeader("Key", m_key.toUtf8());
    25 25   // request.setRawHeader("User-Agent", userAget);
    26  - 
    27 26   QUrl url;
     27 + 
    28 28   if(args.output_Raw){
    29 29   switch(args.raw_query_id){
    30 30   case EMAIL_QUERY:
    skipped 2 lines
    33 33   }
    34 34   request.setUrl(url);
    35 35   manager->get(request);
    36  - activeRequests++;
    37 36   }
    38 37  }
    39 38   
    skipped 1 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/email/Hunter.cpp
    skipped 12 lines
    13 13   
    14 14  Hunter::Hunter(ScanArgs args): AbstractOsintModule(args)
    15 15  {
    16  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     16 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    17 17   log.moduleName = OSINT_MODULE_HUNTER;
    18 18   
    19 19   if(args.output_Raw)
    skipped 10 lines
    30 30   
    31 31  void Hunter::start(){
    32 32   QNetworkRequest request;
    33  - 
    34 33   QUrl url;
     34 + 
    35 35   if(args.output_Raw){
    36 36   switch(args.raw_query_id){
    37 37   case ACCOUNT_INFO:
    skipped 17 lines
    55 55   }
    56 56   request.setUrl(url);
    57 57   manager->get(request);
    58  - activeRequests++;
     58 + return;
    59 59   }
     60 + 
    60 61   if(args.input_Domain){
    61 62   if(args.output_Email){
    62 63   url.setUrl("https://api.hunter.io/v2/domain-search?domain="+target+"&api_key="+m_key);
    63 64   request.setAttribute(QNetworkRequest::User, DOMAIN_SEARCH);
    64 65   request.setUrl(url);
    65 66   manager->get(request);
    66  - activeRequests++;
    67 67   }
    68 68   }
    69 69  }
    skipped 16 lines
    86 86   }
    87 87   }
    88 88   
    89  - end(reply);
     89 + this->end(reply);
    90 90  }
    91 91   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/email/Snov.cpp
    skipped 14 lines
    15 15   */
    16 16  Snov::Snov(ScanArgs args): AbstractOsintModule(args)
    17 17  {
    18  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     18 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    19 19   log.moduleName = OSINT_MODULE_SNOV;
    20 20   
    21 21   if(args.output_Raw)
    skipped 10 lines
    32 32   
    33 33  void Snov::start(){
    34 34   QNetworkRequest request;
    35  - 
    36 35   QUrl url;
     36 + 
    37 37   if(args.output_Raw){
    38 38   switch(args.raw_query_id){
    39 39   case CHECK_USER_BALANCE:
    skipped 37 lines
    77 77   request.setUrl(url);
    78 78   manager->post(request, data);
    79 79   }
    80  - activeRequests++;
     80 + return;
    81 81   }
    82 82   
    83 83   if(args.input_Domain){
    skipped 2 lines
    86 86   request.setAttribute(QNetworkRequest::User, DOMAIN_SEARCH);
    87 87   request.setUrl(url);
    88 88   manager->get(request);
    89  - activeRequests++;
    90 89   }
    91 90   }
    92 91  }
    skipped 15 lines
    108 107   }
    109 108   }
    110 109   
    111  - end(reply);
     110 + this->end(reply);
    112 111  }
    113 112   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/email/TruMail.cpp
    skipped 4 lines
    5 5   
    6 6  TruMail::TruMail(ScanArgs args): AbstractOsintModule(args)
    7 7  {
    8  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     8 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    9 9   log.moduleName = OSINT_MODULE_TRUMAIL;
    10 10   
    11 11   if(args.output_Raw)
    skipped 7 lines
    19 19   
    20 20  void TruMail::start(){
    21 21   QNetworkRequest request;
    22  - 
    23 22   QUrl url;
     23 + 
    24 24   if(args.output_Raw){
    25 25   switch(args.raw_query_id){
    26 26   case EMAIL:
    skipped 2 lines
    29 29   }
    30 30   request.setUrl(url);
    31 31   manager->get(request);
    32  - activeRequests++;
     32 + return;
    33 33   }
    34 34   
    35 35   if(args.output_EnumEmail){
    36 36   url.setUrl("https://api.trumail.io/v2/lookups/json?email="+target);
    37 37   request.setUrl(url);
    38 38   manager->get(request);
    39  - activeRequests++;
    40 39   }
    41 40  }
    42 41   
    skipped 18 lines
    61 60   emit resultEnumEmail(email);
    62 61   }
    63 62   
    64  - end(reply);
     63 + this->end(reply);
    65 64  }
    66 65   
  • ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/iana/Afrinic.cpp
    skipped 12 lines
    13 13   */
    14 14  Afrinic::Afrinic(ScanArgs args): AbstractOsintModule(args)
    15 15  {
    16  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     16 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    17 17   log.moduleName = OSINT_MODULE_AFRINIC;
    18 18   
    19 19   if(args.output_Raw)
    skipped 5 lines
    25 25   
    26 26  void Afrinic::start(){
    27 27   QNetworkRequest request;
    28  - 
    29 28   QUrl url;
     29 + 
    30 30   if(args.output_Raw){
    31 31   switch (args.raw_query_id) {
    32 32   case AS_NUMBERS:
    skipped 11 lines
    44 44   }
    45 45   request.setUrl(url);
    46 46   manager->get(request);
    47  - activeRequests++;
    48 47   return;
    49 48   }
    50 49  }
    skipped 1 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/iana/Apnic.cpp
    skipped 9 lines
    10 10   */
    11 11  Apnic::Apnic(ScanArgs args): AbstractOsintModule(args)
    12 12  {
    13  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     13 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    14 14   log.moduleName = OSINT_MODULE_APNIC;
    15 15   
    16 16   if(args.output_Raw)
    skipped 5 lines
    22 22   
    23 23  void Apnic::start(){
    24 24   QNetworkRequest request;
     25 + QUrl url;
    25 26   
    26  - QUrl url;
    27 27   if(args.output_Raw){
    28 28   switch (args.raw_query_id) {
    29 29   case IP:
    skipped 2 lines
    32 32   }
    33 33   request.setUrl(url);
    34 34   manager->get(request);
    35  - activeRequests++;
    36 35   return;
    37 36   }
    38 37  }
    skipped 1 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/iana/Arin.cpp
    skipped 29 lines
    30 30   */
    31 31  Arin::Arin(ScanArgs args): AbstractOsintModule(args)
    32 32  {
    33  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     33 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    34 34   log.moduleName = OSINT_MODULE_ARIN;
    35 35   
    36 36   if(args.output_Raw)
    skipped 6 lines
    43 43  void Arin::start(){
    44 44   QNetworkRequest request;
    45 45   request.setRawHeader("Accept", "application/json");
    46  - 
    47 46   QUrl url;
     47 + 
    48 48   if(args.output_Raw){
    49 49   switch (args.raw_query_id) {
    50 50   case REGISTRY_IP:
    skipped 9 lines
    60 60   url.setUrl("http://whois.arin.net/rest/net/"+target);
    61 61   break;
    62 62   case WHOIS_ORG:
    63  - url.setUrl("http://whois.arin.net/rest/asn/"+target);
     63 + url.setUrl("http://whois.arin.net/rest/org/"+target);
    64 64   break;
    65 65   case WHOIS_POC:
    66 66   url.setUrl("http://whois.arin.net/rest/poc/"+target);
    skipped 43 lines
    110 110   }
    111 111   request.setUrl(url);
    112 112   manager->get(request);
    113  - activeRequests++;
    114 113   return;
    115 114   }
    116 115  }
    skipped 1 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/iana/Ripe.cpp
    skipped 50 lines
    51 51   */
    52 52  Ripe::Ripe(ScanArgs args): AbstractOsintModule(args)
    53 53  {
    54  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     54 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    55 55   log.moduleName = OSINT_MODULE_RIPE;
    56 56   
    57 57   if(args.output_Raw)
    skipped 9 lines
    67 67   
    68 68  void Ripe::start(){
    69 69   QNetworkRequest request;
    70  - 
    71 70   QUrl url;
     71 + 
    72 72   if(args.output_Raw){
    73 73   switch (args.raw_query_id) {
    74 74   case ABUSE_CONTACT_FINDER:
    skipped 107 lines
    182 182   }
    183 183   request.setUrl(url);
    184 184   manager->get(request);
    185  - activeRequests++;
    186 185   return;
    187 186   }
    188 187   
    189 188   if(args.input_IP){
    190  - if(args.output_ASN){
     189 + if(args.output_ASN || args.output_CIDR){
    191 190   url.setUrl("https://stat.ripe.net/data/network-info/data.json?resource="+target);
    192 191   request.setAttribute(QNetworkRequest::User, NETWORK_INFO);
    193 192   request.setUrl(url);
    194 193   manager->get(request);
    195  - activeRequests++;
     194 + return;
    196 195   }
    197 196   }
    198 197   
    skipped 3 lines
    202 201   request.setAttribute(QNetworkRequest::User, RIS_PREFIXES);
    203 202   request.setUrl(url);
    204 203   manager->get(request);
    205  - activeRequests++;
     204 + return;
     205 + }
     206 + }
     207 + 
     208 + if(args.input_CIDR){
     209 + if(args.output_CIDR || args.output_ASN){
     210 + url.setUrl("https://stat.ripe.net/data/prefix-overview/data.json?resource="+target+"&list_prefixes=true");
     211 + request.setAttribute(QNetworkRequest::User, PREFIX_OVERVIEW);
     212 + request.setUrl(url);
     213 + manager->get(request);
     214 + return;
    206 215   }
    207 216   }
    208 217  }
    skipped 12 lines
    221 230   case NETWORK_INFO:
    222 231   foreach(const QJsonValue &value, asns){
    223 232   emit resultASN(value.toString(), "");
     233 + log.resultsCount++;
     234 + }
     235 + break;
     236 + 
     237 + case PREFIX_OVERVIEW:
     238 + foreach(const QJsonValue &value, asns){
     239 + QJsonObject asn = value.toObject();
     240 + emit resultASN(QString::number(asn["asn"].toInt()), asn["holder"].toString());
    224 241   log.resultsCount++;
    225 242   }
    226 243   }
    227 244   
    228  - end(reply);
     245 + this->end(reply);
    229 246  }
    230 247   
    231 248  void Ripe::replyFinishedCidr(QNetworkReply *reply){
    skipped 7 lines
    239 256   switch (reply->property(REQUEST_TYPE).toInt())
    240 257   {
    241 258   case RIS_PREFIXES:
     259 + {
    242 260   QJsonObject prefixes = document.object()["data"].toObject()["prefixes"].toObject();
    243 261   
    244 262   /* for ipv4 */
    skipped 9 lines
    254 272   }
    255 273   /* for ipv6 */
    256 274   QJsonArray v6_originating = prefixes["v6"].toObject()["originating"].toArray();
    257  - foreach(const QJsonValue &value, v4_originating){
     275 + foreach(const QJsonValue &value, v6_originating){
    258 276   emit resultCIDR(value.toString());
    259 277   log.resultsCount++;
    260 278   }
    261 279   QJsonArray v6_transiting = prefixes["v6"].toObject()["transiting"].toArray();
    262  - foreach(const QJsonValue &value, v4_transiting){
     280 + foreach(const QJsonValue &value, v6_transiting){
    263 281   emit resultCIDR(value.toString());
    264 282   log.resultsCount++;
    265 283   }
    266 284   }
     285 + break;
    267 286   
    268  - end(reply);
     287 + case PREFIX_OVERVIEW:
     288 + {
     289 + QJsonArray prefixes = document.object()["data"].toObject()["related_prefixes"].toArray();
     290 + foreach(const QJsonValue &prefix, prefixes){
     291 + emit resultCIDR(prefix.toString());
     292 + log.resultsCount++;
     293 + }
     294 + }
     295 + break;
     296 + 
     297 + case NETWORK_INFO:
     298 + {
     299 + QString prefix = document.object()["data"].toObject()["prefix"].toString();
     300 + emit resultCIDR(prefix);
     301 + log.resultsCount++;
     302 + }
     303 + break;
     304 + }
     305 + 
     306 + this->end(reply);
    269 307  }
    270 308   
  • ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/iana/Ripe.h
    skipped 98 lines
    99 99   QMap<int, QList<int>> input_output = {{IN_IP,
    100 100   {OUT_ASN}},
    101 101   {IN_ASN,
    102  - {OUT_CIDR}}};
     102 + {OUT_CIDR}},
     103 + {IN_CIDR,
     104 + {OUT_CIDR, OUT_ASN}}};
    103 105  };
    104 106  }
    105 107   
    skipped 14 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/ip/IpApi.cpp
    skipped 12 lines
    13 13   */
    14 14  IpApi::IpApi(ScanArgs args): AbstractOsintModule(args)
    15 15  {
    16  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     16 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    17 17   log.moduleName = OSINT_MODULE_IPAPI;
    18 18   
    19 19   if(args.output_Raw)
    skipped 10 lines
    30 30   
    31 31  void IpApi::start(){
    32 32   QNetworkRequest request;
    33  - 
    34 33   QUrl url;
     34 + 
    35 35   if(args.output_Raw){
    36 36   switch (args.raw_query_id) {
    37 37   case STANDARD_LOOKUP:
    skipped 8 lines
    46 46   }
    47 47   request.setUrl(url);
    48 48   manager->get(request);
    49  - activeRequests++;
    50 49   return;
    51 50   }
    52 51   
    skipped 1 lines
    54 53   url.setUrl("http://api.ipapi.com/api/"+target+"?access_key="+m_key);
    55 54   request.setUrl(url);
    56 55   manager->get(request);
    57  - activeRequests++;
    58 56   }
    59 57  }
    60 58   
    skipped 62 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/ip/IpData.cpp
    skipped 11 lines
    12 12   */
    13 13  IpData::IpData(ScanArgs args): AbstractOsintModule(args)
    14 14  {
    15  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     15 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    16 16   log.moduleName = OSINT_MODULE_IPDATA;
    17 17   
    18 18   if(args.output_Raw)
    skipped 8 lines
    27 27   
    28 28  void IpData::start(){
    29 29   QNetworkRequest request;
    30  - 
    31 30   QUrl url;
     31 + 
    32 32   if(args.output_Raw){
    33 33   switch (args.raw_query_id) {
    34 34   case ASN_DATA:
    skipped 14 lines
    49 49   }
    50 50   request.setUrl(url);
    51 51   manager->get(request);
    52  - activeRequests++;
    53 52   return;
    54 53   }
    55 54  }
    skipped 1 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/ip/IpGeoLocation.cpp
    skipped 8 lines
    9 9   */
    10 10  IpGeoLocation::IpGeoLocation(ScanArgs args): AbstractOsintModule(args)
    11 11  {
    12  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     12 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    13 13   log.moduleName = OSINT_MODULE_IPGEOLOCATION;
    14 14   
    15 15   if(args.output_Raw)
    skipped 8 lines
    24 24   
    25 25  void IpGeoLocation::start(){
    26 26   QNetworkRequest request;
     27 + QUrl url;
    27 28   
    28  - QUrl url;
    29 29   if(args.output_Raw){
    30 30   switch (args.raw_query_id) {
    31 31   case IP_GEOLOCATION:
    skipped 5 lines
    37 37   }
    38 38   request.setUrl(url);
    39 39   manager->get(request);
    40  - activeRequests++;
    41 40   return;
    42 41   }
    43 42  }
    skipped 1 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/ip/IpInfo.cpp
    skipped 13 lines
    14 14   */
    15 15  IpInfo::IpInfo(ScanArgs args): AbstractOsintModule(args)
    16 16  {
    17  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     17 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    18 18   log.moduleName = OSINT_MODULE_IPINFO;
    19 19   
    20 20   if(args.output_Raw)
    skipped 13 lines
    34 34  void IpInfo::start(){
    35 35   QNetworkRequest request;
    36 36   request.setRawHeader("Accept", "application/json");
    37  - 
    38 37   QUrl url;
     38 + 
    39 39   if(args.output_Raw){
    40 40   switch (args.raw_query_id) {
    41 41   case IP:
    skipped 11 lines
    53 53   }
    54 54   request.setUrl(url);
    55 55   manager->get(request);
    56  - activeRequests++;
    57 56   return;
    58 57   }
    59 58   
    skipped 1 lines
    61 60   url.setUrl("https://ipinfo.io/"+target+"/json?token="+m_key);
    62 61   request.setUrl(url);
    63 62   manager->get(request);
    64  - activeRequests++;
    65 63   return;
    66 64   }
    67 65   
    skipped 3 lines
    71 69   request.setAttribute(QNetworkRequest::User, HOSTED_DOMAINS);
    72 70   request.setUrl(url);
    73 71   manager->get(request);
    74  - activeRequests++;
     72 + return;
    75 73   }
    76 74   }
    77 75  }
    skipped 4 lines
    82 80   return;
    83 81   }
    84 82   
    85  - QUERY_TYPE = reply->property(REQUEST_TYPE).toInt();
    86 83   QJsonDocument document = QJsonDocument::fromJson(reply->readAll());
    87 84   QJsonArray domains = document.object()["domains"].toArray();
    88 85   
    89  - if(QUERY_TYPE == HOSTED_DOMAINS){
     86 + switch (reply->property(REQUEST_TYPE).toInt())
     87 + {
     88 + case HOSTED_DOMAINS:
    90 89   foreach(const QJsonValue &value, domains){
    91 90   emit resultSubdomain(value.toString());
    92 91   log.resultsCount++;
    93 92   }
    94 93   }
    95 94   
    96  - end(reply);
     95 + this->end(reply);
    97 96  }
    98 97   
    99 98  void IpInfo::replyFinishedEnumIP(QNetworkReply *reply){
    skipped 74 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/ip/IpRegistry.cpp
    skipped 9 lines
    10 10   */
    11 11  IpRegistry::IpRegistry(ScanArgs args): AbstractOsintModule(args)
    12 12  {
    13  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     13 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    14 14   log.moduleName = OSINT_MODULE_IPREGISTRY;
    15 15   
    16 16   if(args.output_Raw)
    skipped 8 lines
    25 25   
    26 26  void IpRegistry::start(){
    27 27   QNetworkRequest request;
     28 + QUrl url;
    28 29   
    29  - QUrl url;
    30 30   if(args.output_Raw){
    31 31   switch (args.raw_query_id) {
    32 32   case SINGLE_IP_LOOKUP:
    skipped 8 lines
    41 41   }
    42 42   request.setUrl(url);
    43 43   manager->get(request);
    44  - activeRequests++;
    45 44   return;
    46 45   }
    47 46  }
    skipped 1 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/ip/IpStack.cpp
    skipped 9 lines
    10 10   */
    11 11  IpStack::IpStack(ScanArgs args): AbstractOsintModule(args)
    12 12  {
    13  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     13 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    14 14   log.moduleName = OSINT_MODULE_IPSTACK;
    15 15   
    16 16   if(args.output_Raw)
    skipped 8 lines
    25 25   
    26 26  void IpStack::start(){
    27 27   QNetworkRequest request;
     28 + QUrl url;
    28 29   
    29  - QUrl url;
    30 30   if(args.output_Raw){
    31 31   switch (args.raw_query_id) {
    32 32   case STANDARD_IP_LOOKUP:
    skipped 8 lines
    41 41   }
    42 42   request.setUrl(url);
    43 43   manager->get(request);
    44  - activeRequests++;
    45 44   return;
    46 45   }
    47 46  }
    skipped 1 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/ip/Ipfy.cpp
    skipped 8 lines
    9 9   
    10 10  Ipfy::Ipfy(ScanArgs args): AbstractOsintModule(args)
    11 11  {
    12  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     12 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    13 13   log.moduleName = OSINT_MODULE_IPFY;
    14 14   
    15 15   if(args.output_Raw)
    skipped 16 lines
    32 32   
    33 33  void Ipfy::start(){
    34 34   QNetworkRequest request;
     35 + QUrl url;
    35 36   
    36  - QUrl url;
    37 37   if(args.output_Raw){
    38 38   switch (args.raw_query_id) {
    39 39   case PUBLIC_IPV4:
    skipped 14 lines
    54 54   }
    55 55   request.setUrl(url);
    56 56   manager->get(request);
    57  - activeRequests++;
    58 57   return;
    59 58   }
    60 59   
    skipped 2 lines
    63 62   url.setUrl("https://geo.ipify.org/api/v2/country?apiKey="+m_key+"&ipAddress="+target);
    64 63   request.setUrl(url);
    65 64   manager->get(request);
    66  - activeRequests++;
     65 + return;
    67 66   }
    68 67   }
    69 68   
    skipped 2 lines
    72 71   url.setUrl("https://geo.ipify.org/api/v2/country?apiKey="+m_key+"&domain="+target);
    73 72   request.setUrl(url);
    74 73   manager->get(request);
    75  - activeRequests++;
     74 + return;
    76 75   }
    77 76   }
    78 77  }
    skipped 12 lines
    91 90   log.resultsCount++;
    92 91   }
    93 92   
    94  - end(reply);
     93 + this->end(reply);
    95 94  }
    96 95   
    97 96  void Ipfy::replyFinishedAsn(QNetworkReply *reply){
    skipped 8 lines
    106 105   emit resultASN(QString::number(as["asn"].toInt()), as["name"].toString());
    107 106   log.resultsCount++;
    108 107   
    109  - end(reply);
     108 + this->end(reply);
    110 109  }
    111 110   
    112 111  void Ipfy::replyFinishedIp(QNetworkReply *reply){
    skipped 8 lines
    121 120   emit resultIP(mainObj["ip"].toString());
    122 121   log.resultsCount++;
    123 122   
    124  - end(reply);
     123 + this->end(reply);
    125 124  }
    126 125   
    127 126  void Ipfy::replyFinishedCidr(QNetworkReply *reply){
    skipped 8 lines
    136 135   emit resultCIDR(as["route"].toString());
    137 136   log.resultsCount++;
    138 137   
    139  - end(reply);
     138 + this->end(reply);
    140 139  }
    141 140   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/mal/AbuseIPDB.cpp
    skipped 10 lines
    11 11   */
    12 12  AbuseIPDB::AbuseIPDB(ScanArgs args): AbstractOsintModule(args)
    13 13  {
    14  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     14 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    15 15   log.moduleName = OSINT_MODULE_ABUSEIPDB;
    16 16   
    17 17   if(args.output_Raw)
    skipped 10 lines
    28 28   QNetworkRequest request;
    29 29   request.setRawHeader("Key", m_key.toUtf8());
    30 30   request.setRawHeader("Accept", "application/json");
    31  - 
    32 31   QUrl url;
     32 + 
    33 33   if(args.output_Raw){
    34 34   switch (args.raw_query_id) {
    35 35   case BLACKLIST_ENDPOINT:
    skipped 10 lines
    46 46   }
    47 47   request.setUrl(url);
    48 48   manager->get(request);
    49  - activeRequests++;
     49 + return;
    50 50   }
    51 51  }
    52 52   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/mal/BotScout.cpp
    skipped 10 lines
    11 11   */
    12 12  BotScout::BotScout(ScanArgs args): AbstractOsintModule(args)
    13 13  {
    14  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     14 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    15 15   log.moduleName = OSINT_MODULE_BOTSCOUT;
    16 16   
    17 17   if(args.output_Raw)
    skipped 5 lines
    23 23   
    24 24  void BotScout::start(){
    25 25   QNetworkRequest request;
    26  - 
    27 26   QUrl url;
     27 + 
    28 28   if(args.output_Raw){
    29 29   switch (args.raw_query_id) {
    30 30   case ALL:
    skipped 11 lines
    42 42   }
    43 43   request.setUrl(url);
    44 44   manager->get(request);
    45  - activeRequests++;
     45 + return;
    46 46   }
    47 47  }
    48 48   
    skipped 1 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/mal/FraudGuard.cpp
    skipped 14 lines
    15 15   */
    16 16  FraudGuard::FraudGuard(ScanArgs args): AbstractOsintModule(args)
    17 17  {
    18  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     18 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    19 19   log.moduleName = OSINT_MODULE_FRAUDGUARD;
    20 20   
    21 21   if(args.output_Raw)
    skipped 14 lines
    36 36   QByteArray credentialsArray = credentialsString.toLocal8Bit().toBase64();
    37 37   QString headerData = "Basic " + credentialsArray;
    38 38   request.setRawHeader("Authorization", headerData.toLocal8Bit());
    39  - 
    40 39   QUrl url;
     40 + 
    41 41   if(args.output_Raw){
    42 42   switch (args.raw_query_id) {
    43 43   case GET_CUSTOM_GEOBLOCK:
    skipped 20 lines
    64 64   }
    65 65   request.setUrl(url);
    66 66   manager->get(request);
    67  - activeRequests++;
     67 + return;
    68 68   }
    69 69  }
    70 70   
  • ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/mal/HybridAnalysis.cpp
    skipped 5 lines
    6 6   
    7 7  HybridAnalysis::HybridAnalysis(ScanArgs args): AbstractOsintModule(args)
    8 8  {
    9  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     9 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    10 10   log.moduleName = OSINT_MODULE_HYBRIDANALYSIS;
    11 11   
    12 12   if(args.output_Raw)
    skipped 12 lines
    25 25   request.setRawHeader("accept", "application/json");
    26 26   request.setRawHeader("user-agent", "Falcon Sandbox");
    27 27   request.setRawHeader("Content-Type", "application/x-www-form-urlencoded");
    28  - 
    29 28   QUrl url;
     29 + 
    30 30   if(args.output_Raw){
    31 31   switch (args.raw_query_id) {
    32 32   case URL_QUICKSCAN:
    skipped 3 lines
    36 36   data.append("url="+target);
    37 37   request.setUrl(url);
    38 38   manager->post(request, data);
    39  - activeRequests++;
    40 39   break;
    41 40   }
    42 41   }
    skipped 2 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/mal/IpQualityScore.cpp
    skipped 11 lines
    12 12   */
    13 13  IpQualityScore::IpQualityScore(ScanArgs args): AbstractOsintModule(args)
    14 14  {
    15  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     15 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    16 16   log.moduleName = OSINT_MODULE_IPQUALITYSCORE;
    17 17   
    18 18   if(args.output_Raw)
    skipped 10 lines
    29 29   QNetworkRequest request;
    30 30   request.setRawHeader("Key", m_key.toUtf8());
    31 31   request.setRawHeader("Accept", "application/json");
    32  - 
    33 32   QUrl url;
     33 + 
    34 34   if(args.output_Raw){
    35 35   switch (args.raw_query_id) {
    36 36   case EMAIL_VALIDATION:
    skipped 11 lines
    48 48   }
    49 49   request.setUrl(url);
    50 50   manager->get(request);
    51  - activeRequests++;
     51 + return;
    52 52   }
    53 53  }
    54 54   
    skipped 14 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/mal/LeakLookup.cpp
    skipped 10 lines
    11 11   */
    12 12  LeakLookup::LeakLookup(ScanArgs args): AbstractOsintModule(args)
    13 13  {
    14  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     14 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    15 15   log.moduleName = OSINT_MODULE_LEAKLOOKUP;
    16 16   
    17 17   if(args.output_Raw)
    skipped 8 lines
    26 26   
    27 27  void LeakLookup::start(){
    28 28   QNetworkRequest request;
    29  - 
    30 29   QUrl url;
     30 + 
    31 31   if(args.output_Raw){
    32 32   switch (args.raw_query_id) {
    33 33   case DOMAINS:
    skipped 11 lines
    45 45   }
    46 46   request.setUrl(url);
    47 47   manager->get(request);
    48  - activeRequests++;
     48 + return;
    49 49   }
    50 50  }
    51 51   
  • ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/mal/VirusTotal.cpp
    1 1  #include "VirusTotal.h"
    2 2  #include "src/utils/Config.h"
     3 + 
    3 4  #include <QJsonDocument>
    4 5  #include <QJsonObject>
    5 6  #include <QJsonArray>
    skipped 17 lines
    23 24  #define V2_DOMAIN 16
    24 25  #define V2_IPADDRESS 17
    25 26   
    26  -/* has a well detailed whois --> historical whois */
    27  -/* also nice resolution from ip -> subdomains */
    28  -/* has api v2 and v3 */
     27 +/*
     28 + * has api v2 and v3
     29 + */
    29 30  VirusTotal::VirusTotal(ScanArgs args): AbstractOsintModule(args)
    30 31  {
    31  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     32 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    32 33   log.moduleName = OSINT_MODULE_VIRUSTOTAL;
    33 34   
    34 35   if(args.output_Raw)
    skipped 16 lines
    51 52   
    52 53  void VirusTotal::start(){
    53 54   QNetworkRequest request;
    54  - 
    55 55   QUrl url;
     56 + 
    56 57   if(args.output_Raw){
    57 58   switch (args.raw_query_id) {
    58 59   case DOMAIN_HISTORICAL_WHOIS:
    skipped 48 lines
    107 108   url.setUrl("https://www.virustotal.com/vtapi/v2/domain/report?apikey="+m_key+"&domain="+target);
    108 109   request.setUrl(url);
    109 110   manager->get(request);
    110  - activeRequests++;
    111 111   return;
    112 112   case V2_IPADDRESS:
    113 113   url.setUrl("https://www.virustotal.com/vtapi/v2/ip-address/report?apikey="+m_key+"&ip="+target);
    114 114   request.setUrl(url);
    115 115   manager->get(request);
    116  - activeRequests++;
    117 116   return;
    118 117   }
    119 118   request.setRawHeader("x-apikey", m_key.toUtf8());
    120 119   request.setUrl(url);
    121 120   manager->get(request);
    122  - activeRequests++;
    123 121   return;
    124 122   }
    125 123   
    skipped 3 lines
    129 127   request.setAttribute(QNetworkRequest::User, V2_DOMAIN);
    130 128   request.setUrl(url);
    131 129   manager->get(request);
    132  - activeRequests++;
     130 + return;
    133 131   }
    134  - //...
    135  - request.setRawHeader("x-apikey", m_key.toUtf8());
    136  - //...
    137  - if(args.output_Hostname || args.output_SSL){
     132 + if(args.output_SSL){
     133 + request.setRawHeader("x-apikey", m_key.toUtf8());
    138 134   url.setUrl("https://www.virustotal.com/api/v3/domains/"+target+"/historical_ssl_certificates");
    139 135   request.setAttribute(QNetworkRequest::User, DOMAIN_HISTORICAL_SSL_CERTS);
    140 136   request.setUrl(url);
    141 137   manager->get(request);
    142  - activeRequests++;
    143  - }
    144  - 
    145  - if(args.output_IP){
    146  - url.setUrl("https://www.virustotal.com/api/v3/domains/"+target+"/resolutions");
    147  - request.setAttribute(QNetworkRequest::User, DOMAIN_RESOLUTIONS);
    148  - request.setUrl(url);
    149  - manager->get(request);
    150  - activeRequests++;
    151  - }
    152  - 
    153  - if(args.output_IP || args.output_Hostname || args.output_SSL){
    154  - url.setUrl("https://www.virustotal.com/api/v3/domains/"+target+"/subdomains");
    155  - request.setAttribute(QNetworkRequest::User, DOMAIN_SUBDOMAINS);
    156  - request.setUrl(url);
    157  - manager->get(request);
    158  - activeRequests++;
     138 + return;
    159 139   }
    160 140   }
    161 141   
    skipped 3 lines
    165 145   request.setAttribute(QNetworkRequest::User, V2_IPADDRESS);
    166 146   request.setUrl(url);
    167 147   manager->get(request);
    168  - activeRequests++;
     148 + return;
    169 149   }
    170  - //...
    171  - request.setRawHeader("x-apikey", m_key.toUtf8());
    172  - //...
    173  - if(args.output_Hostname || args.output_SSL){
     150 + if(args.output_SSL){
     151 + request.setRawHeader("x-apikey", m_key.toUtf8());
    174 152   url.setUrl("https://www.virustotal.com/api/v3/ip_addresses/"+target+"/historical_ssl_certificates");
    175 153   request.setAttribute(QNetworkRequest::User, IP_HISTORICAL_SSL_CERTS);
    176 154   request.setUrl(url);
    177 155   manager->get(request);
    178  - activeRequests++;
    179  - }
    180  - 
    181  - if(args.output_Hostname){
    182  - url.setUrl("https://www.virustotal.com/api/v3/ip_addresses/"+target+"/resolutions");
    183  - request.setAttribute(QNetworkRequest::User, IP_RESOLUTIONS);
    184  - request.setUrl(url);
    185  - manager->get(request);
    186  - activeRequests++;
     156 + return;
    187 157   }
    188 158   }
    189 159  }
    skipped 11 lines
    201 171   {
    202 172   case V2_DOMAIN:
    203 173   case V2_IPADDRESS:
    204  - {
    205 174   QJsonArray subdomains = document.object()["subdomains"].toArray();
    206 175   foreach(const QJsonValue &value, subdomains){
    207 176   QString hostname = value.toString();
    208 177   emit resultSubdomain(hostname);
    209 178   log.resultsCount++;
    210 179   }
    211  - }
    212 180   break;
    213  - 
    214  - case DOMAIN_HISTORICAL_SSL_CERTS:
    215  - case IP_HISTORICAL_SSL_CERTS:
    216  - {
    217  - foreach(const QJsonValue &value, data){
    218  - QJsonArray subject_alternative_name = value.toObject()["attributes"].toObject()["extensions"].toObject()["subject_alternative_name"].toArray();
    219  - foreach(const QJsonValue &alt_name, subject_alternative_name){
    220  - QString hostname = alt_name.toString();
    221  - emit resultSubdomain(hostname);
    222  - log.resultsCount++;
    223  - }
    224  - }
    225 181   }
    226  - break;
    227 182   
    228  - case DOMAIN_SUBDOMAINS:
    229  - {
    230  - foreach(const QJsonValue &value, data){
    231  - /* from id */
    232  - QString hostname = value.toObject()["id"].toString();
    233  - emit resultSubdomain(hostname);
    234  - log.resultsCount++;
    235  - 
    236  - /* from last dns records */
    237  - QJsonArray last_dns_records = value.toObject()["attributes"].toObject()["last_dns_records"].toArray();
    238  - foreach(const QJsonValue &dnsRecord, last_dns_records){
    239  - QString type = dnsRecord.toObject()["type"].toString();
    240  - 
    241  - if(type == "NS"){
    242  - QString hostname = dnsRecord.toObject()["value"].toString();
    243  - emit resultNS(hostname);
    244  - log.resultsCount++;
    245  - }
    246  - if(type == "MX"){
    247  - QString hostname = dnsRecord.toObject()["value"].toString();
    248  - emit resultMX(hostname);
    249  - log.resultsCount++;
    250  - }
    251  - if(type == "CNAME"){
    252  - QString hostname = dnsRecord.toObject()["value"].toString();
    253  - emit resultCNAME(hostname);
    254  - log.resultsCount++;
    255  - }
    256  - }
    257  - 
    258  - /* from ssl cert alternative name */
    259  - QJsonObject last_https_certificate = value.toObject()["attributes"].toObject()["last_https_certificate"].toObject();
    260  - QJsonArray subject_alternative_name = last_https_certificate["extensions"].toObject()["subject_alternative_name"].toArray();
    261  - foreach(const QJsonValue &altName, subject_alternative_name){
    262  - QString hostname = altName.toString();
    263  - emit resultSubdomain(hostname);
    264  - log.resultsCount++;
    265  - }
    266  - }
    267  - }
    268  - break;
    269  - 
    270  - case IP_RESOLUTIONS:
    271  - foreach(const QJsonValue &value, data){
    272  - QString hostname = value.toObject()["attributes"].toObject()["host_name"].toString();
    273  - emit resultSubdomain(hostname);
    274  - log.resultsCount++;
    275  - }
    276  - }
    277  - 
    278  - end(reply);
     183 + this->end(reply);
    279 184  }
    280 185   
    281 186  void VirusTotal::replyFinishedIp(QNetworkReply *reply){
    skipped 9 lines
    291 196   {
    292 197   case V2_DOMAIN:
    293 198   case V2_IPADDRESS:
    294  - {
    295 199   QJsonArray resolutions = document.object()["resolutions"].toArray();
    296 200   foreach(const QJsonValue &value, resolutions){
    297 201   QString address = value.toObject()["ip_address"].toString();
    298 202   emit resultIP(address);
    299 203   log.resultsCount++;
    300 204   }
    301  - }
    302 205   break;
    303  - 
    304  - case DOMAIN_RESOLUTIONS:
    305  - {
    306  - foreach(const QJsonValue &value, data){
    307  - QString address = value.toObject()["attributes"].toObject()["ip_address"].toString();
    308  - emit resultIP(address);
    309  - log.resultsCount++;
    310  - }
    311 206   }
    312  - break;
    313 207   
    314  - case DOMAIN_SUBDOMAINS:
    315  - {
    316  - foreach(const QJsonValue &value, data){
    317  - /* from last dns records */
    318  - QJsonArray last_dns_records = value.toObject()["attributes"].toObject()["last_dns_records"].toArray();
    319  - foreach(const QJsonValue &dnsRecord, last_dns_records){
    320  - QString type = dnsRecord.toObject()["type"].toString();
    321  - 
    322  - if(type == "A"){
    323  - QString address = dnsRecord.toObject()["value"].toString();
    324  - emit resultA(address);
    325  - log.resultsCount++;
    326  - }
    327  - if(type == "AAAA"){
    328  - QString address = dnsRecord.toObject()["value"].toString();
    329  - emit resultAAAA(address);
    330  - log.resultsCount++;
    331  - }
    332  - }
    333  - }
    334  - }
    335  - }
    336  - 
    337  - end(reply);
     208 + this->end(reply);
    338 209  }
    339 210   
    340 211  void VirusTotal::replyFinishedUrl(QNetworkReply *reply){
    skipped 9 lines
    350 221   {
    351 222   case V2_DOMAIN:
    352 223   case V2_IPADDRESS:
    353  - {
    354 224   QJsonArray detected_urls = document.object()["detected_urls"].toArray();
    355 225   foreach(const QJsonValue &value, detected_urls){
    356 226   QString detected_url = value.toArray().at(0).toString();
    skipped 7 lines
    364 234   emit resultURL(undetected_url);
    365 235   log.resultsCount++;
    366 236   }
    367  - }
    368 237   }
    369 238   
    370  - end(reply);
     239 + this->end(reply);
    371 240  }
    372 241   
    373 242  void VirusTotal::replyFinishedSSL(QNetworkReply *reply){
    skipped 15 lines
    389 258   log.resultsCount++;
    390 259   }
    391 260   break;
    392  - 
    393  - case DOMAIN_SUBDOMAINS:
    394  - foreach(const QJsonValue &value, data){
    395  - /* from ssl cert alternative name */
    396  - QJsonObject last_https_certificate = value.toObject()["attributes"].toObject()["last_https_certificate"].toObject();
    397  - QString thumbprint = last_https_certificate["thumbprint"].toString();
    398  - emit resultSSL(thumbprint);
    399  - log.resultsCount++;
    400  - }
    401 261   }
    402 262   
    403  - end(reply);
     263 + this->end(reply);
    404 264  }
    405 265   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/scrape/Ask.cpp
    skipped 3 lines
    4 4   
    5 5  Ask::Ask(ScanArgs args): AbstractOsintModule(args)
    6 6  {
    7  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     7 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    8 8   log.moduleName = OSINT_MODULE_ASK;
    9 9   
    10 10   if(args.output_Hostname)
    skipped 9 lines
    20 20   
    21 21  void Ask::start(){
    22 22   QNetworkRequest request;
     23 + QUrl url;
    23 24   
    24 25   if(args.input_Domain){
    25 26   if(args.output_Hostname){
    26  - QUrl url("https://www.ask.com/web?q=site:"+target+"&page=1&qid=8D6EE6BF52E0C04527E51A64F22C4534&o=0&l=dir&qsrc=998&qo=pagination");
     27 + url.setUrl("https://www.ask.com/web?q=site:"+target+"&page=1&qid=8D6EE6BF52E0C04527E51A64F22C4534&o=0&l=dir&qsrc=998&qo=pagination");
    27 28   request.setUrl(url);
    28 29   manager->get(request);
    29 30   m_firstRequest = true;
    30  - activeRequests++;
     31 + return;
    31 32   }
    32 33   
    33 34   if(args.output_URL){
    34  - QUrl url("https://www.ask.com/web?q=site:"+target+"&page=1&qid=8D6EE6BF52E0C04527E51A64F22C4534&o=0&l=dir&qsrc=998&qo=pagination");
     35 + url.setUrl("https://www.ask.com/web?q=site:"+target+"&page=1&qid=8D6EE6BF52E0C04527E51A64F22C4534&o=0&l=dir&qsrc=998&qo=pagination");
    35 36   request.setUrl(url);
    36 37   manager->get(request);
    37 38   m_firstRequest = true;
    38  - activeRequests++;
     39 + return;
    39 40   }
    40 41   
    41 42   if(args.output_Email){
    42  - QUrl url("https://www.ask.com/web?q=site:"+target+"&page=1&qid=8D6EE6BF52E0C04527E51A64F22C4534&o=0&l=dir&qsrc=998&qo=pagination");
     43 + url.setUrl("https://www.ask.com/web?q=site:"+target+"&page=1&qid=8D6EE6BF52E0C04527E51A64F22C4534&o=0&l=dir&qsrc=998&qo=pagination");
    43 44   request.setUrl(url);
    44 45   manager->get(request);
    45 46   m_firstRequest = true;
    46  - activeRequests++;
     47 + return;
    47 48   }
    48 49   }
    49 50  }
    skipped 52 lines
    102 103   if(m_firstRequest)
    103 104   this->sendRequests();
    104 105   
    105  - end(reply);
     106 + this->end(reply);
    106 107  }
    107 108   
    108 109  void Ask::replyFinishedEmail(QNetworkReply *reply){
    skipped 6 lines
    115 116   * not yet implemented...
    116 117   */
    117 118   
    118  - end(reply);
     119 + this->end(reply);
    119 120  }
    120 121   
    121 122  void Ask::replyFinishedUrl(QNetworkReply *reply){
    skipped 48 lines
    170 171   if(m_firstRequest)
    171 172   this->sendRequests();
    172 173   
    173  - end(reply);
     174 + this->end(reply);
    174 175  }
    175 176   
    176 177  void Ask::sendRequests(){
    skipped 20 lines
    197 198   request.setUrl(url);
    198 199   manager->get(request);
    199 200   m_firstRequest = false;
    200  - activeRequests++;
    201 201   currentPage++;
    202 202   }
    203 203   }
    skipped 3 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/scrape/Baidu.cpp
    skipped 6 lines
    7 7   */
    8 8  Baidu::Baidu(ScanArgs args): AbstractOsintModule(args)
    9 9  {
    10  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     10 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    11 11   log.moduleName = OSINT_MODULE_BAIDU;
    12 12   
    13 13   if(args.output_Hostname)
    skipped 9 lines
    23 23   
    24 24  void Baidu::start(){
    25 25   QNetworkRequest request;
     26 + QUrl url;
    26 27   
    27 28   if(args.input_Domain){
    28 29   if(args.output_Hostname){
    29  - QUrl url("https://www.baidu.com/s?wd=site:"+target+"&oq=site:"+target+"&pn=1");
     30 + url.setUrl("https://www.baidu.com/s?wd=site:"+target+"&oq=site:"+target+"&pn=1");
    30 31   request.setUrl(url);
    31 32   manager->get(request);
    32 33   m_firstRequest = true;
    33  - activeRequests++;
     34 + return;
    34 35   }
    35 36   
    36 37   if(args.output_URL){
    37  - QUrl url("https://www.baidu.com/s?wd=site:"+target+"&oq=site:"+target+"&pn=1");
     38 + url.setUrl("https://www.baidu.com/s?wd=site:"+target+"&oq=site:"+target+"&pn=1");
    38 39   request.setUrl(url);
    39 40   manager->get(request);
    40 41   m_firstRequest = true;
    41  - activeRequests++;
     42 + return;
    42 43   }
    43 44   }
    44 45  }
    skipped 53 lines
    98 99   if(m_firstRequest)
    99 100   this->sendRequests();
    100 101   
    101  - end(reply);
     102 + this->end(reply);
    102 103  }
    103 104   
    104 105  void Baidu::replyFinishedEmail(QNetworkReply *reply){
    skipped 6 lines
    111 112   * not yet implemented...
    112 113   */
    113 114   
    114  - end(reply);
     115 + this->end(reply);
    115 116  }
    116 117   
    117 118  void Baidu::replyFinishedUrl(QNetworkReply *reply){
    skipped 49 lines
    167 168   if(m_firstRequest)
    168 169   this->sendRequests();
    169 170   
    170  - end(reply);
     171 + this->end(reply);
    171 172  }
    172 173   
    173 174  void Baidu::sendRequests(){
    skipped 20 lines
    194 195   request.setUrl(url);
    195 196   manager->get(request);
    196 197   m_firstRequest = false;
    197  - activeRequests++;
    198 198   currentPage++;
    199 199   }
    200 200   }
    skipped 3 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/scrape/Bing.cpp
    skipped 7 lines
    8 8   */
    9 9  Bing::Bing(ScanArgs args): AbstractOsintModule(args)
    10 10  {
    11  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     11 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    12 12   log.moduleName = OSINT_MODULE_BING;
    13 13   
    14 14   if(args.output_Hostname)
    skipped 9 lines
    24 24   
    25 25  void Bing::start(){
    26 26   QNetworkRequest request;
     27 + QUrl url;
    27 28   
    28 29   if(args.input_Domain){
    29 30   if(args.output_Hostname){
    30  - QUrl url("https://www.bing.com/search?q=site:"+target+"&first=1&FORM=PORE");
     31 + url.setUrl("https://www.bing.com/search?q=site:"+target+"&first=1&FORM=PORE");
    31 32   //request.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy);
    32 33   request.setUrl(url);
    33 34   manager->get(request);
    34 35   m_firstRequest = true;
    35  - activeRequests++;
     36 + return;
    36 37   }
    37 38   
    38 39   if(args.output_URL){
    39  - QUrl url("https://www.bing.com/search?q=site:"+target+"&first=1&FORM=PORE");
     40 + url.setUrl("https://www.bing.com/search?q=site:"+target+"&first=1&FORM=PORE");
    40 41   //request.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy);
    41 42   request.setUrl(url);
    42 43   manager->get(request);
    43 44   m_firstRequest = true;
    44  - activeRequests++;
     45 + return;
    45 46   }
    46 47   }
    47 48  }
    skipped 48 lines
    96 97   if(m_firstRequest)
    97 98   this->sendRequests();
    98 99   
    99  - end(reply);
     100 + this->end(reply);
    100 101  }
    101 102   
    102 103  void Bing::replyFinishedEmail(QNetworkReply *reply){
    skipped 6 lines
    109 110   * not yet implemented...
    110 111   */
    111 112   
    112  - end(reply);
     113 + this->end(reply);
    113 114  }
    114 115   
    115 116  void Bing::replyFinishedUrl(QNetworkReply *reply){
    skipped 44 lines
    160 161   if(m_firstRequest)
    161 162   this->sendRequests();
    162 163   
    163  - end(reply);
     164 + this->end(reply);
    164 165  }
    165 166   
    166 167  void Bing::sendRequests(){
    skipped 22 lines
    189 190   request.setUrl(url);
    190 191   manager->get(request);
    191 192   m_firstRequest = false;
    192  - activeRequests++;
    193 193   currentPage++;
    194 194   first += 10;
    195 195   }
    skipped 4 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/scrape/DogPile.cpp
    skipped 7 lines
    8 8   */
    9 9  DogPile::DogPile(ScanArgs args): AbstractOsintModule(args)
    10 10  {
    11  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     11 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    12 12   log.moduleName = OSINT_MODULE_DOGPILE;
    13 13   
    14 14   if(args.output_Hostname)
    skipped 9 lines
    24 24   
    25 25  void DogPile::start(){
    26 26   QNetworkRequest request;
     27 + QUrl url;
    27 28   
    28 29   if(args.input_Domain){
    29 30   if(args.output_Hostname){
    30  - QUrl url("https://www.dogpile.com/serp?q="+target);
     31 + url.setUrl("https://www.dogpile.com/serp?q="+target);
    31 32   request.setUrl(url);
    32 33   manager->get(request);
    33 34   m_firstRequest = true;
    34  - activeRequests++;
     35 + return;
    35 36   }
    36 37   
    37 38   if(args.output_URL){
    38  - QUrl url("https://www.dogpile.com/serp?q="+target);
     39 + url.setUrl("https://www.dogpile.com/serp?q="+target);
    39 40   request.setUrl(url);
    40 41   manager->get(request);
    41 42   m_firstRequest = true;
    42  - activeRequests++;
     43 + return;
    43 44   }
    44 45   }
    45 46  }
    skipped 48 lines
    94 95   
    95 96   gumbo_destroy_output(&kGumboDefaultOptions, output);
    96 97   
    97  - end(reply);
     98 + this->end(reply);
    98 99  }
    99 100   
    100 101  void DogPile::replyFinishedEmail(QNetworkReply *reply){
    skipped 6 lines
    107 108   * not yet implemented...
    108 109   */
    109 110   
    110  - end(reply);
     111 + this->end(reply);
    111 112  }
    112 113   
    113 114  void DogPile::replyFinishedUrl(QNetworkReply *reply){
    skipped 45 lines
    159 160   
    160 161   gumbo_destroy_output(&kGumboDefaultOptions, output);
    161 162   
    162  - end(reply);
     163 + this->end(reply);
    163 164  }
    164 165   
    165 166  void DogPile::sendRequests(QString anotherPage){
    skipped 6 lines
    172 173   request.setUrl(url);
    173 174   manager->get(request);
    174 175   m_firstRequest = false;
    175  - activeRequests++;
    176 176   m_sentPages++;
    177 177   }
    178 178   }
    skipped 3 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/scrape/DuckDuckGo.cpp
    skipped 6 lines
    7 7   */
    8 8  DuckDuckGo::DuckDuckGo(ScanArgs args): AbstractOsintModule(args)
    9 9  {
    10  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     10 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    11 11   log.moduleName = OSINT_MODULE_DUCKDUCKGO;
    12 12   
    13 13   if(args.output_Hostname)
    skipped 9 lines
    23 23   
    24 24  void DuckDuckGo::start(){
    25 25   QNetworkRequest request;
     26 + QUrl url;
    26 27   
    27 28   if(args.input_Domain){
    28 29   if(args.output_Hostname){
    29  - QUrl url("https://html.duckduckgo.com/html/?q=site:"+target);
     30 + url.setUrl("https://html.duckduckgo.com/html/?q=site:"+target);
    30 31   request.setUrl(url);
    31 32   manager->get(request);
    32  - activeRequests++;
     33 + return;
    33 34   }
    34 35   
    35 36   if(args.output_URL){
    36  - QUrl url("https://html.duckduckgo.com/html/?q=site:"+target);
     37 + url.setUrl("https://html.duckduckgo.com/html/?q=site:"+target);
    37 38   request.setUrl(url);
    38 39   manager->get(request);
    39  - activeRequests++;
     40 + return;
    40 41   }
    41 42   }
    42 43  }
    skipped 34 lines
    77 78   
    78 79   gumbo_destroy_output(&kGumboDefaultOptions, output);
    79 80   
    80  - end(reply);
     81 + this->end(reply);
    81 82  }
    82 83   
    83 84  void DuckDuckGo::replyFinishedEmail(QNetworkReply *reply){
    skipped 6 lines
    90 91   * not yet implemented...
    91 92   */
    92 93   
    93  - end(reply);
     94 + this->end(reply);
    94 95  }
    95 96   
    96 97  void DuckDuckGo::replyFinishedUrl(QNetworkReply *reply){
    skipped 31 lines
    128 129   
    129 130   gumbo_destroy_output(&kGumboDefaultOptions, output);
    130 131   
    131  - end(reply);
     132 + this->end(reply);
    132 133  }
    133 134   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/scrape/Exalead.cpp
    skipped 6 lines
    7 7   */
    8 8  Exalead::Exalead(ScanArgs args): AbstractOsintModule(args)
    9 9  {
    10  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     10 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    11 11   log.moduleName = OSINT_MODULE_EXALEAD;
    12 12   
    13 13   if(args.output_Hostname)
    skipped 9 lines
    23 23   
    24 24  void Exalead::start(){
    25 25   QNetworkRequest request;
     26 + QUrl url;
    26 27   
    27 28   if(args.input_Domain){
    28 29   if(args.output_Hostname){
    29  - QUrl url("https://www.exalead.com/search/web/results/?q="+target+"&collapsing=off");
     30 + url.setUrl("https://www.exalead.com/search/web/results/?q="+target+"&collapsing=off");
    30 31   request.setUrl(url);
    31 32   manager->get(request);
    32  - activeRequests++;
     33 + return;
    33 34   }
    34 35   
    35 36   if(args.output_URL){
    36  - QUrl url("https://www.exalead.com/search/web/results/?q="+target+"&collapsing=off");
     37 + url.setUrl("https://www.exalead.com/search/web/results/?q="+target+"&collapsing=off");
    37 38   request.setUrl(url);
    38 39   manager->get(request);
    39  - activeRequests++;
     40 + return;
    40 41   }
    41 42   }
    42 43  }
    skipped 33 lines
    76 77   
    77 78   gumbo_destroy_output(&kGumboDefaultOptions, output);
    78 79   
    79  - end(reply);
     80 + this->end(reply);
    80 81  }
    81 82   
    82 83  void Exalead::replyFinishedEmail(QNetworkReply *reply){
    skipped 6 lines
    89 90   * not yet implemented...
    90 91   */
    91 92   
    92  - end(reply);
     93 + this->end(reply);
    93 94  }
    94 95   
    95 96  void Exalead::replyFinishedUrl(QNetworkReply *reply){
    skipped 31 lines
    127 128   
    128 129   gumbo_destroy_output(&kGumboDefaultOptions, output);
    129 130   
    130  - end(reply);
     131 + this->end(reply);
    131 132  }
    132 133   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/scrape/Yahoo.cpp
    skipped 7 lines
    8 8   */
    9 9  Yahoo::Yahoo(ScanArgs args): AbstractOsintModule(args)
    10 10  {
    11  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     11 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    12 12   log.moduleName = OSINT_MODULE_YAHOO;
    13 13   
    14 14   if(args.output_Hostname)
    skipped 9 lines
    24 24   
    25 25  void Yahoo::start(){
    26 26   QNetworkRequest request;
     27 + QUrl url;
    27 28   
    28 29   if(args.input_Domain){
    29 30   if(args.output_Hostname){
    30  - QUrl url("https://search.yahoo.com/search?p=site:"+target+"&b=1&pz=10&bct=0&xargs=0");
     31 + url.setUrl("https://search.yahoo.com/search?p=site:"+target+"&b=1&pz=10&bct=0&xargs=0");
    31 32   request.setUrl(url);
    32 33   manager->get(request);
    33 34   m_firstRequest = true;
    34  - activeRequests++;
     35 + return;
    35 36   }
    36 37   
    37 38   if(args.output_URL){
    38  - QUrl url("https://search.yahoo.com/search?p=site:"+target+"&b=1&pz=10&bct=0&xargs=0");
     39 + url.setUrl("https://search.yahoo.com/search?p=site:"+target+"&b=1&pz=10&bct=0&xargs=0");
    39 40   request.setUrl(url);
    40 41   manager->get(request);
    41 42   m_firstRequest = true;
    42  - activeRequests++;
     43 + return;
    43 44   }
    44 45   }
    45 46  }
    skipped 51 lines
    97 98   if(m_firstRequest)
    98 99   this->sendRequests();
    99 100   
    100  - end(reply);
     101 + this->end(reply);
    101 102  }
    102 103   
    103 104  void Yahoo::replyFinishedEmail(QNetworkReply *reply){
    skipped 6 lines
    110 111   * not yet implemented...
    111 112   */
    112 113   
    113  - end(reply);
     114 + this->end(reply);
    114 115  }
    115 116   
    116 117  void Yahoo::replyFinishedUrl(QNetworkReply *reply){
    skipped 49 lines
    166 167   if(m_firstRequest)
    167 168   this->sendRequests();
    168 169   
    169  - end(reply);
     170 + this->end(reply);
    170 171  }
    171 172   
    172 173  void Yahoo::sendRequests(){
    skipped 22 lines
    195 196   request.setUrl(url);
    196 197   manager->get(request);
    197 198   m_firstRequest = false;
    198  - activeRequests++;
    199 199   currentPage++;
    200 200   first += 10;
    201 201   }
    skipped 4 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/site/Dnsdumpster.cpp
    skipped 5 lines
    6 6   */
    7 7  Dnsdumpster::Dnsdumpster(ScanArgs args): AbstractOsintModule(args)
    8 8  {
    9  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     9 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    10 10   log.moduleName = OSINT_MODULE_DNSDUMPSTER;
    11 11   
    12 12   if(args.output_HostnameIP)
    skipped 16 lines
    29 29   request.setUrl(url);
    30 30   m_queryToGetToken = true;
    31 31   manager->get(request);
    32  - activeRequests++;
    33 32  }
    34 33   
    35 34  void Dnsdumpster::replyFinishedSubdomainIp(QNetworkReply *reply){
    skipped 40 lines
    76 75   gumbo_destroy_output(&kGumboDefaultOptions, output);
    77 76   }
    78 77   
    79  - end(reply);
     78 + this->end(reply);
    80 79  }
    81 80   
    82 81  void Dnsdumpster::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 42 lines
    125 124   gumbo_destroy_output(&kGumboDefaultOptions, output);
    126 125   }
    127 126   
    128  - end(reply);
     127 + this->end(reply);
    129 128  }
    130 129   
    131 130  void Dnsdumpster::replyFinishedIp(QNetworkReply *reply){
    skipped 41 lines
    173 172   gumbo_destroy_output(&kGumboDefaultOptions, output);
    174 173   }
    175 174   
    176  - end(reply);
     175 + this->end(reply);
    177 176  }
    178 177   
    179 178  ///
    skipped 42 lines
    222 221   
    223 222   manager->post(request, data);
    224 223   m_queryToGetToken = false;
    225  - activeRequests++;
    226 224  }
    227 225   
  • ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/site/Netcraft.cpp
    skipped 8 lines
    9 9   */
    10 10  Netcraft::Netcraft(ScanArgs args): AbstractOsintModule(args)
    11 11  {
    12  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     12 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    13 13   log.moduleName = OSINT_MODULE_NETCRAFT;
    14 14   
    15 15   if(args.output_Hostname)
    skipped 8 lines
    24 24   QUrl url("https://searchdns.netcraft.com/?restriction=site+contains&host="+target);
    25 25   request.setUrl(url);
    26 26   manager->get(request);
    27  - activeRequests++;
    28 27  }
    29 28   
    30 29  void Netcraft::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 38 lines
    69 68   
    70 69   gumbo_destroy_output(&kGumboDefaultOptions, output);
    71 70   
    72  - end(reply);
     71 + this->end(reply);
    73 72  }
    74 73   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/site/PagesInventory.cpp
    skipped 7 lines
    8 8   */
    9 9  PagesInventory::PagesInventory(ScanArgs args): AbstractOsintModule(args)
    10 10  {
    11  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     11 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    12 12   log.moduleName = OSINT_MODULE_PAGESINVENTORY;
    13 13   
    14 14   if(args.output_HostnameIP)
    skipped 12 lines
    27 27   QUrl url("https://www.pagesinventory.com/search/?s="+target);
    28 28   request.setUrl(url);
    29 29   manager->get(request);
    30  - activeRequests++;
    31 30  }
    32 31   
    33 32  void PagesInventory::replyFinishedSubdomainIp(QNetworkReply *reply){
    skipped 68 lines
    102 101   }
    103 102   
    104 103   gumbo_destroy_output(&kGumboDefaultOptions, output);
    105  - end(reply);
     104 + this->end(reply);
    106 105  }
    107 106   
    108 107  void PagesInventory::replyFinishedIp(QNetworkReply *reply){
    skipped 58 lines
    167 166   }
    168 167   
    169 168   gumbo_destroy_output(&kGumboDefaultOptions, output);
    170  - end(reply);
     169 + this->end(reply);
    171 170  }
    172 171   
    173 172  void PagesInventory::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 41 lines
    215 214   }
    216 215   
    217 216   gumbo_destroy_output(&kGumboDefaultOptions, output);
    218  - end(reply);
     217 + this->end(reply);
    219 218  }
    220 219   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/site/Pkey.cpp
    skipped 3 lines
    4 4   
    5 5  Pkey::Pkey(ScanArgs args): AbstractOsintModule(args)
    6 6  {
    7  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     7 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    8 8   log.moduleName = OSINT_MODULE_PKEY;
    9 9   
    10 10   if(args.output_HostnameIP)
    skipped 9 lines
    20 20   
    21 21  void Pkey::start(){
    22 22   QNetworkRequest request;
     23 + QUrl url;
     24 + QByteArray data;
    23 25   
    24  - QUrl url("https://www.pkey.in/tools-i/search-subdomains");
     26 + url.setUrl("https://www.pkey.in/tools-i/search-subdomains");
    25 27   request.setUrl(url);
    26 28   request.setRawHeader("Origin", "https://www.pkey.in");
    27 29   request.setRawHeader("Content-Type", "application/x-www-form-urlencoded");
    28  - //...
    29  - QByteArray data;
    30 30   data.append("zone="+target+"&");
    31 31   data.append("submit=");
    32 32   
    33  - /* send request */
    34 33   manager->post(request, data);
    35  - activeRequests++;
    36 34  }
    37 35   
    38 36  void Pkey::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 35 lines
    74 72   }
    75 73   
    76 74   gumbo_destroy_output(&kGumboDefaultOptions, output);
    77  - end(reply);
     75 + this->end(reply);
    78 76  }
    79 77   
    80 78  void Pkey::replyFinishedSubdomainIp(QNetworkReply *reply){
    skipped 52 lines
    133 131   }
    134 132   
    135 133   gumbo_destroy_output(&kGumboDefaultOptions, output);
    136  - end(reply);
     134 + this->end(reply);
    137 135  }
    138 136   
    139 137  void Pkey::replyFinishedIp(QNetworkReply *reply){
    skipped 43 lines
    183 181   }
    184 182   
    185 183   gumbo_destroy_output(&kGumboDefaultOptions, output);
    186  - end(reply);
     184 + this->end(reply);
    187 185  }
    188 186   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/site/Rapiddns.cpp
    skipped 6 lines
    7 7   */
    8 8  Rapiddns::Rapiddns(ScanArgs args): AbstractOsintModule(args)
    9 9  {
    10  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     10 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    11 11   log.moduleName = OSINT_MODULE_RAPIDDNS;
    12 12   
    13 13   if(args.output_Hostname)
    skipped 15 lines
    29 29   url.setUrl("https://rapiddns.io/subdomain/"+target+"?full=1#result");
    30 30   request.setUrl(url);
    31 31   manager->get(request);
    32  - activeRequests++;
     32 + return;
    33 33   }
    34 34   
    35 35   if(args.input_IP){
    36 36   url.setUrl("https://rapiddns.io/sameip/"+target+"?full=1#result");
    37 37   request.setUrl(url);
    38 38   manager->get(request);
    39  - activeRequests++;
     39 + return;
    40 40   }
    41 41   
    42 42   if(args.input_CIDR){
    43 43   url.setUrl("https://rapiddns.io/s/"+target+"?full=1#result");
    44 44   request.setUrl(url);
    45 45   manager->get(request);
    46  - activeRequests++;
     46 + return;
    47 47   }
    48 48  }
    49 49   
    skipped 35 lines
    85 85   }
    86 86   
    87 87   gumbo_destroy_output(&kGumboDefaultOptions, output);
    88  - end(reply);
     88 + this->end(reply);
    89 89  }
    90 90   
    91 91  void Rapiddns::replyFinishedSubdomainIp(QNetworkReply *reply){
    skipped 44 lines
    136 136   }
    137 137   
    138 138   gumbo_destroy_output(&kGumboDefaultOptions, output);
    139  - end(reply);
     139 + this->end(reply);
    140 140  }
    141 141   
    142 142  void Rapiddns::replyFinishedIp(QNetworkReply *reply){
    skipped 42 lines
    185 185   }
    186 186   
    187 187   gumbo_destroy_output(&kGumboDefaultOptions, output);
    188  - end(reply);
     188 + this->end(reply);
    189 189  }
    190 190   
  • ■ ■ ■ ■ ■
    sub3suite/src/modules/passive/site/SiteDossier.cpp
    skipped 8 lines
    9 9  SiteDossier::SiteDossier(ScanArgs args): AbstractOsintModule(args)
    10 10  {
    11 11   
    12  - manager = new s3sNetworkAccessManager(this, args.config->timeout);
     12 + manager = new s3sNetworkAccessManager(this, args.config->timeout, args.config->setTimeout);
    13 13   log.moduleName = OSINT_MODULE_SITEDOSSIER;
    14 14   
    15 15   if(args.output_Hostname)
    skipped 8 lines
    24 24   QUrl url("http://www.sitedossier.com/parentdomain/"+target+"/1");
    25 25   request.setUrl(url);
    26 26   manager->get(request);
    27  - activeRequests++;
    28 27  }
    29 28   
    30 29  void SiteDossier::replyFinishedSubdomain(QNetworkReply *reply){
    skipped 32 lines
    63 62   }
    64 63   
    65 64   gumbo_destroy_output(&kGumboDefaultOptions, output);
    66  - end(reply);
     65 + this->end(reply);
    67 66  }
    68 67   
  • ■ ■ ■ ■ ■
    sub3suite/src/utils/Config.h
    skipped 39 lines
    40 40  #define CFG_VAL_NAMESERVER "nameserver_type"
    41 41  #define CFG_VAL_BUILDDATE "build_date"
    42 42  #define CFG_VAL_MAXPAGES "max_pages"
     43 +#define CFG_VAL_SETTIMEOUT "set_timeout"
    43 44   
    44 45  /* groups */
    45 46  #define CFG_GRP_RECENT "recent_projects"
    skipped 46 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/utils/s3s.h
    skipped 103 lines
    104 104  ///
    105 105  class s3sNetworkAccessManager: public QNetworkAccessManager {
    106 106   public:
    107  - s3sNetworkAccessManager(QObject *parent = nullptr, int timeout = 1000): QNetworkAccessManager(parent),
    108  - m_timeout(timeout)
     107 + s3sNetworkAccessManager(QObject *parent = nullptr, int timeout = 1000, bool use_timer = false): QNetworkAccessManager(parent),
     108 + m_timeout(timeout),
     109 + m_use_timer(use_timer)
    109 110   {
    110 111   }
    111 112   
    skipped 3 lines
    115 116   QNetworkReply *reply = QNetworkAccessManager::createRequest(op, request, data);
    116 117   
    117 118   /* set timeout */
    118  - s3s_ReplyTimeout::set(reply, m_timeout);
     119 + if(m_use_timer)
     120 + s3s_ReplyTimeout::set(reply, m_timeout);
    119 121   
    120 122   /* set property */
    121 123   reply->setProperty(REQUEST_TYPE, request.attribute(QNetworkRequest::User));
    skipped 3 lines
    125 127   
    126 128   private:
    127 129   int m_timeout;
     130 + bool m_use_timer;
    128 131  };
    129 132   
    130 133  #endif // S3S_H
    skipped 1 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/utils/utils.h
    skipped 67 lines
    68 68  #define PLACEHOLDERTEXT_DOMAIN "domain e.g. example.com"
    69 69  #define PLACEHOLDERTEXT_IP "ip-address e.g. 8.8.8.8"
    70 70  #define PLACEHOLDERTEXT_IP4 "IpV4-address e.g. 8.8.8.8"
    71  -#define PLACEHOLDERTEXT_IP_OR_CIDR "ip-address e.g. 1.1.1.1 or ip-address/cidr e.g. 1.1.1.1/24"
     71 +#define PLACEHOLDERTEXT_IP_OR_CIDR "ip-address e.g. 1.1.1.1 or ip-address/cidr e.g. 1.1.1.0/24"
    72 72  #define PLACEHOLDERTEXT_DOMAIN_OR_IP "domain name e.g. example.com or ip-address e.g. 1.1.1.1"
    73 73  #define PLACEHOLDERTEXT_IP6 "IpV6-address e.g. 2001:4860:4860::8888"
    74 74  #define PLACEHOLDERTEXT_ASN "asn number e.g. 12345"
    75 75  #define PLACEHOLDERTEXT_EMAIL "email-address e.g. [email protected]"
    76  -#define PLACEHOLDERTEXT_CIDR "ip-address/cidr e.g. 1.1.1.1/24"
     76 +#define PLACEHOLDERTEXT_CIDR "ip-address/cidr e.g. 1.1.1.0/24"
    77 77  #define PLACEHOLDERTEXT_QUERY "query term e.g. GOOGLE"
    78 78  #define PLACEHOLDERTEXT_SSLCERT "cert fingerprint(sha1 or sha256)"
    79 79  #define PLACEHOLDERTEXT_PHONE "phone number e.g. +2557298984323"
    skipped 84 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/sub3suite.pro
    skipped 125 lines
    126 126   src/models/ExplorerModel.cpp \
    127 127   src/modules/active/URLScanner.cpp \
    128 128   src/modules/passive/ParserMethods.cpp \
     129 + src/modules/passive/api/ASRank.cpp \
     130 + src/modules/passive/api/CirclPublic.cpp \
    129 131   src/modules/passive/api/HackerTarget.cpp \
    130 132   src/modules/passive/api/Mnemonic.cpp \
    131 133   src/modules/passive/api/Otx.cpp \
    skipped 156 lines
    288 290   src/models/ExplorerModel.h \
    289 291   src/modules/active/URLScanner.h \
    290 292   src/modules/passive/ParserMethods.h \
     293 + src/modules/passive/api/ASRank.h \
     294 + src/modules/passive/api/CirclPublic.h \
    291 295   src/modules/passive/api/HackerTarget.h \
    292 296   src/modules/passive/api/Mnemonic.h \
    293 297   src/modules/passive/api/Otx.h \
    skipped 182 lines
Please wait...
Page is in error, reload to recover