前几天在freebuf上看到了一篇基于ICMP协议的shell:http://www.freebuf.com/articles/system/50361.html,
看了下觉得挺有意思,所以就在网上找了个源码移植到了Android上。
源码下载地址:http://ncu.dl.sourceforge.net/project/icmpshell/ish/v0.2/ish-v0.2.tar.gz
不过它是针对linux平台的,要在Android上应用需要稍做修改:
修改源码中的"/bin/sh"为"/system/bin/sh"
修改Makefile文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| CC = gcc CFLAGS1 = -static -g -Wall CFLAGS2 = -static -g -Wall -lsocket STRIP = strip default: @echo "-------------------------------" @echo "Make with the OS from the list:" @echo "" @echo "1.) linux" @echo "2.) bsd" @echo "3.) solaris" @echo "4.) android" @echo "" @echo "ex: make bsd" @echo "-------------------------------" clean: /bin/rm -f ish ishd linux: clean cc1 fin bsd: clean cc1 fin solaris: clean cc2 fin android: clean cc3 cc1: $(CC) $(CFLAGS1) -o ish ish.c ish_main.c $(CC) $(CFLAGS1) -o ishd ishd.c ish_main.c ish_open.c cc2: $(CC) $(CFLAGS2) -o ish ish.c ish_main.c $(CC) $(CFLAGS2) -o ishd ishd.c ish_main.c ish_open.c cc3: arm-linux-gnueabi-gcc $(CFLAGS1) -o ish-arm ish.c ish_main.c arm-linux-gnueabi-gcc $(CFLAGS1) -o ishd-arm ishd.c ish_main.c ish_open.c fin: $(STRIP) ish $(STRIP) ishd
|
其实就是添加了一个Android的交叉编译选项,并且添加了-static选项。
1 2 3
| cd ISHELL-v0.2 make android make linux
|
编译完成后得到四个文件:
ish ishd ish-arm ishd-arm
将ishd-arm push到手机中,并赋予可执行权限
Android端运行:
su -c ishd-arm -d
Linux端运行(将ip换成你手机的ip地址):
sudo ish ip
大功告成!