Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.

Serienummers opvragen van meerdere computers

Pagina: 1
Acties:

Vraag


  • Joostjeb
  • Registratie: Januari 2011
  • Laatst online: 07-11 15:17
Goedemiddag,

Ik heb recent voor een klant meerdere computers naar diverse locaties gebracht en nu wil de klant een overzicht hebben van alle serienummers en waar ze staan in Nederland. Helaas is dit een haastig klusje geweest waardoor dit niet genoteerd is.

Mijn vraag
Hoe kan je de serienummers opvragen van meerdere computers op basis van IP? Omdat de computers niet in een domein hangen kan je niet het WMIC commando gebruiken om dit op te halen omdat je een access denied krijgt. Het mooiste zou zijn als je een script kan gebruiken die de actieve computers scanned van bijvoorbeeld 192.168.1.1 tot 192.168.40.253

Relevante software en hardware die ik gebruik
HP t530 Thin Client

Wat ik al gevonden of geprobeerd heb
WMIC in combinatie powershell, helaas bood dit niet de gewenste resultaat zoals in het begin vermeld.
Misschien doe ik het ook verkeerd, ik heb dit geprobeerd:

Get-WmiObject Win32_BIOS -ComputerName "computernaam" | Select-Object SerialNumber

wmic /user:Administrator /node:computernaam bios get serialnumber

Kunnen jullie mij misschien verder helpen?

Alle reacties


  • HKLM_
  • Registratie: Februari 2009
  • Laatst online: 05:22
Wij gebruiken op het werk lansweeper kan je het hele netwerk mee scannen krijg je per pc veel informatie.

Cloud ☁️


  • maubaan
  • Registratie: Oktober 2015
  • Laatst online: 12-11 14:32
hier heb je een kort VBS script
Je moet wel admin rechten hebben op de pc die je wil uitlezen

strComputer = InputBox("Type computer name or IP: ", "")
Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objwbemLocator.ConnectServer(strComputer, "root\cimv2")

Set colBIOS = objWMIService.ExecQuery("Select * from Win32_BIOS")
For each objBIOS in colBIOS
WScript.echo objBIOS.SerialNumber
Next

I9-9900K | Asro Z390 PHANTOM GAMING 9 Z390 | GiBy8GB D6 RTX 2070 Windforce 8G | Corsair RM550X (2018) 550W ATX24 | Cooler Master ML120L RGB | Corsair Vengeance LPX 32 GB | NZXT H500


  • Joostjeb
  • Registratie: Januari 2011
  • Laatst online: 07-11 15:17
HKLM_ schreef op woensdag 22 mei 2019 @ 15:30:
Wij gebruiken op het werk lansweeper kan je het hele netwerk mee scannen krijg je per pc veel informatie.
Ik heb helaas geen PC waar ik dit op kan installeren en ik vertrouwde het niet helemaal. Ik had een quick search gedaan en was niet helemaal gerust gesteld op de security van dit pakket.

edit typo

[ Voor 3% gewijzigd door Joostjeb op 22-05-2019 15:33 ]


  • Illegal_Alien
  • Registratie: December 2001
  • Niet online

Illegal_Alien

PanzerAirlines.nl Rulezzzz

Mijn bescheiden aantal systeempies!
More ways to die. More reasons to live.
Officieel AchtbaanFreak ©2004
#boeiend.Illegal_Alien | #got-et & #boeiend @ Qnet


  • HKLM_
  • Registratie: Februari 2009
  • Laatst online: 05:22
Joostjeb schreef op woensdag 22 mei 2019 @ 15:32:
[...]


Ik heb helaas geen PC waar ik dit op kan installeren en ik vertrouwde het niet helemaal. Ik had een quick search gedaan en was niet helemaal gersut gesteld op de security van dit pakket.
Hoezo heb je geen pc? Je commands moet je toch ook vanaf een PC gaan draaien? En anders heb je op je werk vast wel een oud systeem ofzo. Denk in mogelijkheden niet in problemen :P

Lansweeper qua security is best wat in te stellen na installatie dus dat is puur aan jezelf.

Trouwens staan de serienummers niet gewoon op je bakbon die je bij levering hebt gehad?

[ Voor 15% gewijzigd door HKLM_ op 22-05-2019 15:38 ]

Cloud ☁️


  • Breezers
  • Registratie: Juli 2011
  • Laatst online: 16-03-2021
Joostjeb schreef op woensdag 22 mei 2019 @ 15:32:
[...]


Ik heb helaas geen PC waar ik dit op kan installeren en ik vertrouwde het niet helemaal. Ik had een quick search gedaan en was niet helemaal gerust gesteld op de security van dit pakket.

edit typo
https://www.lansweeper.com/

Wat vertrouw je dan niet ? En welke requirements heb je dan eigenlijk qua "security" ? En waarom heb je geen PC om iets te installeren ?

“We don't make mistakes just happy little accidents” - Bob Ross


  • ImNotnoa
  • Registratie: September 2011
  • Niet online
Lansweeper of spiceworks inderdaad, die kunnen dat uitlezen via WMI

Try SCE to Aux


  • johnkeates
  • Registratie: Februari 2008
  • Laatst online: 04-07 16:30
Afhankelijk van hoe veel systemen het zijn kan je ook gewoon even met de gebruikers bellen en de serienummers laten oplezen die op de apparatuur staat.

  • IceTeaGX
  • Registratie: Maart 2010
  • Laatst online: 10-11 08:36
Kan je psexec gebruiken?
Dan kan je locale admin account gebruiken om lokaal wmic te draaien.

psexec \\<computernaam> (-u <localuser> -p <password>) bios get serialnumber
Kan ook met computerlijsten in externe txt's werken.
Je moet wel administrative shares hebben, en netwerk access.

https://docs.microsoft.co...nternals/downloads/psexec

  • Agent47
  • Registratie: December 2012
  • Laatst online: 13-11 17:42

Agent47

I always close my contracts.

Heel kort door de bocht maar met Teamview eenmaal overnemen en laten scannen dan met een programma?
Dit dan noteren en vanaf het moment dat je een pc naar klanten brengt eerst noteren in je document?

On Tuesday nights, we get fucked up and throw apples at joggers.


  • Agent47
  • Registratie: December 2012
  • Laatst online: 13-11 17:42

Agent47

I always close my contracts.

johnkeates schreef op woensdag 22 mei 2019 @ 15:51:
Afhankelijk van hoe veel systemen het zijn kan je ook gewoon even met de gebruikers bellen en de serienummers laten oplezen die op de apparatuur staat.
Dit kan natuurlijk ook. Zo heb ik het tijdens mijn stage ook een paar keer moeten doen :*)

On Tuesday nights, we get fucked up and throw apples at joggers.


  • johnkeates
  • Registratie: Februari 2008
  • Laatst online: 04-07 16:30
Het punt is ook een beetje dat er maar twee 'echte' methodes zijn om dit in je proces op te nemen:

- pre delivery (bijv barcode scanner en inventory tooling or zelfs spreadsheet)
- post delivery (via management tooling, bijv. saltstack over tls)

Gezien het niet in het proces zat om vooraf te doen, en er geen management tooling is, lijkt me handmatig contact opnemen de enige realistische optie.

[ Voor 23% gewijzigd door johnkeates op 22-05-2019 16:04 ]


  • Squ1zZy
  • Registratie: April 2011
  • Niet online
mauricebaan schreef op woensdag 22 mei 2019 @ 15:31:
hier heb je een kort VBS script
Je moet wel admin rechten hebben op de pc die je wil uitlezen

strComputer = InputBox("Type computer name or IP: ", "")
Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objwbemLocator.ConnectServer(strComputer, "root\cimv2")

Set colBIOS = objWMIService.ExecQuery("Select * from Win32_BIOS")
For each objBIOS in colBIOS
WScript.echo objBIOS.SerialNumber
Next
-1 voor VBS. Het is 2019. VBS kan echt niet meer :)

  • Squ1zZy
  • Registratie: April 2011
  • Niet online
HKLM_ schreef op woensdag 22 mei 2019 @ 15:30:
Wij gebruiken op het werk lansweeper kan je het hele netwerk mee scannen krijg je per pc veel informatie.
Grappig dat je Lansweeper noemt. Ik ben vandaag bezig geweest met het decrypten van de wachtwoorden voor versie 7.1.110.5 (laatste versie). Als je Lansweeper lokaal installeert, dan kan je de database openen zonder credentials. Daar staan encrypted wachtwoorden in die je met wat reverse engineering kan decrypten.

Ik heb er een PowerShell script voor geschreven :)

PowerShell:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
<#
 
.SYNOPSIS
  This script will get all Lansweeper 7.x credentials from a local database
 
.DESCRIPTION
 
  This script will get all Lansweeper 7.x credentials from a local database including plain-text passwords
 
.PARAMETER
 
  None
 
.INPUTS
 
  None
 
.OUTPUTS
 
  Output will be shown in the console
 
.NOTES
 
  Version:        0.1
  Author:         R. Roethof
  Creation Date:  05/22/2019
  Purpose/Change: Initial script development
 
.EXAMPLE
 
  .\LansweeperCreds.ps1
 
#>
 
#------------------------------------------[Initialisations]---------------------------------------
 
# Set Error Action to Silently Continue
$ErrorActionPreference = "SilentlyContinue"
 
#-------------------------------------------[Declarations]-----------------------------------------
 
# Script Name and Version
$scriptName = $MyInvocation.MyCommand.Name
$scriptVersion = "0.1"
 
# Variables that need to be set
$encryptionFile = "C:\Program Files (x86)\Lansweeper\Key\Encryption.txt"
$database = "C:\Program Files (x86)\Lansweeper\SQLData\lansweeperdb.sdf"
$sqlServerCe = "C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v4.0\Desktop\System.Data.SqlServerCe.dll"
 
#--------------------------------------------[Functions]-------------------------------------------

Function RR-decrypt {
  Param($encoded_pass)
 
  Begin {
  }
 
  Process {
    Try {
      $bytes = [IO.File]::ReadAllBytes($encryptionFile)
      [byte[]]$salt = (39, 15, 41, 17, 43, 19, 45, 21)
      $deriveBytes = New-Object System.Security.Cryptography.Rfc2898DeriveBytes($bytes, $salt, 10000);
      $key  = $deriveBytes.GetBytes(16)
      $decoded_pass = [Convert]::FromBase64String($encoded_pass)
      $iv = $decoded_pass[0..15]
      $cryptor = New-Object System.Security.Cryptography.AesCryptoServiceProvider
      $cryptor.Key = $key
      $cryptor.IV = $IV
      $cryptor.Padding = [System.Security.Cryptography.PaddingMode]::PKCS7
      $ciphertext = $decoded_pass[16..$decoded_pass.Length]
      $decryptor = $cryptor.CreateDecryptor()
      $decrypted = $decryptor.TransformFinalBlock($ciphertext, 0, $ciphertext.Length)
      [System.Text.Encoding]::ASCII.GetString($decrypted)
    }
 
    Catch {
      Write-Host $_.Exception
      Exit
    }
  }
 
  End {
    If($?) {
    }
  }
}

Function RR-getCredentials {
  Param()
 
  Begin {
    Write-Host "Start getting credentials..."
  }
 
  Process {
    Try {
      [Reflection.Assembly]::LoadFile($sqlServerCe) | Out-Null
      $connectionString = "Data Source=$database;"
      $cn = new-object "System.Data.SqlServerCe.SqlCeConnection" $connectionString
      $cmd = new-object "System.Data.SqlServerCe.SqlCeCommand" 
      $cmd.CommandType = [System.Data.CommandType]"Text" 
      $cmd.CommandText = "SELECT * FROM tsysCredentials" 
      $cmd.Connection = $cn
      $allData = new-object "System.Data.DataTable"
      $cn.Open() 
      $rdr = $cmd.ExecuteReader()
      $allData.Load($rdr)
      $cn.Close()

      $returnObj = @()

      foreach($data in $allData) {
        if($data.password.Length -ne 0) {
          $obj = new-object psobject -Property @{
            Password = RR-decrypt($data.password)
            Username = $data.username
            Credname = $data.credname
          }
        $returnObj += $obj | select Credname, Username, Password
        }
      }
      $returnObj | out-host
    }
 
    Catch {
      Write-Host $_.Exception
      Exit
    }
  }
 
  End {
    If($?) {
      Write-host "Getting credentials completed successfully..."
    }
  }
}
 
#--------------------------------------------[Execution]-------------------------------------------
 
Write-Host "$scriptName version $scriptVersion started at $(Get-Date)"
  RR-getCredentials
Write-host "$scriptName version $scriptVersion ended at $(Get-Date)"


Dit is de output:
Afbeeldingslocatie: https://tweakers.net/ext/f/4nzatLlEhJjLOnSMr3tcnIzY/medium.png

  • HKLM_
  • Registratie: Februari 2009
  • Laatst online: 05:22
Squ1zZy schreef op woensdag 22 mei 2019 @ 23:27:
[...]


Grappig dat je Lansweeper noemt. Ik ben vandaag bezig geweest met het decrypten van de wachtwoorden voor versie 7.1.110.5 (laatste versie). Als je Lansweeper lokaal installeert, dan kan je de database openen zonder credentials. Daar staan encrypted wachtwoorden in die je met wat reverse engineering kan decrypten.

Ik heb er een PowerShell script voor geschreven :)

PowerShell:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
<#
 
.SYNOPSIS
  This script will get all Lansweeper 7.x credentials from a local database
 
.DESCRIPTION
 
  This script will get all Lansweeper 7.x credentials from a local database including plain-text passwords
 
.PARAMETER
 
  None
 
.INPUTS
 
  None
 
.OUTPUTS
 
  Output will be shown in the console
 
.NOTES
 
  Version:        0.1
  Author:         R. Roethof
  Creation Date:  05/22/2019
  Purpose/Change: Initial script development
 
.EXAMPLE
 
  .\LansweeperCreds.ps1
 
#>
 
#------------------------------------------[Initialisations]---------------------------------------
 
# Set Error Action to Silently Continue
$ErrorActionPreference = "SilentlyContinue"
 
#-------------------------------------------[Declarations]-----------------------------------------
 
# Script Name and Version
$scriptName = $MyInvocation.MyCommand.Name
$scriptVersion = "0.1"
 
# Variables that need to be set
$encryptionFile = "C:\Program Files (x86)\Lansweeper\Key\Encryption.txt"
$database = "C:\Program Files (x86)\Lansweeper\SQLData\lansweeperdb.sdf"
$sqlServerCe = "C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v4.0\Desktop\System.Data.SqlServerCe.dll"
 
#--------------------------------------------[Functions]-------------------------------------------

Function RR-decrypt {
  Param($encoded_pass)
 
  Begin {
  }
 
  Process {
    Try {
      $bytes = [IO.File]::ReadAllBytes($encryptionFile)
      [byte[]]$salt = (39, 15, 41, 17, 43, 19, 45, 21)
      $deriveBytes = New-Object System.Security.Cryptography.Rfc2898DeriveBytes($bytes, $salt, 10000);
      $key  = $deriveBytes.GetBytes(16)
      $decoded_pass = [Convert]::FromBase64String($encoded_pass)
      $iv = $decoded_pass[0..15]
      $cryptor = New-Object System.Security.Cryptography.AesCryptoServiceProvider
      $cryptor.Key = $key
      $cryptor.IV = $IV
      $cryptor.Padding = [System.Security.Cryptography.PaddingMode]::PKCS7
      $ciphertext = $decoded_pass[16..$decoded_pass.Length]
      $decryptor = $cryptor.CreateDecryptor()
      $decrypted = $decryptor.TransformFinalBlock($ciphertext, 0, $ciphertext.Length)
      [System.Text.Encoding]::ASCII.GetString($decrypted)
    }
 
    Catch {
      Write-Host $_.Exception
      Exit
    }
  }
 
  End {
    If($?) {
    }
  }
}

Function RR-getCredentials {
  Param()
 
  Begin {
    Write-Host "Start getting credentials..."
  }
 
  Process {
    Try {
      [Reflection.Assembly]::LoadFile($sqlServerCe) | Out-Null
      $connectionString = "Data Source=$database;"
      $cn = new-object "System.Data.SqlServerCe.SqlCeConnection" $connectionString
      $cmd = new-object "System.Data.SqlServerCe.SqlCeCommand" 
      $cmd.CommandType = [System.Data.CommandType]"Text" 
      $cmd.CommandText = "SELECT * FROM tsysCredentials" 
      $cmd.Connection = $cn
      $allData = new-object "System.Data.DataTable"
      $cn.Open() 
      $rdr = $cmd.ExecuteReader()
      $allData.Load($rdr)
      $cn.Close()

      $returnObj = @()

      foreach($data in $allData) {
        if($data.password.Length -ne 0) {
          $obj = new-object psobject -Property @{
            Password = RR-decrypt($data.password)
            Username = $data.username
            Credname = $data.credname
          }
        $returnObj += $obj | select Credname, Username, Password
        }
      }
      $returnObj | out-host
    }
 
    Catch {
      Write-Host $_.Exception
      Exit
    }
  }
 
  End {
    If($?) {
      Write-host "Getting credentials completed successfully..."
    }
  }
}
 
#--------------------------------------------[Execution]-------------------------------------------
 
Write-Host "$scriptName version $scriptVersion started at $(Get-Date)"
  RR-getCredentials
Write-host "$scriptName version $scriptVersion ended at $(Get-Date)"


Dit is de output:
[Afbeelding]
Nice ik ga het van de week ook eens checken.

Cloud ☁️

Pagina: 1