Linux 명령어 2
file [option] [file name]
- 파일의 종류와 파일 정보 출력
- option - -b : 지정한 파일명은 출력하지 않고 파일의 유형만 출력 
- -z : 압축된 파일 내용을 출력 
 
strings [option] [file name]
- 오브젝트 또는 이진 파일에서 인쇄 가능한 문자열 출력(ASCII 문자를 출력)
- option - -a : 전체 파일 검색 
- -f : 각 문자열 이전에 파일명 출력 
- -min-len (-n min-len)- 최소 문자열 길이 지정, 기본 값은 4 , 즉 4줄 이상의 문자열부터 출력하는거임.
 
 
xxd [option] [file name]
- 리눅스 shell 상에서 binary파일의 hexdump를 보여주는 명령어
- option - -b : dump가 2진수로 출력 
- -c [개수] : 행 당 출력되는 열 개수 설정 - ex) 4byte 씩 100의 길이만큼 출력 ==> xxd –g 4 –l 100 [filename]
 
- ex) 4byte 씩 100의 길이만큼 출력 ==> 
- -g [개수] : 출력시 group으로 묶이는 byte의 개수 설정 - ex) 8열로 마지막 80byte만 출력 ==> xxd –c 8 –s –80 [filename]
 
- ex) 8열로 마지막 80byte만 출력 ==> 
- -l [길이] : 설정된 길이 byte만큼 출력 
- -p : 주소나 ASCII 없이 hexdump 내용만 출력 
- -u : hex를 소문자 대신 대문자로 출력 
- -s [+][-] 위치 : 설정된 위치에서부터 hexdump함. - +위치는 파일의 시작에서부터, -위치는 파일의 끝에서 부터임.
 
- -i : C언어에서 사용할 수 있는 형식으로 출력 
- -r : 반대로 hexdump를 binary파일로 바꾸어 출력 
 
base64 [option] [file name]
- 실행파일이나 zip파일 등을 ASCII 영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식, 문자열을 base64로 인코드 디코드 해줌 
- option : - -d : 디코드 시켜주고 출력, 이 옵션이 없으면 그냥 인코드 시켜주고 출력 
- -i : 디코딩 할 때, 알파벳 아닌 문자 무시하고 출력 
 
tr [option] string1 [string2]
- 특정 문자를 삭제 혹은 변환한다.
- ex) cat data.txt | tr ‘a-z’ ‘A-Z’- data.txt를 출력할 때 소문자를 대문자로 변경
 
- -d : 문자열1에서 지정한 문자를 삭제 후 출력 - ex) cat data.txt | tr –d ‘0-9’: data.txt를 출력할 때 숫자 삭제
 
- -s : 문자열2에서 반복되는 문자 삭제 - -s옵션으로 반복되는 문자열 없을 때 원하는 문자로 대체 가능- ex) data.txt에서 공백이 하나밖에 없는 상황(반복 안되는 상황) 
- ==> - cat data.txt | tr –s ‘ ’ ‘@’: data.txt.를 출력할 때 공백을 @로 대체
 
 
bzip2 [option] [file name]
- 확장자 .bz2 
- -c : 압축되거나 압축을 푼 파일을 표준출력한다. 
- -z : 파일을 압축 , 압축 시 file name.bz2 파일 생성됨. 
- -d : 압축해제 
- bzcat : 압축 파일 내용 보기 명령어. (옵션아님)
gzip [option] [file name]
- 확장자 : .gz 
- -d : 압축 해제 
- -r : 개별적으로 압축 
- -rd : 개별적으로 압축 해제 
tar [option] [file name1] [file name2]
- 여러 파일을 묶거나 해제함 
- 파일명1은 결과 파일명, 파일명2는 압축 또는 묶음 파일 
- 사실 압축프로그램이 아니라 백업용 프로그램임, 용량이 줄어들지 않기 때문임. 
- options : - -cf archive.tar foo bar : foo와 bar 파일에서 아카이브 파일 생성 
- -tvf archive.tar # 아카이브 파일에 있는 내용 모두 출력 
- –xf archive.tar # 아카이브 파일 해제 
- -cvf [합칠파일] [합칠파일들] : ‘합칠파일‘들을 ’합칠파일‘에다가 합쳐라. 
- -xvf 해제할 파일 : 해제하기 
- -c : 새로운 파일을 만드는 옵션 
- -x (extract) : 압축을 해제 
- -v (view) : 압축이 되거나 풀리는 과정을 출력 
- -f (file) : 파일로서 백업을 하겠다는 옵션 
 
ssh [option] [IP]
- usage - ssh <host address> <option>
- ssh <name>@<host address>-> 사용자 ID 추가
 
- options : - -1 : ssh를 프로토콜 버전 1로 시도 
- -2 : ssh를 프로토콜 버전 2로 시도 
- -4 : IPv4 주소만 사용 
- -6 : IPv6 주소만 사용 
- -F configfile : 사용자 설정 파일(configfile)을 지정한다. 
- -I smartcard_device : 사용자 개인 RSA 키를 저장할 디바이스(smartcard_device)를 지정한다. 
- -i identity_file : RSA 나 DSA 인증 파일(indentity_file)을 지정한다. - ex) - ssh –i sshkey.private bandit14@localhost
- -l [login_name] [IP] == - name@IP: 서버에 로그인할 사용자(login_name)를 지정한다.
- -p port : 서버에 접속할 포트를 지정한다. 
- -q : 메시지를 출력하지 않는다. 
- -V : 버전 정보를 출력한다. 
- -v : 상세한 정보를 출력한다. 디버깅에 유용하다. 
- -t : 터미널 할당을 강제한다. 
 
원격에서 ssh를 이용한 명령어 실행 방법은 뒤에다 “명령어” 해주면 됨.
telnet [option] [host [port]]
- host : 접속할 호스트로 인터넷 주소형식으로 사용 
- port : 접속에 사용할 호스트의 포트를 지정, 초기값은 23번 사용 
- -l 사용자 ID : 텔넷서버 시스템에 접속할 사용자 ID을 지정한다. 
- -a : 현재 사용자를 ID로 사용하여 접속한다. 
s_client
- openssl 명령으로 운영중인 웹서버의 SSL인증서 정보를 살펴볼 수 있다
- Usage - openssl s_client –connect [host]:[port] [option]
- option : - -connect host:port : 접속할 호스트와 포트, 기본값은 localhost:4433 
- -ssl2,ssl3,tls1,dtls1 : 설정한 프로토콜만 통신 
- -msg : 프로토콜 메시지 출력 
- -cert [file] : client public key 서버인증서 
- -key [file] : client private key 개인키 사용 기본 perm 
- -pass arg : private key를 위한 password을 전달 
 
nmap
- Network exploration tool and security / port scanner
- Usage - nmap [scan type] [option] [host]
- options : - -v : 더 자세한 정보 출력
- -p : 포트 번호 입력 ex) -p31000-32000 : 31000~32000 포트 번호 탐색
 
옵션에 따라 스캔된 호스트의 추가 정보를 출력하는데 그 정보 중 핵심은 ‘interesting ports table’입니다.
테이블은 스캔된 포트번호, 프로토콜, 서비스이름, 상태(state)를 출력합니다.
state에는 open, filtered, closed, unfiltered가 있습니다.
| 스캔 결과 출력 시 하나의 상태가 아닌 조합된 값(open | filtered, closed | filtered)을 출력할 수도 있습니다. | 
- open: 스캔된 포트가 listen 상태임을 나타냄 
- filtered: 방화벽이나 필터에 막혀 해당 포트의 open, close 여부를 알 수 없을 때 
- closed: 포트스캔을 한 시점에는 listen 상태가 아님을 나타냄 
- unfiltered: 스캔에 응답은 하지만 해당 포트의 open, close 여부는 알 수 없을 때 
nmap 더 자세히 : ind2x.github.io/posts/nmap/
 
NSE : http-backup-finder
NSE : Nmap Script Engine
1
2
3
4
5
6
7
8
9
10
nmap -p<port> --script=http-backup-finder --script-args http-backup-finder.url=url host
PORT   STATE SERVICE REASON
80/tcp open  http    syn-ack
| http-backup-finder:
| Spidering limited to: maxdepth=3; maxpagecount=20; withindomain=example.com
|   http://example.com/index.bak
|   http://example.com/login.php~
|   http://example.com/index.php~
|_  http://example.com/help.bak
nc [option] [hostname] [port]
- 네트워크 연결상태를 읽거나 쓸 때 사용됨. 
- TCP, UDP 프로토콜을 사용하는 네트워크 연결에서 데이터를 읽고 쓰는 명령어. 
- option - -n : 호스트 네임과 포트를 숫자로만 입력받는다. 
- -v : 더 많은 정보를 얻을 수 있다. 
- -u : TCP 연결대신 UDP 연결이 이루어 진다. 
- -p : local-port를 지정한다. 주로 –l와 같이 사용. 
- -l : listen 모드로 nc를 띄우게 된다. nc를 서버로 이용 시 사용되므로 대상 호스트는 입력하지 않음. 
- -r :여러개의 포트를 지정했을 때 스캐닝 순서를 랜덤하게 한다. 
- -z : 연결을 이루기위한 최소한의 데이터 외에는 보내지 않게 하는 옵션 
 
ltrace [option …] [command [arg …]]
- Trace library calls of a given program. 
- option - o, –output=FILENAME write the trace output to file with given name 
- u USERNAME : run command with the userid, groupid of username. 
- -s STRSIZE: specify the maximum string size to print.
 
- Next
- Linux Commands 3