文章目录
操作系统和环境信息
操作系统
查看主机信息: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 out 或 Connction 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