python 之监控与下载 GitHub项目

python 之监控与下载 GitHub项目


前些天,我们对疑似某APT组织对国内某部门的钓鱼等行为进行跟踪调查,在调查过程中,有一处线索是:怀疑其将GitHub账号作为C$C,理由是在对该GitHub账号进行调查时,发现其行为很诡异,会不定期的上传和删除文件,并且发现其文件的命名方式包含了我们调查的其他线索,于是博士就随口说了声,要是能把这个账号监控起来就好了。于是乎,我就写了一个小脚本,完成对GitHub用户的项目进行监控。当我写好了脚本,喜冲冲的给博士发了条微信,博士说现在还是先别监控了,先让客户去调查账号的内容,以免打草惊蛇,于是乎我就赶紧kill掉了脚本。(目前关于账号的具体信息,不便透漏,GitHub用户以XXX代替,项目以YYY代替。)


0x01 获取GitHub的完整下载地址

1、进去GitHub项目右键检查,选择Network;
2、点击clone and download,下载项目;
3、选择master.zip页面,查看Request URL即完整的下载地址。

在这里插入图片描述

0x02 代码

其中:
res = requests.get(“https://github.com/XXX/YYY”)为项目的地址;
result = requests.get(“https://github.com/XXX/YYY/ZZZ/master.zip”)完整下载地址;
实现方式:通过监控项目中的条目数监控GitHub,如果用户上传了文件,则下载。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2020/1/3 17:21
# @Author  : H
# @File    : downloadGitHub.py

import requests
from bs4 import BeautifulSoup
from time import sleep

import datetime
timenow = datetime.datetime.now()
timenow = str(timenow).replace(" ","-")
timenow = timenow.replace(":","-")

while True:
    try:
        res = requests.get("https://github.com/XXX/YYY")
        sleep(10)
        print(res.status_code)
        if res.ok:
            soup = BeautifulSoup(res.content, 'html.parser')
            tbody= soup('table')[0]('tbody')[0]
            tr = tbody.findAll('tr')
            if len(tr) > 3:
                result = requests.get("https://github.com/XXX/YYY/ZZZ/master.zip")
                with open(timenow +"master.zip", "wb") as file:  
                    file.write(result.content)
                    print("download the file!")
            else:
                print("needn\'t download!")
    except Exception as err:
        pass
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值