2.kali安装

渗透第二章

Posted by Sprint#51264 on April 27, 2021

引言

学习内容源于安全牛苑房弘老师讲的课程

FANGHONG.YUAN@163.COM

持久加密USB安装

将渗透结果安全保存,防止泄密

LUKS:Linux Unified Key Setup

在liveUSB模式,无法进行软件包更新,是只读方式,写入也会被抹去 而持久加密指的是在live模式中开辟空间写入数据并进行加密防止泄露

  • 磁盘分区加密规范
  • 不依赖于操作系统的磁盘及加密(磁盘级加密) 文件级加密,EFS,文件从加密分区中拷贝出去就会失效,如果是管理员身份登录也能查看加密内容,看不同用户加密的内容 磁盘级加密与操作系统无关,必须使用相应密钥或者证书才能打开查看。
  • Windows-DoxBox(查看LUKS加密标准磁盘)
  • 后端:dm-crypt(后端加密组件)
  • 前端:cryptsetup(加密解密工具)
  • 微软:bitlocker(磁盘级加密)

    linux下制作kali安装盘

    windows可以使用微软的bitlocker

DD工具,可以使用基于块的方式将原磁盘每一个磁道每一个扇区每一个字节都刻录到U盘中,在电子取证中很有作用

系统删除文件只是删除文件索引,但是文件内容还在磁盘中

  • 映射物理机USB到虚拟机

dmesg 该命令可以查看系统上的变化,并且生成日志进行记录。(例如新增了什么设备)

Gparted分区编辑区 可以查看系统上连接的硬件设备,可以对相应硬件进行查看

  • 卸载USB原先所占有的分区,并且删除原有分区,接下来要将镜像文件以方刻到usb上

    dd if=kali-linux-1.1.0a-amd64.iso of=/dev/sdb bs=1M

    其中if指的是inputfile(输入文件),of指的是outputfile(输出位置),bs指的是一次复制多大块

    可以单独运行watch -n 5 killall -USR1 dd对正在运行的dd指令查看工作进展

  • 为U盘创建额外分区

    parted工具

    print devices查看当前系统所有硬盘 select (设备名)选中分区

    • 再使用print查看U盘分区

    mkpart primary 3063 7063创建新的分区(主分区)设定起始位置和结束位置,起始位置是上一个位置的结束位置(这里演示的是4个G)

  • 使用LUKS对分区进行加密

    crptsetup --verbose --verify-passphrase lucksFormat (device)#对指定分区进行加密

  • 打开加密分区

    cryptsetup lucksOpen (device) (命名name)#打开加密分区之后的操作都是对于设备进行的

  • 格式化加密分区+卷标

    mkfs.ext4 /dev/mapper/usb#进行文件系统格式化

    e2label /dev/mapper/usb persistence# 必须命名为persistence

  • 挂载加密分区

    mkdir -p /mnt/usb mount /dev/mapper/usb /mnt/usb/ #标准,访问一个硬件设备首先需要将设备moundt到一个目录里,然后再进行增删改查

    echo "/ union" > /mnt/usb/persistence.conf

    至此,持久usb制作结束

  • 后续操作

    umount /dev/mapper/usb#卸载挂载

    crytsetup luksClose /dev/mapper/usb# 关闭

熟悉环境

Top10 工具

  • aircracking 无线攻击
  • burpsuite 数据包拦截
  • hydra/john 密码破解
  • maltego 图形化信息收集
  • MSF 渗透测试框架
  • nmap 网络发现扫描器
  • owasp-zap 基于web的截断渗透工具
  • sqlmap 基于python的注入工具
  • wireshark 抓包分析工具

文件目录

按功能划分目录

目录 作用
bin 所有用户都可使用程序目录
boot 引导程序配置文件目录
dev 所有设备目录
etc 主要存放配置文件的目录
home 用户主目录,root主目录单独一个文件夹
lib 库文件目录
live-bild bild自己kali版本使用的目录
lost-found 错误丢失文件目录
media 默认挂载外接存储文件目录(物理主机目录)
mnt 挂载目录
opt 应用程序目录
proc 临时存在的文件,存放当前linux运行配置参数
sbin 管理员才有权执行的执行程序存放的目录
selinux linux安全机制
tmp 临时文件目录
usr 放执行程序、共享文件
var 存放日志、邮件等经常变化的文件的目录

熟悉BASH命令

常见的命令:ls,cd,pwd,cat,more,tail,cp,rm,top,ps,grep,ifconfig,netstat,awk,sort,route,mount,dmesg,find,whereis,Echo,vi

shell是指操作系统和使用者之间的界面,shell有很多类型,自带颜色标识,kali使用BASH(Bourne Again Shell)

常见命令

  • ls 列出当前目录内容

    • -l 显示文件详细信息

      开头信息可以分成两大块 一块是开头的字符,另一块是后面的字符串 开头是d表示目录 开头是-表示这是一个文件 开头是c表示这是一个字符型设备 开头是l表示这个是一个连接(快捷方式,实际的文件后面有路径) 开头是d表示块设备(例如硬盘)

    • -a 会显示隐藏文件&详细信息
    • -lh 显示文件大小(K为单位,易阅读)

      –sortsize 以大小排序 –sorttime 以时间排序

  • cd 进入目录

    • . 进入当前目录
    • .. 进入上级目录
    • pwd 查看当前目录
  • cat/more/tail 查看文件内容

    • cat

      显示文本文件内容 cat /var/log/messages(系统变化信息)

      会从头到尾查看文件内容,大型文件会耗时长,不是很方便

    • more

      显示内容满一屏就会停止,底部显示显示文档百分比进度 按下回车继续下一屏的查看

      more /var/log/messages

    • less

      也是显示文件内容,但是没有百分比显示

    • tail

      会从文件底部开始显示十行内容

      tail -20 显示文件最下方20行

      watch -n 2 tail -20 (路径)# 每隔2秒钟显示该文件最后20行内容

  • cp/rm 对文件进行操作

    • rm 删除文件

      rm -r Agent#删除文件夹

    • cp 复制文件

      cp ps ps1#可以复制的同时进行重命名

      • -r 拷贝文件夹

        cp -r Agent A

  • top/ps 查看进程信息

    • top 监视linux系统性能,列出所有的进程,会显示启动多久,哪个启动的,列出很多关于系统的有关信息,用q退出
    • kill -PID 结束进程xxx
    • ps 专门查看进程信息

      ps -ef#查看更加具体的进程信息 ps aux#相比ef显示不同的信息

  • grep 筛选输出内容

    grep ssh(要查询的内容) /etc/passwd#查看指定文件中的包含输入参数的内容

  • ifconfig 查看当前网络配置信息

    ifconfig eth0(网卡名) down#关闭指定网卡 (可能在改网卡地址的时候需要下线网卡) macchanger -m 00:11:11:11:11:11 eth0

    ifconfig eth0(网卡名) up#上线某个网卡

    要注意的是下次启动登陆系统mac地址就会变回真实地址

  • netstat 查看网络连接信息

    • -pantu

      netstat -pantu#查看当前计算机和哪些网络中的服务器产生了tcp/udp连接

    linux使用管道符 连接命令

    netstat -pantu | egrep -v '0.0.0|:::'#过滤含有0.0.0地址和:::地址的监听列表

    -v 参数表示不包含

    • awk

      netstat -pantu | egrep -v '0.0.0|:::' | awk 'print{$5}'过滤掉不想看到的内容并只显示第五列的内容

      awk用空格将显示的内容进行分块

    • cut 使用cut规定显示结果的分割方式

      netstat -pantu |egrep -v '0.0.0|:::' | awk 'print{$5}' | cut -d ':' -f 1|sort | uniq#显示详细的网络外连并过滤掉不想要监听地址,然后只打印第五列并使用’:’分割显示内容之后再显示第一块的内容(去掉端口号,只关注ip地址),最后在对结果进行排序,再去重

      最后再加一个’>’可以将内容进行输出

    要注意,如果再进行结果输出的时候使用’>’会覆盖掉原来文件中的内容,但是如果使用管道符’»‘就会将这次输出的内容追加到文件后部分

  • route
  • mount 用来挂载远程文件夹或者本地文件夹的命令
  • dmesge

  • find

    查找文件或者目录 find / -name nmap#从根目录开始查找名为nmap的文件

    如果不知道文件名大小写 find / -iname nmap#不区分文件大小写进行查找

    find . -name "ps*"#查找以*开头的所有文件

    find . -name "ps*" -exec cp() /tmp/{} \:#将当前目录下所有文件拷贝到tmp目录(隐藏文件无法拷贝)

  • whereis

    范围没有find大但是速度很快,凡是通过包管理工具安装的文件都会被记录到数据库里,whereis会查找数据库中记录(结果并不完整)

    whereis -b nmap#查找nmap相关的二进制文件

  • echo

  • vi

    vim文本编辑器进入默认是命令模式,输入命令来进行相关功能。

    :set nu#显示行号 :wq#保存结果并退出 :wq!#强制退出保存 :i#进入插入模式 :a# 连续按两次d->dd#删除整行 o#在某行下插入 y#复制当前行 g#进行粘贴 ESC#退回到命令模式

    管道

  • &

    前后两个命令依次执行

  • &&

    前命令执行成功再执行后后命令

  •  

    前命令执行不成功再执行后命令

  • >

    将内容进行输出(会覆盖同名文件)

  • >>

    将内容追加到某个文件

shell

1.sh

#! /bin/bash
(默认起始行,使用bin/bashshell文件进行解释)

echo -n "IP:"
(-n 参数表示输出后不换行)

read ip
(定义变量ip)

echo "your ip is " $ip

./ 1.sh#执行脚本文件

  • ping 脚本

    #! /bin/bash for n in ‘seq 254’ do ping 192.168.1.$n -c 1 | grep ttl | awwk ‘{print $4}’ | awk -F: ‘{print $1}’