在/home/flag08目录中有个文件叫capture.pcap,它是一个抓包后的数据文件。根据题目提示,flag8的帐号密码就存在于这个文件中。我通过sftp把它下载到本地进行分析,因为我实体地安装了wireshark的:
lu4nx@lx:~$ sftp [email protected] sftp> cd /home/flag08 sftp> get capture.pcap /home/lu4nx Fetching /home/flag08/capture.pcap to /home/lu4nx/capture.pcap /home/flag08/capture.pcap
然后用wireshark打开这个抓包文件,可以看到全部是TCP协议的数据包。点“Analyze”菜单,选择Follow TCP Stream,这样直观显示了TCP的数据流,为了方便显示,我把“Follow TCP Stream”窗口中右下角选成了“Hex Dump”,这样更加利于我观察。简单看看,是一个交互式登陆的抓包,注意到这段数据:
000000D5 01 . 000000D6 00 0d 0a 50 61 73 73 77 6f 72 64 3a 20 ...Passw ord: 000000B9 62 b 000000BA 61 a 000000BB 63 c 000000BC 6b k 000000BD 64 d 000000BE 6f o 000000BF 6f o 000000C0 72 r 000000C1 7f . 000000C2 7f . 000000C3 7f . 000000C4 30 0 000000C5 30 0 000000C6 52 R 000000C7 6d m 000000C8 38 8 000000C9 7f . 000000CA 61 a 000000CB 74 t 000000CC 65 e 000000CD 0d .
这段数据表示服务端要求用户提供密码,接下来的数据是用户输入密码的过程,最后按了回车提交(0d是回车键的ASCII码)。不过7f那里是一个无法用符号显示的ASCII码,为此,我查了ASCII码表,得知7f是del的ASCII码。上面的意思就是,用户输入到backdoor的时候,删除了三个字符,然后输入00Rm8后,又删除了一个字符,最后再输入ate,然后摁下回车键。所以最终结果拼凑起来就是:backd00Rmate。
试着用这个密码登录系统,
[email protected]'s password: Welcome to Ubuntu 11.10 (GNU/Linux 3.0.0-12-generic i686) * Documentation: https://help.ubuntu.com/ Last login: Sat Aug 25 16:29:22 2012 from 192.168.56.1 flag08@nebula:~$ getflag You have successfully executed getflag on a target account