分类目录归档:Stack

BurpSuite加密、解密Java插件概述

Intro

一直以来抓包都是用Fiddler居多,Python、BurpSuite辅助。以前用不惯BurpSuite的原因主要是界面过于繁杂,Request、Reponse窗口不如Fiddler直观,以及十分不友好的Intercept功能。所以,在之前的工作中,如果遇到协议加密,我的处理方式如下:

  1. 优先考虑是否能通过一些手段Bypass、去掉加密;
  2. 编写Fiddler解密插件,有时需要Xposed、Frida、Substrate、Flex的配合;
  3. 使用Python编写HTTP Server、Proxy,或类似Brida之类的方式,作为Fiddler、BurpSuite的上游代理;
  4. 放弃或安排给其他同事。

所以之前没有写过BurpSuite插件和脚本。这几个月经历多次实战渗透之后,逐渐熟悉了BurpSuite的界面和操作,于是在最近一个需要做协议解密的App分析中,尝试使用Java编写BurpSuite的插件,用于对Request、Response的加密和解密。BurpSuite的插件并没有Fiddler那么直观,搜了一下内部仓库竟然没有相关插件供参考,大惊。进一步抽样Review了报告和近期的入职培训,才意识到自从MonkeyLord编写了XServer并在内部大力推广之后,基本没人再分析加密过程、编写插件。另外一个同事lyxhh也开源过类似的辅助工具,参考这里

XServer大概的原理是,使用Xposed在进程中注入模块,同时开启一个HTTP Server,HTTP Server提供反射机制,所以BurpSuite可以将App的任意函数作为RPC进行调用。在此基础上进一步完善,实现重放、response修改等功能。 More

解决Hyper-V外部网络下Host和Guest网络互访的问题

简而言之,再一次被Microsoft自带的驱动坑了。

实际上早就遇到了这个问题,一直没搜到好的解决方案。具体情况可以描述为:

  • 在Windows 10、Windows Server 2016、Windows Server 2019下,使用Hyper-V创建虚拟机并使用外部网络交换机的情况下,Host和Guest的网络无法互访。表现为Host无法ping通Guest,反之亦然。

Hyper-V的外部网络模式相当于VMWare WorkstationBridge模式,虚拟机可以直接接入企业或者家庭的网络中,对于搭建各种服务相对方便。 More

Windows 10下Frida无法通过USB连接iOS设备解决方法

前几年的某个时间点,大概是在Windows的某次更新后,或者iTunes上架Microsoft Store那段时间,Frida无法通过USB访问iOS设备,而iTunes、libimobiledevice、PP助手等则不受影响。之前尝试了各种组合,包括使用Microsoft Store和独立安装的iTunes,均未能解决。简单看了一下代码,没有发现处理不当的地方。只好在遇到iOS任务时更换MacBook Pro或者Ubuntu。在Frida的Issues也有相关的讨论,参考这里这里

今天在处理某个任务的时候,无意中发现一台Windows 10 LTSC上,Frida能够正常通过USB连接iOS设备,iTunes是独立安装包。简单分析和尝试后,以下方法可解决无法找到设备的问题:

  1. 如果从Microsoft Store中安装了iTunes,卸载之;
  2. 连接iOS设备,从设备管理器中删除设备,并勾选删除驱动;
  3. 下载iTunes安装包;
  4. 拔掉iOS设备,重启,断网安装iTunes;
  5. 启动iTunes,插上iOS设备,运行Frida进行测试。

上述方法在两台Windows 10 Pro上测试通过。 More

iOS越狱后Cydia联网记录

在工信部发布《移动智能终端应用软件预置和分发管理暂行规定》之后,从iOS 10的某个更新开始,国行手机在安装新应用后,默认情况下不会拥有网络连接权限,必须由用户手动设置后,才能访问WLAN或者移动网络。

这功能怎么说,略显鸡肋和脱离实际。Android应用可以很好的规避,如APK安装时有相关的提示,国内市场也可以在页面上进行权限的标注,然后静默安装。所以,对于原本应该规范的Android并没有受到影响,反而是相对可靠的iOS手机(国行),变得十分多余。

受到显著影响的,则是越狱后的Cydia、Sileo及其他越狱后安装的程序。虽然有帖子表示会有一定概率能够让系统自动弹出联网权限提示,但我从来没遇到过。通过参考各种帖子和实践,目前可用的方法大概有如下几种。 More

Ryzen 7 3700x上车小记

从CES 2019发布锐龙3代 处理器开始,一直关注相关的消息。在还没发发售前,通过各项数据及跑分显示,锐龙3代的性价比很高。正式发售后,通过极客湾和Linus Tech Tips了解3700x的真实上机表现后,趁着京东还在预售返利,立马入了一块3700x。

因为锐龙3代依然使用AM4接口,大部分AMD 300 & 400芯片的主板通过更新BIOS即可使用锐龙3代。从价格和需求的角度考虑,主板最终选择了Asus的TUF B450M-Pro Gaming

内存使用了两条16G的光威TYPE-α DDR4-3200: More

利用Windows 10自带的OpenSSH配置Git

Windows 10 1709之后,系统中默认会安装OpenSSH客户端,并且加入了环境变量:

系统环境变量

才更新的时候,导致了Git工作不正常,即每次拉取都需要输入SSH Key的passphrase。按照以往的习惯和教程,都会在Shell(Bash、PowerShell)启动的时候,运行一下ssh-agent,并手动输入一次passphrase即可。而更新后,由于环境变量的缘故,git运行的是C:\Windows\System32\OpenSSH中的ssh,不知道什么原因找不到Shell启动的ssh-agent,导致每次都需要输入passphrase。

解决方法就是让git使用系统自带的OpenSSH,并且设置OpenSSH的服务为自启动。 More

两种在智能摄像头执行命令的方法

之前的某个时间段内我们对智能摄像头进行了一些研究,除了针对云服务、App交互部分的测试,还需要到摄像头上进行一些调试的操作。除了通过默认SSH密码、刷ROM、拆机接线写入文件,还用到了两种比较有意思的方法。

SD卡命令执行

大多数智能摄像头使用的linux系统,启动的工作都在init.sh脚本中完成。部分摄像头在init.sh脚本中保留了一些测试代码,检测特定的文件并尝试执行。

以小蚁摄像头为例,某款摄像头的init.sh中有如下代码: More

使用DNSCrypt以及选择最佳的DoH Resolver

Intro

DNS劫持、污染在国内相当常见。除了用来屏蔽一些国外的网站,最常见的是劫持百度统计的域名。因为国内大多数网站都使用百度统计,而使用百度统计需要从百度的网站加载一段JavaScript。部分运营商通过DNS劫持,重定向该请求到自己的服务器,并返回一段包含有广告代码的JavaScript,用于弹窗、推广等广告活动。印象最深的是前几年某银行的行长在使用自家的App时弹出了一段红包广告,因此暴怒。而我个人则是因为有次被劫持了live.com,而心有余悸。

所以我一直使用USTC的DNS进行域名解析,虽然无法防止记录和中间人工具,但大多数常用网站的解析结果还算权威。然而,最近半年发现USTC的DNS也被污染了:

C:\Users
λ  Resolve-DnsName -Server 202.141.162.123 www.google.com
Name                                           Type   TTL   Section    IPAddress
----                                           ----   ---   -------    ---------
www.google.com                                 A      157   Answer     74.86.228.110

C:\Users
λ  Resolve-DnsName -Server 202.141.178.13 www.google.com
Name                                           Type   TTL   Section    IPAddress
----                                           ----   ---   -------    ---------
www.google.com                                 A      154   Answer     74.86.228.110

于是转向DNSCrypt,DNSCrypt是一种加密DNS请求的网络协议,可以有效的阻止重放攻击、观察攻击、时序攻击、中间人攻击和解析伪造攻击。DNSCrypt相关的技术包括: More

批量吊销、恢复国内软件证书

RevokeChinaCerts收集了国内大多数热门软件的数字证书,并且能够将证书设为系统不受信,阻止相关厂商软件的安装。几年前用的时候,发现RevokeChinaCerts自带的添加工具有时会出现添加不上的问题,看了一下发现PowerShell的实现更为方便和稳定,于是写了个PsRevokeCerts

原理

PowerShell的实现相对简单,在管理员模式下,将证书文件添加到Cert:\LocalMachine\Disallowed即可,代码如下:

Import-Certificate -FilePath $certFilePath -CertStoreLocation Cert:\LocalMachine\Disallowed

用法

克隆工程,并初始化RevokeChinaCerts子模块: More

VPS&WordPress更新记录

Contabo的VPS试用了半年,除了速度其他方面总体满意。通过测试,非大陆地区的延迟较低,速度也不错,大陆民用线路实在卡得不行,延迟基本在300ms以上。所以,做穿透还是得用香港、台湾或者日本的服务器。另外尝试了一下CloudFlare的CDN,运行一个月试试。

同时,Wordpress更新的时候遇到了一些问题,顺手做了如下调整:

针对Ngnix的调整: More