玄机蓝队靶场_应急响应_02:apache日志分析
日志分析这块,感觉都是对grep、awk、sort、wc、uniq,这几个命令的使用。
一:靶场
(1)直接cd到linux日志,
cd /var/log
发现apache2目录,
cd ./apache2
里边只有两种类型的日志,access.log和error.log。
access.log(访问日志):
记录内容:此日志记录所有对服务器的访问请求,包括访问者的IP地址、请求时间、请求的URL、HTTP方法、响应状态码、响应大小、用户代理信息等。
用途:用于监控网站的访问情况、分析流量、生成统计数据、检查用户行为等。它帮助管理员了解哪些资源最受欢迎、流量的来源、访问模式等。
error.log(错误日志):
记录内容:此日志记录服务器运行过程中遇到的错误和警告信息,例如配置错误、缺少文件、服务器崩溃等。还可能记录一些调试信息。
用途:用于排查和解决问题。当服务器出现错误或异常时,管理员可以通过查看这个日志文件来找到错误的原因,并进行修复。
简单来说,access.log是和流量相关的日志,记录的都是正常请求。error.log日志记录的是服务器本身的日志,和流量没有关系。用户访问时,响应码为404,500,502,503,504的流量除了被记录在access.log中,也会被记录在error.log中(access.log中记录的是相对路径,error.log中记录的是绝对日志)。
访问最多的IP,
cat ./access.log.1 |awk '{print $1}'|sort |uniq -c
(2)
在看日志时可以发现客户端的浏览器,操作系统信息,版本等内容,这些东西,复制做md5加密即可得到对应的md5值:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
(3)
直接过滤'/index.php'而不是'inde.php'
cat ./access.log.1 |grep '/index.php' |wc -l
(4)
这里有一个坑,grep过滤是包含过滤,不是完全匹配的过滤,比如说我要过滤'192.168.200.2',那么'192.168.200.211'也会被包括,这坑卡了我几十分钟。
cat ./access.log.1 |grep '192.168.200.2'|awk '{print $1}'|sort -nr |uniq -c
(5)
这题注意反义字符,还有就是答案是要访问的IP数,而不是访问次数。(没想到::1也算)
cat ./access.log.1 |grep '\[03\/Aug\/2023\:08\:'|awk '{print $1}'|sort -nr |uniq -c
二:收获
(1)apache日志的格式,分为access.log和error.log,access.log是关于访问流量的日志,error.log是关于服务器运行状态的日志。访问流量响应码为404,500,502,503,504的流量会被同时记录在两个类型日志中,里面的访问路径access体现为相对路径,error体现为绝对路径。
Apache+Linux 日志路径一般是以下三种:
/var/log/apache/access.log
/var/log/apache2/access.log
/var/log/httpd/access.log
(2)grep过滤为包含过滤,而不是完全匹配的过滤。
(3)看了其他人写的WP,认识到对日志的格式做解读记录一下是有必要的:
192.168.200.2 - - [03/Aug/2023:08:46:39 +0000] "GET /_admin/ HTTP/1.1" 404 492 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"
192.168.200.2:客户端的IP地址,表示发起请求的计算机的网络地址。
-:通常是指客户端的身份验证信息(如用户名),此处没有提供,因此显示为-。
-:表示请求的身份验证用户名,若无显示为-。
[03/Aug/2023:08:46:39 +0000]:时间戳,表示请求发生的日期和时间,格式为[日/月/年:时:分:秒 时区]。
"GET /_admin/ HTTP/1.1":请求行,包括请求方法(GET)、请求的URL(/_admin/)和使用的协议(HTTP/1.1)。
404:HTTP响应状态码,表示请求的资源未找到。
492:响应的字节数,表示返回给客户端的数据大小,单位为字节。
"-":表示请求的来源页(Referer),即发起请求的页面,若无显示为-。
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36":用户代理字符串(User-Agent),提供了关于客户端浏览器及其版本的信息。
192.168.200.48 - - [03/Aug/2023:08:43:34 +0000] "GET / HTTP/1.1" 200 4220 "-" "curl/7.68.0"
192.168.200.48:客户端的IP地址,表示发起请求的设备的网络地址。
-:表示客户端身份验证的用户名,此处未提供,因此显示为-。
-:同样,表示请求的身份验证用户名,此处也没有提供,因此显示为-。
[03/Aug/2023:08:43:34 +0000]:时间戳,记录了请求的日期和时间,格式为[日/月/年:时:分:秒 时区]。
"GET / HTTP/1.1":请求行,包含请求方法(GET)、请求的URL(/,表示主页)和使用的协议(HTTP/1.1)。
200:HTTP响应状态码,表示请求成功,服务器返回了请求的资源。
4220:响应的字节数,表示返回给客户端的数据大小,单位为字节。
"-":表示请求的来源页(Referer),即发起请求的页面,若无显示为-。
"curl/7.68.0":用户代理字符串(User-Agent),显示请求是由curl工具(版本7.68.0)发出的,而不是由浏览器发出的。
[Thu Aug 03 08:46:45.348890 2023] [php7:error] [pid 1541] [client 192.168.200.2:33166] script '/var/www/html/head.php' not found or unable to stat
时间戳:2023年8月3日08:46:45
错误类型:PHP 7的错误
进程ID:1541
客户端信息:IP地址和端口号(192.168.200.2:33166)
错误描述:head.php脚本文件在指定路径下不存在或无法访问(可能由于文件权限问题)。
日志记录格式定义路径/etc/httpd/conf/httpd.conf
LogFormat “%h %l %u %t “%r” %>s %b “%{Referer}i” “%{User-Agent}i”” combined
%h:客户端的IP地址。例如,192.168.1.1。
%l:客户端身份验证用户名。通常显示为-(如果没有身份验证或无法确定用户名)。
%u:用户身份验证用户名。如果没有身份验证,通常显示为-。
%t:请求的时间和日期。格式通常为[日/月/年:时:分:秒 时区]。例如,[03/Aug/2023:08:43:34 +0000]。
"%r":请求行,包括请求方法、请求的URL和协议。例如,"GET /index.html HTTP/1.1"。
%>s:HTTP响应状态码。例如,200表示成功,404表示未找到。
%b:响应的字节数(不包括HTTP头)。例如,4220字节。
"%{Referer}i":请求的来源页(Referer)。如果没有来源页信息,通常显示为-。
"%{User-Agent}i":用户代理字符串(User-Agent),即客户端的浏览器或工具的信息。例如,"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"。
查看IP做了什么操作:
cat access.log.1 | grep 192.168.200.2 | awk '{print $1"\t"$8}' | sort | uniq -c | less
查找访问的热点时间(单位是分钟):
awk ‘{print $4}’ access.log.1 |cut -c 14-18|sort|uniq -c|head
(cut -c 14-18 是一个用于提取文本中指定字符范围的命令。具体来说,它从每行中提取第14到第18个字符(包括两个端点的字符).)
结合IP可以得到恶意IP的访问历史。
cat ./access.log.1 |grep '\[03\/Aug\/2023\:08\:'|awk '{print $1}'|sort -nr |uniq -c
参考WP:https://blog.csdn.net/qq_46343633/article/details/139471570
玄机蓝队靶场_应急响应_02:apache日志分析的更多相关文章
- Linux安全事件应急响应排查方法总结
Linux安全事件应急响应排查方法总结 Linux是服务器操作系统中最常用的操作系统,因为其拥有高性能.高扩展性.高安全性,受到了越来越多的运维人员追捧.但是针对Linux服务器操作系统的安全事件也非 ...
- 红蓝对抗 - 蓝队手册(BTFM)(转载)
本文已发表在嘶吼RoarTalk,未经授权,请勿转载! http://www.4hou.com/technology/10173.html 最佳阅读体验版:https://stackedit.io/v ...
- Linux应急响应(三):挖矿病毒
0x00 前言 随着虚拟货币的疯狂炒作,利用挖矿脚本来实现流量变现,使得挖矿病毒成为不法分子利用最为频繁的攻击方式.新的挖矿攻击展现出了类似蠕虫的行为,并结合了高级攻击技术,以增加对目标服务器感染 ...
- Window应急响应(四):挖矿病毒
0x00 前言 随着虚拟货币的疯狂炒作,挖矿病毒已经成为不法分子利用最为频繁的攻击方式之一.病毒传播者可以利用个人电脑或服务器进行挖矿,具体现象为电脑CPU占用率高,C盘可使用空间骤降,电脑温度升 ...
- Linux应急响应入侵排查思路
0x00 前言 当企业发生黑客入侵.系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,进一步查找入侵来源,还原入侵事故过程,同时给出解 ...
- Linux应急响应(一):SSH暴力破解
0x00 前言 SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,主要用于给远程登录会话数据进行加密,保证数据传输的安全.SSH口令长度太短或者复杂度不够,如仅包含数字,或仅包 ...
- Linux应急响应思路详谈
一.主机篇: 1.自动化初筛,建议使用RootkitHunter (1)安装 $sudo wget https://jaist.dl.sourceforge.net/project/rkhunter/ ...
- 最全Linux应急响应技巧 【转】
概述 Linux环境下处理应急响应事件往往会更加的棘手,因为相比于Windows,Linux没有像Autorun.procexp这样的应急响应利器,也没有统一的应急响应处理流程.所以,这篇文章将会对L ...
- Linux应急响应基础
文件排查 敏感目录文件分析 tmp目录 命令目录 /usr/bin /usr/sbin 开机启动项 /etc/init.d /etc/init.d是/etc/rc.d/init.d的软链接 文件时间 ...
- 一些关于Linux入侵应急响应的碎碎念
近半年做了很多应急响应项目,针对黑客入侵.但疲于没有时间来总结一些常用的东西,寄希望用这篇博文分享一些安全工程师在处理应急响应时常见的套路,因为方面众多可能有些杂碎. 个人认为入侵响应的核心无外乎四个 ...
随机推荐
- Linux 应用案例开发手册——基于Zynq-7010/20工业开发板
目 录 1 开发案例说明 4 2 Linux 常用开发案例 4 2.1 tl_led_flash 案例 4 2.2 tl_key_test 案例 7 2.3 tl_can_echo 案例 11 2.4 ...
- input标签 手机端数字键盘
要一点击提起数字键盘,安卓只要设置input的类型是number或tel, ios 需要 pattern="number"可以直接打开搜狗输入法的数字键盘,可以输入.和数字如果只能 ...
- QAnything AI开源的企业级本地知识库问答解决方案,致力于支持任意格式文件或数据库的问答
QAnything AI简介 QAnything ai是一个本地知识库问答系统,旨在支持多种文件格式和数据库,允许离线安装和使用.您可以简单地删除任何格式的任何本地存储文件,并获得准确.快速和可靠的答 ...
- 3.3 Y86-64的顺序实现
将处理组织成阶段 为了实现流水线处理机制,要将指令组织成某个特殊的阶段序列,所有的指令遵循统一的序列,不同阶段放在不同硬件上进行处理.下面是对各阶段的简述. 取指(fetch):取指阶段从内存读取指令 ...
- nginx负载均衡session共享解决方案
解决方案: 1.使用客户端的cookie作为存放登录信息的媒介 cookie是将用户登录信息存储在用户终端的数据载体,与session的最大区别就是,session是存储在服务器端的:所以这就很容易解 ...
- 数据仓库建模工具之一——Hive学习第四天
Hive的基本操作 1.3HIve的表操作(接着昨天的继续学习) 1.3.2 显示表 show tables; show tables like 'u*'; desc t_person; desc f ...
- DSCL:已开源,北京大学提出解耦对比损失 | AAAI 2024
监督对比损失(SCL)在视觉表征学习中很流行.但在长尾识别场景中,由于每类样本数量不平衡,对两类正样本进行同等对待会导致类内距离的优化出现偏差.此外,SCL忽略了负样本之间的相似关系的语义线索.为了提 ...
- 「模拟赛」暑期集训CSP提高模拟4(7.21)
很祭的一次比赛,啥也不会. 题目列表: A.White and Black B.White and White C.Black and Black D.Black and White A.White ...
- Python 代码中的 yield 到底是什么?
在Python编程中,有一个强大而神秘的关键字,那就是yield.初学者常常被它搞得晕头转向,而高级开发者则借助它实现高效的代码.到底yield是什么?它又是如何在Python代码中发挥作用的呢?让我 ...
- Win11不在C盘安装WSL2(Linux环境),安装Nvidia驱动和默认使用Win11的网络代理服务
众所周知,WSL 2 为 Windows 用户提供了一个强大.高效且灵活的 Linux 环境,特别适合开发者使用.它结合了 Windows 和 Linux 的优点,为用户提供了更加全面和高效的工作环境 ...