APP渗透测试篇(下)

每日一句:
		重启可以解决很多问题,
		如虚拟机问题,模拟器问题等等,
		本文章的一些操作不成功的话,重启试试

一、快速自建一个App

	1.App难写吗?
		
		(1)	
			~问:我不懂Java我能写App吗? 
			
				答:我觉得大部分人都觉得自己不能。

			~问:你还记得CMS吗?	你会CMS里面的全部代码吗?	
				
				答:你也不会,但是网站就那么建立了起来。

		(2)
			~App其实也可以快速自建:
			
				在线自建App地址:https://www.bslyun.com/			//可以做安卓端的,也可以做IOS端的
				
				
				进网站,最下方找到免费制作(白嫖)。需要登录,很简单,手机号接个验证码即可。
				
				点击配置app,然后基本配置、启动页、APP证书等等设置,随心设置即可。
				
				//如果浏览器没有保存生成的的按钮,建议换一个浏览器试试。
				
			~说明:
			
				~基本配置有一个,主页地址。大家可以直接将自己的服务器地址(随便一个网站)写这
				
					其实这个App本质:就是套了一个浏览器
				
				~点击生成自己的App,版本,名称自己随心写就行。		等1分钟左右会生成一个二维码,下载即可。
				
					其实很多二维码,没必要手机扫码去下载,(下边步骤看着繁琐,实际操作很简单)
					
					直接右击复制二维码连接--百度“二维码识别”--比如进入“草料二维码”--点击右上角解码--直接将链接粘贴进去
					
					--点击解码--将获取到的地址直接粘贴在浏览器访问即可下载。
					
			~安装
				
				到这就没什么好说的了,直接安装到电脑模拟器上,或者自己手机上。
				
				然后打开就可以看到自己制作的APP了。其实很简单,整个制作过程快的话不超过5分钟。
				
				也就是咱们花了大约5分钟就制作好了一个自己的第一个App。
				
		(3)题外话
				
				自己通过这样的在线网站制作的App图一乐就行,不要登录一些自己的敏感账户。
				
				毕竟天知道,平台有没有做一些“特殊的”操作。
				
				当然,话说回来。可以给自己的女朋友做一些小惊喜,一些小的App还是蛮不错的。
				
				比如:
						
						打一个小网站,写一些XXX专属网站。配置设置的XXX专属APP,
						
						然后发给自己的女(性)朋友效果还是蛮不错的。
				
						有的人可能会问:那我没对象怎么办?		
						
						没对象?new一个不就好了。

	2.App木马
		
		(1)
		
			提到App很多人下意识的想到了木马,可以稍微发散一下思维。
			
		(2)
		
			MSF(快速渗透测试框架攻击,就是外号大名鼎鼎的美少妇)
			
			比如,直接百度:“msf app马制作”有很多详细的教程。
		
			发一个顺手百度到的文章:	https://www.jianshu.com/p/7ab5ec2978d6
			
			大家有兴趣,有时间可以去参考着制作一下,一定要多动手,光看是不行的。

二、安装Xposed框架与Inspeckage

	1.Xposed框架(重点来了)
	
		(1)简介
		
				Xposed框架(Xposed Framework)是一套开源的、在Android高权限模式下运行的框架服务,
			
				可以在不修改APK文件的情况下影响程序运行(修改系统)的框架服务,
				
				基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。
				
				pass:
					
					这个东西之前被拿来抢红包挺多,
					
					另外App渗透想要深入一点的话,这个框架是绕不过去的。
					
		(2)Inspeckage插件简介
		
				Xposed其实注意是一个框架,然后里面可以安装各种各样的插件,这些插件对渗透测试很有用,
				
				我这里主讲Inspeckage【记住一定要Root】

				夜神模拟器怎么Root ?(选择设置,选中开启Root然后重启)[一般的模拟器默认就是Root状态]
				
				//这个插件的安装,得在Xposed框架安装后的基础上,下边会说。
				
				如果说你无法安装,一般都是Root问题,先去设置关闭Root,然后再开启,再来尝试安装就可以 

				这里推荐一下雷电模拟器,在后边测试的过程,现最近雷电比夜深好用点。
			
			(2.1)Xposed框架的安装步骤
				
					//这个程序的安装包可以私我,也可以自己找找
					//安装就直接将安装包拖进去就行了。
				
				打开--有提示的话,直接点击确定就行了,没那么多事。
				
				进去--点击更新。一般需要十几分钟

					正常的状态是进去XXX框架已激活
				
				这里说一个坑:
				
					安装更新后的模块时,可能会提示设备未root,但是模拟器设置里已经开了root。
					
					怎么办?
					
					去设置关闭root,保存设置--重启--开启root,保存--在重启	即可安装
				
				安装更新后的Xposed框架,点安装Version 89--点install--请求root权限,将“仅此次”改为“永久记住选择”
				
				--点击允许--之后他自己就啪啪啪的弹出很多东西自动安装了--重启后,这个框架就正常了。
				
			(2.2)安装Inspeckage插件
				
				进入更新后的Xposed框架,右上角是菜单栏
				
					“模块”是已经安装的一些模块
					
					“下载”是一个类似应用市场的地方,里面可以下载很多公网上的模块
					
					比如看到一个XXXX模块,点进去,点版本,点下载即可安装
					
							注意这里的很多模块也不要随便下载,比如一些什么24小时自动收蚂蚁森林的模块等等
							
							也许你刚刚登录了自己的支付宝账户,下一秒就被盗了。这些东西大家自己看着来吧,
							
							记住一点无论手机、电脑、模拟器都切记不要乱装东西。
							
					在进“下载”,点击右上角的搜索--搜一下“Inspeckage”--选择版本--下载就行。
				
			(2.3)关于模拟器的补充:
					
				模拟器的多开功能,类似买了新的手机,彼此之间是互不影响的。
				
				手机的底层是Linux,没有一些明确意义上的防火墙。
				
			(2.4)App的深入研究
			
				其实这两篇文章主要是给有一定web基础,快速了解App渗透测试的同学看的。
				
				想要深入了解App渗透,会接触更多的东西。如:
					
					脱壳、逆向、重打包、签名等
					
					这些东西想要说明白,那就不是一两篇文章可以说清楚的问题。有兴趣的同学可以自己去研究一下。
					
					从某种意义上讲,上边提到的这些东西不属于web,属于二进制与PWN。在就业方面,大部分的面试官
					
					与我们一样也是Web狗,对这个东西也不会怎么了解。
					
				说点题外话:
					
					之前一个朋友在简历写了会App渗透,面试的时候扯了一点关于“脱壳、逆向、重打包”的名词,
					
					把面试官唬得一楞一愣的,最后拿了不低的薪资。事实上,他自己对这方面了解也不是太多。
					
					当然,同学们把这当一个故事听听就好了。就不要模仿了,万一碰到一些懂相关知识的人就丢人了。
					
					虽说面试也算是半真半假,可以吹牛的地方很多,但是还是希望同学们真的多一点,假的少一点。

三、Inspeckage使用介绍

	1.简介
	
			Inspeckage是一个用于提供Android应用程序动态分析的工具。
			
			通过对Android API的函数使用hook技术,帮助用户了解应用程序在运行时的行为。

		
		(1.1)什么是Hook?
			
				HooK技术又叫做钩子函数,在系统没有调用该函数之前,钩子程序就先捕获该消息,
				
				钩子函数先得到控制权,这时钩子函数既可以加工处理(改变)该函数的执行行为,
				
				还可以强制结束消息的传递。简单来说,就是把系统的程序拉出来变成我们自己执行代码片段。



				其实类似于断点,代码执行到这个地方然后被你给卡住了,然后你可以去进行修改调试。
				
				或者理解为burp的截取,将当前程序运行的状态暂停,在将抓到App程序的一些数据修改掉放走。
				

				举一个例子:
					
						做App渗透一个很头疼的问题是传参加密,但是加密是要经过加密函数的。

						如果我们在加密前Hook,不就可以获得加密前的明文了?


				Inspeckage 功能强大 我们只讲简单用法,有兴趣的同学需要自己深究,当然需要一定的代码基础。

							
		(1.2)	Inspeckage的网页管理
			
				现在很多工具都流行Web页面去管理工具。 Inspeckage也是与时俱进,他的WEB管理端口是127.0.0.1:8008

				用法:
					
					先打开安装的Inspeckage--点击choose target选择任意一个App--选择“ LAUNCH APP ”(运行APP)
					
					--回到桌面--进入浏览器,访问“ 127.0.0.1:8008 ”--就可以看到刚刚选择App的数据。
				
				问题:
				
					那我们在一个App里操作,还要在另一个App里处理(模拟器的127.0.0.1:8008在本机访问不到)
					
					我们想用电脑管理,该如何做呢?这个时候,就会引出一个新的工具:adb(即Android 调试桥)
					
		(1.3)Android调试桥(adb)
		
					简介:
						
						当手机开启USB调试,adb可以将我们的手机与电脑连接在一起,adb连接上以后就可以通过电脑操作手机
						
						最开始接触adb是用这个连接手机钉钉自动定时打卡。简单说一下:
						
							最开始是把钉钉装在了夜神模拟器里,后来发现钉钉会检测到模拟器的环境。
							
							然后用一个手机通过adb连接到了一台笔记本上。这样就绕过了一些检测,而且这个adb可以模拟用户的一些操作。
							
							如开屏、输密码、点击一些东西(需要定位到位置)。
							
							因为钉钉有一个极速打卡功能,只要在特定时间、特定地点(范围)内打开钉钉就会自动打卡。
							
							然后,简单写个小脚本(1.bat)						//5.5寸手机一般都可以
							
								cd C:\adb
								adb shell input keyevent 3						//滑屏解锁
								timeout /T 0.5 /NOBREAK							//等待时间
								adb shell input swipe 550 1600 550 800			//确定位置
								adb shell "am start com.alibaba.android.rimet/com.alibaba.android.rimet.biz.LaunchHomeActivity"		//调用打开钉钉
								adb shell input tap 82 1304
								PAUSE

					补充:
						
						其实很简单的小脚本,有兴趣的同学以后可以深入研究玩玩,adb的功能还是蛮多的,比如拍个照片、刷个网课等等	
					
						我这里就是简单介绍一下,给一个前人对adb的总结,可以参考参考,这个篇文章写的很详细:
							
								https://blog.csdn.net/zhonglunshun/article/details/78362439
	
	2.	实战
	
		(2.1)通过adb让电脑控制手机(模拟器)
			
				打开电脑上的模拟器
			
				cmd进入本机Adb的文件夹,输入“ adb devices ” 来查看是否有手机和电脑相连
					
						如出现“ 127.0.0.1:62222 device ” 就说明有手机与模拟器是沟通的					
				
						//adb可以自己去网上下载 ,或者私信我。
						
				在输入“ adb forward tcp:8008 tcp:8008  ” 将手机上的8008端口转发到电脑的8008端口
				
				在电脑浏览器上输入“ 127.0.0.1:8008 ”即可访问到Inspeckage的网页管理。
				
						假如在浏览器回车没反应,
						
							~先看看模拟器“ Inspeckage ”程序有没有运行,
						
							~可以看看端口有没有被本机其他应用占用,kil掉对应进程。
							
							~上述两步都没事就重启模拟器
				
							~或者在本机“ 任务管理器 ”中 结束掉“ adb.exe ”程序。
							
							~都不行直接换雷电模拟器
				
		(2.2)补充一个夜神模拟器的小坑(雷电模拟器没有这个问题)
				
					你需要拿正常的adb去替换掉夜神模拟器中自带的adb才能使用。
					
						找到夜神模拟器安装地址,将夜深原本的adb.exe名称改为“adb.exe.bak”注释掉原本的adb,
						
						在将咱们的“ adb.exe ”拖进来;在将下边一个“ nox_adb.exe ” 也改为“ nox_adb.exe.bat ”
						
						将咱们的“ nox_adb.exe ” 拖进来然后就可以了。

		(2.3)小试牛刀
				
				进入“ https://www.feixiaohao.com/ ” 下载一个APP,这个App仅仅是作为演示,里边一些关于虚拟币的东西不建议玩。
				
				将此app下载安装到模拟器,打开“ Inspeckage ”,点击“ 非小号 ”,点击运行,在电脑浏览器进入“ Inspeckage的网页管理 ”,
				
				先看右上角“ App is running ”的状态,看看App有没有在运行。当状态是“ false ”的时候就说明App没在运行
				
					可以重启“ Inspeckage ”打开“ 非小号 ”。只有当状态是“ true ”时才可以,

				左上角有三个小图标,如小相机、小扳手(配置)、一个开关(即开始截取的)。
				
				将开关的状态由“ off ” 点击为“ on ”就可以抓取到一些数据。下边有一些功能,
				
					如HTTP、SQLite、Hash、Crypto等等,简单说一下:

				HTTP,可以监听到此App的一些通讯数据,有点类似Wireshark的功能。
		
				SQLite是软件自带的一些数据库,像Hash、Crypto就是一些加密解密相关的问题,对于初学者不要纠结。

		(2.4)					
				
				直接左上角有一个“ Download ”--“ All Files ”点击即将获取到的内容保存到一个压缩包中下载,
					
				将下载的文件包解压打开,用一些文本编辑器打开“ hash ”“ Crypto ”文件,全局搜索“ http/https ”
				
				就会发现正常测试抓不到的http地址或者IP,可以将这些地址复制下来在浏览器打开。
				
				一些IP直接访问或许就有一些意想不到的东西。另外可以用Nmap扫一下这些IP的端口,御剑扫一下目录。
				
				这些http地址或者IP是正常信息收集所收集不到的地方,在渗透测试过程中也许就是突破点。
				
				
				注意的是,	
						
						这些链接在搞之前最好看看,别最后渗透测试错了对象。
	
						另外,即使是目标企业的资产也要注意一下尺度问题,这里不在深就。
	
	3.我的App渗透测试观
	
			其实在一般的App渗透就是抓包,加解密等等问题,也就是这两篇文章中所提到的。
			
			常规的面试提到这么多内容已经及格了。
			
			但是对于专业的APP渗透测试人员而言,这仅仅是入门。就像这篇文章提到的“ Inspeckage ”这里也仅仅是
			
			简单的介绍,而专业人员要掌握的肯定远远不止这些用法,这里也仅仅是抛砖引玉。路漫漫其修远兮,大家加油。
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页