在Linux中如何进行权限维持痕迹隐藏
共 1117字,需浏览 3分钟
·
2022-05-18 13:57
本文来自“白帽子社区知识星球”
作者:伟大宝宝
配置 tsh.h 中的 secret、SERVER_PORT、FAKE_PROC_NAME
同时注释掉:CONNECT_BACK_HOST、CONNECT_BACK_DELAY 两行
运行 make linux 生成后门服务端和客户端。
服务端用于在被控主机上运行,客户端在本地进行连接
将会生成 tshd 与 tsh 两个文件,tshd 为被控端运行程序,tsh 为控制 端。
生成后门后,将 tshd 修改为其他服务名,用于在查看端口运行情况 时,可以伪造 COMMAND,我这里修改为 mysqld。
运行后查看网络连接,可见服务名已经变成了我们设置好的名称。
之后查看端口信息
通过查看进程,后门的父进程 id 为 1,对应急人员的判断造成极大干扰。
使用控制端连接被控端后便可以执行命令。
同样支持反向连接,只需取消注释开头的两行代码,被控端便可回连 控制端。
效果总结:
通过伪装后门服务名称结合配置真实服务的端口,可以干扰应急 过程中的分析。由于启动后的父进程为 1,会使分析人员、运维人员 误认为其为系统进程从而忽略该进程。
使用 libprocesshider 对指定进程进行隐藏。
修改 libprocesshider.c,设置 process_to_filter 值为自己想要隐藏的进 程名。
这里隐藏的是 bash,即所有进程名为 bash 的均不会显
编译后会生成 libprocesshider.so
将 libprocesshider.so 移 动 到 其 他 文 件 夹 下 , 我 这 里 是 放 到 了
/usr/local/lib/ 目 录 下 , 之 后 将 libprocesshider.so 的 路 径 写 入
/etc/ld.so.preload 文件。
接下来使用 Bash 进行反弹 shell 并查看端口连接情况,可见,该网络
连接的进程名与 id 已无法查看。
隐藏进程后加大了发现异常进程的难度,同时在应急过程中也会 阻碍应急工作的正常进行
如果觉得本文不错的话,欢迎加入知识星球,星球内部设立了多个技术版块,目前涵盖“WEB安全”、“内网渗透”、“CTF技术区”、“漏洞分析”、“工具分享”五大类,还可以与嘉宾大佬们接触,在线答疑、互相探讨。
▼扫码关注白帽子社区公众号&加入知识星球▼