mirror of
https://github.com/ChronosX88/nesca.git
synced 2024-11-23 18:52:19 +00:00
BA+FTP+finder
This commit is contained in:
parent
aa7e60d4fc
commit
f1e8b3a568
@ -23,7 +23,6 @@ lopaStr BA::_BABrute(const char *ip, const int port) {
|
||||
strcpy(lps.login, "UNKNOWN");
|
||||
|
||||
for(int i = 0; i < MaxLogin; ++i) {
|
||||
if(!globalScanFlag) return lps;
|
||||
for (int j = 0; j < MaxPass; ++j) {
|
||||
if (!globalScanFlag) return lps;
|
||||
|
||||
@ -31,7 +30,7 @@ lopaStr BA::_BABrute(const char *ip, const int port) {
|
||||
|
||||
Connector::nConnect(ip, port, &buffer, NULL, NULL, &lpString);
|
||||
|
||||
if(checkOutput(&buffer) != 0) {
|
||||
if(checkOutput(&buffer)) {
|
||||
strcpy(lps.login, loginLst[i]);
|
||||
strcpy(lps.pass, passLst[j]);
|
||||
return lps;
|
||||
@ -44,13 +43,12 @@ lopaStr BA::_BABrute(const char *ip, const int port) {
|
||||
return lps;
|
||||
}
|
||||
|
||||
lopaStr BA::_BALobby(const char *ip, const int port)
|
||||
{
|
||||
while(BrutingThrds >= gMaxBrutingThreads) Sleep(700);
|
||||
lopaStr BA::_BALobby(const char *ip, const int port) {
|
||||
while(BrutingThrds >= gMaxBrutingThreads) Sleep(1000);
|
||||
|
||||
BruteUtils::BConInc();
|
||||
const lopaStr &res = _BABrute(ip, port);
|
||||
const lopaStr &lps = _BABrute(ip, port);
|
||||
BruteUtils::BConDec();
|
||||
|
||||
return res;
|
||||
return lps;
|
||||
}
|
||||
|
@ -176,6 +176,7 @@ int _EstablishSSHConnection(char *host, int port, std::string *buffer, const cha
|
||||
int sz = 0;
|
||||
char *ptr1 = 0;
|
||||
int res = -1;
|
||||
|
||||
for(int i = 0; i < MaxSSHPass; ++i)
|
||||
{
|
||||
if(globalScanFlag == false) break;
|
||||
@ -188,6 +189,7 @@ int _EstablishSSHConnection(char *host, int port, std::string *buffer, const cha
|
||||
ZeroMemory(login, sizeof(login));
|
||||
ZeroMemory(pass, sizeof(pass));
|
||||
ZeroMemory(temp, sizeof(temp));
|
||||
|
||||
if(res == 0)
|
||||
{
|
||||
if(i == 0) return -2; //Failhit
|
||||
@ -199,6 +201,7 @@ int _EstablishSSHConnection(char *host, int port, std::string *buffer, const cha
|
||||
BruteUtils::BConDec();
|
||||
return -2;
|
||||
};
|
||||
|
||||
Sleep(500);
|
||||
};
|
||||
BruteUtils::BConDec();
|
||||
@ -227,12 +230,10 @@ int my_trace(CURL *handle, curl_infotype type,
|
||||
char *data, size_t size,
|
||||
void *userp)
|
||||
{
|
||||
switch (type) {
|
||||
case CURLINFO_HEADER_OUT: {
|
||||
if (type == CURLINFO_HEADER_OUT) {
|
||||
Activity += strlen(data);
|
||||
data[strstr(data, "\r\n\r\n") - data] = '\0';
|
||||
stt->doEmitionAddOutData(QString(data));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
@ -251,6 +252,7 @@ int Connector::nConnect(const char *ip, const int port, std::string *buffer,
|
||||
buffer->clear();
|
||||
CURL *curl = curl_easy_init();
|
||||
curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 0L);
|
||||
int res = 0;
|
||||
|
||||
if (curl)
|
||||
{
|
||||
@ -299,10 +301,11 @@ int Connector::nConnect(const char *ip, const int port, std::string *buffer,
|
||||
|
||||
if(lpString != NULL) {
|
||||
curl_easy_setopt(curl, CURLOPT_HTTPAUTH, (long)CURLAUTH_ANY);
|
||||
curl_easy_setopt(curl, CURLOPT_USERPWD, lpString);
|
||||
};
|
||||
//curl_easy_setopt(curl, CURLOPT_FTPLISTONLY, TRUE);
|
||||
curl_easy_setopt(curl, CURLOPT_USERPWD, lpString->c_str());
|
||||
};//
|
||||
|
||||
curl_easy_perform(curl);
|
||||
if(curl_easy_perform(curl) != CURLE_OK) return -1;
|
||||
curl_easy_cleanup(curl);
|
||||
} else {
|
||||
stt->doEmitionRedFoundData("Curl error.");
|
||||
@ -310,8 +313,11 @@ int Connector::nConnect(const char *ip, const int port, std::string *buffer,
|
||||
};
|
||||
|
||||
if(MapWidgetOpened) stt->doEmitionAddIncData(QString(ip), QString(buffer->c_str()));
|
||||
|
||||
Activity += buffer->size();
|
||||
return buffer->size();
|
||||
}
|
||||
|
||||
int Connector::_ConnectToPort(char *ip, int port, char *hl)
|
||||
{
|
||||
if(gPingNScan)
|
||||
|
@ -35,11 +35,11 @@ void MakePolygonLine(int gWidth)
|
||||
bool state = stt->isRunning();
|
||||
for(int i = 1; i < 130; ++i)
|
||||
{
|
||||
x = qrand() % 4 + 2 + i;
|
||||
x = qrand() % 4 + i;
|
||||
xtx = x + tx;
|
||||
if(xtx > 1 && xtx < 31)
|
||||
{
|
||||
qp = QPointF(xtx, state ? qrand() % 3 - 3 + ME2YPOS - AnomC1 * 2 - fact1 : ME2YPOS);
|
||||
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - AnomC1 * 2 - fact1 : ME2YPOS);
|
||||
if(AnomC1 > 0)
|
||||
{
|
||||
if(xtx < 16 ) fact1+=2;
|
||||
@ -49,7 +49,7 @@ void MakePolygonLine(int gWidth)
|
||||
|
||||
if(xtx > 34 && xtx < 72)
|
||||
{
|
||||
qp = QPointF(xtx, state ? qrand() % 3 - 3 + ME2YPOS - WF * 2 - fact2 : ME2YPOS);
|
||||
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - WF * 2 - fact2 : ME2YPOS);
|
||||
|
||||
if(WF > 0)
|
||||
{
|
||||
@ -60,7 +60,7 @@ void MakePolygonLine(int gWidth)
|
||||
|
||||
if(xtx > 74 && xtx < 112)
|
||||
{
|
||||
qp = QPointF(xtx, state ? qrand() % 3 - 3 + ME2YPOS - BA * 2 - fact3 : ME2YPOS);
|
||||
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - BA * 2 - fact3 : ME2YPOS);
|
||||
|
||||
if(BA > 0)
|
||||
{
|
||||
@ -71,7 +71,7 @@ void MakePolygonLine(int gWidth)
|
||||
|
||||
if(xtx > 114 && xtx < 152)
|
||||
{
|
||||
qp = QPointF(xtx, state ? qrand() % 3 - 3 + ME2YPOS - Susp * 2 - fact4 : ME2YPOS);
|
||||
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - Susp * 2 - fact4 : ME2YPOS);
|
||||
|
||||
if(Susp > 0)
|
||||
{
|
||||
@ -82,7 +82,7 @@ void MakePolygonLine(int gWidth)
|
||||
|
||||
if(xtx > 154 && xtx < 192)
|
||||
{
|
||||
qp = QPointF(xtx, state ? qrand() % 3 - 3 + ME2YPOS - Overl * 2 - fact5 : ME2YPOS);
|
||||
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - Overl * 2 - fact5 : ME2YPOS);
|
||||
|
||||
if(Overl > 0)
|
||||
{
|
||||
@ -93,7 +93,7 @@ void MakePolygonLine(int gWidth)
|
||||
|
||||
if(xtx > 194 && xtx < 232)
|
||||
{
|
||||
qp = QPointF(xtx, state ? qrand() % 3 - 3 + ME2YPOS - Lowl * 2 - fact6 : ME2YPOS);
|
||||
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - Lowl * 2 - fact6 : ME2YPOS);
|
||||
|
||||
if(Lowl > 0)
|
||||
{
|
||||
@ -104,12 +104,12 @@ void MakePolygonLine(int gWidth)
|
||||
|
||||
if(xtx > 234 && xtx < 269)
|
||||
{
|
||||
qp = QPointF(xtx, state ? qrand() % 3 - 3 + ME2YPOS - Alive * 2 - fact7 : ME2YPOS);
|
||||
qp = QPointF(xtx, state ? qrand() % 3 + ME2YPOS - Alive * 2 - fact7 : ME2YPOS);
|
||||
|
||||
if(Alive > 0)
|
||||
{
|
||||
if(xtx < 252 ) fact7+=2;
|
||||
else fact7-=2;
|
||||
if(xtx < 252 ) fact7+=1;
|
||||
else fact7-=1;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
#ifndef DRAWERTH_ME2SCANNER_H
|
||||
#define DRAWERTH_ME2SCANNER_H
|
||||
|
||||
#define ME2YPOS 100
|
||||
#define ME2YPOS 97
|
||||
#define ME2GRADPOS 10
|
||||
#include "STh.h"
|
||||
|
||||
|
13
FTPAuth.cpp
13
FTPAuth.cpp
@ -3,10 +3,7 @@
|
||||
bool FTPA::checkOutput(const string *buffer) {
|
||||
//Login or password incorrect!
|
||||
|
||||
if(Utils::ci_find_substr(*buffer, "200 ok") != -1 ||
|
||||
Utils::ci_find_substr(*buffer, "http/1.0 200") != -1 ||
|
||||
Utils::ci_find_substr(*buffer, "http/1.1 200") != -1
|
||||
) {
|
||||
if(Utils::ci_find_substr(*buffer, "230") != -1) {
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -36,9 +33,9 @@ lopaStr FTPA::_FTPBrute(const char *ip, const int port, const PathStr *ps) {
|
||||
|
||||
lpString = string(loginLst[i]) + ":" + string(passLst[j]);
|
||||
|
||||
Connector::nConnect(ip, port, &buffer, NULL, NULL, &lpString);
|
||||
Connector::nConnect((string("ftp://") + string(ip)).c_str(), port, &buffer, NULL, NULL, &lpString);
|
||||
|
||||
if(checkOutput(&buffer) != 0) {
|
||||
if(checkOutput(&buffer)) {
|
||||
strcpy(lps.login, loginLst[i]);
|
||||
strcpy(lps.pass, passLst[j]);
|
||||
return lps;
|
||||
@ -51,8 +48,8 @@ lopaStr FTPA::_FTPBrute(const char *ip, const int port, const PathStr *ps) {
|
||||
return lps;
|
||||
}
|
||||
|
||||
lopaStr FTPA::_FTPLobby(const char *ip, const int port, const PathStr *ps){
|
||||
while(BrutingThrds >= gMaxBrutingThreads) Sleep(700);
|
||||
lopaStr FTPA::_FTPLobby(const char *ip, const int port, const PathStr *ps) {
|
||||
while(BrutingThrds >= gMaxBrutingThreads) Sleep(1000);
|
||||
|
||||
BruteUtils::BConInc();
|
||||
const lopaStr &lps = _FTPBrute(ip, port, ps);
|
||||
|
21
Threader.cpp
Normal file
21
Threader.cpp
Normal file
@ -0,0 +1,21 @@
|
||||
#include <Threader.h>
|
||||
|
||||
std::vector<ThreadStruct> Threader::threadPool;
|
||||
|
||||
void Threader::createThreadPool(int poolSize, void *func, ST *st) {
|
||||
for(int i = 0; i < poolSize; ++i) {
|
||||
pthread_t thrc;
|
||||
pthread_create(&thrc, NULL, (void *(*)(void*))func, st);
|
||||
|
||||
ThreadStruct threadStruct {
|
||||
&thrc,
|
||||
false
|
||||
};
|
||||
|
||||
threadPool.push_back(threadStruct);
|
||||
}
|
||||
}
|
||||
|
||||
void Threader::fireThread(ST *st) {
|
||||
|
||||
}
|
21
Threader.h
Normal file
21
Threader.h
Normal file
@ -0,0 +1,21 @@
|
||||
#ifndef THREADER_H
|
||||
#define THREADER_H
|
||||
|
||||
#include <mainResources.h>
|
||||
|
||||
struct ThreadStruct{
|
||||
pthread_t *handler;
|
||||
bool busy;
|
||||
};
|
||||
|
||||
class Threader {
|
||||
private:
|
||||
static std::vector<ThreadStruct> threadPool;
|
||||
|
||||
public:
|
||||
static void createThreadPool(int poolSize, void *func, ST *st);
|
||||
static void fireThread(ST *st);
|
||||
static pthread_t getFreeThread();
|
||||
};
|
||||
|
||||
#endif // THREADER_H
|
1006
connector_old.cpp
1006
connector_old.cpp
File diff suppressed because it is too large
Load Diff
102
finder.cpp
102
finder.cpp
@ -456,15 +456,15 @@ int __checkFileExistence(int flag)
|
||||
{
|
||||
char fileName[64] = {0};
|
||||
|
||||
if(flag == 666 || flag == 350) strcpy(fileName, "./result_files/STRANGE_ERROR.html");
|
||||
else if(flag == -22) strcpy(fileName, "./result_files/ssh.html");
|
||||
else if(flag == 0 || flag == 15 || flag == -10) strcpy(fileName, "./result_files/strange.html");
|
||||
else if(flag == 3) strcpy(fileName, "./result_files/other.html");
|
||||
else if(flag == 7) strcpy(fileName, "./result_files/low_loads.html");
|
||||
else if(flag == 10) strcpy(fileName, "./result_files/LoginForms.html");
|
||||
else if(flag == 16) strcpy(fileName, "./result_files/FTP.html");
|
||||
if(flag == 666 || flag == 350) strcpy(fileName, "./"RESULT_DIR_NAME"/STRANGE_ERROR.html");
|
||||
else if(flag == -22) strcpy(fileName, "./"RESULT_DIR_NAME"/ssh.html");
|
||||
else if(flag == 0 || flag == 15 || flag == -10) strcpy(fileName, "./"RESULT_DIR_NAME"/strange.html");
|
||||
else if(flag == 3) strcpy(fileName, "./"RESULT_DIR_NAME"/other.html");
|
||||
else if(flag == 7) strcpy(fileName, "./"RESULT_DIR_NAME"/low_loads.html");
|
||||
else if(flag == 10) strcpy(fileName, "./"RESULT_DIR_NAME"/LoginForms.html");
|
||||
else if(flag == 16) strcpy(fileName, "./"RESULT_DIR_NAME"/FTP.html");
|
||||
else if(flag >= 17 || flag == 11 || flag == 12
|
||||
|| flag == 13 || flag == 14 || flag == 1) strcpy(fileName, "./result_files/Basicauth.html");
|
||||
|| flag == 13 || flag == 14 || flag == 1) strcpy(fileName, "./"RESULT_DIR_NAME"/Basicauth.html");
|
||||
|
||||
FILE *f = fopen(fileName, "r");
|
||||
if(f == NULL) return true;
|
||||
@ -493,39 +493,39 @@ void fputsf(char *text, int flag, char *msg)
|
||||
if(flag == 0 || flag == 15 || flag == -10)
|
||||
{
|
||||
if(ftsAnom) ftsAnom = __checkFileExistence(flag);
|
||||
file = fopen("./result_files/strange.html", "a");
|
||||
file = fopen("./"RESULT_DIR_NAME"/strange.html", "a");
|
||||
}
|
||||
else if(flag == 3)
|
||||
{
|
||||
if(ftsOther) ftsOther = __checkFileExistence(flag);
|
||||
file = fopen("./result_files/other.html", "a");
|
||||
file = fopen("./"RESULT_DIR_NAME"/other.html", "a");
|
||||
}
|
||||
else if(flag == -22)
|
||||
{
|
||||
if(ftsSSH) ftsSSH = __checkFileExistence(flag);
|
||||
file = fopen("./result_files/SSH.html", "a");
|
||||
file = fopen("./"RESULT_DIR_NAME"/SSH.html", "a");
|
||||
}
|
||||
else if(flag == 7)
|
||||
{
|
||||
if(ftsLL) ftsLL = __checkFileExistence(flag);
|
||||
file = fopen("./result_files/low_loads.html", "a");
|
||||
file = fopen("./"RESULT_DIR_NAME"/low_loads.html", "a");
|
||||
}
|
||||
else if(flag == 10)
|
||||
{
|
||||
if(ftsLF) ftsLF = __checkFileExistence(flag);
|
||||
file = fopen("./result_files/LoginForms.html", "a");
|
||||
file = fopen("./"RESULT_DIR_NAME"/LoginForms.html", "a");
|
||||
}
|
||||
else if(flag == 16)
|
||||
{
|
||||
if(ftsFTP) ftsFTP = __checkFileExistence(flag);
|
||||
file = fopen("./result_files/FTP.html", "a");
|
||||
file = fopen("./"RESULT_DIR_NAME"/FTP.html", "a");
|
||||
}
|
||||
else if(flag >= 17 || flag == 11 || flag == 12
|
||||
|| flag == 13 || flag == 14 || flag == 1
|
||||
)
|
||||
{
|
||||
if(ftsBA) ftsBA = __checkFileExistence(flag);
|
||||
file = fopen("./result_files/Basicauth.html", "a");
|
||||
file = fopen("./"RESULT_DIR_NAME"/Basicauth.html", "a");
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1718,7 +1718,8 @@ int redirectReconnect(char *cookie, char *ip, int port, char *str, Lexems *ls, P
|
||||
{
|
||||
tempPort = 443;
|
||||
char *ptr1 = strstri(str, "https://");
|
||||
char *ptr2 = _findFirst(str + 8, ":/?");
|
||||
char *ptr2 = _findFirst(ptr1 + 8, ":/?");
|
||||
|
||||
if(ptr2 != NULL)
|
||||
{
|
||||
int sz = ptr2 - ptr1 - 8;
|
||||
@ -1829,7 +1830,7 @@ int redirectReconnect(char *cookie, char *ip, int port, char *str, Lexems *ls, P
|
||||
{
|
||||
tempPort = 80;
|
||||
char *ptr1 = strstri(str, "http://");
|
||||
char *ptr2 = _findFirst(str + 7, ":/?");
|
||||
char *ptr2 = _findFirst(ptr1 + 7, ":/?");
|
||||
|
||||
if(ptr2 != NULL)
|
||||
{
|
||||
@ -2260,6 +2261,73 @@ int Lexems::_header(char *ip, int port, const char str[], Lexems *l, PathStr *ps
|
||||
|| strstri(str, "top.htm?") != NULL
|
||||
) strcat(finalstr, " [?][SecCam detected]");
|
||||
|
||||
if(strstri(str, "http-equiv=\"refresh\"") != NULL
|
||||
|| strstri(str, "http-equiv=refresh") != NULL
|
||||
|| strstri(str, "http-equiv='refresh'") != NULL
|
||||
)
|
||||
{
|
||||
char *temp = NULL;
|
||||
char *strTmp = NULL;
|
||||
|
||||
if(strstri(str, "http-equiv=\"refresh\"") != NULL) strTmp = strstri(str, "http-equiv=\"refresh\"");
|
||||
else if(strstri(str, "http-equiv=refresh") != NULL) strTmp = strstri(str, "http-equiv=refresh");
|
||||
else if(strstri(str, "http-equiv='refresh'") != NULL) strTmp = strstri(str, "http-equiv='refresh'");
|
||||
|
||||
if(strstri(strTmp, "url=") != NULL )
|
||||
{
|
||||
if((int)(strstri(strTmp, "url=") - strTmp) < 100)
|
||||
{
|
||||
temp = strstri(strTmp, "url=");
|
||||
|
||||
char *temp2 = NULL, temp3[128] = {0};
|
||||
int sz = 0;
|
||||
|
||||
if(temp[4] == '"' || temp[4] == '\'' || temp[4] == ' ' || temp[4] == '\n' || temp[4] == '\r')
|
||||
{
|
||||
temp2 = _findFirst(temp + 6, " \n>\"'");
|
||||
if(temp2 != NULL)
|
||||
{
|
||||
sz = (int)(temp2 - temp) - 5;
|
||||
strncpy(temp3, (char*)(temp + 5), (sz < 128 ? sz : 127));
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
temp2 = _findFirst(temp + 4, " \n>\"'");
|
||||
if(temp2 != NULL)
|
||||
{
|
||||
sz = (int)(temp2 - temp) - 4;
|
||||
strncpy(temp3, (char*)(temp + 4), sz < 128 ? sz : 127);
|
||||
};
|
||||
};
|
||||
if(strstri(temp3, "http://") == NULL && strstri(temp3, "https://") == NULL)
|
||||
{
|
||||
if(temp3[0] != '.')
|
||||
{
|
||||
if(temp3[0] != '/')
|
||||
{
|
||||
char temp4[128] = {0};
|
||||
strcpy(temp4, "/");
|
||||
strncat(temp4, temp3, 127);
|
||||
strncpy(temp3, temp4, 128);
|
||||
};
|
||||
};
|
||||
};
|
||||
redirectStr = std::string(temp3);
|
||||
if(std::find(redirStrLst->begin(), redirStrLst->end(), redirectStr) == redirStrLst->end())
|
||||
{
|
||||
redirStrLst->push_back(redirectStr);
|
||||
return redirectReconnect(ps->cookie, ip, port, temp3, l, ps, redirStrLst);
|
||||
} return -1;
|
||||
strcat(ps->headr, " ");
|
||||
return -2;
|
||||
};
|
||||
strcat(ps->headr, finalstr);
|
||||
strcat(ps->headr, " ");
|
||||
return 0;
|
||||
};
|
||||
};
|
||||
|
||||
if(strstri(str, "<script") != NULL)
|
||||
{
|
||||
if(strstri(str, "document.cookie") != NULL)
|
||||
|
@ -86,6 +86,11 @@ typedef int BOOL;
|
||||
#define MAX_ADDR_LEN 128
|
||||
#define TITLE_MAX_SIZE 512
|
||||
#define COOKIE_MAX_SIZE 1024
|
||||
#define RESULT_DIR_NAME "./result_files-" __DATE__
|
||||
|
||||
typedef struct {
|
||||
char argv[MAX_ADDR_LEN];
|
||||
} ST;
|
||||
|
||||
struct PathStr{
|
||||
char codepage[32];
|
||||
|
@ -43,7 +43,8 @@ SOURCES +=\
|
||||
Utils.cpp \
|
||||
BruteUtils.cpp \
|
||||
BasicAuth.cpp \
|
||||
FTPAuth.cpp
|
||||
FTPAuth.cpp \
|
||||
Threader.cpp
|
||||
|
||||
|
||||
HEADERS += ActivityDrawerTh_HorNet.h \
|
||||
@ -73,7 +74,8 @@ HEADERS += ActivityDrawerTh_HorNet.h \
|
||||
Connector.h \
|
||||
BasicAuth.h \
|
||||
BruteUtils.h \
|
||||
FTPAuth.h
|
||||
FTPAuth.h \
|
||||
Threader.h
|
||||
|
||||
FORMS += nesca_3.ui
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorProject>
|
||||
<!-- Written by QtCreator 3.2.1, 2015-03-13T17:27:38. -->
|
||||
<!-- Written by QtCreator 3.2.1, 2015-03-17T17:30:18. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>EnvironmentId</variable>
|
||||
|
75
nesca_3.cpp
75
nesca_3.cpp
@ -2190,6 +2190,8 @@ void nesca_3::slotShowNicks()
|
||||
QRegExp _rOutProt(" HTTP/1.\\d+");
|
||||
QRegExp _rOutPath(" /(\\w|\\.|,|/|:|-|_|\\?|!|\\@|#|\\$|%|\\^|&|\\*|\\(|\\)|=|\\+|<|>|;|:|\"|'|~|\\[|\\])* ");
|
||||
QRegExp _rOutHost("Host: ((\\w|\\d|\\.|:|/)*)\\r\\n");
|
||||
QRegExp qrp("\\n(.+):");
|
||||
|
||||
void nesca_3::slotOutData(QString str)
|
||||
{
|
||||
if(SendData != NULL)
|
||||
@ -2203,19 +2205,8 @@ void nesca_3::slotOutData(QString str)
|
||||
str.replace("HTTP ", "<font color=\"GoldenRod\">HTTP </font>");
|
||||
str.replace("GET ", "<font color=\"GoldenRod\">GET </font>");
|
||||
str.replace("POST ", "<font color=\"GoldenRod\">POST </font>");
|
||||
str.replace("Host: ", "<font color=\"GoldenRod\">Host: </font>");
|
||||
str.replace("Cookie: ", "<font color=\"GoldenRod\">Cookie: </font>");
|
||||
str.replace("Accept-Language:", "<font color=\"GoldenRod\">Accept-Language:</font>");
|
||||
str.replace("Accept-Charset:", "<font color=\"GoldenRod\">Accept-Charset:</font>");
|
||||
str.replace("Accept-Encoding:", "<font color=\"GoldenRod\">Accept-Encoding:</font>");
|
||||
str.replace("Accept:", "<font color=\"GoldenRod\">Accept:</font>");
|
||||
str.replace("User-Agent:", "<font color=\"GoldenRod\">User-Agent:</font>");
|
||||
str.replace("Proxy-Connection:", "<font color=\"GoldenRod\">Proxy-Connection:</font>");
|
||||
str.replace("Connection:", "<font color=\"GoldenRod\">Connection:</font>");
|
||||
str.replace("Content-Length:", "<font color=\"GoldenRod\">Content-Length:</font>");
|
||||
str.replace("Authorization:", "<font color=\"GoldenRod\">Authorization:</font>");
|
||||
str.replace("X-Nescav3:", "<font color=\"GoldenRod\">X-Nescav3:</font>");
|
||||
str.replace("Referer:", "<font color=\"GoldenRod\">Referer:</font>");
|
||||
str.replace(qrp, "<br><font color=\"GoldenRod\">\\1:</font>");
|
||||
str.replace(QRegExp("(ftp:.+@)"), "<font color=\"Crimson\">\\1</font>");
|
||||
|
||||
_rOutProt.indexIn(str);
|
||||
prot = _rOutProt.cap(0);
|
||||
@ -3009,13 +3000,12 @@ void nesca_3::saveOptions()
|
||||
_SaveBackupToFile();
|
||||
}
|
||||
|
||||
QString loadNescaSetup(char *resStr, char *option) {
|
||||
QString loadNescaSetup(const char *resStr, const char *option) {
|
||||
|
||||
char *lex = NULL
|
||||
;
|
||||
char *lex = NULL;
|
||||
if(strstr(resStr, option) != NULL)
|
||||
{
|
||||
lex = strstr(resStr, option) + strlen(option);
|
||||
lex = (char*)(strstr(resStr, option) + strlen(option));
|
||||
|
||||
if(strlen(lex) > 1)
|
||||
{
|
||||
@ -3026,6 +3016,12 @@ QString loadNescaSetup(char *resStr, char *option) {
|
||||
|
||||
return "";
|
||||
}
|
||||
void setUIText(char *field, QLineEdit *qle, const char *resStr) {
|
||||
if (strstr(resStr, field) != NULL) {
|
||||
QString intermediateString = loadNescaSetup(resStr, field).simplified();
|
||||
intermediateString.length() > 0 ? qle->setText(intermediateString) : (void)NULL;
|
||||
}
|
||||
}
|
||||
void RestoreSession()
|
||||
{
|
||||
FILE *resFile = fopen("restore", "r");
|
||||
@ -3040,7 +3036,6 @@ void RestoreSession()
|
||||
{
|
||||
if(strstr(resStr, "[SESSION]:") != NULL)
|
||||
{
|
||||
|
||||
lex = strtok(strstr(resStr, "[SESSION]:") + strlen("[SESSION]:"), " ");
|
||||
gMode = atoi(lex);
|
||||
lex = strtok(NULL, " ");
|
||||
@ -3140,10 +3135,10 @@ void RestoreSession()
|
||||
};
|
||||
};
|
||||
|
||||
if (strstr(resStr, "[NDBSERVER]:") != NULL) ui->lineTrackerSrv->setText(loadNescaSetup(resStr, "[NDBSERVER]:").simplified());
|
||||
else if (strstr(resStr, "[NDBSCRIPT]:") != NULL) ui->lineTrackerScr->setText(loadNescaSetup(resStr, "[NDBSCRIPT]:").simplified());
|
||||
else if (strstr(resStr, "[NDBPORT]:") != NULL) ui->trcSrvPortLine->setText(loadNescaSetup(resStr, "[NDBPORT]:").simplified());
|
||||
else if (strstr(resStr, "[PING]:") != NULL) {
|
||||
setUIText("[NDBSERVER]:", ui->lineTrackerSrv, resStr);
|
||||
setUIText("[NDBSCRIPT]:", ui->lineTrackerScr, resStr);
|
||||
setUIText("[NDBPORT]:", ui->trcSrvPortLine, resStr);
|
||||
if (strstr(resStr, "[PING]:") != NULL) {
|
||||
lex = strstr(resStr, "[PING]:") + strlen("[PING]:");
|
||||
|
||||
if (strlen(lex) > 1)
|
||||
@ -3152,9 +3147,9 @@ void RestoreSession()
|
||||
ui->pingingOnOff->setChecked(strcmp(lex, "true") == 0 ? true : false);
|
||||
};
|
||||
}
|
||||
else if (strstr(resStr, "[PING_TO]:") != NULL) ui->PingTO->setText(loadNescaSetup(resStr, "[PING_TO]:").simplified());
|
||||
else if (strstr(resStr, "[THREAD_DELAY]:") != NULL) ui->threadDelayBox->setText(loadNescaSetup(resStr, "[THREAD_DELAY]:").simplified());
|
||||
else if (strstr(resStr, "[TIMEOUT]:") != NULL) {
|
||||
setUIText("[PING_TO]:", ui->PingTO, resStr);
|
||||
setUIText("[THREAD_DELAY]:", ui->threadDelayBox, resStr);
|
||||
if (strstr(resStr, "[TIMEOUT]:") != NULL) {
|
||||
const QString &tempLex = loadNescaSetup(resStr, "[TIMEOUT]:");
|
||||
if(tempLex.toInt() > 0) {
|
||||
ui->iptoLine_value->setText(tempLex);
|
||||
@ -3162,15 +3157,16 @@ void RestoreSession()
|
||||
ui->iptoLine_value_3->setText(tempLex);
|
||||
}
|
||||
}
|
||||
else if (strstr(resStr, "[MAXBTHR]:") != NULL) ui->maxBrutingThrBox->setText(loadNescaSetup(resStr, "[MAXBTHR]:").simplified());
|
||||
else if (strstr(resStr, "[PERSKEY]:") != NULL) ui->linePersKey->setText(loadNescaSetup(resStr, "[PERSKEY]:").simplified());
|
||||
else if (strstr(resStr, "[IRCSERVER]:") != NULL) ui->ircServerBox->setText(loadNescaSetup(resStr, "[IRCSERVER]:").simplified());
|
||||
else if (strstr(resStr, "[IRCPORT]:") != NULL) ui->serverPortBox->setText(loadNescaSetup(resStr, "[IRCPORT]:").simplified());
|
||||
else if (strstr(resStr, "[IRCPROXY]:") != NULL) ui->ircProxy->setText(loadNescaSetup(resStr, "[IRCPROXY]:").simplified());
|
||||
else if (strstr(resStr, "[IRCPROXYPORT]:") != NULL) ui->ircProxyPort->setText(loadNescaSetup(resStr, "[IRCPROXYPORT]:").simplified());
|
||||
else if (strstr(resStr, "[SYSTEMPROXYIP]:") != NULL) ui->systemProxyIP->setText(loadNescaSetup(resStr, "[SYSTEMPROXYIP]:").simplified());
|
||||
else if (strstr(resStr, "[SYSTEMPROXYPORT]:") != NULL) ui->systemProxyPort->setText(loadNescaSetup(resStr, "[SYSTEMPROXYPORT]:").simplified());
|
||||
else if (strstr(resStr, "[IRCNICK]:") != NULL) ui->ircNickBox->setText(loadNescaSetup(resStr, "[IRCNICK]:").simplified());
|
||||
setUIText("[MAXBTHR]:", ui->maxBrutingThrBox, resStr);
|
||||
setUIText("[PERSKEY]:", ui->linePersKey, resStr);
|
||||
setUIText("[IRCSERVER]:", ui->ircServerBox, resStr);
|
||||
setUIText("[IRCPORT]:", ui->serverPortBox, resStr);
|
||||
setUIText("[IRCPROXY]:", ui->ircProxy, resStr);
|
||||
setUIText("[IRCPROXYPORT]:", ui->ircProxyPort, resStr);
|
||||
setUIText("[SYSTEMPROXYIP]:", ui->systemProxyIP, resStr);
|
||||
setUIText("[SYSTEMPROXYPORT]:", ui->systemProxyPort, resStr);
|
||||
setUIText("[IRCNICK]:", ui->ircNickBox, resStr);
|
||||
|
||||
ZeroMemory(resStr, sizeof(resStr));
|
||||
};
|
||||
|
||||
@ -3203,11 +3199,11 @@ const char *GetVer()
|
||||
|
||||
if(__DATE__[0] == 'J' && __DATE__[1] == 'a') dver += 1;
|
||||
else if(__DATE__[0] == 'F') dver += 2;
|
||||
else if(__DATE__[0] == 'M' && __DATE__[1] == 'a' && __DATE__[2] == 'r') dver += 3;
|
||||
else if(__DATE__[0] == 'M' && __DATE__[2] == 'r') dver += 3;
|
||||
else if(__DATE__[0] == 'A' && __DATE__[1] == 'p') dver += 4;
|
||||
else if(__DATE__[0] == 'M' && __DATE__[1] == 'a' && __DATE__[2] == 'y') dver += 5;
|
||||
else if(__DATE__[0] == 'J' && __DATE__[1] == 'u' && __DATE__[2] == 'n') dver += 6;
|
||||
else if(__DATE__[0] == 'J' && __DATE__[1] == 'u' && __DATE__[2] == 'l') dver += 7;
|
||||
else if(__DATE__[0] == 'M' && __DATE__[2] == 'y') dver += 5;
|
||||
else if(__DATE__[0] == 'J' && __DATE__[2] == 'n') dver += 6;
|
||||
else if(__DATE__[0] == 'J' && __DATE__[2] == 'l') dver += 7;
|
||||
else if(__DATE__[0] == 'A' && __DATE__[1] == 'u') dver += 8;
|
||||
else if(__DATE__[0] == 'S') dver += 9;
|
||||
else if(__DATE__[0] == 'O') dver += 10;
|
||||
@ -3301,15 +3297,14 @@ void _startMsgCheck()
|
||||
WSADATA wsda;
|
||||
if (WSAStartup(0x0101, &wsda))
|
||||
{
|
||||
|
||||
stt->doEmitionRedFoundData("WSAStartup failed.");
|
||||
stt->doEmitionKillSttThread();
|
||||
|
||||
};
|
||||
#endif
|
||||
|
||||
_startVerCheck();
|
||||
_startMsgCheck();
|
||||
qrp.setMinimal(true);
|
||||
}
|
||||
|
||||
void nesca_3::playFcknSound()
|
||||
|
@ -1764,9 +1764,15 @@ border-radius: 3px;</string>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
</property>
|
||||
<property name="sizeAdjustPolicy">
|
||||
<enum>QAbstractScrollArea::AdjustIgnored</enum>
|
||||
</property>
|
||||
<property name="undoRedoEnabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="lineWrapMode">
|
||||
<enum>QTextEdit::NoWrap</enum>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
|
@ -4,10 +4,6 @@
|
||||
#include "externFunctions.h"
|
||||
#include "Connector.h"
|
||||
|
||||
typedef struct {
|
||||
char argv[MAX_ADDR_LEN];
|
||||
} ST;
|
||||
|
||||
ST *st = NULL;
|
||||
|
||||
QJsonArray *jsonArr = new QJsonArray();
|
||||
@ -910,29 +906,21 @@ void *_connect(void* ss)
|
||||
|
||||
void targetAndIPWriter(long long unsigned int target, char *buff)
|
||||
{
|
||||
char curIPBuff[256] = {0}, targetNPers[32] = {0}, dbuffer[32] = {0};
|
||||
char curIPBuff[256] = {0}, targetNPers[32] = {0};
|
||||
|
||||
strcpy(metaIPDNS, buff);
|
||||
char b[32] = {0};
|
||||
sprintf(b, "%Lu", target);
|
||||
strcpy(targetNPers, b);
|
||||
strcpy(metaTargets, targetNPers);
|
||||
if(gTargetsOverall != 0) sprintf(dbuffer, "%.1f", (100 - target/(double)gTargetsOverall * 100));
|
||||
else strcpy(dbuffer, "0");
|
||||
strcat(targetNPers, " (");
|
||||
strcat(targetNPers, dbuffer);
|
||||
strcat(targetNPers, "%)");
|
||||
strcpy(metaPercent, dbuffer);
|
||||
|
||||
strcpy(curIPBuff, "--->");
|
||||
strcat(curIPBuff, buff);
|
||||
|
||||
sprintf(targetNPers, "%Lu (%.1f%%)",
|
||||
target, (gTargetsOverall != 0 ? (100 - target/(double)gTargetsOverall * 100) : 0));
|
||||
sprintf(metaTargets, "%Lu", target);
|
||||
sprintf(metaPercent, "%.1f",
|
||||
(gTargetsOverall != 0 ? (100 - target/(double)gTargetsOverall * 100) : 0));
|
||||
sprintf(curIPBuff, "--->%s", buff);
|
||||
|
||||
stt->doEmitionIPRANGE(QString(curIPBuff));
|
||||
stt->doEmitionTargetsLeft(QString(targetNPers));
|
||||
|
||||
}
|
||||
|
||||
void _passLoginFapper()
|
||||
void _passLoginLoader()
|
||||
{
|
||||
MaxLogin = 0;
|
||||
MaxPass = 0;
|
||||
@ -985,9 +973,7 @@ void _passLoginFapper()
|
||||
ZeroMemory(buffFG, sizeof(buffFG));
|
||||
};
|
||||
|
||||
|
||||
stt->doEmitionGreenFoundData("Password list loaded (" + QString(std::to_string(MaxPass).c_str()) + " entries)");
|
||||
|
||||
stt->doEmitionGreenFoundData("Password list loaded (" + QString::number(MaxPass) + " entries)");
|
||||
|
||||
i = 0;
|
||||
|
||||
@ -1000,19 +986,15 @@ void _passLoginFapper()
|
||||
ZeroMemory(buffFG, sizeof(buffFG));
|
||||
};
|
||||
|
||||
|
||||
stt->doEmitionGreenFoundData("Login list loaded (" + QString(std::to_string(MaxLogin).c_str()) + " entries)");
|
||||
|
||||
stt->doEmitionGreenFoundData("Login list loaded (" + QString::number(MaxLogin) + " entries)");
|
||||
|
||||
fclose(loginList);
|
||||
fclose(passList);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
stt->doEmitionRedFoundData("No password/login list found");
|
||||
stt->doEmitionKillSttThread();
|
||||
|
||||
};
|
||||
|
||||
MaxWFLogin = 0;
|
||||
@ -1066,8 +1048,7 @@ void _passLoginFapper()
|
||||
ZeroMemory(buffFG, sizeof(buffFG));
|
||||
};
|
||||
|
||||
|
||||
stt->doEmitionGreenFoundData("WFPassword list loaded (" + QString(std::to_string(MaxWFPass).c_str()) + " entries)");
|
||||
stt->doEmitionGreenFoundData("WFPassword list loaded (" + QString::number(MaxWFPass) + " entries)");
|
||||
|
||||
i = 0;
|
||||
|
||||
@ -1080,7 +1061,7 @@ void _passLoginFapper()
|
||||
ZeroMemory(buffFG, sizeof(buffFG));
|
||||
};
|
||||
|
||||
stt->doEmitionGreenFoundData("WFLogin list loaded (" + QString(std::to_string(MaxWFLogin).c_str()) + " entries)");
|
||||
stt->doEmitionGreenFoundData("WFLogin list loaded (" + QString::number(MaxWFLogin) + " entries)");
|
||||
fclose(wfPassList);
|
||||
fclose(wfLoginList);
|
||||
}
|
||||
@ -1123,7 +1104,7 @@ void _passLoginFapper()
|
||||
ZeroMemory(buffFG, sizeof(buffFG));
|
||||
};
|
||||
|
||||
stt->doEmitionGreenFoundData("SSH Password list loaded (" + QString(std::to_string(MaxSSHPass).c_str()) + " entries)");
|
||||
stt->doEmitionGreenFoundData("SSH Password list loaded (" + QString::number(MaxSSHPass) + " entries)");
|
||||
|
||||
fclose(sshlpList);
|
||||
}
|
||||
@ -1133,9 +1114,9 @@ void _passLoginFapper()
|
||||
stt->doEmitionKillSttThread();
|
||||
};
|
||||
|
||||
stt->doEmitionYellowFoundData("BA: ~" + QString(std::to_string(MaxLogin * MaxPass/gTimeOut/60).c_str())
|
||||
+ "; WF: ~" + QString(std::to_string(MaxWFLogin * MaxWFPass/gTimeOut/60).c_str())
|
||||
+ "; SSH: ~" + QString(std::to_string(MaxSSHPass/gTimeOut/60).c_str()));
|
||||
stt->doEmitionYellowFoundData("BA: ~" + QString::number(MaxLogin * MaxPass/gTimeOut/60)
|
||||
+ "; WF: ~" + QString::number(MaxWFLogin * MaxWFPass/gTimeOut/60)
|
||||
+ "; SSH: ~" + QString::number(MaxSSHPass/gTimeOut/60));
|
||||
}
|
||||
|
||||
void ReadUTF8(FILE* nFile, char *cp)
|
||||
@ -1292,7 +1273,7 @@ std::string xcode(LPCSTR src, UINT srcCodePage, UINT dstCodePage)
|
||||
#endif
|
||||
return res;
|
||||
}
|
||||
void _NegativeFapper()
|
||||
void _NegativeLoader()
|
||||
{
|
||||
FILE *nFile = fopen("negatives.txt", "rb");
|
||||
|
||||
@ -1369,10 +1350,8 @@ void CheckMaskBits(char *res, int index)
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
stt->doEmitionRedFoundData("[CheckMaskBits] Cannot parse IP list");
|
||||
stt->doEmitionKillSttThread();
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
@ -2307,11 +2286,11 @@ int startScan(char* args)
|
||||
ZeroMemory(ipsend, sizeof(ipsend));
|
||||
|
||||
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
|
||||
CreateDirectory(L"./result_files", NULL);
|
||||
CreateDirectory(L(RESULT_DIR_NAME), NULL);
|
||||
#else
|
||||
struct stat str = {0};
|
||||
if (stat("./result_files", &str) == -1) {
|
||||
mkdir("./result_files", 0700);
|
||||
if (stat(RESULT_DIR_NAME, &str) == -1) {
|
||||
mkdir(RESULT_DIR_NAME, 0700);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -2330,7 +2309,6 @@ int startScan(char* args)
|
||||
int resInit = fInit(gMode, gRange);
|
||||
if(resInit == -1 )
|
||||
{
|
||||
|
||||
stt->doEmitionRedFoundData("[Error] fInit failure");
|
||||
stt->doEmitionKillSttThread();
|
||||
|
||||
@ -2340,8 +2318,8 @@ int startScan(char* args)
|
||||
stt->doEmitionIPRANGE(QString(saveEndIP));
|
||||
stt->doEmitionThreads(QString::number(0) + "/" + QString::number(gThreads));
|
||||
|
||||
_passLoginFapper();
|
||||
_NegativeFapper();
|
||||
_passLoginLoader();
|
||||
_NegativeLoader();
|
||||
|
||||
char res[256] = {0};
|
||||
if (gMode == 0)
|
||||
@ -2467,10 +2445,10 @@ stt->doEmitionThreads(QString::number(0) + "/" + QString::number(gThreads));
|
||||
if(trackerOK)
|
||||
{
|
||||
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
|
||||
if(trackerOK) _beginthread( (void(*)(void*))_tracker, 0, NULL );
|
||||
_beginthread( (void(*)(void*))_tracker, 0, NULL );
|
||||
#else
|
||||
pthread_t thrt;
|
||||
if(trackerOK) pthread_create(&thrt, NULL, (void *(*)(void*))&_tracker, NULL);
|
||||
pthread_create(&thrt, NULL, (void *(*)(void*))&_tracker, NULL);
|
||||
#endif
|
||||
};
|
||||
|
||||
@ -2482,11 +2460,10 @@ stt->doEmitionThreads(QString::number(0) + "/" + QString::number(gThreads));
|
||||
pthread_create(&thrtt, NULL, (void *(*)(void*))&_timer, NULL);
|
||||
#endif
|
||||
|
||||
|
||||
char dataEntry[1024] = {0};
|
||||
|
||||
int innerCounter = 0;
|
||||
int sz = strlen(saveEndIP);
|
||||
|
||||
for(int i = 0; i < sz; ++i)
|
||||
{
|
||||
if(saveEndIP[i] == '\\')
|
||||
|
Loading…
Reference in New Issue
Block a user