리눅스상에서 RAW 소켓으로 소스 IP주소가 Spoof 된 UDP 패킷을 생성해서 뿌렸는데요
이게 이상하게 gateway 가 설정이 안되있으면 sendto 가 -1 을 리턴하고 route add default gw 192.168... 이런식으로 gateway 설정을 해주면 정상적으로 패킷이 발송되네요
어떻게 된걸까요?
어느 포트로 가야할지 몰라서 생기는 오류'라고 합니다. WSAGetLastError() WSAEINVAL(10022)http://cafe.naver.com/devart.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=602&
---------------------------------------------------------------------------- 젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다. 정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
errno 값을 출력해보시고, man sendto 의 에러부분을 보세요. 만약 잘 모르시겠다면
질문을 다음과 같이 수정해보세요: "gateway 설정이 안되었을 때, sendto() 가 EBADF를 리턴합니다." => 여기서 EBADF 대신에 얻은 에러값을 넣어서
제가 너무 간단하게 생각한건가요? 당연히 안되는거 같은데요.. 목적지ip에 대한 라우팅 정보가 없기때문에 안나가는게 아닌지요? 혹시 출발지ip를 변조하기 전에는 패킷이 잘 나갔나요? (default gateway 설정 없이도.)
그래서 저도 이상하다고 생각해서 질문을 한겁니다 라우팅은 목적지 IP 만 가지고 할줄알고 출발지 IP 는 상관없을줄 알았는데
게이트웨이 설정이 안되어있으니 목적지 IP 가 같아도 출발지 IP 를 다른 네트워크로 주면 패킷이 안가고 출발지 IP 를 제대로 주면 패킷이 잘 가더군요;;
아무튼 errno 를 통해 자세히 알아보겠습니다 감사합니다
커널에서 수정할 때 보니, 패킷을 받을 때 라우팅 검사하는 코드가 있었습니다. (spoof 된 출발지 주소를 식별하고 드롭하는 루틴이었음)
rp_filter 값을 0으로해보면.. 뭔가 나오지 않을까요?
raw 소켓은 써본적이 없어서..
보통은 dst 주소로 하지만 src 라우팅도 있고 하니 단정은 금물, 그리고 리눅스는 rfc를 참조해서 잘 만들어 놨기 때문에 해킹전에 rfc 를 참조하시는 것도 좋을 듯.. 검색 키워드 선정이 어렵겠네요 ㅎㅎ;
안되도 날 원망마세요!
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
포트를 몰라서라네요
어느 포트로 가야할지 몰라서 생기는 오류'라고 합니다.
WSAGetLastError() WSAEINVAL(10022)
http://cafe.naver.com/devart.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=602&
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
errno 값을 출력해보시고, man sendto 의
errno 값을 출력해보시고, man sendto 의 에러부분을 보세요.
만약 잘 모르시겠다면
질문을 다음과 같이 수정해보세요:
"gateway 설정이 안되었을 때, sendto() 가 EBADF를 리턴합니다." => 여기서 EBADF 대신에 얻은 에러값을 넣어서
제가 너무 간단하게 생각한건가요? 당연히 안되는거
제가 너무 간단하게 생각한건가요?
당연히 안되는거 같은데요.. 목적지ip에 대한 라우팅 정보가 없기때문에 안나가는게 아닌지요?
혹시 출발지ip를 변조하기 전에는 패킷이 잘 나갔나요? (default gateway 설정 없이도.)
네
그래서 저도 이상하다고 생각해서 질문을 한겁니다
라우팅은 목적지 IP 만 가지고 할줄알고
출발지 IP 는 상관없을줄 알았는데
게이트웨이 설정이 안되어있으니
목적지 IP 가 같아도
출발지 IP 를 다른 네트워크로 주면 패킷이 안가고
출발지 IP 를 제대로 주면 패킷이 잘 가더군요;;
아무튼 errno 를 통해 자세히 알아보겠습니다
감사합니다
커널에서 수정할 때 보니, 패킷을 받을 때 라우팅
커널에서 수정할 때 보니, 패킷을 받을 때 라우팅 검사하는 코드가 있었습니다.
(spoof 된 출발지 주소를 식별하고 드롭하는 루틴이었음)
rp_filter 값을 0으로해보면.. 뭔가 나오지 않을까요?
raw 소켓은 써본적이 없어서..
보통은 dst 주소로 하지만 src 라우팅도 있고 하니 단정은 금물, 그리고 리눅스는 rfc를 참조해서 잘 만들어 놨기 때문에 해킹전에 rfc 를 참조하시는 것도 좋을 듯.. 검색 키워드 선정이 어렵겠네요 ㅎㅎ;
안되도 날 원망마세요!
댓글 달기