본문 바로가기

IT

(192)
3일차] 각 메모리 공간의 데이터 표현 + 레지스터 C 언어의 문자표현 - 문자 : '(작은 따옴표) - 문자열 : " (큰 따옴표) - c언어에서는 엄격하게 구별한다. NASM의 문자표현 - 문자 'hello, World!!!', 10, 00 - 문자나 문자열 모두 '(작은 따옴표)으로 표현한다. - 즉, 'hello, world!!!'는 문자열 10은 \n 00은 null을 의미한다. - C언어로 표현하자면 "Hello, World!!!\n"; 와 같은 의미이다. - 변수라는 개념이 존재하지 않는다. NASM의 숫자표현 # 위에서 부터, 10진수, 16진수, 8진수, 2진수의 표현방식을 확인할 수 있다. 지금 이 nasm 문서는 2.대 major이기 때문에 실습하고 있는 환경에서 지원하지 않는 것도 있다. [ data segment에서 데이터를 표현 ..
2일차] 어셈블리 확인하기 [ 실행파일 구조 ] - 리눅스 : ELF - 윈도우즈 : PE - 유닉스 : COFF #> xxd hello.o // *xdd : 리눅스에서 제공하는 헥스뷰이다. [ 프로그램 & 프로세스 ] 1. 프로그램 - 실행중이지 않은 상태 - 디스크(보조 기억 장치)상에 파일 형태로 존재 2. 프로세스 (fore ground process 와 back ground process가 있다.) - 실행중인 상태 - 운영체제가 관리하는 작업의 단위 - 파일이 메모리(주 기억 장치)에 존재 [ 어셈블리어로 메모리 영역 이해하기. ] 1. text section(세그먼트) - 실행코드가 존재하는 영역 - 읽기전용 - 실행가능한 메모리 영역 - main 부분에 해당됨. 2. DATA 섹션(세그먼트) - 읽기/쓰기 가능한 메..
1일차] 환경 구축 및 컴파일 과정 실습 환경 : Red Hat 6.2 버전 ( 메모리 보안기법이 적용이 되어있지 않은 환경) 리눅스를 위한 부트 로더가 grub가 아닌 LILO이기 때문에 직접 운영 체제를 입력해 줘야 한다. linux-up을 입력해주자. # ID - root, PW - 1234 ( root 계정으로 실습을 진행해야 한다. ) NASM 다운로드 방법 #> wget http://www.nasm.us/pub/nasm/releasebuilds/0.99.05/nasm-0.99.05.tar.gz --> wget으로 다운로드 받음. #> tar xvfz nasm-0.99.05-xdoc.tar.gz #> cd nasm-0.99.05 #> ./configure #> make #> make install #> cp nasm /usr/bi..
14~15일차]PAM개념 PAM이란 ? Linux Pluggable Authentication Modules의 약어로 리눅스 PAM은 리눅스 또는 GNU/kFreeBSD 시스템에서 애플리케이션과 서비스에 대한 동적 인증을 제공한다. 리눅스-PAM은 인증 작업을 다음 4가지 독립적인 관리 그룹으로 분리한다. 1). 계정 모듈(account module)들은 명시된 계정이 현재 조건에서 유효한 인증 목표인지를 검사한다. 이것은 계정 유효기간, 시간 그리고 사용자가 요청된 서비스에 접근 가능한지 같은 조건을 포함한다. 2). 인증 모듈(authentication module)들은 비밀번호를 요청하고 검사하는 것 같이 사용자의 신원을 확인한다. 또한 인증 정보를 keyring 같은 다른 시스템들에게 전달한다. 3). 비밀번호 모듈(pa..
34~35일차] Carving & Signature + 문제풀이 파일 카빙(Carving) 저장 매체에 저장된(하드디스크/패킷파일 등) 바이너리 데이터로 부터 파일의 고유한 시그니처, 구조체, 헤더 정보등을 확인하여 파일을 복구하는 방법 시그니처 (Signature) 각 파일은 구분하기 위해 데이터의 여러 위치에 시그니처 정보가 있다. 데이터 가장 앞에 있는 시그니처를 헤더 시그니처라고하며, 데이터 가장 마지막에 있는 시그니처를 푸터/트레일러 시그니처라고 한다. 시그니처 기반 카빙 파일별로 존재하는 고유한 시그니처를 이용한 카빙이다. 시그니처 파악하는 방법 샘플 파일 : 1. 리눅스 명령어 중 file --> 파일의 시그니처를 알려준다 2. HxD Tool을 이용한다. # 다운로드를 받고 그냥 스그니처 파악하기 위하는 파일을 드래그해서 옮기면 된다. 앤이 보석금으로 ..
33일차]Port Scanning => TCP Open Scan, Stealth Scan(Half Open Scan, XMAS, NULL, FIN), UDP Scan NMAP?? NetworkMap(네트워크지도)의 약어로 네트워크에 연결되어있는 호스트의 정보를 파악하는 도구이다. 다음과 같은 정보를 얻을 수 있다. - 네트워크에 연결되어있는 호스트들의 IP와 OS 종류 - 서버의 열린 포트 - 서비스하는 소프트웨어의 버전 정보 공격자는 위의 정보를 시스템 침투에 활용하며, 방어자는 불필요한포트가 열려 있는지, 불필요하게 노출되는 정보가 있는지를 점검할 수 있다. [NETWORK-A] #> yum -y install nmap ※ Nmap Port Status open - 스캔된 포트가 Listen 상태임을 나타낸다. closed - 포트 스캐닝을 한 시점은 listen 상태가 아님을 나타낸다. filterd - 방화벽이나 필터에 막혀, 해당 포트의 open/close여..
31~32일차] HTTP Packet analysis, HTTP GET FLlOODING, HTTP Slow Read Server-A [웹 서버] (10.10.10.10) #> yum -y install httpd #> vi /var/www/html/index.html // 홈디렉터리에 간단히 NETWORK-A 출력해주는 html파일 작성 Server-B [클라이언트] (10.10.10.20) #> yum -y install elinks // 웹 브라우저 설치 #> elinks 10.10.10.10 // 웹 서버 접속 # 결과 : 서버가 클라이언트의 요청에 따라 응답을 해주는 것을 확인 할 수 있다. 이제 이 과정을 wireshark로 캡쳐해 보자. ※ HTTP transaction : 웹 브라우저가 웹 서버에 하나의 요청을 보내고 웹 서버가 요청을 처리하여 응답을 전송하는 한 번의 과정을 트랜잭션이라고 한다. 1). ..
30일차] Brute Force Attack (Ditionary) Hydra vs MSF + TFTP Brute Force Attack Tool 사전기반 Brute Force를 할 것이고 > > > yum -y install epel-release #> yum localinstall hydra-7.5-1.el6.x86_64.rpm ※ 실행 ...(중간생략) # 각각의 옵션은 다음을 뜻한다. - l : 계정명 - V : 진행과정 출력 - f : 계정 및 패스워드 발견 시 종료 - p : 패스워드 ※ 위의 과정을 Wireshark로 캡쳐 # hydra의 한 세션의 과정을 캡쳐해보면 위와 같다. # hydra와 같은경우는 ftp의 세션연결 제한을 피하기위해서 한 세션에서 brute force attack을 3~4번 시도를 하고 마지막에보면 RST 패킷을 보내서 세션을 비정상적..