1 ►
前言及证书安装
这里简单记录一下相关抓包工具证书的安装。
BURP证书安装
安装证书到移动设备
导出证书
openssl x509 -inform DER -in cacert.der -out cacert.pem
转换格式
openssl x509 -inform PEM -subject_hash_old -in cacert.pem
计算证书hash值
把bp.pem改成727ceb75.0
adb上传至设备
这里以雷电模拟器为例
使用mt管理器把证书从sdcard文件夹下转移到/system/etc/security/cacerts下
添加读写权限
重启后即可
charles证书安装
安装证书到移动设备
保存根证书
可以保存为pem格式或者cer格式
接着后续可以参考前面的burp证书安装步骤
filder证书安装
导出证书
之后参考burp证书的操作即可,包括:使用openssl计算格式,转换hash,重命名,上传到模拟器,移动到系统证书目录
补充说明
1.实际上,像是bp,花瓶以及fd这些抓包工具,证书的安装除了导出证书再上传的方式外,还有访问代理服务器下载的方式,网上有很多教程,本文重点在总结抓包思路,就不一一赘述了
2.安装证书的目的是拦截和分析HTTPS流量。而从Android7(API24)开始,系统不再信任用户级别的CA证书,只信任系统级别的证书。所以如果抓包安卓7以上系统的设备,安装证书的时候还要将证书移动到系统级别的证书目录
例如前面burp证书导入雷电9(android9)模拟器时,我们把证书从sdcard文件夹下移动到/system/etc/security/cacerts目录中。而/system/etc/security/cacerts目录正是用来存放系统级别的CA(证书颁发机构)证书的
3.对于装了高版本安卓系统的真机,可能无法通过命令行或者mt管理器将证书移动到/system/etc/security/cacerts目录(我这里试过,发现安卓10不行)。此时可以通过Magisk中的Move Certificates模块将用户证书转化为系统证书。
然后在magisk的模块栏中选择从本地安装
成功后就会出现Move_Certificates模块
进入设置,找到安全,然后进入凭据相关的一栏,选择从存储中安装
然后在用户中就可以看到该证书
重启后它就移动到系统证书下了
2 ►
抓包
burpsuite直接抓包
条件:
- pc和移动端设备能相互ping通
- bp证书导入移动端设备
- 无检测
下面以雷电模拟器为例:
burp设置代理
雷电模拟器配置wifi代理
随便选一个app抓登录的包
burpsuite+postern抓包
条件:
- pc和移动端设备互通
- bp证书导入移动端设备
- 无vpn流量检测
如果app做了系统代理检测(wifi),而没做vpn代理检测的话,我们可以在Android等设备上启动一个VPN服务,让APP 的所有流量都先经过VPN服务,再抓取APP的网络数据包
而postern就是安卓的vpn全局代理工具
postern设置代理服务器(服务器地址和端口号与bp的监听地址一致)
点击保存
设置代理规则
选择刚添加的burp代理组
点击保存
点击打开vpn(若显示关闭vpn,则表明已经开启了vpn)
再次打开app,发现抓包成功
burpsuite结合proxifer(限于模拟器)
条件:
- 模拟器
- 模拟器导入burpsuite证书
Proxifier是一款强大的网络工具,允许用户将不支持代理的应用程序通过代理服务器进行连接。我们可以使用proxifer代理模拟器进程的流量
proxifer设置代理服务器(服务器地址和端口号与BurpSuite的监听地址一致)
选择HTTP/HTTPS即可
设置代理规则
目标程序设置为Ld9BoxHeadless.exe(LdBoxHeadless.exe负责模拟器的运行,雷电9的则是Ld9BoxHeadless.exe)
将代理规则优先级提前
burp配置代理设置,跟proxifer的符合
即可抓包
adb联合burpsuite
条件:设备安装了burpsuite证书
有时候,移动设备和测试主机不处于同一网段,且没有设置路由规则,或者所在的无线局域网设置了ap隔离,导致两设备无法互通。对于这种场景,可以采用adb端口转发的方式联合burp抓包
settings put global http_proxy 127.0.0.1:6789
adb reverse tcp:6789 tcp:7777
然后配置burp代理
成功抓包
adb reverse --remove tcp:6789
settings put global http_proxy :0
补充:安卓高版本进行上述操作后连接wifi会出现一个x,这是由于原生安卓系统验证wifi是否有效,是去访问谷歌的服务器
运行以下命令:
adb shell settings put global captive_portal_https_url https://connect.rom.miui.com/generate_204
,(改为访问小米服务器)
开启飞行模式,再关闭飞行模式即可解决!
postern+charles+burpsuite
postern设置
添加代理服务器
配置好信息后下拉点击保存
添加代理规则
配置好信息后点击保存
然后打开vpn即可
charles设置
设置SSL代理
代理设置
然后启动SSL代理,就可以抓包了
联动burpsuite
charles在之前的基础上设置外部代理
小黄鸟
HttpCanary是直接在安卓设备上操作的抓包工具
导入证书
尝试抓包,如下图
开启bp,监听8080即可联动
fiddler+wifi代理
条件:
- 设备安装fiddler证书
- 移动设备和PC互通
fiddler抓包在进行逻辑漏洞挖掘时具有一定的优势,因为相比于bp,它更容易观察流量的整体逻辑。并且fiddler的并发机制比bp优秀
这里以雷电模拟器为例
fiddler配置 导航栏点击Tools,然后选择Options
监听端口默认是8888
设备设置wifi代理
抓包
fiddler结合postern
条件:
- 设备安装fiddler证书
- 移动设备和PC互通
fiddler也可与postern之类的vpn软件联合,来绕过wifi代理检测,操作与burpsuite相似,这里就不赘述了
r0capture(hook抓包)
条件:安卓7,8,9,10,11
r0capture仅限安卓平台7、8、9、10、11 可用,能通杀TCP/IP四层模型中的应用层中的全部协议,包括Http, WebSocket, Ftp, Xmpp, Imap, Smtp, Protobuf等协议,并且能够绕过默认库的证书校验
r0capture通过Hook Android系统中的SSL/TLS库的关键函数,如SSL_read和SSL_write,来拦截和捕获应用层的数据包。这些操作发生在SSL层,因此在数据被应用层的代码处理之前,r0capture已经获取了明文数据,从而绕过了应用层的证书校验机制
不过也因此无法解密自研的SSL框架
Spawn 模式:
python3 r0capture.py -U -f com.dianping.v1 -v
Attach 模式,抓包内容保存成pcap文件供后续分析:
python3 r0capture.py -U 大众点评 -v -p dianping.pcap
Spawn模式,比如向抓包大众点评,先找到大众点评app的包名
pm list package | grep dianping
开启frida服务端,
然后在r0capture项目文件夹下运行r0capture脚本
可以在项目文件夹下看到打印的流量日志
Attach模式,再以抓包大众点评为例,先找到大众点评的进程名
frida-ps -U
开启frida-server
然后在r0capture项目文件夹下运行r0capture脚本
Ctrl+C停止抓包后,然后就可以在项目文件夹下看到抓到的pcap流量包了
wireshark打开
追踪第一条流看看,发现抓包成功了
tcpdump + wireshark
tcpdump 是一款功能强大的网络抓包工具,它可以抓取涵盖整个TCP/IP协议族的数据包,但是tcpdump本身无法解密 SSL加密过的数据,所以对于https没有办法
在安卓设备上运行
抓取所有接口的流量保存到res.pcap
tcpdump -i any -w res.pcap
这样子做更多的是分析tcp层的通信流程,包括密钥传输等
Lsposed+TrustMeAlready +bp/fd/charles(突破单向认证)
条件:
- root设备(模拟器也行)
- 安装了Magisk
- 设备安装了抓包工具的证书
LSPosed是基于Xposed开发的一个框架,支持android8.0以上的高版本,可以在不修改 APK 文件的情况下,通过模块改变系统和应用程序的行为
安装Lsposed
进入magisk设置
打开zygisk
将下载好的Lsposed包上传到设备,例如:
adb push LSPosed-v1.9.2-7024-zygisk-release.zip /storage/emulated/0/Download/LSPosed-v1.9.2-7024-zygisk-release.zip
选择从本地安装(我这里已经安装了,所以显示有了)
开启Lsposed
在Lsposed的zip包中找到manager.apk,安装到设备即可
打开发现已经激活
安装TrustMeAlready
使用adb将TrustMeAlready.apk安装到设备上
打开Lsposed
选择给某个app启用即可
接着就可以用抓包工具抓包了
3 ►
总结
抓包工具有burpsuite,fiddler,charles等
burpsuite适合渗透测试,charles适合开发者分析调试app,fiddler个人认为适合app的逻辑功能的测试(逻辑漏洞挖掘)
如果没有任何检测,我们通过wifi代理就可以结合抓包工具抓包了。如果存在系统代理检测,可以尝试使用vpn软件(postern等)绕过,或者使用proxifer抓取模拟器进程在模拟器外部实现流量代理
对于移动设备和PC无法互通的场景,可以尝试在usb连接后使用adb进行流量转发
如果存在SSLpining(单向证书校验),可以考虑Lsposed框架+TrustMeAlready进行绕过(低版本:xposed+JustTrustMe),如果存在双向证书校验,就得考虑逆向,找到apk中保存的证书了。不过也可以尝试使用肉丝大佬的r0capture脚本把加密前解密后的流量dump出来(如果app没有存在自研SSL框架的话)
4 ►
往期精彩
移动安全框架 (MobSF) 存在存储型XSS漏洞 | CVE-2024-53999
计算机热门就业方向
从目前市场情况来讲,网络安全的就业前景是非常不错的,2022年的统计数据,网络安全专业的缺口已经增长到140万人。
1、就业岗位多,发展方向广
①就业环境:网络安全可以在计算机科学与技术、信息通信、电子商务、互联网金融、电子政务等领域从事相关工作,还可以在政府机关事业单位、银行、保险、证券等金融机构,电信、传媒等行业从事相关工作。
②就业岗位:网络安全工程师、渗透测试工程师、代码审计工程师、等级保护工程师、安全运维工程师、安全运营工程师、安全服务工程师等。
2、薪资待遇可观,提升较快
作为一个新兴行业,网络安全人才的市场需求远远大于供给,企业想真正招到人才,就必须在薪酬福利上有足够的竞争优势。因此,网络安全领域的薪资近年来也呈现稳步增长的态势。
根据工信部发布的《网络安全产业人才发展报告》显示,网络安全人才平均年薪为21.28万元,整体薪资水平较高。数据显示,网络安全人才年薪主要集中在10-20万元,占比40.62%,与往年持平;其次是20-30万元,占比为38.43%,较2020年占比19.48%有显著提高;而年薪在10万以下人才占比由2020年的19.74%下降至2022年的9.08%。由此可见,网络安全行业作为新兴赛道,尚在快速发展阶段,从业人员薪资水平提升较快,也显示出网络安全行业相对更重视人才留存。
3、职业发展空间大
从网络安全专业学习的主要内容来看,包括linux运维、Python开发、渗透测试、代码审计、等级保护、应急响应、风险评估等。可见该网络安全专业的技术性很强,具有鲜明的专业特点,是一门能够学到真正技术的工科类专业之一。
因此,在职业发展上,网络安全专业除了就业岗位众多之外,由于专业技术性较强,在工作单位将处于技术核心骨干地位,职业发展空间很大。
盘点网络安全的岗位汇总
01
岗位一:渗透测试工程师
**岗位释义:**模拟黑客攻击,利用黑客技术,挖掘漏洞,提出修复建议。有些大厂,例如奇安信,甚至会将渗透岗位分为红蓝两方,对候选人的技术要求比较高,大部分刚入行的新人,也将渗透岗位作为后期的发展目标。
岗位职责:
- 负责对客户网络、系统、应用进行渗透测试、安全评估和安全加固
- 在出现网络攻击或安全事件时,提供应急响应服务,帮助用户恢复系统及调查取证
- 针对客户网络架构,建议合理的网络安全解决方案
**工作难度:**5颗星
02
岗位二:安全运维工程师
**岗位释义:**维护网络系统的正常、安全运行,如果受到黑客攻击,则需要进行应急响应和入侵排查安全加固。很多刚毕业入行的新人,基本都从运维做起。
岗位职责:
- 日常终端维护,操作系统安装加固
- 完成网络安全设备故障排查、处置
- 完成相关管理制度文档的编写和提交
**工作难度:**3颗星
03
岗位三:安全运营工程师
**岗位释义:**在运维的基础上,高效可持续地不断提升企业的安全防御能力。
岗位职责:
- 负责监控、扫描等各类安全策略的制定和优化
- 负责信息安全事件的应急响应
- 参与网络安全评估工作、安全加固工作和监控等等
**工作难度:**3颗星
04
岗位四:安全开发工程师
**岗位释义:**顾名思义,对安全产品及平台、策略等进行开发工作。
岗位职责:
- 负责网络安全产品的系统技术设计、代码开发与实现、单元测试、静态检查、本地构建等工作;
- 参与公司其他产品的系统技术设计以及研发工作。
**工作难度:**5颗星
05
岗位五:等保测评工程师
**岗位释义:**等保测评也叫等级保护测评,主要负责开展信息安全等级保护测评、信息安全风险评估、应急响应、信息安全咨询等工作 。
岗位职责:
- 网络安全等级保护测评项目实施;
- Web渗透测试、操作系统安全加固等安全项目实施配合
**工作难度:**3颗星
06
岗位六:安全研究工程师
**岗位释义:**网络安全领域的研究人才。
岗位职责:
- 跟踪和分析国内外安全事件、发展趋势和解决方案
- 承担或参与创新型课题研究
- 参与项目方案设计,组织推动项目落实,完成研究内容、
- 负责网络安全关键技术攻关和安全工具研发
**工作难度:**5颗星
07
岗位七:漏洞挖掘工程师
**岗位释义:**主要从事逆向、软件分析、漏洞挖掘工作
岗位职责:
- 通过模拟实施特定方法所获得的结果,评估计算机网络系统安全状况;
- 通过特定技术的实施,寻找网络安全漏洞,发现但不利用漏洞。
**工作难度:**5颗星
08
岗位八:安全管理工程师
**岗位释义:**负责信息安全相关流程、规范、标准的制定和评审,负责公司整体安全体系建设。
岗位职责:
- 全业务系统网络安全技术体系的规划和建设,优化网络安全架构;
- 负责网络安全相关流程、规范、标准的指定和评审,高效处置突发事件;
- 负责网络安全防护系统的建设,提升网络安全保障水平;
**工作难度:**4颗星
09
岗位九:应急响应工程师
**岗位释义:**主要负责信息安全事件应急响应、攻击溯源、取证分析工作,参与应急响应、攻击溯源、取证分析技术的研究,提升整体重大信息安全事件应急处置能力。
岗位职责:
- 负责信息安全事件应急响应、攻击溯源、取证分析工作;
- 对安全事件的应急处置进行经验总结,开展应急响应培训;
- 负责各业务系统的上线前安全测试(黑盒白盒)及渗透测试工作;
- 参与应急响应、攻击溯源、取证分析技术的研究,提升整体重大信息安全事件应急处置能力。
- 跟踪国内外安全热点事件、主流安全漏洞、威胁情报、黑灰产动态并进行分析研究,形成应对方案;
**工作难度:**4颗星
10
岗位十:数据安全工程师
**岗位释义:**主要对公司的数据安全的日常维护和管理工作,确保公司数据安全。
岗位职责:
- 负责数据安全日常维护和管理工作,包括数据安全审核、数据安全事件的监控与响应、安全合规的审计与调查等;
- 负责数据安全标准规范的制定和管理,包括数据安全需求识别、风险分析、数据分级分类、数据脱敏、数据流转、