Kali Linux 渗透测试
文章目录
介绍
一. 渗透测试标准
- PETS(http://www.pentest-standard.org) • 前期交互阶段
- 情报收集阶段
- 威胁建模阶段
• 漏洞分析阶段
• 渗透攻击阶段
• 后渗透测试阶段
• 渗透测试报告
二. 安装
- 下载安装镜像
https://www.kali.org/downloads/ - 验证 hash 值
- Live USB Encrypted Persistence (USB 持久化加密安装)
- VMware
三. 定制
网络配置
临时 IP 地址
dhclient eth0
ifconfig eth0 192.168.1.11/24
route add default gw 192.168.1.1
echo nameserver 192.168.1.1 > /etc/resolv.conf
固定 IP 地址
cat /etc/network/interface
auto eth0
iface eth0 inet static
address 192.168.20.1
netmask 255.255.255.0• network 192.168.20.0
broadcast 192.168.20.255
gateway 192.168.20.2
dns-nameservers 192.168.1.1 192.168.1.2
up route add -net 172.16.5.0/24 gw 192.168.10.100 eth1
down route del -net 172.24.0.0/24
更新升级
apt-get update
apt-get upgrade
apt-get dis-upgrade
安裝软件包
apt-get
apt-get install kali-linux-all smplayer ibus ibus-pinyin flashplugin-nonfree gdebi amule
qbittorrent geany meld stardict ttf-wqy-microhei kchmviewer resolvconf python-dev
python-greenlet python-gevent python-vte python-openssl python-crypto pythonappindicator python-pip libnss3-tools freemind netspeed libncurses5-dev mtr filezilla filezillacommon chromium monodevelop mono-gmcs -y
并发线程限制
Ulimite ⽤于限制当前 shell 内进程的资源使⽤
• 查看默认值
• Ulimite –a
• 全局配置⽂件 :/etc/security/limits
<domain> <type> <item> <value>
• ⽤途距离
• 限制⽂件块⼤⼩:ulimit – s 100
• 限制 shell 内存使⽤:ulimit -m 5000 -v 5000
• 没有直接对 socket 数量的限制参数
• Linux 系统中⼀切都是⽂件,运⾏中的⽂件叫做进程
• ulimite –n 800000
电源优化
快捷键
XFCE https://www.cnblogs.com/pipci/p/11518321.html
虚拟桌面:
<Alt>Insert:add_workspace_key 添加工作区
<Alt>Delete:del_workspace_key 删除工作区
<Alt><Control>End:move_window_next_workspace_key 把窗口移到下个工作区
<Alt><Control>Home:move_window_prev_workspace_key 把窗口移到上个工作区
<Alt><Control>KP_1:move_window_workspace_1_key 把窗口移到第 1 个工作区(KP_1:小键盘数字 1,以下同)
<Alt><Control>KP_2:move_window_workspace_2_key 把窗口移到第 2 个工作区
<Alt><Control>KP_3:move_window_workspace_3_key 把窗口移到第 3 个工作区
或<Alt><Control>方向键
<Control><Shift><Alt>Left:move_window_left_key 移动窗口到左边工作区
<Alt>Tab:cycle_windows_key 切换窗口所有程序
<Super>Tab:switch_window_key 切换窗口同类程序
<Control><Alt>d:show_desktop_key 显示桌面
<Alt>space:popup_menu_key 右键菜单
ctrl+shift+t 新打开 tab
ctrl+shift+w 关闭 tab
ctrl+pagup tab 切换
右键 选择水平还是垂直分割
Alt+方向建切换激活
ctrl+shift+= 放大
ctrl± 缩小
ctrl+0 复原
termainal drop down 按F12可以跨桌面唤出 再按一次收回 F11全屏
结合firefox& jobs fg ctrl+z bg fg %1可以做到命令行控制应用
四. 试验环境
五. 基本工具
nc
传输⽂件
• A:nc -lp 333 > 1.mp4
• B:nc -nv 1.1.1.1 333 < 1.mp4 –q 1
• 或 • A:nc -q 1 -lp 333 < a.mp4
• B: nc -nv 1.1.1.1 333 > 2.mp4
• 传输目录
• A:tar -cvf - music/ | nc -lp 333 –q 1
• B:nc -nv 1.1.1.1 333 | tar -xvf –
• 加密传⽂件
• A:nc -lp 333 | mcrypt --flush -Fbqd -a rijndael-256 -m ecb > 1.mp4
NC——远程克隆硬盘
• A: nc -lp 333 | dd of=/dev/sda
• B: dd if=/dev/sda | nc -nv 1.1.1.1 333 –q 1
• 远程电⼦取证,可以将⺫标服务器硬盘远程复制,或者内存。
NC——NCAT
• Nc 缺乏加密和⾝份验证的能⼒
• Ncat 包含于 nmap ⼯具包中
• A:ncat ncat -c bash --allow 192.168.20.14 -vnl 333 --ssl
• B:ncat -nv 1.1.1.1 333 --ssl
tcpdump
[[tcpdump]]
TCPDUMP 抓包
tcpdump -i eth0 -s 0 -w file.pcap
读取抓包⽂件
Tcpdump -r file.pcap
TCPDUMP——筛选
• tcpdump -n -r http.cap | awk ‘{print $3}’| sort –u
• tcpdump -n src host 145.254.160.237 -r http.cap
• tcpdump -n dst host 145.254.160.237 -r http.cap
• tcpdump -n port 53 -r http.cap
• tcpdump -nX port 80 -r http.cap
TCPDUMP——⾼级筛选
• tcpdump -A -n ‘tcp[13] = 24’ -r http.cap
六. 被动信息收集
公开渠道可获得的信息
• 与目标系统不产⽣直接交互
• 尽量避免留下⼀切痕迹
OSINT:
信息收集内容
IP 地址段
• 域名信息
• 邮件地址
• ⽂档图⽚数据
• 公司地址
• 公司组织架构
• 联系电话 / 传真号码
• ⼈员姓名 / 职务
• 目标系统使⽤的技术架构
• 公开的商业信息
DNS
DNS 信息收集——DIG
• dig @8.8.8.8 www.sina.com mx
• dig www.sina.com any
• 反向查询:dig +noall +answer -x 8.8.8.8
• bind 版本信息: dig +noall +answer txt chaos VERSION.BIND @ns3.dnsv4.com
• DNS 追踪: dig +trace example.com
• 抓包⽐较递归查询、迭代查询过程的区别
DNS 区域传输
• dig @ns1.example.com example.com axfr
• host -T -l sina.com 8.8.8.8
DNS 字典爆破
• fierce -dnsserver 8.8.8.8 -dns sina.com.cn -wordlist a.txt
• dnsdict6 -d4 -t 16 -x sina.com
• dnsenum -f dnsbig.txt -dnsserver 8.8.8.8 sina.com -o 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
搜索引擎
• 公司新闻动态
• 重要雇员信息
• 机密⽂档 / 网络拓扑
• ⽤户名密码
• 目标标系统软硬件技术架构
GOOGLE 搜索——实例
• inurl:“level/15/exec/-/show”
• intitle:“netbotz appliance” “ok”
• inurl /admin/login.php
• inurl:qq.txt
• filetype:xls "username | password“
• inurl:ftp “password” filetype:xls site:baidu.com
• Service.pwd
• http://exploit-db.com/google-dorks
RECON-NG
邮件
• theharvester -d sina.com -l 300 -b google
⽂件
• metagoofil -d microsoft.com -t pdf -l 200 -o test -f 1.html
MELTAGO
其他途径
• 社交⺴络
• ⼯商注册
• 新闻组 / 论坛
• 招聘⺴站
• http://www.archive.org/web/web.php
个⼈专属的密码字典
• 按个⼈信息⽣成其专属的密码字典
• CUPP——Common User Password Profiler
• git clone https://github.com/Mebus/cupp.git
• python cup.py -i
METADATA
• Exif 图⽚信息
• Foca
RECON-NG
[[recon-ng]]
• Web 信息搜索框架
• 命令格式与 msf ⼀致
• 基于 python 开发
• 使⽤⽅法:
• 模块
• 数据库
• 报告• 全局选项
• USER-AGENT
• Proxy
• Workspace
• Snapshot
• Show schema
• Help
• Query 数据库
• Select * from hosts where host like ‘%baidu.com%’ order by ip_address
• DNS 查询
• Baidu
• Bing
• Yahoo
• Brute force
• 解析 IP 地址(查询数据库)
• 联系⼈
• 报告
• API
七. 主动信息收集
二层发现
arppig
namp
[[netdiscover]]
• netdiscover -i eth0 -r 1.1.1.0/24
• netdiscover -l iplist.txt
被动模式
• netdiscover -p
[[nmap]]
syn 端口连接
不建立完整连接,应用日志不记录 隐蔽端口扫描
nmap -sS -iL iplist.txt -p 80,21,22,23
全连接端口扫描
日志会记录扫描
nmap -sT 1.1.1.1 -p 80-2000
dmitry -p 172.16.36.135 -o output
nc -nv -w 1 -z 192.168.60.4 1-100
for x in $(seq 20 30); do nc -nv -w 1 -z 1.1.1.1 $x; done | grep open
Zombie 僵尸扫描
banner
dmitry -pb 172.16.36.135
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
smb
• nmap -v -p139,445 192.168.60.1-20
• nmap 192.168.60.4 -p139,445 --script=smb-os-discovery.nse
• nmap -v -p139,445 --script=smb-check-vulns --script-args=unsafe=1 1.1.1.1
• nbtscan -r 192.168.60.0/24
• enum4linux -a 192.168.60.10
SMTP
WAF 识别
wafw00f
wafw00f -l
nmap www.microsoft.com --script=http-waf-detect.nse
八. 弱点扫描
nessus
openvas
WA
九. 缓冲区溢出
windows 缓冲区溢出
[[fuzzer]]
十. 提权
抓包嗅探
• Windows
[[wireshark]]
[[Omnipeek]]
Omnipeek
• commview
• Sniffpass
• Linux
• Tcpdump
• Wireshark
• Dsniffwindows
键盘记录
Keylogger
木马窃取
mimikatz
十一. 无线渗透
[[aircrack-ng]]
十二. WEB 渗透
十三. 密码破解
人工猜解
– 垃圾桶工程
– 被动信息收集
基于字典暴力破解(主流)
键盘空间字符暴破 字典
– 保存有用户名和密码的文本文件
crunch 键盘空间字符爆破
[[crunch]]
CUPP 按个人信息生成其专属的密码字典
[[cupp]]
cewl 通过收集网站信息生成字典
[[cewl]]
john 使用 John the Ripper 配置文件实现密码动态变型
hydra 在线密码破解
使用 John the Ripper 配置文件实现密码动态变型
medusa
[[medusa]]
离线密码破解
身份认证
– 禁止明文传输密码
– 每次认证使用 HASH 算法加密密码传输(HASH 算法加密容易、解密困难)
– 服务器端用户数据库应加盐加密保存
破解思路
– 嗅探获取密码 HASH
– 利用漏洞登陆服务器并从用户数据库获取密码 HASH
– 识别 HASH 类型
长度、字符集
– 利用离线破解工具碰撞密码 HASH
优势
– 离线不会触发密码锁定机制
– 不会产生大量登陆失败日志引起管理员注意
HASH 识别工具
– hash‐identifier
– Hashid
– 可能识别错误或无法识别
Windows HASH 获取工具
– 利用漏洞:Pwdump、fgdump、 mimikatz、wce
– 物理接触:samdump2
– Kali ISO 启动虚拟机
– mount /dev/sda1 /mnt
– cd /mnt/Windows/System32/config
– samdump2 SYSTEM SAM -o sam.hash
– 利用 nc 传输 HASH