반응형

'분류 전체보기'에 해당되는 글 212건

반응형
반응형

1. HTTP란? 

- www 상에서 정보를 주고 받을 수 있는 프로토콜

- 주로 HTML 문서를 주고 받을 때 쓰임

- TCP 80번 포트를 사용

- HTTP는 클라이언트와 서버 사이에서 이루어지는 요청/응답 프로토콜


2. DNS란?

- 도메인 네임 시스템의 약자

- 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꿔 수행

- 특정 컴퓨터의 주소를 찾기 위해 사람이 이해하기 쉬운 도메인 이름을 IP주소로 전환

- 예를 들어 www.daum.net->192.168.57.101로 전환시켜주는 역할을 함


3. HTTP, DNS 프로토콜 패킷 분석 실습


그림 1-1 DNS 패킷 


그림 1-1은 DNS 패킷 전송 상태다. dns를 입력하고 필터링하면 그림 1-1과 같은 결과가 나타난다. 패킷을 분석해봤을때 www.kali.org 등과 같은 URL을 전송하고 있는 것으로 파악되며 A는 ipv4, AAAA는 ipv6를 요청한다. 그림 1-1에서 주로 받는 요청은 ipv4로 파악된다.


그림 1-2 HTTP 패킷 (1)

 

그림 1-2는 HTTP 패킷 전송 상태다. http를 입력하고 필터링하면 그림 1-2와 같은 결과가 나타난다. 현재 daum.net에 접속해 요청값을 보낸 상태고 쿠키 값까지 있는 상태임을 확인할 수 있다. 쿠키 값을 탈취하게 되면 여러 해킹 범죄에 사용될 수 있기 때문에 항상 주의해야 한다. 쿠키 값은 서버가 클라이언트에게 주는 고유의 값이다.


그림 1-3 HTTP 패킷 (2)


그림 1-3은 그림 1-2에서 요청값을 보내고 어떤 응답을 주는지 알아보기 위해 다음 패킷값을 봤다. 패킷에는 302 object Moved라는 메시지가 나오는데 HTTP 302는 요청한 리소스가 임의적으로 새로운 URL로 이동했음을 나타낸다. 그림 1-2와 그림 1-3을 종합하면 daum.net은 잘못된 페이지기 때문에 www.daum.net으로 이동해야 한다고 알려주고 있는 상태다.


그림 1-4 HTTP 패킷 (3)


그림 1-4는 그림 1-3에서 잘못된 페이지에서 올바른 페이지로 이동한 결과다. 쿠키 값을 그대로 유지하면서 www.daum.net으로 이동된 상태를 나타내고 있다.


그림 1-5 HTTP 패킷 (4)


그림 1-5는 웹 요청의 메소드 검색으로 POST 파일 업로드 확인이 가능하다. http.request.method==POST를 입력하고 검색하면 447번에서 TCP Stream을 실행한다.


그림 1-6 TCP Stream 실행 결과


TCP Stream 실행 결과 divname으로 여러 파일들이 업로드 되었다는 것을 확인할 수 있다. 총 6개의 파일이 올라간 것으로 추정할 수 있다.

 



반응형
블로그 이미지

만년필석사

,
반응형

1. ARP 프로토콜이란?


- 호스트 A가 호스트 B에게 IP 패킷을 전송할때 호스트 B는 네트워크 주소를 모른다고 가정

- ARP 프로토콜을 사용해 호스트 B는 자신의 IP 주소가 목적지에 있는 ARP 패킷 수신

- 자신의 물리주소(Mac Address)를 A에게 응답해줌

- ARP 프로토콜과는 반대로 IP 호스트가 자신의 물리 네트워크 주소(Mac Address)는 알지만 IP    주소를 모르는 경우엔 RARP 프로토콜을 사용함



<사진출저: 보안프로젝트>



2. ICMP 프로토콜이란?


- IP는 최선형 전달 서비스만 지원되서 IP 패킷이 전송되는 목적지엔 전달되지 못함

- 오류에 대한 보고, 네트워크 상태 진단 등을 하기 위해 고안된게 ICMP 프로토콜

- ICMP는 IP로 캡슐화되 IP 헤더의 프로토콜 필드값을 1로 설정해 ICMP 메시지라고 나타냄


3. ARP, ICMP 프로토콜 패킷 분석 실습


그림 1-1 ARP 프로토콜 패킷 (1)


#3 arp&icmp.pcap 파일을 열고 arp를 입력해 패킷을 필터링한다. 첫번째 Broadcast 정보를 보면 송신자의 Mac 주소와 IP주소는 모두 확인되지만 수신자 IP 주소는 확인 되지만 Mac 주소는 확인이 되지 않는다. Broadcast에선 누가 192.168.187.131 정보를 가지고 있는지 묻고 있으며 192.168.187.128이 정보를 가지고 있다고 응답하고 있다.


그림 1-2 ARP 프로토콜 패킷 (2)


다음 응답 내용을 보면 그림 1-1과는 다르게 수신자의 Mac 주소가 정상적으로 포함되 있음을 볼 수 있다. ARP 프로토콜을 통해 응답을 한 결과다.


그림 1-3 ICMP 프로토콜 패킷 


icmp를 입력해 패킷을 필터링 하면 그림 1-3과 같이 icmp 패킷에 관련된 내용들이 나온다. 192.168.187.128이 192.168.187.2에게 질의를 하고 192.168.187.2가 응답하고 있다. 패킷 내용을 보면 ttl=128이라고 나와있는데 ttl은 time to live의 약자다.  ttl 128번은 윈도우를 뜻하므로 윈도우쪽에서 송수신이 일어나고 있음을 알 수 있다.







반응형
블로그 이미지

만년필석사

,
반응형

1. FTP 프로토콜이란?


- 파일 전송 프로토콜

- TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 파일 전송을 하기 위한 프로토콜

- 응용계층에 속함

- 제어용으로 21번 포트, 데이터 전송용으로 20번 포트 주로 사용


2. FTP 프로토콜 패킷 분석 실습


그림 1-1 FTP 통신 패킷


#2 ftp.pcap 파일을 열고 ftp를 입력해 패킷을 필터링 한다. 필터링 된 패킷 중에서 TCP Stream을 실행시켜 자세한 패킷 정보를 확인한다. 패킷 정보를 분석해보면 User, password 정보를 확인할 수 있고 성공적으로 로그인 되었다는 것을 확인할 수 있다. 현재 열린 포트 정보를 알려주고 어떤 포트를 열지 물어보고 있다. 원하는 포트를 열고 LIST 시스템 함수를 이용해 목록을 보고 있다. 그 안에서 TYPE 1을 요청하고 어떤 포트를 열지 물어보고 있다. 원하는 포트가 열리고 Sysmon64.exe 파일이 저장되어 있음을 볼 수 있다. 그리고 또 다른 포트를 열고 telnet.pcapng라는 파일을 저장한 후 종료하고 있다.


그림 1-2 ftp-data 패킷

ftp-data를 입력하고 패킷을 필터링한다. ftp-data는 TCP Stream을 할 시 정보들이 깨져서 나오기 때문에 아주 자세한 정보는 확인이 불가능하다. 현재 그림 1-2에는 Sysmon.exe 파일이 있음을 확인 가능하다.



그림 1-3 ftp.request.command==RETR 


ftp.request.command==RETR를 입력해 패킷을 필터링하면 그림 1-3과 같이 FTP 서버에서 파일을 가져올 수 있다. RETR이 서버에서 파일을 가져오는 명령어다. 이 패킷에서 TCP Stream 정보에서 Save as...를 실행해 데이터를 복원한다.



그림 1-4 데이터 복원 결과

Save as...를 실행해 데이터를 복원한 결과 인덱스가 211번 정보로 파악했다. 파악 후 ftp-data 필터를 하면 216번 정보가 나온다. 216번 정보에서 Sysmon64.exe를 다운 받은 패킷을 찾을 수 있다.


그림 1-5 216번 정보 TCP Stream


216번 정보 TCP Stream 결과다. ftp-data 정보기 때문에 어떤 정보인지는 알 수 없다. TCP Stream 정보 창에서 Save as..를 실행해 데이터를 복원한다. 복원시 파일 이름은 Sysmon64.exe로 한다.


그림 1-6 파일 복원 결과


Sysmon64.exe 파일 복원 결과다. 데이터를 복원해 외부에 유출된 파일을 확인할 수 있다.






반응형
블로그 이미지

만년필석사

,
반응형

1. Telnet 프토토콜이란?


- 인터넷이나 로컬 영역 네트워크 연결에 쓰이는 프로토콜

- 프로토콜의 클라이언트 일부 기능이 추가된 소프트웨어

- 23번 포트 주로 사용

- 보안에 대한 취약점이 많아 현재는 감소 상태고, 원격제어로 SSH로 대체함


2. Telnet 프로토콜 패킷 분석 실습


그림 1-1 TCP Stream (1)


#1 telnet.pcap 파일을 열어 telnet을 입력해 필터링을 걸어준 후 필터링 걸린 패킷들중에 선택해 TCP Stream을 연다. TCP Stream을 열어 정보를 분석해보면 현재 DISPLAY.kali:0은 서버, Welcome to Microsoft Telnet은 클라이언트다. 현재 서로 통신하며 데이터를 주고 받는 상태다. 어떤 페이지에 로그인을 시도 했을 시에 글자가 2개씩 입력되는 현상이 일어나는데, Telnet 프로토콜 특성상 일어나는 echo 현상이다. Telnet의 최대 단점은 네트워크 평문 전송과 교환을 하기 때문에 로그인, 패스워드 정보가 그대로 노출되는 것이다.



그림 1-2 TCP Stream(2)


TCP Stream을 열어 아래로 내리면 무언가를 cmd에서 계속 검색했다는 흔적이 남아있다. 그림 1-2에서도 cmd에서 명령어를 입력했을시 계속 Echo 현상이 일어나고 있음을 볼 수 있다. 

반응형
블로그 이미지

만년필석사

,
반응형

1. Remote OS Command Injection 취약점 탐지 실습



그림 1-1 local.rules


Security Onion을 실행해 /etc/nsm/rules 폴더로 이동한 후 vim을 활용해 local.rules를 실행한다.



그림 1-2 스노트 규칙 작성


local.rules 파일에 스노트 규칙을 작성한다. 외부 아이피 주소에서 웹 서버 주소로 전달해주며 메시지는 Remote OS Vulerability in URI로 출력되며 패턴을 URI나 요청메시지 헤더에서 각각 탐지되게 하려면 스노트 규칙의 sid 넘버를 달리하고 PCRE 정규화 표현식을 적용한다. sid는 30000002로 정의하고 I 옵션은 정규화 되지 않은 URI 디코딩한 문자열과 패턴이 매치된다.


그림 1-3 rule-update


local.rules 파일 저장 후 스노트 규칙을 업데이트한다. Fail이 출력되면 스노트 규칙 적용이 안되기 때문에 OK가 나올때까지 스노트 규칙을 수정 해야 한다.


그림 1-4 rule-set 업데이트


rule-update만 하게 되도 스노트 룰 적용이 안될 수 있기 때문에 rule-set도 같이 업데이트 한다. 모두 OK가 나오면 스노트 규칙이 정상적으로 적용된 것이다.


그림 1-5 sguil 실행


스노트 규칙 적용 후 sguil을 실행한다. sguil을 통해 Remote OS Command Injection 공격 취약점이 탐지된다.


그림 1-6 Command Execution


DVWA를 실행시켜 보안 레벨을 Low로 낮춘 후  Commmand Execution을 실행시켜 ;cat /etc/passwd를 입력하고 submit한다.


그림 1-7 Sguil 탐지


Submit을 하면 Sguil에서 Remote OS  Command Injection 공격을 탐지한다. 


그림 1-8 스노트 규칙


그림 1-2에서 적용했던 스노트 규칙도 잘 탐지되었음을 볼 수 있다. sid 번호는 30000002다.


그림 1-9 submit 로그


그림 1-6에서 보낸 정보를 탐지한 로그다. 정규 표현식에 의해 변환되서 탐지 되었음을 볼 수 있다. ;는 %3B, /는 %2F를 의미한다.


반응형
블로그 이미지

만년필석사

,
반응형

1. Remote OS Command Injection 취약점이란?


- 운영체제 명령어 삽입 취약점으로 변수 값의 검증 미흡으로 발생하는 취약점

- 운영체제 명령어 삽입으로 인해 파일 목록 등이 유출될 수 있어 심각한 취약점으    로 분류됨


2. Remote OS Command Injection 취약점 탐지 실습


그림 2-1 local.rules


Security Onion을 실행해 /etc/nsm/rules 폴더로 이동한 후 vim을 활용해 local.rules를 실행한다.


그림 2-2 스노트 규칙 작성


local.rules 파일에 스노트 규칙을 작성한다. 외부 아이피 주소에서 웹 서버 주소로 전달해주며 메시지는 Remote OS Vulerability in URI로 출력되며 PCRE 정규화 표현식을 적용한다. I 옵션은 정규화 되지 않은 URI 디코딩한 문자열과 패턴이 매치된다. 공격 로그는 PCRE 정규화 표현식에 의해 &cat /etc/passwd&로 탐지될 것이다.


그림 2-3 rule-update


local.rules 파일 저장 후 스노트 규칙을 업데이트한다. Fail이 출력되면 스노트 규칙 적용이 안되기 때문에 OK가 나올때까지 스노트 규칙을 수정 해야 한다.


그림 2-4 rule-set 업데이트


rule-update만 하게 되도 스노트 룰 적용이 안될 수 있기 때문에 rule-set도 같이 업데이트 한다. 모두 OK가 나오면 스노트 규칙이 정상적으로 적용된 것이다.


그림 2-5 sguil 실행


스노트 규칙 적용 후 sguil을 실행한다. sguil을 통해 Remote OS Command Injection 공격 취약점이 탐지된다.

그림 2-6 프록시 설정


칼리리눅스에서 Preference-> Advanced로 가서 프록시 설정을 한다. 127.0.0.1을 입력하고 OK를 누른다.



그림 2-7 DVWA Commmand Execution


DVWA를 실행시켜 보안 레벨을 Low로 낮춘 후  Commmand Execution을 실행시켜 127.0.0.1&cat /etc/passwd를 입력하고 submit한다.




그림 2-8 Sguil 탐지


Submit을 하면 Sguil에서 Remote OS  Command Injection 공격을 탐지한다. 


그림 2-9 스노트 규칙 


그림 2-2에서 입력한 스노트 규칙도 확인 가능 하다.


그림 2-10 submit 로그


그림 2-7에서 보낸 정보를 탐지한 로그다. 127.0.0.1&cat /etc/passwd에 스노트 규칙에 의해 정규 표현식이 적용되 변환되서 탐지됐음을 볼 수 있다.












반응형
블로그 이미지

만년필석사

,
반응형

1. Persist XSS 공격이란?


- 지속 가능형 XSS 공격, Stored XSS 공격이라고도 불림

- 데이터베이스에 기록되어 지속적으로 노출하는 방식의 공격

- 주로 게시판, 방명록, 댓글에서 발생



2. 스노트 규칙을 활용한 Persist XSS 공격 탐지 실습



그림 2-1 local.rules


Security Onion을 실행해 /etc/nsm/rules 폴더로 이동한 후 vim을 활용해 local.rules를 실행한다.


그림 2-2 스노트 규칙 작성


local.rules 파일에 스노트 규칙을 작성한다. 외부 아이피 주소에서 웹 서버 주소로 전달해주며 메시지는 Persistent XSS in POST로 출력되며 script%3e와 관련된 내용과 클라이언트 바디에서 탐지되고, 공격 형태는 web-application-attack이다.


그림 2-3 rule-update


local.rules 파일 저장 후 스노트 규칙을 업데이트한다. Fail이 출력되면 스노트 규칙 적용이 안되기 때문에 OK가 나올때까지 스노트 규칙을 수정 해야 한다.


그림 2-4 rule-set 업데이트


rule-update만 하게 되도 스노트 룰 적용이 안될 수 있기 때문에 rule-set도 같이 업데이트 한다. 모두 OK가 나오면 스노트 규칙이 정상적으로 적용된 것이다.


그림 2-5 sguil 실행


스노트 규칙 적용 후 sguil을 실행한다. sguil을 통해 Persist XSS 공격 취약점이 탐지된다.


그림 2-6 XSS 공격 구문 


bee-box에서 HTML Injection - stored (Blog)를 실행해 <script>alert("XSS!")</script>를 입력하고 실행한다.


그림 2-7 sguil 탐지


Security Onion으로 돌아와 Sguil을 보면 그림 2-6에서 실행했던 XSS 공격이 탐지되었음을 볼 수 있다.


그림 2-8 공격 패턴 탐지


자세한 탐지 기록을 확인해보면 script%3e가 그림 2-2에서 적용한 스노트 규칙에 따라 탐지가 잘 되었음을 볼 수 있다. 그림 2-6에서 보낸 공격 정보를 Sguil에서 탐지한 것이다.



3. XSS 공격의 대표적인 로그 패턴


1. ><script>alert(1);</script>

2. "><script>alert(1);</script>

3. ‘”<script>alert(1);</script>

4. <pre><script>alert(1);</script></pre>

5. <div><script>alert(1);</script></div>

6. </td><script>alert(1);</script><td>

7. </p><script>alert(1);</script><p>

8.</h2><script>alert(1);</script><h2>

9. javascript:alert(1);




반응형
블로그 이미지

만년필석사

,
반응형

1. Directory Browsing 이란?


- 디렉터리 브라우징, 디렉터리 리스팅이라고 불림

- 보안 설정으로 활성화, 비활성화 가능

- 활성화(보안 레벨 LOW)된 경우 웹 서버 디렉터리 목록을 노출

- 디렉터리 안에 중요 정보가 있다면 매우 심각한 취약점임


2. 스노트 규칙을 이용한 Directory Browsing 탐지 실습


[그림 2-1] local.rules


Security Onion을 실행해 /etc/nsm/rules 폴더로 이동한 후 vim을 활용해 local.rules를 실행한다.


[그림 2-2] 스노트 규칙 작성


local.rules 파일에 스노트 규칙을 작성한다. 웹 서버 주소에서 외부 아이피 주소로 전달해주며 메시지는 Directory Browsing Vuln으로 출력되며 index of / 와 관련된 내용이 탐지되고, 공격 형태는 web-application-attack이다.


[그림 2-3 rule-update]


local.rules 파일 저장 후 스노트 규칙을 업데이트한다. Fail이 출력되면 스노트 규칙 적용이 안되기 때문에 OK가 나올때까지 스노트 규칙을 수정 해야 한다.


[그림 2-4] rule-set 업데이트


rule-update만 하게 되도 스노트 룰 적용이 안될 수 있기 때문에 rule-set도 같이 업데이트 한다. 모두 OK가 나오면 스노트 규칙이 정상적으로 적용된 것이다.


[그림 2-5] sguil 실행


스노트 규칙 적용 후 sguil을 실행한다. sguil을 통해 디렉터리 리스팅 취약점이 탐지된다.


[그림 2-6] DVWA 디렉터리 리스팅 


칼리리눅스로 돌아와 DVWA를 실행한다. DVWA는 metasploitable 2 환경이기 때문에 metasploitable 2도 같이 실행해야 DVWA가 실행된다. 한가지 주의해야 할 점은 DVWA 보안 강도를 LOW로 설정한 후 진행해야 한다. HIGH로 설정하면 디렉터리 리스팅이 화면에 나타나지 않는다. 설정을 끝낸 후 IP/dvwa/vunerablities/를 입력하면 그림 2-6와 같이 웹 서버 디렉터리가 출력된다.


[그림 2-7] 디렉터리 리스팅 탐지


Sguil에서 디렉터리 리스팅을 탐지해낸 것을 볼 수 있다. 


[그림 2-8] 스노트 규칙


그림 2-2에서 적용 했던 스노트 규칙이다. content에 입력한 index of / 내용과 관련된 파일이 존재하기 때문에 탐지된 것이다.






반응형
블로그 이미지

만년필석사

,