1. SSH (Secure Shell)
- 개요
- 네트워크 상에서 데이터를 암호화하여 안전한 원격 접속 및 명령 실행을 제공.
- Telnet 및 rsh와 같은 안전하지 않은 프로토콜의 대체.
- 주요 기능:
- 원격 서버 로그인.
- 명령 실행.
- 파일 전송(SCP, SFTP).
- 포트 포워딩 및 터널링.
사용법
ssh [옵션] [사용자@호스트]
주요 옵션:
- p PORT: 특정 포트로 연결.
- i FILE: SSH 키 파일 지정.
- L [LOCAL_PORT:HOST:REMOTE_PORT]: 로컬 포트 포워딩 설정.
- R [REMOTE_PORT:HOST:LOCAL_PORT]: 원격 포트 포워딩 설정.
- N: 명령 실행 없이 포워딩만 수행.
예제:
ssh user@example.com # 기본 22번 포트로 접속.
ssh -p 2222 user@example.com # 2222번 포트로 접속.
ssh -L 8080:localhost:80 user@example.com # 로컬 8080 포트를 원격 80 포트로 터널링.
2. Telnet
- 개요: 원격 서버와 비암호화 연결을 제공하는 네트워크 프로토콜.
- SSH 이전에 사용된 원격 접속 도구.
- 보안이 취약하여 현대에는 주로 테스트 목적으로 사용.
사용법:
telnet [호스트] [포트]
주요 기능:
- TCP 연결 확인.
- 간단한 프로토콜 테스트.
예제:
telnet example.com 80 # HTTP 서버에 접속.
단점:
- 암호화가 없으므로 민감한 데이터 전송에 부적합.
3. Netcat (nc)
- 개요: 다목적 네트워크 도구로, TCP/UDP 연결을 생성하거나 수신.
- 주요 기능:
- 포트 스캔.
- 네트워크 디버깅.
- 파일 전송 및 간단한 서버 역할 수행.
사용법:
nc [옵션] [호스트] [포트]
주요 옵션:
- l: 수신 대기 모드 (서버 역할).
- p PORT: 특정 포트에서 수신.
- v: 자세한 출력.
- z: 포트 스캔 (연결 시도만 수행).
- u: UDP 사용.
예제:
- HTTP 서버 테스트:
- echo -e "GET / HTTP/1.1\\nHost: example.com\\n\\n" | nc example.com 80
- 파일 전송:
- 송신:
- nc -l 1234 < file.txt
- 수신:
- nc [송신자의 IP] 1234 > file.txt
- 포트 스캔:
- nc -zv 192.168.1.1 20-80
4. OpenSSL
- 개요: 암호화 및 보안 통신을 위한 도구. SSL/TLS 연결 테스트와 인증서 관리 가능.
사용법:
openssl [명령어] [옵션]
주요 명령어:
- req: 인증서 요청 생성.
- genrsa: RSA 키 생성.
- x509: 인증서 생성 및 변환.
- enc: 데이터 암호화 및 복호화.
- s_client: SSL/TLS 클라이언트 역할 수행.
예제:
- RSA 키 생성:
- openssl genrsa -out private.key 2048
- CSR(Certificate Signing Request) 생성:
- openssl req -new -key private.key -out request.csr
- 텍스트 형식으로 인증서 확인:
- openssl x509 -in certificate.crt -text -noout
5. OpenSSL s_client
- 개요: SSL/TLS 서버에 연결하여 인증서 및 설정을 확인하는 클라이언트.
- 사용법:
openssl s_client -connect [호스트]:[포트]
주요 옵션:
- starttls PROTOCOL: 특정 프로토콜의 STARTTLS 명령 실행.
- showcerts: 서버 인증서 표시.
- verify DEPTH: 인증서 체인을 검증.
예제:
- HTTPS 서버 인증서 확인:
- openssl s_client -connect example.com:443
- SMTP STARTTLS 테스트:
- openssl s_client -connect smtp.example.com:25 -starttls smtp
6. Nmap (Network Mapper)
- 개요: 네트워크 스캐너로, 네트워크의 포트, 서비스, 운영 체제 등을 확인.
- 사용법:
nmap [옵션] [대상]
주요 옵션:
- sS: SYN 스캔.
- sV: 서비스 버전 탐지.
- O: 운영 체제 탐지.
- p [포트]: 특정 포트 지정.
- A: 추가 정보 (OS 및 서비스 버전) 포함 스캔.
- Pn: 호스트 확인 없이 스캔.
예제:
- 기본 스캔:
- nmap 192.168.1.1
- 특정 포트 스캔:
- nmap -p 22,80,443 example.com
- 운영 체제 및 서비스 탐지:
- nmap -A example.com
7. Netstat
- netstat는 네트워크 통계(Network Statistics)의 약자로, 네트워크 연결, 라우팅 테이블, 인터페이스 통계, 멀티캐스트 멤버십 등을 보여주는 도구다.
- 현재는 netstat가 비활성화되거나 더 이상 유지관리되지 않는 시스템에서 사용되며, ss로 대체된 경우가 많다.
- 하지만 여전히 일부 시스템에서 사용되거나 과거 데이터를 분석하는 데 유용하다.
7.1 주요 기능
- 활성 TCP/UDP 연결 보기
- netstat -tuln
- t: TCP 연결
- u: UDP 연결
- l: Listening 상태의 소켓만 표시
- n: 숫자로 된 IP와 포트를 표시 (DNS 조회 없이)
- 라우팅 테이블 보기
- netstat -r
- 현재 시스템의 라우팅 테이블을 확인할 수 있다.
- 인터페이스 상태
- netstat -i
- 네트워크 인터페이스와 관련된 통계를 확인할 수 있다.
- 네트워크 통계
- netstat -s
- 네트워크 프로토콜(TCP, UDP 등)의 통계 정보를 표시한다.
- 프로세스와 포트 매핑
- netstat -p
- 특정 포트를 사용하는 프로세스 정보를 확인할 수 있다.
8. SS
- ss는 Socket Statistics의 약자로, netstat의 대체 도구로 설계되었다.
- ss는 최신 리눅스 배포판에서 기본적으로 제공되며, netstat보다 더 빠르고 효율적인 방식으로 정보를 제공한다.
8.1 주요 장점
- ss는 네트워크 소켓 정보를 netlink 인터페이스를 통해 직접 수집하므로, netstat보다 더 빠르고 정확한 결과를 제공한다.
- 활성 네트워크 연결 정보를 더욱 세부적으로 필터링하고 분석할 수 있다.
8.2 주요 기능 및 사용법
- 활성 TCP/UDP 연결
- ss -tuln
- t: TCP 연결
- u: UDP 연결
- l: Listening 소켓만 표시
- n: 숫자로 된 IP와 포트를 표시
- 프로세스와 소켓 연결 정보
- ss -tp
- t: TCP 연결
- p: 각 소켓의 프로세스 정보 표시
- 특정 포트로 연결된 세션 보기
- ss -t sport = :80
- 특정 포트(예: 80번 포트)에 대한 연결을 필터링한다.
- 통계 정보
- ss -s
- 전체 네트워크 소켓의 요약 정보를 보여준다.
- 인터페이스별 소켓 정보
- ss -i
- 인터페이스 수준의 네트워크 소켓 정보를 확인한다.
- RAW 소켓 확인
- ss -w
- RAW 소켓 정보를 표시한다.
- 네트워크 연결 세부 정보
- ss -ta state established
- 현재 Established 상태의 TCP 연결만 확인한다.
'Wargame > bandit wargame' 카테고리의 다른 글
Bandit Level 14 → 15 (0) | 2025.01.06 |
---|---|
Bandit Level 13 → 14 (0) | 2025.01.06 |
Bandit Level 12 → 13 (1) | 2025.01.06 |
12 → 13 까지 필요한 명령어 (0) | 2025.01.06 |
Bandit Level 11 → 12 (0) | 2025.01.05 |