【表哥有话说 第104期】nmap+W1R3S

admin 2023年11月29日20:50:21评论7 views字数 4457阅读14分51秒阅读模式

web方向的周分享来喽~

许久未见 有没有时常想念呐

话不多说

各位公主王子请看本周内容


Nmap

前置知识

sudo nmap -sn 10.10.10.0/24
    -sn 在主机发现之后不进行端口扫描,只打印响应了主机嗅探的可用主机,这种扫描被称为ping扫描,n的意思是no port scan而不是network;
    -sL,这是列表扫描,与-sn实现目的相同,但是-sn会有一些轻量级的侦察,相比来说,-sn更有价值
-sn扫描:
    1.ICMP回显请求(默认)
    2.对端口443的TCP SYN请求(默认)
    3.对端口80的TCP ACK请求(默认)
    4.默认情况下的ICMP时间戳请求(默认)
    非特权用户(非root):只使用connect调用,向端口443和80发送SYN数据包
    特权用户:使用ARP请求,ARP属于数据链路层的包,不经过TCP和ICMP,在root下运行这条命令扫描本地网络,相当于root下运行arp-scan -l
    -sn可以与任何发现探测类型结合使用,例如-pn,如果使用探测类型或端口号选项,则会覆盖默认探测,当防火墙较为严格的时候可以使用这些技术
    在扫描互联网ip的时候,可以使用--send-ip,来发送ICMP时间戳请求来确定主机的活动性,因为在互联网ip中,arp请求可能不会被所有请求响应,相比来说,ICMP请求能更可靠的实现主机发现
    

在使用靶机渗透时,可以通过开启靶机前后的扫描结果来确定靶机的ip,即新增加的ip为目标靶机
定目标靶机为10.10.10.21

端口扫描

mkdir nmapscan
sudo nmap -sT --min-rate 10000 10.10.10.21 -oA nmapscan/ports
    不指定-sT的时候,nmap使用默认的扫描技术,-sS;-sS使用TCP的SYN标志位来探测目标主机上的开放端口,发送有一个TCP的SYN包,只建立TCP请求的第一步,如果收到了主机的SYN+ACK回复,则表明相关端口开放,如果收到RST复位数据包,则表明端口关闭,常用于快速探测扫描;-sT是明确以TCP请求来探测,用TCP的三次握手过程判断端口的状态,发送的是完整的TCP请求,相对较慢,但是更加准确,而且有些防火墙会检测不完整的请求,推荐使用-sT
    --min-rate: 表示最慢扫描每秒发包速率,打靶机的时候常用10000,视情况而定,太快容易被检测出来
    -p-: -p指定端口范围,-p后的‘-’是1到65535的简易写法,不指定‘-’的话,nmap只扫描默认的1000个端口
    -oA: o代表output,A代表all,将三种输出格式全部输出到后面的目录中,以三种文件形式储存:.nmap .gnmap .xml
    端口扫描及结果要准确,齐全,时间可接受,一定的隐蔽性

###扫描结果处理

扫描结果样例:
    PORT     STATE  SERVICE
    21/tcp   open   ftp
    22/tcp   open   ssh
    80/tcp   open   http
    3306/tcp open   mysql
    .....    ....   ....
1.grep open nmapcscan/posts.nmap
    找到有'open'字段的所有行
    结果:
        21/tcp   open   ftp
        22/tcp   open   ssh
        80/tcp   open   http
        3306/tcp open   mysql
2.grep open nmapcscan/posts.nmap | awk -F '/' '{print $1}'
    结合awk,使用-F,参数为'/',表示从'/'分割,加上后面的{print $1},表示输出第一列,从而输出所有的端口号
    结果:
        21
        22
        80
        3306
3.grep open nmapcscan/posts.nmap | awk -F '/' '{print $1}' | paste -sd ','
    再结合paste,s意思是合并到一行,d是指定分隔符,参数为','
    结果:
        21,22,80,3306
4.ports=$(grep open nmapcscan/posts.nmap | awk -F '/' '{print $1}' | paste -sd ',')
    变量指定,将结果指定给ports
5.echo $ports
    输出21,22,80,3306

详细信息扫描

sudo nmap -sT -sV -sC -O -p21,22,80,3306 10.10.10.21 -oA nmapscan/detail
    -sV,v是version,端口服务及其版本
    -sC,C是script,使用nmap默认脚本目录分类名称
    -O,O是operation system
    -p的时候输入$+Tab可以补全前面定义的端口内容
如果这几个端口都没有实质性的收获,举步维艰的时候,可以回去查看ipv6的情况

udp扫描

sudo nmap -sU --top-ports 20 10.10.10.21 -oA nmapscan/udp
    -sU,进行udp扫描
    --top-ports,指定扫描多少常用udp端口,一般20就够用,具体多少视情况而定

默认漏洞脚本扫描

sudo nmap --script=vuln -p21,22,80,3306 10.10.10.21 -oA nmapscan/vuln
渗透测试中不使用DOS/DDOS攻击,扫出漏洞也不会去使用,忽略不计

渗透

21端口ftp服务

ftp 10.10.10.21
    在nmap的扫描结果中显示可以匿名登陆,所以:
Name (10.10.10.21:kali): anonymous
password:
    密码置空就可以
    login成功后提示:
Using binary mode to transfer files
ftp>binary  //切换到binary模式,(好习惯
ftp>?  //显示可用命令
ftp>ls  //获得文件目录
    然后进入各个目录
ftp>pro  //关闭交互模式,方便多文件快速下载
ftp>mget *.txt  //下载所有txt文件,由于pro,不需要挨个确认
    拿到所有文件就可以退出ftp了

###ftp信息处理

推荐kali工具:

hash-identifier:
    hash:****
john:
    vim md5.hash
    john md5.hash
验证:
    echo -n 'This is not a password' | md5sum
rev: 文字前后反转

3306mysql服务

msyql -h 10.10.10.21 -u root -p
无密码,拒绝访问,寄

80web服务

http://10.10.10.21:80
apache网页页面
并未得到有效信息,开始目录爆破
sudo gobuster dir -u http://10.10.10.21 --wordlist=/usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt
    得到几个有意义的目录:
        /administer
        /wordpress
    其中wordpress会自动跳转到localhost,优先级低一些,因为需要对kali进行深度修改host,而且环境不一定支持修改,故降低其优先级
    /administer是一个cuppa cms的安装网页,在进行渗透测试的时候,我们需要格外注意是否对目标主机进行了不可逆的修改,修改是需要格外注意的,一是可能由于环境的改变,导致主机渗透难度改变,二是可能会引起管理员注意,致使渗透失败;对环境的修改操作需要进行对结果的准备,通常情况会降低其优先级;进行操作前要进行充分评估
进行install安装:
    回显显示安装成功,但是用户创建失败,这时候就可以尝试找找cuppa cms的漏洞试试
    使用searchsploit cuppa cms
        searchsploit cuppa -m 25971
        下载完是一个txt文件里面有相关的漏洞信息和exp
        尝试利用漏洞,结果有回显但是并没有相应的数值返回,然后因为这是一个cms内容管理系统,我们可以去找对应版本的源代码做代码审计,然后发现是post传数据
    使用curl:
        curl --data-urlencode 'payload' http://*********.php
        得到/etc/passwd
            每一条用户数据的第二段都是x,代表密码是以hash格式保存在/etc/shadow中,打开shadow发现有很多密码,这时候的思路就是破解哈希值,获得密码,使用john(时间较长)(放到***.hash里面)
        破解的到两个用户:www-data,w1r3s,密码分别是www-data和computer,这时候就可以尝试连接
        www-data多是功能性账号,相比来说w1r3s权重更加高
        sudo ssh [email protected]
        输入密码得到shell
        id查看发现有sudo权限,接下来就需要提权,使用sudo -l查看当前用户有哪些系统级权限,发现是ALL,那我们可以直接提权:sudo /bin/bash,提权成功,渗透完成

22端口补充

破解密码也可以使用hydra -l user.list -P /usr/share/wordlists/rockyou.txt ssh://10.10.10.21 -t 4
    -l:需要用户名,我们需要先构造字典
        结合匿名ftp得到的信息构造vim user.list,admin,w1r3s,root和hector(这个人是IT manager)
    -P:碰撞密码,后跟爆破词典,rockyou.txt相对适合vulhub和国外环境靶机
    -t:指定线程
破解得到用户和对应密码,和上面w1r3s一样的


这次内容学得还顺利吗

疑难问题要及时请教解决呀

所以要时刻关注我们的动态

【表哥有话说 第104期】nmap+W1R3S


原文始发于微信公众号(SKSEC):【表哥有话说 第104期】nmap+W1R3S

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年11月29日20:50:21
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【表哥有话说 第104期】nmap+W1R3Shttps://cn-sec.com/archives/2252959.html

发表评论

匿名网友 填写信息