Downloads:

250,490

Downloads of v 2.2.1-gd6630be:

292

Last Update:

12/27/2016

Package Maintainer(s):

Software Author(s):

  • Facebook

Tags:

InfoSec Tools

osquery

This is a prerelease version of osquery.

2.2.1-gd6630be | Updated: 12/27/2016

Downloads:

250,490

Downloads of v 2.2.1-gd6630be:

292

Maintainer(s):

Software Author(s):

  • Facebook

Tags:

InfoSec Tools

osquery 2.2.1-gd6630be

This is a prerelease version of osquery.

All Checks are Passing

2 Passing Test


Validation Testing Passed


Verification Testing Passed

Details

To install osquery, run the following command from the command line or from PowerShell:

>

To upgrade osquery, run the following command from the command line or from PowerShell:

>

To uninstall osquery, run the following command from the command line or from PowerShell:

>

NOTE: This applies to both open source and commercial editions of Chocolatey.

1. Ensure you are set for organizational deployment

Please see the organizational deployment guide

  • Open Source or Commercial:
    • Proxy Repository - Create a proxy nuget repository on Nexus, Artifactory Pro, or a proxy Chocolatey repository on ProGet. Point your upstream to https://chocolatey.org/api/v2. Packages cache on first access automatically. Make sure your choco clients are using your proxy repository as a source and NOT the default community repository. See source command for more information.
    • You can also just download the package and push it to a repository Download

3. Enter your internal repository url

(this should look similar to https://chocolatey.org/api/v2)

4. Choose your deployment method:


choco upgrade osquery -y --source="'STEP 3 URL'" [other options]

See options you can pass to upgrade.

See best practices for scripting.

Add this to a PowerShell script or use a Batch script with tools and in places where you are calling directly to Chocolatey. If you are integrating, keep in mind enhanced exit codes.

If you do use a PowerShell script, use the following to ensure bad exit codes are shown as failures:


choco upgrade osquery -y --source="'STEP 3 URL'" 
$exitCode = $LASTEXITCODE

Write-Verbose "Exit code was $exitCode"
$validExitCodes = @(0, 1605, 1614, 1641, 3010)
if ($validExitCodes -contains $exitCode) {
  Exit 0
}

Exit $exitCode

- name: Ensure osquery installed
  win_chocolatey:
    name: osquery
    state: present
    version: 2.2.1-gd6630be
    source: STEP 3 URL

See docs at https://docs.ansible.com/ansible/latest/modules/win_chocolatey_module.html.

Coming early 2020! Central Managment Reporting available now! More information...


chocolatey_package 'osquery' do
  action    :install
  version  '2.2.1-gd6630be'
  source   'STEP 3 URL'
end

See docs at https://docs.chef.io/resource_chocolatey_package.html.


Chocolatey::Ensure-Package
(
    Name: osquery,
    Version: 2.2.1-gd6630be,
    Source: STEP 3 URL
);

Requires Otter Chocolatey Extension. See docs at https://inedo.com/den/otter/chocolatey.


cChocoPackageInstaller osquery
{
   Name     = 'osquery'
   Ensure   = 'Present'
   Version  = '2.2.1-gd6630be'
   Source   = 'STEP 3 URL'
}

Requires cChoco DSC Resource. See docs at https://github.com/chocolatey/cChoco.


package { 'osquery':
  provider => 'chocolatey',
  ensure   => '2.2.1-gd6630be',
  source   => 'STEP 3 URL',
}

Requires Puppet Chocolatey Provider module. See docs at https://forge.puppet.com/puppetlabs/chocolatey.


salt '*' chocolatey.install osquery version="2.2.1-gd6630be" source="STEP 3 URL"

See docs at https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.chocolatey.html.

5. If applicable - Chocolatey configuration/installation

See infrastructure management matrix for Chocolatey configuration elements and examples.

This package is exempt from moderation. While it is likely safe for you, there is more risk involved.
Description

osquery allows you to easily ask questions about your Linux, OSX, and
Windows infrastructure. Whether your goal is intrusion detection,
infrastructure reliability, or compliance, osquery gives you the ability
to empower and inform a broad set of organizations within your company.

  ### Package Parameters
  * `/InstallService` - This creates a new windows service that will auto-start the daemon.

  These parameters can be passed to the installer with the user of `-params`.
  For example: `-params '"/InstallService"'`.

tools\bin\osquery.zip
md5: B40BAAD2523A6712BFEC455E3EF1DB61 | sha1: C66D865D3AA1A7006C1D5567613A5C6B6AA597A9 | sha256: 82C1D49054F9B7203B7AEA71C25EB81E8D6B7476C8821D887B622F4A2AA7118B | sha512: 9C2F6EE0FCF4BFADF05D8B9C493FE33D9A8C9641EF00D746EE2E3C846B060E38C9AB02F01E3C104E4B8A040099D448E52358A3C82CA2F72737215B448A3061E0
tools\chocolateyBeforeModify.ps1
function Remove-DenyWriteAcl {
  [CmdletBinding(SupportsShouldProcess=$true,ConfirmImpact="Medium")]
  param(
    [string] $targetDir = ''
  )
  if($PSCmdlet.ShouldProcess($targetDir)){
    $acl = Get-Acl $targetDir
    $inheritanceFlag = [System.Security.AccessControl.InheritanceFlags]::ContainerInherit -bor [System.Security.AccessControl.InheritanceFlags]::ObjectInherit
    $propagationFlag = [System.Security.AccessControl.PropagationFlags]::None
    $permType = [System.Security.AccessControl.AccessControlType]::Deny

    $permission = "everyone","write",$inheritanceFlag,$propagationFlag,$permType
    $accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $permission
    $acl.RemoveAccessRule($accessRule)
    $acl | Set-Acl $targetDir
  }
}

$serviceName = 'osqueryd'
$progData =  [System.Environment]::GetEnvironmentVariable('ProgramData')
$targetFolder = Join-Path $progData "osquery"
$daemonFolder = Join-Path $targetFolder $serviceName

# Before modifying we ensure to stop the service, if it exists
if ((Get-Service $serviceName -ErrorAction SilentlyContinue) -and (Get-Service $serviceName).Status -eq 'Running') {
  Stop-Service $serviceName
}

# Lastly, ensure that the Deny Write ACLs have been removed before modifying
if (Test-Path $daemonFolder) {
  Remove-DenyWriteAcl $daemonFolder
}
tools\chocolateyinstall.ps1
function Set-DenyWriteAcl {
  [CmdletBinding(SupportsShouldProcess=$true,ConfirmImpact="Medium")]
  param(
    [string] $targetDir = ''
  )
  if($PSCmdlet.ShouldProcess($targetDir)){
    $acl = Get-Acl $targetDir
    $inheritanceFlag = [System.Security.AccessControl.InheritanceFlags]::ContainerInherit -bor [System.Security.AccessControl.InheritanceFlags]::ObjectInherit
    $propagationFlag = [System.Security.AccessControl.PropagationFlags]::None
    $permType = [System.Security.AccessControl.AccessControlType]::Deny

    $permission = "everyone","write",$inheritanceFlag,$propagationFlag,$permType
    $accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $permission
    $acl.SetAccessRule($accessRule)
    $acl | Set-Acl $targetDir
  }
}

$packageName = 'osquery'
$serviceName = 'osqueryd'
$serviceDescription = 'osquery daemon service'
$progData =  [System.Environment]::GetEnvironmentVariable('ProgramData')
$targetFolder = Join-Path $progData 'osquery'
$daemonFolder = Join-Path $targetFolder 'osqueryd'
$targetDaemonBin = Join-Path $targetFolder 'osqueryd.exe'
$destDaemonBin = Join-Path $daemonFolder 'osqueryd.exe'
$destClientBin = Join-Path $targetFolder 'osqueryi.exe'
$packageParameters = $env:chocolateyPackageParameters
$arguments = @{}

# Now parse the packageParameters using good old regular expression
if ($packageParameters) {
  $match_pattern = "\/(?<option>([a-zA-Z]+)):(?<value>([`"'])?([a-zA-Z0-9- _\\:\.]+)([`"'])?)|\/(?<option>([a-zA-Z]+))"
  $option_name = 'option'
  $value_name = 'value'

  if ($packageParameters -match $match_pattern ){
    $results = $packageParameters | Select-String $match_pattern -AllMatches
    $results.matches | ForEach-Object {
      $arguments.Add(
        $_.Groups[$option_name].Value.Trim(),
        $_.Groups[$value_name].Value.Trim())
    }
  }
  else {
    Throw "Package Parameters were found but were invalid (REGEX Failure)"
  }
  if ($arguments.ContainsKey("InstallService")) {
    $installService = $true
  }
} else {
  Write-Debug "No Package Parameters Passed in"
}

New-Item -Force -Type directory -Path $daemonFolder
$packagePath = "$(Split-Path -Parent $MyInvocation.MyCommand.Definition)\\bin\\osquery.zip"
Get-ChocolateyUnzip -FileFullPath $packagePath -Destination $targetFolder

# In order to run osqueryd as a service, we need to have a folder that has a
# Deny Write ACL to everyone.
Move-Item -Force -Path $targetDaemonBin -Destination $destDaemonBin
Set-DenyWriteAcl $daemonFolder

if ($installService -and (-not (Get-Service $serviceName -ErrorAction SilentlyContinue))) {
  Write-Debug '[+] Installing osquery daemon service.'
  # If the 'install' parameter is passed, we create a Windows service with
  # the flag file in the default location in \ProgramData\osquery\
  New-Service -Name $serviceName -BinaryPathName "$destDaemonBin --flagfile=\ProgramData\osquery\osquery.flags" -DisplayName $serviceName -Description $serviceDescription -StartupType Automatic
}

# Add osquery binary path to machines path for ease of use.
$oldPath = [System.Environment]::GetEnvironmentVariable('Path', 'Machine')
if (-not ($oldPath -imatch [regex]::escape($targetFolder))) {
  $newPath = $oldPath
  if ($oldPath[-1] -eq ';') {
    $newPath = $newPath + $targetFolder
  } else {
    $newPath = $newPath + ';' + $targetFolder
  }
  [System.Environment]::SetEnvironmentVariable('Path', $newPath, 'Machine')
}

if (Test-Path $targetFolder) {
  Write-Output "osquery was successfully installed to $targetFolder."
} else {
  Write-Output 'There was an error installing osquery.'
}
tools\chocolateyuninstall.ps1
$progData =  [System.Environment]::GetEnvironmentVariable('ProgramData')
$targetFolder = Join-Path $progData "osquery"
$serviceName = 'osqueryd'

# Remove the osquery path from the System PATH variable. Note: Here
# we don't make use of our local vars, as Regex requires escaping the '\'
$oldPath = [System.Environment]::GetEnvironmentVariable('Path', 'User')
if ($oldPath -imatch [regex]::escape($targetFolder)) {
  $newPath = $oldPath -replace [regex]::escape($targetFolder),$NULL
  [System.Environment]::SetEnvironmentVariable('Path', $newPath, 'User')
}

if ((Get-Service $serviceName -ErrorAction SilentlyContinue)) {
  Stop-Service $serviceName
  Set-Service $serviceName -startuptype 'manual'
  Get-CimInstance -ClassName Win32_Service -Filter "Name='osqueryd'" | Invoke-CimMethod -methodName Delete
}

if (Test-Path $targetFolder) {
  Remove-Item -Force -Recurse $targetFolder
  if(Test-Path $targetFolder) {
    Write-Output 'osquery uninstallation was unsuccessful.'
  } else {
    Write-Output 'osquery was uninstalled successfully.'
  }
} else {
  Write-Output 'osquery was not found on the system. Nothing to do.'
}

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.

Version Downloads Last Updated Status
osquery 4.0.1 430 Wednesday, September 11, 2019 Approved
osquery 3.4.0 9197 Thursday, May 23, 2019 Approved
osquery 3.3.2 5628 Monday, January 28, 2019 Approved
osquery 3.3.1 43484 Tuesday, October 2, 2018 Approved
osquery 3.3.0 3027 Monday, August 20, 2018 Approved
osquery 3.2.9 74608 Monday, July 2, 2018 Approved
osquery 3.2.6 52663 Monday, July 2, 2018 Approved
osquery 3.2.4 2937 Friday, May 4, 2018 Approved
osquery 2.11.2 5532 Monday, February 5, 2018 Approved

This package has no dependencies.

Discussion for the osquery Package

Ground Rules:

  • This discussion is only about osquery and the osquery package. If you have feedback for Chocolatey, please contact the Google Group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or osquery, or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.
comments powered by Disqus