W1R3S

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的区别是多了一步入侵

它允许对目标网络进行轻量级的侦查,而不会引起太多注意

图片[1]-W1R3S-tess-wiki

-sn这个参数是怎么进行扫描的

默认这个参数会发送四项数据

第一是ICMP回显请求

第二是对端口443的TCP SYN请求

第三对端口八零的TCP ACK

第四就是默认情况下的ICMP时间戳请求

/

当非特权用户执行这条命令时,就比如说没有sudo权限,

它只会使用connect调用,发送SYN数据包到目标主机的80和443端口

/

现在是使用的sudo特权用户扫描本地网络

它使用的是ARP请求,自然它不是发送的,刚才提到的那四项数据

为什么,因为ARP请求是数据链路层的数据包

就没有TCP和ICMP协议的事

自然不能发送那些数据包

在这种情况下,NMAP扫描和另一个命令很相似

就是arp-scan -l

图片[2]-W1R3S-tess-wiki这里是扫描本地网络,所以结果一样,

如果是扫描互联网主机,那就是上面说所的发送四项数据

当然在扫描本地网络的时候

也可以通过加一个参数叫–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的文件

最终它会用三种不同的输出格式扩展名

建立三个文件执行扫描

/

图片[3]-W1R3S-tess-wiki

先看一下nmap的三种扫描结果

gnmap,nmap,xml。

图片[4]-W1R3S-tess-wiki

gnamp

这个是nmap自己定义的文本格式

图片[5]-W1R3S-tess-wiki

nmap

扫描屏幕输出的是一样的

图片[6]-W1R3S-tess-wiki

xml

它能给我们带来的想象力和编程交互性

图片[7]-W1R3S-tess-wiki

 

 

-sT解决的是准和隐蔽性的问题

 

现在问题是把扫描出来的端口提取出来,如果2,3个端口还好,要是十几个几百个,那手动是不现实的。

使用命令提取

先grep出来

grep open W1R3/ports.nmap 

图片[8]-W1R3S-tess-wiki再以/做分隔符,提取第一列

grep open W1R3/ports.nmap  | awk -F '/' '{print $1}'

图片[9]-W1R3S-tess-wiki再使用paste -sd

s是指定合并到一行

d是指定分隔符’,’

grep open W1R3/ports.nmap  | awk -F '/' '{print $1}' | paste -sd ','

图片[10]-W1R3S-tess-wiki

再使用一个小技巧

使用ports=$()把里面这个内容赋值给ports

后面就直接调用ports就行了

ports=$(grep open W1R3/ports.nmap  | awk -F '/' '{print $1}' | paste -sd ',') 

echo $ports检查一下,

图片[11]-W1R3S-tess-wikiok,没问题

 

📊 扫描与信息收集

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 探测目标操作系统

图片[12]-W1R3S-tess-wiki

另外在扫描TCP端口的同时,也开启对

UDP扫描

map -sU --top-ports 20  192.168.100.111 -oA W1R3/udp-detail

-sU 指定使用UDP协议发现

udp的扫描非常的快

图片[13]-W1R3S-tess-wiki

漏洞脚本扫描

nmap --script=vuln -p21,80,22,3306 192.168.100.111 -oa W1R3/vuln

–script=vuln

图片[14]-W1R3S-tess-wiki

 

💡信息分析与突破

 

接下来分析扫描结果

图片[15]-W1R3S-tess-wikiftp有匿名登陆,并且有三个目录,已经列出来了。

 

 

 

 

 

💾FTP下载与隐藏信息

 

 

🔐安装配置页的漏洞

 

 

🌐URL传递数据与提权

 

 

🔓破解SSH与CPCMS漏洞

 

 

 

 

 

 

 

 

-.-

 

 

 

 

 

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
相关推荐
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称

    暂无评论内容