대학생들을 위한 IT

쉘코드4-1 :: 이커시 본문

악성코드

쉘코드4-1 :: 이커시

phantomik 2019. 1. 20. 17:16

URL을 통해 다운로드 된 [고클린]을 자동실행되는 [나쁜행동] 끝판왕까지 달려가보자!!


먼저 실행하는 함수가 어디서 작동하는지 알아보러 가보자!

C:\\goclean.exe 실행 코드

과거에도 포스팅했던 간단한 프로그램 실행시키는 소스이다.

여기서 Sleep()함수를 추가한 이유는 프로그램이 다운로드 되자마자 바로 실행되면 친구가 컴퓨터하는 도중에 알아채버리기 때문에

텀을 두고, 실행되게끔 설계한 것이다.


Sleep(1000) = 1초


필자는 5초로 설정했으나 더 시간을 길게 설정하고 실행되고 되고, 레즈스트리에 등록시켜 정말정말 [나쁜행동]도 할 수 있다.


그리고 Sleep() 함수와 WinExec() 함수가 실행되는 주소를 찾아가서 마저 쉘코드를 작성해보자


Sleep() 시작될 주소

WinExec() 시작될 주소

저 주소를 이용해서 기계어 코드를 작성해 보자!


기계어 코드 완성


지난 포스팅에서 사용했던 [기계어 코드]에 Sleep() 함수와 WinExec() 함수 시작 주소 값을 첨가해서 기계어 코드를 다시 짠다.


여기서 주목해야 할 점이 WinExec()함수를 시작하는 스택 주소 값인데,

Sleep()함수는 스택을 사용하는 함수가 아니기에 WinExec()함수에만 [다운로드 경로 주소 부분] (c:\\goclean.exe)끝나는 지점에 이어서 적는다.


지난 포스팅에서도 설명했듯이, WinExec()함수 인자는 2개이고, PUSH 5는 [SW_SHOW]을 나타낸다.



기계어 뽑기

쉘코드를위한 기계어를 다시 뽑아보자 이제 마지막이다.


최종 펄소스


[payload3.wav]라는 최종 파일을 만들었다. 이제 실행되는 모습을 확인하자.


최종실행


기다리는 부분을 캡처하지 못하였지만, Immunity Debugger로 확인해 보면, PUSH 5000 부분에서 5초동안 기다렸다가 실행되는 모습을 확인 할 수 있다!!


자 이제 끝이다. 이것으로 쉘코드의 기초적인 포스팅은 끝난 듯 하다! 그동안 수고했고, 즐거웠다. 곧 또 봅시다!

'악성코드' 카테고리의 다른 글

쉘코드4 :: 이커시  (0) 2019.01.20
쉘코드3-1 :: 이커시 (Trampoline)  (0) 2019.01.18
쉘코드3 :: 이커시  (0) 2019.01.17
쉘코드2 :: 이커시  (1) 2019.01.16
쉘코드 :: 이커시  (0) 2019.01.15
Comments