====== osquery queries======
[[osquery:osquery|{{ :osquery:icon.jpg?120|}}]]
===== context=====
dit document geeft een overzicht van enkele nuttige queries
===== gebruikers=====
==== gebruikers en hun groepen ====
SELECT usr.username, usr.uid, grp.groupname,grp.gid from users AS usr
LEFT JOIN user_groups AS usrgrp ON usr.uid = usrgrp.uid
JOIN groups AS grp ON grp.gid = usrgrp.gid
ORDER BY usr.username;
===== processen=====
==== processen, pid, path en parent ====
SELECT datetime(p.start_time,'unixepoch','localtime') AS 'START TIME',
p.pid AS PID,p.name AS PROCESSNAME, p.path AS PATH,
p.parent AS PPID, p2.name AS 'PROCESSNAME PARENT' FROM processes p
JOIN processes p2 ON p.parent = p2.pid
ORDER BY p.start_time;
==== processen met hash ====
SELECT p.pid,p.name,u.username,p.path,h.sha1 FROM processes p
JOIN hash h ON p.path = h.path
GROUP BY h.sha1
ORDER BY p.pid ASC;
GROUP BY zal alle processen met eenzelfde hash samenvoegen. \\
Je ziet dus niet alle processen, enkel die met unieke hash
==== processen met hash en user ====
SELECT p.pid,p.name,u.username,p.path,h.sha1 FROM processes p
JOIN hash h ON p.path = h.path
JOIN users u ON u.uid = p.uid
GROUP BY h.sha1
ORDER BY p.pid ASC;
==== boot time ====
SELECT p.pid AS PID, p.parent AS PPID, p.name AS PROCESSNAME,
p.path AS PATH, datetime (start_time, 'unixepoch','localtime') AS STARTTIME FROM processes p
ORDER BY p.start_time ASC LIMIT 1;
==== laatste 10 actieve processen ====
SELECT p.pid AS PID, p.parent AS PPID, p.name AS PROCESSNAME,
p.path AS PATH, datetime (start_time, 'unixepoch','localtime') AS STARTTIME FROM processes p
ORDER BY p.start_time DESC LIMIT 10;
==== zoeken op procesnaam (firefox, in dit geval)====
SELECT proc.pid, proc.name, usr.username, proc.path, proc.parent, proc2.name FROM processes AS proc
JOIN processes AS proc2 ON proc.parent = proc2.pid
JOIN users AS usr ON proc.uid = usr.uid
WHERE proc.name like '%firefox%';
ORDER BY proc.pid;
===== hashing =====
SELECT path, sha1 from hash
WHERE path = 'padNaarBestand';
voorbeeld: SELECT path, sha1 from hash where path IN ('C:\windows\system32\ping.exe', 'C:\windows\system32\cmd.exe');
===== file =====
==== timestamps ====
SELECT path, datetime(atime, 'unixepoch','localtime') AS 'Acces time',
datetime(mtime, 'unixepoch','localtime') AS 'Modified time',
datetime(btime, 'unixepoch','localtime') AS 'Created time' from file
WHERE path = 'padNaarBestand';
voorbeeld: SELECT path, datetime(atime, 'unixepoch','localtime') AS 'Acces time',
datetime(mtime, 'unixepoch','localtime') AS 'Modified time',
datetime(btime, 'unixepoch','localtime') AS 'Created time' from file
WHERE path is 'C:\Windows\System32\winevt\Logs\system.evtx';
==== alle bestandseigenschappen ====
.mode line
SELECT * from file
WHERE path = 'padNaarBestand';
voorbeeld: SELECT * from file
WHERE path = 'C:\windows\system32\cmd.exe';
===== autorun =====
==== met target path (in geval van lnk-files) ====
SELECT su.name, su.path, su.args, su.username, sc.local_path, hash.md5 from startup_items AS su
JOIN hash AS hash ON hash.path = su.path
LEFT JOIN shortcut_files AS sc ON sc.path = su.path
WHERE su.path not like '%desktop.ini%';
===== timestamp =====
datetime(start_time, 'unixepoch','localtime') AS start_time
===== netwerk verbindingen=====
==== met sha1 van process ====
SELECT p.pid, p.name, p.path, h.sha1, os.local_address, os.local_port, os.remote_address, os.remote_port, datetime(start_time,'unixepoch','localtime') FROM processes p
JOIN process_open_sockets os ON p.pid = os.pid
LEFT JOIN hash h ON h.path = p.path WHERE os.state = 'ESTABLISHED' AND os.remote_address NOT LIKE '127.0.0.1'
GROUP BY h.sha1;
===== meer info =====
{{tag>osquery}}