본문 바로가기

전체 글

(192)
22일차] wireshark (arp spoof, arp security) 와이어샤크(Wireshark)는 자유 및 오픈 소스 패킷 분석 프로그램이다. 네트워크의 문제, 분석, 소프트웨어 및 통신 프로토콜개발, 교육에 쓰인다. 원래 이름은 Ethereal이었으나 2006년 5월에 상표 문제로 말미암아 와이어샤크로 이름을 바꾸었다.[위키백과] [실습] telnet과정 살펴보기. 1). NETWORK-V(10.10.10.20) 서버역할을 한다. 먼저 텔넷 서버를 다운받는다. 2). #> vi /etc/xinetd.d/telnet 다음 그림의 12번행을 yes -> no로 변경 해준다. 3). 원활한 실습을 위해 방화벽을 꺼준다. 4). #> vi /etc/securetty에 다음 그림의 빨간 박스 부분을 추가해준다. /etc/securetty는 Telnet 접속 시 root 접근 ..
21일차] 환경구성 1. vmware 환경구성 (1). NETWORK-A ( IP : 10.10.10.10 , MAC : 00:0C:29:AA:AA:AA ) # 설정을 적용하고 난 후 기존의 내용이 남아있기 때문에 다음 명령어를 통해서 갱신해준다. #>rm -f /etc/udev/rules.d/70-persistent-net.rules #>reboot (2). NETWORK-V ( IP : 10.10.10.20, MAC : 00:0C:29:BB:BB:BB ) # 설정을 적용하고 난 후 기존의 내용이 남아있기 때문에 다음 명령어를 통해서 갱신해준다. #>rm -f /etc/udev/rules.d/70-persistent-net.rules #>reboot (3). NETWORK-R ( IP : 10.10.10.2 , 100.1..
16~19일차] TCP 통신 raw_socket으로 직접 구현 및 테스트 # 위의 통신내용은 echo이다. 단순하게 클라이언트가 문자열(hello)을 보내면 그 문자열(hello)을 서버가 되돌려주는 통신내용이다. # 위의 사진은 sniffer을 통해 TCP 통신과정을 캡쳐한 것이다. sequence와 ack를 잘 보자. 바로 밑 그림은 flag가 나타내는 것이다. # 플래그의 각각의 뜻은 https://ko.wikipedia.org/wiki/%EC%A0%84%EC%86%A1_%EC%A0%9C%EC%96%B4_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C 위키 백과를 참조하면 쉽게 이해할 수 있다. TCP 통신과정을 큰그림으로 본다면 다음과 같다. 1). 여기서 SEQ는 ISN(초기 시퀀스 넘버)라고하며 최초 서버에 의해 랜덤으로 설정된다. 1~42억 사이..
overthewire - Natas(6~10) Natas6 1). 암호를 입력하라고 한다.. 소스코드를 확인하자. 2). 입력한 secret이 변수 secret과 일치하면 답을 알려준다. includes/secret.inc를 include하고 있다.. 확인해보자 2). 해당 include 파일에 다음과같이 secret의 변수가 잘 들어가 있다 .! submit해보자 해결완료! Natas7 1). 링크가 2개 있다 한번씩 눌러보자. 해당 페이지로 넘겨주는 작업을 하는 것 같다. 2). 혹시나 하고 /etc/passwd 를 입력해보자 정보가 다나온다. ! 3). Natas에서 password가 어디있는지 처음에 알려줫었다 . 그럼 /etc/natas_webpass/natas8에 natas8의 비밀번호가 있을 것이다. 4). 해결완료 Natas8 1). ..
15일차] UDP 공격 기법, TCP Header 1. 포트 스캔 포트스캔은 UDP패킷을 이용해서 서버의 열린 포트를 파악하는 것이다. 예를들어, 서버에 847번의 포트가 열려있다고 가정하자. 그럼 다음 예문처럼 UDP패킷에 846번의 포트로 전달했을 경우 서버에서는 ICMP를 통해 에러메시지를 전달해 준다. 정상적은 847번의 포트로 패킷을 전달하면 아무 응답이 오지 않는다. 이 점을 이용해서 포트의 번호를 0 ~ 65535번까지이기 때문에 에러메시지를 통해서 열린 포트를 유추 할 수 있다. 하지만 응답이 안오는 이유가 여러 상황으로 있기 때문에 완벽하게 확인하는 것은 불가능하다. 하지만 이것을 통해 해킹의 중요 요소인 정보 수집이 가능하다. 1). raw_udp 2). sniffer을 통해 error massege를 확인 3). 잘못된 포트번호로 패..
overthewire - Natas(0~5) Natas 0 # 소스코드에 답이있다.. ㅠㅠ Natas 1 #우 클릭을 막아놨다... 하지만 링크에 view-source를 통해 쉽게 우클릭 없이 소스코드를 볼 수 있다 .! Natas 2 1). 이 페이지에는 아무것도 없다. 2). 있다. src="files/pixel.png"가 눈에 띈다 3). 현재 경로에 files 디렉터리가 있다는 것을 알 수 있다 수상하다. 접속해보니 다음과 같이 나오는 것을 확인 할 수 있다. 이러한 것을 directory listing 또는 directory traverser라고 한다. 4). users.txt에 접속해보자. 해결완료! Natas 3 1). 또 아무것도 없다 2) 구글에 찾아봐도 없다해서 찾아봤다.! 단서는 rotbots.txt이다. 히 파일은 '로봇 제외..
13일차, 14일차] UDP Header Class 1. UDP Class 정의하기 2. UDP Packet 보내기 192.168.3.118의 서버에게 UDP패킷을 보낼 것이다. 서버의 PORT는 20000번이다. 4계층의 전송계층의 주소체계는 포트번호이니 잘 확인해야한다. 여기서 udp.chksum은 다른 체크섬과 다른 점이 있다. 바로 Pseudo Header( 의사 헤더 )로 checksum을 구하기 때문이다. ※ Pseudo Header( 의사 헤더 ) Pseudo Heaer는 Ip Header 와 Udp Header로부터 선택된 필드들로 구성된다. (그림 참고) Pseudo Header는 실제로 destination에 전송되지 않고 UDP Checksum계산을 보조하기 위해 논리적으로 구성된 것이다. 즉, 데이터가 목적지에 정확하게 도착했는지( ..
11일차] Macke Ip Header Class, Checksum Function, ICMP 1. Ip Header Class 1) class 만들기 Class를 만들 때 다른 헤더와 달리 ver과 len 그리고 flag와 offset은 비트단위로 값을 나눠 갖는다. 따라서 이 것을 처리해주는 것이 가장 큰 중요 포인트가 된다. 2) Class test 객체에 생성자를 넣고 값을 출력해본다. --- > 다시 객체를 만들고 setter를 통해 값을 넣어보고 get_header를 통해 나온 바이너리를 확인해 보자. 최초 생성자에 넣은 바이너리와 같으면 잘 되는 것이다. ! 2. Checksum Function Checksum을 구하는 방법은 다음과 같은 과정을 거친다. 1). Checksum 부분을 제외한 모든 헤더의 값을 더해준다. 2). Checksum은 2바이트를 넘어가면 안되기 때문에 2바이..