osquery-defense-kit/detection/evasion/hidden-cwd.sql

92 lines
2.1 KiB
MySQL
Raw Normal View History

-- Programs running with a hidden current working directory
-- tags: ephemeral high
SELECT
p.pid,
p.path,
p.name,
p.cmdline,
p.cwd,
p.euid,
p.parent,
pp.path AS parent_path,
pp.name AS parent_name,
pp.cmdline AS parent_cmdline,
pp.cwd AS parent_cwd,
pp.euid AS parent_euid,
2022-10-05 12:36:35 +00:00
hash.sha256,
REPLACE(p.cwd, u.directory, '~') AS dir,
CONCAT (
2022-10-05 12:36:35 +00:00
p.name,
',',
2022-10-05 12:36:35 +00:00
IIF(
REGEX_MATCH (
REPLACE(p.cwd, u.directory, '~'),
'([/~].*?/.*?/.*?)/',
2022-10-05 12:36:35 +00:00
1
) != '',
REGEX_MATCH (
REPLACE(p.cwd, u.directory, '~'),
'([/~].*?/.*?/.*?)/',
2022-10-05 12:36:35 +00:00
1
),
REPLACE(p.cwd, u.directory, '~')
2022-10-05 12:36:35 +00:00
)
) AS exception_key
FROM
processes p
2022-09-30 18:12:24 +00:00
LEFT JOIN processes pp ON p.parent = pp.pid
2022-10-05 12:36:35 +00:00
LEFT JOIN users u ON p.uid = u.uid
LEFT JOIN hash ON p.path = hash.path
WHERE
dir LIKE '%/.%'
AND NOT (
exception_key IN (
'bash,~/.local/share',
'bash,~/go/src',
'Electron,~/.vscode/extensions',
'fish,~/.local/share',
'git,~/.local/share',
'makepkg,~/.cache/yay',
'make,~/.cache/yay',
'java,~/.gradle/daemon',
'java,~/.local/share',
'rust-analyzer-p,~/.cargo/registry',
'as,~/.cache/yay',
'c++,~/.cache/yay',
'cc1plus,~/.cache/yay',
'mysqld,~/.local/share'
)
OR dir IN (
'~/.vim',
'~/.cache/yay',
'~/.local/share/chezmoi',
'~/.local/share/nvim',
'~/.gmailctl'
)
OR p.name IN (
'bindfs',
'vim',
'nvim',
'code',
'updatedb',
'git',
'gitsign',
'Code Helper'
)
OR dir LIKE '~/.dotfiles/%'
OR dir LIKE '~/.gradle/%'
OR dir LIKE '~/.local/share/kotlin/%'
OR dir LIKE '~/go/src/%'
OR dir LIKE '~/.local/share/nvim/%'
OR dir LIKE '~/.vscode/extensions/%'
OR dir LIKE '~/.local/share/fish/%'
OR dir LIKE '~/.cache/yay/%'
OR dir LIKE '/Library/Apple/System/Library/InstallerSandboxes/.PKInstallSandboxManager-SystemSoftware/%'
OR dir LIKE '~/src/%'
OR dir LIKE '~/%/.github%'
OR dir LIKE '~/.cargo/%'
OR dir LIKE '~/.local/share/JetBrains/%'
OR dir LIKE '~/code/%'
)