banner
lca

lca

真正的不自由,是在自己的心中设下牢笼。

情報の収集方法

time-2021-04-21-1%200458515254fc4b10abee94bede8996af/123.jpg

いくつかの一般的な情報収集スクリプトを整理する

nmap と mascan を組み合わせて生存しているホストを識別する#

nmap は生存を識別するために使用され、その後出力を masscan に渡し、masscan は生存している IP のポートをスキャンします。スキャンが完了したら、スキャン結果をフィルタリングして ipの形式で出力し、その後 httpx を使用して生存をさらに識別します。

#生存をスキャンするためのnmap
nmap -sn 172.29.130.0/24 > nmap-ip.txt
#生存しているIPを取得する
cat nmap-ip.txt | grep "repo" | cut -d " " -f6 | cut -d "(" -f2 | cut -d ")" -f1 > ip.txt
#ポートをスキャンするためのmasscan
sudo masscan -iL ip.txt --rate 10000 -p1-65535 --only-open
#masscanのスキャン結果からIPを取得する
cat masscan-ip.txt | grep "tcp" | cut -d " " -f 4,6 | awk '{print $2,$1}'| tr " " ":" | cut -d "/" -f1 | cut -d ":" -f1 | sort -t "." -k4n | uniq > ip.txt
#masscanのスキャン結果からポートを取得する
cat masscan-ip.txt | grep "tcp" | cut -d " " -f 4,6 | awk '{print $2,$1}'| tr " " ":" | cut -d "/" -f1 | cut -d ":" -f2 | sort -n | uniq > port.txt
#IPとポートの両方が必要な場合
cat m.txt | grep "tcp" | cut -d " " -f 4,6 | awk '{print $2,$1}'| tr " " ":" | cut -d "/" -f1 | cut -d ":" -f1,2 | sort -t "." -k4n | uniq

ip形式(192.168.1.1:8080)に整理された後、他のツールを使用してシステムの生存をスキャンし、httpx を使用してシステムの生存を確認できます。

このような形式で、完全な URL を取得できます。

image.png

Windows での一括生存ホストの識別#

# Windowsでの一括ping Cセグメント、生存を識別
for /L %i IN (1,1,254) DO ping -w 2 -n 1 192.168.1.%i

IP 範囲の生成#

# 192.168.1.1-192.168.1.254
# 使用法: 1 254 192.168.1.
for i in {$1..$2};do echo "$3"$i;done

テキストに一括で特定の内容を追加する#

各行に 1 つの IP があるテキストがある場合、各行の前に http プロトコルを追加してhttp://ip に変更する必要があります。各行の前にコンテンツを一括で追加するには、sed コマンドを使用します。置換文字は `$` と `^` です。`$` は各行の末尾を表し、`^` は各行の先頭を表します。

# bashで、ファイルの各行の末尾に特定のコンテンツを追加する。ここではIPです。例:192.168.1.x、変換後は192.168.1.0/24
cat ip.txt | sed 's/$/.0\/24/'
 
# bashで、ファイルの各行の先頭に特定のコンテンツを追加する。ここではIPです。例:192.168.1.5、変換後はhttp://192.168.1.5
cat ip.txt | sed 's/^/http:\/\//'

内部ネットワークセグメントのすべてのゲートウェイ IP を取得する#

内部ネットワークセグメントのすべてのゲートウェイ IP を取得し、C セグメントが生存しているかどうかを判断するために使用します。

#Aセグメント
for i in {1..255};do for b in {1..255};do echo "10".$i.$b."1";done;done
 
#Bセグメント
for i in {16..31};do for b in {1..255};do echo "172".$i.$b."1";done;done
 
#Cセグメント
for i in {1.255};do echo "192.168".$i."1";done

ファイルから IP を抽出する#

grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}" file.txt

テキストから URL を抽出する#

grep -E -o "https?://[a-zA-Z0-9./?=_-]*" file.txt

#jsファイルからURLを抽出する
curl https://abc.com/file.js | grep -Eo "(http|https)://[a-zA-Z0-9/?=_=]*"*

APK から URL を抽出する#

参考:GitHub - ndelphit/apkurlgrep: Extract endpoints from APK files

apkurlgrep -a path/to/file.apk

サブドメインの収集#

curl -s "https://rapiddns.io/subdomain/jxuspt.com?full=1#result" | grep "<td><a" | cut -d "/" -f3 | cut -d '"' -f1 | xargs -l2 | sed 's/#result//g' curl -s "https://rapiddns.io/subdomain/$1?full=1" | grep '<td>[a-z]' | cut -d "<" -f2 | cut -d ">" -f2 | grep -v http | sort

SSH キーの検索#

for key in ~/.ssh/*; do ssh-keygen -l -f "${key}"; done | uniq

Wi-Fi パスワードの表示#

netsh wlan show profile name ="WIFI_5G" 
netsh wlan show profile name ="WIFI_5G" key=clear

フィンガープリントの識別スクリプト#

前述の内容に基づいて、いくつかの bash スクリプトを作成して、ワンクリックでクエリを実行できるようにすることができます。以下のスクリプトは、masscan スキャンを実行し、次に httpx で生存を検出し、kscan と observer_ward でシステムのフィンガープリントをスキャンすることを目的としています。

.bash_profile ファイルと組み合わせて、mscan 11.11.11.11 と入力するだけでスキャンを開始できます。

image.png

#!/bin/bash

# masscanポートスキャン
#
#
echo -e "\033[31m masscanポートスキャンを開始します... \033[0m"
sudo masscan -p1-65535 $1 --rate 1000 > ./mport.txt
echo -e "\033[31m httpxによる生存検出を開始します... \033[0m"
cat mport.txt | grep "tcp" | cut -d " " -f 4,6 | awk '{print $2,$1}'| tr " " ":" | cut -d "/" -f1 | cut -d ":" -f1,2  | httpx > mresult.txt
rm -rf ./mport.txt

echo -e "\033[31m kscanスキャン中... \033[0m"
if [ -f "mresult.txt" ]; then
	kscan -t mresult.txt -o kscanresult.txt
fi

echo -e "\033[31m フィンガープリントの識別中... \033[0m"
if [ -f "kscanresult.txt" ]; then
	cat kscanresult.txt | grep -E "http:|https" | awk 'BEGIN {FS="  " } ; { print $1 }' | observer_ward --stdin
fi
rm -rf kscanresult.txt

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。