边界神器—SSH隧道,代理神器—proxychains
SSH在渗透时是一个非常好用的东西,sshd,pam后门就不说了,谈下在拿到一个ssh帐号时怎么代理进取继续做内网渗透。
SSH作为unix/linux系自带的终端管理工具在数据传输时是非常稳定的,交互shell,动态端口转发(socks代理),正向端口转发,反向端口转发等功能非常完善。
边界神器—SSH隧道
首先介绍下SSH一些参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
SSH命令参数: -f 后台运行,不打开终端 -R 反向,让对方也可以连接过来 -l 登录用户名,loginname -c 指定加密方式:blowfish|3des -v 显示详细信息,verbose -V 显示版本,version -a 关闭代理认证 -A 启用代理认证 -C 启用Gzip压缩 -e 设定跳脱字节 -g 允许远程主机连接本地指派的port -i 选择所读取的RSA 认证识别的档案 -n 重导 stdin 到 /dev/null -N 不执行远程命令 -p 指定ssh服务端口 -q 安静模式 -L local_port:host:port 指派本地的 port 到相对远程host地址的port -R remote_port:host:port 指派远程的 port 到相对本地host地址的port -2 强制 ssh 去使用协议版本2 -4 强制 ssh 去使用 IPv4 地址 -6 强制 ssh 去使用 IPv6 地址 |
1.动态端口转发(socks代理)
格式说明
1 2 3 4 |
ssh -D [bind_address:]port 参数说明 bind_address 指定绑定的IP地址,默认情况会绑定在本地的回环地址(即127.0.0.1),如果空值或者为*会绑定本地所有的IP地址,如果希望绑定的端口仅供本机使用,可以指定为localhost。 port 指定本地绑定的端口 |
一般这么用
1 2 3 4 5 6 7 8 9 10 |
A主机执行 ssh -NfD 0.0.0.0:ASocksPort BUser@BIP -p 22 说明: 通过对方主机BIP SSH 做成Socks5代理,并且映射到A主机上一个端口ASOCKSPort 其实应该比较常用的是 ssh -NfD 0.0.0.0:ASocksPort BUser@AIP -p ATunnelPort 将内网转发出来的ATunnelPort 做成Socks5代理,并且映射到公网主机上一个端口ASOCKSPort |
2.正向端口转发
格式说明
1 2 3 4 5 6 7 |
ssh -L [bind_address:]port:host:hostport 参数说明 bind_address 指定绑定的IP地址,默认情况会绑定在本地的回环地址(即127.0.0.1),如果空值或者为*会绑定本地所有的IP地址,如果希望绑定的端口仅供本机使用,可以指定为localhost。 port 指定本地绑定的端口 host 指定数据包转发目标地址的IP,如果目标主机和ssh server是同一台主机时该参数指定为localhost host_port 指定数据包转发目标端口 |
一般这么用
1 2 |
ssh -NfL APort:CIP:CPort BUser@BIp 将C主机端口通过B主机转发到A主机 |
3.反向端口转发
1 2 3 4 5 6 |
ssh -R [bind_address:]port:host:hostport 参数说明 bind_address 指定绑定的IP地址,默认情况会绑定在本地的回环地址(即127.0.0.1),如果空值或者为*会绑定本地所有的IP地址,如果希望绑定的端口仅供本机使用,可以指定为localhost。 port 指定本地绑定的端口 host 指定数据包转发源地址的IP,如果源主机和ssh server是同一台主机时该参数指定为localhost host_port 指定数据包转发源端口 |
一般这么用
1 2 3 |
B主机执行 ssh -NfR APort:BIp:BPort AUser@AIp 相当于lcx的的反弹端口功能 |
OK,上面几个命令在渗透中相互配合使用可以达到非常完美的边界效果!
如果执行时抱错,察看下/etc/ssh/sshd_config里转发功能是否开启
1 |
AllowTcpForwarding no |
代理神器—proxychains
下面讲下配置Metasploit进内网
一般都是使用proxychains将MSF代理进内网,如果你使用的BT/Kali 就不用说了,系统自带这个工具,其他系统只能自己安装了,在这建议安装3.1版本,至今最新版本为4.2,根本不如老版本好
下载地址:http://sourceforge.net/projects/proxychains/
1 2 3 4 |
#yum install gcc curl-devel openssl-devel #tar –zxvf proxychains-3.0.tar.gz #cd proxychains-3.0 #./configure && make && make install |
安装完修改配置文件proxychains.conf
一般在/etc/proxychains.conf
配置说明列表:
属性 | 说明 | 配置 |
---|---|---|
dynamic_chain | 按照列表中出现的代理服务器的先后顺序组成一条链,如果有代理服务器失效,则自动将其排除,但至少要有一个是有效的. | 默认#未开启 |
strict_chain | 按照后面列表中出现的代理服务器的先后顺序组成一条链,要求所有的代理服务器都是有效的. | 默认开启 |
random_chain | 列表中的任何一个代理服务器都可能被选择使用,这种方式很适合网络扫描操作(参数chain_len只对random_chain有效). | 默认#未开启 |
proxy_dns | 代理dns请求 | 默认开启 |
ProxyList | 添加代理列表,如http、socks4/5、auth user/pass | 默认 |
代理MSF时主要问题在于对localhost的DNS解析,默认DNS请求是走代理的,网上给出的方案是在配置文件中增加
1 |
localnet 127.0.0.1 000 255.255.255.255 |
排除localhost,可是我没有成功总是显示
1 2 |
|S-chain|-<>-127.0.0.1:8050-<><>-127.0.0.1:5432-<--timeout |S-chain|-<>-127.0.0.1:8050-<><>-127.0.0.1:5432-<--timeout |
所以我的方案是直接把proxy_dns注释掉,反正在代理MSF时一般都直接用IP访问
在配置文件末尾添加如
1 |
socks5 127.0.0.1 5432 |
保存
终端输入
1 |
proxychains msfconsole |
就可以让MSF在内网里愉快地玩耍了 :)
如有错误,请批评指正!
暂无评论