使用tcpdump获取telnet的账号和密码

tcpdump是linux下的一个抓包工具,因为telnet的报文是使用明文传输的,并没有对报文进行加密,所以可以使用tcpdump获取其登录的账号和密码。因为获取到的账号和密码都是二进制的,所以我们可以使用Wireshark对其进行解析。

Wireshark主要在windows中使用,不过在linux下也有相应的版本,基于libpcap on unix-like,winpcap on windows。Tcpdump同样基于libpcap实现。

因为telnet对应的端口是23,所以使用tcpdump监听23端口。

tcpdump -w password.bin port 23 -i any

即使用tcpdump监听23端口,并将监听报文写入password.bin文件中。使用tcpdump需要root权限。

此时我们使用telnet登录,在这里选择登录本地:

telnet 127.0.0.1

此时会让我们输入用户名和密码。本地的用户名和密码都为hadoop。

在tcpdump抓取到报文之后,对报文进行分析。分析的方法有两种,第一种使用tcpdump将二进制报文转为16进制,第二种使用wireshark直接进行分析。在这里我们采用第二种。

wireshark password.bin

使用wireshark打开password.bin文件,使用wireshark需要root权限。如下图所示:

使用tcpdump获取telnet的账号和密码_第1张图片

我们首先寻找用户名,输入用户名之前telnet服务器会向我们发出login字符串:

使用tcpdump获取telnet的账号和密码_第2张图片

可以看到服务器向发出了login的字符串,此时将会输入hadoop用户名,telnet会将用户名字符串的每个字符使用一个包发送,即发送'h','a','d','o','o','p'共6个报文,每个字符都在报文的最末端。

可以看到16进制的报文显示的是字符的ascii码。分别为68 61 64 6f 6f 70。同理密码也是在服务器发送了password字符串之后寻找:

之后的密码也是如此

以上就是使用tcpdump获取telnet的用户名和密码,并使用wireshark分析的过程,当然,以上只是为了学习tcpdump和wireshark的使用方法,希望大家不要用于非法渠道。

你可能感兴趣的:(linux)