如何通过进程与服务信息快速定位Web路径?

7 人参与

想象这样一个场景:你通过某个漏洞获取了目标服务器的命令执行权限,但反弹shell失败了,或者环境受限。最直接的后手,就是在Web目录下写一个Webshell。问题来了,Web目录在哪?在陌生的系统里,像没头苍蝇一样到处find,效率低不说,还可能触发警报。其实,系统正在运行的进程和服务,就是一张活生生的“地图”。

进程:泄露路径的“话痨”

任何Web服务(如Nginx、Apache、Tomcat、PHP-FPM)都必须以进程形式运行。在linux下,ps auxps -ef命令的输出,往往包含了启动时的完整命令行参数,其中就藏着关键的路径信息。一个经验丰富的工程师不会只看进程名,而是会像侦探一样审视这些参数。

  • 对于Nginx/Apache:查找-c参数,后面跟的通常是主配置文件路径,例如nginx -c /usr/local/nginx/conf/nginx.conf。配置文件里必然定义了rootDocumentRoot
  • 对于Java应用(Tomcat等):关注-Dcatalina.base-Dcatalina.home这类JVM参数,它们直接指向了Tomcat的安装目录,其下的webapps就是默认部署路径。
  • 对于PHP-FPM:进程命令中可能包含-y参数指定配置文件,或者直接查看php-fpm.conf及其包含的www.conf,其中的chrootlisten设置能帮你定位到池的工作目录。

一个更隐蔽的入口:/proc文件系统

linux/proc/[pid]/目录是进程信息的宝库。即使进程启动命令被截断(显示为短名),你仍然可以通过cat /proc/[pid]/cmdline来获取完整的、以空字符分隔的命令行参数,这里的信息往往更原始、更完整。接着,查看/proc/[pid]/cwd符号链接,它能直接告诉你进程的当前工作目录,对于某些Web服务进程来说,这可能就是Web根目录。

服务信息:系统的“自白书”

现代服务器多用systemd或init.d来管理服务。这些服务单元文件(service unit files)本身就是一份详尽的部署说明书。

使用systemctl status nginx.service之类的命令,不仅能看状态,输出的信息里常常就包含了加载的配置文件路径。更彻底的做法是直接查看服务文件本身:cat /lib/systemd/system/nginx.servicecat /etc/init.d/nginx。在这些文件里,你会找到ExecStartEnvironment变量等配置,它们明确指出了二进制文件、配置文件乃至运行环境的路径。

对于Windows系统,思路是相通的。通过tasklist /svc找到对应Web服务(如w3wp.exe, httpd.exe)的PID,然后使用wmic process where processid=[PID] get commandline来获取完整的命令行,其中很可能包含站点根目录或应用程序池的物理路径参数。

网络连接:锁定正在服务的应用

如果服务器上跑了多个Web服务,如何知道哪个对应你入侵的站点?网络监听端口是关键线索。

使用netstat -tunlplinux)或netstat -ano | findstr :80(Windows),找出监听在80、443或某个特定端口上的进程PID。将这个PID与之前从进程信息中获取的路径信息进行交叉比对,就能精确地将“某个端口”映射到“某个具体的Web应用路径”。这步操作,相当于把IP地址和端口这个“门牌号”,翻译成了服务器文件系统里的“房间结构图”。

所以,下次再面临寻找Web路径的难题时,别急着翻箱倒柜。先静下心,问问系统本身:“你现在正用什么、在哪儿、怎么提供Web服务?” 进程、服务配置和网络连接状态给出的答案,往往比盲目的文件搜索要快得多,也准得多。这套方法,本质上是一种对运行中系统的动态分析能力,它让你更像一个理解系统脉络的管理员,而非一个生硬的入侵者。

参与讨论

7 条评论
  • 波波狗

    这个思路确实实用,之前找网站目录都是直接find -name,现在知道看进程更高效

    回复
  • 无影刀

    -c参数找配置文件这招学到了,回头试试看

    回复
  • 白虎狂客

    问下这个在docker环境里也适用吗?感觉容器里路径不太一样

    回复
  • WildTrailSeeker

    上周排查问题就用/proc找到了nginx路径,比翻日志快多了

    回复
  • 社恐の小太阳

    Windows那段有点简略啊,wmic具体怎么用能展开说说吗

    回复
  • 忧郁的海洋

    进程信息配合netstat交叉验证确实稳,避免跑错目录

    回复
  • 采药邓

    用/proc找路径这招挺实用,之前没想到

    回复