본문 바로가기

WarGame/webhacking.kr

[webhacking.kr] Challenge 31 :: 포트 포워딩 1


 Challenge 31은 다음과 같습니다.



php의 fsockopen()을 통해 socket을 생성하여 본인 ip로 10000 ~ 10100 사이의 임의적인 포트 번호로 


데이터를 보낸다는 것을 짐작할 수 있습니다.


10000 ~ 10100번 포트를 포워딩하여 한 포트로 보내주면 문제가 풀릴 것 같습니다.


 

네트워크 소켓(network socket)은 컴퓨터 네트워크를 경유하는 프로세스 간 통신의 종착점이다. 오늘날 컴퓨터 간 통신의 대부분은 인터넷 프로토콜을 기반으로 하고 있으므로, 대부분의 네트워크 소켓은 인터넷 소켓이다. 네트워크 통신을 위한 프로그램들은 소켓을 생성하고, 이 소켓을 통해서 서로 데이터를 교환한다. 소켓은 RFC 147에 기술사항이 정의되어 있다.


[참고] wikipedia.org





 포트 포워딩에 대한 순서를 간략히 설명하면,


1. Windows 방화벽에서 해당 포트 연결 허용


2. 포트 포워딩


3. 메시지 수신



하나씩 살펴보겠습니다.


1. 방화벽 포트 허용


 이미 많은 블로그에 있는 것 같아 설명을 생략하겠습니다.


2. 포트 포워딩


공유기를 사용하시는 분들은 공유기에서 직접 설정하는 방법이 있고,


Vmware에서 포워딩하는 방법 등이 있지만


저는 윈도우 네트워크 설정을 변경할 수 있는 유틸리티인 


 netsh (윈도우 서버 2000부터 포함) 를 사용하여 포워딩 하였습니다.


 

C:\Users\Administrator>netsh
netsh>interface
netsh interface>portproxy
netsh interface portproxy>add v4tov4 listenport=10000 listenaddress=0.0.0.0 connectport=10000 connectaddress=10.10.10.1 

--> 포트포워딩 설정
netsh interface portproxy>commit
--> 설정업로드
netsh interface portproxy>show all
--> 설정 확인
ipv4 수신 대기:             ipv4에 연결:

주소            포트        주소            포트
--------------- ----------  --------------- ----------
0.0.0.0         10000          10.10.10.1  10000
netsh interface portproxy>reset
--> 설정 삭제
netsh interface portproxy>exit 

--> 종료


[참고] http://blog.naver.com/PostView.nhn?blogId=11guddls&logNo=60187360842




3. 메시지 수신


netcat을 이용하는 방법 등이 있지만,


저는 Wireshark를 통해서 패킷 내용을 살펴 보았습니다.



Password 값이 보이는 군요.