일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 초시대
- DOS
- 쉘코드
- 반사서버
- 듀얼부팅
- E14-20T6S04X00
- 2021-3156
- 보안이 미래다
- NAND
- airodump-ng
- WPA3
- wep
- 이커시
- airmon-ng
- DDos
- 디스크
- 5G
- sudo
- WLAN
- NOR
- WPA1
- 무선랜
- WPA-PSK
- cmd
- shellcode
- aircrack-ng
- Slim3
- 윈도우
- aireplay-ng
- 디도스
- Today
- Total
대학생들을 위한 IT
쉘코드3-1 :: 이커시 (Trampoline) 본문
지난 포스팅에서는 랜덤으로 바뀌는 복귀 주소 값때문에 원하는 주소로 보내지 못하는 상황에 놓여버렸다.
이번 시간에는 '그 상황'을 벗어나보려 한다. 자 가보자!
먼저 저번 시간에 했던 상황을 다시 생각보자
스택 그림
스택 그림에서의 목표는 [0012FF80] 주소에 저장된 [0012FF84] 주소 값을 읽어 와서 [0012FF84] 주소를 찾아 그곳에 저장된 쉘코드를 실행하게 만드는 작업이다.
하지만 항상 같은 스택 공간에 데이터가 쌓이는 것이 아니기 때문에 고정적인 주소를 가지는 무언가를 찾아야 했다.
필자는 JMP, CALL, RETN 등 여러가지가 있겠지만서도 JMP를 선별하고, 이를 ESP 기준으로 삼았다.
JMP ESP 메모리 주소 찾기
찾음
마우스 우측 클릭 후 [Search for] 탭에서 --> [All Commands in all modules] 을 찾아 누른 후 'JMP ESP'를 치면 JMP ESP로 사용하는 여러 주소들이 나온다 그 중에서 가장 위에 있는 '0043C8D1'주소를 찾아 쓸 것이다.
펄 소스 수정
어제 작성 했던 펄 소스에서 [my $ret] 값을 [0043C8D1]으로 수정하자! (16진수 이기 때문에 '\x' 빼먹지 말자)
트렘펄린 확인
[4141414C] 부분을 읽다가 죽었다는 메시지를 남겼지만 Disassenbly 창을 보니 [calc.]을(쉘코드부분) 읽기 전이다! 이로 인해 [JMP ESP] 작전이 먹혔다는 사실은 알 수 있다.
엄밀히 말하면 [JMP]가 먹혔지 [ESP]은 먹히지 않은 상황! 저번 시간엔 [EBP]기준으로 기계어를 작성했기 때문에, 이를 다시 [ESP]기준으로 수정해야 한다.
ESP기준 기계어 코드
디버깅 후 바이너리 카피
수정한 기계어 코드 바탕으로 쉘코드를 다시 만들어야 하기 때문에, 디버깅 후 바이너리 카피하는 모습이다.
항상 메모장에 복붙해서 필요 없는 부분을 일일이 지웠는데 얼마 전에 바이너리 부분만 카피할 수 있다는 걸 알게 되었다. 개꿀
디버깅 중 다시 죽음
실행코드는 실행되었지만서도 [PUSH 5]=보여주기 부분에서 죽어버렸다.
[0012F8BA] <-->[0012F8BC] 코드 내용을 바꾸어 줬더니 해결이 되었다.
수정 후
최종 쉘코드 등장
나왔다 드디어 최종 쉘코드가!!
이는 [fuzz12.wav] 파일을 만들어줄 것이고,
이 .wav파일은 [All to Mp3 Converter] 프로그램에 변환되기 위하는 과정에서 '계산기'를 뿌릴 것이다.
실행된 모습
실제 프로그램에서 [fuzz12.wav]파일을 열었을 때에도 계산기가 실행된다.
이렇게 최종 쉘코드까지 만들어보았다. 다음 시간에는 저 [.wav] 파일을 [All to mp3 Converter]에서 열었을 때,
간단한 프로그램을 다운받고 이를 실행시키는 쉘코드까지 만들어보겠다.
'악성코드' 카테고리의 다른 글
쉘코드4-1 :: 이커시 (1) | 2019.01.20 |
---|---|
쉘코드4 :: 이커시 (0) | 2019.01.20 |
쉘코드3 :: 이커시 (0) | 2019.01.17 |
쉘코드2 :: 이커시 (1) | 2019.01.16 |
쉘코드 :: 이커시 (0) | 2019.01.15 |