Shellftp是一个基于Shell命令行的FTP客户端,它可以在Linux、Unix等系统上使用,提供了FTP所必须的功能。
一、shellftp上传
使用shellftp上传文件的命令格式如下:
put [本地文件路径] [远程目录]
其中,[本地文件路径]指需要上传的本地文件路径, [远程目录]指需要上传到的远程目录,如:
put /path/to/local/file /remote/directory
实例代码如下:
shellftp 192.168.1.100
put /path/to/local/file /remote/directory
quit
这段代码将连接到远程主机,将本地文件/path/to/local/file上传到/remote/directory下,并退出shellftp。
二、shellftp命令
使用shellftp执行FTP常用命令的格式如下:
[FTP命令] [FTP命令参数]
其中,[FTP命令]指需要执行的FTP命令,[FTP命令参数]是FTP命令所需要的参数。
例如,要列出当前工作目录下的文件列表,可以使用以下命令:
ls
要下载文件,可以使用以下命令:
get [FTP文件]
要退出shellftp,可以使用以下命令:
quit
三、shellftp探测脚本
为了方便地检测某些FTP服务器是否安全,我们可以使用一个shell脚本来枚举其用户帐号和口令,检测其是否存在弱口令。
以下是一个shell脚本的示例代码:
#!/bin/bash
for user in $(cat user.txt)
do
for pass in $(cat pass.txt)
do
result=$(shellftp -n 192.168.1.100 2>&1 <<EOF
user $user
pass $pass
ls
quit
EOF)
if echo $result | grep "Login incorrect" > /dev/null
then
echo "Login failed: $user $pass"
else
echo "Login successful: $user $pass"
fi
done
done
此脚本会逐个尝试用户名和密码列表中的每一个用户及对应密码是否能成功登录FTP服务器,并输出结果。
四、shellftp登录
使用shellftp登录FTP服务器并操作的命令格式如下:
shellftp [FTP服务器IP地址]
例如,要连接到一个FTP服务器的IP地址为192.168.1.100,可以使用以下命令:
shellftp 192.168.1.100
执行此命令后,就可以执行FTP命令,如上传、下载、列出目录内容等。
五、shellftp传输文件
使用shellftp传输文件的命令格式如下:
get [FTP文件]
和
put [本地文件路径] [远程目录]
前面已有提及这两个命令。分别是从FTP服务器下载文件和上传文件到FTP服务器。
六、shellftp下载
使用shellftp下载文件的命令格式如下:
get [FTP文件]
其中,[FTP文件]指需要下载的FTP服务器上的文件名。
例如,下载名为test.txt 的文件,使用以下命令:
get test.txt
七、shellftp get异常
有时候,下载FTP文件使用get命令可能会出现一些异常情况。这里介绍两种方法。
第一种方法:使用ascii模式下载。当文件名中存在特殊字符时,使用ascii模式下载。
ascii
get "test old-1.txt"
第二种方法:使用quote命令下载。quote是一个FTP命令,可以将get命令封装。
quote retrieval "test old-1.txt" NBYTES
八、小结
通过上述对shellftp的介绍,可以看到它提供的各种功能,如上传、下载、探测、登录等,可以方便地在Shell命令行下使用FTP。