안녕하세요. 최근 취업을 하면서 앱 진단을 하게 되었습니다.
그래서 앱 진단을 위한 녹스 사용법을 정리하려고 합니다.
저는 앱 진단 경험이 많이 없지만
제 주관적인 생각으로 취약점 진단/분석에 정적 분석도 필요하지만, 동적 분석은 필수라고 생각합니다.
그러므로 녹스 앱 플레이어는 취약점 진단/분석에 필수라고 볼 수 있습니다.
아래의 링크로 접속하셔서 녹스 앱 플레이어를 설치 할 수 있습니다.
이제 안드로이드 내부로 접속하기 위해 ROOT권한을 활성화해야 합니다.
방법은 녹스 플레이어를 실행하고, 위와 같이 설정에 들어가 ROOT켜기를 체크 후 재부팅 하시면 됩니다.
재부팅이 끝나셨다면, 안드로이드에 ROOT로 접속할 수 있는데요. 방법은 nox_adb.exe를 실행하여 접속할 수 있습니다.
nox_adb.exe의 경로는 C:\Program Files (x86)\Nox\bin 입니다.
그럼, 아래와 같은 명령어를 이용하면 녹스 플레이어의 쉘을 획득할 수 있습니다.
C:\>"C:\Program Files (x86)\Nox\bin\nox_adb.exe" shell
root@shamu:/ #
안드로이드 환경에서는 리눅스와 완전 동일한 명령어는 사용할 수 없지만,
busybox라는 프로그램을 이용하면 거의 모든 리눅스의 명령어를 사용할 수 있게 됩니다.
root@shamu:/ # busybox
BusyBox v1.22.1 bionic (2020-01-09 19:00 +0800) multi-call binary.
BusyBox is copyrighted by many authors between 1998-2012.
Licensed under GPLv2. See source distribution for detailed
copyright notices. Merged for bionic by tpruvot@github
Usage: busybox [function [arguments]...]
or: busybox --list[-full]
or: busybox --install [-s] [DIR]
or: function [arguments]...
BusyBox is a multi-call binary that combines many common Unix
utilities into a single executable. Most people will create a
link to busybox for each function they wish to use and BusyBox
will act like whatever it was invoked as.
Currently defined functions:
[, [[, adjtimex, arp, ash, awk, base64, basename, bbconfig, blkid,
blockdev, brctl, bunzip2, bzcat, bzip2, cal, cat, catv, chattr, chcon,
chgrp, chmod, chown, chroot, chvt, clear, cmp, comm, cp, cpio, crond,
crontab, cut, date, dc, dd, deallocvt, depmod, devmem, df, diff,
dirname, dmesg, dnsd, dos2unix, du, echo, ed, egrep, env, expand, expr,
false, fbsplash, fdisk, fgconsole, fgrep, find, findfs, flash_lock,
flash_unlock, flashcp, flock, fold, free, freeramdisk, fstrim, fsync,
ftpget, ftpput, fuser, getenforce, getopt, getsebool, grep, groups,
gunzip, gzip, halt, head, hexdump, hwclock, id, ifconfig, inetd,
insmod, install, ionice, iostat, ip, kill, killall, killall5, less, ln,
losetup, ls, lsattr, lsmod, lsof, lspci, lsusb, lzcat, lzma, lzop,
lzopcat, man, matchpathcon, md5sum, mesg, mkdir, mkdosfs, mke2fs,
mkfifo, mkfs.ext2, mkfs.vfat, mknod, mkswap, mktemp, modinfo, modprobe,
more, mount, mountpoint, mpstat, mv, nanddump, nandwrite, nbd-client,
nc, netstat, nice, nmeter, nohup, nslookup, ntpd, od, openvt, patch,
pgrep, pidof, ping, pipe_progress, pkill, pmap, poweroff, printenv,
printf, ps, pstree, pwd, pwdx, rdate, rdev, readlink, realpath, reboot,
renice, reset, resize, restorecon, rev, rm, rmdir, rmmod, route,
run-parts, runcon, rx, sed, selinuxenabled, seq, sestatus, setconsole,
setenforce, setfiles, setkeycodes, setsebool, setserial, setsid, sh,
sha1sum, sha256sum, sha3sum, sha512sum, sleep, smemcap, sort, split,
stat, strings, stty, sum, swapoff, swapon, switch_root, sync, sysctl,
tac, tail, tar, taskset, tee, telnet, telnetd, test, tftp, tftpd, time,
timeout, top, touch, tr, traceroute, true, ttysize, tune2fs, umount,
uname, uncompress, unexpand, uniq, unix2dos, unlzma, unlzop, unxz,
unzip, uptime, usleep, uudecode, uuencode, vi, watch, wc, wget, which,
whoami, xargs, xz, xzcat, yes, zcat
명령어들이 굉장히 많죠.
예시로 프로세스 리스트를 출력하는 명령어는 아래와 같습니다.
root@shamu:/ # busybox ps
PID USER VSZ STAT COMMAND
1 root 9264 S /init
2 root 0 SW [kthreadd]
3 root 0 SW [ksoftirqd/0]
5 root 0 SW< [kworker/0:0H]
7 root 0 SW [rcu_preempt]
8 root 0 SW [rcu_sched]
9 root 0 SW [rcu_bh]
10 root 0 SW [rcuop/0]
11 root 0 SW [rcuos/0]
12 root 0 SW [rcuob/0]
13 root 0 SW [migration/0]
14 root 0 SW [watchdog/0]
15 root 0 SW [watchdog/1]
16 root 0 SW [migration/1]
17 root 0 SW [ksoftirqd/1]
19 root 0 SW< [kworker/1:0H]
20 root 0 SW [rcuop/1]
녹스 외에 다른 앱 플레이어들도 있습니다.
만약 녹스에서 앱이 작동하지 않는다고 하면 다른 앱 플레이어로 테스트해보세요.
미뮤 앱 플레이어
블루스택 앱 플레이어
https://www.bluestacks.com/ko/index.html
'해킹 > IOS 앱 취약점 진단' 카테고리의 다른 글
soFrida를 이용한 IOS 앱 동적 분석 - 파일분석 (3) | 2020.08.01 |
---|---|
LLDB를 이용하여 IOS(아이폰) 원격 디버깅 세팅하기 (0) | 2020.07.11 |
Frida를 무조건 익혀야 하는 이유(ios, android 앱 분석) (0) | 2020.07.05 |
안드로이드 앱 디컴파일 그리고 빌드하기 (0) | 2020.07.04 |
처음해보는 IOS 앱 취약점 진단 후기 (0) | 2020.05.22 |