Skip to content

Windows local


@echo off
REM This software is provided under under the BSD 3-Clause License.
REM See the accompanying LICENSE file for more information.
REM Utility to generate a summary of a Windows system
REM Author:
REM  Arris Huijgen (@_bitsadmin)
REM Website:
REM * Check drives other than C:\ (if available)
REM * Add commandline parameter to perform a brief check or more extended
REM * Make sure that the output of this script is not again included in the output
REM Some more (untested) commands:
REM pushd C:\ ^&^& findstr /I /N /S /P /R flag password secret confidential account payroll credit record * ^&^& popd
REM "dir C:\ /S /O-D /TW ^| findstr /C:"Directory of" /C:"%d%""!;!
REM "dir C:\ /a-r-d /s /b
REM To add: for /F "tokens=2* delims= " %%i in ('sc query ^| find /I "ce_name"') do @sc qc %i %j

setlocal enabledelayedexpansion
set o="%tmp%\recon%random%.out"
set d=-12-2016
REM Define a separator character (!;!)
(set ;=^
%=Do not remove this line=%
set t[0][name]=Basic 1
set t[1][name]=Basic 2
set t[1]=systeminfo!;!wmic logicaldisk get caption,description,drivetype,providername,volumename ^| more
set t[2][name]=Users
set t[2]=query session!;!net user!;!net localgroup Administrators!;!net user Administrator!;!tree /F "C:\Users"!;!dir /s /b /A:H "C:\Users\"^|find /V "desktop.ini"!;!tree /F "C:\Documents and Settings"!;!dir /s /b /A:H "C:\Documents and Settings\"^|find /V "desktop.ini"
set t[3][name]=Network
set t[3]=ipconfig /all!;!route print!;!arp -a!;!netstat -ano!;!net session ^| find "\\"!;!net view!;!netsh advfirewall show allprofiles!;!netsh firewall show state!;!netsh firewall show config!;!nltest /dclist:
set t[4][name]=Processes, services and tasks
set t[4]=wmic PROCESS get Processid,Caption,Commandline ^| more!;!query process *!;!tasklist /SVC!;!net start!;!DRIVERQUERY /V!;!schtasks /query /fo LIST /v!;!at!;!dir /B C:\WINDOWS\Tasks!;!set ^| find /V "t["
set t[5][name]=Patch-level
set t[5]=wmic qfe get Caption,Description,HotFixID,InstalledOn ^| more
set t[6][name]=Base image configuration files
set t[6]=dir /s /b C:\sysprep.inf C:\sysprep.xml C:\unattend.txt C:\Unattended.xml C:\Services.xml C:\ScheduledTasks.xml C:\Printers.xml C:\Drives.xml C:\DataSources.xml
set t[7][name]=Configuration
set t[7]=reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated!;!reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated!;!reg query HKLM\System\CurrentControlSet\Services\NfsSvr\Parameters\SafeSetUidGidBits!;!reg query HKLM\System\CurrentControlSet\Services\NfsServer\Parameters\SafeSetUidGidBits!;!gpresult /z
set t[8][name]=Credentials
set t[8]=cmdkey /list!;!dir /s /b /a:-D C:\*pass* C:\*cred* C:\*vnc* C:\*.config* C:\*.kdb*!;!findstr /si password *.xml *.ini *.txt *.ps1 *.cmd!;!reg query HKLM /f password /t REG_SZ /s!;!reg query HKCU /f password /t REG_SZ /s!;!reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /V Default*
set t[9][name]=Remote Desktop applications and VPN
set t[9]=dir /b /s C:\*vnc.ini!;!reg query HKCU\SOFTWARE\ORL\WinVNC3\Password!;!dir /s /b C:\*.rdp C:\*.pbk!;!reg query HKCU\Software\SimonTatham\PuTTY\Sessions!;!reg query "HKCU\Software\Microsoft\Terminal Server Client\Servers" /s
set t[9][name]=Configuration 2
set t[9]=wmic service get name,displayname,pathname,startmode^|findstr /i "Auto"^|findstr /i /v "C:\Windows\\"^|findstr /i /v """"
set t[10][name]=Files
set t[10]=dir /S /A /B C:\network-secret.txt C:\proof.txt C:\local.txt C:\*.vsd* C:\*flag* C:\*password* C:\*bank* C:\*competit* C:\*finance* C:\*invoice* C:\*risk* C:\*key* C:\*.pcf C:\*.crt C:\*.key C:\*.log ^| find /V /I "%SystemRoot%\winsxs\" ^| find /I /V "%SystemRoot%\Microsoft.NET\"
set t[11][name]=E-mail and documents
set t[11]=dir /S /A /B *.dbx *.wab *.doc *.docx *.xlsx
set t[12][name]=Pre-installed languages
set t[12]=where python!;!where perl!;!where ruby!;!dir /s /b C:\python.exe C:\pythonw.exe C:\perl.exe C:\ruby.exe C:\rubyw.exe C:\bash.exe C:\java.exe C:\javaw.exe C:\php.exe C:\powershell.exe
set last=12

:: CMD variables
echo --------------- [0/%last%] %t[0][name]% --------------- >%o% 2>&1
echo --------------- [0/%last%] %t[0][name]% ---------------
FOR /F %%i IN ("!t[0]!") DO (
    echo =^> %%~i
    echo %%i: !%%i! >>%o% 2>&1

:: Commands
FOR /L %%n IN (1,1,%last%) DO (
    echo. >>%o% 2>&1
    echo. >>%o% 2>&1
    echo --------------- [%%n/%last%] !t[%%n][name]! --------------- >>%o% 2>&1
    echo --------------- [%%n/%last%] !t[%%n][name]! ---------------
    FOR /F "delims=;" %%i IN ("!t[%%n]!") DO (
        set c=%%~i
        echo =^> !c! >>%o% 2>&1
        echo =^> !c!
        REM If command does not contain a pipe, execute directly
        REM Otherwise execute using cmd /c
        IF !c!==!c:^|=! (
            !c! >>%o% 2>&1
        ) ELSE (
            cmd /C "!c! >>%o% 2>&1"
        echo. >>%o% 2>&1
        echo. >>%o% 2>&1

REM Results
echo Done. Results in %o%.