1 Shellcode 연습문제
(1) 쉘 코드를 작성하여 /usr/bin/who와 동일한 출력 만들어내기
- /usr/bin/who 프로그램을 어셈블리 코드로 구현하시오. 어셈블리 프로그램의 이름은 who.s로 정하시오.
* who.s 의 어셈블리 코드는 exec.shell2.s를 활용함
- 아래의 명령어를 수행함으로써, (1)에서 구한 어셈블리 코드에 대한 쉘코드를 생성하시오.
- 아래의 명령어를 수행함으로써, dump_w에 있는 쉘코드를 C프로그램에서 실행 가능한 형태로 변환하시오.
- who.c 프로그램을 작성한 후에, out_w에 있는 쉘코드를 who.c 프로그램 안에 복사한 후에, 아래의 명령어를 수행함으로써, 쉘코드를 실행
- gcc 후 결과 출력
(2) 쉘 코드를 작성하여 /usr/bin/whoami와 동일한 출력 만들어내기
(3) 1에서 수행한 절차를 사용해서, /bin/cat /etc/passwd 프로그램의 어셈블리 코드, 쉘코드를 작성하고, 쉘코드를 실행하시오.
(4) 1에서 수행한 절차를 사용해서, /bin/cat /etc/passwd 프로그램의 어셈블리 코드, 쉘코드를 작성하고, 쉘코드를 실행하시오.
(5) 1에서 수행한 절차를 사용해서, /bin/ps 프로그램의 어셈블리 코드, 쉘코드를 작성하고, 쉘코드를 실행하시오.
// 13주차
(7)-1 link 시스템 콜의 어셈블리 코드, 쉘코드를 작성하고, 쉘코드를 실행하시오.
- cdq의 역할은 edx 레지스터의 값을 0으로 만드는 것
(7)-2 chmod 시스템 콜의 어셈블리 코드, 쉘코드를 작성하고, 쉘코드를 실행하시오.
- read by Grop 권한으로 통일, ecx를 32로