一、拿到主机后使用Kali确定主机IP,并进行端口扫描
1、使用 nmap -sP ’172.26.0.0/24‘ 进行网段扫描
排除默认IP和kali自身IP后可确认靶机IP为172.26.0.137
2、拿到IP后使用nmap进行扫描
扫描发现三个端口处于开放状态,分别为22(ssh)、80(http)、1898(http),以及系统版本为ubuntu 2.7,1898端口下的Apache版本为2.4.7,根据得到的信息可以尝试ssh弱口令爆破,web目录扫描等操作
二、Web页面信息收集
1、查看1898端口下的web页面,寻找有用的信息
看到首页显示Node2可能有信息
2、进入node2页面,寻找有用信息
看到显示了一个音频文件和图片,里面可能有我们想要的信息
3、尝试在网站根目录直接访问音频文件
下载后发现语音内容为:user tiago,则用户名为:tiago
三、使用工具对网站进行爆破扫描
1、使用dirb命令进行网站目录扫描
扫描发现网站存在robots.txt,访问进行查看
浏览发现CHANGELOG.txt可直接访问
访问后可看到Drupal版本为7.54,后续可通过搜索此版本漏洞实现攻击
2、使用cewl命令爬取网站关键信息,创建密码字典
3、使用hydra命令配合生成的密码字典,进行ssh爆破
爆破成功,使用账号密码登录ssh
登录成功发现并没有显示flag,推断是权限不足
4、使用msf获取shell
先查询durpal在MSF中存在哪些漏洞,我们需要使用的是2018年的漏洞,use选择1提取CVE-2018-7600漏洞,show option查询渗透信息,需要填写Rhosts攻击IP和Rport攻击端口。
成功得到系统权限,但和ssh账户一样都是低权限用户,无法得到flag文件
四、使用脏牛提权
1、在Kali中通过searchsploit工具找到提权脚本
2、使用 locate 命令定位脚本在系统中的具体位置
3、使用 cp 命令将脚本文件拷贝到/tmp目录下
4、开启本地pthon服务,把脚本文件发送到靶机上。
5、在靶机中下载脚本文件
6、将下载的40847.cpp文件编译成40847可执行文件
命令:g++ -Wall -pedantic -O2 -std=c++11 -pthread -o 40847 40847.cpp -lutil
1. -Wall 一般使用该选项,允许发出GCC能够提供的所有有用的警告
2. -pedantic 允许发出ANSI/ISO C标准所列出的所有警告
3. -O2编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高
4. -std=c++11就是用按C++2011标准来编译的
5. -pthread 在Linux中要用到多线程时,需要链接pthread库
6. -o dcow gcc生成的目标文件,名字为dcow
执行该文件,可以得到root用户对应的密码!dirtyCowFun