Closed2
KRB_AP_ERR_SKEW(Clock skew too great)エラーの回避
Kerberosではチケットの有効期間や再利用防止のため、サーバとクライアントの時刻が±5分以内である必要がある。
このため、攻撃者が impacket などで TGT/TGS を取得しようとした際、DCとの時刻がズレていると Clock skew too great エラーが発生する。
sudo ntpdate -b <IP>
などで無理やりDCとホストの時刻合わせをするのもいいが、HTBの環境では結局すぐに同期がずれて都度時刻合わせをする羽目になるので、faketime
コマンドを使ったwrapperを用意する。
faketime wrapper
事前準備: ntpdate
と faketime
のインストール
$ sudo apt install -y ntpdate faketime
~/.zshrc
に以下を仕込む
# faketime wrapper
ft() {
if [ $# -lt 2 ]; then
echo "Usage: ft <IP> <command> [args...]"
return 1
fi
local ip="$1"
shift
local time="$(ntpdate -q "$ip" | cut -d ' ' -f 1,2)"
if [ -z "$time" ]; then
echo "Failed to get offset from ntpdate"
return 1
fi
faketime "$time" "$@"
}
読み込み
$ source ~/.zshrc
使用方法、使用例
$ ft
Usage: ft <IP> <command> [args...]
$ft <IP> impacket-getTGT '$domain/$user:$pass'
実際に起きている事
$ faketime "$(ntpdate -q ${ip} | cut -d ' ' -f 1,2)" <command> [args...]
$ faketime "$(ntpdate -q ${ip} | cut -d ' ' -f 1,2)" impacket-getTGT '$domain/$user:$pass'
このスクラップは1ヶ月前にクローズされました