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