2010/01/27 4

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

C programming :: Void형 포인터와 NULL 포인터

/* * http://sosal.tistory.com/ * made by so_Sal */ Void* NULL* Void * 포인터는 모두 주소를 저장하는 변수로 모두 4바이트의 같은 크기를 갖고있다. (물론 32비트 프로그래밍에서 이야기한다.) 주소값이 가지는 값들은 결국 컴퓨터에겐 단순한 숫자일 뿐이지만, 그 숫자가 의미하는것에 따라 의미를 부여하여 int, char, double 등 자료형을 만들었다. 위와 같이 일반적인 포인터는 자신이 가리키는 주소가 가지는 자료형과 같은 자료형을 쓴다. 하지만 포인터 자료형중에 void라는 특별한 놈이 있다. 이놈은 일반적인 포인터와 달리 데이터 자료형이 명시되지 않은 포인터이다. 포인터는 단지 주소에 접근하기 위함 뿐만 아니라 * 연산자를 이용해 값을 변경하고..

Linux - real id, effective id 사용자 id

/* * http://sosal.tistory.com/ * made by so_Sal */ setuid() seteuid() setreuid() getuid() geteuid() getgid() getegid() 주구장창 real id, effective id에 대해서 설명한 후에 위 함수들을 간단하게 정리하고 끝내려 합니다. 함수들이 어떤것인지 간단하게만 보고자 한다면 이 글의 맨 아래로 내려가 주세요. 사용자 id는 크게 2가지로 나뉜다. real id, effective id. 정확하게 무엇인진 모르겠지만.. real id는 실제 id를 말하고 effective id는 현재 권한을 뜻한다고 일단 생각하자. 시스템 해킹 문제에 자주 쓰이는 setuid() 라는 함수의 man page를 확인해보자. #..