靶机渗透测试实战(二)——DC-2

实验环境

  • 靶机(DC-2),IP地址未知;
  • 测试机kali,IP地址:192.168.85.131

实验步骤

1、确定目标主机、详细信息
1.1> 主机扫描

命令:arp-scan -l ——> 扫描局域网所有设备(所有设备IP、MAC地址、制造商信息)

  • arp-scan命令: 是一个用来进行系统发现的ARP命令行扫描工具(可以发现本地网络中的隐藏设备)。它可以构造并发送ARP请求到指定的IP地址,并且显示返回的任何响应。
  • arp-scan 可以显示本地网络中的所有连接设备,即使这些设备有防火墙。设备可以屏蔽ping,但是并不能屏蔽ARP数据包。

在这里插入图片描述

1.2> 端口扫描(nmap扫描)

命令1:nmap -sS -Pn -A -p- -n 192.168.85.137
命令2:nmap -sV -p- 192.168.85.137

在这里插入图片描述

通过nmap扫描我们发现,这个网站的管理员还是有点安全意识的,将ssh服务的端口改成了7744(ssh默认端口号是:22)。
在这里插入图片描述

【思路】
          针对扫描出的开放服务(应用程序)的处理思路:
                 1、针对版本搜索相关漏洞;
                 2、针对协议本身;
2、通过测试机kali访问目标机DC-2的web服务

(通常是解析造成的)在hosts文件添加对应的ip和域名;

2.1> 测试机kali访问DC-2的web服务;

在这里插入图片描述
可以发现直接连接不上目标机的Web网络,判断是本地不解析域名。

2.2> 在hosts文件添加对应的ip和域名

在这里插入图片描述

3、访问http://dc-2/index.php/flag/ ,确定CMS是wordpress;

WordPress是一种使用PHP语言和MySQL数据库开发的博客平台,get CMS

【思路】
		根据CMS做进一步操作:
				1、成熟的CMS一般自身不会有漏洞,可以关注其插件的问题;
				2、尝试得知CMS版本,做进一步的漏洞搜索;
				3、搜索相关CMS的测试工具。

在这里插入图片描述

4、点开页面的flag,翻译,提示如下;

在这里插入图片描述

5、搜索cewl,发现是一个kali自带的密码生成工具;

Cewl介绍:
.
cewl是一个ruby应用,爬行指定url的指定深度。也可以跟一个外部链接,结果会返回一个单词列表,这个列表可以扔到John the ripper工具里进行密码破解。cewl还有一个相关的命令行工具应用FAB,它使用相同的元数据提取技术从已下载的列表中创建作者/创建者列表。

在这里插入图片描述

6、查看使用方法,使用cewl生成密码;

参考微博:https://www.4hou.com/tools/14693.html

命令:cewl -w dc2_passwords.txt http://dc-2

  • -w, –write:将输出结果写入到文件。

在这里插入图片描述

7、确定是wordpress,使用wpscan工具进行扫描用户

WPScan是Kali Linux默认自带的一款漏洞扫描工具,它采用Ruby编写,能够扫描WordPress网站中的多种安全漏洞,其中包括主题漏洞、插件漏洞和WordPress本身的漏洞。最新版本WPScan的数据库中包含超过18000种插件漏洞和2600种主题漏洞,并且支持最新版本的WordPress。值得注意的是,它不仅能够扫描类似robots.txt这样的敏感文件,而且还能够检测当前已启用的插件和其他功能。

参考链接:https://www.cnblogs.com/WangYiqiang/p/9490869.html

  • 命令1:root@kali:~# wpscan --url http://dc-2 --enumerate u
    #暴力枚举用户名(这个是资料里面的,我的卡里里面跑不了这个的!!!)

  • 命令1:wpscan --ignore-main-redirect --url 192.168.85.137 --enumerate u --force
    #这是自己花两个星期终于找到解决问题的办法了

参考文献:https://www.jianshu.com/p/a0143cc79215

在这里插入图片描述在这里插入图片描述

扫描出三个用户:admin、tom和jerry。将三个用户写入dc-2_user.txt中。

在这里插入图片描述

8、通过已经扫描到的用户名和密码对目标主机(dc-2)进行爆破

hydra是著名黑客组织thc的一款开源的暴力密码破解工具,可以在线破解多种协议密码,并且还支持生成密码字典,有GUI图形和命令行两种非常容易上手。

命令:root@kali:~# hydra -L dc-2_user.txt -P dc2_passwords.txt dc-2 http-form-post '/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log In&testcookie=1:S=Location’

  • -l ——> 表示单个用户名(使用-L表示用户名列表)
  • -P ——> 表示使用以下密码列表
  • http-post-form ——> 表示表单的类型
  • / dvwa / login-php ——> 是登录页面URL
  • username ——> 是输入用户名的表单字段
  • ^ USER ^ ——> 告诉Hydra使用字段中的用户名或列表
  • password是输入密码的表单字段(可以是passwd,pass等)
  • ^ PASS ^ ——> 告诉Hydra使用提供的密码列表

在这里插入图片描述

或者直接使用wpscan进行密码爆破

命令:root@kali:~# wpscan --ignore-main-redirect --url 192.168.85.137 -U dc-2_user.txt -P dc2_passwords.txt --force

在这里插入图片描述
在这里插入图片描述

9、尝试ssh远程登录,最终tom成功登录

我们尝试用tom用户进行登录ssh服务,密码:parturient
用户:jerry,密码:adipiscing
命令:ssh tom@192.168.85.137 -p 7744

在这里插入图片描述

10、输入命令,发现事受限的shell命令,rbash,百度搜索rbash,发现有绕过方法,进行查找,并尝试
10.1> 输入命令,发现事受限的shell命令,为rbash;

在这里插入图片描述出现-rbash: id: command not found
参考https://www.anquanke.com/post/id/173159 里面的绕过
https://fireshellsecurity.team/restricted-linux-shell-escaping-techniques/

  • 有很多不同的限制外壳可供选择。其中一些只是普通的shell,有一些简单的常见限制,实际上并不是可配置的,例如rbash(限制Bash)rzsh和rksh(受限模式下的Korn Shell),这些都非常容易绕过。其他人有一个完整的配置集,可以重新设计以满足管理员的需求,如lshell(Limited Shell)和rssh(Restricted Secure Shell)。
  • 一旦配置可以被管理员收紧,可配置的shell就更难以绕过。在这些shell上绕过技术通常依赖于管理员有点被迫为普通用户提供某些不安全命令的事实。。如果在没有适当安全配置的情况下允许,它们会为攻击者提供升级权限的工具,有时还会向root用户升级。
  • 其他原因是,有时管理员只是Linux系统管理员,而不是真正的安全专业人员,因此从渗透测试人员的角度来看,他们并不真正了解部队的方式,并最终允许太多危险命令。
10.2> 绕过首先的shell;
  • 方法一:

用vi编辑器穿件shell文件
用vi的末行模式下输入 ——> :set shell=/bin/bash
然后应用这个shell ——> : shell

  • 方法二:

或者BASH_CMDS[a]=/bin/sh;a
然后 /bin/bash

在这里插入图片描述

11、使用并添加环境变量

命令1:export PATH=$PATH:/bin/

在这里插入图片描述或者

命令2:export PATH=/usr/sbin:/usr/bin:/sbin:/bin

在这里插入图片描述PATH就是定义/bin:/sbin:/usr/bin等这些路径的变量,其中冒号为目录间的分割符。

可以查看flag3.txt的内容:

在这里插入图片描述

tom@DC-2:~$ export -p
declare -x HOME="/home/tom"
declare -x LANG="en_US.UTF-8"
declare -x LOGNAME="tom"
declare -x MAIL="/var/mail/tom"
declare -x OLDPWD
declare -x PATH="/home/tom/usr/bin"
declare -x PWD="/home/tom"                                #?加入了/bin
declare -x SHELL="/bin/rbash"
declare -x SHLVL="2"
declare -x SSH_CLIENT="192.168.85.130 54586 7744"
declare -x SSH_CONNECTION="192.168.85.130 54586 192.168.85.137 7744"
declare -x SSH_TTY="/dev/pts/0"
declare -x TERM="xterm-256color"
declare -x USER="tom"
declare -x VIM="/usr/share/vim"
declare -x VIMRUNTIME="/usr/share/vim/vim74"
12、切换用户到jerry

在这里插入图片描述

13、切换到jerry,去查看Jerry目录下的文件,发现有个flag4.txt文件,并用过cat命令查看;

在这里插入图片描述

14、提示还不是最终的flag,提示git,查看sudo配置文件,发现git是root不用密码可以运行,搜索git提权在这里插入图片描述
15、进行提权,提权成功;

使用 sudo git -p help 且一页不能显示完,
在最底下面输入 !/bin/bash,
最后完成提权。

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值