reversing.kr 문제를 풀면서 ELF에 대해 공부한 것을 정리 해 보겠습니다.IDA_Remote_Debugging을 하기위해서는 먼저 해야할 작업이 디버깅을 당할 컴퓨터에서 포트를 열어주어야 합니다. ELF를 분석하려고 하는 것이기 때문에 디버깅을 당하는 컴퓨터는 리눅스 환경이 되겠죠?HOST PC에서 IDA가 깔려있는 곳(C:\Program Files\IDA)에 가서 linux_server가 있는 곳으로 갑니다.위에 보시다시피 64가 붙은 것은 64비트 환경이고 32비트는 안 붙어 있습니다. 저 같은 경우는 리눅스 환경이 64비트였는데, ELF 헤더가 32bit라서 linux_server로 진행하겠습니다. 밑의 win32_remote는 윈도우와 윈도우 환경을 진행할 때 필요하므로 패스하겠습니다...
문제를 풀기 전에 저는 리눅스파일 ELF을 분석한 적이 없어서 당황했습니다ㅋㅋㅋ그래서 찾아봤는데 리눅스 환경에서 GDB를 이용한 방법과 IDA가 제공하는 IDA_Remote_Debugging이 있었습니다. 저는 GDB보다는 IDA_Remote_Debugging를 통해서 문제를 풀어봤습니다. 올리디버거로만 하다가 IDA로 디버깅하려니까 정말 어색하네요ㅋㅋIDA_Remote_Debugging 사용방법은 따로 올리겠습니다. 해킹대회에서도 이 방법을 많이 사용한다고 하네요. 처음 알았음...흑.. IDA_Remote_Debugging 설정을 하고 디버깅할 수 있는 환경에서 문제 풀이에 들어가겠습니다.1. IDA를 이용해서 Easy_ELF파일을 열어줍니다. Functions Window가 보이는데, 0804851..
1. Easy Unpack의 ReadMe 힌트. OEP를 찾아라. 주의 하실 것은 OEP코드를 401000을 찾았다 하더라도 앞에 00을 뺴먹을 수가 있습니다. 00401000으로 답을 써 넣어주면 됩니다.2. 올리디버거로 열어보면 흐...더럽네요 API함수들도 날라다니고 패킹이 된 것을 볼 수가 있습니다.3. Manual Unpacking 방식인데, 좀 꼼수에요. 맨뒤에 코드 부분을 보면 마지막 부분에 브레이크 포인트를 걸어서 실행을 해주면 끝까지 갑니다. JMP를 해 봅시다.4. 그럼 OEP가 나옵니다. 끝.
1. Easy Keygen의 ReadMe 힌트네요. 시리얼 값이 5B~~ 일때의 Name을 찾으시오.2. string값을 보고 들어갑니다.3. 네임을 입력받는 부분.4. 여기가 주요 구문입니다. CMP ESI,3 으로 for문으로 3번 반복한다는 소리입니다. 5. 색을 칠한 3개중 첫 번째에는 제가 입력한 1234의 1(31) 2(32) 3(33) 4(34) 이고 두 번째에는 10,20,30이 반복하면서 ECX, EDX의 값에 삽입합니다. 그리고 ECX와 EDX가 XOR로 계산이 됩니다. 6. 스택에 삽입된 10,20,30 31,32,33,34 7. XOR된 21120324입니다.8. 시리얼 값을 입력합니다. 9. 다른 구문이 나옵니다. 자세히 보시면 입력한 Serial 값과 위에서 XOR된 값(2112..
1. String 값을 찾아봅시다.2. 위쪽에 단서가 보이는 Text가 보이네요. Congratulation !! 문자열로 들어가봅시다. 3. 함수 윗 부분에 브레이크 포인트를 걸고 실행을 합시다.4. 실행을하면 임의의 숫자를 입력합니다.5. 밑의 반복문을 들여다 보면 CMP 부터 '61'과 비교하면서 제가 입력한 '1234'와 'Ea5yR3versing' 을 비교하면서 맞으면 성공 메시지를 출력하는 형태에요. 직접 디버깅 해보면서 하나하나 눈으로 스택을 확인하는게 중요합니다! 6. Clear
1. LOG INJECTION 메인화면.- 진짜 어이없는 문제네요ㅋㅋ2. 1번의 화면에서 텍스트 창에 asdf라고 입력하고 admin.php에 갔더니 로그가 남네요.3. admin.php 소스를 보니 hint는 admin이네요4. 1번에서 admin을 치면 admin 에러가 뜹니다.asdf를 치니까 자신의 아이피가 나오고 옆에는 적었던 문자가 출력이 됩니다.제 생각으로는 admin.php에서 xxx.xxx.xxx.xxx:admin이 되어야 정답이 풀릴 것 같았습니다ㅋㅋadmin을 그대로 치면 오류가나고.. 그냥 아이피랑 같이 입력해볼까? 설마 되겠어? 으휴 이런 마음으로 밑의 그림같이 xxx.xxx.xxx.xxx:admin을 눌렀더니 Clear네요.
1. 26번 메인화면2. 소스코드- 소스는 간단하다. $_GET[id]를 받아오면서 admin이면 no!!로 실패가 된다. 여기서 힌트가 있는데 urldecode를 보고urlencode를 하면 되겟다고 생각을 했다. admin을 urlencode 시키면 %61%64%6D%69%6E 가 된다.하지만 밑에서 urldecode를 다시 시켜서 admin과 비교하므로 %61%64%6D%69%6E을 다시 urlencode 시키면 된다.3. admin을 urlencode 한 값.4. %61%64%6D%69%6E을 다시 한번 인코딩.5. id값에 %2561%2564%256D%2569%256E 를 입력하면 Clear.
1. 58번 메인 화면2. 소스코드- kk.js, kk2.js, hackme.swf 발견 할 수가 있다.대가리가 빠가라서 처음에는 kk.js만 나오길래 어리둥절 하다가 뒤져보니 3개가 나왔다ㅠㅠ3. kk.js들어간 화면이다. 결과 값은 'hack'4. kk2.js들어간 화면이다. 결과 값은 'hackme.swf'결국 hackme.swf에 password가 있을 것이다!5. hackme.swf를 파라미터로 주고 들어가서 .swf를 따오기 위해 다른 이름으로 저장을 한다.6. hackme.swf가 떨어진다ㅋㅋ 실행하면 위에 화면이 뜸 0초.7. EditPlus로 hackme.swf를 까보자.8. 밑에 부분에 password? 비슷하게 있는게 적혀있다!9. 복사해서 들어가봤더니 Clear!!대가리 빠가라서 생..
- Total
- Today
- Yesterday
- malware
- Kimsuky
- 멋쟁이사자처럼 4기
- Servey
- CVE-2018-9375
- cuckoo-sandbox
- Flybits
- infostealer
- 위협정보공유
- keylogger
- koodous
- 스피어피싱
- Bisonal
- idapython
- Static Analysis Engine
- MS-Office
- 악성코드
- Decoding
- CVE-2018-0798
- vuln
- 출처 : Do it 안드로이드 프로그래밍
- .wll
- us-cert
- 비트코인
- 한글악성코드
- AMSI
- Cisco Talos
- Yara
- 해킹메일
- VirusBulletin
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |