본문 바로가기

Learning/└◆System Hacking

윈도우 SYSTEM 권한 획득 기법 윈도우의 계정과 권한 상승 주요 용어 도메인 도메인(domain)이란 문자로 표시한 인터넷 주소이다. 인터넷 주소는 원래 IP로 표시되었는데, 복잡한 숫자배열로 구성된 IP(특히 풀로 적을 경우 엄청 긴 IPv6)는 인간이 인식하기 어렵다는 단점이 있었다. 이에 IP와 대응되는 문자로 된 인터넷 주소를 만들었는데, 이것이 바로 도메인이다. 도메인은 .com, .net, .org와 같은 일반 최상위 도메인(gTLD)과 .kr, .cn, .jp와 같은 국가코드 최상위 도메인(ccTLD)이 있다. 도메인 등록기관은 미국 베리사인(VeriSign), 고대디(GoDaddy) 등이 있으며, 한국에는 가비아, 후이즈, 아사달, 아이네임즈 등이 있다. KISA WHOIS에서 도메인의 대략적인 정보를 볼 수 있다. 보안.. 더보기
리눅스/유닉스 SetUID를 이용한 해킹 기법 SetUID 비트를 가진 셸을 생성 리눅스/유닉스에서 SetUID 비트는 레이스 컨디션, 버퍼 오버 플로우, 포맷스트링 공격을 위해 사용 될 수 있다. 원본의 bash 셸을 복사하여 4755 권한으로 설정 $ cp /bin/bash /test/bash $ chmod 4755 bash $ ls -al total 868 drwxrwxrwx. 2 root root 4897 Nov 27 11:28 . dr-xr-xr-x. 24 root root 4897 Nov 27 11:28 .. -rwsr-xr-x. 1 user01 user01 877697 Nov 27 11:28 bash bash shell 을 복사해서 4755 즉, SetUID 권한이 결정되도록 권한을 바꾸는 부분 # cp 소스 destination # c.. 더보기
[War Game] FTZ Level 17 ■ Level17 풀이 level8 사용자 로그인 -> ID/PASS : level17/ $ cat hint void shell() { setreuid(3097,3097); system("/bin/sh"); } void printit() { printf("Hello there!\n"); } main() { int crap; void (*call)()=printit; char buf[20]; fgets(buf,48,stdin); call(); } => shell함수가 권한 상을을 시켜주는 수단이 될 수 있다는걸 알 수 있다. => 실행을 시켜보면 printi함수가 실행되고 shell함수를 변조하면 된다. $ cp /home/level16/hint /home/level16/tmp/shell.c $ cp /h.. 더보기
[War Game] FTZ Level 16 ■ Level16 풀이 level8 사용자 로그인 -> ID/PASS : level16/about to cause mass $ cat hint void shell() { setreuid(3097,3097); system("/bin/sh"); } void printit() { printf("Hello there!\n"); } main() { int crap; void (*call)()=printit; char buf[20]; fgets(buf,48,stdin); call(); } => shell함수가 권한 상을을 시켜주는 수단이 될 수 있다는걸 알 수 있다. => 실행을 시켜보면 printi함수가 실행되고 shell함수를 변조하면 된다. $ cp /home/level16/hint /home/level16/.. 더보기
[War Game] Lord Of BoF Level 1 더보기
[War Game] FTZ LEVEL 8 $ id uid=3008(level8) gid=3008(level8) groups=3008(level8) $ cat hint level9의 shadow 파일이 서버 어딘가에 숨어있다. 그 파일에 대해 알려진 것은 용량이 "2700"이라는 것 뿐이다. 힌트는 충분하다. $ cd etc $ ls -l shadow -r-------- 1 root root 3195 Sep 17 02:40 shadow /etc 밑에 있는 shadow는 root만 볼 수 있다. 또한 용량도 맞지 않기 때문에 동일한 파일이 어딘가에 따로 있을 것이다. size를 이용한 find 명령어를 이용한다. $ find / -size 2700 2>/dev/null [참고] $ find -help find -help 에서 -size N[bckw.. 더보기
[War Game] FTZ LEVEL 7 $ id uid=3007(level7) gid=3007(level7) groups=3007(level7) $ cat hint /bin/level7 명령을 실행하면, 패스워드 입력을 요청한다. 1. 패스워드는 가까운곳에.. 2. 상상력을 총동원하라. 3. 2진수를 10진수를 바꿀 수 있는가? 4. 계산기 설정을 공학용으로 바꾸어라. 상상력이라 .. 흥미로운 힌트이다. /bin/level7을 실행해본다. $ /bin/level7 Insert The Password : 0000 올바르지 않은 패스워드 입니다. 패스워드는 가까운곳에... --_--_- --____- ---_-__ --__-_- 내 핸드폰 비밀번호를 써 보았는데 퇴짜 맞았다. $ ls -l level7 -rwsr-x--- 1 level8 leve.. 더보기
[War Game] FTZ LEVEL 6 hint - 인포샵 bbs의 텔넷 접속 메뉴에서 많이 사용되던 해킹 방법이다. LEVEL 6 은 로그인 하자마자 힌트가 출력된다. ENTER를 누르면 아래 창으로 들어가 진다. ############################ ## 텔넷 접속 서비스 ## ## ## ## ## ## 1. 하이텔 2. 나우누리 ## ## 3. 천리안 ## ## ## ############################ 접속하고 싶은 bbs를 선택하세요 : 1~3번 어느 것을 눌러도 시간이 지나면 종료된다. 이 프로그램을 실행하여 진행은 할 수 없는 것 같다. 하지만 이런 텔넷 접속 서비스도 하나의 프로그램이기 때문에 프로세스를 종료할 수 있다. Ctrl + C 를 사용하자. 저상태에서 Ctrl + C 가 먹히질 않는다. C.. 더보기
[War Game] FTZ LEVEL 5 $ id uid=3005(level5) gid=3005(level5) groups=3005(level5) $ cat hint /usr/bin/level5 프로그램은 /tmp 디렉토리에 level5.tmp 라는 이름의 임시파일을 생성한다. 이를 이용하여 level6의 권한을 얻어라. level5.tmp 라는 파일이 생성되는 것 같다. /usr/bin 에 가보면 해당 파일이 존재하는 것을 볼 수 있다. $ ls -l /usr/bin/level5 -rwsr-x--- 2 level6 level5 14402 Mar 29 2003 /usr/bin/level5 SETUID 권한이 있고 level5 그룹은 실행 권한만 있다. /usr/bin/level5 프로그램을 실행시켜 본다. 아무일도 일어나지 않는다. /tmp 에.. 더보기
[War Game] FTZ LEVEL 4 $ id uid=3004(level4) gid=3004(level4) groups=3004(level4) $ cat hint 누군가 /etc/xinetd.d/에 백도어를 심어놓았다.! 백도어란? 시스템 관리자가 일부러 열어 놓은 시스템의 보안 구멍이다. 처음에 백도어가 나오게 된 계기는 회사원들이 퇴근을 하고 원격으로 회사의 업무를 하기 위해 만들어 졌다고 한다. 하지만 해커들은 이것을 악용하여 공격을 위한 뒷문을 만들어 두는 것이다. xinetd.d란? 리눅스 부팅 과정이 진행되면서 네트워크 데몬도 가동되는데 이를 수행하는 것이 xinetd 슈퍼 데몬 이다. 네트워크 데몬은 FTP,텔넷,SSH,아파치 등과 같은 네트워크 통신을 위한 데몬을 말한다. xinetd는 이들의 부모 프로세스가 된다. 먼저 /e.. 더보기
[War Game] FTZ LEVEL 3 $ id uid=3003(level3) gid=3003(level3) groups=3003(level3) $ ls hint public_html tmp $ cat hint 다음 코드는 autodig의 소스이다. #include #include #include int main(int argc, char **argv){ char cmd[100]; if( argc!=2 ){ printf( "Auto Digger Version 0.9\n" ); printf( "Usage : %s host\n", argv[0] ); exit(0); } strcpy( cmd, "dig @" ); strcat( cmd, argv[1] ); strcat( cmd, " version.bind chaos txt"); system( cmd.. 더보기
[War Game] FTZ LEVEL 2 $ id uid=3002(level2) gid=3001(level1) groups=3001(level1) $ ls hint public_html tmp $ cat hint 텍스트 파일 편집 중 쉘의 명령을 실행시킬 수 있다는데... 우선 LEVEL1 처럼 LEVEL3 권한을 가진 파일을 찾아본다. $ find / -perm -4000 -user level3 2>/dev/null /usr/bin/editor 폴더에 들어가서 실행 해보면 아래와 같이 일반적인 VI 편집기가 보인다. ~ ~ VIM - Vi IMproved ~ ~ version 6.1.320 ~ by Bram Moolenaar et al. ~ Vim is open source and freely distributable ~ ~ Help poor.. 더보기
[War Game] FTZ LEVEL 1 putty 실행 -> 119.64.191.205 일반계정을 사용하실 분은 login: 에 guest를 트레이닝 서비스를 받으실 분은 login: 에 trainer1을 입력하세요. - 공개계정: guest - 트레이닝: trainer1 - 레벨: level1/level1 - 대화방 및 머드 게임 서비스 : mud - www.hackerschool.org ※ F.T.Z 사용자들의 작업 기록과 접속 IP는 실시간으로 저장됩니다. 만약 F.T.Z 서버에 DoS 공격을 시도하거나, F.T.Z를 경유하여 타 시스템에 불법적인 접속을 시도하면 각각 정보 통신망 이용 촉진법 제62조 제5호와 제48조 제3항에 의거하여 처벌받게 됩니다. ※ F.T.Z는 사이버 수사대의 로그 기록 요청에 묵인하지 않습니다. login: .. 더보기
[War Game] FTZ trainer telnet ftz.hackerschool.org 글자 깨짐 현상 제거 CentOS 한글 설정 - root 권한으로 실행 vi /etc/sysconfig/i18n 1 LANG="ko_KR.eucKR" 2 SYSFONT="latarcyrheb-sun16" source /etc/sysconfig/i18n . .bashrc CTRL+ALT+BACKSPACE 더보기