Linux维持权限实验


操作系统和环境信息

操作系统
	查看主机信息:uname -a
	查看安装时的发行版本信息:cat /etc/*release

  64位操作系统:x86_64又称x64,是x86架构的64位拓展。

  Alpine Linux操作系统:是一个面向安全应用的轻量级Linux发行版,提供了自己的包管理工具apk。

在这里插入图片描述在这里插入图片描述


可用软件
	根目录执行:
		find -name "apache*",
		find -name "nginx",
		find -name "php"

	软件包管理工具命令:
		yum
		apt
		apk
	
	下载软件命令:
		rz
		wget
		git

	编程环境命令:
		gcc

  1. Web环境:使用find命令,确定目标机器没有apache/nginx服务器、编程环境php。
Nmap扫描80, 443, 5678端口,发现只有已知的5678端口开放,确定没有Web服务。

  2.管理软件:执行命令发现没有rz、yum、apt-get软件,但可以使用wget和git。

Apk软件包管理工具

  Alpine的小巧和实用受到众多开发者的喜爱,广泛使用apk包管理工具。Alpine作为一个非常小巧的Docker镜像,在很多场合得到了很好的应用,apk也发挥着更大的作用。

		查询已安装的所有包信息:apk info 或 apk info -v
		查询指定包信息:apk search gcc
		添加指定包及其依赖:apk add gcc
		删除指定包:apk del gcc
Wget软件

  Wget是一个从网络上自动下载文件的自由工具,支持HTTP、HTTPS、FTP三个最常见的tcp/ip协议下载。“自动下载”是指退出系统后,wget可以在后台继续下载。

  实验:只要Web资源在公网上是可以被访问的,就可以下载:wget+资源地址。
  评价:使用体验极好。

Git软件

  Git与Github的区别:
Git是一款免费、开源的分布式版本控制系统,Github是用Git做版本控制的代码托管平台。

  可以使用Git软件下载Github上面的项目,比如git clone https://github.com/资源路径。


权限维持

1. SSH密钥认证-无

  在主机目录下看到authorized_keys文件。

  场景:Linux操作系统环境下,A主机通过ssh免密登陆B主机,加密方式选择RSA/DSA都可以,默认DSA。

  单项登陆的操作过程:

	1. 登陆A机器,生成密钥文件和私钥文件id_rsa和id_rsa.pub,
执行命令:ssh-keygen -t rsa/dsa

	2. 将.pub文件复制到B主机的.ssh目录,
执行命令:cat id_dsa.pub >> /root/.ssh/authorized_keys
	
	3.A主机可以直接免密登陆B主机了,登陆命令ssh ip
本地测试

在这里插入图片描述
在这里插入图片描述

实战测试
	可以执行wget命令,安装rz和sz以便上传key:
wget http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz

	tar zxvf lrzsz-0.12.20.tar.gz && cd lrzsz-0.12.20
	./configure && make && make install 
	cd usr/bin
	ln -s /usr/local/bin/lrz rz
	ln -s /usr/local/bin/lsz sz

  编译发生错误。

  Wget下载:把id_rsa_.pub文件放到网站上,然后wget下载到目标主机。执行命令:cat id_dsa.pub >> /root/.ssh/authorized_keys。尝试ssh ip进行免密登陆,发现要求输入密码。查看/roo/.ssh/authorized_keys文件,发现是存在客户端的key的。

在这里插入图片描述在这里插入图片描述
  分别尝试修改authorized_keys的权限为600和700,并且修改/root/.ssh/目录的权限为700,仍然无法免密登陆。
  尝试删除/root/.ssh/known_hosts文件:rm /root/.ssh/known_hosts。
  重启ssh服务,报错“/etc/init.d/sshd: /sbin/openrc-run: bad interpreter: 找不到文件或目录”。
  暂时放弃免密登陆,问题很可能出在/etc/ssh/sshd_config文件中,没有设置PermitRootLogin yes,

在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


2. 添加用户-无

  adduser test,输入密码。使用xshell远程登陆,提示“拒绝密码”。
使用命令行连接:ssh trader@ip,仍然提示“Permission denied”。

在这里插入图片描述

在这里插入图片描述


3. 定时计划反弹shell-拿下

  具体过程见文章《Shell编程_定时反弹shell》


4. Rootkit 之 Mafix-无

  Mafix是一款常用的轻量应用级别Rootkits,是通过伪造ssh协议漏洞实现远程登陆的,特点是配置简单并可以自定义验证密码和端口号。

安装配置命令:
	tar zvxf mafix.tar.gz
	cd mafix
	chmod +x root
	./root 自定义password port

连接命令:
	ssh root@ip -p port

在这里插入图片描述


复盘

  目前主机的ssh服务无法正常启动,也就无法ssh登陆。免密登陆、添加用户登陆、SSH软链接暂时都无法使用。

  推断是ssh服务出现了问题。
通过ssh维持权限的方式,连接目标主机都提示Connection confused
测试关闭22端口连接,返回Connection timed outConnction failed

  理论上解决办法:
启动ssh服务:/etc/init.d ssh start
或安装ssh服务:apt-get install openssh-server
alpine删除/安装:apk del/add openssh-server


参考

  《SSH -t rsa方式登录 》
https://www.pianshen.com/article/7654860395/

  《linux 下安装安装rz/sz命令》
https://www.cnblogs.com/hghua/p/13322422.html

  《Alpine包管理工具apk使用介绍》, 2019-09
https://blog.csdn.net/liumiaocn/article/details/87603628

  《Linux权限维持笔记》,2020-07
尝试了4种维持方式,还有cat隐藏、进程注入、suid后门等有意思的权限维持方式
https://www.cnblogs.com/xiaoxiaosen/p/13359729.html

  《Mac连接Linux的ssh远程连接confused》,2021-03
https://blog.csdn.net/qq_44095091/article/details/114385585

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值