CobaltSrike Shellcode分析

首先我们来看一张流程图

image-20211123201045600

首先打开IDA进行查看

进入主函数,主要看sub_401840()函数进行查看

image-20211112185819017

进入函数发现,首先获取系统时间戳,然后拼接字符串和创建线程通过管道读取shellcode,最后执行shellcode

image-20211114141830161


CobaltStrike二开环境初探

前言

我们使用CobaltStrike的时候,进行性的需要进行二次开发,使其对应的功能更加丰富,更加方便我们团队联合进行渗透的稳定性和隐蔽性。

2

反编译

IntelliJ IDEA 自带了一个反编译java的工具,有时候我们需要对 cobaltstrike 的整个 jar 包进行反编译,使用这个 IntelliJ IDEA 双击之类的反编译时要是对整个源码层面进行搜索并不是很方便,可使用其自带的反编译工具,可以做到批量的整个反编译。

这里先在 IntelliJ IDEA 安装目录找到 java-decompiler.jar 拷贝到一个准备好的目录,并且新建两个文件,一个 cs_bin 里面放未反编译的 cobaltstrike 再建一个 cs_src 文件,这个是空文件,是为了之后放反编译后的 cobaltstrike


Cobalt Strike特征隐藏与流量分析

Cobalt Strike简介

Cobalt Strike is software for Adversary Simulations and Red Team Operations. Cobalt Strike 简称CS, A-team详细介绍使用网址。CS是一款优秀的后渗透工具,可以在获取主机权限后进行长久权限维持,快速进行内网提权,凭据导出等。在后渗透中如果未修改特征,容易被流量审计设备监控,被蓝队溯源。

Cobalt Strike 是一个为对手模拟和红队行动而设计的平台,主要用于执行有目标的攻击和模拟高级威胁 者的后渗透行动。本章中会概述 Cobalt Strike 的功能集和相关的攻击流程。在本手册的剩余部分中会 详细的讨论这些功能。


常用Dict使用集合

身份证后六位:

import itertools
if __name__ == '__main__':
date = input("出生日期: ")
sex = '02468' if int(input("性别(男1女2): ")) % 2 == 0 else '13579' # 性别位
check = '0123456789X' # 校验位
other = '0123456789' # 其它位
nums = itertools.product(other, other, sex, check)
cards = []
for num in nums:
card = date + "".join(num)
cards.append(card)
print(len(cards))
print(cards)

微信小程序反编译

环境准备

Mac os 11.2.2
网易MUMU模拟器
APP文件管理器
微信开发者工具:Stable Build (1.05.2108130)

获取小程序包

1.使用自己手机上的微信打开对应的小程序,可以添加到"我的小程序"
2.打开模拟器的微信并登录
3.在模拟器微信的下拉小程序最近使用历史中打开"你所选的小程序",如果历史记录中没有就在我的小程序中找一找
4.打开小程序等待加载之后就可以去找源码包了
5.打开对应的文件管理器,进入到以下路径查找源码包(可以根据下载时间区分出你想要的源码包)
6.拷贝到mumu浏览器共享目录

小程序存放路径如下:/data/data/com.tencent.mm/MicroMsg/…/appbrand/pkg/

…部分根据时间戳或者单点击一个小程序在进行测试,大部分为03075c115f972899a1b1b8cc70506599这种

image-20210913181136982


Frida--Android逆向之动态加载dex Hook(下)

​ 上篇主要是跟着师傅学习了Robust的原理,并以做题的思路去求解了这个示例ctf,其实这是一种思路的启示,当我们在不知道怎么hook动态加载的dex,jar时候,找找是否存在能够操作动态加载出来的类的方法。

​ 这一篇我们一起来学习如何用Frida来hook DexclassLoader,如何用反射直接调用类的方法,达到跟hook一般类一样的效果。最终在虚拟机、测试机和frida中发现多种问题,之后更换测试机进行测试的时候仍然存在问题,留下了一部分搞不懂的地方,当个坑未,来找到解决问题在进行填补。

文章涉及内容以及使用到的工具

使用到的工具

ADT(Android Developer Tools)
Jadx-gui
JEB
frida
apktool
android源码包
Nexus 6p(genymotion,实体机等亦可)

涉及知识点

Java 泛型
Java 反射机制
DexClassLoader 动态加载机制
Frida 基本操作
Frida 创建任意类型数组(Java.array)
Frida 类型转换(Java.cast)
Frida 方法重载(overload)
Frida Spawn

Java-sec-code学习记录

0x00 前言

​ 最近在搞Java类的代码审计,看到这个项目记录一下自己的学习过程

0x01环境配置

Mac os 11.2.2
tomcat 8.5
idea
msyql 8.0.70

导入idea项目配置本地tomcat

git clone https://github.com/JoyChou93/java-sec-code
cd java-sec-code
mvn clean package

D-Link DIR-882固件解密实验

0x01 实验目的

通过本次实验学习,如何在固件被加密的情况下进行解密,使得固件层面的 路由器安全研究顺利进行

0x02 概述

固件升级的一种方案 随着物联网安全安全越来越重视,作为万物互联的核心之一—路由器的安全也越 来越重视,反映在固件方面,就是其针对附件做的一些安全措施,可以使得一些 安全研究员手足无措,不过由于一些历史原因,很可能我们可以通过分析固件的 之前的一些版本,找到研究固件当前版本的一些线索。 下面这张图

image-20210310145532897

是很多路由器厂家会采取的一种更新升级固件并使固件更加“安全“的方案。 这个方案是这样的:最开始发布的固件是没有加密的,也没有附带任何解密的文 件,随着固件更新,解密文件会和较新版本 v1.1 中的未加密版本一起发布,以 便将来进行固件加密,v1.1 版本作为过渡使用。而到了 v1.2 时,固件则是以加 密形式发布的,不过仍附带解密文件。