├── README.md └── install.ps1 /README.md: -------------------------------------------------------------------------------- 1 | # MCSI Development Environment Setup 2 | This PowerShell script will automate the setup of a development environment, consisting of all the necessary software tools required to complete the exercises included in the MCSI Online Learning Platform. 3 | 4 | For penetration testing tools, please download and use Kali Linux. 5 | 6 | ## Installation: 7 | 1. Clone the repo or download `install.ps1` to your system 8 | 2. Run PowerShell as 'administrator' 9 | 3. Navigate to the directory where the install script is located 10 | 4. Run the following command: `Set-ExecutionPolicy Unrestricted`, selecting the [A] option when prompted 11 | 5. Run the following command: `.\install.ps1` 12 | 6. After the script has finished, manually install *Wamp Server* and *MingW* by running their installation executables located in `C:\mcsi\` 13 | 14 | ## List of installed tools: 15 | 16 | ### Chocolatey 17 | - *Chocolatey is a package manager for Windows (similar to linux or macOS package managers such as apt-get, homebrew or yum). Its designed to be a decentralized framework for quickly installing applications and tools that you need. It is built on the NuGet infrastructure, using PowerShell as its main method for easily installing and updating packages on your system.* 18 | 19 | ### Languages/Compilers 20 | - **Python2** 21 | - *Python 2.x is an interpreted, high-level, general-purpose programming language* 22 | - **Python3** 23 | - *Python 3.x is an interpreted, high-level, general-purpose programming language* 24 | - **Golang Compiler** 25 | - *Go, also known as Golang, is a statically typed, compiled programming language designed at Google by Robert Griesemer, Rob Pike, and Ken Thompson. Go is syntactically similar to C, but with memory safety, garbage collection, structural typing, and CSP-style concurrency.* 26 | - **TinyCC** 27 | - *TinyCC (aka TCC) is a small but hyper fast C compiler. Unlike other C compilers, it is meant to be self-relying: you do not need an external assembler or linker because TCC does that for you.* 28 | - **Ruby** 29 | - *Ruby is a dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write.* 30 | - **MingW** 31 | - *Mingw-w64 is an advancement of the original mingw.org project, created to support the GCC compiler on Windows systems.* 32 | 33 | ### Developer Tools 34 | - **Visual Studio Code** 35 | - *Visual Studio Code is a source-code editor developed by Microsoft for Windows, Linux and macOS. It includes support for debugging, embedded Git control and GitHub, syntax highlighting, intelligent code completion, snippets, and code refactoring.* 36 | - **Firefox** 37 | - *Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, Mozilla Corporation.* 38 | - **Git** 39 | - *Git is a distributed version-control system for tracking changes in source code during software development. It is designed for coordinating work among programmers, but it can be used to track changes in any set of files.* 40 | - **Wamp Server** 41 | - *WampServer is a Windows web development environment. It allows you to create web applications with Apache2, PHP and a MySQL database. Alongside, PhpMyAdmin allows you to manage easily your databases.* 42 | 43 | ### System Utilities 44 | - **SysInternals** 45 | - *The Sysinternals Troubleshooting Utilities have been rolled up into a single Suite of tools. This file contains the individual troubleshooting tools and help files. https://docs.microsoft.com/en-us/sysinternals/downloads/sysinternals-suite* 46 | - **HxD** 47 | - *HxD is a carefully designed and fast hex editor which, additionally to raw disk editing and modifying of main memory (RAM), handles files of any size. The easy to use interface offers features such as searching and replacing, exporting, checksums/digests, insertion of byte patterns, a file shredder, concatenation or splitting of files, statistics and much more.* 48 | - **WinDBG** 49 | - *Microsoft Windows Debugger (WinDbg) is a powerful Windows-based debugger that is capable of both user-mode and kernel-mode debugging. WinDbg provides debugging for the Windows kernel, kernel-mode drivers, and system services, as well as user-mode applications and drivers.* 50 | - **7zip** 51 | - *7-Zip is a free and open-source file archiver* 52 | 53 | ### Virtualisation Tools 54 | - **VirtualBox** 55 | - *VirtualBox is a cross-platform virtualization application. It installs on existing Intel or AMD-based computers, whether they are running Windows, Mac, Linux or Solaris operating systems. It extends the capabilities of your existing computer so that it can run multiple operating systems (inside multiple virtual machines) at the same time.* 56 | 57 | ### Network Tools 58 | - **Burp Suite Community** 59 | - *Burp Suite is an integrated platform for performing security testing of web applications. Its various tools work seamlessly together to support the entire testing process, from initial mapping and analysis of an application's attack surface, through to finding and exploiting security vulnerabilities.* 60 | - **Wireshark** 61 | - *Wireshark is the world’s foremost and widely-used network protocol analyzer. It lets you see what’s happening on your network at a microscopic level and is the de facto (and often de jure) standard across many commercial and non-profit enterprises, government agencies, and educational institutions.* 62 | - **nmap** 63 | - *Nmap ("Network Mapper") is a free and open source utility for network discovery and security auditing. Many systems and network administrators also find it useful for tasks such as network inventory, managing service upgrade schedules, and monitoring host or service uptime.* 64 | - **PuTTY** 65 | - *PuTTY is a free implementation of Telnet and SSH for Windows and Unix platforms, along with an `xterm` terminal emulator.* 66 | 67 | ### Dependencies 68 | - **.Net Framework 4.6.2** 69 | - *The Microsoft .NET Framework 4.6.2 is a highly compatible in-place update to the Microsoft .NET Framework 4, the .NET Framework 4.5, the .NET Framework 4.5.1, the .NET Framework 4.5.2, the .NET Framework 4.6, and the .NET Framework 4.6.1.* 70 | - **Visual Studio C++ 2015 Redistributable** 71 | - *Microsoft Visual C++ Redistributable for Visual Studio 2015-2019 installs run-time components of Visual C++ libraries. These components are required to run C++ applications that are developed using Visual Studio 2015-2019 and link dynamically to Visual C++ libraries* 72 | -------------------------------------------------------------------------------- /install.ps1: -------------------------------------------------------------------------------- 1 | # install chocolatey package manager 2 | Write-Host "[-] Installing Chocolatey" -ForegroundColor Yellow 3 | $a = (iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))) | Out-Null 4 | Write-Host "[+] Chocolatey installed successfully" -ForegroundColor Green 5 | 6 | function Install-ChocolateyPackages { 7 | param([String[]] $PackageList) 8 | 9 | $PackageList | Foreach-Object { 10 | Write-Host "[-] Installing package '$_'" -ForegroundColor Yellow 11 | $packageName = $_ 12 | $i = 0 13 | 14 | while ($true) { 15 | $a = (choco install $packageName --yes --limit-output --no-process) 16 | 17 | $results = (choco list --local) 18 | 19 | if ($results -match "$packageName") { 20 | Write-Host "[+] Package '$packageName' installed successfully" -ForegroundColor Green 21 | break 22 | } 23 | 24 | if ($i -eq 3) { 25 | Write-Host "[+] Failed to install package '$packageName'" -ForegroundColor Red 26 | break 27 | } 28 | 29 | $i++ 30 | } 31 | } 32 | } 33 | 34 | # install chocolatey framework packages 35 | $chocolateyFrameworkPackages = "dotnet4.6.2", "vcredist140" 36 | Install-ChocolateyPackages($chocolateyFrameworkPackages) 37 | 38 | # install chocolatey language packages 39 | $chocolateyLanguagePackages = "python", "golang", "tinycc", "ruby" 40 | Install-ChocolateyPackages($chocolateyLanguagePackages) 41 | 42 | # install chocolatey security tools packages 43 | $chocolateySecurityToolsPackages = "burp-suite-free-edition", "wireshark", "nmap", "sysinternals", "hxd", "windbg", "putty" 44 | Install-ChocolateyPackages($chocolateySecurityToolsPackages) 45 | 46 | # install chocolatey misc packages 47 | $chocolateyMiscPackages = "vscode", "firefox", "virtualbox", "7zip", "git" 48 | Install-ChocolateyPackages($chocolateyMiscPackages) 49 | 50 | # create download path 51 | New-Item -Path 'C:\mcsi' -ItemType Directory 52 | 53 | # install Wamp Server 54 | $wampURL = 'https://storage.googleapis.com/cyber-platform-prod.appspot.com/tools/mingw-w64-install.exe' 55 | $wampPath = 'C:\mcsi\wamp_installer.exe' 56 | Invoke-WebRequest -Uri $wampURL -OutFile $wampPath 57 | 58 | # install Mingw 59 | $mingwURL = 'https://storage.googleapis.com/cyber-platform-prod.appspot.com/tools/wamp5_1.6.1.exe' 60 | $mingwPath = 'C:\mcsi\mingw_installer.exe' 61 | Invoke-WebRequest -Uri $mingwURL -OutFile $mingwPath --------------------------------------------------------------------------------