Vulnhub靶机:W1R3S 1.0.1
学渗透的终极是红队
nmap扫描与分析-精
FTP渗透-精
MySQL试探
Web渗透-精
Cuppa CMS渗透-精
Cuppa CMS 25971 利用-精
john破解shadow hash
获得系统立足点和提权
彩蛋:SSH暴力破解
总结和CalltoAction-精
🔑基本概念与权限操作
使用sudo来提升特定命令或操作的权限
这样仅对这些操作进行授权
而不是持续已完全管理员权限运行
🔍 端口扫描技术与参数
nmap -sn 10.10.10.0/24
-sn NO port scan
他的前身是-sP,在nmap的官方文档中明确告知,-sP是已经被放弃的参数
取而代之的就是-sn参数是代表在主机发现之后不进行端口扫描
它的N不是指的网络network,而是NO port scan
这种扫描也被称为ping扫描,但相比于ping扫描,你也可以运行trace root或者NSE的主机脚本
-sL 是列表扫描,它与-sn的区别是多了一步入侵
它允许对目标网络进行轻量级的侦查,而不会引起太多注意
-sn这个参数是怎么进行扫描的
默认这个参数会发送四项数据
第一是ICMP回显请求
第二是对端口443的TCP SYN请求
第三对端口八零的TCP ACK
第四就是默认情况下的ICMP时间戳请求
/
当非特权用户执行这条命令时,就比如说没有sudo权限,
它只会使用connect调用,发送SYN数据包到目标主机的80和443端口
/
现在是使用的sudo特权用户扫描本地网络
它使用的是ARP请求,自然它不是发送的,刚才提到的那四项数据
为什么,因为ARP请求是数据链路层的数据包
就没有TCP和ICMP协议的事
自然不能发送那些数据包
在这种情况下,NMAP扫描和另一个命令很相似
就是arp-scan -l
这里是扫描本地网络,所以结果一样,
如果是扫描互联网主机,那就是上面说所的发送四项数据
当然在扫描本地网络的时候
也可以通过加一个参数叫–send-ip,让nmap发送ICMP时间戳请求,以确定主机的活动性
因为在网络中ARP请求可能不会被所有主机响应,而ICMP时间戳请求更可靠的用于主机发现
/
再多说一点
-sn选项可以与任何发现探测类型结合使用,比如-pn等等,以获得更大的灵活性
如果使用了这些探测类型和端口号,选项中的任何一个,则会覆盖默认探测
如果在运行NMAP的主机和目标网络之间,存在严格的防火墙,推荐使用这些高级技术
否则当防火墙丢弃探测或响应数据包时,可能会错过主机
所以经常听到有人说,按nmap一扫就被防御系统发现
很大程度上是你用的不够精细,
你追求傻瓜化的工具,对nmap研究不深入,将大杀器束之高阁
当然攻防场景对抗复杂,还要具体问题具体分析
反正nmap在过墙方面没那么差
⚙️ 参数设置与协议扫描
nmap -sn 192.168.100.0/24
这里有人会写成192.168.100.1/24,写成100.1是不行的,因为后面跟着/24是代表一个网段,如果单独探测一个ip可以写成精确ip地址,但是现在我们是探测一个网段,是一个范围,所以要写成网络地址192.168.100.0/24
接下里是针对目标靶机的扫描
nmap -sT –min-rate 100000 -p- 192.168.100.111 -oA W1R3/ports
/
这里如果我不指定,他给默认值是-sS
而我更习惯于用-sT
明确指定以TCP协议进行扫描
那-sS和-sT有什么区别呢
/
-sS是默认的扫描技术,
它利用TCP的SYN标志位,来探测目标主机上的开放端口
发送一个SYN包,只建立TCP链接的第一步
如果收到了目标主机的SYN加ACK回复,则表示相应的端口是开放的
如果说到RST就是复位这个数据包,则表示该端口是关闭的
SYN扫描,常常用于快速扫描目标主机的端口状态,因为它能够快速探测开放和关闭的端口
/
而-sT是用三次握手过程来判断端口的状态
它通过发送完整的TCP连接请求,等待目标主机的回应
如果收到了SYN加ACK回复,则表示相应的端口是开放的需要进行完整的TCP链接过程
因此相对较慢,但是它的确更准确,在打靶机的时候,你对准确率要求更高
/
用-sT肯定会更好
用-sT的好处远远不止于此
很多防火墙都能够监测到不完整的TCP链接
就是只发送一个SYN包的这种情况
所以用-sT这个参数
它对于某些目标主机上使用了SYN过滤机制
或防火墙的情况可能会更有效
所以-sT这个参数是更好的
/
然后是-p-这个参数,-p是指定端口范围的参数
而-p后面的-是简化的,指定1~65535全部的端口进行扫描
/
因为默认nmap只扫常用的1000个端口
我指定了就是1~65535全部的端口范围就会覆盖掉原来的指定动态范围
/
尤其打靶机的时候,因为我们不在意流量冲击吗
/
-oA是输出,A是all
它包括了nmap支持的三种输出格式
存储我命名为posts的文件
最终它会用三种不同的输出格式扩展名
建立三个文件执行扫描
/
先看一下nmap的三种扫描结果
gnmap,nmap,xml。
gnamp
这个是nmap自己定义的文本格式
nmap
扫描屏幕输出的是一样的
xml
它能给我们带来的想象力和编程交互性
-sT解决的是准和隐蔽性的问题
现在问题是把扫描出来的端口提取出来,如果2,3个端口还好,要是十几个几百个,那手动是不现实的。
使用命令提取
先grep出来
grep open W1R3/ports.nmap
再以/做分隔符,提取第一列
grep open W1R3/ports.nmap | awk -F '/' '{print $1}'
再使用paste -sd
s是指定合并到一行
d是指定分隔符’,’
grep open W1R3/ports.nmap | awk -F '/' '{print $1}' | paste -sd ','
再使用一个小技巧
使用ports=$()把里面这个内容赋值给ports
后面就直接调用ports就行了
ports=$(grep open W1R3/ports.nmap | awk -F '/' '{print $1}' | paste -sd ',')
echo $ports检查一下,
ok,没问题
📊 扫描与信息收集
TCP扫描
nmap -sT -sV -sC -O -p21,22,80,3306 192.168.100.111 -oA W1R3/detail
-sT 指定使用TCP协议扫描
-sV 通过和系统对应端口服务的交互,从banner信息和其他各种信息中获取他的具体服务和版本
-sC 使用nmap的默认script脚本
-O 探测目标操作系统
另外在扫描TCP端口的同时,也开启对
UDP扫描
map -sU --top-ports 20 192.168.100.111 -oA W1R3/udp-detail
-sU 指定使用UDP协议发现
udp的扫描非常的快
漏洞脚本扫描
nmap --script=vuln -p21,80,22,3306 192.168.100.111 -oa W1R3/vuln
–script=vuln
💡信息分析与突破
接下来分析扫描结果
ftp有匿名登陆,并且有三个目录,已经列出来了。
💾FTP下载与隐藏信息
🔐安装配置页的漏洞
🌐URL传递数据与提权
🔓破解SSH与CPCMS漏洞
-.-
暂无评论内容