当您在复杂的环境中开始工作,没有人能告诉您有哪些服务器,而且没有文档时,您通常会使用哪些技巧?我通常从访问一个系统和几个 URL 开始,然后深入研究并开始使用 nmap 手动枚举网络,并进行大量手动搜索。你们其他人如何应对这一挑战?
答案1
我发现自己经常处于这种情况,但我没有一份要做的事情的清单。
基本上,我是这样做的:
识别系统(整个系统/环境,而不仅仅是单个服务器)。环境可能正在向某些消费者提供某种服务。因此,我从这些公共端点开始。
从入口点开始,我尝试跟踪“服务轨迹”。如果这是 Web 服务器,它是否有应用服务器、数据库后端?如果这是负载均衡器,后端在哪里,它们上运行着什么?这应该提供主要系统组件及其如何组合在一起的高级图。
检查每个服务的配置。找出它们与什么/谁对话。映射这些信息。
现在,我会更深入地研究,在每台服务器上,我会检查正在运行哪些服务,它们正在连接到谁/什么。这
netstat
是你的朋友吗?这应该会为地图添加更多详细信息,并揭示不在“服务轨迹”中的服务。最后一部分,我检查了每台机器上安装的应用程序、正在运行的进程和安装的活动 cron 作业。添加到地图中。
此时,您应该已经掌握了大量有关环境的详细信息。这只是从一组最少的信息开始,例如访问信息公共服务端点。如果您以这种方式看待事物,那么访问监控系统将会非常有帮助。
答案2
我不确定它的状态,但同化项目正在开发中以解决这个问题(以及其他一些问题)。
看起来它仍处于预发布阶段。
assimmon.org