본문 바로가기
반응형

전체 글289

2011.09.15 KISA 리눅스 보안 심화과정 메모 grub-md5-crypt GRUB 패스워드 설정 명령 중요 디렉토리 읽기권한 제거 find / \( -type d -o -type f \) -a -perm -2 -ls 일반 사용자의 쓰기 권한 검사 ssh의 chroot를 사용하면 일반 사용자의 과도한 권한을 제어할 수 있다. iptables 설정시 INVALID 패킷에 대하여 DROP 옵션을 적용해두면 DOS 공격 등 비정상적인 패킷 차단이 어느정도 가능하다 설정시 ESTABLISHED 패킷에 대하여 ACCEPT 옵션을 적용해두면 하단의 정책에 의해 연결된 패킷이라도 정책 비교 횟수를 줄일 수 있어 패킷 비교에 의한 부하를 줄일 수 있다. enyelkm 리눅스용 백도어 linux-sendpage2 리눅스 익스플로잇 2011. 9. 15.
2011.09.09 KISA 리버스 엔지니어링 교육 메모 NetScheduleJobAdd admin$ 로 접속했을때 지정된 스케쥴 실행하게 하는 함수 AdjustTokenPrivileges -권한 상승 관련 API -시스템 dll 파일 등을 수정하기 전 권한 상승이 필요 System Explorer -스냅샷 기능을 이용하여 파일,레지스트리 등등의 추가 제거 여부를 확인 가능 (스냅샷 비교만으로 파일 추가 제거 여부 확인 가능한게 장점) (어떤 프로세스가 동작하며 추가 제거 하였는지 알 수 없는게 단점) API Monitors -api 관련 내용을 모니터링 Malzila -난독화 문제 해결 및 문자열 디코딩 등등 PDF TK -PDF 디코딩 도구 Search for All > intermodular calls 로 writeFile 등의 함수에 브레이크 포인트를 .. 2011. 9. 9.
프로그래밍 게임 심심할때 간편하게 할 수 있는 프로그래밍 게임이다 동작 몇가지와 서브 함수 2개를 이용하여 파란 블록에 모두 불을 켜면 된다. 사이즈가 정해져 있으니 머리를 잘 써야한다. 2011. 8. 25.
VEH (Vectored Exception Handling) 참조1 : http://msdn.microsoft.com/en-us/library/ms681420(v=VS.85).aspx 참조2 : http://blogs.msdn.com/b/zhanli/archive/2010/06/25/c-tips-addvectoredexceptionhandler-addvectoredcontinuehandler-and-setunhandledexceptionfilter.aspx VEH는 SEH의 확장된 개념으로써, 프레임 기반이 아니기 때문에 어떠한 곳에서든지 핸들러를 추가할 수 있다.  1.SetUnhandledExceptionFilter LPTOP_LEVEL_EXCEPTION_FILTER WINAPI SetUnhandledExceptionFilter( __in LPTOP_LEVE.. 2011. 8. 15.
SEH(Structured Exception Handling) 참조 : http://msdn.microsoft.com/en-us/library/swezty51(v=VS.71).aspx 비동기적으로 아무 때나 발생가능한 인터럽트와 달리 실행 중인 프로그램의 직접적인 실행 결과로 발생하는 예외를 처리하기위하여 윈도우는 어플리케이션이 예외 발생시 제어를 받을 수 있도록 SEH를 사용한다. SEH는 시스템 메커니즘으로서 프로그램 언어 한정적인 것이 아니라 것에 유의해야한다. ※여기에서는 C를 기준으로 사용법을 기술한다. SEH는 기능적 특성에 따라 Termination Handler와 Exception Handler 두 가지로 나뉜다.  1.Termination Handler Termination Handler는 __try와 __finally 키워드로 구성되며 __try.. 2011. 8. 15.
strrstr 함수 구현 (문자열 역순 탐색 함수) -strstr 함수와 유사하게 문자열을 탐색하나 역순으로 탐색한다. #include #include char* strrstr(char* str,char* ptn){ unsigned int ptnlen=0; unsigned int i=0; unsigned int j=0; char* offset=-1; //패턴 문자열 길이 획득 (인덱스로 사용하기 위해 1 감소) ptnlen=strlen(ptn)-1; //문자열의 오른쪽부터 비교 시작 for(i=strlen(str)-1;i != 0;i--){ //문자열의 현재 위치 문자가 패턴 문자열의 마지막 문자와 일치 하는지 확인 if(str[i] == ptn[ptnlen]){ //패턴 문자열이 1 글자이면 오프셋 값 저장하고 리턴 if(ptnlen == 0){ off.. 2011. 7. 20.
반응형

바로가기