侵入テストDC-9 |一度vulnhubを忘れないでください

DC-9 vulnhub


  • 0X01主なポイント
    の基本的な使用1.Sqlmap
    2.LFI使用
    ノック3.Port Knocking-サービスポート
    4.hydraの基本的な使用を- SSHブラスト
    列挙5.sudo権を

  • 0X02事前スニッフィングとポート検出
    ARP・スキャン取得目標の下でカリを使用してドローンIP
    ここに画像を挿入説明
    GETドローン172.20.10.10 IP、 nmapのプローブは、オープンポートサービスをドローン、
    ここに画像を挿入説明
    ドローンは80と22のポートを開け、ポート80はHTTPで、22個のポートSSHは提供して、最初の試みのSSH接続を、あなたが直接、弱いパスワードを使用してログインできるかどうか、それは、非常に奇妙であるディスプレイを接続することができないことが判明しSSHポートを変更しなかった、ここで最初の疑問。80個のサービスポートを見てください。

    表示ページのスタッフは、しかし、manage.phpあなたは私たちが、管理者アカウントのパスワードを取得することを確認している各ページを実行する場合は、ログインすることができますけば、私たちは、ことがわかったresults.php深刻なPOSTタイプのSQLインジェクションがあります。

ここに画像を挿入説明
ここに画像を挿入説明
--is-dbaそれがあるが、,但是我们可以常规进行跑表,跑字段,得出如下账户和密码,其中admin账户密码hash值用Sqlmap自带的字典能够解密出来,其他账户存储以明文形式。
ここに画像を挿入説明
ここに画像を挿入説明
成功以admin账户进入mange.php页面后,并没有任何其他的区别,只是可以增加能Add Record,并没有任何实质功能,但是在主页面发现:
ここに画像を挿入説明
页面底下发现file doesn't exist,这里很蹊跷,想到是不是存在 LFI ,如何判断?构造../../../../../etc/passwd,至于传入的名称,这里Burpsuite可以进行fuzz常用LFI名称即可,发现确实存在LFI漏洞,可以读取/etc/passwd,要是能还能读取/etc/shadow就好了,但是发现读取不出。
ここに画像を挿入説明
继续进行fuzz,其实可以读出靶机很多本地文件:
ここに画像を挿入説明
但是最关键的文件在本地文件并不常见,那就是/etc/knockd.conf文件,这个文件是配置好端口敲门服务后产生的,关于端口敲门,有如下说明:

如果你有一台公众可访问的服务器,黑客可以轻松扫描其IP地址,查找服务器上的开放端口(尤其是用于SSH的端口22)。将服务器隐藏起来、不让黑客看见的一种方法是使用knockd。knockd是一种端口试探服务器工具。它侦听以太网或其他可用接口上的所有流量,等待特殊序列的端口命中(port-hit)。telnet或Putty等客户软件通过向服务器上的端口发送TCP或数据包来启动端口命中。

端口敲门服务,即:knockd服务。该服务通过动态的添加iptables规则来隐藏系统开启的服务,使用自定义的一系列序列号来“敲门”,使系统开启需要访问的服务端口,才能对外访问。不使用时,再使用自定义的序列号来“关门”,将端口关闭,不对外监听。进一步提升了服务和系统的安全性。

换句话说,如果知道自定义的端口,逐个进行敲门,这样我们就能够开启SSH端口,从而进行连接,所以利用LFI来查看knock.conf文件配置,得到自定义端口。
ここに画像を挿入説明
这样得知依次需要打开的端口分别为:7469、8475、9842,knock打开端口需要nmap,从攻击机中打开端口:
ここに画像を挿入説明
也可以使用

nmap -p 7469 172.20.10.10	
nmap -p 8475 172.20.20.10
nmap -p 9842 172.20.20.10

成功打开敲门后使用nmap查看22端口是否打开,发现已经打开。
ここに画像を挿入説明
可以使用SSH进行连接了,这里不知道用户名和密码,但是可以根据Sqlmap跑出来的用户和密码进行爆破,可能存在此用户,这里使用Hydra爆破神器进行爆破

Hydra 使用方法

使用 “-l” 选项指定单个登录名,使用 “-p” 选项指定单个密码。使用 “-L” 选项指定一个文件来指定多个登录名,使用 “-P” 选项指定一个文件来指定多个密码,“-t”表示使用线程.

hydra -l admin -p password ftp://localhost/
hydra -L default_logins.txt -p test ftp://localhost/
hydra -l admin -P common_passwords.txt ftp://localhost/
hydra -L logins.txt -P passwords.txt ftp://localhost/

Hydra默认对iPv4攻击,但是也支持iPv6 ,-6则表示对iPv6攻击,爆破可得:
ここに画像を挿入説明
得到三个用户,登录SSH,遍历目录后(注意应该使用ls -la查看隐藏文件或目录),发现只有janitor用户存在隐藏可读文件,打开后是其他密码。


根据给的描述,很可能是其他用户的密码,我们在Hydra进行爆破,果然得到fredf用户,登录!
ここに画像を挿入説明
在之前的所用用户中,都进行了sudo权限的枚举,但是没有权限,而在fredf账户中,发现可以NO Passwd可以执行root权限的文件,进行查看发现是一个python脚本:
ここに画像を挿入説明
拥有root执行权限,当Python传入的参数是三个的时候,可以把第二个的读出,并写入到第三个的尾端,而第一个参数就是test.py,如何构造好这两个参数就是重点。
由于我们需要root账户,那我们可以构造一个有root权限的账户放入/etc/passwd中进行存储,利用这个账户登录后,自然得到root权限。这里要熟悉/etc/passwd存储账户的规则,利用OpenSSH可以先本地创建账户,得到加密的密文后再导入到靶机的/etc/passwd即可。

先将存储值放入fredf用户的/tmp目录下
保存为echo ‘pavan: 1 1 pavan$qv9M3fBmtDPrOTBZflNl81:0:0::/root:/bin/bash’ >> /tmp/raj
然后利用 test.py 将raj写入到/etc/passwd下存储,此时应该使用sudo命令。
ここに画像を挿入説明
成功得到root权限,这是我们可以在root用户下的/etc/passwd找到pavan用户的相关存储信息了,最后得到flag!
ここに画像を挿入説明

公開された17元の記事 ウォンの賞賛3 ビュー1078

おすすめ

転載: blog.csdn.net/crisprx/article/details/103985898