프롬프트 : 대기 상태에서 명령을 내리기를 기다리고 있음(윈도우) 폴더 -> (리눅스) 디렉터리ls command권한
경로디렉터리복사, 이동, 이름변경
1) 접속해 있는 user2) 콘솔로 접속했는지 터미널로 접속했는지 (tty -> 콘솔(운영체제를 직접 설치해서) 접속, pts -> 터미널(텔넷을 이용하여)접속, /n은 접속자가 여러 명일 때 순서대로 배정3) 접속한 사람의 ip주소4) 어느 시간에 로그인 했는지5)
디렉터리파일
passwd 파일cf) 리눅스 5.0 까지는 password 위치에 암호화된 password 파일이 있었음.하지만 해커들이 패스워드를 아무리 복잡하게 암호화를 시켜놓아도 크랙을 해버렸기 때문에, /etc/shadow에 따로 패스워드를 보관하고 passwd 파일에는 x로
tar command여러 개의 파일을 합친다. -> 백업용 프로그램으로 사용gzip command압축하기tar + gziptar로 백업용 파일을 만들고 gzip으로 압축할 때 사용
cat command코딩파일 실행파일을 실행시킬 때는 절대 경로를 함께 적어줘야 됨, 현재 경로는 .로 대체 가능
Local 해킹 : 해킹하고자 하는 서버에 일반 계정을 가지고 있을 때, 관리자 권한을 얻고자 시도하는 것Remote 해킹 : 자신이 해킹하고자 하는 서버에 아이디를 가지고 있지 않을 때, 아이디를 얻고자 시도하는 것SetUIDuser의 특별 권한setuid가 걸린 파
hint 파일을 출력해보니 level 2의 setuid가 걸린 파일을 찾으라 하고 있습니다.⇾ find 명령어를 통해 setuid가 걸린 파일을 찾아 실행시켜 level 2의 권한을 얻고 my-pass 명령어를 통해 패스워드를 얻을 수 있을 거 같습니다.\*setuid
hint 파일을 출력해보니 텍스트 파일에서 쉘 명령어를 실행시키라고 하고 있습니다.⇾ level3의 setuid가 걸린 텍스트 파일을 찾아 실행시키고 :r! command 명령어를 사용하면 my-pass 명령어를 실행시킬 수 있을 거 같습니다.find 명령어를 통해 l
cat으로 hint를 보니 소스코드가 출력되었습니다. 소스코드의 중요한 부분을 해석해 보면프로그램을 실행시키려면? 상대 경로를 써주고 프로그램명을 써줍니다. Ex) ./program_name동시에 여러 명령어를 실행시키려면? ls;ls-al 처럼 앞에서 끝난 명령
힌트를 보니 누가 /etc/xinetd.d에 백도어를 심어놓았다고 합니다.해당 위치로 이동해서 ls 명령어를 사용해보니 backdoor가 있습니다. 서비스 실행파일 위치로 가보니 실행 파일이 없습니다. 그래서 system 함수를 이용해서 my-pass 명령어를 실행하
Xinetd인터넷 기반 연결(telnet, ftp 등)을 관리하는 서비스(데몬)이다./etc/xinetd.conf글로벌 설정 파일 -> 슈퍼 데몬이 관리하는 모든 서비스에 해당 설정이 적용된다./etc/xinetd.d개별 서비스 설정 파일
hint를 출력하니 level5 프로그램을 실행시키면 level5.tmp 파일이 생성된다고 합니다. 일단 실행시켜서 확인을 해보겠습니다.tmp 디렉터리로 이동해서 ls 명령어로 확인해보자 level5.tmp 파일이 없습니다.level5 프로그램이 tmp 파일을 생성하고
접속하자마자 힌트가 나옵니다.ls 나 find 명령어로 파일이나 디렉터리를 확인해보고 싶은데, 텔넷 프로그램이 실행돼서 Ctrl + c를 눌러도 종료가 안됩니다.Ctrl + D를 누르니 텔넷 서비스가 종료되는게 아니라 그냥 xshell 연결 자체가 끊겨버렸습니다.힌트가
힌트를 보니 일단 level 7을 실행시켜봐야 할거 같습니다.실행시켜보면 패스워드를 입력하라고 합니다. 그냥 1을 입력해보면, 암호 같은게 나옵니다.\-(1) \_(0)으로 생각하면 암호를 2진수로 바꿀 수 있을거 같습니다.짝대기를 디지털 신호로 생각해서 2진수로 바꿔
힌트를 보니 용량이 2700인 level 9의 shadow 파일을 찾으라고 하고 있습니다.find 명령어를 이용해서 찾아보면shadow 파일이 나오긴 하지만 root의 shadow 파일이고 권한이 없어서 아무것도 할 수 없습니다.용량을 이용해서 찾아보면4개가 나옵니다.
ls 명령어를 이용해서 파일을 출력을 해보면 hint가 있습니다. hint를 봐보면 소스코드가 나오고 이 코드를 이용해서 level 10의 권한을 얻으라고 합니다.소스코드를 해석해보면fgets() 부분을 봐보면 buf의 크기보다 훨씬 큰 크기의 데이터를 입력받고 있습니
ls 명령어를 이용해 파일을 출력해보면 hint가 있습니다. hint를 출력해보면 공유 메모리를 이용해서 level11의 권한을 얻으라고 합니다.공유 메모리의 사용 (joinc.co.kr) 사이트를 참조해보면공유 메모리란 여러 프로세스가 특정 메모리 영역을 공유하는 하

ls 명령어로 파일을 출력해보면 hint가 있습니다.출력을 해보면 소스코드가 나옵니다.소스코드를 해석해보면strcpy() 함수로 크기에 제한 없이 str에 값을 복사하고 있기 때문에, 버퍼 오버플로우가 발생합니다.공격을 위해 메모리 구조를 분석해보면메모리 구조를 그려보

cat hint로 hint를 출력하자 소스코드가 출력되었습니다. 소스코드를 해석해보면gets() 함수로 인해서 버퍼 오버플로우가 발생합니다.공격을 위해 메모리 구조를 분석해보면메모리 구조를 그려보면NOP + Shellcode 268Byte 넣고 RET를 NOP 시작주소

cat 명령어로 hint를 출력해보면 소스코드가 출력됩니다. 해석을 해보면strcpy() 함수를 보면 크기에 제한 없이 buf에 값을 복사하고 있어서 버퍼 오버플로우가 발생합니다.공격을 위해 메모리 구조를 분석해보면메모리 구조를 그려보면NOP1036 + 0x123456
cat 명령어로 hint를 출력해보면 C 코드가 출력됩니다.코드를 해석해보면메모리 구조를 분석해보면메모리 구조를 그려보면NOP40 + "\\xef\\xbe\\xad\\xde" 구조로 입력을 주면 쉘이 뜰거 같습니다.익스플로잇 코드를 짜보면익스플로잇 코드를 실행시켜보면쉘
cat 명령어를 이용해서 hint를 출력하니 level 15와 비슷한 소스코드가 출력되었습니다. 비슷한 방법으로 \*check의 값을 deadbeef로 변조하면 문제를 해결할 수 있을 거 같습니다.일단 전에 익스플로잇 코드를 실행시켜보면segmentation fault

hint를 출력해보면 소스코드가 출력되었습니다.소스코드를 해석해보면fgets() 함수를 이용해서 함수 포인터 값을 shell() 함수의 주소로 조작하면 쉘을 띄울수 있을거 같습니다.공격을 위해 메모리 구조를 분석해보면메모리 구조를 그려보면NOP40 + shell4로 입
cat 명령어로 hint를 출력해보니 전에 문제와 유사한 소스코드가 출력되었습니다. 하지만 shell() 함수가 빠져있어 전과 같은 방법으로는 풀 수 없습니다.하지만 call 명령어의 동작을 생각해보면 해당 주소로 가서 거기에 있는 명령어를 실행시킵니다.함수 포인터에
cat 명령어로 hint를 출력하니 긴 소스코드가 출력되었습니다. 해석해보면0x08을 계속 넣어서 index를 음수로 만들고 check 변수에 접근하여 값을 0xdeadbeef로 변조하면 될거 같습니다.메모리 구조를 분석해보면메모리 구조를 그려보면string 바로 위에

cat 명령어로 hint를 출력해보니 소스코드가 출력되었습니다. 소스코드를 보면 gets( ) 함수로 인해 버퍼 오버플로우가 발생합니다.공격을 위해 메모리 구조를 분석해보면메모리 구조를 그려보면NOP44 + Shellcode_addr4로 공격을 하면 될거 같습니다.먼저
cat 명령어로 hint를 출력해보면 소스코드가 출력됩니다.소스코드를 봐보면 전과 다르게 입력을 변수 크기 보다 작게 받아서 버퍼 오버플로우가 발생하지 않습니다.대신 printf( ) 함수를 봐보면 형식 지정자를 사용하지 않아서 포맷 스트링 오류가 발생합니다.포멧 스트