BA+FTP+finder

This commit is contained in:
cora48 2015-03-17 17:30:53 +03:00
parent 235db21829
commit e144b2823d
14 changed files with 284 additions and 1194 deletions

View File

@ -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;
}

View File

@ -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: {
data[strstr(data, "\r\n\r\n") - data] = '\0';
stt->doEmitionAddOutData(QString(data));
break;
}
if (type == CURLINFO_HEADER_OUT) {
Activity += strlen(data);
data[strstr(data, "\r\n\r\n") - data] = '\0';
stt->doEmitionAddOutData(QString(data));
}
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)

View File

@ -19,12 +19,12 @@ void DrawerTh_ME2Scanner::doEmitionAddPolyLine()
void MakePolygonLine(int gWidth)
{
DrawerTh_ME2Scanner::polyVect.clear();
int x = 0;
int tx = 0;
int x = 0;
int tx = 0;
int xtx = 0;
QPointF qp(0, ME2YPOS);
DrawerTh_ME2Scanner::polyVect.append(qp);
int fact1 = 0,
int fact1 = 0,
fact2 = 0,
fact3 = 0,
fact4 = 0,
@ -35,86 +35,86 @@ void MakePolygonLine(int gWidth)
bool state = stt->isRunning();
for(int i = 1; i < 130; ++i)
{
x = qrand() % 4 + 2 + i;
xtx = x + tx;
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;
if(xtx < 16 ) fact1+=2;
else fact1-=2;
};
};
}
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)
{
if(xtx < 52 ) fact2+=2;
if(xtx < 52 ) fact2+=2;
else fact2-=2;
};
};
}
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)
{
if(xtx < 92 ) fact3+=2;
if(xtx < 92 ) fact3+=2;
else fact3-=2;
};
};
}
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)
{
if(xtx < 132 ) fact4+=2;
if(xtx < 132 ) fact4+=2;
else fact4-=2;
};
};
}
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)
{
if(xtx < 172 ) fact5+=2;
if(xtx < 172 ) fact5+=2;
else fact5-=2;
};
};
}
if(xtx > 194 && xtx < 232)
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)
{
if(xtx < 212 ) fact6+=2;
if(xtx < 212 ) fact6+=2;
else fact6-=2;
};
};
}
if(xtx > 234 && xtx < 269)
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;
};
};
DrawerTh_ME2Scanner::polyVect.append(qp);
tx = x;
DrawerTh_ME2Scanner::polyVect.append(qp);
tx = x;
};
AnomC1 = 0;

View File

@ -1,7 +1,7 @@
#ifndef DRAWERTH_ME2SCANNER_H
#define DRAWERTH_ME2SCANNER_H
#define ME2YPOS 100
#define ME2YPOS 97
#define ME2GRADPOS 10
#include "STh.h"

View File

@ -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
View 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
View 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

File diff suppressed because it is too large Load Diff

View File

@ -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)

View File

@ -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];

View File

@ -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

View File

@ -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");
@ -3039,8 +3035,7 @@ void RestoreSession()
while(fgets(resStr, 128, resFile) != NULL)
{
if(strstr(resStr, "[SESSION]:") != NULL)
{
{
lex = strtok(strstr(resStr, "[SESSION]:") + strlen("[SESSION]:"), " ");
gMode = atoi(lex);
lex = strtok(NULL, " ");
@ -3140,38 +3135,39 @@ 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) {
lex = strstr(resStr, "[PING]:") + strlen("[PING]:");
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)
{
lex[strlen(lex) - 1] = '\0';
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) {
const QString &tempLex = loadNescaSetup(resStr, "[TIMEOUT]:");
if (strlen(lex) > 1)
{
lex[strlen(lex) - 1] = '\0';
ui->pingingOnOff->setChecked(strcmp(lex, "true") == 0 ? true : false);
};
}
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);
ui->iptoLine_value_2->setText(tempLex);
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());
ZeroMemory(resStr, sizeof(resStr));
}
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));
};
fclose(resFile);
@ -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;
@ -3300,16 +3296,15 @@ void _startMsgCheck()
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
WSADATA wsda;
if (WSAStartup(0x0101, &wsda))
{
{
stt->doEmitionRedFoundData("WSAStartup failed.");
stt->doEmitionKillSttThread();
stt->doEmitionKillSttThread();
};
#endif
_startVerCheck();
_startMsgCheck();
_startMsgCheck();
qrp.setMinimal(true);
}
void nesca_3::playFcknSound()

View File

@ -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>

View File

@ -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};
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);
char curIPBuff[256] = {0}, targetNPers[32] = {0};
strcpy(curIPBuff, "--->");
strcat(curIPBuff, buff);
stt->doEmitionIPRANGE(QString(curIPBuff));
stt->doEmitionTargetsLeft(QString(targetNPers));
strcpy(metaIPDNS, 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,10 +973,8 @@ void _passLoginFapper()
ZeroMemory(buffFG, sizeof(buffFG));
};
stt->doEmitionGreenFoundData("Password list loaded (" + QString::number(MaxPass) + " entries)");
stt->doEmitionGreenFoundData("Password list loaded (" + QString(std::to_string(MaxPass).c_str()) + " entries)");
i = 0;
while(fgets(buffFG, 32, loginList) != NULL)
@ -999,20 +985,16 @@ void _passLoginFapper()
else strncat(loginLst[i++], buffFG, strlen(buffFG));
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();
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();
stt->doEmitionRedFoundData("[CheckMaskBits] Cannot parse IP list");
stt->doEmitionKillSttThread();
};
}
@ -2275,7 +2254,7 @@ int _GetDNSFromMask(char *mask, char *saveMask, char *saveMaskEnder)
if(globalScanFlag)
{
pthread_t thrc;
pthread_create(&thrc, NULL, (void *(*)(void*))&_connect, st );
pthread_create(&thrc, NULL, (void *(*)(void*))&_connect, st );
};
#endif
Sleep(gThreadDelay);
@ -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
@ -2329,8 +2308,7 @@ int startScan(char* args)
mode = gMode;
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)
@ -2446,7 +2424,7 @@ stt->doEmitionThreads(QString::number(0) + "/" + QString::number(gThreads));
_beginthread((void(*)(void*))_connect, 0, st);
#else
pthread_t thrc;
pthread_create(&thrc, NULL, (void *(*)(void*))&_connect, st);
pthread_create(&thrc, NULL, (void *(*)(void*))&_connect, st);
#endif
Sleep(gThreadDelay);
}
@ -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] == '\\')