linux不用命令开启ssh,不用密码也能ssh登陆Linux?

Linux的一个后门引发对PAM的探究

1.1 起因

今天在搜索关于Linux下的后门姿势时,发现一条命令如下:

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

经典后门。直接对sshd建立软连接,之后用任意密码登录即可。

ssh root@x.x.x.x -p 5555这个是大家也经常会用到的命令,但是在好奇心的驱使下,为什么任意密码就可以了?

于是搜索了相关的资料,发现都是执行了这条命令就可以免密码登录了,但是为什么却没有一篇详细的解答。

1.2调查

首先测试一下这个命令:在A的机器上执行了如下命令:

f604f8d1b3c05c9a4792fa4fe4287fed.png

在A的机器上执行了如下命令:

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

在B机器SSH登录A机器,输入任意密码,成功登录。先理解这条命令主要在做什么:

首先,做一个软链接,结果在/tmp/su  参数的意义: -o option  -p port

这样就开启了一个端口为5555的服务:

00d9a46de2a6bbeb9bd7211d8be01808.png

测试过程中发现,只允许命名为su,命名其他尝试登录都不成功(/tmp/xxx)。

98b1d8da9bde6ceb11b905f598e4472b.png

于是看了一下sshd相关的log,发现如下:

761a5a05d5b6202f78e8de5b4a7e0f23.png

发现是基于pam认证的,使用了pam中的su,为了区分是否和/bin/中的su是否相关,做了测试如下:

7456f106d30370cba50d645aafed13c1.png

把/bin/su 重新命名为其他文件,发现依然能够任意密码登录,又做了测试如下:

cp /etc/pam.d/su /etc/pam.d/xxx

f8e7b672ad2836fcb135925467646516.png

在此执行:

ln -sf /usr/sbin/sshd /tmp/xxx; /tmp/xxx -oPort=5555;

0af0209cdadd2fea63aab95194046a89.png

成功登录,根据日志和实践现在确认调用的是/etc/pam.d/su

1.3疑问

现在确认了是pam中的su导致的,为什么就不需要密码就可以登录?

简单的diff了一下pam中的sshd和su的区别:

66b22513e418315a1199ca9c1eec3201.png

这里需要了解一下PAM中的控制标记:

07db4db4b7b23fb020641d7bc644523c.png

sshd的pam认证使用了required和include,su使用了sufficient,在此就可以看出二者的区别了。

我们发现su的认证使用了pam_rootok.so,他是如何验证的,为什么导致我们输入任何密码就通过。

于是查了下pam_rootok.so的相关信息:

875c7e46d33208e94f2f73bf6055b4e1.png

他的认证模块是认证你的UID是否为0,他会return pam的结果。

再去看一下pam_rootok.so的源码,发现:

b51554d4bae643fba724bd00c3345273.png

他先会调用getuid(),如果get的uid为0,他会检查selinux的root是否为0或是否启用selinux下为0,返回认证成功,否则认证失败。

那么getuid()是从哪里来的,查一下官网:

ac604c2582351261e60a41ad747ba1dc.png

是根据进程来取得的,根据pam_rootok的文档,我们也可以对su进行调试:

5fedcebd24d4296ed3162278e9a35def.png

pam_rootok.so返回成功,依次向下执行so,都会成功,建立会话。

查看log:

17dd590b4b7b0f0c2d41df1a0e091f76.png

第一条:

pam_rootok(su:auth): authentication succeeded

1.4 真相

至此也终于清楚了为什么就可以输入任意密码进行登录。

我们重新捋一捋:

62a36dcd9212cece9d6a757ac8ffa953.png

1.5 彩蛋

实际的真相就是在pam中的pam_rootok模块,pam_rootok通过了认证还会一次向下执行,但是下面的都会依赖于pam_rootok的认证,auth =>account =>session:

527a401c34310d8cde321a264e27ad8a.png

通过查找其实不单单是su存在pam_rootok,只要满足了上述的三个条件都可以进行”任意密码登录”。

1.6 参考资料

https://linux.die.net/man/8/pam_rootok

https://fossies.org/dox/Linux-PAM-1.3.0/pam__rootok_8c_source.html

https://fossies.org/dox/Linux-PAM-1.3.0/pam__succeed__if_8c.html

https://fossies.org/dox/Linux-PAM-1.3.0/pam__succeed__if_8c_source.html

http://man7.org/linux/man-pages/man2/getuid.2.html

http://www.tuxradar.com/content/how-pam-works

http://www.centoscn.com/CentOS/help/2014/0504/2899.html

转载自http://www.91ri.org/16803.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/458973.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ScrollView常用(暂时用上了的)代理方法

2019独角兽企业重金招聘Python工程师标准>>> ScrollView常用代理方法: #pragma mark - 滚动结束调用 -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {// 计算 滑动到了第几页double page scrollView.contentOffset.x / scrollView.width;self.p…

Android ListView性能优化实例讲解

前言: 对于ListView,大家绝对都不会陌生,只要是做过Android开发的人,哪有不用ListView的呢? 只要是用过ListView的人,哪有不关心对它性能优化的呢? 关于如何对ListView进行性能优化,…

Bzoj 3289: Mato的文件管理 莫队,树状数组,逆序对,离散化,分块

3289: Mato的文件管理 Time Limit: 40 Sec Memory Limit: 128 MBSubmit: 1539 Solved: 665[Submit][Status][Discuss]Description Mato同学从各路神犇以各种方式(你们懂的)收集了许多资料,这些资料一共有n份,每份有一个大小和一…

vs2010创建和使用动态链接库(dll)

*************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com *************************************************** 本文将创建一个简单的动态链接库,并编写一个应用台控制程序使用该动态链接…

magenta内核与linux,谷歌将推出新操作系统Fuchsia:Magenta语言为内核

谷歌现在研发出来并且推出使用的系统有Chrome OS、Android和Chromecasts,这三者在操作系统的市场中占得份额很高,但是好像谷歌对此并不满意,因为有相关消息显示,谷歌正在研发新的操作系统Fuchsia,该系统采用Magenta语言…

BZOJ 1968: [Ahoi2005]COMMON 约数研究 水题

1968: [Ahoi2005]COMMON 约数研究 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/problem.php?id1968 Description Input 只有一行一个整数 N&#xff08;0 < N < 1000000&#xff09;。 Output 只有一行输出&#xff0c;为整数M…

VC内存对齐准则(Memory alignment)

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** 本文所有内容在建立在一个前提下&#xff1a;使用VC编译器。着重点在于&#xff1a;VC…

mysql 主主互备实现

今天星期天&#xff0c;么事就写个MYSQL的主主架构的博客&#xff0c;原理如下图&#xff0c;不是我画的网上找的。主机作用操作系统mysql版本对应IPvip数据库mysqlA(主)centos6.4mysql 5.5.48192.168.48.129192.168.48.126mysqlB(备)centos6.4mysql 5.5.48192.168.48.132一&am…

动手实践 Linux VLAN - 每天5分钟玩转 OpenStack(13)

本节我们来看如何在实验环境中实施和配置如下 VLAN 网络 配置 VLAN 编辑 /etc/network/interfaces&#xff0c;配置 eth0.10、brvlan10、eth0.20 和 brvlan20。 下面用 vmdiff 展示了对 /etc/network/interfaces 的修改 重启宿主机&#xff0c;ifconfig 各个网络接口 用 brct…

Socket的3次握手链接与4次断开握手

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** 连接握手&#xff1a; 1.客户端发送建立连接请求 &#xff08;发送请求&#xff09;2.…

Linux桌面需要强制访问控制,RHCSA 系列(十三): 在 RHEL 7 中使用 SELinux 进行强制访问控制...

RHCSA 认证&#xff1a;SELinux 精要和控制文件系统的访问尽管作为第一级别的权限和访问控制机制是必要的&#xff0c;但它们同样有一些局限&#xff0c;而这些局限则可以由安全增强 Linux(Security Enhanced Linux&#xff0c;简称为 SELinux)来处理。这些局限的一种情形是&am…

使用canvas实现擦玻璃效果

体验效果:http://hovertree.com/texiao/html5/25/效果图&#xff1a;代码如下&#xff1a; <!DOCTYPE html> <html> <head lang"zh"> <meta name"viewport" content"initial-scale1.0, maximum-scale1.0, user-scalableno, widt…

[转]opencv学习资料

转自&#xff1a;http://blog.csdn.net/poem_qianmo/article/details/20537737 1&#xff1a;Mat imread(const string& filename, intflags1 ); eg: Mat image0imread("dota.jpg",CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);//载入最真实的图像 ge1i…

jQuery动态设置样式List item

前段时间&#xff0c;Insus.NET有修改一个功能《激活当前视图菜单高亮呈现》http://www.cnblogs.com/insus/p/5287093.html 今天Insus.NET想改用另外一个方法来实现&#xff0c;使用jQuery。在ASP.NET MVC 环境实现&#xff1a; 代码&#xff1a; <ul><li><a hr…

linux telnet 权限,允许telnet 通过root用户进行访问

允许telnet 通过root用户进行访问RHEL6:[rootclovem ~]# yum install telnet-server -y //安装telnet服务端[rootclovem ~]# cat /etc/xinetd.d/telnet //开启telnet的托管服务# default: on# description: The telnet server serves telnet sessions; it uses \#unencrypt…

TOUGHRADIUS 项目介绍

2019独角兽企业重金招聘Python工程师标准>>> TOUGHRADIUS 项目介绍 ToughRADIUS是一个开源的Radius服务软件&#xff0c;采用于 Apache License 2.0 许可协议发布&#xff0c;从创立之日起&#xff0c;他的宗旨就是服务于中小微ISP&#xff0c;让运营变得更简单。 T…

转:Jmeter 用户思考时间(User think time),定时器,和代理服务器(proxy server)...

在负载测试中需要考虑的的一个重要要素是思考时间&#xff08;think time&#xff09;&#xff0c; 也就是在两次成功的访问请求之间的暂停时间。 有多种情形挥发导致延迟的发生&#xff1a; 用户需要时间阅读文字内容&#xff0c;或者填表&#xff0c;或者查找正确的链接等。未…

linux sql语句传参数,Linux/Unixshell参数传递到SQL脚本

在数据库运维的过程中&#xff0c;Shell 脚本在很大程度上为运维提供了极大的便利性。而shell 脚本参数作为变量传递给SQL以及SQL脚本也是DB在数据库运维的过程中&#xff0c;Shell 脚本在很大程度上为运维提供了极大的便利性。而shell 脚本参数作为变量传递给SQL以及SQL脚本也…

Myeclipse5.5获取注册码

2019独角兽企业重金招聘Python工程师标准>>> import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class MyEclipseGen {private static final String LL "Decompiling this copyrighted software is a vi…

对互联网中常见地图的坐标系探讨

文章版权由作者李晓晖和博客园共有&#xff0c;若转载请于明显处标明出处&#xff1a;http://www.cnblogs.com/naaoveGIS/。 1.背景 目前项目中使用百度地图、高德地图、谷歌中国地图、天地图的需求越来越多&#xff0c;这里我跟大家一起对各地图使用的坐标系做一个简单的探讨。…