본문 바로가기
정보보안/System Hacking

[Linux] - Kali Linux netcat + 기초명령어

by 우동이 2020. 10. 1.
300x250

 

 

[Linux] 우분투를 통해 배우는 Linux 기초 (Ubuntu 18.04v)

리눅스 관리를 위한 기초 명령어에 대해 배워보겠다 Ubuntu를 사용할거고 버전은 18.04버전 기준이다 사실 지난번 20.04버전을 설치했지만 기존에 실습을 진행하던 가상머신이 있기에 부득이하게 ��

hobbylists.tistory.com


man(manual)

man
#manual의 약자 메뉴얼 명령어

man은 manual의 약자로 해당 프로그램에 대한 매뉴얼을  출력합니다.

예시 > man ls // ls 명령어에 대한 메뉴얼 출력

 

man -h
-h 옵션을 붙여도 간략한 옵션과 설명을 들을 수 있다.

man -h 을 입력하면 man 명령어에 대한 자세한 사용법을 알 수 있습니다.(-h = help)


which

which man
which -> 파일이나 명령어의 경로를 보여줌

which 명령어는 해당 명령어의 파일 경로를 보여줍니다.

예시 > which man // man 명령어의 경로를 출력했습니다.


find

#find / | grep example

find / | grep example

example 파일에 대한 경로 찾기
/는 linux내의 전체 경로
|는 명령어 연산자로 find의 결과를 grep으로 다시금 연산

find 명령어는 말 그대로 찾는 명령어입니다.

주로 grep | 연산을 통해 자주 쓰이곤 합니다.

 

예시 > find / | grep passwd

리눅스의 전체 경로에서 example 파일의 경로를 찾아 출력하기

 


Kali Linux 에디터&편집기

  • gedit filename
  • vi(vim) filename
  • nano filename

리눅스 환경에서 사용 가능한 에디터는 gedit, vi(vim), nano 에디터 총 3개가 존재합니다.

여기서 vi와 vim에디터는 다른 에디터이지만 편의상 묶어 설명했습니다.

gedit

gedit은 GUI 에디터 이기에 제일 높은 편의성을 자랑합니다만

Console 환경에서 주로 진행되는 모의해킹 같은 경우에는 사용하기에 적합하지 않을 수 있습니다. 

 

vi editor

vi editor는 보통 리눅스를 처음 배울때 많이 사용합니다.

(적어도 제가 처음 리눅스를 배울때는 vi로 배웠어요,,)

vim editor은 vi 에디터와 호환됨과 동시에 추가적인 요소가 들어간 업그레이드 버전이라고 생각하면 됩니다.

vi 에디터를 이제는 많이 사용하지 않을 수 있겠지만

혹시나 vim에디터가 호환되지 않는 리눅스  구 버전을 사용해야 하는 경우에는 vi 에디터를 통한

작업이 필수적일 수도 있으니 사용법에 대해서는 간단한 정도는 알아두는 게 좋습니다.

 

사용법이 윈도우 환경의 편집기와는 달라 익숙지 않을 수 있지만 막상 알고 나면 별거 없습니다.

nano editor

nano editor는 주로 유닉스 계열에서 사용되는 편집기입니다.

vi에디터와 비교하기는 좀 그렇지만 제 기준에 가독성이나 편의성적인 측면에서 더 좋다고 느껴졌습니다.

에디터의 사용법은 본질적으로 다를게 거의 없기 때문에 사용법에 대해 간략히 숙지하고 있으면 좋습니다.

 


Service 명령어 | status, start

service apache2 status
#service 상태 확인
service apache2 start
#apache2 service 시작
service --status all
#모든 서비스의 상태를 보여준다

꽤 많이 쓰이는 service 명령어 입니다.

다양한 데몬과 서비스(주로 네트워크)들의 상태를 점검할 수 있으며(status)

start/restart 명령어를 통해 실행/재실행 명령을 내릴 수도 있습니다.

 


netcat 사용법

netcat이란?

컴퓨터 네트워크의 TCP/UDP 연결을 읽고 쓰는 데 사용되는 유틸리티

주로 원격/로컬을 통해 파일을 업로드/다운로드하는데 많이 사용합니다.

칼리 리눅스는 물론 대부분의 리눅스에 내장되어 있지만 

혹시나 내장되어 있지 않다면 apt-get/yum/rpm 등 설치 유틸리티를 통해 설치해 사용하면 됩니다.

 

왼쪽이 클라이언트 -lvp옵션으로 구동되는 오른쪽이 서버

server@nc -lvp 4444
(lp->listening port)
client@nc 127.0.0.1 4444

port number은(는) 서버와 클라이언트가 동일하게 입력해주어야 접속이 가능합니다.

해당 nc는 동일 네트워크(로컬 호스트)에서 진행되었으므로

루프백 주소인 (127.0.0.1)을 입력해줍니다.

 

그렇게 연결된 서버와 클라이언트 간에는 message를 통한 간단한 소켓 통신도 가능합니다.


netcat으로 파일 주고받기

passwdhackedfile 이 생성되었다

 

server@ nc -lvp 4444 > passwd
client@ nc -q 127.0.0.1 4444 < /etc/passwd

client가 server로부터 /etc/passwd(사용자 계정이 들어있는 파일)을 받습니다.

-q 옵션은 행동이 끝나면 종료하는 옵션입니다.

300x250

댓글