mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-11 22:03:10 +00:00
484 lines
18 KiB
Markdown
484 lines
18 KiB
Markdown
<details>
|
||
|
||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||
|
||
- 你在一个**网络安全公司**工作吗?你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||
|
||
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||
|
||
- 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||
|
||
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||
|
||
- **通过向[hacktricks仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud仓库](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||
|
||
</details>
|
||
|
||
|
||
# 基本信息
|
||
|
||
Subversion是当今许多版本控制选项之一。它通常被缩写为SVN。\
|
||
Subversion用于维护项目的当前和历史版本。Subversion是一个开源的集中式版本控制系统。它在Apache下获得许可。它也被称为软件版本和修订控制系统。
|
||
|
||
**默认端口:**3690
|
||
```
|
||
PORT STATE SERVICE
|
||
3690/tcp open svnserve Subversion
|
||
```
|
||
## 横幅抓取
|
||
|
||
Banner Grabbing(横幅抓取)是一种用于获取目标系统信息的技术。在网络服务渗透测试中,横幅抓取是一项重要的任务,它可以帮助我们了解目标系统的版本、操作系统和其他相关信息。
|
||
|
||
横幅是指在与目标系统建立连接时,系统返回的一段包含有关服务和版本信息的文本。通过分析这些横幅信息,我们可以确定目标系统上运行的服务和版本,从而为后续的渗透测试活动做好准备。
|
||
|
||
横幅抓取可以使用多种工具和技术来实现。其中一种常用的方法是使用Telnet或Netcat等工具手动连接到目标系统,并查看返回的横幅信息。另一种方法是使用自动化工具,如Nmap或Bannergrab等,来扫描目标系统并提取横幅信息。
|
||
|
||
在进行横幅抓取时,需要注意以下几点:
|
||
|
||
- 需要选择合适的工具和技术,以确保能够获取准确和完整的横幅信息。
|
||
- 需要对目标系统进行充分的信息收集,以了解目标系统上可能运行的服务和版本。
|
||
- 需要谨慎处理横幅信息,以避免暴露自己的身份和意图。
|
||
|
||
总之,横幅抓取是一项重要的技术,可以帮助渗透测试人员获取目标系统的关键信息。通过合理选择工具和技术,并结合充分的信息收集,我们可以更好地了解目标系统,并为后续的渗透测试活动做好准备。
|
||
```
|
||
nc -vn 10.10.10.10 3690
|
||
```
|
||
## 枚举
|
||
|
||
### 1. SVN版本探测
|
||
|
||
使用以下命令检测目标主机上运行的Subversion(SVN)版本:
|
||
|
||
```bash
|
||
nmap -p 3690 --script svn-brute <target>
|
||
```
|
||
|
||
### 2. SVN元数据泄露
|
||
|
||
通过访问目标主机的SVN元数据,可以获取有关仓库和文件的信息。使用以下命令:
|
||
|
||
```bash
|
||
svn ls svn://<target>:3690
|
||
```
|
||
|
||
### 3. SVN源代码泄露
|
||
|
||
通过访问目标主机的SVN源代码,可以获取敏感信息,如用户名、密码和源代码。使用以下命令:
|
||
|
||
```bash
|
||
svn checkout svn://<target>:3690
|
||
```
|
||
|
||
### 4. SVN日志泄露
|
||
|
||
通过访问目标主机的SVN日志,可以获取有关提交历史和修改的详细信息。使用以下命令:
|
||
|
||
```bash
|
||
svn log svn://<target>:3690
|
||
```
|
||
|
||
### 5. SVN配置文件泄露
|
||
|
||
通过访问目标主机的SVN配置文件,可以获取有关仓库和服务器配置的信息。使用以下命令:
|
||
|
||
```bash
|
||
svn cat svn://<target>:3690/conf/svnserve.conf
|
||
svn cat svn://<target>:3690/conf/passwd
|
||
svn cat svn://<target>:3690/conf/authz
|
||
```
|
||
|
||
### 6. SVN权限绕过
|
||
|
||
如果目标主机的SVN配置文件中存在未正确配置的权限,可以尝试绕过访问限制。使用以下命令:
|
||
|
||
```bash
|
||
svn checkout --username <username> --password <password> svn://<target>:3690
|
||
```
|
||
|
||
### 7. SVN代码注入
|
||
|
||
如果目标主机的SVN服务器存在代码注入漏洞,可以尝试注入恶意代码。使用以下命令:
|
||
|
||
```bash
|
||
svn checkout --username <username> --password <password> svn://<target>:3690/!svn/txr/<transaction_id>/payload
|
||
```
|
||
|
||
### 8. SVN远程命令执行
|
||
|
||
如果目标主机的SVN服务器存在远程命令执行漏洞,可以尝试执行任意命令。使用以下命令:
|
||
|
||
```bash
|
||
svn checkout --username <username> --password <password> svn://<target>:3690/!svn/txr/<transaction_id>/cmd
|
||
```
|
||
|
||
### 9. SVN后门
|
||
|
||
如果目标主机的SVN服务器存在后门,可以尝试使用后门访问目标系统。使用以下命令:
|
||
|
||
```bash
|
||
svn checkout --username <username> --password <password> svn://<target>:3690/!svn/txr/<transaction_id>/backdoor
|
||
```
|
||
|
||
### 10. SVN身份验证绕过
|
||
|
||
如果目标主机的SVN服务器存在身份验证绕过漏洞,可以尝试绕过身份验证。使用以下命令:
|
||
|
||
```bash
|
||
svn checkout --username <username> --password <password> svn://<target>:3690/!svn/txr/<transaction_id>/../payload
|
||
```
|
||
|
||
### 11. SVN远程文件包含
|
||
|
||
如果目标主机的SVN服务器存在远程文件包含漏洞,可以尝试包含远程文件。使用以下命令:
|
||
|
||
```bash
|
||
svn checkout --username <username> --password <password> svn://<target>:3690/!svn/txr/<transaction_id>/../file:///etc/passwd
|
||
```
|
||
|
||
### 12. SVN文件上传
|
||
|
||
如果目标主机的SVN服务器允许文件上传,可以尝试上传恶意文件。使用以下命令:
|
||
|
||
```bash
|
||
svn import --username <username> --password <password> <local_file> svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 13. SVN文件删除
|
||
|
||
如果目标主机的SVN服务器允许文件删除,可以尝试删除文件。使用以下命令:
|
||
|
||
```bash
|
||
svn delete --username <username> --password <password> svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 14. SVN文件修改
|
||
|
||
如果目标主机的SVN服务器允许文件修改,可以尝试修改文件内容。使用以下命令:
|
||
|
||
```bash
|
||
svn checkout --username <username> --password <password> svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 15. SVN文件下载
|
||
|
||
如果目标主机的SVN服务器允许文件下载,可以尝试下载文件。使用以下命令:
|
||
|
||
```bash
|
||
svn checkout --username <username> --password <password> svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 16. SVN文件覆盖
|
||
|
||
如果目标主机的SVN服务器允许文件覆盖,可以尝试覆盖文件内容。使用以下命令:
|
||
|
||
```bash
|
||
svn checkout --username <username> --password <password> svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 17. SVN文件重命名
|
||
|
||
如果目标主机的SVN服务器允许文件重命名,可以尝试重命名文件。使用以下命令:
|
||
|
||
```bash
|
||
svn move --username <username> --password <password> svn://<target>:3690/<repository>/<file> svn://<target>:3690/<repository>/<new_file>
|
||
```
|
||
|
||
### 18. SVN文件复制
|
||
|
||
如果目标主机的SVN服务器允许文件复制,可以尝试复制文件。使用以下命令:
|
||
|
||
```bash
|
||
svn copy --username <username> --password <password> svn://<target>:3690/<repository>/<file> svn://<target>:3690/<repository>/<new_file>
|
||
```
|
||
|
||
### 19. SVN文件锁定
|
||
|
||
如果目标主机的SVN服务器允许文件锁定,可以尝试锁定文件。使用以下命令:
|
||
|
||
```bash
|
||
svn lock --username <username> --password <password> svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 20. SVN文件解锁
|
||
|
||
如果目标主机的SVN服务器允许文件解锁,可以尝试解锁文件。使用以下命令:
|
||
|
||
```bash
|
||
svn unlock --username <username> --password <password> svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 21. SVN文件标记
|
||
|
||
如果目标主机的SVN服务器允许文件标记,可以尝试标记文件。使用以下命令:
|
||
|
||
```bash
|
||
svn propset --username <username> --password <password> svn:keywords "Id" svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 22. SVN文件属性修改
|
||
|
||
如果目标主机的SVN服务器允许修改文件属性,可以尝试修改文件属性。使用以下命令:
|
||
|
||
```bash
|
||
svn propset --username <username> --password <password> svn:executable "yes" svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 23. SVN文件属性删除
|
||
|
||
如果目标主机的SVN服务器允许删除文件属性,可以尝试删除文件属性。使用以下命令:
|
||
|
||
```bash
|
||
svn propdel --username <username> --password <password> svn:executable svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 24. SVN文件属性查看
|
||
|
||
如果目标主机的SVN服务器允许查看文件属性,可以尝试查看文件属性。使用以下命令:
|
||
|
||
```bash
|
||
svn propget --username <username> --password <password> svn:executable svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 25. SVN文件属性列出
|
||
|
||
如果目标主机的SVN服务器允许列出文件属性,可以尝试列出文件属性。使用以下命令:
|
||
|
||
```bash
|
||
svn proplist --username <username> --password <password> svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 26. SVN文件历史查看
|
||
|
||
如果目标主机的SVN服务器允许查看文件历史,可以尝试查看文件历史。使用以下命令:
|
||
|
||
```bash
|
||
svn log --username <username> --password <password> svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 27. SVN文件差异查看
|
||
|
||
如果目标主机的SVN服务器允许查看文件差异,可以尝试查看文件差异。使用以下命令:
|
||
|
||
```bash
|
||
svn diff --username <username> --password <password> svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 28. SVN文件合并
|
||
|
||
如果目标主机的SVN服务器允许文件合并,可以尝试合并文件。使用以下命令:
|
||
|
||
```bash
|
||
svn merge --username <username> --password <password> svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 29. SVN文件回滚
|
||
|
||
如果目标主机的SVN服务器允许文件回滚,可以尝试回滚文件。使用以下命令:
|
||
|
||
```bash
|
||
svn revert --username <username> --password <password> svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 30. SVN文件恢复
|
||
|
||
如果目标主机的SVN服务器允许文件恢复,可以尝试恢复文件。使用以下命令:
|
||
|
||
```bash
|
||
svn cleanup --username <username> --password <password> svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 31. SVN文件标签
|
||
|
||
如果目标主机的SVN服务器允许文件标签,可以尝试标签文件。使用以下命令:
|
||
|
||
```bash
|
||
svn copy --username <username> --password <password> svn://<target>:3690/<repository>/<file> svn://<target>:3690/<repository>/tags/<tag_name>
|
||
```
|
||
|
||
### 32. SVN文件分支
|
||
|
||
如果目标主机的SVN服务器允许文件分支,可以尝试分支文件。使用以下命令:
|
||
|
||
```bash
|
||
svn copy --username <username> --password <password> svn://<target>:3690/<repository>/<file> svn://<target>:3690/<repository>/branches/<branch_name>
|
||
```
|
||
|
||
### 33. SVN文件合并冲突
|
||
|
||
如果目标主机的SVN服务器存在文件合并冲突,可以尝试解决冲突。使用以下命令:
|
||
|
||
```bash
|
||
svn resolve --username <username> --password <password> --accept=<option> svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 34. SVN文件权限修改
|
||
|
||
如果目标主机的SVN服务器允许修改文件权限,可以尝试修改文件权限。使用以下命令:
|
||
|
||
```bash
|
||
svn propset --username <username> --password <password> svn:author "<new_author>" svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 35. SVN文件权限查看
|
||
|
||
如果目标主机的SVN服务器允许查看文件权限,可以尝试查看文件权限。使用以下命令:
|
||
|
||
```bash
|
||
svn propget --username <username> --password <password> svn:author svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 36. SVN文件权限删除
|
||
|
||
如果目标主机的SVN服务器允许删除文件权限,可以尝试删除文件权限。使用以下命令:
|
||
|
||
```bash
|
||
svn propdel --username <username> --password <password> svn:author svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 37. SVN文件权限列出
|
||
|
||
如果目标主机的SVN服务器允许列出文件权限,可以尝试列出文件权限。使用以下命令:
|
||
|
||
```bash
|
||
svn proplist --username <username> --password <password> svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 38. SVN文件权限修改历史
|
||
|
||
如果目标主机的SVN服务器允许修改文件权限历史,可以尝试修改文件权限历史。使用以下命令:
|
||
|
||
```bash
|
||
svn propedit --username <username> --password <password> svn:author svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 39. SVN文件权限修改记录
|
||
|
||
如果目标主机的SVN服务器允许修改文件权限记录,可以尝试修改文件权限记录。使用以下命令:
|
||
|
||
```bash
|
||
svn propedit --username <username> --password <password> svn:log svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 40. SVN文件权限修改时间
|
||
|
||
如果目标主机的SVN服务器允许修改文件权限时间,可以尝试修改文件权限时间。使用以下命令:
|
||
|
||
```bash
|
||
svn propedit --username <username> --password <password> svn:date svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 41. SVN文件权限修改属性
|
||
|
||
如果目标主机的SVN服务器允许修改文件权限属性,可以尝试修改文件权限属性。使用以下命令:
|
||
|
||
```bash
|
||
svn propedit --username <username> --password <password> svn:executable svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 42. SVN文件权限修改所有者
|
||
|
||
如果目标主机的SVN服务器允许修改文件权限所有者,可以尝试修改文件权限所有者。使用以下命令:
|
||
|
||
```bash
|
||
svn propedit --username <username> --password <password> svn:owner svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 43. SVN文件权限修改组
|
||
|
||
如果目标主机的SVN服务器允许修改文件权限组,可以尝试修改文件权限组。使用以下命令:
|
||
|
||
```bash
|
||
svn propedit --username <username> --password <password> svn:group svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 44. SVN文件权限修改模式
|
||
|
||
如果目标主机的SVN服务器允许修改文件权限模式,可以尝试修改文件权限模式。使用以下命令:
|
||
|
||
```bash
|
||
svn propedit --username <username> --password <password> svn:mode svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 45. SVN文件权限修改类型
|
||
|
||
如果目标主机的SVN服务器允许修改文件权限类型,可以尝试修改文件权限类型。使用以下命令:
|
||
|
||
```bash
|
||
svn propedit --username <username> --password <password> svn:mime-type svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 46. SVN文件权限修改大小
|
||
|
||
如果目标主机的SVN服务器允许修改文件权限大小,可以尝试修改文件权限大小。使用以下命令:
|
||
|
||
```bash
|
||
svn propedit --username <username> --password <password> svn:size svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 47. SVN文件权限修改版本
|
||
|
||
如果目标主机的SVN服务器允许修改文件权限版本,可以尝试修改文件权限版本。使用以下命令:
|
||
|
||
```bash
|
||
svn propedit --username <username> --password <password> svn:version svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 48. SVN文件权限修改标签
|
||
|
||
如果目标主机的SVN服务器允许修改文件权限标签,可以尝试修改文件权限标签。使用以下命令:
|
||
|
||
```bash
|
||
svn propedit --username <username> --password <password> svn:keywords svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 49. SVN文件权限修改描述
|
||
|
||
如果目标主机的SVN服务器允许修改文件权限描述,可以尝试修改文件权限描述。使用以下命令:
|
||
|
||
```bash
|
||
svn propedit --username <username> --password <password> svn:description svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 50. SVN文件权限修改URL
|
||
|
||
如果目标主机的SVN服务器允许修改文件权限URL,可以尝试修改文件权限URL。使用以下命令:
|
||
|
||
```bash
|
||
svn propedit --username <username> --password <password> svn:url svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 51. SVN文件权限修改UUID
|
||
|
||
如果目标主机的SVN服务器允许修改文件权限UUID,可以尝试修改文件权限UUID。使用以下命令:
|
||
|
||
```bash
|
||
svn propedit --username <username> --password <password> svn:uuid svn://<target>:3690/<repository>/<file>
|
||
```
|
||
|
||
### 52. SVN文件权限修改锁定
|
||
|
||
如果目标主机的SVN服务器允许修改文件权限锁定,可以尝试修改文件权限锁定。使用以下命令:
|
||
|
||
```bash
|
||
svn propedit --username <username> --password <password> svn:lock svn://<target
|
||
```bash
|
||
svn ls svn://10.10.10.203 #list
|
||
svn log svn://10.10.10.203 #Commit history
|
||
svn checkout svn://10.10.10.203 #Download the repository
|
||
svn up -r 2 #Go to revision 2 inside the checkout folder
|
||
```
|
||
<details>
|
||
|
||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||
|
||
- 你在一家**网络安全公司**工作吗?你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||
|
||
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||
|
||
- 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||
|
||
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的 [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||
|
||
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||
|
||
</details>
|