The Hackers Labs (防御靶场练习)
Binary Trail(二进制痕迹)
对公司基础设施至关重要的 Linux 服务器已显示出可疑活动的迹象。在例行审计期间,已发现位于非标准目录中的未知二进制文件的存在。此文件的性质和来源尚不确定,但其行为表明可能存在对系统的纵。安全团队已要求进行分析,以了解其影响程度。这包括识别对系统配置所做的任何更改、使用的可能攻击媒介,以及评估此二进制文件是否代表活跃的威胁。要完成此任务,您需要检查服务器以获取与此二进制文件相关的证据,评估其行为,并记录您的发现。您必须确定: 1. 二进制的主要功能。2. 如果您修改了关键系统文件或设置。3. 指示他们如何到达服务器的任何痕迹。4. 它与系统中记录的异常事件可能存在关系。您的分析应该是系统的,并侧重于得出有关二进制对系统的影响的明确结论。避免依赖高级工具;仅使用标准 Linux 环境中可用的基本功能来模拟初始响应计算机的约束。登录: root / toor
参考文章:CTF 二进制跟踪解析、【The Hackers Labs】Binary Trail靶机wp-CSDN博客
1.¿Cuál es el nombre del binario sospechoso?(可疑二进制文件的名称是什么?)
注意:本靶机没有网络环境,因此只能在实机操作不能用远程shell工具
注意:使用命令localectl
查看其使用的键盘配置:
System Locale(系统语言环境)
VC Keymap(虚拟控制台键盘布局)
X11 Layout(X11 图形界面键盘布局)
X11 Model(使用的键盘型号)
这里的键盘布局为西班牙语布局,因此符号要按下图中来:
但是打不了><
,因此更改键位:
sudo vim /etc/default/keyboard
更改:
XKBMODEL="pc104"
XKBLAYOUT="us"
重启靶机,修改成功
回到题目,寻找可疑二进制文件
思路:检查靶机上安装的第三方软件
直接到/opt
目录下检查:
可以发现这个任意用户可执行的文件auth_proxy
,可以推测其为恶意软件
思路:寻找当前用户具有执行权限且不位于/bin
、/usr
、/sbin
等常见系统目录下的文件
find / -type f -executable -not -path "/bin/*" -not -path "/usr/*" -not -path "/sbin/*" -not -path "/lib/*" -mtime -7 2>/dev/null
find /
从根目录 /
开始递归搜索所有文件和目录。
-type f
仅搜索普通文件(排除目录、符号链接等)。
-executable
匹配当前用户具有执行权限的文件(需注意权限与实际可执行性)。
-not -path "/bin/\*"
排除路径匹配 /bin/*
的文件,但仅限 /bin
的直接子项(如 /bin/ls
),不排除深层路径(如 /bin/subdir/file
)。
-mtime -7
匹配修改在7天内的文件。
2>/dev/null
隐藏所有错误信息(如权限不足导致的访问拒绝)。
这些文件属于 console-setup
相关的配置缓存文件,它们的作用是加速系统在控制台模式(非图形界面)下的键盘、字体和终端设置。
我们不断增加匹配的时间范围:
/var/lib/dpkg/info/libgstreamer1.0-0:amd64.postinst
:当 libgstreamer1.0-0:amd64
安装、升级或重新安装时,该脚本会自动执行,以配置 GStreamer 多媒体框架。
/etc/grub.d/01_password
:GRUB2 的密码保护配置,用于在 GRUB 启动菜单中限制未授权用户更改引导选项
/etc/grub.d/10_linux
:GRUB2 生成启动菜单时的核心脚本之一
/etc/cloud/clean.d/99-installer
:该文件属于 cloud-init
,用于 清理云计算环境的安装痕迹,通常用于虚拟机(如 AWS、Azure、GCP)
GStreamer 是一个 开源的多媒体框架,用于 音频和视频处理,常用于 音视频播放器、流媒体处理、视频编辑 等应用。
GRUB 是 Linux 的 引导加载程序,用于在计算机开机时 加载操作系统。
因此可疑软件为auth_proxy
2.¿Qué archivo oculta el binario en el sistema?(二进制文件隐藏在系统中的是什么文件?)
二进制文件分析思路:首先使用strings
查看文件中的字符串
strings /opt/auth_proxy > 1.txt
vim 1.txt
可以发现该软件会执行命令touch /etc/.shadow_auth
,创建隐藏文件
补充:可以使用以下命令过滤分析命令执行的部分:
strings /opt/auth_proxy | grep "/" > 2.txt
vim 2.txt
3.¿Qué comando dejó rastros el binario en los logs del sistema?(二进制文件在系统日志中留下了什么命令的痕迹?)
由上题分析可知命令为touch
分析.bash_history
,发现内容都会被删除(.bash_history > /dev/null
)
主要分析/var/log/auth.log
auth.log
文件是 Linux 系统中的一个日志文件,记录了与身份验证相关的事件,例如用户登录、权限提升和 SSH 连接。
可以发现除了我们创建出的auth.log
还有auth.log.1
找到命令执行的那几行
strings auth.log.1 | grep "auth_proxy"
4.¿En qué archivo de logs se encontraron los rastros?(RUTA)(在哪个日志文件中发现了这些痕迹?(路径))
由3分析可知在/var/log/auth.log.1
中发现了这些痕迹
但答案不对?
官方答案:
因为日志文件的轮转机制,所以其实是日志文件 /var/log/auth.log
日志文件轮转机制(Log Rotation)是一个用于管理和维护日志文件的过程,特别是在日志文件大小不断增加的情况下,确保日志文件不会无限制地增长,导致磁盘空间不足或系统性能问题。
在 Linux 系统中,日志轮转通常由 logrotate 工具管理。轮转机制会定期将当前的日志文件归档,并创建一个新的日志文件来继续记录日志。
当日志文件(如 /var/log/auth.log
)达到一定大小或时间(例如,每天、每周)时,当前日志文件会被归档(通常会添加一个后缀,如 .1
,.2
,.gz
等),并创建一个新的日志文件继续记录。
5.¿Qué permisos tiene el archivo oculto /etc/.shadow_auth? (Numérico)(隐藏的 /etc/.shadow_auth 文件具有哪些权限?(数字))
查看文件权限:
ls -l .shadow_auth
查看文件系统详细信息:
stat .shadow_auth