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

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

    2021-03-10 1118
  • 为何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-10 818
  • 路由器能隔离广播,要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 563
  • 路由器能隔离广播,要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-06 632
  • 为何主机的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-04 990
  • windows密码获取 -- mimikatz

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

    2021-03-04 482
  • 怎样提高网站权重

    一、什么是网站权重 网站权重代表一个网站在搜索结果中的影响力,网站权重越高,网站的影响力便越大,相关页面相对的关键词排名就越高。 二、如何查看自己网站的权重 网站的权重计算,主要是通过国内两大站长工具进行虚拟评估,根据站点从搜索结果获取的预估流量,给予一定的评级,它是一个虚拟指标,通常分为1-10级,级别越高百度权重越高。  目前,相对精准的网站权重查询工具,主要是爱站网与站长之家:  ① 爱站网,网站权重查询; ② 站长之家,百度权重查询。       三、如何提高权重 (1)域名选择:域名的新旧,老的域名更有助于提升权重,前提是域名有无做过不好的网站。域名的后缀可信度,最好选些比较常用的后缀,如 .com  .cn  .net等。不建议大家采用一些很少见的后缀在做网站,虽说价格便宜,但是更多时候这些少见的域名会被用来做站群或者垃圾网站,因此,一般会被打击和波及无辜。 (2)提高网站内容质量:网站的优化推广更多依靠的是网站内的文章,关键词的布局、核心词以及长尾关键词的布局都可在文章中体现,围绕长尾词去编写软文,完善网站内容,提升网站关键词的排名及内页的权重。文章的编写切不可采集,对于新站,我们要写自己的原创,百度会对新站有考察期,每日定期更新,更新时间要规律,这样蜘蛛爬行才能更好地被抓取建立索引。还有好的网页内容,会获得第三方网站的转载和分享,这样我们就会获取更多外链导入我们网站。 (3)内外链建设:网站的内链和外链的建设,链接理论,内链有助于蜘蛛抓取时候爬行更多的文章,有助于传递权重,外链是从别的第三方网站吸引蜘蛛爬行到我们网站。做好网站地图及网站的内链优化操作。 (4)解析多个二级域名:每个二级域名相当于独立的网站,制作多个内容相关的网站,内容多了,收录也多,权重也就高了,二级域名域名把权重传递给主域名,这样做可以增加主站域名的权重。 (5)服务器的选择:选择稳定高效的服务器更能保证我们的后顾之忧,稳定性,速度快,安全性能好的服务器,这样才能保证网站能正常被打开。网站能否被打开、打开的速度快慢这个也是网站权重考核的点。 ...

    2021-01-27 353
  • 快速解封QQ空间单封1秒解除的方法

    解除介绍 今天给大家带来的是QQ空间单封1秒解除方法,可以帮助QQ空间单封的朋友一键解除,从此摆脱QQ空间单封的问题,解除方法操作起来非常简单,有需要的朋友可以试一下。 解除方法 打开QQ扫码或复制链接打开:https://kf.qq.com/touch/mobileqq/qq_help_center/qq_zone_diagnose.html QQ空间正常的,就直接提示正常 不正常的就是这个,然后申请恢复,就行了。 ...

    2021-01-22 1021
  • 解封永久冻结QQ号教程 QQ号解封改实名认证方法

    小编已成功解封截图分享 方法介绍 首先找到微信小程序腾讯客服 提交问题,产品选择超级影视VIP,填自己被冻结的qq,品牌随便填 问题那里可以这样填该账号不是本人操作腾讯无权永久封禁 如若腾讯不给予解封,用户有权起诉腾讯公司 这个最少要申诉3次 申诉方法登陆被封的QQ点击去处理然后点击申诉输入解封理由就可以了 另外,315也投诉一下 温馨提示 大家千万不要相信任何交钱帮你解封的人! ...

    2021-01-22 2376
  • 2021年最新解除微信黑号方法

    微信黑号是什么?每次参加活动时领红包时就会提示“发放失败,已被微信拦截,异常”只能领微信零钱入账的,红包的领不到,不到账! 步骤: 1、微信小程序搜索“腾讯客服”->进去左下角提交问题->选择微信支付->会转接到窗口->发送->投诉->点击链接选择第一个红包填报表 2、填写无法领取微信红包,提示领取失败异常,图片随便上传一个红包的截图->交易记录随便->然后等待人工客服回复你->回复后就给他说 3、微信领取不了红包->然后等待她回复->如果能解除她就会给你解除->不解除的话就会叫你更换账号 ->不给解除等会找另外的客服去试试 PS:今天这个客服还是不解除就明天再去试试,如果不能解除唯一解决办法:多活跃自己微信号->多使用微信支付->过不了多久就会自己解除! ...

    2021-01-19 446
  • ubuntu-暗网TOR部署网站

    1、环境准备 安装php7.2 apt -y install php7.3 php7.3-common php7.3-cli php7.3-cgi php7.3-fpm \ php7.3-gd php7.3-mysql php7.3-sqlite3 php7.3-pgsql php7.3-opcache \ php7.3-mbstring php7.3-curl php7.3-xml php7.3-xmlrpc php7.3-zip \ php7.3-intl php7.3-json php7.3-bz2 安装 tor 、 mariadb、nginx apt -y update && apt -y install tor nginx mariadb-server 2、tor 实例配置 创建实例 tor-instance-create wordpress 编辑实例配置文件 nano /etc/tor/instances/wordpress/torrc 写入如下配置: HiddenServiceDir /var/lib/tor-instances/wordpress/hidden_service/ HiddenServicePort 80 127.0.0.1:58163 示例: 实例启动与自启动 systemctl start tor@wordpress systemctl enable tor@wordpress 查看onion域名 cat /var/lib/tor-instances/wordpress/hidden-service/hostname 正常的话会显示出域名,例如: 3、配置数据库 初始化数据库 mysql_secure_installation 注:运行命令后弹出第一行可以设置root密码,先设置数据库的root用户密码,然后保存,其他都Y 添加库 mysql -u root -p CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; GRANT ALL PRIVILEGES ON wordpress.* TO wordpress@localhost IDENTIFIED BY '设置wordpress用户的数据库密码'; FLUSH PRIVILEGES; quit 4、wordpress下载 下载及授权 cd /var/www && wget https://wordpress.org/latest.zip unzip latest.zip 注:没有unzip可以先安装,apt -y install unzip rm -rf latest.zip chown -R www-data:www-data wordpress 5、配置Nginx 修改配置文件 nano /etc/nginx/nginx.conf 然后在http{}里添加一行: server_names_hash_bucket_size 128; 例如: 添加一个配置文件 cd /etc/nginx/conf.d/ && nano wordpress.conf 写入如下配置后保存: server { listen 127.0.0.1:58163; server_name pf73h6t33mvp7lsbr2solnfquubswqu65tirjffpty5tmnj46erbo3qd.onion; root /var/www/wordpress; index index.html index.php; client_max_body_size 100M; allow 127.0.0.1; deny all; server_tokens off; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { fastcgi_pass unix:/run/php/php7.3-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } 注:server_name 后填写你自己的onion域名 测试与启动Nginx 测试: nginx -t 显示successful即没问题。 启动: systemctl restart nginx 加入自启动: systemctl enable nginx Nginx启动成功后, 打开Tor浏览器访问你的 onion域名 就能浏览到网页了 ...

    2021-01-16 1094
  • ubuntu-搭建暗网Tor入口节点

    简介: Tor的路由主要分为3部分:网桥-中继-出口,也可以理解成入口节点-中间节点-出口节点,本文搭建的是入口节点 。 1、安装 apt -y update apt -y install tor obfs4proxy 2、配置Tor nano /etc/tor/torrc BridgeRelay 1 ORPort 9001 ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy ExtORPort auto # 这里的obfs4混淆使用随机端口,确保你的机器防火墙是关闭状态 ContactInfo xxxxx@qq.com # 邮箱地址,用于联系节点维护人员 Nickname SB # 节点的昵称,可以自己随便填写 例如: 上面配置完成后,一个公开的tor节点就配置好了,当然如果你想要配置一个私人的节点,那你可以在上面配置的基础上再加几行: PublishServerDescriptor 0 AccountingMax 100 GB #限制节点流量100G/月 AccountingStart month 1 00:00 #每月刷新流量 3、启动 配置完成之后重启tor/设置开机自启: systemctl restart tor systemctl enable tor 4、验证 下载tor浏览器: 点击下方【加入交流群】 配置连接 打开浏览器,点击配置 如下填写节点信息,然后连接就行了 ...

    2021-01-16 2535
  • 各种符号转数字与快速获取 IP

    今天我们来看两个很有用的小技巧。 奇形怪状的数字转阿拉伯数字 我们知道,在某些场景下面,有些人会使用各种奇奇怪怪的符号来表示数字。例如有些人写自己的 QQ 号,是这样写的: 加扣:五⑦捌二3玖 对于这种奇奇怪怪的数字,如果我们想要批量转化为数字,可能要提前创建一个字典来映射: {'一': 1, '二': 2, '三': 3, ...} 显然,这样写起来非常麻烦。那么有没有什么办法来解决这个问题呢?实际上 Python 是认识这些表示数字的符号的,我们不需要提前设置任何映射,Python 自动就能转换。例如: from unicodedata import numeric print(numeric('五')) print(numeric('⑦')) 运行效果如下图所示: 所以,对于上面这种特殊的数字,我们可以很容易地转换成阿拉伯数字: from unicodedata import numeric data = '五⑦捌二3玖' result = 0 for char in data:     result = 10 * result + int(numeric(char)) print(result) Linux 如何快速获取本机 IP 字符串 在服务器上,有些脚本在运行的时候,需要传入它所在服务器的 IP 地址。但这些脚本具体运行在哪个服务器上,这是由 K8S 这类的东西管理的,我们提前不知道脚本会运行在哪个服务器上,所以不能提前设置。 如果你的脚本是 Python 开发的,那么显然你可以直接在 Python 里面获得当前服务器的 IP 地址。但不是所有编程语言都像 Python 这么方便。而且有时候你是通过.sh文件来调用开源项目。 所以,如何使用shell 命令获取 IP 地址呢? 老版本的 Ubuntu 可以使用ifconfig命令查看当前 IP,如下图所示: 新版本的 Ubuntu 可以使用ip addr,如下图所示: 无论是哪种方法,如何把其中的 IP 地址提取出来呢?这个时候我们可以使用grep配合awk实现。大家可以试一试,如何写才能把其中的10.0.0.4。 但实际上,我们有一种更简单的方法: hostname -i 运行效果如下图所示: ...

    2021-01-05 456
  • 一月QQ封号小技巧100%封号教程

    今天教大家一个百分百封对方qq的小技巧 仅可作为测试使用,严禁违法使用! 下面上图! 接下来是教程时间: 第一步: 这个需要对方发违规内容 然后举报 。 对面不发我们可以发 口令红包 然后举报。 下面几个口令 举报秒封号 亲测! 钟馗开眼 老汉推车 血满天治病 举报内容 输入下方代码 ����˲w����e�K����UɼRE��R����1��7;�U~�u�”Ѻ0�̈�h���8’9)T�ؿ`�랤wx��*Y)4au�j&��%%M��۵3�߷�NBQ8��.3���n�”��c�请立刻封号谢谢 其实最主要的封号原因是对方发送了违禁词,而非所谓的封号代码! 对方发了违禁词,不用所谓的代码也可以的! ...

    2021-01-03 24668
  • Windows局域网渗透(IPC$管道)

    黑客技术——ipc$命令所使用的端口 首先我们来了解一些基础知识:1.SMB:(Server Message Block) Windows协议族,用于文件打印共享的服务;2.NBT:(NETBios Over TCP/IP)使用137(UDP)138(UDP)139(TCP)端口实现基于TCP/IP协议的NETBIOS网络互联。3.在WindowsNT中SMB基于NBT实现,即使用139(TCP)端口;而在Windows2000中,SMB除了基于NBT实现,还可以直接通过445端口实现。 有了这些基础知识,我们就可以进一步来讨论访问网络共享对端口的选择了:对于win2000客户端(发起端)来说:1.如果在允许NBT的情况下连接服务器时,客户端会同时尝试访问139和445端口,如果445端口有响应,那么就发送RST包给139端口断开连接,用455端口进行会话,当445端口无响应时,才使用139端口,如果两个端口都没有响应,则会话失败;2.如果在禁止NBT的情况下连接服务器时,那么客户端只会尝试访问445端口,如果445端口无响应,那么会话失败。 对于win2000服务器端来说:1.如果允许NBT, 那么UDP端口137, 138, TCP 端口 139, 445将开放(LISTENING);2.如果禁止NBT,那么只有445端口开放。 我们建立的ipc$会话对端口的选择同样遵守以上原则。显而易见,如果远程服务器没有监听139或445端口,ipc$会话是无法建立的。 黑客技术——ipc管道在黑客攻击中的意义 ipc管道本来是微软为了方便管理员进行远程管理而设计的,但在入侵者看来,开放ipc管道的主机似乎更容易得手。通过ipc管道,我们可以远程调用一些系统函数(大多通过工具实现,但需要相应的权限),这往往是入侵成败的关键。如果不考虑这些,仅从传送文件这一方面,ipc管道已经给了入侵者莫大的支持,甚至已经成为了最重要的传输手段,因此你总能在各大论坛上看到一些朋友因为打不开目标机器的ipc管道而一筹莫展大呼救命。当然,我们也不能忽视权限在ipc管道中扮演的重要角色,想必你一定品尝过空会话的尴尬,没有权限,开启管道我们也无可奈何。但入侵者一旦获得了管理员的权限,那么ipc管道这把双刃剑将显示出它狰狞的一面。 黑客技术——ipc$连接失败的常见原因 以下是一些常见的导致ipc$连接失败的原因: 1 IPC连接是Windows NT及以上系统中特有的功能,由于其需要用到Windows NT中很多DLL函数,所以不能在Windows 9.x/Me系统中运行,也就是说只有nt/2000/xp才可以相互建立ipc$连接,98/me是不能建立ipc$连接的; 2 如果想成功的建立一个ipc$连接,就需要响应方开启ipc$共享,即使是空连接也是这样,如果响应方关闭了ipc$共享,将不能建立连接; 3 连接发起方未启动Lanmanworkstation服务(显示名为:Workstation):它提供网络链结和通讯,没有它发起方无法发起连接请求; 4 响应方未启动Lanmanserver服务(显示名为:Server):它提供了 RPC 支持、文件、打印以及命名管道共享,ipc$依赖于此服务,没有它主机将无法响应发起方的连接请求,不过没有它仍可发起ipc$连接; 5 响应方未启动NetLogon,它支持网络上计算机 pass-through 帐户登录身份(不过这种情况好像不多); 6 响应方的139,445端口未处于监听状态或被防火墙屏蔽; 7 连接发起方未打开139,445端口; 8 用户名或者密码错误:如果发生这样的错误,系统将给你类似于'无法更新密码'这样的错误提示(显然空会话排除这种错误); 9 命令输入错误:可能多了或少了空格,当用户名和密码中不包含空格时两边的双引号可以省略,如果密码为空,可以直接输入两个引号""即可; 10 如果在已经建立好连接的情况下对方重启计算机,那么ipc$连接将会自动断开,需要重新建立连接。  另外,你也可以根据返回的错误号分析原因:  错误号5,拒绝访问:很可能你使用的用户不是管理员权限的;  错误号51,Windows无法找到网络路径:网络有问题;  错误号53,找不到网络路径:ip地址错误;目标未开机;目标lanmanserver服务未启动;目标有防火墙(端口过滤);  错误号67,找不到网络名:你的lanmanworkstation服务未启动或者目标删除了ipc$;  错误号1219,提供的凭据与已存在的凭据集冲突:你已经和对方建立了一个ipc$,请删除再连;  错误号1326,未知的用户名或错误密码:原因很明显了;  错误号1792,试图登录,但是网络登录服务没有启动:目标NetLogon服务未启动; 错误号2242,此用户的密码已经过期:目标有帐号策略,强制定期要求更改密码。  黑客技术——复制文件失败的原因 有些朋友虽然成功的建立了ipc$连接,但在copy时却遇到了这样那样的麻烦,无法复制成功,那么导致复制失败的常见原因又有哪些呢? 1.对方未开启共享文件夹 这类错误出现的最多,占到50%以上。许多朋友在ipc$连接建立成功后,甚至都不知道对方是否有共享文件夹,就进行盲目复制,结果导致复制失败而且郁闷的很。因此我建议大家在进行复制之前务必用net view \\IP这个命令看一下你想要复制的共享文件夹是否存在(用软件查看当然更好),不要认为能建立ipc$连接就一定有共享文件夹存在。 2.向默认共享复制失败 这类错误也是大家经常犯的,主要有两个小方面: 1)错误的认为能建立ipc$连接的主机就一定开启了默认共享,因而在建立完连接之后马上向c$,d$,admin$之类的默认共享复制文件,一旦对方未开启默认共享,将导致复制失败。ipc$连接成功只能说明对方打开了ipc$共享,并不能说明默认共享一定存在。ipc$共享与默认共享是两码事,ipc$共享是一个命名管道,并不是哪个实际的文件夹,而默认共享却是实实在在的共享文件夹; 2)由于net view \\IP 这个命令无法显示默认共享文件夹(因为默认共享带$),因此通过这个命令,我们并不能判断对方是否开启了默认共享,因此如果对方未开启默认共享,那么所有向默认共享进行的操作都不能成功;(不过大部分扫描软件在扫弱口令的同时,都能扫到默认共享目录,可以避免此类错误的发生) 要点:请大家一定区分ipc共享,默认共享,普通共享这三者的区别:ipc共享是一个管道,并不是实际的共享文件夹;默认共享是安装时默认打开的文件夹;普通共享是我们自己开启的可以设置权限的共享文件夹。 3.用户权限不够,包括四种情形: 1)空连接向所有共享(默认共享和普通共享)复制时,权限是不够的; 2)向默认共享复制时,在Win2000 Pro版中,只有Administrators和Backup Operators组成员才可以,在Win2000 Server版本 Server Operatros组也可以访问到这些共享目录;  3)向普通共享复制时,要具有相应权限(即对方管理员事先设定的访问权限); 4)对方可以通过防火墙或安全软件的设置,禁止外部访问共享; 注意: 1.不要认为administrator就一定具有管理员权限,管理员名称是可以改的。 2.管理员可以访问默认共享的文件夹,但不一定能够访问普通的共享文件夹,因为管理员可以对普通的共享文件夹进行访问权限设置,如图6,管理员为D盘设置的访问权限为仅允许名为xinxin的用户对该文件夹进行完全访问,那么此时即使你拥有管理员权限,你仍然不能访问D盘。不过有意思的是,如果此时对方又开启了D$的默认共享,那么你却可以访问D$,从而绕过了权限限制,有兴趣的朋友可以自己做测试。 4.被防火墙杀死或在局域网 还有一种情况,那就是也许你的复制操作已经成功,但当远程运行时,被防火墙杀掉了,导致找不到文件;或者你把木马复制到了局域网内的主机,导致连接失败(反向连接的木马不会发生这种情况)。如果你没有想到这种情况,你会以为是复制上出了问题,但实际你的复制操作已经成功了,只是运行时出了问题。 黑客技术——关于at命令和xp对ipc$的限制 本来还想说一下用at远程运行程序失败的原因,但考虑到at的成功率不是很高,问题也很多,在这里就不提它了(提的越多,用的人就越多),而是推荐大家用psexec.exe远程运行程序,假设想要远程机器执行本地c:\xinxin.exe文件,且管理员为administrator,密码为1234,那么输入下面的命令: psexec \\ip -u administrator -p 1234 -c c:\xinxin.exe 如果已经建立ipc连接,则-u -p这两个参数不需要,psexec.exe将自动拷贝文件到远程机器并运行。 本来xp中的ipc$也不想在这里讨论,想单独拿出来讨论,但看到越来越多的朋友很急切的提问为什么遇到xp的时候,大部分操作都很难成功。我在这里就简单提一下吧,在xp的默认安全选项中,任何远程访问仅被赋予来宾权限,也就是说即使你是用管理员帐户和密码,你所得到的权限也只是Guest,因此大部分操作都会因为权限不够而失败,而且到目前为止并没有一个好的办法来突破这一限制。所以如果你真的得到了xp的管理员密码,我建议你尽量避开ipc管道。 黑客技术——如何打开目标的IPC$共享以及其他共享 目标的ipc$不是轻易就能打开的,否则就要天下打乱了。你需要一个admin权限的shell,比如telnet,木马,cmd重定向等,然后在shell下执行: net share ipc$ 开放目标的ipc$共享; net share ipc$ /del 关闭目标的ipc$共享;如果你要给它开共享文件夹,你可以用: net share xinxin=c:\ 这样就把它的c盘开为共享名为xinxin共享文件夹了。(可是我发现很多人错误的认为开共享文件夹的命令是net share c$,还大模大样的给菜鸟指指点点,真是误人子弟了)。再次声明,这些操作都是在shell下才能实现的。 黑客技术——一些需要shell才能完成的命令 看到很多教程这方面写的十分不准确,一些需要shell才能完成命令就简简单单的在ipc$连接下执行了,起了误导作用。那么下面我总结一下需要在shell才能完成的命令: 1 向远程主机建立用户,激活用户,修改用户密码,加入管理组的操作需要在shell下完成; 2 打开远程主机的ipc$共享,默认共享,普通共享的操作需要在shell下完成; 3 运行/关闭远程主机的服务,需要在shell下完成; 4 启动/杀掉远程主机的进程,也需要在shell下完成(用软件的情况下除外,如pskill)。 ipc$连接在实际操作过程中会出现各种各样的问题,本文就为大家总结这么多内容,如有遗漏欢迎指正。 ...

    2021-01-02 489
  • 内网穿透工具frp

    前言 渗透中面对的大部分目标除了暴露在互联网的部分,还有隐藏在内网的大量资产,这部分资产往往无法联通外网,很少暴露在攻击者面前,与此同时安全一般也没有外部资产做的全面 。如果我们从某一外部互联网入口成功进入了内网,就可以利用frp工具搭建起一个隧道,对这些资产进行测试。 项目地址 https://github.com/fatedier/frp 通过release页面下载对应系统的压缩包解压即可 基本使用介绍 服务端配置 1 2 3 4 # frps.ini [common] bind_port = 7000 token = www.baidu.com 使用如下命令开启服务器 1 frps -c frps.ini 客户端配置(socks5隧道) 配置客户端时,要注意common中的ip和端口指向服务器,token与服务器中保持一致,每个socks代理,需要单独起plugin_name,并使用不同的remote_port。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [common] server_addr = x.x.x.x server_port = 7000 tls_enable = true token = www.baidu.com pool_count = 5 protocol = tcp #协议类型 health_check_type = tcp health_check_interval_s = 100 [socks-001] type = tcp remote_port = 6666 #代理的端口 plugin = socks5 #使用的协议 plugin_user = admin plugin_passwd = www.baidu.com use_encryption = true #是否加密 use_compression = true 使用如下命令开启客户端 1 2 3 4 普通模式: frpc -c frpc.ini 后台无回显模式: nohup frpc -c frpc.ini & 此时在proxyfire等代理工具中配置: ip为server_ip port为remote_port 用户为plugin_user 密码为plugin_passwd 即可将客户端网络作为代理出口使用 客户端配置(web转发) 1 2 3 4 5 6 7 8 9 # frpc.ini [common] server_addr = x.x.x.x server_port = 7000 token = www.baidu.com [web] type = http local_port = 8080 custom_domains = www.yourdomain.com 客户端配置(ssh转发) 1 2 3 4 5 6 7 8 9 10 # frpc.ini [common] server_addr = x.x.x.x server_port = 7000 token = www.baidu.com [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000 ...

    2020-12-29 474
  • 如何预防网站被挂黑链

    网站被挂黑链,通常就是黑客利用网站程序或者是语言脚本解释的漏洞上传一些可以直接对站点文件进行修改的脚本木马,然后通过web形式去访问那个脚本木马来实现对当前的网站文件进行修改,比如加入一段广告代码,通常是iframe或者script。 Kirin博客这里介绍一下检查网站的几种方法: 1、经常查看网站的源代码,一般情况下,黑链被挂在首页的最多,或许某些出售黑链的也会有喜欢挂在网站内页的喜好,这样可以稍微加深一点难度吧,楼主需要经常查看网站的源代码,点击网站文字位置,右键,有一个“查看源文件”的选项,点开即可查看。如果你自己的网站设置了禁止右键,可以通过下载一些比较好用的浏览器,来查看网站源代码。   2、巧用站长工具里的“网站死链检测”功能,站长工具里的“网站死链检测”功能可以查看到网站页面的所有链接,这个工具即可以查看你网站里面的链接可否访问,也可以显示出网站页面里所有的链接,当你发现有未知名的链接时,马上采取相关措施,删除此链接,有可能是黑链。   3、使用FTP工具查看网站文件的修改时间,每个网站文件都有自己的修改时间,要是没修改时间,系统会按照文件的创建时间来显示,假如说你现在这个网站的上传时间是6月27日,通过FTP工具查看了一下,大部分文件都是6月27日的,突然看到某个文件的修改时间变成了与现在相近的时间(如6月28日),那么你的这个文件就有可能已经被人家动了手脚,被修改了文件源代码,挂了黑链,现在你最好是把这个文件下载到本地,详细查看一下文件源代码里有没有挂黑链的痕迹。当然,检查的时候,如果你是asp+access站点,看到你的数据库文件的修改时间也与现在相近,你对它基本可以忽略不计吧,譬如说你的网站文章里有统计文章点击次数的,访客浏览一次网站文章,即会写入数据库,自然也就会修改了数据库修改时间了。   4、巧用站长工具里的“同IP站点查询”功能,通过这个工具,你可以查询到跟你网站在同一服务器的部分网站,如果你自己的网站被挂黑链了,那么你在查一下同一服务器的其它网站,当你查到其他的某个网站也有被挂黑链的时候,这时候我们就可以怀疑到服务器安全的问题了,而不是自己网站程序的漏洞问题,现在要做的事,就是马上联系服务商,让他详细做一下服务器安全策略。 5,查看同一服务器下,其他网站是否有黑链,当查到其他的某个网站也有被挂黑链的时候,这时有可能是服务器的安全出了问题,排除自身网站漏洞的情况下,要做的就是马上联系服务商,让他详细做一下服务器安全策略。 ...

    2020-12-28 394
  • 打开进入代刷网时提示请选择商品哦的修改教程

    本次带来的是代刷网特殊的美化修改,可能你也在一些代刷网上面看到过这个美化,很多小伙伴想要却苦苦不能获得,所以这个分享给大家,本来彩虹代刷网不带有这个功能的,我给他加上去能够更好的提示客户选择商品。如下图: 效果为打开网站或者选择分类的时侯会自动提示请选择商品哦~并且0.5秒后会自动关闭,对用户体验非常友好! 这个教程需要用到修改代刷网源码,源码不再自己手上就不要购买了,否则也不能修改。但是修改方法很简单的! 教程开始: 打开根目录assets / js / main.js 文件找到如下图的位置,使用ctrl+f 搜索文字可快速找到,然后添加这一行代码到下图的位置即可! else layer.msg('请选择商品哦~', {icon: 1, time: 1500}); ...

    2020-12-26 905
  • Linux宝塔面板安装PHP扩展失败的问题

    平时在使用宝塔面板的时候,安装完PHP后可能会再去安装一些PHP拓展,但会出现这种情况:显示安装成功,但是扩展列表里还是显示未安装。   比如说安装fileinfo,memcached,exif等。   这中情况多半是编译环境有问题,比如说安装 exif 时,可能就是服务器编译器的问题,我们可以先试试下面的代码先安装编译需要的环境(ubuntu或debian请自行更改为apt-get) yum -y install gcc-c++ yum -y install glibc-headers yum -y install m4 yum -y install autoconf 如以上方法无法解决,可尝试卸载PHP,进入服务器ssh输入bt然后选择修复面板程序,随后再重装PHP进行安装(最好使用编译安装) 教程仅供参考,如均无法解决,请自行前往论坛发帖求助官方人员 ...

    2020-12-26 922
  • Python 中为什么不建议使用 time.sleep 实现定时功能?

    有时候,我们想实现一个非常简单的定时功能,例如:让一个程序每天早上 8 点调用某个函数 但我们又不想安装任何第三方库,也不会使用 crontab 或者任务计划功能,就想使用纯 Python 来实现 可能有同学会这样写代码: import time import datetime def run():     print('我是需要被每天调用的函数') def schedule():     target_time = datetime.time(8, 0, 0)     today = datetime.date.today()     target_date = today + datetime.timedelta(days=1)     target_datetime = datetime.datetime.combine(target_date, target_time)     now = datetime.datetime.now()     delta = (target_datetime - now).total_seconds()     time.sleep(delta)     run()     while True:         time.sleep(24 * 3600)         run() if __name__ == '__main__':     schedule() 这段程序,首先计算出现在距离明天早上 8 点相差的秒数;睡眠这么多秒以后,第一次运行目标函数,然后进入一个死循环,每隔 86400 秒,程序调用一次 run 函数 这个程序初看起来,似乎没有什么问题 但如果你每天观察它的运行时间,你会发现随着时间的推移,时间会越来越不准确 这是因为,run 函数不是一瞬间就运行完成的。它运行也会消耗时间 假设程序第一次运行 run 函数的时候,确实刚刚好是 8:00,run 函数运行了 2秒;那么,程序睡眠 86400 秒以后,时间实际上是 8:00:02.从第二天开始,每天晚 2 秒钟。一个月就会晚一分钟 但实际上,我们如果付出一点点微不足道的代价,我们就可以防止这种误差的发生,并且程序代码会变得更简单: import time import datetime def run():     print('我是需要被每天调用的函数') def schedule():     last_run = None     while True:         now = datetime.datetime.now()         if now.strftime('%H:%M') == '08:00' and last_run != now.date():             run()             last_run = now.date()         time.sleep(1) if __name__ == '__main__':     schedule() 程序在一个死循环中,每秒做一次检查,如果当前的时分正好是 08:00,并且上一次运行不是今天,那么就调用 run 函数,并把上一次运行的时间设置为今天。否则,就睡眠 1 秒钟 这样做,相当于每秒都会校对时间,从而避免了长时间运行导致的时间误差。虽然看起来这个死循环会非常消耗 CPU,但只要你算一下,实际上它只不过每天循环 86400 次而已。这个次数并不多 但无论如何,专业的事情应该交由专业的工具来做;time.sleep 用来设置周期性的时间间隔可以,但它实际上不适合用来做定时任务 因为一个支持定时任务的库,例如:Python 的schedule或者APScheduler,他们在确保定时时间准确上,做了很多工作。还有一些库甚至用到了时间轮这样的数据结构来确保时间的准确性。这不是我们简单用两三行 Python 代码就能完成的。 总结 如果能用 crontab 或者任务计划,那么这是最优选择;其次,使用 Python 专用的定时模块;最次,才是使用 time.sleep 来实现 如果不得不用 time.sleep,那么应该尽量缩短检查的间隔,避免长时间睡眠 ...

    2020-12-23 424

联系我们

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

QQ交流群:KirinBlog

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

扫码关注