Linux - pure-ftpd

pure-ftpd - Secure and efficient FTP server.

Platform: Linux kali 3.14-kali1-686-pae #1 SMP Debian 3.14.5-1kali1


Install pure-ftpd

root:~ /# apt-get install pure-ftpd

Permissions

  1. Create a group and a user for ftp access.
  2. Create a ftp user, and give him a password.
  3. Set FTP root directory permissions.
root:~ /# groupadd ftp
root:~ /# useradd -g ftp -d /dev/null -s /etc ftp
root:~ /# mkdir /var/ftproot
root:~ /# pure-pw useradd ftp -u ftp -g ftp -d /var/ftproot/
Password: 
Enter it again: 
root:~ /# pure-pw mkdb
root:~ /# pure-pw list
ftp                 /var/ftproot/./                                            
root:~ /# pure-pw show ftp

Login              : ftp
Password           : $1$0k4WWhr0$6oFQbM9s9WRHDQH.hVtlk0
UID                : 1000 (ftp)
GID                : 1002 (ftp)
Directory          : /var/ftproot/./
Full name          : 
Download bandwidth : 0 Kb (unlimited)
Upload   bandwidth : 0 Kb (unlimited)
Max files          : 0 (unlimited)
Max size           : 0 Mb (unlimited)
Ratio              : 0:0 (unlimited:unlimited)
Allowed local  IPs : 
Denied  local  IPs : 
Allowed client IPs : 
Denied  client IPs : 
Time restrictions  : 0000-0000 (unlimited)
Max sim sessions   : 0 (unlimited)

root:~ /# ln -s /etc/pure-ftpd/pureftpd.passwd /etc/pure-ftpd.passwd
root:~ /# ln -s /etc/pure-ftpd/pureftpd.pdb /etc/pureftpd.pdb
root:~ /# ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/PureDB
root:~ /# chown -R ftp:ftp /var/ftproot/

Start Ftp Server

root:~ /# service pure-ftpd start
Starting ftp server: Running: /usr/sbin/pure-ftpd -l puredb:/etc/pure-ftpd/pureftpd.pdb -l pam -l puredb:/etc/pure-ftpd/pureftpd.pdb -8 UTF-8 -E -u 1000 -O clf:/var/log/pure-ftpd/transfer.log -B
root:~ /# ss -ant
State      Recv-Q Send-Q                                                                                      Local Address:Port                                                                                        Peer Address:Port 
LISTEN     0      9                                                                                                      :::21                                                                                                    :::*     
LISTEN     0      9                                                                                                       *:21                        

Connect to FTP Server

root:~ /# ftp 
ftp> open 127.0.0.1 21
Connected to 127.0.0.1.
220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 1 of 50 allowed.
220-Local time is now 22:26. Server port: 21.
220-This is a private system - No anonymous login
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
Name (127.0.0.1:root): ftp
331 User ftp OK. Password required
Password:
230 OK. Current directory is /
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls 
200 PORT command successful
150 Connecting to port 36495
-rw-r--r--    1 0          0                  22 Jul  9 22:27 README.md
226-Options: -l 
226 1 matches total
ftp> quit
221-Goodbye. You uploaded 0 and downloaded 0 kbytes.
221 Logout.

Crack FTP User Password

Crack pure-ftpd hash with john the ripper.

root:~ /# cat hash.txt 
ftp:$1$0k4WWhr0$6oFQbM9s9WRHDQH.hVtlk0:::::
root:~ /# john --single  hash.txt 
Loaded 1 password hash (FreeBSD MD5 [128/128 SSE2 intrinsics 12x])
ftp              (ftp)
guesses: 1  time: 0:00:00:00 DONE (Thu Jul  9 22:33:43 2015)  c/s: 85.71  trying: ftp - ftP
Use the "--show" option to display all of the cracked passwords reliably
root:~ /# john --show  hash.txt 
ftp:ftp:::::

1 password hash cracked, 0 left

References

  1. Installing Pure-FTPD - http://www.fuzzysecurity.com/tutorials/1.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Pure-FTPd 是一个开源的 FTP 服务器,其源码使用 C 语言编写,可以在 Linux、Unix、Windows 等操作系统上运行。下面是 Pure-FTPd 的源码解析: 1. 程序入口 Pure-FTPd 的程序入口在 main() 函数中,该函数主要做了以下几件事情: - 初始化运行环境,包括设置语言、日志文件,解析命令行参数等; - 载入配置文件,包括读取 FTP 用户、虚拟用户、限速等配置信息; - 初始化网络监听,包括创建监听套接字,绑定端口等; - 进入主循环,等待客户端连接并处理客户端请求。 2. 客户端连接处理 当客户端连接到 Pure-FTPd 服务器时,服务器会创建一个新的子进程来处理该连接。子进程主要做以下几件事情: - 接受客户端的连接请求,并发送欢迎信息; - 接收客户端的命令请求,解析并执行命令; - 处理客户端的数据传输请求,包括上传、下载、列表等操作; - 断开客户端连接,销毁子进程。 3. 命令解析与执行 Pure-FTPd 支持多种 FTP 命令,包括登录、列出目录、上传、下载、删除等。在子进程中,服务器会接收客户端发送的命令请求,并解析该命令。如果该命令合法,服务器会执行相应的操作并返回结果给客户端。 4. 虚拟用户支持 Pure-FTPd 支持虚拟用户,即用户信息不需要存储在系统中,而是存储在 Pure-FTPd 的配置文件中。当客户端使用虚拟用户登录时,服务器会根据用户名和密码从配置文件中查找对应的用户信息,并进行验证。 5. 限速支持 Pure-FTPd 支持限速功能,即对上传和下载的速度进行限制。服务器会根据用户的配置信息,限制用户的上传和下载速度,以保证服务器的正常运行。 以上就是 Pure-FTPd 的源码解析。通过了解 Pure-FTPd 的源码,可以更好地理解 FTP 服务器的工作原理,也可以为开发自己的 FTP 服务器提供参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值