作者:荒原之梦
前言:
Links是一个运行在命令行模式下的Web浏览器,只能查看字符。Links的官网是Click here。
安装Links
yum install links
使用Links
links URL
首次使用Links,例如,我们输入:
links www.zhaokaifeng.com
会看到Links的欢迎界面:
Links的基本操作
Esc键:调出Links顶部菜单。
方向键:选择不同的项目,展示下拉菜单或者翻页。
Q键:退出Links:
作者:荒原之梦
Links是一个运行在命令行模式下的Web浏览器,只能查看字符。Links的官网是Click here。
yum install links
links URL
首次使用Links,例如,我们输入:
links www.zhaokaifeng.com
会看到Links的欢迎界面:
Esc键:调出Links顶部菜单。
方向键:选择不同的项目,展示下拉菜单或者翻页。
Q键:退出Links:
作者:荒原之梦
由于想在一台WindowsXP操作系统的台式机上使用虚拟机,但是这个台式机原装的CPU(Intel 奔腾 E2200)不支持虚拟化,所以我找了一颗支持虚拟化的CPU(Intel 酷睿 E8500)准备安装上之后开虚拟机。但是,这次更换CPU是没有成功的,因为这个台式机的主板芯片组是Intel 945G,这个主板不支持E8500 CPU。本文就算是对我首次安装CPU的记录吧。
Intel 奔腾 E2200:
主频:2.20GHz
二级缓存:1M
不支持CPU虚拟化
Intel官方技术参数:Click here
Intel 945G:
Intel官方技术参数:Click here
Intel 酷睿 E8500:
主频:3.16GHz
二级缓存:6M
支持CPU虚拟化
Intel官方技术参数:Click here
1 准备一个螺丝刀:
2 拆开主机机箱的侧盖:
拿掉后盖后是这个样子的,CPU就在那个黑色散热器的下方:
3 用螺丝刀拧开固定散热器的螺丝:
拧螺丝时最好按对角线交替着拧,每个螺丝每次拧松一点,这样能基本保证散热器被拧下来前不会出现过大的倾斜,避免单个固定点受到过大的压力。
4 拆下散热器后就看到CPU了:
5 用手按住CPU压杆:
6 松开压杆:
7 掀开保护盖:
这下我们就完整的看到CPU了,图中的CPU槽边沿有一些碎屑,应该是由于年代久远,从CPU表面掉下来的散热硅脂。如果我们要清理CPU槽最好把CPU放在槽上在清理,防止灰尘等进入CPU槽中央的针脚区。
来看一张Intel 奔腾 E2200的近照:
8 取下CPU后就可以看到CPU卡槽全貌了:
9 取出准备安装的Intel 酷睿 E8500:
10 将E8500放到CPU卡槽里:
放置CPU时要注意根据“金三角”方向标识防止CPU,此外CPU上还有两个缺口,这两个缺口和CPU卡槽上的两个突出部位是对应的,如果CPU放错了是放不进去的。CPU轻轻的放到CPU卡槽上即可,不要按压,以免压坏针脚等。
11 放下CPU保护盖,扣紧压杆:
12 放上CPU散热风扇,拧上螺丝:
拧螺丝时和拆螺丝时一样,按对角线循环着拧紧螺丝。
下图是CPU散热风扇的底部:
13 最后装上机箱侧盖:
作者:荒原之梦
今天在这里(https://www.offensive-security.com/kali-linux-vmware-virtualbox-image-download/)下载了一个用于VirtualBox的Kali Linux虚拟机文件(使用VirtualBox可以直接打开使用,不用执行安装过程)。但是将该文件导入到VirtualBox中之后,点击“启动”却出现了如下报错信息:
“不能为虚拟电脑 Kali-Linux-2017.3-vbox-amd64 打开一个新任务.
Implementation of the USB 2.0 controller not found!
Because the USB 2.0 controller state is part of the saved VM state, the VM cannot be started. To fix this problem, either install the ‘Oracle VM VirtualBox Extension Pack’ or disable USB 2.0 support in the VM settings.
Note! This error could also mean that an incompatible version of the ‘Oracle VM VirtualBox Extension Pack’ is installed (VERR_NOT_FOUND).”
“未找到USB 2.0控制器的实现!
因为USB 2.0控制器状态是保存的VM状态的一部分,所以不能启动VM。要解决这个问题,可以安装“Oracle VM VirtualBox扩展包”或在VM设置中禁用USB 2.0支持。
注意!这个错误还可能意味着安装了“Oracle VM VirtualBox扩展包”的不兼容版本(VERR_NOT_FOUND)。”
根据报错提示,我们知道出现这个错误信息可能和USB2.0控制器有关,我们可以选择禁用USB2.0或者安装“Oracle VM VirtualBox Extension Pack”这个扩展包。
我们首先来尝试通过禁用USB2.0的方式解决这个问题。
在VirtualBox中依次打开“设置->USB设备”,将启用“USB控制器”前面的勾打掉。点击“确定”。
之后,选中刚才报错的虚拟机,点击“启动”,此时已经可以正常启动。
问题解决。
直接禁用USB控制器确实可以简单直接的解决问题,但是也带来了新的问题,因为如果我们想要在虚拟机里连接USB设备(比如U盘或者USB无线网卡)就必须启用USB控制器。因此安装所需要的扩展包才是更好的解决办法。
我们可以在VirtualBox官网的下载页面(https://www.virtualbox.org/wiki/Downloads)找到扩展包的下载方式,如图点击“All supported platforms”即可下载:
如果VirtualBox正在运行,则扩展包下载完成后VirtualBox会自动弹出安装扩展包的提示:
点击“安装”即可。
安装完成后会弹出安装成功的提示:
此外,如果下载完成后的扩展包的图标是如图5所示的绿色方盒,也可以双击进行安装。如果不是如图5所示的绿色方盒:
则可以通过在VirtualBox中依次点击“管理->全局设定->扩展”,如图6所示,找到对应的扩展安装包,安装即可:
安装完成扩展包后,取消禁用USB控制器,之后开机,可以正常启动,问题解决。
注:
“Oracle VM VirtualBox Extension Pack”这个扩展包中有对USB2.0和USB3.0的支持,上述报错并不是因为机器环境的原因出现的偶然报错。因此,新安装的VirtualBox最好直接就安装上这个扩展包。
作者:荒原之梦
特别声明:
我们学习研究网络安全技术的目的应是为了维护网络世界的安全,保护自己和他人的私有信息不被非法窃取和传播。请您遵守您所在地的法律,请勿利用本文所介绍的相关技术做背离道德或者违反法律的事情。
Special statement:
The purpose of our study of cyber security technology should be to maintain the security of the cyber world and protect the private information of ourselves and others from being illegally stolen and disseminated. Please comply with your local laws. Do not take advantage of the relevant technology introduced in this article to do anything that deviates from morality or against the law.
ARP攻击是基于ARP协议的工作模式进行的,关于ARP协议和ARP攻击的基础知识请查看荒原之梦网(zhaokaifeng.com)的这篇博文ARP协议与ARP攻击入门
ARP攻击能够实现的技术前提有两个,一是作为攻击者的计算机需要和被攻击者的计算机在一个局域网中,二是作为攻击者的计算机需要知道被攻击者计算机的局域网IP。本文将模拟真实的攻击过程,在不与被攻击的计算机发生物理接触的情况下实现对其的局域网断网攻击。
注:
在这里,作为攻击者的计算机使用的是安装在VMware Workstation中的Kali Linux,我们需要在VMware的设置中将Kali的联网方式改为“桥接模式”,并且不要勾选“复制物理网络连接状态”。
在这里,我们使用Ettercap对内网进行扫描以获取目标主机IP和网关的信息。输入命令:
ettercap -G
打开Ettercap的GUI界面:
依次点击“Sniff(嗅探) -> Unified sniffing(统一嗅探)”,之后弹出如下界面让选择进行扫描的网络接口(Network interface):
这里我们使用默认的eth0端口。点击“OK”。
之后依次点击“Hosts(主机) -> Scan for hosts(扫描主机)”。
这时会出现一个进度条,等待进度条结束,依次点击“Hosts -> Hosts list(主机列表)”即可显示本机所在局域网中除本机之外,当前已连接至网络的设备的IP地址和MAC地址:
注:
Ettercap扫描结果的第一项一般是本局域网中的网关,如图中的192.168.50.1就是实验时局域网中的默认网关。
这样我们就获得了目标主机的IP和本局域网的网关。
我们使用Kali Linux中的Arpspoof进行ARP攻击。不过,在一些版本的 Kali Linux 中并没有安装 Arpspoof 这个工具,由于 Arpspoof 是 dsniff 工具集的一部分,因此,要安装 Arpspoof, 就需要安装 dsniff 这个工具集,命令如下:
apt-get install dsniff
在实施断网攻击前,我们先测试一下目标主机192.168.50.130是不是能上网,输入命令:
ping www.baidu.com
发现可以Ping通,说明目标主机在攻击开始之前是可以上网的。
在我们的攻击机上,即Kali中,输入命令,例如:
arpspoof -i eth0 -t 192.168.50.130 192.168.50.1
arpspoof 命令的格式如下:
arpspoof [-i interface] [-c own|host|both] [-t target] [-r] host
注:
由于使用 Arpspoof 进行断网攻击的原理就是在被攻击的计算机与路由器之间进行 ARP 劫持,但是劫持完成之后不转发被攻击的计算机与路由器之间的通信数据包。为了保证 Kali 不会将被劫持的数据包转发出去,必须将/proc/sys/net/ipv4/ip_forward
文件中的数值设置为0
, 如果设置为1
, 则使用 Arpspoof 进行的断网攻击则不会生效。
回车就开始对目标主机进行断网攻击了,此时我们在目标主机上执行命令:
ping www.baidu.com
就会返回一个错误提示:“Ping请求找不到主机www.baidu.com”。
通过上述命令产生的Arpspoof的攻击进程不会自动停止,除非当前攻击链路被中断,如攻击机关机或者断开与当前局域网的连接,或目标机关机或者断开与当前局域网的连接或者更改了其在当前局域网内的IP地址。我们可以在Arpspoof进程所在终端上使用“Ctrl+Z”手动关闭Arpspoof的攻击进程。
关闭Arpspoof的攻击进程后,之前被攻击的目标主机一般会在几秒钟的时间内自动恢复正常的网络连接。
附:
Ettercap0.8.2的帮助信息(命令ettercap -help):
ettercap 0.8.2 copyright 2001-2015 Ettercap Development Team Usage: ettercap [OPTIONS] [TARGET1] [TARGET2] TARGET is in the format MAC/IP/IPv6/PORTs (see the man for further detail) Sniffing and Attack options: -M, --mitm <METHOD:ARGS> perform a mitm attack -o, --only-mitm don't sniff, only perform the mitm attack -b, --broadcast sniff packets destined to broadcast -B, --bridge <IFACE> use bridged sniff (needs 2 ifaces) -p, --nopromisc do not put the iface in promisc mode -S, --nosslmitm do not forge SSL certificates -u, --unoffensive do not forward packets -r, --read <file> read data from pcapfile <file> -f, --pcapfilter <string> set the pcap filter <string> -R, --reversed use reversed TARGET matching -t, --proto <proto> sniff only this proto (default is all) --certificate <file> certificate file to use for SSL MiTM --private-key <file> private key file to use for SSL MiTM User Interface Type: -T, --text use text only GUI -q, --quiet do not display packet contents -s, --script <CMD> issue these commands to the GUI -C, --curses use curses GUI -D, --daemon daemonize ettercap (no GUI) -G, --gtk use GTK+ GUI Logging options: -w, --write <file> write sniffed data to pcapfile <file> -L, --log <logfile> log all the traffic to this <logfile> -l, --log-info <logfile> log only passive infos to this <logfile> -m, --log-msg <logfile> log all the messages to this <logfile> -c, --compress use gzip compression on log files Visualization options: -d, --dns resolves ip addresses into hostnames -V, --visual <format> set the visualization format -e, --regex <regex> visualize only packets matching this regex -E, --ext-headers print extended header for every pck -Q, --superquiet do not display user and password LUA options: --lua-script <script1>,[<script2>,...] comma-separted list of LUA scripts --lua-args n1=v1,[n2=v2,...] comma-separated arguments to LUA script(s) General options: -i, --iface <iface> use this network interface -I, --liface show all the network interfaces -Y, --secondary <ifaces> list of secondary network interfaces -n, --netmask <netmask> force this <netmask> on iface -A, --address <address> force this local <address> on iface -P, --plugin <plugin> launch this <plugin> -F, --filter <file> load the filter <file> (content filter) -z, --silent do not perform the initial ARP scan -6, --ip6scan send ICMPv6 probes to discover IPv6 nodes on the link -j, --load-hosts <file> load the hosts list from <file> -k, --save-hosts <file> save the hosts list to <file> -W, --wifi-key <wkey> use this key to decrypt wifi packets (wep or wpa) -a, --config <config> use the alterative config file <config> Standard options: -v, --version prints the version and exit -h, --help this help screen
作者:荒原之梦
ARP 协议是一个年代相当“久远”的网络协议。ARP 协议制定于 1982 年 11 月,英文全称:Address Resolution Protocol,即“地址解析协议”。
我们知道,虽然终端设备想要上网必须具有公有 IP 地址,但是在 Internet 的 TCP/IP 协议中,IP 地址的作用是标识一台主机或路由器与一条链路的接口,也就是说 IP 地址指明了数据由一个网络传输到另一个网络的路径,但是我们知道,为了节约 IP 地址,通常情况下,在一个内部网络中,主机常常使用 RFC 规定的三种私有 IP 地址作为局域网中主机的 IP 地址,而且主机的 IP 地址是由该网络的路由器动态分配的,如果数据的传输仅仅依赖于 IP 地址,那么当数据到达一个内部网络中时就可能因为目标主机的 IP 地址发生改变而将数据传输到了错误的目标主机。但是不同设备的物理地址(MAC 地址)是全网唯一的,而且一般也不会被改变(MAC 地址是写入网卡的,一般情况下是固定不变的),因此使用 MAC 地址作为信息的标识,定位目标网络设备就可以保证信息能够正确抵达目标主机。而通过目标设备的IP地址查找目标设备的 MAC 地址就是 ARP 协议的基本功能。
由于内部网络中主机的IP地址往往是动态分配的,因此,在主机中是有 ARP 缓存的,记录着本网络中 IP 地址与 MAC 地址的对应关系。那么,这个 ARP 缓存是怎么生成的呢?首先,当网络中的主机 A 需要向主机 B 发送信息时,会将包含目标 IP 地址的 ARP 请求广播到该网络中的所有主机上,网络中的其他主机在收到主机 A 的 ARP 请求后可以自主的发送 ARP 应答报文,应答中包含自己的 IP 和自己的 MAC 地址,主机 B 也会发送这样的应答报文给主机 A. 这样主机 A 就知道了主机 B 的 MAC 地址与 IP 地址了。
ARP 协议的工作是建立在网络中各个主机之间相互信任的基础上的,一台主机在收到其他主机的 ARP 应答报文时并不会采取措施校验该报文的真实性,而是直接就记录到了自己的 ARP 缓存中以备下次使用。
ARP 攻击的第一步就是 ARP 欺骗。由上述“ARP 协议的工作过程”我们知道,ARP 协议基本没有对网络的安全性做任何思考,当时人们考虑的重点是如何保证网络通信能够正确和快速的完成——ARP 协议工作的前提是默认了其所在的网络是一个善良的网络,每台主机在向网络中发送应答信号时都是使用的真实身份。不过后来,人们发现 ARP 应答中的 IP 地址和 MAC 地址中的信息是可以伪造的,并不一定是自己的真实 IP 地址和 MAC 地址,由此,ARP 欺骗就产生了。
根据攻击的实现方式或者攻击的效果不同,可以将 ARP 攻击分成如下三种类型:
ARP 的应答报文是可以伪造的,因此,同时进行 ARP 仿冒与欺骗攻击就可以实现内网环境下的“中间人攻击”。
假设一个网络中有 3 台主机,分别为 A、B 和 C. 当主机 A 向网络中发送了 ARP 请求时,用于攻击的主机 C 可以假装是 B, 然后向主机 A 发送一个伪造的 ARP 应答报文,由于 A 并不会采取措施验证该报文真伪,而是直接存入自己的 ARP 缓存并在需要时使用(ARP 缓存分两种,一种是静态 ARP 缓存,该类缓存只要主机不关机就一直存在。另一类是动态 ARP 缓存,该类缓存是有时效限制的,一般 ARP 动态缓存的最长生命周期是 10 分钟,如果一个动态缓存项目在 2 分钟内没有被使用,则删除,如果在两分钟内被使用了,则增加两分钟的生命周期,直到达到 10 分钟的最长生命周期后进行更新),由此,C 就成功的欺骗了 A. 那么来自主机 B 的正确的应答报文去哪了?如果 A 收到了来自 B 的正确的应答报文,更新了自己的 ARP 缓存,那么 C 的 ARP 欺骗不就失败了吗?确实会发生这种情况,但是如果 C 不断的向网络中的各台主机大量发送伪造的 ARP 应答报文,直到同时欺骗了 A 和 B, C 就成功的对主机 A 和 B 进行了 ARP 欺骗。接下来 C 就可以监听 A 和 B 之间的流量,伪造 A 和 B 的通信内容或者阻止 A 和 B 的通信。
交换机中会保存一份内网中活跃主机的 MAC 地址与 IP 地址对应关系的数据表,此时,如果交换机要转发数据包的主机在该数据表中,那么,交换机就会按照 MAC 地址与端口自动完成数据包的转发。
但是,如果交换机与内网中的某台主机长时间未通信,那么,相应的 MAC 地址表就会因“老化”而被自动删除。交换机会直到下次需要与该主机进行通信时才会通过广播的方式获取该主机的 MAC 地址。
于是,ARP MAC 地址泛洪攻击的原理就是向交换机发送大量的伪造 MAC 地址,挤占掉交换机 MAC 地址数据表的全部存储空间,使得因发生老化而被删除的 MAC 地址无法再被重新添加,此时,从交换机发出的所有数据包都会变成请求获取内网目标主机 MAC 地址的广播包——这时,我们就可以对交换机发动 ARP 仿冒与欺骗攻击了。
当我们在说“ARP 攻击”时,我们还常常和另外一个词连系在一起:“局域网”。为什么ARP 攻击只能发生在局域网呢?或者说为什么 ARP 协议只能在局域网内发挥作用?这和互联网通信的原理以及 ARP 协议的功能有关。简单的说,我们可以这样理解:
我们知道,IP 地址位于 OSI 模型的第三层(网络层),MAC 地址位于 OSI 模型的第二层(数据链路层)。而路由器工作在三层或者三层以上。由此看来,用于连接 IP 地址与 MAC 地址的 ARP 协议是不能跨越第三层的(ARP 工作在网络层),因此 ARP 广播包也不可能通过路由器到达其他网络。
上面的这个解释很好理解,但是并不是很严密的解释,也没有触及到问题的核心。如果要完全解释“为什么 ARP 攻击只能发生在局域网内部?”这个问题,我们就必须更深入的理解 TCP/IP 协议和路由器的工作原理。
在 TCP/IP 协议中,数据的传输有三种方式:单播、组播和广播。单播就是一对一的通信,组播(也称多播)是一对多的通信(如视频直播)。单播和组播都是可以跨越物理网络进行通信的,也就是进行通信的主机之间可以不在一个子网内部。但是,广播就有一些特别了,由于广播域的存在(一般一个局域网就是一个广播域),所以路由器在收到广播数据时是会拒绝向其它网络转发的,路由器实际上起到了分离广播域,隔离广播数据的作用。
ARP 攻击之所以能够产生,就是因为伪造了对 ARP 广播的应答,综合上述分析可知,如果用于攻击的主机并不在目标网络中,就接收不到目标网络中 ARP 请求的广播,其伪造的 ARP 应答也无法到达目标网络。因此,ARP 攻击只能发生在局域网(子网)内部。正因如此,我们只能对目标主机 IP 地址网络号部分以及子网掩码与我们的攻击机器 IP 地址网络号部分和子网掩码相同的主机发动 ARP 攻击。
ARP 协议的作用就是在已知内网其他设备的 IP 地址的情况下,获取这些内网设备的 MAC 地址的协议。而 RARP 协议(RARP: Reverse Address Resolution Protocol, 即“反向地址转换协议”)则是为了让只知道自己的 MAC 地址的设备从网关那里获取自己的 IP 地址的协议。
和 ARP 协议一样,RARP 协议也工作在网络层。
ARP 协议是在 IPv4 中使用的地址解析协议,但在 IPv6 中,已经使用 NDP (NDP: Neighbor Discovery Protocol, 即“邻居发现协议”) 协议取代了 ARP 协议的功能。
和 ARP 协议一样,NDP 协议也工作在网络层。
作者:荒原之梦
如果一个正整数n至少在两个不同的进位制(二进制<=进制=<十进制)b1和b2下都是回文数,则称n是双基回文数。
根据定义,简单的说就是在二进制到十进制之间(包括十进制和二进制),如果n在这其中任意两个进制上是回文数,则n就是双基回文数。
输入正整数S<10^6,输出比S大的最小双基回文数
#include<stdio.h> //把主函数放前面比较好看 int main() { int n; //定义n作为sjHuiWen函数中形式参数s的实际参数 int count=0; //count用于计数,初始值为0 printf("Enter a number:"); scanf("%d",&n); //读取要处理的数字 ,如2200,该数字不一定为回文数,因为我们想要求的只是比该数字大的最小回文数 int a=n;//使用a先把n的值保存一下 bool sjHuiWen(int m,int base); //定义base代表进制 //下面会调用sjHuiWen函数,调用之前要先声明一下 while(count!=2) { n++; count=0; for(int base=2;base<=10;base++) { if(sjHuiWen(n,base)) //if判断只会在括号内为true时才会执行下一步操作,如果sjHuiWen函数返回true,则表示n是回文数 { count++; //n是回文数则+1 } if(count==2) break; //调用sjHuiWen函数判断n是不是回文数,如果在两个进制下都是回文数,则跳出循环 } } printf("比%d大的最小双基回文数为:%d\n",a,n); return 0; } //定义sjHuiWen函数 ,功能是判断数字n在进制base下是不是回文数 bool sjHuiWen(int m,int base)//m是形式参数,n是实际参数 //定义一个函数sjHuiWen,函数类型为布尔类型(由于return返回的值flag是布尔类型,所以函数就是布尔类型) { int str[10],i = 0; //定义一个数组str,长度为40 bool flag = true; //定义一个布尔类型的变量flag,赋初值为true while(m) //m是一个整型变量,当m还是一个整型变量时就继续循环,直到m不是一个整型变量 { str[i++] = m%base;//取余,从m的个位开始将每一位上的数字变成base位进制并依次存入数组 m /= base; //每取一次余数,就把最后一位的数字去掉 } for(int j = 0;j <= i/2;j++) { if(str[j] != str[i-j-1]){ flag = false; }else return true; } return flag; }
作者:荒原之梦
你是一道天使的圣光
是柔软的晨雾
飘洒在我眼中的北方
在无限的时光中
拥抱唯一的你
当爱成为信仰
天使便降临了人间
阳光带来了你的气息
你的一次回眸
犹如纸上轻盈的一撇
沉醉了笔墨纸砚的洋溢
人生是一步又一步的前行
我们手挽着手
在同一个时钟频率中漫步
每一缕霞光
都宣誓着
一份庄严的承诺
你说冬天很冷
草地都盖上了厚厚的树叶
我说北风很大
可是有陪伴就不会孤单
下一个春天
在柳叶微拂的湖边
你静静的站在桥头
湖水的波光在你的脸庞荡漾
那时
整个世界
都在为你盛开
作者:荒原之梦
在Windows Server 2008服务器中,为了防止人们登录服务器时错误的将账户和密码输入其他地方导致信息泄漏,所以在我们登录Windows Server 2008服务器操作系统时会要求我们按“Ctrl+Alt+Delete”组合键才能打开登录界面。这样确实能减少人为失误造成信息泄漏的可能性,但是我在使用网页版远程登录连接我的Windows服务器时发现,一旦我按下了“Ctrl+Alt+Delete”组合键,就会被我的本地计算捕获这一操作指令,而远程服务器却没有反应。综上,同时也为了方便登陆(我的这台Windows服务器纯属个人使用,服务器中没有重要信息,因此可以为了方便使用牺牲一些安全性,如果是公司服务器等对安全性要求比较高的服务器还是要以确保安全为主。)
1. Win+R组合键输入gpedit.msc,回车运行,打开“本地组策略编辑器”。
2 .依次打开“计算机配置->Windows设置->安全设置->本地策略->安全选项”
3 .点击“安全选项”,选中右侧窗口中的“交互式登录:无须按Ctrl+Alt+Del”,右键点击“属性”,将“已禁用”改为“已启用”。
4 .点击“应用”和“确定”,之后重启服务器。
5 .重启完成后再次使用Web方式登录服务器就直接进入到了登陆界面,不再需要按Ctrl+Alt+Delete组合键进入登陆界面。
注:
更改本地组策略后一定要记得重启服务器。经实际测试,一般情况下,不重启不会更新上述更改,因此更改也不会生效。
作者:荒原之梦
为了在Kali上远程连接Windows系统的服务器我们需要安装两个工具,rdesktop和tsclient。另外,我们从主机服务商那里购买的Windows操作系统的服务器都是默认开启了远程连接的,如果我们要在局域网里连接桌面版的Windows系统一般还需要开启并配置好远程桌面。
安装rdesktop,输入命令:
apt-get install rdesktop
安装tsclient,输入命令:
apt-get install tsclient
输入:
rdesktop ip:端口号
或者输入:
rdesktop ip
即可打开Windows服务器的登录页面,默认的登录用户名是“root”,可以根据实际情况修改。
命令“rdesktop”后面可以跟的几个常用参数及功能如下:
-f //全屏显示(想退出全屏则使用组合键“Ctrl+Alt+Enter”)。 -a [x] //指定显示的颜色深度。 /*注:一般可以在网速不够好的情况下可以指定为“-a 8”(此时显示效果基本为黑白蓝),网速较好时指定为“-a 16”(此时的显示效果是彩色的),默认的颜色深度是24(“默认的颜色深度是24”属于推测,因为,我在不指定颜色深度的情况下,即不使用“-a [x]”参数时连接Windows Server 2003服务器时会产生警示:“WARNING: Remote desktop does not support colour depth 24; falling back to 16”)*/ -g [x*x] //指定远程桌面在本地显示窗口的大小,如“-g 600*800”. -u name //登录用户的用户名。 -p password //登录密码。 -r sound:local //将远程主机的声音重定向到本地。
注:
1.rdesktop是一个基于命令行的工具,而tsclient则可以提供图形化界面。(在终端输入tsclient会显示“bash: tsclient: command not found”,因此推测tsclient应该只是作为rdesktop的一个扩展插件存在)。
2.上述工具也可以在其他Linux平台上使用,如CentOS和Ubuntu.
附:rdesktop的帮助信息(终端输入“rdesktop”可以查看)
rdesktop: A Remote Desktop Protocol client. Version 1.8.3. Copyright (C) 1999-2011 Matthew Chapman et al. See http://www.rdesktop.org/ for more information. Usage: rdesktop [options] server[:port] -u: user name -d: domain -s: shell / seamless application to start remotly -c: working directory -p: password (- to prompt) -n: client hostname -k: keyboard layout on server (en-us, de, sv, etc.) -g: desktop geometry (WxH) -i: enables smartcard authentication, password is used as pin -f: full-screen mode -b: force bitmap updates -L: local codepage -A: path to SeamlessRDP shell, this enables SeamlessRDP mode -B: use BackingStore of X-server (if available) -e: disable encryption (French TS) -E: disable encryption from client to server -m: do not send motion events -C: use private colour map -D: hide window manager decorations -K: keep window manager key bindings -S: caption button size (single application mode) -T: window title -t: disable use of remote ctrl -N: enable numlock syncronization -X: embed into another window with a given id. -a: connection colour depth -z: enable rdp compression -x: RDP5 experience (m[odem 28.8], b[roadband], l[an] or hex nr.) -P: use persistent bitmap caching -r: enable specified device redirection (this flag can be repeated) '-r comport:COM1=/dev/ttyS0': enable serial redirection of /dev/ttyS0 to COM1 or COM1=/dev/ttyS0,COM2=/dev/ttyS1 '-r disk:floppy=/mnt/floppy': enable redirection of /mnt/floppy to 'floppy' share or 'floppy=/mnt/floppy,cdrom=/mnt/cdrom' '-r clientname=': Set the client name displayed for redirected disks '-r lptport:LPT1=/dev/lp0': enable parallel redirection of /dev/lp0 to LPT1 or LPT1=/dev/lp0,LPT2=/dev/lp1 '-r printer:mydeskjet': enable printer redirection or mydeskjet="HP LaserJet IIIP" to enter server driver as well '-r sound:[local[:driver[:device]]|off|remote]': enable sound redirection remote would leave sound on server available drivers for 'local': alsa: ALSA output driver, default device: default '-r clipboard:[off|PRIMARYCLIPBOARD|CLIPBOARD]': enable clipboard redirection. 'PRIMARYCLIPBOARD' looks at both PRIMARY and CLIPBOARD when sending data to server. 'CLIPBOARD' looks at only CLIPBOARD. '-r scard[:"Scard Name"="Alias Name[;Vendor Name]"[,...]] example: -r scard:"eToken PRO 00 00"="AKS ifdh 0" "eToken PRO 00 00" -> Device in Linux/Unix enviroment "AKS ifdh 0" -> Device shown in Windows enviroment example: -r scard:"eToken PRO 00 00"="AKS ifdh 0;AKS" "eToken PRO 00 00" -> Device in Linux/Unix enviroment "AKS ifdh 0" -> Device shown in Windows enviroment "AKS" -> Device vendor name -0: attach to console -4: use RDP version 4 -5: use RDP version 5 (default) -o: name=value: Adds an additional option to rdesktop. sc-csp-name Specifies the Crypto Service Provider name which is used to authenticate the user by smartcard sc-container-name Specifies the container name, this is usally the username sc-reader-name Smartcard reader name to use sc-card-name Specifies the card name of the smartcard to use
附:视频中出现的两个txt文本,包含了大致的安装与配置过程:
文本1:KaliLinux虚拟机安装和初步配置
Kali Linux虚拟机安装和初步配置
大家好,今天给大家演示一下在VMware Workstation 14 pro里安装
Kali Linux的完整步骤和安装完成后的简单配置,包括添加更新源、配置DNS服务器
和安装中文输入法等
下面是详细步骤:
1.下载VMware
官网下载需要注册并登录才能下载,也可以使用
百度软件中心等站点提供的下载资源
双击安装,使用默认设置就可以了
2.下载qBittorrent(这是一个下载torrent种子的软件)
双击安装,使用默认设置就可以了
3.下载Kali种子
为了尽可能减少下载过程中出错的可能性,我们不
直接在浏览器里下载Kali,我们先下载一个torrent种子
,之后在上面下载安装好的qBittorrent里下载Kali
注意:Kali使用64位的在安装过程中可能出现提示说CPU不支持64位
如果出错我们可以改成使用32位的Kali,也就是i386
Kali主要是用于做渗透测试,为了保护我们的物理机真实IP不被暴露,
虚拟机Kali要使用桥接模式上网。
4.安装Kali
5.安装VMware Tools
安装好Tool后我们就可以在物理机和虚拟机Kali之间复制文件了
硬盘改大一点,太小的话可能安装不成功
这个硬盘的大小只是Kali可以使用的存储空间的最大值,不会把这些空间立即分配给Kali
6.添加国内更新源
7.Kali配置DNS服务器
8.Kali安装中文输入法
文本2:临时记录
我已经提前下载好了,这里就不再演示下载了
和安装其他软件一样,双击打开
之后使用默认设置安装就可以了
安装好之后就是这个样子了
在“我的计算机”这一栏里是我们安装好的虚拟机
现在给大家介绍一个bt种子下载软件,免费的
这是他的官网,百度搜一下就找到了
我已经下载好了,这里就不再演示下载了
下载好后双击打开,使用默认设置安装就可以啦
安装好之后就是这个样子的
点击绿色的+号可以添加bt种子
待会我们去Kali的官网下载一个Kali的BT种子
之后就可以用它下载了。
认准kali的官网是:
kali.org
这就是Kali的下载界面,前两个分别是64位
和32位的,一般我们先选择使用64位的,如果
64位的安装出错,那么在换32位的,在我是用VMware12的时候出现过在64位的CPU上安装64的Kali出错的情况,不过现在VMware已经更新到14了,没有出现过以前的情况了。
这里我们选择下载kali的bt种子的方式下载Kali
bt种子下载好了,下载可以下载kali了
稍等一会就下载好了,速度会越来越快
我已经下载好kali的系统映像了
这里就不再演示下载了
现在开始在VMware上安装Kali。
我们先在非系统盘里创建一个文件夹,将待会Kali的安装文件都放到这个文件夹里
这一步需要指定我问刚才下载的KALI系统映像文件的路径,该文件是以.iso结尾的。
Kali是Debian的发行版,我们这里选择系统的版本为Debian
把安装位置改成我们刚才新建的文件夹,这样方便管理
把鼠标放到Kali的屏幕上点击一下鼠标就进到虚拟机里了,使用Ctrl+Alt组合键可以再把鼠标返回到物理机
使用倒数第3个选项就可以图形化安装Kali
这里设置root用户的密码
kali是一个单用户操作系统,只有一个管理员(root)账户
这里需要安装一会时间
我先暂停一下
好了,欢迎回来!
安装即将结束
再等一会………………
再等一会………………
开机啦!!!
待会输入用户名:root
密码就是刚才设置的root密码:*****
现在Kali和物理机是相互隔离的
没法互相复制文件
我们试试看
真的拖不进来
现在我们安装VMware Tools
安装好之后就可以互相复制文件了
全部使用回车,使用默认设置
待会我们要给系统做一个快照,这样一旦我们今后做什么事把系统弄坏了,还可以回到现在这个初始状态
VMware现在安装好了
可以复制文件了,我们试试看吧
没复制上…………
我们重启看看…………
我先暂停一下………………
欢迎回来
刚才我重启启动了Kali
现在真的可以复制了
我们试一下吧
好了
下一步我们要添加Kali的国内更新源,这样以后下载工具时会快一点
对了,先拍个快照
我的博客上记录有最新的国内镜像网站,我们打开看一下
更新源添加好了,但是我们现在没办法在Kali里输入中文
下载我们就来安装中文输入法
在安装中文输入法之前我们先来配置一下DNS服务器,这样就可以上网了
如果不项配置也可以在VMware的设置里面将联网模式改成NAT模式
NAT模式使用的物理机的IP,可以直接上网。
下面配置DNS服务器
使用的是阿里云的公共DNS服务器;
223.5.5.5
223.6.6.6
现在开始安装中文输入法
下面我们去搜狗官网下载Linux版的搜狗输入法
出现软件包依赖问题
可以使用
apt-get install -f
解决依赖问题
现在重启一下
现在可以输入中文啦
谢谢收看
Axel是一个多线程的HTTP/FTP下载工具,支持断点续传。
apt-get install axel
apt remove axel
安装完成之后输入
axel
回车就会显示Axel的帮助页面,Axel 2.15-1版本的帮助页面原文如下:
root@kali:~# axel Usage: axel [options] url1 [url2] [url...] --max-speed=x -s x Specify maximum speed (bytes per second) --num-connections=x -n x Specify maximum number of connections --max-redirect=x Specify maximum number of redirections --output=f -o f Specify local output file --search[=n] -S[n] Search for mirrors and download from n servers --ipv4 -4 Use the IPv4 protocol --ipv6 -6 Use the IPv6 protocol --header=x -H x Add HTTP header string --user-agent=x -U x Set user agent --no-proxy -N Just don't use any proxy server --insecure -k Don't verify the SSL certificate --no-clobber -c Skip download if file already exists --quiet -q Leave stdout alone --verbose -v More status information --alternate -a Alternate progress indicator --help -h This information --timeout=x -T x Set I/O and connection timeout --version -V Version information Visit https://github.com/axel-download-accelerator/axel/issues to report bugs
axel [选项和参数] [下载链接1] [下载链接2] [下载链接3]
-a 显示进度条 -s [x] 指定每秒下载速度的最大比特数,“x”一般设置成200000以上(单位是“字节/秒”) -n [x] 指定同时打开的线程数,“x”一般设置成10以上 -S [x] 搜索镜像并从X servers服务器下载 -o f 指定本地的输出文件(即指定本地的另存为目录) -N 不使用代理服务器 -v 显示更多状态信息
注:
1.上述选项后面的“[x]”中的x代表数字,为该选项的参数。
2.如果不指定“本地保存目录”,则下载的文件会保存在执行下载命令时所在的目录(即当前目录)。
3.Axel支持断点续传,如果下载过程中断,可以再次执行原下载命令,即可从上次下载的进度处开始继续下载。
4.Axel可以从多个地址下载同一个文件。
leafpad /etc/apt/sources.list
#163网易 Kali源 deb http://mirrors.163.com/debian wheezy main non-free contrib deb-src http://mirrors.163.com/debian wheezy main non-free contrib deb http://mirrors.163.com/debian wheezy-proposed-updates main non-free contrib deb-src http://mirrors.163.com/debian wheezy-proposed-updates main non-free contrib deb-src http://mirrors.163.com/debian-security wheezy/updates main non-free contrib deb http://mirrors.163.com/debian-security wheezy/updates main non-free contrib #阿里云 Kali源 deb http://mirrors.aliyun.com/kali kali main non-free contrib deb-src http://mirrors.aliyun.com/kali kali main non-free contrib deb http://mirrors.aliyun.com/kali-security kali/updates main contrib non-free #中科大 Kali源 deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib #浙江大学 Kali源 deb http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free deb-src http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free #东软大学 Kali源 deb http://mirrors.neusoft.edu.cn/kali kali-rolling/main non-free contrib deb-src http://mirrors.neusoft.edu.cn/kali kali-rolling/main non-free contrib #重庆大学 Kali源 deb http://http.kali.org/kali kali-rolling main non-free contrib deb-src http://http.kali.org/kali kali-rolling main non-free contrib #官方Kali源 #deb http://http.kali.org/kali kali-rolling main non-free contrib #deb-src http://http.kali.org/kali kali-rolling main non-free contrib
在VMware中打开虚拟机时报错:
“无法连接MKS:套接字连接尝试次数太多,正在放弃”
物理机操作系统:
Windows 7
虚拟机操作系统:
Kali Linux
“我的电脑”->“管理”->“服务和应用程序”->“服务”
VMware Authorization Service VMware DHCP Service VMware NAT Service VMware USB Arbitration Service VMware Workstation Server
开启原来出问题的虚拟机,可以正常启动,问题解决。
.deb格式的软件包是Debian和Ubuntu等Linux发行版软件安装包的文件扩展名。
命令如下:
sudo dpkg -i package_file.deb
命令如下:
sudo apt-get autoremove --purge software_name
或者使用如下命令:
sudo dpkg -r software_name
下面是通过自定义一个函数printN,之后在main函数中调用printN,使得可以通过输入整数N,将从1到N的全部整数都打印出来的程序。
但是在编译过程中却报错:
return type defaults to ‘int’
printN的默认返回值类型是int类型的,这样调用printN函数的main函数就需要定义为:
int main()
而不是:
main()
#include<stdio.h> //自定义printN函数 void printN (int N){ int i; for(i = 1; i <= N; i++){ printf("%d\n",i); } return; } //声明printN函数 void printN(int N); main(void) { int N; printf("请输入N:"); scanf("%d",&N);//传入参数 printN(N);//调用printN函数 return 0; }
#include<stdio.h> //自定义printN函数 void printN (int N){ int i; for(i = 1; i <= N; i++){ printf("%d\n",i); } return; } //声明printN函数 void printN(int N); int main(void) { int N; printf("请输入N:"); scanf("%d",&N);//传入参数 printN(N);//调用printN函数 return 0; }