VulnHub-Lord Of The Root: 1.0.1
VulnHub-Lord Of The Root: 1.0.1渗透测试详细流程
参考:https://mp.weixin.qq.com/s/RcdNhvbUh9A-ZMdnoULYMQ
距离上次打靶机隔好久了,因为一些事情耽搁了。渗透学习之路继续~
渗透思路:
与前几个一样,显示nmap扫ip、端口,这次开放的只有22端口。
通过学习,有一个端口碰撞(具体方法见下)。使用ping命令冲撞后,发现还有一个1337端口也开放。
访问1337页面,只有一张图,没发现有用信息,尝试一下robots页面,果然有一个加密的字符串,base64解码得到路径。
发现是一个登录页面,sqlmap破解用户名和密码。将得到的账号和密码保存到两个文件
使用msf破解ssh正确的账号密码(具体方法见下)。
使用获取到的用户名和密码进行连接,我这边稍微出了点问题,ssh突然连接不上。后来发现是自己输错ip了,所以还是得细心啊。
连上之后查看版本信息为14.04.1-Ubuntu,找到利用脚本,复制到本地
使用wget,gcc发送到靶机上并执行脚本,再利用chomd进行提权
小知识点
一、端口碰撞(portknocking)
-
端口试探(port knocking)是一种通过连接尝试,从外部打开原先关闭端口的方法。一旦收到正确顺序的连接尝试,防火墙就会动态打开一些特定的端口给允许尝试连接的主机。
-
端口试探的主要目的是防治攻击者通过端口扫描的方式对主机进行攻击。端口试探类似于一次秘密握手协议,比如一种最基本的方式:发送一定序列的UDP、TCP数据包。当运行在主机上的daemon程序捕捉到数据包以后,如果这个序列正确,则开启相应的端口,或者防火墙允许客户端通过。
由于对外的Linux服务器通过限制IP地址的方式来控制访问,因此可以利用这种端口试探方式来进行防火墙对于访问IP地址的控制。
-
如何进行端口碰撞?
首先需要我们知道端口碰撞的序列,否则暴力碰撞开启的机会太小~
- 第一种方法:knock 命令
Linux 上可以使用如下命令安装 knock 工具:
sudo apt install knockd
使用:
knock <IP> <PORT1> <PORT2> <PORT3> <PORT4> -v
例如需要碰撞 172.16.1.1 的 3,4,7,8 端口:
knock 172.16.1.1 3 4 7 8 -v
- 第二种方法:nmap 命令
使用 Nmap 按次序指定端口扫描即可,参考:
nmap 172.16.1.1 -Pn -p 3
- 第三种方法:python脚本
python -c 'import itertools; print list(itertools.permutations([1,2,3]))' | sed 's/), /\n/g' | tr -cd '0-9,\n' | sort | uniq > permutation.txt
参考:https://www.cnblogs.com/jannock/archive/2008/07/14/1242148.html
参考:https://zhuanlan.zhihu.com/p/210177505
二、Metasploit实战之-SSH暴力破解过程
若有用户名和密码字典的话,使用auxiliary/scanner/ssh/ssh_login
模块
若不知道,使用auxiliary/scanner/ssh/ssh_enumusers
模块先探测用户名是否存在
参考:https://blog.youkuaiyun.com/huweiliyi/article/details/105590291
常用工具
hping:TCP/IP数据包组装/分析工具
常用参数:
用法: hping3 host [options]
-h --help 显示帮助
-v --version 显示版本
-c --count 发送数据包的数目
-i --interval 发送数据包间隔的时间 (uX即X微秒, 例如: -i u1000)
--fast 等同 -i u10000 (每秒10个包)
--faster 等同 -i u1000 (每秒100个包)
--flood 尽最快发送数据包,不显示回复。
模式选择
default mode 默认模式是 TCP
-0 --rawip RAWIP模式,原始IP模式。在此模式下HPING会发送带数据的IP头。即裸IP方式。使用RAWSOCKET方式。
-1 --icmp ICMP模式,此模式下HPING会发送IGMP应答报,你可以用--ICMPTYPE --ICMPCODE选项发送其他类型/模式的ICMP报文。
-2 --udp UDP 模式,缺省下,HPING会发送UDP报文到主机的0端口,你可以用--baseport --destport --keep选项指定其模式。
-8 --scan 扫描模式 指定扫描对应的端口。
Example: hping3 --scan 1-30,70-90 -S www.target.host // 扫描
-9 --listen listen mode // 监听模式
IP 模式
-a --spoof 源地址欺骗。伪造IP攻击,防火墙就不会记录你的真实IP了,当然回应的包你也接收不到了。
-t --ttl ttl (默认 64) //修改 ttl 值
ICMP 模式
-C --icmptype icmp类型(默认echo请求) // ICMP类型,缺省回显请求。
-K --icmpcode icmp代号(默认0) // ICMP代码。
UDP/TCP 模式
-F --fin set FIN flag
-S --syn set SYN flag
-R --rst set RST flag
-P --push set PUSH flag
-A --ack set ACK flag ------------------------------------- (设置 TCP 的 ACK 标志 位)
Common //通用设置
-d --data data size (default is 0) // 发送数据包大小,缺省是0。
注意:hping的参数是分大小写的
eg:
hping3 -S [IP地址] -p 1 -c 1
-S(--syn)
:SYN是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN-ACK应答表示接收到了这个消息,最后客户机再以ACK消息响应。这样在客户机和服务器之间才能建立起可靠的TCP连接,数据才可以在客户机和服务器之间传递。
-p --destport
: 目的端口(默认为0),可同时指定多个端口
-c --count
:指定数据包的次数
参考:https://blog.youkuaiyun.com/qq_30247635/article/details/86243448