목록펭귄's directory (180)
한땀한땀 정성들인 코딩
프롤로그-웹프로그램(어플리케이션)은 http프로토콜로 통신하는 네트워크 프로그램-http프로토콜을 직접 다루는 코드를 작성하기 보-웹 어플리케이션 서버(미들웨어)로 제품이 제공하는 환경위에서 동작-이 미들웨어는 tcp/ip 연결관리와 http프로토콜 해석등의 네트워크 기반 작업-보통 사용자는 요청과 응답 개념위에서 구현 시작-웹어플서버가 제공하는 추상화된 API로 네트워크에 접근 서블릿 컨테이너-http요청을 받아 처리-아파치 톰캣, 제티, 그리즐리통신지원-통신하기위해 소켓을 생성할 필요가 없다. 즉 통신api에 신경 쓸필요가 없다.//?? webserver아님? 생명주기 관리-서블릿클래스를 로딩하여 인스턴스화-초기화 메소드 호출-가비지 컬렉션 멀티스레딩-요청이 올때마다 쓰레드 생성 선언적인 보안관리-x..
/etc/passwd[user_account]:[user_password]:[user_ID]:[group_ID]:[comment]:[home_directory]:[login_shell] 사용자계정,패스워드,사용자 id,그룹 id, 참고사상, 로그인후 사용자가 위치할 홈디렉토리, 명령어를 처리하는 쉘종류 /sbin/nologin, /bin/false -시스템에서 사용하는 로그인이 필요없는 계정 ex) useradd -s /sbin/nologin testuser 취약점 root(관리자권한) uid 0, gid 0으로 변경 /etc/shadow[user_account]:[encrypted_password]:[last_change]:[minlife]:[maxlife]:[warn]:[inactivel]:[expi..
시스템 점검도구- 계정, 패스워드- 프로그램- 백도어, 루트킷 탐지 COPS-유닉스-파일, 디렉토리 및 장치파일 퍼미션 점검-/etc/passwd, /etc/group 파일 내용 점검-/etc/hosts.equiv, [사용자 홈디렉토리]/.rhosts 파일 내용 점검 LYNIS-무료-리눅스-http://cisofy.com/download/lynis/-./lynis 실행-./lynis audit system- 로그 파일 확인- /var/log/lynis.log- /var/log/lynis-report.dat OpenVAS-무료-리눅스- openvas-setup //설치- openvas-start //시작- https://127.0.0.1:9392 TRIPWIRE-파일 무결성 점검도구-원본파일의 checks..
프로그래밍의 이해hellow world이스케이프 시퀀스서식문자주석비트,바이트정수표현 방식자료형상수 (리터럴 상수,심볼릭 상수)연산자 (관계,논리,콤마 형 변환, &)sizeof자동 형 변환함수? (호출, 구성요소, 선언)if, else, switch, goto조건 연산자while, break, continuefor아스키 코드가상메모리( 코드,데이터,힙,스택 )지역, 전역, static, 레지스터비트 연산자( shift, mask)배열char형 배열전처리기( define, 매크로함수, 조건부)#pragma, #error, #line, #undef포인터포인터 형변환void형 포인터포인터 연산*p++이중포인터동적할당 (정적할당)[]연산자포인터vs배열배열 인수const 포인터typedefgetch,putch,p..
1. GS- 윈도우 상에서 스택을 보호하는 기법- 함수 상세 로컬 문자열 버퍼 - buffer와 ret 사이에 stack cookies를 추가- return 주소를 보호 - .data영역에 저장된 cookie 값과 비교- 변조된것으로 판명되면 abort() 2. SAFE SEH-window 예외 처리 기법-에러처리 레코드를 덮어 쓰는 것을 방지-링커에서 안전한 예외처리 목록 생성 3. CANARY-리눅스상에서 보호기법-윈도우의 stack cookie개념과 비슷-termiator canaries : 문자열의 끝문자로 구성하는 방법. null,cr,lf,0xff 값의 조합-random canary : 임의의 canary값 지정-null canary : null로 구성 objdump-역어샘블-기계어(헥사코드)..
ASCII-Armor-libc 영역을 보호하는 기법-시작주소를 \x00으로 시작하게 만들어 접근불가-c언어에서 문자열의 끝 식별을 null로 하므로-연속적인 함수 호출이 파이썬 쉘 스크립트-파이썬 리눅스 쉘에서 실행 1.python -c "for x in range(10):print x"2.$(python -c "for x in range(10):print x")3.$(python -c "print 'x'")4.$(python -c "print 'x';print 'y'") -파이썬에서 쉘 명령어 실행import osos.system('ls -la') -파이썬 스크립트 바로 실행가기python3 파이썬파일명.py 인수... -리눅스에서 파이썬파일 실행하기 -파이썬3은 3.x버젼 python으로 하면 2.x..
ASLR (address space layout randomization)-PE파일 로딩 시작주소값 랜덤하게 변경-DLL파일 초기 로딩 주소 랜덤 변경-주소공간을 랜덤배치 -스택,힙,데이터영역을 실행할때마다 프로세스 주소공간에 랜덤으로 배치 nop슬라이드-ASLR우회-0x90 nop 어샘블리 명령어-의미없는 명령어-nop를 많이 넣어서 ret가 nop중 하나라도 만나면-nop를 쭉 따라서 shellcode까지 실행하게 된다.
Non-Executable 스택-스택에서 쉘코드가 실행되는 것을 막는다. - cat /proc/self/maps 7ffcf26b7000-7ffcf26d8000 rw-p 00000000 00:00 0 [stack] rw-p실행권한이 없는것을 확인 할 수 있다. RTL(return into Libc)-Nx bit(Non-executable) 우회하는 기법-stack기반 bof는 ret주소를 쉘코드로 덮어 씌었으나-RTL은 libc공유 라이브러리 함수로 덮어 씌운다.libc-c표준 라이브러리 -system 함수의 주소 () -"/bin/sh" 주소-buffer가 넘칠 변수의 크기 ( char[40]이면 40byte)buffer[40] + sfp[4] + ret[4] + dummy[4] + /bin/shret에..
유닉스시스템에서 프로세스에 부여하는 번호 1. pid2. ruid 실제사용자3. euid 유효사용자4. rgid 실제 사용자그룹5. egid 유효 사용자그룹 r-계정관리e-접근권한결정 chmod 0755 filename -rw-rw-r-- 읽기+쓰기+실행 = rwx 파일종류 + 특수권한 + 소유자권한 + 그룹권한 + 기타사용자권한 파일종류 특수권한 소유자 권한 그룹 권한 기타 사용자 권한 -d,d,c,b,s,l,p setuid,setgid,stickybit rwx rwx rwx setuid-파일 소유자 권한으로 실행-파일 종료시 원래 사용자로 돌아옴-s : 실행권한 +x 설정-S : x설정안되어 있을때 setgid-파일 소유 그룹으로 실행 -위와 마찬가지 s sticky bit-소유자만이 파일 삭제-t ..
바이러스 - 다른프로그램에 기생 웜 - 자기복제,전이트로이목마 - 정상프로그램 가장스파이웨어 - 감염 시스템의 개인정보 수집 발송애드웨어 - 광고,웹브라우저 실행시 랜섬웨어 - 파일 암호화, 복호화 금전요구 키로거 - 사용자의 입력값 전송루트킷 - 감염된 시스템에 관리자 접근을 하기위한 공격 툴백도어 - 정삭적인 절차를 무시한 시스템 접근봇 - 다른 시스템을 공격하는 감염된 시스템 탐지 기법-패턴 : 파일명,해쉬,특정 문자열 감지 -이상징후 : 정상적 행동범위를 벗어나는 행위, 시작프로그램등록,hosts.txt 수정시도 *hosts.txt os가 호스트 이름을 ip주소 맵핑할때 사용하는 파일 -동적 : 가상의 환경에서 악성코드 환경실행 전과후 -정적 : 프로그램 논리구조, 흐름 추적 분석툴=리버싱툴 : ..