前言
和取证斗智斗勇了一天,做的头疼,懒得再单独搞wp了,直接放团队的了。
电子取证
手机取证_1
打开exe后直接搜索627604C2-C586-48C1-AA16-FF33C3022159.PNG,找到图片文件并导出,获取图片分辨率
flag值:
360x360
手机取证_2
搜索 姜总 查看微信群组中的聊天记录即可找到快递单号
flag值:
SF1142358694796
计算机取证_1
直接kit工具一把梭,得到密码
flag值:
anxinqi
计算机取证_2
使用命令volatility -f 1.dmp --profile=Win7SP1x64 cmdline
查看1.dmp的cmdline,发现MagnetRAMCaptu文件以及PID值
flag值:
2192
程序分析_1
使用aapt反编译AndroidManifest.xml文件,找到程序包名
1 | Cmd:aapt.exe dump xmltree EXEC.apk AndroidManifest.xml |
flag值:
exec.azj.kny.d.c
程序分析_2
同样使用aapt查看程序状态,找到入口
1 | Cmd:aapt.exe dump badging EXEC.apk |
flag值:
minmtta.hemjcbm.ahibyws.MainActivity
程序分析_3
Jeb反编译文件,找到入口的MainActivity,发现加密字符串,即为本程序的服务器地址的密文:
flag值:
aHR0cHM6Ly9hbnNqay5lY3hlaW8ueHl6
程序分析_4
用jeb打开,逐个查看源码,找到一处疑似检测环境的,类名为a
flag值:
a
网站取证_1
木马肯定都是在敏感文件夹中,直接找upload之类的文件夹,发现里面没有东西,那就去找temp文件夹,最后在
\www\runtime\temp\0f71e181346d43e56722aec663e5d4e9.php
找到木马的密码
flag值:
lanmaobei666
网站取证_2
找数据库密码首先找database.php文件,这个文件在
\www\application\database.php
接下来打开后发现这样几行代码:
1 | include ("encrypt/encrypt.php"); |
那么我们跟进到encrypto.php中,发现加密函数:
1 | <?php |
阅读发现是AES加密,str和key都给了,iv是key的sha1的前16位,那么我们在线解密,得到数据库密码:
flag值:
KBLT123
网站取证_3
看了眼bak.sql文件发现转账记录存在tab_channel_order_list中,我就按这个名字去搜文件,然后就找到了这个文件
\www\application\admin\model\Channelorderlist.php
Salt文件的就在函数中
flag值:
jyzg123456
网站取证_4
既然直接给了解密函数就可以直接得到GG币的金额,转账金额×当天汇率的总和就是总金额了。要注意转账人和收款人的id,是id为3的向id为5的转账。这些数据在bak.sql都可以找到并对应上。
由于我太菜了,不会写脚本一次到位,因此直接手算了,下面是解密单个加密值的脚本
1 | <?php |
flag值:
15758353.76
MISC
domainhacker
分析流量操作大概是:把数据打包成rar,移动rar,get的经典域渗透操作,解密base64找到密码:SecretsPassw0rds
提取压缩包,打开后发现是mimikazt,直接找到hash值提交即可
flag值:
flag{416f89c3a5deb1d398a1a1fce93862a7}
domainhacker2
分析流量操作大概依旧是:把需要的数据打包成rar,移动rar,get的经典域渗透操作,解密base64找到密码FakePassword123$
发现ntds.dit文件,使用指令提取ntds历史记录:
1 | impacket-secretsdump -system /home/kali/桌面/1122/SYSTEM -security /home/kali/桌面/1122/SECURITY -ntds /home/kali/桌面/1122/ntds.dit LOCAL -history |
flag值:
flag{07ab403ab740c1540c378b0f5aaa4087}
PWN
EscapeShellcode
首先程序开启了沙箱,禁用了除了read和write以外的功能:
pre_shellcode的功能是将一堆寄存器置0xdeadbeefdeadbeef:
但是肯定不会将rip破坏。因此rip的值就是切入点。
由于是在堆上执行,所以rip指向的内容就是堆中的地址,根据这个地址可以计算出堆的基地址。
然后测试时用sys_write打印堆中的所有内容,发现存在有libseccomp.so映射入内存中的地址,利用这个地址可以计算出与libc的偏移,从而可以控制rsi指向libc的基地址。由于不同版本的偏移量不一样,经过测试,最终确定靶机使用的是U18.04,libc-2.27。
发现environ中有_start的地址:
通过计算可以控制rsi指向environ,再指向_start。
这样再通过计算偏移量就可以使得rsi指向flag的地址,最终利用sys_write就可以打印出flag了:
exp:
1 | from pwn import * |
flag值:
flag{c08bbe2a-3378-4789-b146-d29947b1424b}