Code Monkey home page Code Monkey logo

client-checker's Introduction

Overview

This is a PowerShell script to automate client pentests / checkups - at least to a certain extend.
You can use it together with my PwnDoc vulns to further get rid of unneccessary work -> https://github.com/LuemmelSec/PwnDoc-Vulns

How

image

If possible run as Admin, otherwise some checks might / will fail.

. .\Client-Checker.ps1

or

import-module .\Client-Checker.ps1

or

iex(new-object net.webclient).downloadstring("https://raw.githubusercontent.com/LuemmelSec/Client-Checker/main/Client-Checker.ps1")

then just

Client-Checker

What does it do

You should run it as admin, as certain stuff can only be queried with elevated rights.
It is used to check a client for common misconfigurations. The list currently includes:

  • Default Domain Password Policy
  • LSA Protection Settings
  • WDAC Usage
  • AppLocker Usage
  • Credential Guard Settings
  • Co-installer Settings
  • DMA Protection Settings
  • BitLocker Settings
  • Secure Boot Settings
  • System PATH ACL checks
  • Unquoted Service Path checks
  • Always Install Elevated checks
  • UAC checks
  • Guest Account checks
  • System Tool access as low priv user checks
  • WSUS Settings
  • PowerShell Settings
  • IPv6 Settings
  • NetBIOS / LLMNR Settings
  • SMB Server Settings
  • Firewall Settings
  • AV Settings
  • Proxy Settings
  • Windows Updates
  • 3rd Party Installations
  • RDP Settings
  • WinRM Settings
  • PrintNightmare checks
  • Recall checks

The looks

You will have a detailed section which gets generated on the fly with a category, what the script found as well as links to resources for more detail, abuse paths and remmediations.
image

At the very end you will get a tabular overview that will help you to quickly get an overview of all checks done. image

client-checker's People

Contributors

luemmelsec avatar 0x6d69636b avatar

Stargazers

Rob avatar PSh4dy avatar  avatar  avatar  avatar EnumSec avatar Sora avatar Boris Bogdan avatar Pwnzzz 💀 avatar Nemanja avatar Adam Svoboda avatar cmjlove avatar Christoph Fricke avatar  avatar Frank Wiersma avatar Patrick avatar  avatar Julien EGLOFF avatar  avatar parzival avatar spla11er avatar Jordan Ovrè avatar Kinda_Sus avatar n00py avatar Jiri S. avatar Hossam Mostafa avatar litsnarf avatar  avatar Vay3t avatar  avatar  avatar reV avatar root avatar Hyun Yi avatar Oliver Schneider avatar Choi avatar LSA avatar  avatar C3Pain avatar  avatar  avatar  avatar VoldeSec avatar  avatar x41 avatar C.J. May avatar ICheer_No0M avatar  avatar Dan avatar  avatar  avatar  avatar Yeeb avatar Amarjit Labhuram avatar  avatar  avatar beerandgin avatar  avatar  avatar Nicolas Vincent avatar Michael Eder avatar ⠀ avatar A. S. M. Muhiminul Hasan avatar Clemens Richter avatar Regaip KURT avatar Jop avatar  avatar Poh Jia Hao avatar DeadLenny avatar  avatar gsmith257 avatar lapinou avatar  avatar Mehmet Hafif avatar Ahmad Saleem avatar Kay Daskalakis avatar  avatar Adam Hassan avatar  avatar Graham Kasindo avatar George Corrêa avatar  avatar  avatar  avatar  avatar Nazman avatar Dmitry Antonov avatar  avatar  avatar  avatar shiva13 avatar  avatar mahzaraz avatar Thomas avatar  avatar Ivan Semakin avatar  avatar Pradyumna Joshi avatar hirak0 avatar  avatar

Watchers

Kay Daskalakis avatar  avatar  avatar  avatar

client-checker's Issues

better check local guest account

Command Get-CimInstance -ClassName Win32_UserAccount get local accounts and domain accounts!
Better command is Get-LocalUser
We need to change the logic a bit:

# Guest Account check
    Write-host ""
    Write-host "############################################"
    Write-host "# Now checking if Guest Account is enabled #"
    Write-host "############################################"
    Write-host "References: https://learn.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/accounts-guest-account-status" -ForegroundColor DarkGray
    Write-host ""
    # Get local user accounts
$guestAccount = Get-LocalUser | Where-Object {
    $_.SID -match "-501" # The local Guest Account always has RID 501
}
# Check if the Guest account exists
    if ($guestAccount) {
        # Check if the Guest account is enabled
        if ($guestAccount.Enabled -eq $true) {
            Write-Host "Guest account enabled" -ForegroundColor Red
            $guestacc = 2
        } else {
            Write-Host "Guest account disabled" -ForegroundColor Green
            $guestacc = 0
        }
    } else {
        Write-Host "Guest account not found" -ForegroundColor Yellow
        $guestacc = 3
    }

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.