From f1c4124de514be9e077767d0756a595d62bfa45c Mon Sep 17 00:00:00 2001 From: Chateau-Lav <49345925+Chateau-Lav@users.noreply.github.com> Date: Wed, 15 Apr 2020 21:30:59 -0400 Subject: [PATCH 1/8] Create vulnserverService.c Allows for installation as a service and auto recovery when exploited --- vulnserverService.c | 466 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 466 insertions(+) create mode 100644 vulnserverService.c diff --git a/vulnserverService.c b/vulnserverService.c new file mode 100644 index 0000000..880d387 --- /dev/null +++ b/vulnserverService.c @@ -0,0 +1,466 @@ +#define _WIN32_WINNT 0x501 + +/* +VulnServer - a deliberately vulnerable threaded TCP server application + +This is vulnerable software, don't run it on an important system! The author assumes no responsibility if +you run this software and your system gets compromised, because this software was designed to be exploited! + +Visit the authors blog for more details: http://grey-corner.blogspot.com +*/ + + +/* +Copyright (c) 2010, Stephen Bradshaw +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provid +ed with the distribution. + * Neither the name of the organization nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permi +ssion. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABI +LITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY T +HEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSI +BILITY OF SUCH DAMAGE. + +/* +Copyright (c) 2001-2002 Jarmo Muukka. +All rights reserved. + +General Structure and design for Windows Service +/* + +/* +Copyright (c) 2020 Jonathan Race. +All rights reserved. + +Compilation and overall structure redesign to allow for integration of vulnserver with a windows service. +*/ + +#include +#include +#include +#include +#include +#include + +#define VERSION "1.01" +#define DEFAULT_BUFLEN 4096 +#define DEFAULT_PORT "9999" + +void Function1(char *Input); +void EssentialFunc1(); +DWORD WINAPI ConnectionHandler(LPVOID CSocket); + +TCHAR* serviceName = TEXT("vulnserverService"); +SERVICE_STATUS serviceStatus; +SERVICE_STATUS_HANDLE serviceStatusHandle = 0; +HANDLE stopServiceEvent = 0; + +void WINAPI ServiceControlHandler( DWORD controlCode ) +{ + switch ( controlCode ) + { + case SERVICE_CONTROL_INTERROGATE: + break; + + case SERVICE_CONTROL_SHUTDOWN: + case SERVICE_CONTROL_STOP: + serviceStatus.dwCurrentState = SERVICE_STOP_PENDING; + SetServiceStatus( serviceStatusHandle, &serviceStatus ); + + SetEvent( stopServiceEvent ); + return; + + case SERVICE_CONTROL_PAUSE: + break; + + case SERVICE_CONTROL_CONTINUE: + break; + + default: + if ( controlCode >= 128 && controlCode <= 255 ) + // user defined control code + break; + else + // unrecognised control code + break; + } + + SetServiceStatus( serviceStatusHandle, &serviceStatus ); +} + +void WINAPI ServiceMain( DWORD argc, TCHAR* argv[] ) +{ + // initialise service status + serviceStatus.dwServiceType = SERVICE_WIN32; + serviceStatus.dwCurrentState = SERVICE_STOPPED; + serviceStatus.dwControlsAccepted = 0; + serviceStatus.dwWin32ExitCode = NO_ERROR; + serviceStatus.dwServiceSpecificExitCode = NO_ERROR; + serviceStatus.dwCheckPoint = 0; + serviceStatus.dwWaitHint = 0; + + serviceStatusHandle = RegisterServiceCtrlHandler( serviceName, ServiceControlHandler ); + + if ( serviceStatusHandle ) + { + // service is starting + serviceStatus.dwCurrentState = SERVICE_START_PENDING; + SetServiceStatus( serviceStatusHandle, &serviceStatus ); + + // do initialisation here + stopServiceEvent = CreateEvent( 0, FALSE, FALSE, 0 ); + + // running + serviceStatus.dwControlsAccepted |= (SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN); + serviceStatus.dwCurrentState = SERVICE_RUNNING; + SetServiceStatus( serviceStatusHandle, &serviceStatus ); + + do + { + SecureServerMain(); + } + while ( WaitForSingleObject( stopServiceEvent, 5000 ) == WAIT_TIMEOUT ); + + // service was stopped + serviceStatus.dwCurrentState = SERVICE_STOP_PENDING; + SetServiceStatus( serviceStatusHandle, &serviceStatus ); + + // do cleanup here + CloseHandle( stopServiceEvent ); + stopServiceEvent = 0; + + // service is now stopped + serviceStatus.dwControlsAccepted &= ~(SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN); + serviceStatus.dwCurrentState = SERVICE_STOPPED; + SetServiceStatus( serviceStatusHandle, &serviceStatus ); + } +} + +void RunService() +{ + SERVICE_TABLE_ENTRY serviceTable[] = + { + { serviceName, ServiceMain }, + { 0, 0 } + }; + + StartServiceCtrlDispatcher( serviceTable ); +} + +void InstallService() +{ + SC_HANDLE serviceControlManager = OpenSCManager( 0, 0, SC_MANAGER_CREATE_SERVICE ); + + if ( serviceControlManager ) + { + TCHAR path[ _MAX_PATH + 1 ]; + if ( GetModuleFileName( 0, path, sizeof(path)/sizeof(path[0]) ) > 0 ) + { + SC_HANDLE service = CreateService( serviceControlManager, + serviceName, serviceName, + SERVICE_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS, + SERVICE_AUTO_START, SERVICE_ERROR_IGNORE, path, + 0, 0, 0, 0, 0 ); + if ( service ) + CloseServiceHandle( service ); + } + + CloseServiceHandle( serviceControlManager ); + } +} + +void UninstallService() +{ + SC_HANDLE serviceControlManager = OpenSCManager( 0, 0, SC_MANAGER_CONNECT ); + + if ( serviceControlManager ) + { + SC_HANDLE service = OpenService( serviceControlManager, + serviceName, SERVICE_QUERY_STATUS | DELETE ); + if ( service ) + { + SERVICE_STATUS serviceStatus; + if ( QueryServiceStatus( service, &serviceStatus ) ) + { + if ( serviceStatus.dwCurrentState == SERVICE_STOPPED ) + DeleteService( service ); + } + + CloseServiceHandle( service ); + } + + CloseServiceHandle( serviceControlManager ); + } +} + +int _tmain( int argc, TCHAR* argv[] ) +{ + if ( argc > 1 && lstrcmpi( argv[1], TEXT("install") ) == 0 ) + { + InstallService(); + } + else if ( argc > 1 && lstrcmpi( argv[1], TEXT("uninstall") ) == 0 ) + { + UninstallService(); + } + else + { + RunService(); + } + + return 0; +} + +int SecureServerMain() { + printf("Starting SecureServer version %s\n", VERSION); + EssentialFunc1(); // Call function from external dll + printf("\nThis is vulnerable software!\nDo not allow access from untrusted systems or networks!\n\n"); + WSADATA wsaData; + SOCKET ListenSocket = INVALID_SOCKET, + ClientSocket = INVALID_SOCKET; + struct addrinfo *result = NULL, hints; + int Result; + struct sockaddr_in ClientAddress; + int ClientAddressL = sizeof(ClientAddress); + + Result = WSAStartup(MAKEWORD(2,2), &wsaData); + if (Result != 0) { + printf("WSAStartup failed with error: %d\n", Result); + return 1; + } + + ZeroMemory(&hints, sizeof(hints)); + hints.ai_family = AF_INET; + hints.ai_socktype = SOCK_STREAM; + hints.ai_protocol = IPPROTO_TCP; + hints.ai_flags = AI_PASSIVE; + + Result = getaddrinfo(NULL, DEFAULT_PORT, &hints, &result); + if ( Result != 0 ) { + printf("Getaddrinfo failed with error: %d\n", Result); + WSACleanup(); + return 1; + } + + ListenSocket = socket(result->ai_family, result->ai_socktype, result->ai_protocol); + if (ListenSocket == INVALID_SOCKET) { + printf("Socket failed with error: %ld\n", WSAGetLastError()); + freeaddrinfo(result); + WSACleanup(); + return 1; + } + + Result = bind( ListenSocket, result->ai_addr, (int)result->ai_addrlen); + if (Result == SOCKET_ERROR) { + printf("Bind failed with error: %d\n", WSAGetLastError()); + closesocket(ListenSocket); + WSACleanup(); + return 1; + } + + freeaddrinfo(result); + + Result = listen(ListenSocket, SOMAXCONN); + if (Result == SOCKET_ERROR) { + printf("Listen failed with error: %d\n", WSAGetLastError()); + closesocket(ListenSocket); + WSACleanup(); + return 1; + } + + while(ListenSocket) { + printf("Waiting for client connections...\n"); + + ClientSocket = accept(ListenSocket, (SOCKADDR*)&ClientAddress, &ClientAddressL); + if (ClientSocket == INVALID_SOCKET) { + printf("Accept failed with error: %d\n", WSAGetLastError()); + closesocket(ListenSocket); + WSACleanup(); + return 1; + } + + printf("Received a client connection from %s:%u\n", inet_ntoa(ClientAddress.sin_addr), htons(ClientAddress.sin_port)); + CreateThread(0,0,ConnectionHandler, (LPVOID)ClientSocket , 0,0); + + } + + closesocket(ListenSocket); + WSACleanup(); + + return 0; +} + +void Function1(char *Input) { + char Buffer2S[140]; + strcpy(Buffer2S, Input); +} + +void Function2(char *Input) { + char Buffer2S[60]; + strcpy(Buffer2S, Input); +} + +void Function3(char *Input) { + char Buffer2S[2000]; + strcpy(Buffer2S, Input); +} + +void Function4(char *Input) { + char Buffer2S[1000]; + strcpy(Buffer2S, Input); +} + +DWORD WINAPI ConnectionHandler(LPVOID CSocket) { + int RecvBufLen = DEFAULT_BUFLEN; + char *RecvBuf = (char*)malloc(DEFAULT_BUFLEN); + char BigEmpty[1000]; + char *GdogBuf = malloc(1024); + int Result, SendResult, i, k; + memset(BigEmpty, 0, 1000); + memset(RecvBuf, 0, DEFAULT_BUFLEN); + SOCKET Client = (SOCKET)CSocket; + SendResult = send( Client, "Welcome to SecureServer! Enter HELP for help.\n", 47, 0 ); + if (SendResult == SOCKET_ERROR) { + printf("Send failed with error: %d\n", WSAGetLastError()); + closesocket(Client); + return 1; + } + while (CSocket) { + Result = recv(Client, RecvBuf, RecvBufLen, 0); + if (Result > 0) { + if (strncmp(RecvBuf, "HELP ", 5) == 0) { + const char NotImplemented[47] = "Command specific help has not been implemented\n"; + SendResult = send( Client, NotImplemented, sizeof(NotImplemented), 0 ); + } else if (strncmp(RecvBuf, "HELP", 4) == 0) { + const char ValidCommands[251] = "Valid Commands:\nHELP\nSTATS [stat_value]\nRTIME [rtime_value]\nLTIME [ltime_value]\nSRUN [srun_value]\nTRUN [trun_value]\nGMON [gmon_value]\nGDOG [gdog_value]\nKSTET [kstet_value]\nGTER [gter_value]\nHTER [hter_value]\nLTER [lter_value]\nKSTAN [lstan_value]\nEXIT\n"; + SendResult = send( Client, ValidCommands, sizeof(ValidCommands), 0 ); + } else if (strncmp(RecvBuf, "STATS ", 6) == 0) { + char *StatBuf = malloc(120); + memset(StatBuf, 0, 120); + strncpy(StatBuf, RecvBuf, 120); + SendResult = send( Client, "STATS VALUE NORMAL\n", 19, 0 ); + } else if (strncmp(RecvBuf, "RTIME ", 6) == 0) { + char *RtimeBuf = malloc(120); + memset(RtimeBuf, 0, 120); + strncpy(RtimeBuf, RecvBuf, 120); + SendResult = send( Client, "RTIME VALUE WITHIN LIMITS\n", 26, 0 ); + } else if (strncmp(RecvBuf, "LTIME ", 6) == 0) { + char *LtimeBuf = malloc(120); + memset(LtimeBuf, 0, 120); + strncpy(LtimeBuf, RecvBuf, 120); + SendResult = send( Client, "LTIME VALUE HIGH, BUT OK\n", 25, 0 ); + } else if (strncmp(RecvBuf, "SRUN ", 5) == 0) { + char *SrunBuf = malloc(120); + memset(SrunBuf, 0, 120); + strncpy(SrunBuf, RecvBuf, 120); + SendResult = send( Client, "SRUN COMPLETE\n", 14, 0 ); + } else if (strncmp(RecvBuf, "TRUN ", 5) == 0) { + char *TrunBuf = malloc(3000); + memset(TrunBuf, 0, 3000); + for (i = 5; i < RecvBufLen; i++) { + if ((char)RecvBuf[i] == '.') { + strncpy(TrunBuf, RecvBuf, 3000); + Function3(TrunBuf); + break; + } + } + memset(TrunBuf, 0, 3000); + SendResult = send( Client, "TRUN COMPLETE\n", 14, 0 ); + } else if (strncmp(RecvBuf, "GMON ", 5) == 0) { + char GmonStatus[13] = "GMON STARTED\n"; + for (i = 5; i < RecvBufLen; i++) { + if ((char)RecvBuf[i] == '/') { + if (strlen(RecvBuf) > 3950) { + Function3(RecvBuf); + } + break; + } + } + SendResult = send( Client, GmonStatus, sizeof(GmonStatus), 0 ); + } else if (strncmp(RecvBuf, "GDOG ", 5) == 0) { + strncpy(GdogBuf, RecvBuf, 1024); + SendResult = send( Client, "GDOG RUNNING\n", 13, 0 ); + } else if (strncmp(RecvBuf, "KSTET ", 6) == 0) { + char *KstetBuf = malloc(100); + strncpy(KstetBuf, RecvBuf, 100); + memset(RecvBuf, 0, DEFAULT_BUFLEN); + Function2(KstetBuf); + SendResult = send( Client, "KSTET SUCCESSFUL\n", 17, 0 ); + } else if (strncmp(RecvBuf, "GTER ", 5) == 0) { + char *GterBuf = malloc(180); + memset(GdogBuf, 0, 1024); + strncpy(GterBuf, RecvBuf, 180); + memset(RecvBuf, 0, DEFAULT_BUFLEN); + Function1(GterBuf); + SendResult = send( Client, "GTER ON TRACK\n", 14, 0 ); + } else if (strncmp(RecvBuf, "HTER ", 5) == 0) { + char THBuf[3]; + memset(THBuf, 0, 3); + char *HterBuf = malloc((DEFAULT_BUFLEN+1)/2); + memset(HterBuf, 0, (DEFAULT_BUFLEN+1)/2); + i = 6; + k = 0; + while ( (RecvBuf[i]) && (RecvBuf[i+1])) { + memcpy(THBuf, (char *)RecvBuf+i, 2); + unsigned long j = strtoul((char *)THBuf, NULL, 16); + memset((char *)HterBuf + k, (byte)j, 1); + i = i + 2; + k++; + } + Function4(HterBuf); + memset(HterBuf, 0, (DEFAULT_BUFLEN+1)/2); + SendResult = send( Client, "HTER RUNNING FINE\n", 18, 0 ); + } else if (strncmp(RecvBuf, "LTER ", 5) == 0) { + char *LterBuf = malloc(DEFAULT_BUFLEN); + memset(LterBuf, 0, DEFAULT_BUFLEN); + i = 0; + while(RecvBuf[i]) { + if ((byte)RecvBuf[i] > 0x7f) { + LterBuf[i] = (byte)RecvBuf[i] - 0x7f; + } else { + LterBuf[i] = RecvBuf[i]; + } + i++; + } + for (i = 5; i < DEFAULT_BUFLEN; i++) { + if ((char)LterBuf[i] == '.') { + Function3(LterBuf); + break; + } + } + memset(LterBuf, 0, DEFAULT_BUFLEN); + SendResult = send( Client, "LTER COMPLETE\n", 14, 0 ); + } else if (strncmp(RecvBuf, "KSTAN ", 6) == 0) { + SendResult = send( Client, "KSTAN UNDERWAY\n", 15, 0 ); + } else if (strncmp(RecvBuf, "EXIT", 4) == 0) { + SendResult = send( Client, "GOODBYE\n", 8, 0 ); + printf("Connection closing...\n"); + closesocket(Client); + return 0; + } else { + SendResult = send( Client, "UNKNOWN COMMAND\n", 16, 0 ); + } + if (SendResult == SOCKET_ERROR) { + printf("Send failed with error: %d\n", WSAGetLastError()); + closesocket(Client); + return 1; + } + } else if (Result == 0) { + printf("Connection closing...\n"); + closesocket(Client); + return 0; + } else { + printf("Recv failed with error: %d\n", WSAGetLastError()); + closesocket(Client); + return 1; + } + + } +} From c68abadb40c0018077f63fa75816441a1e8d2189 Mon Sep 17 00:00:00 2001 From: Chateau-Lav <49345925+Chateau-Lav@users.noreply.github.com> Date: Wed, 15 Apr 2020 21:31:53 -0400 Subject: [PATCH 2/8] Add files via upload Compiled from source code --- vulnserverService.exe | Bin 0 -> 56296 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 vulnserverService.exe diff --git a/vulnserverService.exe b/vulnserverService.exe new file mode 100644 index 0000000000000000000000000000000000000000..7bac7260586e20d1be17998d3c268faf32999768 GIT binary patch literal 56296 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

vQ=69r zvg9b|S~ePh5W^%+;wMC9G6`ta=;g~-scaUB^L27aFeXVOHY2x{(;Nz7MT!q>YT^iyxSc1enWqcv zwIK{@s$HZWB6TSfxfKS7-=gU!j}$r{BTg!FeA;M{c4G8WtmxrkZVdWZ^<~K!0zZ?X z;%!Lt`QZW?QYQBh{-Bt_;bAt^;nixy?&hFNkhUk zL&Ak3!7gP`kK)5hws#4Z@a|;E7m1V%WYbK}THoSp4Yu=+hsb>GEcs$VGEU0C!g32( zshP0kO9Y%LWi;`2a;b(_F6&Bx%#<>aBbLXLuM$AMlz}V>m?!|J0O0tO1W*L2%j=2aY5|lA z02J2TObn%k);guLyca! z{!U+u*HCLSg+i-T3cOErE~@JV)oK`;S`yk3ncpdmp+TWTL+=P;K{weY&`u5Y*Dvv* z`U?cSUV~{}lqDAm^dbCo`6-C9Qi-Tr8ut1Va{w&)b)m2>B_q`0`dyt4XMZ+TfwxvRFY)GHW<=>)}f z(5bMz%8Pevyam;+3J~G_gXFKKn32bZAm3wO7gm@AtF_$sj9B@RF>4ay>&H|jMBPUnx5>gDoaQnp(j&OJ#H6x(si(^ zuBOym&dtPZI!y9Cs4b*2yABss))i>*NFCOwE34Qj9o2||j@HpCSCO}-w6eO^TU=LB zSX)+E!7_}g)$ZE5>WUgRMu&?l>#Dss*P)*HJ7H|Bo&-zR&T~~m*J^jM83Nc8vdi=oAr|D`$||@n$u8vn;LvH*YN@HMhD}flk4x4<ZycF!4=Bz zek02{A5~3lCA?N6n_?uZ!dr%@8?^?h>@muzM#|b-tK1&EtB5Luyc(8kOeS5XdJAs# zR?V-hX4CXUa^-3$jeeFqpvGHU>75I2zxFFgimNNjIZ@s@iKw33)ir3+HEg<0Av$w| zs}@)BN_AJm&@*&Os#EBIf_UR8t~)1%$PEH!>dCx0Rn?T%6&J8sIxKuJui#d6uGCGG z&4;0`*V8HA5?5`hyPDmgqk;=7IK|~IZ(*qmwZQU+CQq9_BQAM%eDZvxozE+7{0c&& zW87q*gf=lpa2ir5GtHS?dWzZ!(;Kza`LF^#$>qUYs5RbV40;$MQG73204vl9M1!Qh z!Q-xAMS4O_X<2b?E_3V1ZEos0=GS7>_lmqKideCpj*g|g64qB+EcJM-L{Bbuq5X@R zVWm18*Ef6TRhQMeS(%>5`>pa^@7yw%7p{G?o>Easok^9etlEXqip|kev>61=QN&!p z6PKv!cnj}3Sb1VfX_=UlROm@+fyjKUQip}ldn(mYx`tKhY2Ngh-m9ul#ZV}WEgCW?GAI$xb=@(E=V9%91#r9Lzd+<>uUk7+EGd#tyy6{`qAx-G_I z6kgot`n-aEd6TcD0hD)`M$}$F)AOtGcMQI%;BCP2Qf!tzHEEdjLKL*3Qg|5~iD?ZL zvxoxI$U+LtBMT_7jI1f6Fll5F4~LD!kOQCwQ`bUIWkG=(buR$x$Xmq4a7eE3s*#kD zwVoPpNo8$;3+~7{Q%9Cz&OTp6(nfmRB`$OfJZZ$p_%RUkM|97%l~t68StBAf@If?v zirYsPW6)7&?;}Uj&{$knjrL86qeSWE^I?>W9?dEEWyVNM=k=5^Bg@NGZN{oHNf;-+ zKn38|0vHG7YjxfWB9$^KGay zeg}35s)+md9A+MY>(s_2tMu!EN zp_?#xTN&yF_cl6*mQ>@eMiFr@qbC)*Y6@LNoRf`mSQ;i5QX&J5hN z=mZ$MFjC>BMTh3h#9fLWb(I$tyUKH?;@(6D3yPpqE^bPOK+~9GD0D6EJ%&)_;r1d9 zs^zjS9|}#w&4o^N8_h3sad$BUnufax9ipZ4tKtS9mK+$KxsnRv%*rS5z7C3^ob8P}=k=Xp1e zMnQEKRh#2of_?!jHhO za%g}hwgnkW(vWd6#IRTCh{5`vrFA6~uwwIF_)wKNu4n~CCN;`Z#V8Pie5+2gNS~8{2dmMMl$=bkznyn&QHhLy4 zG1|aGq{(CBQs7IHR5qG8hL1-^DS2^;H(i)djZ=k^W`SKmY2%UU6bKzLM!M=k!JeMP z6|vESDRv9AxiOXU(={475u)+_IUB`wP0~|FtGeYZ z!>&RwE{~N^en>Xai%kC?J(fdnGb_ViNjjZA0)HiJWMUhdNnia42A0s9nwL&#rdbAS zxO*vf+jDA&58hy+r%22XOVWf1x6YZmboQ;cPMvb&gb5}I;wwRd3@L-58OA@$p?(5J zeV7AXu0M!Pz^_&bsY3|qDUiR-1fnVN#reuy7;Bdsn_F|1QCV?`EopI$r=;;@fVigp zd2vM>?&u^D!7~c9EjgL*f!4Rk?ZB`bP6oskZXM`qGDJ`UqT*4PX^6ljmoD*7rUzpv z4N)zvfg=B@gWidwZ~dWaR$K8-KfRCVP$g>5g5lM>b@cjghq)=;+UrWU?EFt<`8D%@ zBMW?`ugABFDX}&l-%S4#k6h7nWUd;=v>fe2Pydaq@;^%z`qi!;bWajmJ^~!=IQtDq z2*}YG;#FU$v7-YMTwe8697hbv!8*y^!#m*Hhm$0j zrAGWEiTaTf&@-blnI)H=7vC?uqxr-OR&jjK(6Qp7J)|8U>G7{njr_(pdHo_G}%K^MU=cH8!C`aW~mofC{o;!(@fryHC=`f%E8Q3 zWXA2VssWkamOwK%frcJaG;qzRNT6AkKvR@J)0jXrGl6Dt0?pI}8hSj^sLzB1n)wMd zqY`Lp6KE_6G*t;SXHYwa+^2gIXg*J%DNUd`oIq2QK(jxA#+g8~XDChHK6r#t!#FOr ze|`iV5qWXUH?CWjP<9I(-XJIMA#fOw8LMOZIBC5+XX;dvN?)Kx0*)Ue`UKAlqYNbt zIkYw?Xvm-GTTCMjR9f%X4~HkIW+@Gl3Jo+A`8iN0mPmOo@fCRq8j?eO*pQx99h<1- ziMC9wEb(|1oK;vBIbUAH@o%8%(P;1r(1 zTK_W@DPN`YQLrt>;)&jino)TBWg4RCW9KxK7yarf+$-+T^2&?lMfVcMBd4&sHfw&- zZKN}C3!TqN<09^_rt!Fl^Sm^&zdh@=+is&bTHwIQ%V-i_1A54bjL(@mlkUlFxLAmOO=BqTvfjH2R zuO=P}5}$wr>304eA=5QP%Zpv1mHkV&Nv=VVR<4K89f@)o`wWfvIZ^~`6+Ex6D3_oi zo#{J5{JV9Uh}e9!4ancJ^Aj#B8t$4@brksF#TSfPscue&R7(rJ>o1S-J~4G(R_^BJB$LF1d>>N$w(6Ql}JNK znX1olT$?2a{*pxFLGuVY(s7!l2l(~SKMg9)2u?E-e~of9J1>E*!p{0ijwVYh`}47~ zYbkp8Us-mlQ>sZ(r_Z9tPi(7Hr&N=oPN$#4(!z!g&ej!p`Tob5ZBCPr$U)vSRa=84g4Z$n*^fG-HR-Tyk zNlBog6&RyF)Bzii=|>W1PJqBj6G@=?Y$(l)!$XnjhZ4AGg~2G9Ml1s|qkkyPjJ*lS zj-kkOT75Fg**uhH#-^dj^nD3j8xm-G6KEbtpxKc?vpRuhO9IWp1e(nWG@hX}GxCQb z(>En>We=svqnj&$dheIWHJxUl2AUbu(6t+o=@S!ZE={1J9|SdU&7dK|fJ}EJ(9r9I zMw-k7ns*au#wF0~OQ6X}pxK^4Lo;|o?lYcEph-)h=^09s_XuokkTX4jYx*Mza#Fxz z;TUn!^b+>l0}9C(v{z(CkT|=}4e?Hi2e!0?iK+XjUcAd?SHIPM`@S z(6lAc%uS&2C(sln&@4-!nVLXD_g4nX&$uXoW^n>dN&?No1ey~G?P7ic%_j*owFxxu zCeTzR(CkZ~@g&gfNT4ZApm`yIrYM2ty9qST1e*I2Xz~+iS`uhxCeYC9wT9Z6o|iyV zHIycg)=SRIrS2fCMW30lgMjZ;;WGmKXhZAo$IKJLY2e4P7D2B|+)17D{z6?t+repQ zzRKAQfBq}y>a^Y)(@>g3Ow%U=F6&UP>-@3xOc1l5pzK;}GGQ%Fe1h&Fr>JEx z~<`N*81`YFpXrrFUy#|QZ9}46SLJVB%fY3oJc!H(}NT(sM zXMpU(t*Bm#UjWfY8LD^j!NE>vyfqGjW`iLwdLLe|Q#{4nu)>);BTrk$CN=m@*P&SM zSlwOa_crie1e0@BL%Q#zgVw`^&N+l&HA_cIIE^C?sRshX#vyA|IlAO;CLkMuY;ney z>*onHF9SJdpxF=Pi6N!9hu^8|d3^wy=VLTbj2#D3Yp}*JkS~nc&?`QW$TAIijRnnS zgB-fAI$%I%0kOp7P+m6!$w!DPQEk`&I)>jlmK(u>dkmC3@5OFxL6M-k( z&e8il2O8~8TyW7H|3rgFy$(d{qXZ4@g8@N0`iVV5m4g^{8wML;~8xU*J-5XgYJJ z`3T%|K*BDP$lM4O|ZcVayq)^JB#2jMwLfKs<(e z-wxzW1I=$pj=_K42a;vT{Roh3LtUH!vcpiWVOWx!AJfpQzWkqO$m?RzXme4J;+O_R z+piSJjYNYK-5NDO^tMBi=_3N!&iInj`|^toCG7xWkLg2seILjU1J`ySX$FLzXxI|t z@``UJ@t$9A-EV=04r+Kp=l6j;WU$Xsk{pvm)M;31Z8T_j84zu~PRPjtqOGC}wkcF{Q5b_(MF>t*DM4N|;+>Zc}4IcGZAf%eEk3AiIf30EyOb4gAQ^_- z4**&1jJMB+BnO4pJ>d)x@?O1FrX#xAAjd%j%o)cu83@#gLv8@#Flbl?WREjGcP|iX z&JeEp#vMSkeGo#?^8uM}kn=E*NK7BE`1CkybjC~G02=YUjYF0EJdjN>E|RW`5x;P0$+XE6b$)lhlw+5A+>_Z=5f74)}4A4x3KDvD-0nz6P zr1%X$b{I-p280e>XCDxcfo4?#O%IT~Sh+|a`ds`GgFa7yrqNIrKLN7cAo*n=Gm*RQ z3I7HpBUY!R*%2U416L|uddV};Tn?l(rVnvl2V|jvs|v^}1JVTKuv4=<-kQdzpPE=! z3?VspgXSSaDINr3H{|sw5Tl)6BpS@K^}6T>Lig}sL=Dn0K!{Vzosd&N8Vwp=fWeen zljbpaZU+dOPh4*^4M-YhpL$-!K=v5wq6$cnL2?U_qcLPPVmZELScswTZRRxkmIRk# zs#o8#6mP_0pJ?D$m@U=F z_4u{tHs+nz+)|DwZR4RvyrRC8KHwh^nt7XA=n*x%6{EkjEHYHlp$zeb;t#iG-E+@9 z%&YxE2;PUsrxn%T6mjOo5=al{Oy;c)wy31cTZZogVi1eP>ss*6i~+$mRPN84J$ki{W>6h2)m&m#>_Ur1pJ}ZL$mUb>r%@*sy{HH2l!4+hQhPI$r`vd^D zFM*A%Ui!Uid}6ba-pesU{8b$e-QD8FGiRI&_lN|^ewdqhDB@j-SHpSL$;$#>e7DVe zr|)hqF)=mZ;~z4NC*Yi3yuwd2z9smCF1Xr!^dga0{mE}sA^jQ!&#sAnRs+AzL81jG zmB1L|i-fWC#^wP36ln}-#gEJY)OqN4TnqsJDG37-@ZsGsBa!U$;~T(nV%mMaI|=yT zY6U}@4z&Z7KjyB*)vj{4mp(`0WkbB#%Re;CpSHBi^x^F@5^A(^1Ce<@h-h z`i&X=cV)<7jlZvgn+*6>!jJZlqYDAN?WwLszpfMab2*&ITV03u@S$c^jk~UhzWU&) zEY#k7Rb}Wugo0)zeiepz6Lk|=#(o1uW#{S%kLOv^Q{fm-P-wDCF&2hB;&*X`Lh-NO zsuI*i4y{b*FoDQfT_Dxyv>#}J1HqKyCPbAO{}Uz7snjc+_ZM!sR=hIQeEARAi1rk# zqu4L~P!&P=ke}{}wZ3+};6mlNAJ5?#;gKxyYZ~5qv|H+`RgKU4n?A&L&L1-3@?hk) zcHRuttTlOJiYQis=>6~d2K2$`h?^VQsap7FE4{5vq;JEW_(=ZI6X@4+&>Qj; z{(WO_dvFQ9kSzO_d(la@qif`8Uc4_uOVhD>N6$t`vyPw+R7Zu=;`gD*lrbuCOX7|F zN)S)v=10pDzYwGv%J4;J`pF>l5g7KHT6tR;TJfsO#{YDXCP)2IAFajd)h@a(8teRW zdm}y@{=W*lx}G*-AedjoL)E@hD%3`*c&PerosvVKkR~E&;pa0myX&v`(l;P?K6^bo zJN5-ndOW;t@=WQB>H-2o{?`H{bXa~n7+hETRDb>PxJnK@DG?Hfmo352gQBzWN>A_} z;`RE^)3XwM{g(EyQGOzx=cCFl{P7Zxi%v*GxRd*LkT#~=IC|%iL4g}P6ff}!m$Rh zM(J;0JlJL-WPqzor2JE026k3qu;m%v{l$UGvv-}?Y!KNfDP8m(2ihJT@aDATk88cu z6jb!!8!`|MT(S!zV_EZ;;kUFp`WoIZ^VNE?>2NC~ZURR;dQqanjI)*xrzUk3FaMuA zZ!cR^d5aZmt&%xBRRlRq?B_kK;&h1RjScr=22!KA*f2H(nw(nIZAUr5W%)9!TMr9D|W9SKhyi2Wh!^aaDAk z&qk!ZD8PE9F{tljfQ3)zH4zbV81kx2P;fj-bhW>u*KW26bIA}2WhOfqx0<1>Ni?Ps cPK+ce21`U;#&bir$5YFES&m+3GylfG2Y%x(B>(^b literal 0 HcmV?d00001 From 79f380b16e2867d9db29625079c24fb13e88f65c Mon Sep 17 00:00:00 2001 From: Chateau-Lav <49345925+Chateau-Lav@users.noreply.github.com> Date: Wed, 15 Apr 2020 21:33:06 -0400 Subject: [PATCH 3/8] Rename vulnserverService.c to service/vulnserverService.c --- vulnserverService.c => service/vulnserverService.c | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename vulnserverService.c => service/vulnserverService.c (100%) diff --git a/vulnserverService.c b/service/vulnserverService.c similarity index 100% rename from vulnserverService.c rename to service/vulnserverService.c From f80c361d620ce15c8f7ad0bbba7a4f66dce91810 Mon Sep 17 00:00:00 2001 From: Chateau-Lav <49345925+Chateau-Lav@users.noreply.github.com> Date: Wed, 15 Apr 2020 21:33:20 -0400 Subject: [PATCH 4/8] Delete vulnserverService.exe --- vulnserverService.exe | Bin 56296 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 vulnserverService.exe diff --git a/vulnserverService.exe b/vulnserverService.exe deleted file mode 100644 index 7bac7260586e20d1be17998d3c268faf32999768..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56296 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

vQ=69r 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 From 5fb7e1755c3848de363d6d0d322380c3672d24a0 Mon Sep 17 00:00:00 2001 From: Chateau-Lav <49345925+Chateau-Lav@users.noreply.github.com> Date: Wed, 15 Apr 2020 21:34:10 -0400 Subject: [PATCH 5/8] Add files via upload compiled code from same build --- service/essfunc.dll | Bin 0 -> 28727 bytes service/vulnserverService.exe | Bin 0 -> 56296 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 service/essfunc.dll create mode 100644 service/vulnserverService.exe diff --git a/service/essfunc.dll b/service/essfunc.dll new file mode 100644 index 0000000000000000000000000000000000000000..fa1bcfd054ca459042fa42e14cf1709845ebd4bd GIT binary patch literal 28727 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 literal 0 HcmV?d00001 diff --git a/service/vulnserverService.exe b/service/vulnserverService.exe new file mode 100644 index 0000000000000000000000000000000000000000..7bac7260586e20d1be17998d3c268faf32999768 GIT binary patch literal 56296 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

vQ=69r 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 literal 0 HcmV?d00001 From 77076d97c7e45fd6101a03ea3f41b5ae3e0a286e Mon Sep 17 00:00:00 2001 From: Chateau-Lav <49345925+Chateau-Lav@users.noreply.github.com> Date: Wed, 15 Apr 2020 21:40:33 -0400 Subject: [PATCH 6/8] Create readme.md --- service/readme.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 service/readme.md diff --git a/service/readme.md b/service/readme.md new file mode 100644 index 0000000..9595516 --- /dev/null +++ b/service/readme.md @@ -0,0 +1,22 @@ +# Vulnserver Windows Service + +Provides that ability to allow for integration into training environments, and the automation of auto-recovery after exploitation. + +A good guide to installing and setting up environmental variables: +``https://www.ics.uci.edu/~pattis/common/handouts/mingweclipse/mingw.html`` + +Once setup you can run the following from your powershell prompt: + +Builds the Essential Function DLL: + +``gcc.exe -c essfunc.c`` +``gcc -shared -o essfunc.dll essfunc.o '-Wl,--out-implib=libessfunc.a' '-Wl,--image-base=0x62500000'`` + +Builds the Vulnserver Service Executable and links to the DLL: + +``gcc.exe secureserver.c -o secureserver.exe -lws2_32 ./libessfunc.a`` + +Sets the Auto Restart options for the Windows Service and Starts it: + +``sc.exe failure SecureServer actions="restart/60000/restart/60000/restart/60000" reset=4000`` +``Get-Service SecureServer | Start-Service`` From 94bdc2bc948526d92b2498050fe55a53bcaff418 Mon Sep 17 00:00:00 2001 From: Chateau-Lav <49345925+Chateau-Lav@users.noreply.github.com> Date: Wed, 15 Apr 2020 21:47:39 -0400 Subject: [PATCH 7/8] Update readme.md --- service/readme.md | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/service/readme.md b/service/readme.md index 9595516..42ea0b2 100644 --- a/service/readme.md +++ b/service/readme.md @@ -2,6 +2,15 @@ Provides that ability to allow for integration into training environments, and the automation of auto-recovery after exploitation. +When run, it will only utilize the default port: ``9999`` + +To install and uninstall the program as a service, run the following: + +``vulnserverService.exe install`` +``vulnserverService.exe uninstall`` +- Ensure the Service is stopped prior to uninstall + +## Steps for Compiling the Source Code: A good guide to installing and setting up environmental variables: ``https://www.ics.uci.edu/~pattis/common/handouts/mingweclipse/mingw.html`` @@ -14,9 +23,9 @@ Builds the Essential Function DLL: Builds the Vulnserver Service Executable and links to the DLL: -``gcc.exe secureserver.c -o secureserver.exe -lws2_32 ./libessfunc.a`` +``gcc.exe vulnserverService.c -o vulnserverService.exe -lws2_32 ./libessfunc.a`` Sets the Auto Restart options for the Windows Service and Starts it: -``sc.exe failure SecureServer actions="restart/60000/restart/60000/restart/60000" reset=4000`` -``Get-Service SecureServer | Start-Service`` +``sc.exe failure vulnserverService actions="restart/60000/restart/60000/restart/60000" reset=4000`` +``Get-Service vulnserverService | Start-Service`` From 20802f27fe08bda1912d0a253f3392cb50a63d24 Mon Sep 17 00:00:00 2001 From: Chateau-Lav <49345925+Chateau-Lav@users.noreply.github.com> Date: Wed, 15 Apr 2020 21:49:17 -0400 Subject: [PATCH 8/8] Create essfunc.c --- service/essfunc.c | 120 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 service/essfunc.c diff --git a/service/essfunc.c b/service/essfunc.c new file mode 100644 index 0000000..65325a4 --- /dev/null +++ b/service/essfunc.c @@ -0,0 +1,120 @@ +// essfunc.dll for Vulnserver +// Visit my blog for more details: http://www.thegreycorner.com/ + +/* +Copyright (c) 2010, Stephen Bradshaw +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + * Neither the name of the organization nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#include +#include + +#define VERSION "1.00" + + +void EssentialFunc1() { + printf ("Called essential function dll version %s\n", VERSION); +} + +void EssentialFunc2() { + __asm__("jmp *%esp\n\t" + "jmp *%eax\n\t" + "pop %eax\n\t" + "pop %eax\n\t" + "ret"); +} + +void EssentialFunc3() { + __asm__("jmp *%esp\n\t" + "jmp *%ecx\n\t" + "pop %ebx\n\t" + "pop %ebx\n\t" + "ret"); +} + +void EssentialFunc4() { + __asm__("jmp *%esp\n\t" + "jmp *%ebx\n\t" + "pop %ebp\n\t" + "pop %ebp\n\t" + "ret"); +} + +void EssentialFunc5() { + __asm__("jmp *%esp\n\t" + "jmp *%edi\n\t" + "pop %ebx\n\t" + "pop %ebx\n\t" + "ret"); +} + +void EssentialFunc6() { + __asm__("jmp *%esp\n\t" + "jmp *%edx\n\t" + "pop %ecx\n\t" + "pop %edx\n\t" + "ret"); +} + +void EssentialFunc7() { + __asm__("jmp *%esp\n\t" + "jmp *%esi\n\t" + "pop %ecx\n\t" + "pop %eax\n\t" + "ret"); +} + + +void EssentialFunc8() { + __asm__("jmp *%esp\n\t" + "jmp *%ebp\n\t" + "pop %eax\n\t" + "pop %edx\n\t" + "ret"); +} + + +void EssentialFunc9() { + __asm__("jmp *%esp\n\t" + "jmp *%esp\n\t" + "jmp *-12(%esp)\n\t" + "pop %ecx\n\t" + "pop %ecx\n\t" + "ret"); +} + + +void EssentialFunc10(char *Input) { + char Buffer2S[140]; + strcpy(Buffer2S, Input); +} + +void EssentialFunc11(char *Input) { + char Buffer2S[60]; + strcpy(Buffer2S, Input); +} + + +void EssentialFunc12(char *Status, char *Input) { + char Buffer2S[2000]; + strcpy(Buffer2S, Input); + printf("%s", Status); +} + +void EssentialFunc13(char *Input) { + char Buffer2S[2000]; + strcpy(Buffer2S, Input); +} + +void EssentialFunc14(char *Input) { + char Buffer2S[1000]; + strcpy(Buffer2S, Input); +}