行业新闻

在Linux中如何进行权限维持痕迹隐藏

在Linux中如何进行权限维持痕迹隐藏

服务名称伪造

配置 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技术区”、“漏洞分析”、“工具分享”五大类,还可以与嘉宾大佬们接触,在线答疑、互相探讨。

关闭