Login-py反编译
题目源于【羊城杯 2020】,主要考点为exe文件反编译为py文件,以及z3解方程
记录一下Reverse中的exe反编译为py文件
反编译exeinfo分析
把文件放到exeinfo看到是用py3.6版本的pyinstaller打包的
exe->pyc
pyinstxtractor下载地址:https://github.com/countercept/python-exe-unpacker.git
使用pyinstxtractor把exe里的pyc提取出来,py环境要尽量贴合源代码
1python pyinstxtractor.py attachment.exe
找到和与题目对应的文件login,并添加后缀修改为login.pyc,因为pyinstaller在反编译时会把对应的py版本、时间戳等信息去掉,所以我们需要使用010 Editor或其他十六进制编辑器打开login.pyc和同目录下的struct,把struct的前12个字节填补到login.pyc前面
pyc->py
安装uncompyle6:pip install uncompyl ...
Reverse中Unity的逆向
记录一下关于Unity程序的基本逆向思路
Who is he
题目源于【SCTF2019】,考点为Unity程序逆向
dnspy分析题目是Unity程序,只有一段视频,一个输入框和一个点击按钮
因为.NET应用把所有的C#代码都打包在了Assembly-CSharp.dll,所以把Who is he/Who is he_Data/Managed/Assembly-CSharp.dll文件放入到dnspy分析
可以看到程序只是判断了提交的数据与程序某一段密文的解密结果是否相同,其中数据加密流程如下,是一个CBC模式的DES,而且给出了key,iv(和key一样)和密文
直接写解密脚本
这里需要注意的是C#里面字符串默认是Unicode,每个字符后面补”\x00”,所以这里的key为”1\x002\x003\x004\x00”
12345678910import base64from Crypto.Cipher import DESkey = "1\x002\x003\x004\x00"des = DES.new(key, DES.MODE_CBC, ke ...
bang-apk脱壳
题目源于【网鼎杯2020青龙组 bang】,主要考点为apk脱壳,题目使用梆梆安全加固
记录一下如何使用ApkShelling脱壳
安卓模拟器我这里使用地是Android Studio创建安卓模拟器,当然你也可以直接下一个拥有root权限的安卓模拟器
镜像要求:
Android 8.0(包含8.0)以下的镜像
镜像Google APIs
ABI为x86架构
使用可写权限启动模拟器
以后想要root的话也需要这样打开
123cd xxx/android-sdk/toolsemulator -list-avdsemulator -avd Pixel_2_API_24 -writable-system
安装SuperSU
SuperSU下载地址:https://supersuroot.org/download/
12cd xxx/android-sdk/platform-toolsadb install supersu-2-82.apk
安装Xposed
Xposed下载地址:https://repo.xposed.info/module/de.robv.android ...
Reverse中Angr的利用
记录一下入门Reverse中符号执行的利用
Angr
官方文档:http://angr.io/api-doc/angr.html
简介Angr是一个利用python开发的二进制程序分析框架,我们可以利用这个工具尝试对一些CTF题目进行符号执行来找到正确的解答,即flag。当然,要注意的是符号执行的路径选择问题到现在依旧是一个很大的问题,换句话说也就是当我们的程序存在循环时,因为符号执行会尽量遍历所有的路径,所以每次循环之后会形成至少两个分支,当循环的次数足够多时,就会造成路径爆炸,整个机器的内存会被耗尽。
安装ubuntu安装教程如下
123456789# 安装依赖sudo apt-get install python3-dev libffi-dev build-essential virtualenvwrapper# 在/etc/profile中加入以下代码并进行sourceexport WORKON_HOME=$HOME/Python-workhomesource /usr/share/virtualenvwrapper/virtualenvwrapper.sh# 安装ang ...
Cobalt Strike Learn
关于Cobalt Strike的基础操作
基础知识
官方文档:https://www.cobaltstrike.com/aggressor-script/index.html
使用手册翻译版本:https://wbglil.gitbook.io/cobalt-strike/
简介Cobalt Strike是一款渗透测试神器,常被业界人称为CS神器。Cobalt Strike已经不再使用MSF而是作为单独的平台使用,它分为客户端与服务端,服务端是一个,客户端可以有多个,可被团队进行分布式协团操作。
Cobalt Strike集成了端口转发、扫描多模式端口Listener、Windows exe程序生成、Windows dll动态链接库生成、java程序生成、office宏代码生成,包括站点克隆获取浏览器的相关信息等。本期“安仔课堂”,ISEC实验室的陈老师带大家实战操作Cobalt Strike神器的使用。
目录
agscript拓展应用的脚本
c2lint 用于检查profile的错误异常
teamserver服务端程序
cobaltstrike,cobaltstrike.j ...
CSP nonce&strict-dynamic Bypass
关于CSP中nonce&strict-dynamic机制分析和绕过
前提知识众所周知,CSP的默认策略是不允许inline脚本执行,想要运行inline脚本需要进行如下设置
1Content-Security-Policy: script-src 'unsafe-inline'
但是为了防止恶意脚本的注入,CSP引入了nonce机制和script-dynamic机制
探究nonce机制定义参考MDN的标准
nonce-<base64-value>
An allow-list for specific inline scripts using a cryptographic nonce (number used once). The server must generate a unique nonce value each time it transmits a policy. It is critical to provide an unguessable nonce, as bypassing a resource’s policy ...
WebLogic反序列化漏洞研究
搜集和分析关于WebLogic的反序列化漏洞
简介序列化数据特征
对weblogic在7001端口的T3协议进行抓包,可以发现java序列化之后数据的Magic头ac ed 00 05,其编码后是rO0ABQ==
使用场景
http参数,cookie,sesion,存储方式可能是base64(rO0),压缩后的base64(H4sl),MII等
ServletsHTTP,Sockets,Session管理器包含的协议,包括JMX,RMI,JMS,JNDI等
xmlXstream,XMLDecoder等
json,包括Jackson,fastjson等
反序列化攻击时序图
Java应用的反序列化流程
反序列化流程图
WebLogic进行反序列化的执行流程图
实现了External接口的对象会调用readExternal()函数,实现了Serialize接口的对象会调用readObject()函数
使用Proxy类封装的对象会调用readProxyClass()函数,否则会调用readClass()函数
如果对象中存在readResolve()函数会自动执行它
webl ...
Vulnstack 红队实战
找个时间简单学习一下内网渗透
环境搭建靶机地址:http://vulnstack.qiyuanxuetang.net/vuln/
建议使用百度云盘联动IDM下载
靶机环境一共包括三台靶机,环境配置如下:
Web服务器:win7(Windows 7 x64)
网卡1:Host-Only
网卡2:NAT
域成员:winserver 2003(Win2K3 Metasploitable)
网卡1:Host-Only
域控:winserver 2008(Windows Server 2008 R2 x64)
网卡1:Host-Only
其网络拓扑如下:
搭建完成后,打开三个靶机,密码均为 hongrisec@2019,部分提示需要更新密码
然后进入win7启动phpStudy,我一开始打开是KERNELBASE.dll模块报错,Google了一下据说是因为dll编译错误,但是搜不到方法,然后我后面把备份的phpStudy恢复回来以后又可以启动了 : >
发现三台靶机的内网网段在192.168.52.0/24,然后我这里的Web服务器的外网IP为192.1 ...
2020 0CTF Unlimited
PHP AST + 反混淆 + 矩阵快速幂
唯一带有Web特征的逆向题
题目是一个经过混淆的PHP抽象语法树文件,请点击题目下载
一开始想直接找抽象语法树(AST)转为PHP代码的函数,找到了pretty_printing,但是尝试许久,无法直接将AST初始化
JsonDecoder继续查资料看到PHP-Parser可以将json字符串和AST进行互转
https://github.com/nikic/PHP-Parser/blob/master/lib/PhpParser/JsonDecoder.php
AST转json脚本如下
1234567891011121314151617181920212223242526272829303132333435363738394041424344<?phprequire dirname(__FILE__).'/vendor/autoload.php';use PhpParser\Error;use PhpParser\ParserFactory;use PhpParser\PrettyPrinter;use P ...
2020 GACTF web
题目很有意思,给星盟师傅跪了
XWiki
XWiki CVE & groovy 交互
XWiki 11.10.1,搜索当前CVE,找到任意命令执行漏洞
https://jira.xwiki.org/browse/XWIKI-16960
python被底层限制,但是groovy可以打
12345r = Runtime.getRuntime()proc = r.exec('/readflag');BufferedReader stdInput1 = new BufferedReader(new InputStreamReader(proc.getInputStream()));String s1 = null;while ((s1 = stdInput1.readLine()) != null) { print s1; }
一开读flag的时候就会卡死,后来一句句读了发现需要交互回答问题,没给问题个数,回答哪个数最大,0或者1,一开始我以为回答完就会给flag,结果手打了几十个 : )发现还没到尽头,而且回答的顺序是固定,那估计就是 ...