-
-
Save zhiyue/4ac79cf504324845c5525c441133b0f5 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
echo "Loaded kernel extensions:"; | |
kextstat -kl | awk '!/com\.apple/{printf "%s %s\n", $6, $7}'; | |
echo $'\n'"Loaded user agents:"; | |
launchctl list | sed 1d | awk '!/0x|com\.apple|org\.(x|openbsd)|\.[0-9]+$/{print $3}'; | |
echo $'\n'"Inserted libraries:"; | |
launchctl getenv DYLD_INSERT_LIBRARIES; | |
echo $'\n'"User cron tasks:"; | |
crontab -l; | |
echo $'\n'"System launchd configuration:"; | |
cat /e*/lau*; | |
echo $'\n'"User launchd configuration:"; | |
cat .lau*; | |
echo $'\n'"Login items:"; | |
osascript -e 'tell application "System Events" to get name of login items'; | |
echo $'\n'"Extrinsic loadable bundles:"; | |
cd; | |
find -L /S*/L*/E* {,/}L*/{Ad,Compon,Ex,In,Keyb,Mail/Bu,P*P,Qu,Scripti,Servi,Spo}* -type d -name Contents -prune | while read d; | |
do /usr/libexec/PlistBuddy -c 'Print :CFBundleIdentifier' "$d/Info.plist" | egrep -qv "^com\.apple\.[^x]|Accusys|ArcMSR|ATTO|HDPro|HighPoint|driver\.stex|hp-fax|JMicron|print|SoftRAID" && echo ${d%/Contents}; | |
done; | |
# echo $'\n'"Unsigned shared libraries:"; | |
# find /u*/{,*/}lib -type f -exec sh -c 'file -b $1 | grep -qw shared && ! codesign -v $1' {} {} \; | |
-print; | |
echo; | |
ls -A {,/}L*/{Launch,Priv,Sta}*; | |
} 2> /dev/null | |
{ | |
echo "Loaded system agents:"; | |
sudo launchctl list | sed 1d | awk '!/0x|com\.(apple|openssh|vix\.cron)|org\.(amav|apac|cups|isc|ntp|postf|x)/{print $3}'; | |
echo $'\n'"Login hook:"; | |
sudo defaults read com.apple.loginwindow LoginHook; | |
echo $'\n'"Root cron tasks:"; | |
sudo crontab -l; | |
echo $'\n'"Log check:"; | |
syslog -k Sender kernel -k Message CReq 'GPU |hfs: Ru|I/O e|find tok|n Cause: -|NVDA\(|pagin|timed? ?o' | tail; | |
} 2> /dev/null |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
这些脚本主要用于 macOS 系统的诊断和信息收集。我会逐一详细解释每一行的作用。
第一部分:非root用户级别的信息收集
echo "Loaded kernel extensions:";
打印“Loaded kernel extensions:”,用于标识接下来的输出是关于已加载的内核扩展。
kextstat -kl | awk '!/com\.apple/{printf "%s %s\n", $6, $7}';
列出非 Apple 的内核扩展。
kextstat -kl
显示已加载的内核扩展,然后用 awk 过滤掉以com.apple
开头的扩展。echo $'\n'"Loaded user agents:";
打印“Loaded user agents:”,用于标识接下来的输出是关于已加载的用户代理。
launchctl list | sed 1d | awk '!/0x|com\.apple|org\.(x|openbsd)|\.[0-9]+$/{print $3}';
列出非 Apple 和非系统的用户级别的代理(agents)和守护进程(daemons)。
echo $'\n'"Inserted libraries:";
打印“Inserted libraries:”,用于标识接下来的输出是关于插入的库。
launchctl getenv DYLD_INSERT_LIBRARIES;
检查是否有动态库被插入。这通常用于调试或者劫持系统调用。
echo $'\n'"User cron tasks:";
打印“User cron tasks:”,用于标识接下来的输出是关于用户级别的 cron 任务。
crontab -l;
列出当前用户的所有 cron 任务。
echo $'\n'"System launchd configuration:";
打印“System launchd configuration:”,用于标识接下来的输出是关于系统级别的
launchd
配置。cat /e*/lau*;
显示系统级的
launchd
配置。echo $'\n'"User launchd configuration:";
打印“User launchd configuration:”,用于标识接下来的输出是关于用户级别的
launchd
配置。cat .lau*;
显示用户级的
launchd
配置。echo $'\n'"Login items:";
打印“Login items:”,用于标识接下来的输出是关于登录项。
osascript -e 'tell application "System Events" to get name of login items';
使用 AppleScript 列出所有登录项。
echo $'\n'"Extrinsic loadable bundles:";
打印“Extrinsic loadable bundles:”,用于标识接下来的输出是关于外部可加载的软件包。
复杂的
find
命令查找并列出某些特定目录下的外部可加载软件包。
第二部分:root用户级别的信息收集
echo "Loaded system agents:";
打印“Loaded system agents:”,用于标识接下来的输出是关于已加载的系统代理。
sudo launchctl list | sed 1d | awk '!/0x|com\.(apple|openssh|vix\.cron)|org\.(amav|apac|cups|isc|ntp|postf|x)/{print $3}';
以 root 权限列出非 Apple 和非系统的系统级代理和守护进程。
echo $'\n'"Login hook:";
打印“Login hook:”,用于标识接下来的输出是关于登录钩子。
sudo defaults read com.apple.loginwindow LoginHook;
以 root 权限读取登录钩子,这些钩子在用户登录时执行。
echo $'\n'"Root cron tasks:";
打印“Root cron tasks:”,用于标识接下来的输出是关于 root 用户的 cron 任务。
sudo crontab -l;
以 root 权限列出所有的 cron 任务。
echo $'\n'"Log check:";
打印“Log check:”,用于标识接下来的输出是关于系统日志的检查。
syslog -k Sender kernel -k Message CReq 'GPU |hfs: Ru|I/O e|find tok|n Cause: -|NVDA\(|pagin|timed? ?o' | tail;
查询系统日志中的某些特定事件。
这些脚本大多用于安全诊断和系统审计,也可以用于问题排查。
请注意,执行这些脚本通常需要相应的权限,并可能暴露敏感信息。谨慎操作。