| 32 | |
| 33 | |
| 34 | class CloudEye: |
| 35 | def __init__(self): |
| 36 | self.unique = uniq_domain |
| 37 | self.random = ''.join([random.choice(ascii_lowercase) for _ in range(10)]) |
| 38 | |
| 39 | def getRandomDomain(self, custom='poc'): |
| 40 | """ |
| 41 | full domain = [random].[custom].[unique].dnslog.info |
| 42 | e.g. fezarvgo.poc.ee8a6f.dnslog.info |
| 43 | """ |
| 44 | self.custom = custom |
| 45 | return '%s.%s.%s.dnslog.info' % (self.random, self.custom, self.unique) |
| 46 | |
| 47 | def getDnsRecord(self, delay=2): |
| 48 | time.sleep(delay) |
| 49 | query = self.random + '.' + self.custom |
| 50 | api_base = 'http://cloudeye.me/api/{key}/{domain}/DNSLog/'.format(key=key, domain=query) |
| 51 | return requests.post(api_base).content |
| 52 | |
| 53 | def getHttpRecord(self, delay=2): |
| 54 | time.sleep(delay) |
| 55 | query = self.random + '.' + self.custom |
| 56 | api_base = 'http://cloudeye.me/api/{key}/{domain}/ApacheLog/'.format(key=key, domain=query) |
| 57 | return requests.post(api_base).content |
| 58 | |
| 59 | def verifyDNS(self, delay=2): |
| 60 | return 'dnslog.info' in self.getDnsRecord(delay) |
| 61 | |
| 62 | def verifyHTTP(self, delay=2): |
| 63 | return 'dnslog.info' in self.getHttpRecord(delay) |
| 64 | |
| 65 | |
| 66 | def queryDnsRecord(domain, delay=2): |